BiobaseXNA 0.8.2.0 → 0.8.3.0
raw patch · 7 files changed
+101/−90 lines, 7 filesdep +vector-th-unboxPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: vector-th-unbox
API changes (from Hackage documentation)
- Biobase.AAseq: instance Prim AA
- Biobase.Primary: instance [overlap ok] Prim Nuc
- Biobase.Primary.Hashed: instance Prim HashedPrimary
- Biobase.Secondary: instance [overlap ok] Prim CTisomerism
- Biobase.Secondary: instance [overlap ok] Prim Edge
- Biobase.Secondary.Vienna: instance Prim ViennaPair
+ Biobase.Primary.Hashed: unHashedPrimary :: HashedPrimary -> Int
+ Biobase.Secondary.Vienna: unViennaPair :: ViennaPair -> Int
Files
- Biobase/AAseq.hs +10/−9
- Biobase/Primary.hs +21/−21
- Biobase/Primary/Hashed.hs +13/−9
- Biobase/Secondary.hs +19/−20
- Biobase/Secondary/Vienna.hs +19/−18
- BiobaseXNA.cabal +14/−13
- changelog +5/−0
Biobase/AAseq.hs view
@@ -5,6 +5,8 @@ {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE PatternGuards #-} {-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-} -- | This module has the translation tables for the genetic code. @@ -14,6 +16,7 @@ import Data.Ix (Ix(..)) import Data.Primitive.Types import Data.Tuple (swap)+import Data.Vector.Unboxed.Deriving import GHC.Base (remInt,quotInt) import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Lazy.Char8 as BSL@@ -23,11 +26,11 @@ import qualified Data.Vector.Generic.Mutable as VGM import qualified Data.Vector.Unboxed as VU -import Data.Array.Repa.ExtShape-import Data.Array.Repa.Index-import Data.Array.Repa.Shape+import Data.Array.Repa.ExtShape+import Data.Array.Repa.Index+import Data.Array.Repa.Shape -import Biobase.Primary+import Biobase.Primary @@ -188,11 +191,6 @@ | Just aa <- x `lookup` charAAList = [(aa,xs)] | otherwise = [] -deriving instance Prim AA-deriving instance VGM.MVector VU.MVector AA-deriving instance VG.Vector VU.Vector AA-deriving instance VU.Unbox AA- instance (Shape sh,Show sh) => Shape (sh :. AA) where rank (sh:._) = rank sh + 1 zeroDim = zeroDim:.AA 0@@ -250,4 +248,7 @@ instance MkAAseq T.Text where mkAAseq = VU.fromList . map toAA . T.unpack++derivingUnbox "AA"+ [t| AA -> Int |] [| unAA |] [| AA |]
Biobase/Primary.hs view
@@ -1,12 +1,14 @@-{-# LANGUAGE PackageImports #-}-{-# LANGUAGE TypeOperators #-}-{-# LANGUAGE PatternGuards #-}-{-# LANGUAGE OverlappingInstances #-} {-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE TypeSynonymInstances #-}-{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverlappingInstances #-}+{-# LANGUAGE PackageImports #-}+{-# LANGUAGE PatternGuards #-} {-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE TypeSynonymInstances #-} -- | The primary structure: interface to efficient encoding of RNA and DNA -- sequences. The design aims toward the 'vector' library and repa. In@@ -20,11 +22,12 @@ module Biobase.Primary where -import Data.Char (toUpper)-import Data.Ix (Ix(..))-import Data.Primitive.Types-import Data.Tuple (swap)-import GHC.Base (remInt,quotInt)+import Data.Char (toUpper)+import Data.Ix (Ix(..))+import Data.Primitive.Types+import Data.Tuple (swap)+import Data.Vector.Unboxed.Deriving+import GHC.Base (remInt,quotInt) import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Lazy.Char8 as BSL import qualified Data.Text as T@@ -32,13 +35,14 @@ import qualified Data.Vector.Generic.Mutable as VGM import qualified Data.Vector.Unboxed as VU -import Data.Array.Repa.ExtShape-import Data.Array.Repa.Index-import Data.Array.Repa.Shape+import Data.Array.Repa.ExtShape+import Data.Array.Repa.Index+import Data.Array.Repa.Shape -import Biobase.Primary.Bounds+import Biobase.Primary.Bounds + -- * Convert different types of sequence representations to the internal -- "Primary Structure" representation @@ -131,12 +135,8 @@ | Just n <- x `lookup` charNucList = [(n,xs)] | otherwise = [] --- for vectors--deriving instance Prim Nuc-deriving instance VGM.MVector VU.MVector Nuc-deriving instance VG.Vector VU.Vector Nuc-deriving instance VU.Unbox Nuc+derivingUnbox "Nuc"+ [t| Nuc -> Int |] [| unNuc |] [| Nuc |] -- Shape-based indexing. Nucleotide representations go from nN (0) to nU (4), -- with additional symbols being available for specialized problems. This is a
Biobase/Primary/Hashed.hs view
@@ -1,30 +1,34 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-} -- | Fast hash functions for 'Primary' sequences. A hash is just an 'Int', so -- use these only for short sequences.+--+-- TODO replace with standard hashing functions used by Haskell libs? module Biobase.Primary.Hashed where -import Control.Exception.Base (assert)-import Data.Ix-import Data.Primitive.Types+import Control.Exception.Base (assert)+import Data.Ix+import Data.Primitive.Types+import Data.Vector.Unboxed.Deriving import qualified Data.Vector.Generic as VG import qualified Data.Vector.Generic.Mutable as VGM import qualified Data.Vector.Unboxed as VU -import Biobase.Primary+import Biobase.Primary -newtype HashedPrimary = HashedPrimary Int+newtype HashedPrimary = HashedPrimary { unHashedPrimary :: Int } deriving (Eq,Ord,Ix,Read,Show,Enum,Bounded) -deriving instance Prim HashedPrimary-deriving instance VGM.MVector VU.MVector HashedPrimary-deriving instance VG.Vector VU.Vector HashedPrimary-deriving instance VU.Unbox HashedPrimary+derivingUnbox "HashedPrimary"+ [t| HashedPrimary -> Int |] [| unHashedPrimary |] [| HashedPrimary |]+ -- | Given a piece of primary sequence information, reduce it to an index. --
Biobase/Secondary.hs view
@@ -7,6 +7,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverlappingInstances #-} {-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-} -- | Secondary structure: define basepairs as Int-tuples, the three edges, a -- nucleotide can use for pairing and the cis/trans isomerism. Both edges and@@ -17,20 +19,21 @@ module Biobase.Secondary where -import Data.Array.Repa.Index-import Data.Array.Repa.Shape-import Data.Char (toLower, toUpper)-import Data.Ix (Ix(..))-import Data.List as L-import Data.Primitive.Types-import Data.Tuple (swap)-import GHC.Base (remInt,quotInt)+import Data.Array.Repa.Index+import Data.Array.Repa.Shape+import Data.Char (toLower, toUpper)+import Data.Ix (Ix(..))+import Data.List as L+import Data.Primitive.Types+import Data.Tuple (swap)+import Data.Vector.Unboxed.Deriving+import GHC.Base (remInt,quotInt) import qualified Data.Vector.Generic as VG import qualified Data.Vector.Generic.Mutable as VGM import qualified Data.Vector.Unboxed as VU -import Biobase.Primary-import Biobase.Primary.Bounds+import Biobase.Primary+import Biobase.Primary.Bounds @@ -183,11 +186,6 @@ -- ** Instances for 'Edge' -deriving instance Prim Edge-deriving instance VGM.MVector VU.MVector Edge-deriving instance VG.Vector VU.Vector Edge-deriving instance VU.Unbox Edge- instance Bounded Edge where minBound = wc maxBound = unknownEdge@@ -204,11 +202,6 @@ -- ** Instances for 'CTisomerism' -deriving instance Prim CTisomerism-deriving instance VGM.MVector VU.MVector CTisomerism-deriving instance VG.Vector VU.Vector CTisomerism-deriving instance VU.Unbox CTisomerism- instance Bounded CTisomerism where minBound = cis maxBound = unknownCT@@ -346,4 +339,10 @@ {-# INLINE updR #-} {-# INLINE updP #-} {-# INLINE updT #-}++derivingUnbox "Edge"+ [t| Edge -> Int |] [| unEdge |] [| Edge |]++derivingUnbox "CTisomerism"+ [t| CTisomerism -> Int |] [| unCT |] [| CT |]
Biobase/Secondary/Vienna.hs view
@@ -5,34 +5,37 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-} -- | Encoding of Watson-Crick and Wobble Pairs in the Vienna RNA package style. module Biobase.Secondary.Vienna where -import Data.Array.Repa.Index-import Data.Array.Repa.Shape-import Data.Ix-import Data.Primitive.Types-import Data.Tuple (swap)-import GHC.Base (remInt,quotInt)+import Data.Array.Repa.Index+import Data.Array.Repa.Shape+import Data.Ix+import Data.Primitive.Types+import Data.Tuple (swap)+import Data.Vector.Unboxed.Deriving+import GHC.Base (remInt,quotInt)+import Prelude as P import qualified Data.Vector.Generic as VG import qualified Data.Vector.Generic.Mutable as VGM import qualified Data.Vector.Unboxed as VU-import Prelude as P -import Data.Array.Repa.ExtShape-import Data.PrimitiveArray as PA-import Data.PrimitiveArray.Zero as PA+import Data.Array.Repa.ExtShape+import Data.PrimitiveArray as PA+import Data.PrimitiveArray.Zero as PA -import Biobase.Primary-import Biobase.Primary.Bounds+import Biobase.Primary+import Biobase.Primary.Bounds -- | Use machine Ints internally -newtype ViennaPair = ViennaPair Int+newtype ViennaPair = ViennaPair { unViennaPair :: Int } deriving (Eq,Ord,Ix) instance (Shape sh,Show sh) => Shape (sh :. ViennaPair) where@@ -119,11 +122,6 @@ ] {-# NOINLINE viennaPairTable #-} -deriving instance VGM.MVector VU.MVector ViennaPair-deriving instance VG.Vector VU.Vector ViennaPair-deriving instance VU.Unbox ViennaPair-deriving instance Prim ViennaPair- instance Enum ViennaPair where toEnum x | x>=0 && x<=7 = ViennaPair x@@ -178,4 +176,7 @@ cguaP = [vpCG..vpUA] cgnsP = [vpCG..vpNS] pairToString = [(vpCG,"CG"),(vpGC,"GC"),(vpUA,"UA"),(vpAU,"AU"),(vpGU,"GU"),(vpUG,"UG"),(vpNS,"NS"),(vpNP,"NP")]++derivingUnbox "ViennaPair"+ [t| ViennaPair -> Int |] [| unViennaPair |] [| ViennaPair |]
BiobaseXNA.cabal view
@@ -1,9 +1,9 @@ name: BiobaseXNA-version: 0.8.2.0+version: 0.8.3.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, 2011-2013+copyright: Christian Hoener zu Siederdissen, 2011-2014 category: Bioinformatics synopsis: Efficient RNA/DNA representations license: GPL-3@@ -40,17 +40,18 @@ library build-depends: base >3 && <5,- bytestring >= 0.10 ,- containers >= 0.4 ,- csv >= 0.1.2 ,- file-embed >= 0.0.4.7 ,- mtl >= 2.1 ,- primitive >= 0.5 ,- PrimitiveArray >= 0.5.4 ,- repa >= 3.2 ,- text >= 0.11 ,- tuple >= 0.2 ,- vector >= 0.10+ bytestring >= 0.10 ,+ containers >= 0.4 ,+ csv >= 0.1.2 ,+ file-embed >= 0.0.4.7 ,+ mtl >= 2.1 ,+ primitive >= 0.5 ,+ PrimitiveArray >= 0.5.4 ,+ repa >= 3.2 ,+ text >= 0.11 ,+ tuple >= 0.2 ,+ vector >= 0.10 ,+ vector-th-unbox >= 0.2 exposed-modules: Biobase.AAseq
changelog view
@@ -1,3 +1,8 @@+0.8.3.0+-------++- bugfix version: use vector-th-unbox to generate unboxed vector instances+ 0.8.2.0 -------