BiobaseXNA-0.10.0.0: Efficient RNA/DNA/Protein Primary/Secondary Structure

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".

Since we often want to make "pairedness" explicit, we have a newtype for this as well.

TODO set ext-annotations to be (isomerism,edge,edge) and have a asString instance to read "cWW" "tSH" and other notation.

Synopsis

Newtype for efficient basepair encoding.

newtype Basepair Source #

Encode a base pair as a single Int.

Constructors

BP 

Fields

Instances

Eq Basepair Source # 
Ord Basepair Source # 
Ix Basepair Source # 
Generic Basepair Source # 

Associated Types

type Rep Basepair :: * -> * #

Methods

from :: Basepair -> Rep Basepair x #

to :: Rep Basepair x -> Basepair #

Index Basepair Source # 
IndexStream Basepair Source # 
FromJSON Basepair Source # 
ToJSON Basepair Source # 
Binary Basepair Source # 

Methods

put :: Basepair -> Put #

get :: Get Basepair #

putList :: [Basepair] -> Put #

Serialize Basepair Source # 
Unbox Basepair Source # 
Vector Vector Basepair Source # 
MVector MVector Basepair Source # 
BasepairConvert ViennaPair Basepair Source # 
BasepairConvert Basepair ViennaPair Source # 
BasepairConvert Basepair (Letter * RNA, Letter * RNA) Source # 
IndexStream z => IndexStream ((:.) z Basepair) Source # 

Methods

streamUp :: Monad m => (z :. Basepair) -> (z :. Basepair) -> Stream m (z :. Basepair) #

streamDown :: Monad m => (z :. Basepair) -> (z :. Basepair) -> Stream m (z :. Basepair) #

BasepairConvert (Letter * RNA, Letter * RNA) Basepair Source # 
type Rep Basepair Source # 
type Rep Basepair = D1 (MetaData "Basepair" "Biobase.Secondary.Basepair" "BiobaseXNA-0.10.0.0-KYWIxTC5DTnJ4ZvJWky3ys" True) (C1 (MetaCons "BP" PrefixI True) (S1 (MetaSel (Just Symbol "getBP") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))
data Vector Basepair Source # 
data MVector s Basepair Source # 

pattern AA :: Basepair Source #

pattern AC :: Basepair Source #

pattern AG :: Basepair Source #

pattern AU :: Basepair Source #

pattern CA :: Basepair Source #

pattern CC :: Basepair Source #

pattern CG :: Basepair Source #

pattern CU :: Basepair Source #

pattern GA :: Basepair Source #

pattern GC :: Basepair Source #

pattern GG :: Basepair Source #

pattern GU :: Basepair Source #

pattern UA :: Basepair Source #

pattern UC :: Basepair Source #

pattern UG :: Basepair Source #

pattern UU :: Basepair Source #

pattern NS :: Basepair Source #

pattern NoBP :: Basepair Source #

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

Instances

Bounded Edge Source # 
Enum Edge Source # 

Methods

succ :: Edge -> Edge #

pred :: Edge -> Edge #

toEnum :: Int -> Edge #

fromEnum :: Edge -> Int #

enumFrom :: Edge -> [Edge] #

enumFromThen :: Edge -> Edge -> [Edge] #

enumFromTo :: Edge -> Edge -> [Edge] #

enumFromThenTo :: Edge -> Edge -> Edge -> [Edge] #

Eq Edge Source # 

Methods

(==) :: Edge -> Edge -> Bool #

(/=) :: Edge -> Edge -> Bool #

Ord Edge Source # 

Methods

compare :: Edge -> Edge -> Ordering #

(<) :: Edge -> Edge -> Bool #

(<=) :: Edge -> Edge -> Bool #

(>) :: Edge -> Edge -> Bool #

(>=) :: Edge -> Edge -> Bool #

max :: Edge -> Edge -> Edge #

min :: Edge -> Edge -> Edge #

Read Edge Source #

Human-readable Read instance.

Show Edge Source #

Human-readable Show instance.

Methods

showsPrec :: Int -> Edge -> ShowS #

show :: Edge -> String #

showList :: [Edge] -> ShowS #

Ix Edge Source # 

Methods

range :: (Edge, Edge) -> [Edge] #

index :: (Edge, Edge) -> Edge -> Int #

unsafeIndex :: (Edge, Edge) -> Edge -> Int

inRange :: (Edge, Edge) -> Edge -> Bool #

rangeSize :: (Edge, Edge) -> Int #

unsafeRangeSize :: (Edge, Edge) -> Int

Generic Edge Source # 

Associated Types

type Rep Edge :: * -> * #

Methods

from :: Edge -> Rep Edge x #

to :: Rep Edge x -> Edge #

FromJSON Edge Source # 
ToJSON Edge Source # 
Binary Edge Source # 

Methods

put :: Edge -> Put #

get :: Get Edge #

putList :: [Edge] -> Put #

Serialize Edge Source # 

Methods

put :: Putter Edge #

get :: Get Edge #

Unbox Edge Source # 
IsostericityLookup ExtPair Source #

For extended basepairs, we take the default mapping and go from there.

TODO inClass missing

Vector Vector Edge Source # 
MVector MVector Edge Source # 
RemovePseudoKnots [ExtPairIdx] Source # 
RemovePseudoKnots (Vector ExtPairIdx) Source #

Remove pseudoknotted pairs from extended RNA secondary structures.

MkD2Secondary (Int, [ExtPairIdx]) Source # 
type Rep Edge Source # 
type Rep Edge = D1 (MetaData "Edge" "Biobase.Secondary.Basepair" "BiobaseXNA-0.10.0.0-KYWIxTC5DTnJ4ZvJWky3ys" True) (C1 (MetaCons "Edge" PrefixI True) (S1 (MetaSel (Just Symbol "unEdge") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))
data Vector Edge Source # 
data MVector s Edge Source # 

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

Instances

Bounded CTisomerism Source # 
Enum CTisomerism Source # 
Eq CTisomerism Source # 
Ord CTisomerism Source # 
Read CTisomerism Source #

Human-readable Read instance.

Show CTisomerism Source #

Human-readable Show instance.

Ix CTisomerism Source # 
Generic CTisomerism Source # 

Associated Types

type Rep CTisomerism :: * -> * #

FromJSON CTisomerism Source # 
ToJSON CTisomerism Source # 
Binary CTisomerism Source # 
Serialize CTisomerism Source # 
Unbox CTisomerism Source # 
IsostericityLookup ExtPair Source #

For extended basepairs, we take the default mapping and go from there.

TODO inClass missing

Vector Vector CTisomerism Source # 
MVector MVector CTisomerism Source # 
RemovePseudoKnots [ExtPairIdx] Source # 
RemovePseudoKnots (Vector ExtPairIdx) Source #

Remove pseudoknotted pairs from extended RNA secondary structures.

MkD2Secondary (Int, [ExtPairIdx]) Source # 
type Rep CTisomerism Source # 
type Rep CTisomerism = D1 (MetaData "CTisomerism" "Biobase.Secondary.Basepair" "BiobaseXNA-0.10.0.0-KYWIxTC5DTnJ4ZvJWky3ys" True) (C1 (MetaCons "CT" PrefixI True) (S1 (MetaSel (Just Symbol "unCT") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))
data Vector CTisomerism Source # 
data MVector s CTisomerism Source # 

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 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 #