BiobaseXNA 0.5.0.0 → 0.5.0.1
raw patch · 4 files changed
+35/−11 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Biobase.Primary: instance Bounded Nuc
- Biobase.Primary: instance Bounds Nuc
- Biobase.Primary: instance Enum Nuc
- Biobase.Primary: instance Eq Nuc
- Biobase.Primary: instance Ix Nuc
- Biobase.Primary: instance MVector MVector Nuc
- Biobase.Primary: instance MkPrimary ByteString
- Biobase.Primary: instance MkPrimary String
- Biobase.Primary: instance MkPrimary Text
- Biobase.Primary: instance MkPrimary [Nuc]
- Biobase.Primary: instance Ord Nuc
- Biobase.Primary: instance Prim Nuc
- Biobase.Primary: instance Read Nuc
- Biobase.Primary: instance Show Nuc
- Biobase.Primary: instance Unbox Nuc
- Biobase.Primary: instance Vector Vector Nuc
- Biobase.Secondary: instance Bounded CTisomerism
- Biobase.Secondary: instance Bounded Edge
- Biobase.Secondary: instance Bounds CTisomerism
- Biobase.Secondary: instance Bounds Edge
- Biobase.Secondary: instance Enum CTisomerism
- Biobase.Secondary: instance Enum Edge
- Biobase.Secondary: instance Eq CTisomerism
- Biobase.Secondary: instance Eq Edge
- Biobase.Secondary: instance Ix CTisomerism
- Biobase.Secondary: instance Ix Edge
- Biobase.Secondary: instance MVector MVector CTisomerism
- Biobase.Secondary: instance MVector MVector Edge
- Biobase.Secondary: instance Ord CTisomerism
- Biobase.Secondary: instance Ord Edge
- Biobase.Secondary: instance Prim CTisomerism
- Biobase.Secondary: instance Prim Edge
- Biobase.Secondary: instance Read CTisomerism
- Biobase.Secondary: instance Read Edge
- Biobase.Secondary: instance Show (CTisomerism, Edge, Edge)
- Biobase.Secondary: instance Show CTisomerism
- Biobase.Secondary: instance Show Edge
- Biobase.Secondary: instance Unbox CTisomerism
- Biobase.Secondary: instance Unbox Edge
- Biobase.Secondary: instance Vector Vector CTisomerism
- Biobase.Secondary: instance Vector Vector Edge
+ Biobase.Primary: instance [overlap ok] Bounded Nuc
+ Biobase.Primary: instance [overlap ok] Bounds Nuc
+ Biobase.Primary: instance [overlap ok] Enum Nuc
+ Biobase.Primary: instance [overlap ok] Eq Nuc
+ Biobase.Primary: instance [overlap ok] Ix Nuc
+ Biobase.Primary: instance [overlap ok] MVector MVector Nuc
+ Biobase.Primary: instance [overlap ok] MkPrimary ByteString
+ Biobase.Primary: instance [overlap ok] MkPrimary String
+ Biobase.Primary: instance [overlap ok] MkPrimary Text
+ Biobase.Primary: instance [overlap ok] MkPrimary [Nuc]
+ Biobase.Primary: instance [overlap ok] Ord Nuc
+ Biobase.Primary: instance [overlap ok] Prim Nuc
+ Biobase.Primary: instance [overlap ok] Read Nuc
+ Biobase.Primary: instance [overlap ok] Show Nuc
+ Biobase.Primary: instance [overlap ok] Unbox Nuc
+ Biobase.Primary: instance [overlap ok] Vector Vector Nuc
+ Biobase.Secondary: instance [overlap ok] Bounded CTisomerism
+ Biobase.Secondary: instance [overlap ok] Bounded Edge
+ Biobase.Secondary: instance [overlap ok] Bounds CTisomerism
+ Biobase.Secondary: instance [overlap ok] Bounds Edge
+ Biobase.Secondary: instance [overlap ok] Enum CTisomerism
+ Biobase.Secondary: instance [overlap ok] Enum Edge
+ Biobase.Secondary: instance [overlap ok] Eq CTisomerism
+ Biobase.Secondary: instance [overlap ok] Eq Edge
+ Biobase.Secondary: instance [overlap ok] Ix CTisomerism
+ Biobase.Secondary: instance [overlap ok] Ix Edge
+ Biobase.Secondary: instance [overlap ok] MVector MVector CTisomerism
+ Biobase.Secondary: instance [overlap ok] MVector MVector Edge
+ Biobase.Secondary: instance [overlap ok] Ord CTisomerism
+ Biobase.Secondary: instance [overlap ok] Ord Edge
+ Biobase.Secondary: instance [overlap ok] Prim CTisomerism
+ Biobase.Secondary: instance [overlap ok] Prim Edge
+ Biobase.Secondary: instance [overlap ok] Read CTisomerism
+ Biobase.Secondary: instance [overlap ok] Read Edge
+ Biobase.Secondary: instance [overlap ok] Show CTisomerism
+ Biobase.Secondary: instance [overlap ok] Show Edge
+ Biobase.Secondary: instance [overlap ok] Unbox CTisomerism
+ Biobase.Secondary: instance [overlap ok] Unbox Edge
+ Biobase.Secondary: instance [overlap ok] Vector Vector CTisomerism
+ Biobase.Secondary: instance [overlap ok] Vector Vector Edge
+ Biobase.Secondary: threeChar :: String -> ExtPairAnnotation
+ Biobase.Secondary.PseudoKnots: instance RemovePseudoKnots [ExtPairIdx]
+ Biobase.Secondary.PseudoKnots: instance RemovePseudoKnots [PairIdx]
Files
- Biobase/Primary.hs +6/−2
- Biobase/Secondary.hs +19/−5
- Biobase/Secondary/PseudoKnots.hs +6/−0
- BiobaseXNA.cabal +4/−4
Biobase/Primary.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE PatternGuards #-}+{-# LANGUAGE OverlappingInstances #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE MultiParamTypeClasses #-}@@ -46,12 +48,14 @@ -- * Efficient nucleotide encoding --- A 'Nuc'leotide is simply an Int wrapped up.+-- A 'Nuc'leotide is simply an Int wrapped up. 'nIMI' provides for+-- intermolecular initialization, 'nN' stands for "any" nucleotides, 'nA',+-- 'nC', 'nG', 'nT' / 'nU' are normal nucleotides. newtype Nuc = Nuc {unNuc :: Int} deriving (Eq,Ord,Ix) -(nN : nA : nC : nG : nT : _) = map Nuc [0 .. ]+(nN : nA : nC : nG : nT : nIMI : _) = map Nuc [0 .. ] nU = nT acgt = [nA..nT]
Biobase/Secondary.hs view
@@ -1,6 +1,8 @@+{-# LANGUAGE PatternGuards #-} {-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverlappingInstances #-} {-# LANGUAGE StandaloneDeriving #-} -- | Secondary structure: define basepairs as Int-tuples, the three edges, a@@ -18,12 +20,24 @@ import qualified Data.Vector.Unboxed as VU import Data.Ix (Ix(..)) import Data.Tuple (swap)+import Data.List as L+import Data.Char (toLower, toUpper) import Biobase.Primary import Biobase.Primary.Bounds +-- | Easy reading of a three-Char string into a triple.++threeChar :: String -> ExtPairAnnotation+threeChar s@[c,x,y]+ | Just c' <- L.lookup (toLower c) charCTList+ , Just x' <- L.lookup (toUpper x) charEdgeList+ , Just y' <- L.lookup (toUpper y) charEdgeList+ = (c',x',y')+ | otherwise = error $ "can't convert string: " ++ s+ -- | A basepair is simply a pair of Ints which are 0-indexing a sequence. -- -- TODO storable vector, newtype, peek/poke?@@ -89,8 +103,8 @@ paraCT = undefined charCTList =- [ ('C',cis)- , ('T',trans)+ [ ('c',cis)+ , ('t',trans) -- TODO antiCT, paraCT ] @@ -164,5 +178,5 @@ -- -- TODO maybe newtype this triple? -instance Show (CTisomerism,Edge,Edge) where- show (ct,eI,eJ) = concat [show ct, show eI, show eJ]+--instance Show (CTisomerism,Edge,Edge) where+-- show (ct,eI,eJ) = concat [show ct, show eI, show eJ]
Biobase/Secondary/PseudoKnots.hs view
@@ -40,6 +40,9 @@ Just pos = VU.elemIndex mmx cnts incomp (i,j) = VU.length $ VU.filter (\(k,l) -> i<k&&k<j&&j<l || k<i&&i<l&&l<j) ps +instance RemovePseudoKnots [PairIdx] where+ removeByCounting = VU.toList . removeByCounting . VU.fromList+ -- | Remove pseudoknotted pairs from extended RNA secondary structures. instance RemovePseudoKnots (VU.Vector ExtPairIdx) where@@ -53,3 +56,6 @@ mmx = VU.maximum cnts Just pos = VU.elemIndex mmx cnts incomp ((i,j),_) = VU.length $ VU.filter (\((k,l),_) -> i<k&&k<j&&j<l || k<i&&i<l&&l<j) ps++instance RemovePseudoKnots [ExtPairIdx] where+ removeByCounting = VU.toList . removeByCounting . VU.fromList
BiobaseXNA.cabal view
@@ -1,5 +1,5 @@ name: BiobaseXNA-version: 0.5.0.0+version: 0.5.0.1 author: Christian Hoener zu Siederdissen maintainer: choener@tbi.univie.ac.at homepage: http://www.tbi.univie.ac.at/~choener/@@ -23,12 +23,12 @@ library build-depends: base >3 && <5,- text, bytestring, primitive,+ text, tuple,- vector-read-instances,- vector >=0.7 && <0.8+ vector >=0.7 && <0.8,+ vector-read-instances exposed-modules: Biobase.Primary