bio- A bioinformatics library




Data type for a sequence position.

Zero-based Offset / Int64 indices are used throughout, to facilitate direct use of indexing functions on SeqData.


Sequence positions

data Pos Source

Position in a sequence




offset :: !Offset

0-based index of the position

strand :: !Strand

Strand of the position

Manipulating positions

slide :: Pos -> Offset -> PosSource

Returns a position resulting from sliding the original position along the sequence by a specified offset. A positive offset will move the position away from the 5' end of the forward stand of the sequence regardless of the strand of the position itself. Thus,

 slide (revCompl pos) off == revCompl (slide pos off)

Extracting sequences

seqNt :: (Error e, MonadError e m) => SeqData -> Pos -> m CharSource

Extract the nucleotide at a specific sequence position. If the position lies outside the bounds of the sequence, an error results.

seqNtPadded :: SeqData -> Pos -> CharSource

As seqNt, extract the nucleotide at a specific sequence position, but return N when the position lies outside the bounds of the sequence.

 seqNtPadded sequ pos == (either 'N' id . seqNt sequ) pos

Displaying positions

display :: Pos -> StringSource

Display a human-friendly, zero-based representation of a sequence position.