-- | The Vienna 2004 model is a mirror of the Turner data structure. The -- difference is that The ViennaRNA package uses an explicit annotation for RNA -- basepairs. -- -- Furthermore, all energies are stored in parts of 1/100, using Ints instead -- of Doubles. module Biobase.Vienna where import Data.ByteString (ByteString) import Data.Map (Map) import Data.PrimitiveArray import Biobase.Primary import Biobase.Secondary.Vienna data Vienna2004 = Vienna2004 { stack :: PrimArray (ViennaPair,ViennaPair) Int , dangle3 :: PrimArray PN Int , dangle5 :: PrimArray PN Int , hairpinL :: PrimArray Int Int , hairpinMM :: PrimArray PNN Int , hairpinLookup :: Map [Nuc] Int , hairpinGGG :: Int , hairpinCslope :: Int , hairpinCintercept :: Int , hairpinC3 :: Int , bulgeL :: PrimArray Int Int , bulgeSingleC :: Int , iloop1x1 :: PrimArray (ViennaPair,ViennaPair,(Nuc,Nuc)) Int , iloop2x1 :: PrimArray (ViennaPair,ViennaPair,(Nuc,Nuc,Nuc)) Int , iloop2x2 :: PrimArray (ViennaPair,ViennaPair,(Nuc,Nuc,Nuc,Nuc)) Int , iloopMM :: PrimArray PNN Int , iloop2x3MM :: PrimArray PNN Int , iloop1xnMM :: PrimArray PNN Int , iloopL :: PrimArray Int Int , multiMM :: PrimArray PNN Int , ninio :: Int , maxNinio :: Int , multiOffset :: Int , multiNuc :: Int , multiHelix :: Int , multiAsym :: Int , multiStrain :: Int , extMM :: PrimArray PNN Int , coaxial :: PrimArray (ViennaPair,ViennaPair) Int -- no intervening unpaired nucleotides , coaxStack :: PrimArray PNN Int , tStackCoax :: PrimArray PNN Int , largeLoop :: Int , termAU :: Int , intermolecularInit :: Int } -- deriving (Read,Show) type PNN = (ViennaPair,Nuc,Nuc) type PN = (ViennaPair,Nuc)