packages feed

ViennaRNA-bindings 0.1.0.0 → 0.1.1.0

raw patch · 7 files changed

+81/−38 lines, 7 files

Files

BioInf/ViennaRNA/Bindings.hs view
@@ -13,8 +13,8 @@  import qualified Data.Array.IArray as A -import BioInf.ViennaRNA.Bindings.FFI.Fold as FFI-import BioInf.ViennaRNA.Bindings.FFI.CoFold as FFI+import BioInf.ViennaRNA.Bindings.FFI.CoFold   as FFI+import BioInf.ViennaRNA.Bindings.FFI.Fold     as FFI import BioInf.ViennaRNA.Bindings.FFI.PartFunc as FFI  -- | Fold a sequence into an optimal secondary structure. Returns a pair of@@ -35,7 +35,10 @@ -- pair probability table.  part :: String -> IO (Double,String,A.Array (Int,Int) Double)-part = ffiPartitionFunction+part = ffi_pf_fold++partConstrained :: String -> String -> IO (Double, String, A.Array (Int,Int) Double)+partConstrained = ffi_pf_fold_constrained   
BioInf/ViennaRNA/Bindings/FFI/CoFold.chs view
@@ -8,28 +8,26 @@   , CofoldF (..)   ) where -import Foreign.C.String-import Foreign.C.Types-import Foreign.Marshal.Alloc-import Foreign.Ptr-import Foreign.Storable-import GHC.Float-import Unsafe.Coerce+import           Control.Applicative+import           Control.Monad+import           Foreign.C.String+import           Foreign.C.Types+import           Foreign.Marshal.Alloc+import           Foreign.Marshal.Array+import           Foreign.Ptr+import           Foreign.Storable+import           GHC.Float import qualified Data.Array.IArray as A-import Foreign.Marshal.Array-import Control.Applicative-import Control.Monad--import BioInf.ViennaRNA.Bindings.FFI.Utils+import           Unsafe.Coerce -import Debug.Trace+import           BioInf.ViennaRNA.Bindings.FFI.Utils   -#include <ViennaRNA/fold.h>-#include <ViennaRNA/data_structures.h>-#include <ViennaRNA/cofold.h>-#include <ViennaRNA/part_func_co.h>+#include "cofold.h"+#include "data_structures.h"+#include "fold.h"+#include "part_func_co.h"  {#pointer *cofoldF as CofoldFPtr -> CofoldF #} 
BioInf/ViennaRNA/Bindings/FFI/Fold.chs view
@@ -17,8 +17,7 @@   --#include <ViennaRNA/fold.h>+#include "fold.h"  ffiFold :: String -> IO (Double,String) ffiFold inp = withCAString inp $ \cinp ->
BioInf/ViennaRNA/Bindings/FFI/PartFunc.chs view
@@ -1,34 +1,52 @@ {-# LANGUAGE ForeignFunctionInterface #-}  module BioInf.ViennaRNA.Bindings.FFI.PartFunc-  ( ffiPartitionFunction+  ( ffi_pf_fold+  , ffi_pf_fold_constrained   ) where -import Foreign.C.String-import Foreign.C.Types-import Foreign.Marshal.Alloc-import Foreign.Marshal.Array-import Foreign.Ptr-import GHC.Float+import           Foreign.C.String+import           Foreign.C.Types+import           Foreign.Marshal.Alloc+import           Foreign.Marshal.Array+import           Foreign.Ptr+import           GHC.Float import qualified Data.Array.IArray as A-import Unsafe.Coerce+import           Unsafe.Coerce  import BioInf.ViennaRNA.Bindings.FFI.Utils   -#include <ViennaRNA/part_func.h>+#include "part_func.h" -ffiPartitionFunction :: String -> IO (Double,String,A.Array (Int,Int) Double)-ffiPartitionFunction i =+ffi_pf_fold :: String -> IO (Double,String,A.Array (Int,Int) Double)+ffi_pf_fold i =   withCAString i $ \ci ->   withCAString i $ \cs -> do   let n = length i   let z = n * (n+1) `div` 2 +1-  e  <- {#call pf_fold #} ci cs+  e  <- {#call ffiwrap_pf_fold_constrained #} ci cs 0   s  <- peekCAString cs   bp <- {#call export_bppm #}   xs <- peekArray z (bp :: Ptr CDouble)   let ar = A.accumArray (const id) 0 ((1,1),(n,n)) $ zip [ (ii,jj) | ii <- [n,n-1..1], jj <- [n,n-1..ii]] (drop 1 $ map unsafeCoerce xs)   return (cf2d e, s, ar)++ffi_pf_fold_constrained :: String -> String -> IO (Double,String,A.Array (Int,Int) Double)+ffi_pf_fold_constrained i s =+  withCAString i $ \ci ->+  withCAString s $ \cs -> do+  let n = length i+  let z = n * (n+1) `div` 2 +1+  e  <- {#call ffiwrap_pf_fold_constrained #} ci cs 1+  s  <- peekCAString cs+  bp <- {#call export_bppm #}+  xs <- peekArray z (bp :: Ptr CDouble)+  let ar = A.accumArray (const id) 0 ((1,1),(n,n)) $ zip [ (ii,jj) | ii <- [n,n-1..1], jj <- [n,n-1..ii]] (drop 1 $ map unsafeCoerce xs)+  return (cf2d e, s, ar)++#c+float ffiwrap_pf_fold_constrained (const char *sequence, char *structure, int constrained);+#endc 
ViennaRNA-bindings.cabal view
@@ -1,10 +1,10 @@ name:                ViennaRNA-bindings-version:             0.1.0.0+version:             0.1.1.0 synopsis:            ViennaRNA v2 bindings homepage:            http://www.tbi.univie.ac.at/~choener/ license:             OtherLicense license-file:        LICENSE-author:              Christian Hoener zu Siederdissen (bindings) 2013, The ViennaRNA Team (library) 1994-2013+author:              Christian Hoener zu Siederdissen (bindings) 2013-4, The ViennaRNA Team (library) 1994-2014 maintainer:          choener@tbi.univie.ac.at copyright:           The ViennaRNA Team 1994-2013 category:            Bioinformatics, FFI@@ -22,8 +22,12 @@   ViennaRNA package.   .   If you use this software, please cite:-  R. Lorenz, S.H. Bernhart, C. Hoener zu Siederdissen, H. Tafer, C. Flamm, P.F. Stadler and I.L. Hofacker (2011),-  "ViennaRNA Package 2.0", Algorithms for Molecular Biology: 6:26+  .+  @+  R. Lorenz, S.H. Bernhart, C. Hoener zu Siederdissen, H. Tafer, C. Flamm, P.F. Stadler and I.L. Hofacker (2011)+  ViennaRNA Package 2.0+  Algorithms for Molecular Biology: 6:26+  @  extra-source-files:   cbits/circfold.inc@@ -55,6 +59,7 @@   include/PS_dot.h   include/subopt.h   include/utils.h+  changelog   library@@ -83,6 +88,7 @@     cbits/part_func.c     cbits/part_func_co.c     cbits/cofold.c+    cbits/ffiwrap_part_func.c   cc-options:   include-dirs: include   includes: config.h
+ cbits/ffiwrap_part_func.c view
@@ -0,0 +1,8 @@++#include "part_func.h"++float ffiwrap_pf_fold_constrained (const char *sequence, char *structure, int constrained)+{+  return pf_fold_par (sequence, structure, 0, 1, constrained, 0);+}+
+ changelog view
@@ -0,0 +1,11 @@+0.1.1.0+-------++- breaking changes to PartFunc.chs+- constrained partition function folding+- includes should now all be local (that one was bad)++0.1.0.0+-------++- relevant cbits are now provided as part of the cabal package