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

Safe HaskellNone
LanguageHaskell2010

Biobase.Secondary.New

Contents

Description

New parsers and structures for secondary structures. The structures here a strict.

TODO Parser should check if a #Vienna Secondary Structure or #Extended Secondary Structure precedes the entries.

Synopsis

Documentation

data SubStructure t a Source #

A completely closed sub-structure. An unpaired region . is closed. A paired region (r) is closed, where r contains arbitrarily many unpaired and paired elements.

TODO Should be extended with Extended, but this requires knowing which of the ends overlap with paired: left, right, or both.

Constructors

Unpaired 

Fields

Paired 

Fields

Instances

Functor (SubStructure k t) Source # 

Methods

fmap :: (a -> b) -> SubStructure k t a -> SubStructure k t b #

(<$) :: a -> SubStructure k t b -> SubStructure k t a #

Foldable (SubStructure k t) Source # 

Methods

fold :: Monoid m => SubStructure k t m -> m #

foldMap :: Monoid m => (a -> m) -> SubStructure k t a -> m #

foldr :: (a -> b -> b) -> b -> SubStructure k t a -> b #

foldr' :: (a -> b -> b) -> b -> SubStructure k t a -> b #

foldl :: (b -> a -> b) -> b -> SubStructure k t a -> b #

foldl' :: (b -> a -> b) -> b -> SubStructure k t a -> b #

foldr1 :: (a -> a -> a) -> SubStructure k t a -> a #

foldl1 :: (a -> a -> a) -> SubStructure k t a -> a #

toList :: SubStructure k t a -> [a] #

null :: SubStructure k t a -> Bool #

length :: SubStructure k t a -> Int #

elem :: Eq a => a -> SubStructure k t a -> Bool #

maximum :: Ord a => SubStructure k t a -> a #

minimum :: Ord a => SubStructure k t a -> a #

sum :: Num a => SubStructure k t a -> a #

product :: Num a => SubStructure k t a -> a #

Traversable (SubStructure k t) Source # 

Methods

traverse :: Applicative f => (a -> f b) -> SubStructure k t a -> f (SubStructure k t b) #

sequenceA :: Applicative f => SubStructure k t (f a) -> f (SubStructure k t a) #

mapM :: Monad m => (a -> m b) -> SubStructure k t a -> m (SubStructure k t b) #

sequence :: Monad m => SubStructure k t (m a) -> m (SubStructure k t a) #

Eq a => Eq (SubStructure k t a) Source # 

Methods

(==) :: SubStructure k t a -> SubStructure k t a -> Bool #

(/=) :: SubStructure k t a -> SubStructure k t a -> Bool #

Ord a => Ord (SubStructure k t a) Source # 

Methods

compare :: SubStructure k t a -> SubStructure k t a -> Ordering #

(<) :: SubStructure k t a -> SubStructure k t a -> Bool #

(<=) :: SubStructure k t a -> SubStructure k t a -> Bool #

(>) :: SubStructure k t a -> SubStructure k t a -> Bool #

(>=) :: SubStructure k t a -> SubStructure k t a -> Bool #

max :: SubStructure k t a -> SubStructure k t a -> SubStructure k t a #

min :: SubStructure k t a -> SubStructure k t a -> SubStructure k t a #

Read a => Read (SubStructure k t a) Source # 
Show a => Show (SubStructure k t a) Source # 

Methods

showsPrec :: Int -> SubStructure k t a -> ShowS #

show :: SubStructure k t a -> String #

showList :: [SubStructure k t a] -> ShowS #

Generic (SubStructure k t a) Source # 

Associated Types

type Rep (SubStructure k t a) :: * -> * #

Methods

from :: SubStructure k t a -> Rep (SubStructure k t a) x #

to :: Rep (SubStructure k t a) x -> SubStructure k t a #

