RNAwolf- RNA folding with non-canonical basepairs and base-triplets.




External loops are complete substructures, of which zero to many sit on the chain of nucleotides.


Unpaired left nucleotide

fLeftUnpaired :: BaseF (NExtn -> Features (Vector (PairIdx, Double)))Source

An external loop with an unpaired nucleotide to the left

btLeftUnpaired :: Params -> Primary -> NExtn -> NBT -> NBTSource

Backtracking a structure with an unpaired nucleotide to the left.

FIXME In btLeftUnpaired, allow only non-empty structures on the right. It would be nice to make the recursion scheme take care of that.

exactly one stem with indices (i,k), i<k<=j

fStem :: BaseF (NStem -> Features (Vector (PairIdx, Double)))Source

Energy for exactly one stem at (i,k)

btStem :: Params -> Primary -> NExtn -> NStem -> NBT -> NBTSource

Backtrack one stem with right index k.

The neutral element for energy. This is an unpaired stretch between (i,j)

fOne :: BaseF (Features (Vector (PairIdx, Double)))Source

This one is important as otherwise, some stretches of nucleotides will always have to be paired. (Obviously, I forgot to add this one for a time...)

Two or more stems in the external structure

fStems :: BaseF (NStem -> NExtn -> Features (Vector (Int, Double)))Source

External structures with more than one stem have a NStem on the left and an external NExtn structure on the right.

btStems :: Params -> Primary -> NStem -> NExtn -> NBT -> NBT -> NBTSource

Backtracking of an external structure with more than one stem