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
, bsRawG :: Vector Int16
, bsRawA :: Vector Int16
, bsRawT :: Vector Int16
, bsRawC :: Vector Int16
, bsPeakLocations :: Vector Int
}
deriving (Eq, Show)
instance IsSequence BasecalledSequence where
type Element BasecalledSequence = Char
type Marking BasecalledSequence = ()
type Weight BasecalledSequence = Double
toSequence = coerce
fromSequence = coerce