packages feed

BiobaseVienna 0.1.0.0 → 0.2.0.0

raw patch · 5 files changed

+80/−63 lines, 5 filesdep +repadep +vectordep ~BiobaseTurnerdep ~BiobaseXNAdep ~PrimitiveArrayPVP ok

version bump matches the API change (PVP)

Dependencies added: repa, vector

Dependency ranges changed: BiobaseTurner, BiobaseXNA, PrimitiveArray, cmdargs

API changes (from Hackage documentation)

- Biobase.Vienna.Import: instance (IdxConvert a c, IdxConvert b d) => IdxConvert (a, b) (c, d)
- Biobase.Vienna.Import: instance (IdxConvert a d, IdxConvert b e, IdxConvert c f) => IdxConvert (a, b, c) (d, e, f)
- Biobase.Vienna.Import: instance (IdxConvert al ar, IdxConvert bl br, IdxConvert cl cr, IdxConvert dl dr) => IdxConvert (al, bl, cl, dl) (ar, br, cr, dr)
- Biobase.Vienna.Import: instance IdxConvert Int Int
- Biobase.Vienna.Import: instance IdxConvert Nuc Nuc
- Biobase.Vienna.Import: instance IdxConvert Pair ViennaPair
+ Biobase.Vienna: type P = Z :. ViennaPair
+ Biobase.Vienna: type PP = (Z :. ViennaPair) :. ViennaPair
+ Biobase.Vienna: type PPNN = (PP :. Nuc) :. Nuc
+ Biobase.Vienna: type PPNNN = PPNN :. Nuc
+ Biobase.Vienna: type PPNNNN = PPNNN :. Nuc
+ Biobase.Vienna.Import: instance IdxConvert DIM1 DIM1
+ Biobase.Vienna.Import: instance IdxConvert PN PN
+ Biobase.Vienna.Import: instance IdxConvert PNN PNN
+ Biobase.Vienna.Import: instance IdxConvert PP PP
+ Biobase.Vienna.Import: instance IdxConvert PPNN PPNN
+ Biobase.Vienna.Import: instance IdxConvert PPNNN PPNNN
+ Biobase.Vienna.Import: instance IdxConvert PPNNNN PPNNNN
- Biobase.Vienna: Vienna2004 :: PrimArray (ViennaPair, ViennaPair) Int -> PrimArray PN Int -> PrimArray PN Int -> PrimArray Int Int -> PrimArray PNN Int -> Map [Nuc] Int -> Int -> Int -> Int -> Int -> PrimArray Int Int -> Int -> PrimArray (ViennaPair, ViennaPair, (Nuc, Nuc)) Int -> PrimArray (ViennaPair, ViennaPair, (Nuc, Nuc, Nuc)) Int -> PrimArray (ViennaPair, ViennaPair, (Nuc, Nuc, Nuc, Nuc)) Int -> PrimArray PNN Int -> PrimArray PNN Int -> PrimArray PNN Int -> PrimArray Int Int -> PrimArray PNN Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> PrimArray PNN Int -> PrimArray (ViennaPair, ViennaPair) Int -> PrimArray PNN Int -> PrimArray PNN Int -> Int -> Int -> Int -> Vienna2004
+ Biobase.Vienna: Vienna2004 :: PrimArray PP Int -> PrimArray PN Int -> PrimArray PN Int -> PrimArray DIM1 Int -> PrimArray PNN Int -> Map [Nuc] Int -> Int -> Int -> Int -> Int -> PrimArray DIM1 Int -> Int -> PrimArray PPNN Int -> PrimArray PPNNN Int -> PrimArray PPNNNN Int -> PrimArray PNN Int -> PrimArray PNN Int -> PrimArray PNN Int -> PrimArray DIM1 Int -> PrimArray PNN Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> PrimArray PNN Int -> PrimArray PP Int -> PrimArray PNN Int -> PrimArray PNN Int -> Int -> Int -> Int -> Vienna2004
- Biobase.Vienna: bulgeL :: Vienna2004 -> PrimArray Int Int
+ Biobase.Vienna: bulgeL :: Vienna2004 -> PrimArray DIM1 Int
- Biobase.Vienna: coaxial :: Vienna2004 -> PrimArray (ViennaPair, ViennaPair) Int
+ Biobase.Vienna: coaxial :: Vienna2004 -> PrimArray PP Int
- Biobase.Vienna: hairpinL :: Vienna2004 -> PrimArray Int Int
+ Biobase.Vienna: hairpinL :: Vienna2004 -> PrimArray DIM1 Int
- Biobase.Vienna: iloop1x1 :: Vienna2004 -> PrimArray (ViennaPair, ViennaPair, (Nuc, Nuc)) Int
+ Biobase.Vienna: iloop1x1 :: Vienna2004 -> PrimArray PPNN Int
- Biobase.Vienna: iloop2x1 :: Vienna2004 -> PrimArray (ViennaPair, ViennaPair, (Nuc, Nuc, Nuc)) Int
+ Biobase.Vienna: iloop2x1 :: Vienna2004 -> PrimArray PPNNN Int
- Biobase.Vienna: iloop2x2 :: Vienna2004 -> PrimArray (ViennaPair, ViennaPair, (Nuc, Nuc, Nuc, Nuc)) Int
+ Biobase.Vienna: iloop2x2 :: Vienna2004 -> PrimArray PPNNNN Int
- Biobase.Vienna: iloopL :: Vienna2004 -> PrimArray Int Int
+ Biobase.Vienna: iloopL :: Vienna2004 -> PrimArray DIM1 Int
- Biobase.Vienna: stack :: Vienna2004 -> PrimArray (ViennaPair, ViennaPair) Int
+ Biobase.Vienna: stack :: Vienna2004 -> PrimArray PP Int
- Biobase.Vienna: type PN = (ViennaPair, Nuc)
+ Biobase.Vienna: type PN = P :. Nuc
- Biobase.Vienna: type PNN = (ViennaPair, Nuc, Nuc)
+ Biobase.Vienna: type PNN = PN :. Nuc

