packages feed

BiobaseXNA 0.9.2.1 → 0.9.3.0

raw patch · 10 files changed

+150/−30 lines, 10 filesdep ~PrimitiveArraydep ~aesondep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: PrimitiveArray, aeson, base, bimaps, cereal, file-embed, lens

API changes (from Hackage documentation)

- Biobase.Primary.Letter: instance Data.Aeson.Types.Class.FromJSON (Biobase.Primary.Letter.Letter t)
- Biobase.Primary.Letter: instance Data.Aeson.Types.Class.ToJSON (Biobase.Primary.Letter.Letter t)
- Biobase.Primary.Letter: instance GHC.Generics.Constructor Biobase.Primary.Letter.C1_0Letter
- Biobase.Primary.Letter: instance GHC.Generics.Datatype Biobase.Primary.Letter.D1Letter
- Biobase.Primary.Letter: instance GHC.Generics.Selector Biobase.Primary.Letter.S1_0_0Letter
- Biobase.Secondary.Basepair: instance Data.Aeson.Types.Class.FromJSON Biobase.Secondary.Basepair.CTisomerism
- Biobase.Secondary.Basepair: instance Data.Aeson.Types.Class.FromJSON Biobase.Secondary.Basepair.Edge
- Biobase.Secondary.Basepair: instance Data.Aeson.Types.Class.ToJSON Biobase.Secondary.Basepair.CTisomerism
- Biobase.Secondary.Basepair: instance Data.Aeson.Types.Class.ToJSON Biobase.Secondary.Basepair.Edge
- Biobase.Secondary.Basepair: instance GHC.Generics.Constructor Biobase.Secondary.Basepair.C1_0CTisomerism
- Biobase.Secondary.Basepair: instance GHC.Generics.Constructor Biobase.Secondary.Basepair.C1_0Edge
- Biobase.Secondary.Basepair: instance GHC.Generics.Datatype Biobase.Secondary.Basepair.D1CTisomerism
- Biobase.Secondary.Basepair: instance GHC.Generics.Datatype Biobase.Secondary.Basepair.D1Edge
- Biobase.Secondary.Basepair: instance GHC.Generics.Selector Biobase.Secondary.Basepair.S1_0_0CTisomerism
- Biobase.Secondary.Basepair: instance GHC.Generics.Selector Biobase.Secondary.Basepair.S1_0_0Edge
- Biobase.Secondary.Diagrams: instance Data.Aeson.Types.Class.FromJSON Biobase.Secondary.Diagrams.D1Secondary
- Biobase.Secondary.Diagrams: instance Data.Aeson.Types.Class.FromJSON Biobase.Secondary.Diagrams.D2Secondary
- Biobase.Secondary.Diagrams: instance Data.Aeson.Types.Class.ToJSON Biobase.Secondary.Diagrams.D1Secondary
- Biobase.Secondary.Diagrams: instance Data.Aeson.Types.Class.ToJSON Biobase.Secondary.Diagrams.D2Secondary
- Biobase.Secondary.Diagrams: instance GHC.Generics.Constructor Biobase.Secondary.Diagrams.C1_0D1Secondary
- Biobase.Secondary.Diagrams: instance GHC.Generics.Constructor Biobase.Secondary.Diagrams.C1_0D2Secondary
- Biobase.Secondary.Diagrams: instance GHC.Generics.Constructor Biobase.Secondary.Diagrams.C1_0SSTree
- Biobase.Secondary.Diagrams: instance GHC.Generics.Constructor Biobase.Secondary.Diagrams.C1_1SSTree
- Biobase.Secondary.Diagrams: instance GHC.Generics.Datatype Biobase.Secondary.Diagrams.D1D1Secondary
- Biobase.Secondary.Diagrams: instance GHC.Generics.Datatype Biobase.Secondary.Diagrams.D1D2Secondary
- Biobase.Secondary.Diagrams: instance GHC.Generics.Datatype Biobase.Secondary.Diagrams.D1SSTree
- Biobase.Secondary.Diagrams: instance GHC.Generics.Selector Biobase.Secondary.Diagrams.S1_0_0D1Secondary
- Biobase.Secondary.Diagrams: instance GHC.Generics.Selector Biobase.Secondary.Diagrams.S1_0_0D2Secondary
- Biobase.Secondary.Vienna: instance Data.Aeson.Types.Class.FromJSON Biobase.Secondary.Vienna.ViennaPair
- Biobase.Secondary.Vienna: instance Data.Aeson.Types.Class.ToJSON Biobase.Secondary.Vienna.ViennaPair
- Biobase.Secondary.Vienna: instance GHC.Generics.Constructor Biobase.Secondary.Vienna.C1_0ViennaPair
- Biobase.Secondary.Vienna: instance GHC.Generics.Datatype Biobase.Secondary.Vienna.D1ViennaPair
- Biobase.Secondary.Vienna: instance GHC.Generics.Selector Biobase.Secondary.Vienna.S1_0_0ViennaPair
+ Biobase.Primary.AA: instance Biobase.Primary.Letter.LetterChar Biobase.Primary.AA.AA
+ Biobase.Primary.AA: instance Data.Aeson.Types.FromJSON.FromJSON (Biobase.Primary.Letter.Letter Biobase.Primary.AA.AA)
+ Biobase.Primary.AA: instance Data.Aeson.Types.ToJSON.ToJSON (Biobase.Primary.Letter.Letter Biobase.Primary.AA.AA)
+ Biobase.Primary.Letter: charLetter :: LetterChar t => Char -> Letter t
+ Biobase.Primary.Letter: class LetterChar t
+ Biobase.Primary.Letter: letterChar :: LetterChar t => Letter t -> Char
+ Biobase.Primary.Nuc.DNA: instance Biobase.Primary.Letter.LetterChar Biobase.Primary.Nuc.DNA.DNA
+ Biobase.Primary.Nuc.DNA: instance Biobase.Primary.Letter.LetterChar Biobase.Primary.Nuc.DNA.DNA => Data.Aeson.Types.ToJSON.ToJSON (Biobase.Primary.Letter.Primary Biobase.Primary.Nuc.DNA.DNA)
+ Biobase.Primary.Nuc.DNA: instance Biobase.Primary.Letter.MkPrimary (Data.Vector.Unboxed.Base.Vector GHC.Types.Char) Biobase.Primary.Nuc.DNA.DNA => Data.Aeson.Types.FromJSON.FromJSON (Biobase.Primary.Letter.Primary Biobase.Primary.Nuc.DNA.DNA)
+ Biobase.Primary.Nuc.RNA: instance Biobase.Primary.Letter.LetterChar Biobase.Primary.Nuc.RNA.RNA
+ Biobase.Primary.Nuc.RNA: instance Data.Aeson.Types.FromJSON.FromJSON (Biobase.Primary.Letter.Letter Biobase.Primary.Nuc.RNA.RNA)
+ Biobase.Primary.Nuc.RNA: instance Data.Aeson.Types.ToJSON.ToJSON (Biobase.Primary.Letter.Letter Biobase.Primary.Nuc.RNA.RNA)
+ Biobase.Primary.Nuc.XNA: instance Biobase.Primary.Letter.LetterChar Biobase.Primary.Nuc.XNA.XNA
+ Biobase.Primary.Nuc.XNA: instance Biobase.Primary.Letter.LetterChar Biobase.Primary.Nuc.XNA.XNA => Data.Aeson.Types.ToJSON.ToJSON (Biobase.Primary.Letter.Primary Biobase.Primary.Nuc.XNA.XNA)
+ Biobase.Primary.Nuc.XNA: instance Biobase.Primary.Letter.MkPrimary (Data.Vector.Unboxed.Base.Vector GHC.Types.Char) Biobase.Primary.Nuc.XNA.XNA => Data.Aeson.Types.FromJSON.FromJSON (Biobase.Primary.Letter.Primary Biobase.Primary.Nuc.XNA.XNA)
+ Biobase.Primary.Pretty: Pretty :: f a -> Pretty f a
+ Biobase.Primary.Pretty: [getPretty] :: Pretty f a -> f a
+ Biobase.Primary.Pretty: instance (Biobase.Primary.Letter.LetterChar x, Foreign.Storable.Storable (Biobase.Primary.Letter.Letter x)) => Data.Aeson.Types.ToJSON.ToJSON (Biobase.Primary.Pretty.Pretty Data.Vector.Storable.Vector (Biobase.Primary.Letter.Letter x))
+ Biobase.Primary.Pretty: instance Biobase.Primary.Letter.LetterChar x => Data.Aeson.Types.ToJSON.ToJSON (Biobase.Primary.Pretty.Pretty Data.Vector.Unboxed.Base.Vector (Biobase.Primary.Letter.Letter x))
+ Biobase.Primary.Pretty: instance Biobase.Primary.Letter.LetterChar x => Data.Aeson.Types.ToJSON.ToJSON (Biobase.Primary.Pretty.Pretty Data.Vector.Vector (Biobase.Primary.Letter.Letter x))
+ Biobase.Primary.Pretty: instance Biobase.Primary.Letter.LetterChar x => Data.Aeson.Types.ToJSON.ToJSON (Biobase.Primary.Pretty.Pretty [] (Biobase.Primary.Letter.Letter x))
+ Biobase.Primary.Pretty: newtype Pretty f a
+ Biobase.Primary.Unknown: instance Data.Aeson.Types.FromJSON.FromJSON (Biobase.Primary.Letter.Letter Biobase.Primary.Unknown.Unknown)
+ Biobase.Primary.Unknown: instance Data.Aeson.Types.ToJSON.ToJSON (Biobase.Primary.Letter.Letter Biobase.Primary.Unknown.Unknown)
+ Biobase.Secondary.Basepair: instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Secondary.Basepair.CTisomerism
+ Biobase.Secondary.Basepair: instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Secondary.Basepair.Edge
+ Biobase.Secondary.Basepair: instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Secondary.Basepair.CTisomerism
+ Biobase.Secondary.Basepair: instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Secondary.Basepair.Edge
+ Biobase.Secondary.Diagrams: instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Secondary.Diagrams.D1Secondary
+ Biobase.Secondary.Diagrams: instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Secondary.Diagrams.D2Secondary
+ Biobase.Secondary.Diagrams: instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Secondary.Diagrams.D1Secondary
+ Biobase.Secondary.Diagrams: instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Secondary.Diagrams.D2Secondary
+ Biobase.Secondary.Vienna: instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Secondary.Vienna.ViennaPair
+ Biobase.Secondary.Vienna: instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Secondary.Vienna.ViennaPair
- Biobase.Primary.AA: charBaa :: Bimap Char (Letter AA)
+ Biobase.Primary.AA: charBaa :: Bimap (HashMap Char (Letter AA)) (HashMap (Letter AA) Char)
- Biobase.Primary.Hashed: hash2primary :: (Unbox (Letter t), Bounded (Letter t), Enum (Letter t)) => HashedPrimary t -> Primary t
+ Biobase.Primary.Hashed: hash2primary :: forall t. (Unbox (Letter t), Bounded (Letter t), Enum (Letter t)) => HashedPrimary t -> Primary t
- Biobase.Primary.Hashed: mkHashedPrimary :: (Unbox (Letter t), Bounded (Letter t), Enum (Letter t)) => Primary t -> HashedPrimary t
+ Biobase.Primary.Hashed: mkHashedPrimary :: forall t. (Unbox (Letter t), Bounded (Letter t), Enum (Letter t)) => Primary t -> HashedPrimary t
- Biobase.Secondary.Diagrams: d2Compare :: (Ord t2, Ord t3) => ((t2, t3), t) -> ((t2, t3), t1) -> Ordering
+ Biobase.Secondary.Diagrams: d2Compare :: (Ord t3, Ord t2) => ((t2, t3), t) -> ((t2, t3), t1) -> Ordering
- Biobase.Secondary.Diagrams: d2Grouping :: (Ord a, Ord a1) => ((a, a1), t) -> ((a, a1), t1) -> Bool
+ Biobase.Secondary.Diagrams: d2Grouping :: (Ord a1, Ord a) => ((a, a1), t) -> ((a, a1), t1) -> Bool

