Safe Haskell | None |
---|---|
Language | Haskell2010 |
Secondary structure: define basepairs as Int-tuples, the three edges, a nucleotide can use for pairing and the cis/trans isomerism. Both edges and cis/trans come with a tag for "unknown".
TODO set ext-annotations to be (isomerism,edge,edge) and have a asString instance to read "cWW" "tSH" and other notation.
- newtype Edge = Edge {}
- pattern W :: Edge
- pattern S :: Edge
- pattern H :: Edge
- newtype CTisomerism = CT {}
- pattern Cis :: CTisomerism
- pattern Trn :: CTisomerism
- type PairIdx = (Int, Int)
- type Pair = (Letter RNA, Letter RNA)
- type ExtPairAnnotation = (CTisomerism, Edge, Edge)
- type ExtPairIdx = (PairIdx, ExtPairAnnotation)
- type ExtPair = (Pair, ExtPairAnnotation)
- pattern CHH :: (CTisomerism, Edge, Edge)
- pattern CHS :: (CTisomerism, Edge, Edge)
- pattern CHW :: (CTisomerism, Edge, Edge)
- pattern CSH :: (CTisomerism, Edge, Edge)
- pattern CSS :: (CTisomerism, Edge, Edge)
- pattern CSW :: (CTisomerism, Edge, Edge)
- pattern CWH :: (CTisomerism, Edge, Edge)
- pattern CWS :: (CTisomerism, Edge, Edge)
- pattern CWW :: (CTisomerism, Edge, Edge)
- pattern THH :: (CTisomerism, Edge, Edge)
- pattern THS :: (CTisomerism, Edge, Edge)
- pattern THW :: (CTisomerism, Edge, Edge)
- pattern TSH :: (CTisomerism, Edge, Edge)
- pattern TSS :: (CTisomerism, Edge, Edge)
- pattern TSW :: (CTisomerism, Edge, Edge)
- pattern TWH :: (CTisomerism, Edge, Edge)
- pattern TWS :: (CTisomerism, Edge, Edge)
- pattern TWW :: (CTisomerism, Edge, Edge)
- class BaseSelect a b | a -> b where
- baseL :: a -> b
- baseR :: a -> b
- baseP :: a -> (b, b)
- baseT :: a -> ExtPairAnnotation
- updL :: b -> a -> a
- updR :: b -> a -> a
- updP :: (b, b) -> a -> a
- updT :: ExtPairAnnotation -> a -> a
Newtypes for extended secondary structures
Encode which of three edges is engaged in base pairing
Each nucleotide in a pair may be paired using one of three edges: watson-crick, sugar, or hoogsteen.
Bounded Edge | |
Enum Edge | |
Eq Edge | |
Ord Edge | |
Read Edge | Human-readable Read instance. |
Show Edge | Human-readable Show instance. |
Ix Edge | |
Generic Edge | |
ToJSON Edge | |
FromJSON Edge | |
Binary Edge | |
Serialize Edge | |
Unbox Edge | |
IsostericityLookup ExtPair | For extended basepairs, we take the default mapping and go from there. TODO inClass missing |
Vector Vector Edge | |
MVector MVector Edge | |
RemovePseudoKnots [ExtPairIdx] | |
RemovePseudoKnots (Vector ExtPairIdx) | Remove pseudoknotted pairs from extended RNA secondary structures. |
MkD2Secondary (Int, [ExtPairIdx]) | |
BaseSelect ((a, a), ExtPairAnnotation) a | extended pairtype annotation given |
type Rep Edge | |
data Vector Edge = V_Edge (Vector Int) | |
data MVector s0 Edge = MV_Edge (MVector s Int) |
Is the base pair in cis or trans configuration
newtype CTisomerism Source
Nucleotides in a pairing may be in the cis(==?) or trans(==?) state.
Bounded CTisomerism | |
Enum CTisomerism | |
Eq CTisomerism | |
Ord CTisomerism | |
Read CTisomerism | Human-readable Read instance. |
Show CTisomerism | Human-readable Show instance. |
Ix CTisomerism | |
Generic CTisomerism | |
ToJSON CTisomerism | |
FromJSON CTisomerism | |
Binary CTisomerism | |
Serialize CTisomerism | |
Unbox CTisomerism | |
IsostericityLookup ExtPair | For extended basepairs, we take the default mapping and go from there. TODO inClass missing |
Vector Vector CTisomerism | |
MVector MVector CTisomerism | |
RemovePseudoKnots [ExtPairIdx] | |
RemovePseudoKnots (Vector ExtPairIdx) | Remove pseudoknotted pairs from extended RNA secondary structures. |
MkD2Secondary (Int, [ExtPairIdx]) | |
BaseSelect ((a, a), ExtPairAnnotation) a | extended pairtype annotation given |
type Rep CTisomerism | |
data Vector CTisomerism = V_CTisomerism (Vector Int) | |
data MVector s0 CTisomerism = MV_CTisomerism (MVector s Int) |
pattern Cis :: CTisomerism Source
pattern Trn :: CTisomerism Source
Types
type PairIdx = (Int, Int) Source
A basepair is simply a pair of Ints which are 0-indexing a sequence.
type ExtPairAnnotation = (CTisomerism, Edge, Edge) Source
Annotation for a basepair.
type ExtPairIdx = (PairIdx, ExtPairAnnotation) Source
An extended basepair is a basepair, annotated with edge and CTisomerism.
type ExtPair = (Pair, ExtPairAnnotation) Source
An extended basepair, with nucleotides an annotation.
little helpers
pattern CHH :: (CTisomerism, Edge, Edge) Source
pattern CHS :: (CTisomerism, Edge, Edge) Source
pattern CHW :: (CTisomerism, Edge, Edge) Source
pattern CSH :: (CTisomerism, Edge, Edge) Source
pattern CSS :: (CTisomerism, Edge, Edge) Source
pattern CSW :: (CTisomerism, Edge, Edge) Source
pattern CWH :: (CTisomerism, Edge, Edge) Source
pattern CWS :: (CTisomerism, Edge, Edge) Source
pattern CWW :: (CTisomerism, Edge, Edge) Source
pattern THH :: (CTisomerism, Edge, Edge) Source
pattern THS :: (CTisomerism, Edge, Edge) Source
pattern THW :: (CTisomerism, Edge, Edge) Source
pattern TSH :: (CTisomerism, Edge, Edge) Source
pattern TSS :: (CTisomerism, Edge, Edge) Source
pattern TSW :: (CTisomerism, Edge, Edge) Source
pattern TWH :: (CTisomerism, Edge, Edge) Source
pattern TWS :: (CTisomerism, Edge, Edge) Source
pattern TWW :: (CTisomerism, Edge, Edge) Source
tuple-like selection
class BaseSelect a b | a -> b where Source
Selection of nucleotides and/or type classes independent of which type we are looking at.
select first index or nucleotide
select second index or nucleotide
select both nucleotides as pair
baseT :: a -> ExtPairAnnotation Source
select basepair type if existing or return default cWW
update first index or nucleotide
update second index or nucleotide
updP :: (b, b) -> a -> a Source
update complete pair
updT :: ExtPairAnnotation -> a -> a Source
update basepair type, error if not possible due to type a
BaseSelect ((a, a), ExtPairAnnotation) a | extended pairtype annotation given |
BaseSelect (a, a) a | simple cis/wc-wc basepairs |