packages feed

ViennaRNA-extras-0.0.0.1: BioInf/ViennaRNA/RNAeval.hs

module BioInf.ViennaRNA.RNAeval where

import Biobase.Types.Energy (DG(..))
import Biobase.Types.Sequence (RNAseq(..))
import Biobase.Types.Structure (RNAss(..))
import BioInf.ViennaRNA.Bindings (eosTemp)

import BioInf.ViennaRNA.Internal



-- | High-level wrapper for energy-of-struct calculations similar to the
-- command line @RNAeval@.

rnaeval ∷ Double → RNAseq → RNAss → DG
rnaeval t (RNAseq s1) (RNAss s2)
  = unsafePerformIO . withMutex
  $! DG <$> eosTemp t s1 s2
{-# NoInline rnaeval #-}