Files

Biobase/Primary/AA.hs view
@@ -6,6 +6,7 @@ module Biobase.Primary.AA where  import           Control.Arrow ((***),first)+import           Data.Aeson import           Data.Hashable import           Data.Ix (Ix(..)) import           Data.Map.Strict (Map)@@ -13,15 +14,17 @@ import           Data.Tuple (swap) import           Data.Vector.Unboxed.Deriving import           GHC.Base (remInt,quotInt)+import qualified GHC.Exts as GHC import           GHC.Generics (Generic)+import qualified Data.Bijection.HashMap as B import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Lazy.Char8 as BSL+import qualified Data.Foldable as F import qualified Data.Map.Strict as M import qualified Data.Text as T import qualified Data.Vector.Generic as VG import qualified Data.Vector.Generic.Mutable as VGM import qualified Data.Vector.Unboxed as VU-import qualified Data.Bijection.Map as B  import           Biobase.Primary.Letter @@ -65,6 +68,19 @@  aaRange = [Stop .. pred Undef] +instance LetterChar AA where+  letterChar = aaChar+  charLetter = charAA++instance ToJSON (Letter AA) where+  toJSON = toJSON . letterChar++instance FromJSON (Letter AA) where+  parseJSON = fmap charLetter . parseJSON++--instance (GHC.IsString f) => ToJSON (Pretty f (Letter AA)) where+--  toJSON = toJSON . T.pack . map letterChar . GHC.toList . getPretty+ -- | Translate 'Char' amino acid representation into efficient 'AA' newtype.  charAA :: Char -> Letter AA@@ -79,7 +95,7 @@  -- * lookup tables -charBaa :: B.Bimap Char (Letter AA)+charBaa :: B.Bimap (B.HashMap Char (Letter AA)) (B.HashMap (Letter AA) Char) charBaa = B.fromList   [ ('*',Stop)   , ('A',A)
Biobase/Primary/Letter.hs view
@@ -34,12 +34,18 @@  instance Binary    (Letter t) instance Serialize (Letter t)-instance FromJSON  (Letter t)-instance ToJSON    (Letter t)  instance NFData (Letter t)  type Primary t = VU.Vector (Letter t)++-- | Convert 'Letter' types into character forms. @DNA@, @RNA@, and @amino+-- acid@ sequences can make use of this. Other @Letter@ types only if they+-- have single-char representations.++class LetterChar t where+  letterChar :: Letter t -> Char+  charLetter :: Char -> Letter t  -- | Conversion from a large number of sequence-like inputs to primary -- sequences.
Biobase/Primary/Nuc/DNA.hs view
@@ -1,6 +1,7 @@  module Biobase.Primary.Nuc.DNA where +import           Data.Aeson import           Data.Char (toUpper) import           Data.Ix (Ix(..)) import           Data.Primitive.Types@@ -41,6 +42,16 @@     toEnum k                = error $ "toEnum/Letter DNA " ++ show k     fromEnum (Letter k) = k +instance LetterChar DNA where+  letterChar = dnaChar+  charLetter = charDNA++instance (LetterChar DNA) => ToJSON (Primary DNA) where+  toJSON = toJSON . VU.toList . VU.map letterChar++instance (MkPrimary (VU.Vector Char) DNA) => FromJSON (Primary DNA) where+  parseJSON = fmap (primary :: String -> Primary DNA) . parseJSON+ acgt :: [Letter DNA] acgt = [A .. T] @@ -58,7 +69,7 @@   G -> 'G'   T -> 'T'   N -> 'N'-{-# INLINE dnaChar #-}            +{-# INLINE dnaChar #-}  instance Show (Letter DNA) where     show c = [dnaChar c]
Biobase/Primary/Nuc/RNA.hs view
@@ -1,6 +1,7 @@  module Biobase.Primary.Nuc.RNA where +import           Data.Aeson import           Data.Char (toUpper) import           Data.Ix (Ix(..)) import           Data.Primitive.Types@@ -14,6 +15,7 @@ import qualified Data.Vector.Generic.Mutable as VGM import qualified Data.Vector.Unboxed as VU import           Control.Category ((>>>))+import qualified Data.ByteString.Builder as BB  import           Biobase.Primary.Bounds import           Biobase.Primary.Letter@@ -42,6 +44,27 @@     toEnum k | k>=0 && k<=4 = Letter k     toEnum k                = error $ "toEnum/Letter RNA " ++ show k     fromEnum (Letter k) = k++instance LetterChar RNA where+  letterChar = rnaChar+  charLetter = charRNA++instance ToJSON (Letter RNA) where+  toJSON = toJSON . letterChar++instance FromJSON (Letter RNA) where+  parseJSON = fmap charLetter . parseJSON++-- We encode 'Primary RNA' directly as a string.+--+-- TODO we can't anymore, because this is not a newtype, just a type.++--instance ToJSON (Primary RNA) where+--  toJSON = toJSON . VU.toList . VU.map letterChar+--+--instance FromJSON (Primary RNA) where+--  parseJSON = fmap (primary :: String -> Primary RNA) . parseJSON+  acgu :: [Letter RNA] acgu = [A .. U]
Biobase/Primary/Nuc/XNA.hs view
@@ -1,6 +1,7 @@  module Biobase.Primary.Nuc.XNA where +import           Data.Aeson import           Data.Char (toUpper) import           Data.Ix (Ix(..)) import           Data.Primitive.Types@@ -43,6 +44,16 @@     toEnum k | k>=0 && k<=5 = Letter k     toEnum k                = error $ "toEnum/Letter XNA " ++ show k     fromEnum (Letter k) = k++instance LetterChar XNA where+  letterChar = xnaChar+  charLetter = charXNA++instance (LetterChar XNA) => ToJSON (Primary XNA) where+  toJSON = toJSON . VU.toList . VU.map letterChar++instance (MkPrimary (VU.Vector Char) XNA) => FromJSON (Primary XNA) where+  parseJSON = fmap (primary :: String -> Primary XNA) . parseJSON  charXNA = toUpper >>> \case     'A' -> A
+ Biobase/Primary/Pretty.hs view
@@ -0,0 +1,30 @@++-- | Wrapper newtype to simplify pretty and short encoding of primary+-- sequences.++module Biobase.Primary.Pretty where++import           Data.Aeson+import qualified Data.Vector.Unboxed as VU+import qualified Data.Vector as V+import qualified Data.Vector.Storable as VS+import qualified Data.Text as T++import Biobase.Primary.Letter++++newtype Pretty f a = Pretty { getPretty :: f a }++instance (LetterChar x) => ToJSON (Pretty VU.Vector (Letter x)) where+  toJSON = String . T.pack . map letterChar . VU.toList . getPretty++instance (LetterChar x) => ToJSON (Pretty V.Vector (Letter x)) where+  toJSON = String . T.pack . map letterChar . V.toList . getPretty++instance (LetterChar x, VS.Storable (Letter x)) => ToJSON (Pretty VS.Vector (Letter x)) where+  toJSON = String . T.pack . map letterChar . VS.toList . getPretty++instance (LetterChar x) => ToJSON (Pretty [] (Letter x)) where+  toJSON = String . T.pack . map letterChar . getPretty+
Biobase/Primary/Unknown.hs view
@@ -8,6 +8,7 @@  module Biobase.Primary.Unknown where +import           Data.Aeson import           Control.Applicative ((<$>)) import           Control.Arrow ((***),first) import           Data.Hashable@@ -69,4 +70,18 @@ instance MkPrimary (VU.Vector Int) Unknown where   primary = VU.map Letter   {-# Inline primary #-}++instance ToJSON (Letter Unknown) where+  toJSON = toJSON . getLetter++instance FromJSON (Letter Unknown) where+  parseJSON = fmap Letter . parseJSON++{-+instance ToJSON (Primary Unknown) where+  toJSON = toJSON . map (show . getLetter) . VU.toList++instance FromJSON (Primary Unknown) where+  parseJSON = fmap (VU.fromList . map (Letter . read)) . parseJSON+-} 
Biobase/Secondary/Diagrams.hs view
@@ -16,7 +16,7 @@ import           Data.Tuple.Select (sel1,sel2) import           Data.Tuple (swap) import           Data.Vector.Binary-import           Data.Vector.Cereal+import           Data.Vector.Serialize import           GHC.Generics import qualified Data.Vector.Unboxed as VU import           Text.Printf
BiobaseXNA.cabal view
@@ -1,5 +1,5 @@ name:           BiobaseXNA-version:        0.9.2.1+version:        0.9.3.0 author:         Christian Hoener zu Siederdissen maintainer:     choener@bioinf.uni-leipzig.de homepage:       https://github.com/choener/BiobaseXNA@@ -11,7 +11,7 @@ license-file:   LICENSE build-type:     Simple stability:      experimental-tested-with:    GHC == 7.8.4, GHC == 7.10.1+tested-with:    GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1 cabal-version:  >= 1.10.0 description:                 This is a base library for bioinformatics with emphasis on RNA@@ -47,28 +47,29 @@   library-  build-depends: base                     >= 4.7      && < 4.9-               , aeson                    >= 0.8      && < 0.11-               , bimaps                   >= 0.0.0.2  && < 0.0.1.0-               , binary                   >= 0.7      && < 0.8-               , bytes                    >= 0.15     && < 0.16-               , bytestring               >= 0.10     && < 0.11-               , cereal                   >= 0.4      && < 0.5-               , cereal-vector            >= 0.2      && < 0.3-               , containers               >= 0.5      && < 0.6-               , csv                      >= 0.1      && < 0.2-               , deepseq                  >= 1.3      && < 1.5-               , file-embed               >= 0.0.8    && < 0.0.10-               , hashable                 >= 1.2      && < 1.3-               , lens                     >= 4.0      && < 4.14-               , primitive                >= 0.5      && < 0.7-               , PrimitiveArray           >= 0.7.0    && < 0.7.1-               , split                    >= 0.2      && < 0.3-               , text                     >= 1.0      && < 1.3-               , tuple                    >= 0.3      && < 0.4-               , vector                   >= 0.10     && < 0.12-               , vector-binary-instances  >= 0.2      && < 0.3-               , vector-th-unbox          >= 0.2      && < 0.3+  build-depends: base                     >= 4.7      &&  < 5.0+               , aeson                    >= 0.8      &&  < 1.1+               , binary                   >= 0.7      &&  < 0.8+               , bytes                    >= 0.15     &&  < 0.16+               , bytestring               >= 0.10     &&  < 0.11+               , cereal                   >= 0.4      &&  < 0.6+               , cereal-vector            >= 0.2      &&  < 0.3+               , containers               >= 0.5      &&  < 0.6+               , csv                      >= 0.1      &&  < 0.2+               , deepseq                  >= 1.3      &&  < 1.5+               , file-embed               >= 0.0.8    &&  < 0.1+               , hashable                 >= 1.2      &&  < 1.3+               , lens                     >= 4.0      &&  < 5.0+               , primitive                >= 0.5      &&  < 0.7+               , split                    >= 0.2      &&  < 0.3+               , text                     >= 1.0      &&  < 1.3+               , tuple                    >= 0.3      &&  < 0.4+               , vector                   >= 0.10     &&  < 0.12+               , vector-binary-instances  >= 0.2      &&  < 0.3+               , vector-th-unbox          >= 0.2      &&  < 0.3+               --+               , bimaps                   == 0.1.0.*+               , PrimitiveArray           == 0.7.1.*   exposed-modules:     Biobase.Primary     Biobase.Primary.AA@@ -81,6 +82,7 @@     Biobase.Primary.Nuc.DNA     Biobase.Primary.Nuc.RNA     Biobase.Primary.Nuc.XNA+    Biobase.Primary.Pretty     Biobase.Primary.Trans     Biobase.Primary.Unknown     Biobase.Secondary
changelog.md view
@@ -1,4 +1,10 @@+0.9.3.0+-------++- bigger version bump together with multiple ghc compatibility+ 0.9.2.1+-------  - stack.yaml, some version bumping