Files

Biobase/Vienna.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE TypeOperators #-}  -- | 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@@ -8,6 +9,8 @@  module Biobase.Vienna where +import Data.Array.Repa.Index+import Data.Array.Repa.Shape import Data.ByteString (ByteString) import Data.Map (Map) @@ -15,26 +18,34 @@ import Biobase.Primary import Biobase.Secondary.Vienna +type P = Z:.ViennaPair+type PN = P:.Nuc+type PNN = PN:.Nuc+type PP = Z:.ViennaPair:.ViennaPair+type PPNN = PP:.Nuc:.Nuc+type PPNNN = PPNN:.Nuc+type PPNNNN = PPNNN:.Nuc+ data Vienna2004 = Vienna2004-  { stack :: PrimArray (ViennaPair,ViennaPair) Int+  { stack :: PrimArray PP Int   , dangle3 :: PrimArray PN Int   , dangle5 :: PrimArray PN Int-  , hairpinL :: PrimArray Int Int+  , hairpinL :: PrimArray DIM1 Int   , hairpinMM :: PrimArray PNN Int   , hairpinLookup :: Map [Nuc] Int   , hairpinGGG :: Int   , hairpinCslope :: Int   , hairpinCintercept :: Int   , hairpinC3 :: Int-  , bulgeL :: PrimArray Int Int+  , bulgeL :: PrimArray DIM1 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+  , iloop1x1 :: PrimArray PPNN  Int+  , iloop2x1 :: PrimArray PPNNN Int+  , iloop2x2 :: PrimArray PPNNNN Int   , iloopMM :: PrimArray PNN Int   , iloop2x3MM :: PrimArray PNN Int   , iloop1xnMM :: PrimArray PNN Int-  , iloopL :: PrimArray Int Int+  , iloopL :: PrimArray DIM1 Int   , multiMM :: PrimArray PNN Int   , ninio :: Int   , maxNinio :: Int@@ -44,7 +55,7 @@   , multiAsym :: Int   , multiStrain :: Int   , extMM :: PrimArray PNN Int-  , coaxial :: PrimArray (ViennaPair,ViennaPair) Int -- no intervening unpaired nucleotides+  , coaxial :: PrimArray PP Int -- no intervening unpaired nucleotides   , coaxStack :: PrimArray PNN Int   , tStackCoax :: PrimArray PNN Int   , largeLoop :: Int@@ -52,5 +63,3 @@   , intermolecularInit :: Int   } -- deriving (Read,Show) -type PNN = (ViennaPair,Nuc,Nuc)-type PN  = (ViennaPair,Nuc)
Biobase/Vienna/Export.hs view
@@ -3,6 +3,8 @@ module Biobase.Vienna.Export where  import Control.Arrow+import Data.Array.Repa.Index+import Data.Array.Repa.Shape import Data.List (intersperse) import Data.List.Split import qualified Data.Map as M@@ -11,7 +13,7 @@ import Biobase.Primary import Biobase.Secondary.Vienna import Data.PrimitiveArray-import Data.PrimitiveArray.Ix+import Data.PrimitiveArray.Unboxed  import Biobase.Vienna @@ -87,12 +89,12 @@  type LKey = ([ViennaPair],[Nuc]) -pb2lkey (p1,b1) = ([p1],[b1])-pbb2lkey (p1,b1,b2) = ([p1],[b1,b2])-pp2lkey (k1,k2) = ([k1,k2],[])-ppbb2lkey (p1,p2,(b1,b2)) = ([p1,p2],[b1,b2])-ppbbb2lkey (p1,p2,(b1,b2,b3)) = ([p1,p2],[b1,b2,b3])-ppbbbb2lkey (p1,p2,(b1,b2,b3,b4)) = ([p1,p2],[b1,b2,b3,b4])+pb2lkey (Z:.p1:.b1) = ([p1],[b1])+pbb2lkey (Z:.p1:.b1:.b2) = ([p1],[b1,b2])+pp2lkey (Z:.k1:.k2) = ([k1,k2],[])+ppbb2lkey (Z:.p1:.p2:.b1:.b2) = ([p1,p2],[b1,b2])+ppbbb2lkey (Z:.p1:.p2:.b1:.b2:.b3) = ([p1,p2],[b1,b2,b3])+ppbbbb2lkey (Z:.p1:.p2:.b1:.b2:.b3:.b4) = ([p1,p2],[b1,b2,b3,b4])  -- | Print a block. 
Biobase/Vienna/Import.hs view
@@ -11,8 +11,10 @@ module Biobase.Vienna.Import where  import Control.Arrow-import qualified Data.Map as M+import Data.Array.Repa.Index+import Data.Array.Repa.Shape import qualified Data.ByteString.Char8 as BS+import qualified Data.Map as M  import Biobase.Primary import Biobase.Secondary@@ -33,14 +35,14 @@   { stack = convert minPP maxPP $ T.stack turner   , dangle3 = convert minPB maxPB $ T.dangle3 turner   , dangle5 = convert minPB maxPB $ T.dangle5 turner-  , hairpinL = convert 0 30 $ T.hairpinL turner+  , hairpinL = convert (Z:.0) (Z:.30) $ T.hairpinL turner   , hairpinMM = convert minPBB maxPBB $ T.hairpinMM turner   , hairpinLookup = M.mapKeys (read . BS.unpack) . M.map deka $ T.hairpinLookup turner   , hairpinGGG = deka $ T.hairpinGGG turner   , hairpinCslope = deka $ T.hairpinCslope turner   , hairpinCintercept = deka $ T.hairpinCintercept turner   , hairpinC3 = deka $ T.hairpinC3 turner-  , bulgeL = convert 0 30 $ T.bulgeL turner+  , bulgeL = convert (Z:.0) (Z:.30) $ T.bulgeL turner   , bulgeSingleC = deka $ T.bulgeSingleC turner   , iloop1x1 = convert minPPBB maxPPBB $ T.iloop1x1 turner   , iloop2x1 = convert minPPBBB maxPPBBB $ T.iloop2x1 turner@@ -48,7 +50,7 @@   , iloopMM = convert minPBB maxPBB $ T.iloopMM turner   , iloop2x3MM = convert minPBB maxPBB $ T.iloop2x3MM turner   , iloop1xnMM = convert minPBB maxPBB $ T.iloop1xnMM turner-  , iloopL = convert 0 30 $ T.iloopL turner+  , iloopL = convert (Z:.0) (Z:.30) $ T.iloopL turner   , multiMM = convert minPBB maxPBB $ T.multiMM turner   , ninio = deka $ T.ninio turner   , maxNinio = deka $ T.maxNinio turner@@ -73,42 +75,47 @@ class IdxConvert a b where   idxConvert :: a -> b -instance IdxConvert Pair ViennaPair where-  idxConvert = mkViennaPair--instance IdxConvert Nuc Nuc where+instance IdxConvert DIM1 DIM1 where   idxConvert = id -instance IdxConvert Int Int where-  idxConvert = id+instance IdxConvert T.PNN PNN where+  idxConvert (Z:.p1:.p2:.n1:.n2) = Z:. mkViennaPair (p1,p2) :.n1:.n2 -instance (IdxConvert a c, IdxConvert b d) => IdxConvert (a,b) (c,d) where-  idxConvert = idxConvert *** idxConvert+instance IdxConvert T.PN PN where+  idxConvert (Z:.p1:.p2:.n1) = Z:. mkViennaPair (p1,p2) :.n1 -instance (IdxConvert a d, IdxConvert b e, IdxConvert c f) => IdxConvert (a,b,c) (d,e,f) where-  idxConvert (a,b,c) = (idxConvert a, idxConvert b, idxConvert c)+instance IdxConvert T.PPNNNN PPNNNN where+  idxConvert (Z:.p11:.p12:.p21:.p22:.n1:.n2:.n3:.n4) = Z:. mkViennaPair (p11,p12) :. mkViennaPair (p21,p22) :.n1:.n2:.n3:.n4 -instance (IdxConvert al ar, IdxConvert bl br, IdxConvert cl cr, IdxConvert dl dr) => IdxConvert (al,bl,cl,dl) (ar,br,cr,dr) where-  idxConvert (a,b,c,d) = (idxConvert a, idxConvert b, idxConvert c, idxConvert d)+instance IdxConvert T.PPNNN PPNNN where+  idxConvert (Z:.p11:.p12:.p21:.p22:.n1:.n2:.n3) = Z:. mkViennaPair (p11,p12) :. mkViennaPair (p21,p22) :.n1:.n2:.n3 +instance IdxConvert T.PPNN PPNN where+  idxConvert (Z:.p11:.p12:.p21:.p22:.n1:.n2) = Z:. mkViennaPair (p11,p12) :. mkViennaPair (p21,p22) :.n1:.n2++instance IdxConvert T.PP PP where+  idxConvert (Z:.p11:.p12:.p21:.p22) = Z:. mkViennaPair (p11,p12) :. mkViennaPair (p21,p22)+++ -- | Transform energies to the vienna Int-based variant -- -- (which is round (e*100)).  deka = round . (*100) -minP = minBound-maxP = maxBound-minPB = (minP,nN)-maxPB = (maxP,nU)-minPP = (minP,minP)-maxPP = (maxP,maxP)-minPBB = (minP,nN,nN)-maxPBB = (maxP,nU,nU)-minPPBB = (minP,minP,(nN,nN))-maxPPBB = (maxP,maxP,(nU,nU))-minPPBBB = (minP,minP,(nN,nN,nN))-maxPPBBB = (maxP,maxP,(nU,nU,nU))-minPPBBBB = (minP,minP,(nN,nN,nN,nN))-maxPPBBBB = (maxP,maxP,(nU,nU,nU,nU))+minP = Z:.vpNP -- minBound+maxP = Z:.vpNS -- maxBound+minPB = minP:.nN -- (minP,nN)+maxPB = maxP:.nU -- (maxP,nU)+minPP = minP:.vpNP -- (minP,minP)+maxPP = maxP:.vpNS -- (maxP,maxP)+minPBB = minP:.nN:.nN -- (minP,nN,nN)+maxPBB = maxP:.nU:.nU -- (maxP,nU,nU)+minPPBB = minPP:.nN:.nN -- (minP,minP,(nN,nN))+maxPPBB = maxPP:.nU:.nU -- (maxP,maxP,(nU,nU))+minPPBBB = minPPBB:.nN -- (minP,minP,(nN,nN,nN))+maxPPBBB = maxPPBB:.nU -- (maxP,maxP,(nU,nU,nU))+minPPBBBB = minPPBBB:.nN -- (minP,minP,(nN,nN,nN,nN))+maxPPBBBB = maxPPBBB:.nU -- (maxP,maxP,(nU,nU,nU,nU)) 
BiobaseVienna.cabal view
@@ -1,9 +1,9 @@ name:           BiobaseVienna-version:        0.1.0.0+version:        0.2.0.0 author:         Christian Hoener zu Siederdissen maintainer:     choener@tbi.univie.ac.at homepage:       http://www.tbi.univie.ac.at/~choener/-copyright:      Christian Hoener zu Siederdissen, 2010,2011+copyright:      Christian Hoener zu Siederdissen, 2010-2012 category:       Bioinformatics synopsis:       Import Vienna energy parameters license:        GPL-3@@ -27,20 +27,28 @@     filepath,     iteratee,     split,-    BiobaseTurner >= 0.1.1,-    BiobaseXNA >= 0.5.1,-    PrimitiveArray+    BiobaseTurner >= 0.2,+    BiobaseXNA >= 0.6,+    vector >= 0.9,+    repa >= 2.0,+    PrimitiveArray >= 0.1.1.2   exposed-modules:     Biobase.Vienna     Biobase.Vienna.Export     Biobase.Vienna.Import   ghc-options:-    -O2+    -Odph -funbox-strict-fields -fspec-constr  executable ViennaConverter   build-depends:-    cmdargs == 0.8.*+    cmdargs == 0.9.*   main-is:     ViennaConverter.hs   ghc-options:     -O2++source-repository head+  type: git+  location: git://github.com/choener/BiobaseVienna++
ViennaConverter.hs view
@@ -13,15 +13,6 @@ import Biobase.Vienna.Export import Biobase.Vienna.Import -{--import Biobase.Primary-import Biobase.Secondary-import Biobase.Secondary.Vienna-import Data.PrimitiveArray-import Data.PrimitiveArray.Ix-import Biobase.Vienna--}-   data Options = Options