Safe Haskell | None |
---|---|
Language | Haskell2010 |
Abstraction over bio sequences encoded as one-ascii character as one symbol. We phantom-type the exact bio-sequence type and provide type classes that act on known types.
Unknown bio sequences should be tagged with Void
.
TODO give (lens) usage examples
Synopsis
- newtype SequenceIdentifier (which :: k) = SequenceIdentifier {}
- _SequenceIdentifier :: forall k (which :: k) k (which :: k). Iso (SequenceIdentifier (which :: k)) (SequenceIdentifier (which :: k)) ByteString ByteString
- data RNA
- data DNA
- data XNA
- data AA
- newtype BioSequence (which :: k) = BioSequence {}
- _BioSequence :: forall k (which :: k) k (which :: k). Iso (BioSequence (which :: k)) (BioSequence (which :: k)) ByteString ByteString
- bioSequence :: forall k (which :: k) k (which :: k). Iso (BioSequence (which :: k)) (BioSequence (which :: k)) ByteString ByteString
- mkRNAseq :: ByteString -> BioSequence RNA
- shrinkBioSequence :: forall k1 k2 (which1 :: k1) (which2 :: k2). BioSequence which1 -> [BioSequence which2]
- mkDNAseq :: ByteString -> BioSequence DNA
- mkXNAseq :: ByteString -> BioSequence XNA
- mkAAseq :: ByteString -> BioSequence AA
- rna2dna :: Char -> Char
- rnaComplement :: Char -> Char
- dna2rna :: Char -> Char
- dnaComplement :: Char -> Char
- class Transcribe f where
- type TranscribeTo f :: *
- transcribe :: Iso' f (TranscribeTo f)
- class Complement f where
- complement :: Iso' f f
- reverseComplement :: (Complement f, Reversing f) => Iso' f f
Lens operations on biosequences
Sequence identifiers
newtype SequenceIdentifier (which :: k) Source #
Instances
_SequenceIdentifier :: forall k (which :: k) k (which :: k). Iso (SequenceIdentifier (which :: k)) (SequenceIdentifier (which :: k)) ByteString ByteString Source #
Bio-Sequences
Instances
IsString (BioSequence RNA) Source # | |
Defined in Biobase.Types.BioSequence fromString :: String -> BioSequence RNA # | |
Arbitrary (BioSequence RNA) Source # | |
Defined in Biobase.Types.BioSequence arbitrary :: Gen (BioSequence RNA) # shrink :: BioSequence RNA -> [BioSequence RNA] # | |
Complement (BioSequence RNA) Source # | |
Defined in Biobase.Types.BioSequence complement :: Iso' (BioSequence RNA) (BioSequence RNA) Source # | |
Transcribe (BioSequence RNA) Source # | Transcribe a RNA sequence into an DNA sequence. This does not |
Defined in Biobase.Types.BioSequence type TranscribeTo (BioSequence RNA) Source # transcribe :: Iso' (BioSequence RNA) (TranscribeTo (BioSequence RNA)) Source # | |
type TranscribeTo (BioSequence RNA) Source # | |
Defined in Biobase.Types.BioSequence |
Instances
IsString (BioSequence DNA) Source # | |
Defined in Biobase.Types.BioSequence fromString :: String -> BioSequence DNA # | |
Arbitrary (BioSequence DNA) Source # | |
Defined in Biobase.Types.BioSequence arbitrary :: Gen (BioSequence DNA) # shrink :: BioSequence DNA -> [BioSequence DNA] # | |
Complement (BioSequence DNA) Source # | |
Defined in Biobase.Types.BioSequence complement :: Iso' (BioSequence DNA) (BioSequence DNA) Source # | |
Transcribe (BioSequence DNA) Source # | Transcribe a DNA sequence into an RNA sequence. This does not |
Defined in Biobase.Types.BioSequence type TranscribeTo (BioSequence DNA) Source # transcribe :: Iso' (BioSequence DNA) (TranscribeTo (BioSequence DNA)) Source # | |
type TranscribeTo (BioSequence DNA) Source # | |
Defined in Biobase.Types.BioSequence |
Instances
IsString (BioSequence XNA) Source # | |
Defined in Biobase.Types.BioSequence fromString :: String -> BioSequence XNA # | |
Arbitrary (BioSequence XNA) Source # | |
Defined in Biobase.Types.BioSequence arbitrary :: Gen (BioSequence XNA) # shrink :: BioSequence XNA -> [BioSequence XNA] # |
Instances
IsString (BioSequence AA) Source # | |
Defined in Biobase.Types.BioSequence fromString :: String -> BioSequence AA # | |
Arbitrary (BioSequence AA) Source # | |
Defined in Biobase.Types.BioSequence arbitrary :: Gen (BioSequence AA) # shrink :: BioSequence AA -> [BioSequence AA] # |
newtype BioSequence (which :: k) Source #
TODO provide extended annotation information on biosequences, too!
Instances
_BioSequence :: forall k (which :: k) k (which :: k). Iso (BioSequence (which :: k)) (BioSequence (which :: k)) ByteString ByteString Source #
bioSequence :: forall k (which :: k) k (which :: k). Iso (BioSequence (which :: k)) (BioSequence (which :: k)) ByteString ByteString Source #
RNA
mkRNAseq :: ByteString -> BioSequence RNA Source #
TODO write that converts explicitly
shrinkBioSequence :: forall k1 k2 (which1 :: k1) (which2 :: k2). BioSequence which1 -> [BioSequence which2] Source #
DNA
mkDNAseq :: ByteString -> BioSequence DNA Source #
XNA
mkXNAseq :: ByteString -> BioSequence XNA Source #
Amino acid sequences
mkAAseq :: ByteString -> BioSequence AA Source #
DNA/RNA
rna2dna :: Char -> Char Source #
Simple case translation from U
to T
. with upper and lower-case
awareness.
rnaComplement :: Char -> Char Source #
Single character RNA complement.
dna2rna :: Char -> Char Source #
Simple case translation from T
to U
with upper- and lower-case
awareness.
dnaComplement :: Char -> Char Source #
Single character DNA complement.
class Transcribe f where Source #
Transcribes a DNA sequence into an RNA sequence. Note that transcribe
is
actually very generic. We just define its semantics to be that of
biomolecular transcription.
transcribe
makes the assumption that, given DNA -> RNA
, we transcribe
the coding strand.
http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html
@ DNAseq ACGT ^. transcribe == RNAseq ACGU RNAseq ACGU ^. transcribe
== DNAseq ACGT RNAseq ACGU ^. from transcribe :: DNAseq == DNAseq ACGT
@
type TranscribeTo f :: * Source #
transcribe :: Iso' f (TranscribeTo f) Source #
Instances
Transcribe (BioSequence DNA) Source # | Transcribe a DNA sequence into an RNA sequence. This does not |
Defined in Biobase.Types.BioSequence type TranscribeTo (BioSequence DNA) Source # transcribe :: Iso' (BioSequence DNA) (TranscribeTo (BioSequence DNA)) Source # | |
Transcribe (BioSequence RNA) Source # | Transcribe a RNA sequence into an DNA sequence. This does not |
Defined in Biobase.Types.BioSequence type TranscribeTo (BioSequence RNA) Source # transcribe :: Iso' (BioSequence RNA) (TranscribeTo (BioSequence RNA)) Source # |
class Complement f where Source #
The complement of a biosequence.
complement :: Iso' f f Source #
Instances
Complement (BioSequence DNA) Source # | |
Defined in Biobase.Types.BioSequence complement :: Iso' (BioSequence DNA) (BioSequence DNA) Source # | |
Complement (BioSequence RNA) Source # | |
Defined in Biobase.Types.BioSequence complement :: Iso' (BioSequence RNA) (BioSequence RNA) Source # | |
Complement (BioSequence w) => Complement (Location i FwdPosition (BioSequence w)) Source # | |
Defined in Biobase.Types.Location complement :: Iso' (Location i FwdPosition (BioSequence w)) (Location i FwdPosition (BioSequence w)) Source # | |
Complement (BioSequence w) => Complement (PIS i FwdPosition (BioSequence w)) Source # | |
Defined in Biobase.Types.Location complement :: Iso' (PIS i FwdPosition (BioSequence w)) (PIS i FwdPosition (BioSequence w)) Source # |
reverseComplement :: (Complement f, Reversing f) => Iso' f f Source #