RNAFold-0.0.2.1: RNA secondary structure prediction

BioInf.RNAFold.EnergyInt

Description

Temporary hackery until all base libraries understand newtype Energy. And yes, for testing too.

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