RNAlien 1.2.6 → 1.2.8
raw patch · 5 files changed
+34/−32 lines, 5 filesdep +http-typesPVP ok
version bump matches the API change (PVP)
Dependencies added: http-types
API changes (from Hackage documentation)
+ Bio.RNAcentralHTTP: RNAcentralEntry :: Text -> Text -> Text -> Text -> Int -> Text -> Text -> RNAcentralEntry
+ Bio.RNAcentralHTTP: RNAcentralEntryResponse :: Int -> Maybe Text -> Maybe Text -> [RNAcentralEntry] -> RNAcentralEntryResponse
+ Bio.RNAcentralHTTP: [count] :: RNAcentralEntryResponse -> Int
+ Bio.RNAcentralHTTP: [length] :: RNAcentralEntry -> Int
+ Bio.RNAcentralHTTP: [md5] :: RNAcentralEntry -> Text
+ Bio.RNAcentralHTTP: [next] :: RNAcentralEntryResponse -> Maybe Text
+ Bio.RNAcentralHTTP: [previous] :: RNAcentralEntryResponse -> Maybe Text
+ Bio.RNAcentralHTTP: [publications] :: RNAcentralEntry -> Text
+ Bio.RNAcentralHTTP: [results] :: RNAcentralEntryResponse -> [RNAcentralEntry]
+ Bio.RNAcentralHTTP: [rnacentral_id] :: RNAcentralEntry -> Text
+ Bio.RNAcentralHTTP: [sequence] :: RNAcentralEntry -> Text
+ Bio.RNAcentralHTTP: [url] :: RNAcentralEntry -> Text
+ Bio.RNAcentralHTTP: [xrefs] :: RNAcentralEntry -> Text
Files
- RNAlien.cabal +4/−7
- src/Bio/RNAcentralHTTP.hs +2/−3
- src/Bio/RNAcentralHTTPRequest.hs +0/−2
- src/Bio/RNAlien.hs +14/−7
- src/Bio/RNAlienLibrary.hs +14/−13
RNAlien.cabal view
@@ -1,8 +1,5 @@--- Initial RNAlien.cabal generated by cabal init. For further documentation, --- see http://haskell.org/cabal/users-guide/- name: RNAlien-version: 1.2.6+version: 1.2.8 synopsis: Unsupervized construction of RNA family models description: RNAlien is a tool for automatic construction of RNAfamily models from a single sequence. .@@ -53,8 +50,8 @@ source-repository this type: git- location: https://github.com/eggzilla/RNAlien/tree/1.2.6- tag: 1.2.6+ location: https://github.com/eggzilla/RNAlien/tree/1.2.8+ tag: 1.2.8 executable RNAlien Hs-Source-Dirs: ./src/Bio/@@ -89,7 +86,7 @@ Library Hs-Source-Dirs: ./src/ ghc-options: -Wall -O2 -fno-warn-unused-do-bind- build-depends: base >=4.5 && <5, cmdargs, ViennaRNAParser>=1.3.1, process, directory, blastxml>=0.3.2, biofasta, parsec, random, BlastHTTP>=1.2.1, biocore, bytestring, Taxonomy >= 1.0.2, either-unwrap, containers, ClustalParser>=1.1.0, EntrezHTTP>=1.0.3, vector, edit-distance, cassava, matrix, hierarchical-clustering, filepath, HTTP, http-conduit, hxt, network, aeson, text, transformers, pureMD5+ build-depends: base >=4.5 && <5, cmdargs, ViennaRNAParser>=1.3.1, process, directory, blastxml>=0.3.2, biofasta, parsec, random, BlastHTTP>=1.2.1, biocore, bytestring, Taxonomy >= 1.0.2, either-unwrap, containers, ClustalParser>=1.1.0, EntrezHTTP>=1.0.3, vector, edit-distance, cassava, matrix, hierarchical-clustering, filepath, HTTP, http-conduit, hxt, network, aeson, text, transformers, pureMD5, http-types Exposed-Modules: Bio.RNAlienData Bio.RNAlienLibrary Bio.RNAcentralHTTP
src/Bio/RNAcentralHTTP.hs view
@@ -9,8 +9,8 @@ buildStringViaMD5Query, getRNACentralEntries, showRNAcentralAlienEvaluation,- RNAcentralEntryResponse,- RNAcentralEntry+ RNAcentralEntryResponse(..),+ RNAcentralEntry(..) ) where import Network.HTTP.Conduit @@ -24,7 +24,6 @@ import Bio.Core.Sequence import Bio.Sequence.Fasta import Data.Either-import Data.Aeson.Types --Datatypes -- | Data structure for RNAcentral entry response
src/Bio/RNAcentralHTTPRequest.hs view
@@ -6,8 +6,6 @@ module Main where import System.Console.CmdArgs -import Bio.RNAlienLibrary-import Data.Either.Unwrap import Bio.RNAcentralHTTP data Options = Options
src/Bio/RNAlien.hs view
@@ -33,7 +33,8 @@ inputQueryNumber :: Int, threads :: Int, taxonomyRestriction :: Maybe String,- sessionIdentificator :: Maybe String+ sessionIdentificator :: Maybe String,+ performEvaluation :: Bool } deriving (Show,Data,Typeable) options :: Options@@ -52,8 +53,9 @@ inputQueryNumber = (5 :: Int) &= name "n" &= help "Number of queries used for candidate search. Default: 5", threads = 1 &= name "c" &= help "Number of available cpu slots/cores. Default: 1", taxonomyRestriction = Nothing &= name "r" &= help "Restrict search space to taxonomic kingdom (bacteria,archea,eukaryia). Default: not set",- sessionIdentificator = Nothing &= name "d" &= help "Optional session id that is used instead of automatically generated one."- } &= summary ("RNAlien " ++ alienVersion) &= help "Florian Eggenhofer, Ivo L. Hofacker, Christian Höner zu Siederdissen - 2013 - 2016" &= verbosity + sessionIdentificator = Nothing &= name "d" &= help "Optional session id that is used instead of automatically generated one.",+ performEvaluation = True &= name "x" &= help "Perform evaluation step. Default: True"+ } &= summary ("RNAlien " ++ alienVersion) &= help "Florian Eggenhofer, Ivo L. Hofacker, Christian Höner zu Siederdissen - 2013 - 2017" &= verbosity main :: IO () main = do@@ -100,11 +102,16 @@ logMessage (show initialization) temporaryDirectoryPath modelConstructionResults <- modelConstructer staticOptions initialization let resultTaxonomyRecordsCSVTable = constructTaxonomyRecordsCSVTable modelConstructionResults- resultEvaluation <- evaluateConstructionResult staticOptions modelConstructionResults- appendFile (temporaryDirectoryPath ++ "Log") resultEvaluation writeFile (temporaryDirectoryPath ++ "result.csv") resultTaxonomyRecordsCSVTable- resultSummary modelConstructionResults staticOptions- writeFile (temporaryDirectoryPath ++ "done") ""+ if performEvaluation+ then do+ resultEvaluation <- evaluateConstructionResult staticOptions modelConstructionResults+ appendFile (temporaryDirectoryPath ++ "Log") resultEvaluation+ resultSummary modelConstructionResults staticOptions+ writeFile (temporaryDirectoryPath ++ "done") ""+ else do+ resultSummary modelConstructionResults staticOptions+ writeFile (temporaryDirectoryPath ++ "done") "" alienVersion :: String alienVersion = showVersion version
src/Bio/RNAlienLibrary.hs view
@@ -43,6 +43,7 @@ import Data.Int (Int16) import Bio.RNAlienData import qualified Data.ByteString.Lazy.Char8 as L+import qualified Data.ByteString.Char8 as B import Bio.Taxonomy import Data.Either.Unwrap import Data.Maybe@@ -63,9 +64,10 @@ import Bio.RNAfoldParser import Bio.RNAalifoldParser import Bio.RNAzParser-import Network.HTTP+import qualified Network.HTTP.Conduit as N+import Network.HTTP.Types.Status import qualified Bio.RNAcodeParser as RC-import Bio.RNAcentralHTTP+import qualified Bio.RNAcentralHTTP as RCH import Bio.InfernalParser import qualified Data.Text as T import qualified Data.Text.IO as TI@@ -1509,9 +1511,9 @@ let cmFilepath = tempDirPath staticOptions ++ "result.cm" let resultSequences = (inputFasta mCResult):map nucleotideSequence (concatMap sequenceRecords (taxRecords mCResult)) let resultNumber = length resultSequences + 1 - let rnaCentralQueries = map buildSequenceViaMD5Query resultSequences - rnaCentralEntries <- getRNACentralEntries rnaCentralQueries- let rnaCentralEvaluationResult = showRNAcentralAlienEvaluation rnaCentralEntries+ let rnaCentralQueries = map RCH.buildSequenceViaMD5Query resultSequences + rnaCentralEntries <- RCH.getRNACentralEntries rnaCentralQueries+ let rnaCentralEvaluationResult = RCH.showRNAcentralAlienEvaluation rnaCentralEntries writeFile (tempDirPath staticOptions ++ "result.rnacentral") rnaCentralEvaluationResult systemCMalign ("--outformat=Clustal --cpu " ++ show (cpuThreads staticOptions)) cmFilepath fastaFilepath clustalFilepath let resultModelStatistics = tempDirPath staticOptions ++ "result.cmstat"@@ -1652,14 +1654,13 @@ -- | Check if alien can connect to NCBI checkNCBIConnection :: IO (Either String String) checkNCBIConnection = do- response <- simpleHTTP (getRequest "https://www.ncbi.nlm.nih.gov")- if isRight response- then do- let rightResponse = fromRight response- if rspCode rightResponse == (2,0,0)- then return (Right ("Network connection with NCBI server is ok: " ++ show (rspCode rightResponse)))- else return (Left ("Could not connect to NCBI server \"https://www.ncbi.nlm.nih.gov\". Response Code: " ++ show (rspCode rightResponse)))- else return (Left ("Could not connect to NCBI server: \"https://www.ncbi.nlm.nih.gov\": " ++ show (fromLeft response)))+ req <- N.parseRequest "https://www.ncbi.nlm.nih.gov"+ manager <- N.newManager N.tlsManagerSettings+ response <- N.httpLbs req manager+ let sta = N.responseStatus response+ if statusIsSuccessful sta+ then return (Right ("Network connection with NCBI server was successful"))+ else return (Left ("Could not connect to NCBI server \"https://www.ncbi.nlm.nih.gov\". Response Code: " ++ show (statusCode sta) ++ " \n" ++ B.unpack (statusMessage sta))) -- | Blast evalue is set stricter in inital alignment mode setBlastExpectThreshold :: ModelConstruction -> Double