BiobaseXNA-0.6.3.0: Efficient RNA/DNA representations

Safe HaskellNone

Biobase.Secondary.Diagrams

Contents

Description

Types for RNA secondary structure. Types vary from the simplest array (D1Secondary) to rather complex ones.

TODO The complex ones are still coming in from other libraries.

TODO can we use Char8 instead of Char?

TODO prepare for extended RNA secondary structures!

Synopsis

Documentation

newtype D1Secondary Source

RNA secondary structure with 1-diagrams. Each nucleotide is paired with at most one other nucleotide. A nucleotide with index k in [0..len-1] is paired if unD1S VU.! k > 0.

Constructors

D1S 

Fields

unD1S :: Vector Int
 

Instances

Eq D1Secondary 
Read D1Secondary 
Show D1Secondary 
MkD2Secondary D1Secondary

Conversion between D1S and D2S is lossy in D2S -> D1S

TODO fromD2S makes me wanna rewrite everything...

newtype D2Secondary Source

Constructors

D2S 

Instances

Eq D2Secondary 
Read D2Secondary 
Show D2Secondary 
MkD1Secondary D2Secondary

Conversion between D1S and D2S is lossy in D2S -> D1S

class MkD1Secondary a whereSource

Instances

MkD1Secondary String

A fast instance for getting the pair list of vienna-structures.

MkD1Secondary D2Secondary

Conversion between D1S and D2S is lossy in D2S -> D1S

MkD1Secondary (Vector Char) 
MkD1Secondary (Int, [PairIdx])

(Length,List of Pairs)

MkD1Secondary ([String], String)

A second primitive generator, requiring dictionary and String. This one generates pairs that are then used by the above instance. The dict is a list of possible brackets: [()] being the minimal set.

NOTE no dictionary is returned by fromD1S.

TODO return dictionary that is actually seen?

MkD1Secondary ([String], Vector Char)

Generate Secondary given that we have an unboxed vector of characters

class MkD2Secondary a whereSource

Instances

MkD2Secondary D1Secondary

Conversion between D1S and D2S is lossy in D2S -> D1S

TODO fromD2S makes me wanna rewrite everything...

MkD2Secondary (Int, [ExtPairIdx]) 

Tree-based representation

data SSTree idx a Source

A secondary-structure tree. Has no notion of pseudoknots.

Constructors

SSTree idx a [SSTree idx a] 
SSExt Int a [SSTree idx a] 

Instances

(Eq idx, Eq a) => Eq (SSTree idx a) 
(Read idx, Read a) => Read (SSTree idx a) 
(Show idx, Show a) => Show (SSTree idx a) 

d1sTree :: D1Secondary -> SSTree PairIdx ()Source

Create a tree from (pseudoknot-free [not checked]) 1-diagrams.

d2sTree :: D2Secondary -> SSTree ExtPairIdx ()Source

Create a tree from (pseudoknot-free [not checked]) 2-diagrams.

d2Compare :: (Ord t3, Ord t2) => ((t2, t3), t) -> ((t2, t3), t1) -> OrderingSource

d2Grouping :: (Ord a, Ord a1) => ((a, a1), t) -> ((a, a1), t1) -> BoolSource

Instances for D1S

Instances for D2S

Older instances (should still work)

Helper functions

dotBracket :: [String] -> String -> [(Int, Int)]Source

Secondary structure parser which allows pseudoknots, if they use different kinds of brackets.