BiobaseXNA-0.9.1.1: Efficient RNA/DNA representations

Safe HaskellNone
LanguageHaskell2010

Biobase.Secondary.Basepair

Contents

Description

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.

Synopsis

Newtypes for extended secondary structures

Encode which of three edges is engaged in base pairing

newtype Edge Source

Each nucleotide in a pair may be paired using one of three edges: watson-crick, sugar, or hoogsteen.

Constructors

Edge 

Fields

unEdge :: Int
 

Instances

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) 

pattern W :: Edge Source

pattern S :: Edge Source

pattern H :: Edge Source

Is the base pair in cis or trans configuration

newtype CTisomerism Source

Nucleotides in a pairing may be in the cis(==?) or trans(==?) state.

Constructors

CT 

Fields

unCT :: Int
 

Instances

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) 

Types

type PairIdx = (Int, Int) Source

A basepair is simply a pair of Ints which are 0-indexing a sequence.

type Pair = (Letter RNA, Letter RNA) Source

A pair as a tuple containing Nucs.

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.

Methods

baseL :: a -> b Source

select first index or nucleotide

baseR :: a -> b Source

select second index or nucleotide

baseP :: a -> (b, b) Source

select both nucleotides as pair

baseT :: a -> ExtPairAnnotation Source

select basepair type if existing or return default cWW

updL :: b -> a -> a Source

update first index or nucleotide

updR :: b -> a -> a Source

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

Instances

BaseSelect ((a, a), ExtPairAnnotation) a

extended pairtype annotation given

BaseSelect (a, a) a

simple cis/wc-wc basepairs