biohazard-0.6.15: bioinformatics support library

Safe HaskellNone
LanguageHaskell2010

Bio.Bam.Writer

Synopsis

Documentation

class IsBamRec a where Source #

Minimal complete definition

pushBam

encodeBamWith :: (MonadIO m, IsBamRec r) => Int -> BamMeta -> Enumeratee [r] ByteString m () Source #

Encodes BAM records straight into a dynamic buffer, the BGZF's it. Should be fairly direct and perform well.

writeBamFile :: IsBamRec r => FilePath -> BamMeta -> Iteratee [r] IO () Source #

writes BAM encoded stuff to a file XXX This should(!) write indexes on the side---a simple block index for MapReduce style slicing, a standard BAM index or a name index would be possible. When writing to a file, this makes even more sense than when writing to a Handle.

writeBamHandle :: (MonadIO m, IsBamRec r) => Handle -> BamMeta -> Iteratee [r] m () Source #

writes BAM encoded stuff to a Handle We generate BAM with dynamic blocks, then stream them out to the file.

XXX This could write indexes on the side---a simple block index for MapReduce style slicing, a standard BAM index or a name index would be possible.

pipeBamOutput :: IsBamRec r => BamMeta -> Iteratee [r] IO () Source #

write BAM encoded stuff to stdout This send uncompressed BAM to stdout. Useful for piping to other tools.

pipeSamOutput :: MonadIO m => BamMeta -> Iteratee [BamRec] m () Source #

Printers for BAM. We employ an Iteratee interface, and we strive to keep BAM records in their encoded form. This is most compact and often faster, since it saves the time for repeated decoding and encoding, if that's not strictly needed.

write in SAM format to stdout This is useful for piping to other tools (say, AWK scripts) or for debugging. No convenience function to send SAM to a file exists, because that's a stupid idea.