packages feed

BiobaseInfernal 0.5.2.0 → 0.5.3.0

raw patch · 4 files changed

+67/−1 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Biobase.Infernal: Clan :: ByteString -> ByteString -> [ByteString] -> [ByteString] -> Clan
+ Biobase.Infernal: accession :: Clan -> ByteString
+ Biobase.Infernal: cFromFile :: FilePath -> IO [Clan]
+ Biobase.Infernal: data Clan
+ Biobase.Infernal: identifier :: Clan -> ByteString
+ Biobase.Infernal: members :: Clan -> [ByteString]
+ Biobase.Infernal: strings :: Clan -> [ByteString]
+ Biobase.Infernal: tFromFile :: FilePath -> IO (Map ByteString Species, Map Int Species)
+ Biobase.Infernal.Clan: Clan :: ByteString -> ByteString -> [ByteString] -> [ByteString] -> Clan
+ Biobase.Infernal.Clan: accession :: Clan -> ByteString
+ Biobase.Infernal.Clan: data Clan
+ Biobase.Infernal.Clan: identifier :: Clan -> ByteString
+ Biobase.Infernal.Clan: instance Eq Clan
+ Biobase.Infernal.Clan: instance Read Clan
+ Biobase.Infernal.Clan: instance Show Clan
+ Biobase.Infernal.Clan: members :: Clan -> [ByteString]
+ Biobase.Infernal.Clan: strings :: Clan -> [ByteString]
+ Biobase.Infernal.Clan.Import: fromFile :: FilePath -> IO [Clan]
+ Biobase.Infernal.Clan.Import: mkClan :: [ByteString] -> Clan

Files

Biobase/Infernal.hs view
@@ -11,6 +11,9 @@   , vhEneeByteString   , vhEneeByteStrings   , Species(..)+  , tFromFile+  , Clan(..)+  , cFromFile   ) where  import Data.ByteString as BS@@ -23,6 +26,8 @@ import Biobase.Infernal.VerboseHit.Export as VH import Biobase.Infernal.Taxonomy import Biobase.Infernal.Taxonomy.Import as T+import Biobase.Infernal.Clan+import Biobase.Infernal.Clan.Import as C  thFromFile = TH.fromFile @@ -33,3 +38,5 @@ vhEneeByteStrings = VH.eneeByteStrings  tFromFile = T.fromFile++cFromFile = C.fromFile
+ Biobase/Infernal/Clan.hs view
@@ -0,0 +1,25 @@+{-# LANGUAGE OverloadedStrings #-}++-- | Rfam clans are a set of biologically related Rfam families. This module+-- provides simple abstraction methods and loaders.+--+-- TODO This has to go into biobase and needs to be made nice-looking.+--+-- TODO load and parse with enumerator++module Biobase.Infernal.Clan where++import qualified Data.ByteString.Char8 as BS++++-- | Simple RfamClan data wrapper. Could Easily be just a list of bytestrings,+-- which it is using strings++data Clan = Clan+  { accession :: BS.ByteString+  , identifier :: BS.ByteString+  , members :: [BS.ByteString]+  , strings :: [BS.ByteString]+  } deriving (Read,Show,Eq)+
+ Biobase/Infernal/Clan/Import.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE OverloadedStrings #-}++-- | Importing clan data is probably never time-critical as the total file size+-- is extremely small. Should this ever change, swap to iteratee. The file is+-- read /strictly/.++module Biobase.Infernal.Clan.Import where++import qualified Data.ByteString.Char8 as BS+import Data.List++import Biobase.Infernal.Clan++++-- | Import the complete data strictly.++fromFile :: FilePath -> IO [Clan]+fromFile fp = do+  (map mkClan . groupBy (\x y -> "AC"/=(head . BS.words $y)) . BS.lines) `fmap` BS.readFile fp++-- | Given a list of bytestrings, create one Clan.+--+-- TODO return Maybe, make crash-safe++mkClan :: [BS.ByteString] -> Clan+mkClan xs = Clan+  { accession  = (!!1) . BS.words . head . filter ((=="AC") . BS.take 2) $ xs+  , identifier = (!!1) . BS.words . head . filter ((=="ID") . BS.take 2) $ xs+  , members    = map BS.init . map (!!1) . filter ((=="MB") . (!!0)) . map BS.words $ xs+  , strings    = xs+  }
BiobaseInfernal.cabal view
@@ -1,5 +1,5 @@ name:           BiobaseInfernal-version:        0.5.2.0+version:        0.5.3.0 author:         Christian Hoener zu Siederdissen maintainer:     choener@tbi.univie.ac.at homepage:       http://www.tbi.univie.ac.at/~choener/@@ -40,6 +40,8 @@    exposed-modules:     Biobase.Infernal+    Biobase.Infernal.Clan+    Biobase.Infernal.Clan.Import     Biobase.Infernal.TabularHit     Biobase.Infernal.TabularHit.Import     Biobase.Infernal.Taxonomy