module BioInf.ViennaRNA.Bindings
( module BioInf.ViennaRNA.Bindings
, CofoldF (..)
, Duplex (..)
) where
import Data.ByteString.Char8
import qualified Data.Array.IArray as A
import BioInf.ViennaRNA.Bindings.FFI.Centroid as FFI
import BioInf.ViennaRNA.Bindings.FFI.CoFold as FFI
import BioInf.ViennaRNA.Bindings.FFI.Duplex as FFI
import BioInf.ViennaRNA.Bindings.FFI.Fold as FFI
import BioInf.ViennaRNA.Bindings.FFI.PartFunc as FFI
mfe :: ByteString -> IO (Double,ByteString)
mfe = ffiFold
mfeTemp :: Double -> ByteString -> IO (Double,ByteString)
mfeTemp = ffiFoldTemp
circmfe :: ByteString -> IO (Double,ByteString)
circmfe = ffiCircFold
eos :: ByteString -> ByteString -> IO Double
eos i s = ffiEnergyOfStructure i s 0
eosTemp :: Double -> ByteString -> ByteString -> IO Double
eosTemp t i s = ffiEnergyOfStructureTemp t i s 0
eosCirc :: ByteString -> ByteString -> IO Double
eosCirc i s = ffiEnergyOfCircStructure i s 0
part :: ByteString -> IO (Double,ByteString,A.Array (Int,Int) Double)
part = ffi_pf_fold
partConstrained :: ByteString -> ByteString -> IO (Double, ByteString, A.Array (Int,Int) Double)
partConstrained = ffi_pf_fold_constrained
circPart :: ByteString -> IO (Double,ByteString,A.Array (Int,Int) Double)
circPart = ffi_pf_circ_fold
circPartConstrained :: ByteString -> ByteString -> IO (Double, ByteString, A.Array (Int,Int) Double)
circPartConstrained = ffi_pf_circ_fold_constrained
centroidTemp :: Double -> ByteString -> IO (Double,ByteString,Double)
centroidTemp t i = ffiCentroidTemp t i
coeos :: ByteString -> ByteString -> Int -> IO Double
coeos i s c = ffiCoEnergyOfStructure c i s 0
comfe :: ByteString -> Int -> IO (Double,ByteString)
comfe s c = ffiCoFold c s
copart :: ByteString -> Int -> IO (CofoldF,ByteString,A.Array (Int,Int) Double)
copart s c = ffiCoPartitionFunction c s
copartConstrained :: ByteString -> ByteString -> Int -> IO (CofoldF,ByteString,A.Array (Int,Int) Double)
copartConstrained sq str c = ffiCoPartitionConstrained c sq str
duplexFold :: ByteString -> ByteString -> IO Duplex
duplexFold = ffiDuplexFold