type Rep (SubStructure k t a) Source # 
type Rep (SubStructure k t a) = D1 (MetaData "SubStructure" "Biobase.Secondary.New" "BiobaseXNA-0.10.0.0-KYWIxTC5DTnJ4ZvJWky3ys" False) ((:+:) (C1 (MetaCons "Unpaired" PrefixI True) (S1 (MetaSel (Just Symbol "_label") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 a))) (C1 (MetaCons "Paired" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_label") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 a)) (S1 (MetaSel (Just Symbol "_subStructures") NoSourceUnpackedness SourceStrict DecidedUnpack) (Rec0 (Vector (SubStructure k t a)))))))

label :: forall t a. Lens' (SubStructure t a) a Source #

_Paired :: forall t a t. Prism (SubStructure t a) (SubStructure t a) (a, Vector (SubStructure t a)) (a, Vector (SubStructure t a)) Source #

_Unpaired :: forall t a. Prism' (SubStructure t a) a Source #

newtype FullStructure t a Source #

A full structure is composed of a number of sub-structures. The empty structure is a full structure.

Constructors

FullStructure 

Instances

Functor (FullStructure k t) Source # 

Methods

fmap :: (a -> b) -> FullStructure k t a -> FullStructure k t b #

(<$) :: a -> FullStructure k t b -> FullStructure k t a #

Foldable (FullStructure k t) Source # 

Methods

fold :: Monoid m => FullStructure k t m -> m #

foldMap :: Monoid m => (a -> m) -> FullStructure k t a -> m #

foldr :: (a -> b -> b) -> b -> FullStructure k t a -> b #

foldr' :: (a -> b -> b) -> b -> FullStructure k t a -> b #

foldl :: (b -> a -> b) -> b -> FullStructure k t a -> b #

foldl' :: (b -> a -> b) -> b -> FullStructure k t a -> b #

foldr1 :: (a -> a -> a) -> FullStructure k t a -> a #

foldl1 :: (a -> a -> a) -> FullStructure k t a -> a #

toList :: FullStructure k t a -> [a] #

null :: FullStructure k t a -> Bool #

length :: FullStructure k t a -> Int #

elem :: Eq a => a -> FullStructure k t a -> Bool #

maximum :: Ord a => FullStructure k t a -> a #

minimum :: Ord a => FullStructure k t a -> a #

sum :: Num a => FullStructure k t a -> a #

product :: Num a => FullStructure k t a -> a #

Traversable (FullStructure k t) Source # 

Methods

traverse :: Applicative f => (a -> f b) -> FullStructure k t a -> f (FullStructure k t b) #

sequenceA :: Applicative f => FullStructure k t (f a) -> f (FullStructure k t a) #

mapM :: Monad m => (a -> m b) -> FullStructure k t a -> m (FullStructure k t b) #

sequence :: Monad m => FullStructure k t (m a) -> m (FullStructure k t a) #

Eq a => Eq (FullStructure k t a) Source # 

Methods

(==) :: FullStructure k t a -> FullStructure k t a -> Bool #

(/=) :: FullStructure k t a -> FullStructure k t a -> Bool #

Ord a => Ord (FullStructure k t a) Source # 

Methods

compare :: FullStructure k t a -> FullStructure k t a -> Ordering #

(<) :: FullStructure k t a -> FullStructure k t a -> Bool #

(<=) :: FullStructure k t a -> FullStructure k t a -> Bool #

(>) :: FullStructure k t a -> FullStructure k t a -> Bool #

(>=) :: FullStructure k t a -> FullStructure k t a -> Bool #

max :: FullStructure k t a -> FullStructure k t a -> FullStructure k t a #

min :: FullStructure k t a -> FullStructure k t a -> FullStructure k t a #

Read a => Read (FullStructure k t a) Source # 
Show a => Show (FullStructure k t a) Source # 

Methods

showsPrec :: Int -> FullStructure k t a -> ShowS #

show :: FullStructure k t a -> String #

showList :: [FullStructure k t a] -> ShowS #

Generic (FullStructure k t a) Source # 

Associated Types

type Rep (FullStructure k t a) :: * -> * #

Methods

from :: FullStructure k t a -> Rep (FullStructure k t a) x #

to :: Rep (FullStructure k t a) x -> FullStructure k t a #

type Rep (FullStructure k t a) Source # 
type Rep (FullStructure k t a) = D1 (MetaData "FullStructure" "Biobase.Secondary.New" "BiobaseXNA-0.10.0.0-KYWIxTC5DTnJ4ZvJWky3ys" True) (C1 (MetaCons "FullStructure" PrefixI True) (S1 (MetaSel (Just Symbol "_fullStructure") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Vector (SubStructure k t a)))))

Parses a ViennaRNA secondary structure string.

Transform into a Tree.

toTree Source #

Arguments

:: (SubStructure t a -> Maybe b)

how to handle substructure elements? Nothing means discard this substructure and all children.

-> b

The root label

-> FullStructure (t :: k) a

The FullStructure to transform into a Tree.

-> Tree b 

Transform a FullStructure into a Tree.

Given a full structure generated like this: s = either (error . show) id $ parseVienna $ pack ".()(())."

a tree of just the base paired can be created with toTree (preview (_Paired._1)) () s