RNAFold-0.0.2.1: RNA secondary structure prediction

BioInf.RNAFold.Energy

Synopsis

Documentation

class (Show a, Ring a, Unbox a, Prim a) => FoldFunctions a whereSource

The folding functions. It could happen that we need different folding functions with the same type, hence the class-based approach. The default instance uses the usual ring methods.

Methods

stackOpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

stackIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Cell, a)]Source

hairpinOpt :: TurnerTables a -> Primary -> Int -> Int -> aSource

hairpinIdx :: TurnerTables a -> Primary -> Int -> Int -> [a]Source

largeInteriorLoopOpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

largeInteriorLoopIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Cell, a)]Source

tabbedInteriorLoopOpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

tabbedInteriorLoopIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Cell, a)]Source

bulgeLOpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

bulgeLIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Cell, a)]Source

bulgeROpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

bulgeRIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Cell, a)]Source

interior1xnLOpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

interior1xnLIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Cell, a)]Source

interior1xnROpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

interior1xnRIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Cell, a)]Source

multibranchIJLoopOpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

multibranchIJLoopIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Cell, a)]Source

multibranchUnpairedJOpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

multibranchUnpairedJIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Cell, a)]Source

multibranchKJHelixOpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

multibranchKJHelixIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Int, a)]Source

multibranchAddKJHelixOpt :: TurnerTables a -> Primary -> Table a -> Table a -> Int -> Int -> aSource

multibranchAddKJHelixIdx :: TurnerTables a -> Primary -> Table a -> Table a -> Int -> Int -> [(Int, a)]Source

multibranchCloseOpt :: TurnerTables a -> Primary -> Table a -> Table a -> Int -> Int -> aSource

multibranchCloseIdx :: TurnerTables a -> Primary -> Table a -> Table a -> Int -> Int -> [(Int, a)]Source

externalLoopOpt :: TurnerTables a -> Primary -> Table a -> Int -> Int -> aSource

externalLoopIdx :: TurnerTables a -> Primary -> Table a -> Int -> Int -> [(Cell, a)]Source

externalAddLoopOpt :: TurnerTables a -> Primary -> Table a -> Table a -> Int -> Int -> aSource

externalAddLoopIdx :: TurnerTables a -> Primary -> Table a -> Table a -> Int -> Int -> [(Int, a)]Source

calcNinio :: a -> a -> Int -> aSource

Calculate the ninio asymmetric malus. Can not be written using ring functions alone as a min or max functions is required.

calcTermAUSource

Arguments

:: a 
-> ViennaPair 
-> a

Apply terminal AU penalty

Applies a terminal AU/GU penalty, where required.

TODO shouldn't this be just: if CG||GC then one else termAU?

calcLargeLoop :: Int -> aSource

large hairpin loops >30 require special calculations that involve floor, rounding and other stuff that can not be handled by the Ring class alone