module Bio.Sequence.Basecalled.Type ( BasecalledSequence (..) , BasecalledSequenceWithRawData (..) ) where import Bio.Sequence (IsSequence (..), WeightedSequence) import Data.Coerce (coerce) import Data.Int (Int16) import Data.Vector (Vector) newtype BasecalledSequence = BasecalledSequence (WeightedSequence Double Char) deriving (Eq, Show) data BasecalledSequenceWithRawData = BasecalledSequenceWithRawData { bsSequence :: BasecalledSequence -- A sequence with quality. , bsRawG :: Vector Int16 , bsRawA :: Vector Int16 , bsRawT :: Vector Int16 , bsRawC :: Vector Int16 , bsPeakLocations :: Vector Int -- ^ Same length as 'bsSequence'. -- -- For every base in 'bsSequence' corresponding element in 'bsPeakLocations' is -- an index in one of the raw vectors. } deriving (Eq, Show) instance IsSequence BasecalledSequence where type Element BasecalledSequence = Char type Marking BasecalledSequence = () type Weight BasecalledSequence = Double toSequence = coerce fromSequence = coerce