cobot-io-0.1.3.3: src/Bio/Sequence/Basecalled/Type.hs
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