I've implemented seqid and seqheader in biofasta. The repository is at http://patch-tag.com/r/dfornika/biofasta.
Dan Fornika dforn...@gmail.com On 2012-12-11, at 1:27 AM, Ketil Malde wrote: > Dan Fornika <dforn...@gmail.com> writes: > >> I also vote in favour of seqid + seqheader. > > I've pushed a preliminary change to malde.org/~ketil/biohaskell/biocore > if you want to take a look. I sympathise with the sentiment, Felipe, > but I think seqid is just too important to justify the extra clutter of > a decomposing function. > >>> Is it okay to use Monoid for appending and (m)empty? And have separate >>> 'slice' and 'copy' (or perhaps 'defragment')? > >> This sounds interesting to me, but the stuff about Monoid is over my >> head. > > Monoid provides a general way to combine values into a value of the same > type: > > class Monoid a where > mempty :: a > mappend :: a -> a -> a > > For lists, mempby is the empty list and mappend concatenation. But for > a numeric type i you can also define (Sum i) where mempty is zero, and > mappend is addition, or (Product i) where mempty is one and mappend is > multiplication. And so on. > > For SeqData etc, this would be the empty sequence and concatenation, > respectively (are there any others that make sense?). This would make > it easier to provide this functionality for implemetations of BioSeq. > >> What would be the purpose of the 'slice' and 'copy' functions? > > slice :: s -> (Offset,Offset) -> s -- ^ Cut a slice of a sequence. > copy :: s -> s -- ^ Create a copy of a sequence. > > 'slice' would select a substring of a sequence, delimited by the > offsets. (Inclusive, I guess?) > > 'copy' would be analogous to bytestring, as slices are not going to copy > the underlying data by default. Making a copy will use more memory since > it copies the data, but will allow the old data to be GC'ed. Say if you > read a 200Mb chromosome from a file, but only want to retain a small > fraction of it. (Was that really clear?) > > -k _______________________________________________ Biohaskell mailing list Biohaskell@biohaskell.org http://malde.org/cgi-bin/mailman/listinfo/biohaskell