RNAlien 1.3.0 → 1.3.1
raw patch · 3 files changed
+30/−23 lines, 3 filesdep ~ClustalParser
Dependency ranges changed: ClustalParser
Files
- RNAlien.cabal +4/−4
- src/Bio/RNAlien.hs +2/−2
- src/Bio/RNAlienLibrary.hs +24/−17
RNAlien.cabal view
@@ -1,5 +1,5 @@ name: RNAlien-version: 1.3.0+version: 1.3.1 synopsis: Unsupervized construction of RNA family models description: RNAlien is a tool for automatic construction of RNAfamily models from a single sequence. .@@ -50,8 +50,8 @@ source-repository this type: git- location: https://github.com/eggzilla/RNAlien/tree/1.3.0- tag: 1.3.0+ location: https://github.com/eggzilla/RNAlien/tree/1.3.1+ tag: 1.3.1 executable RNAlien Hs-Source-Dirs: ./src/Bio/@@ -86,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.2, process, directory, blastxml>=0.3.2, biofasta, parsec, random, BlastHTTP>=1.2.1, biocore, bytestring, Taxonomy >= 1.0.2, either-unwrap, containers, ClustalParser>=1.2.0, EntrezHTTP>=1.0.3, vector, edit-distance, cassava, matrix, hierarchical-clustering, filepath, HTTP, http-conduit, hxt, network, aeson, text, transformers, pureMD5, http-types, text-metrics+ build-depends: base >=4.5 && <5, cmdargs, ViennaRNAParser>=1.3.2, process, directory, blastxml>=0.3.2, biofasta, parsec, random, BlastHTTP>=1.2.1, biocore, bytestring, Taxonomy >= 1.0.2, either-unwrap, containers, ClustalParser>=1.2.1, EntrezHTTP>=1.0.3, vector, edit-distance, cassava, matrix, hierarchical-clustering, filepath, HTTP, http-conduit, hxt, network, aeson, text, transformers, pureMD5, http-types, text-metrics Exposed-Modules: Bio.RNAlienData Bio.RNAlienLibrary Bio.RNAcentralHTTP
src/Bio/RNAlien.hs view
@@ -85,7 +85,7 @@ logMessage "Error: Input fasta file is empty.\n" temporaryDirectoryPath else do let iterationNumber = 0- let tools = ["mlocarna","RNAfold","RNAalifold","cmcalibrate","cmstat","cmbuild","RNAz","RNAcode"]+ let tools = if inputQuerySelectionMethod == "clustering" then ["clustalo","mlocarna","RNAfold","RNAalifold","cmcalibrate","cmstat","cmbuild","RNAz","RNAcode"] else ["mlocarna","RNAfold","RNAalifold","cmcalibrate","cmstat","cmbuild","RNAz","RNAcode"] toolsCheck <- checkTools tools inputQuerySelectionMethod temporaryDirectoryPath -- Check required commandline tools if isLeft toolsCheck@@ -93,7 +93,7 @@ putStrLn ("Error - Not all required tools could be found in $PATH: " ++ fromLeft toolsCheck ++ "\n") logMessage ("Error - Not all required tools could be found in $PATH: " ++ fromLeft toolsCheck ++ "\n") temporaryDirectoryPath else do- logToolVersions temporaryDirectoryPath+ logToolVersions inputQuerySelectionMethod temporaryDirectoryPath let inputSequence = reformatFasta (head inputFasta) initialTaxId <- setInitialTaxId inputBlastDatabase temporaryDirectoryPath inputTaxId inputSequence let checkedTaxonomyRestriction = checkTaxonomyRestriction taxonomyRestriction
src/Bio/RNAlienLibrary.hs view
@@ -851,13 +851,13 @@ -- | Compute identity of sequences-stringIdentity :: String -> String -> Double-stringIdentity string1 string2 = identityPercent- where distance = ED.levenshteinDistance costs string1 string2- --Replication of RNAz select sequences requires only allowing substitutions- costs = ED.defaultEditCosts {ED.deletionCosts = ED.ConstantCost 100,ED.insertionCosts = ED.ConstantCost 100,ED.transpositionCosts = ED.ConstantCost 100}- maximumDistance = maximum [length string1,length string2]- identityPercent = 1 - (fromIntegral distance/fromIntegral maximumDistance)+-- stringIdentity :: String -> String -> Double+-- stringIdentity string1 string2 = identityPercent+-- where distance = ED.levenshteinDistance costs string1 string2+-- --Replication of RNAz select sequences requires only allowing substitutions+-- costs = ED.defaultEditCosts {ED.deletionCosts = ED.ConstantCost 100,ED.insertionCosts = ED.ConstantCost 100,ED.transpositionCosts = ED.ConstantCost 100}+-- maximumDistance = maximum [length string1,length string2]+-- identityPercent = 1 - (fromIntegral distance/fromIntegral maximumDistance) -- | Compute identity of sequences sequenceIdentity :: Sequence -> Sequence -> Double@@ -1466,26 +1466,33 @@ logMessage ("Tools : " ++ intercalate "," tools ++ "\n") temporaryDirectoryPath return (Right "Tools ok") -logToolVersions :: String -> IO ()-logToolVersions temporaryDirectoryPath = do+logToolVersions :: String -> String -> IO ()+logToolVersions inputQuerySelectionMethod temporaryDirectoryPath = do let clustaloversionpath = temporaryDirectoryPath ++ "log/clustalo.version" let mlocarnaversionpath = temporaryDirectoryPath ++ "log/mlocarna.version" let rnafoldversionpath = temporaryDirectoryPath ++ "log/RNAfold.version" let infernalversionpath = temporaryDirectoryPath ++ "log/Infernal.version"- _ <- system ("clustalo --version >" ++ clustaloversionpath)+ --_ <- system ("clustalo --version >" ++ clustaloversionpath) _ <- system ("mlocarna --version >" ++ mlocarnaversionpath) _ <- system ("RNAfold --version >" ++ rnafoldversionpath) _ <- system ("cmcalibrate -h >" ++ infernalversionpath) -- _ <- system ("RNAz" ++ rnazversionpath) -- _ <- system ("CMCompare >" ++ infernalversionpath)- clustaloversion <- readFile clustaloversionpath mlocarnaversion <- readFile mlocarnaversionpath rnafoldversion <- readFile rnafoldversionpath infernalversionOutput <- readFile infernalversionpath let infernalversion = lines infernalversionOutput !! 1- let messageString = "Clustalo version: " ++ clustaloversion ++ "mlocarna version: " ++ mlocarnaversion ++ "RNAfold version: " ++ rnafoldversion ++ "infernalversion: " ++ infernalversion ++ "\n"- logMessage messageString temporaryDirectoryPath+ if inputQuerySelectionMethod == "clustering"+ then do+ _ <- system ("clustalo --version >" ++ clustaloversionpath)+ clustaloversion <- readFile clustaloversionpath+ let messageString = "Clustalo version: " ++ clustaloversion ++ "mlocarna version: " ++ mlocarnaversion ++ "RNAfold version: " ++ rnafoldversion ++ "infernalversion: " ++ infernalversion ++ "\n"+ logMessage messageString temporaryDirectoryPath+ else do+ let messageString = "mlocarna version: " ++ mlocarnaversion ++ "RNAfold version: " ++ rnafoldversion ++ "infernalversion: " ++ infernalversion ++ "\n"+ logMessage messageString temporaryDirectoryPath + checkTool :: String -> IO (Either String String) checkTool tool = do toolcheck <- findExecutable tool@@ -1526,7 +1533,7 @@ let reformatedClustalPath = evaluationDirectoryFilepath ++ "result.clustal.reformated" let cmFilepath = tempDirPath staticOptions ++ "result.cm" let resultSequences = (inputFasta mCResult):map nucleotideSequence (concatMap sequenceRecords (taxRecords mCResult))- let resultNumber = length resultSequences + 1 + let resultNumber = length resultSequences let rnaCentralQueries = map RCH.buildSequenceViaMD5Query resultSequences rnaCentralEntries <- RCH.getRNACentralEntries rnaCentralQueries let rnaCentralEvaluationResult = RCH.showRNAcentralAlienEvaluation rnaCentralEntries@@ -1647,9 +1654,9 @@ return (Right (formatedIdMatrix,selectedClustalpath)) else return (Left (show (fromLeft parsedClustalInput))) else do- let clustalTextLines = T.lines clustalText- let headerClustalTextLines = T.unlines (take 2 clustalTextLines)- let headerlessClustalTextLines = T.unlines (drop 2 clustalTextLines)+ let clustalLines = T.lines clustalText+ let headerClustalTextLines = T.unlines (take 2 clustalLines)+ let headerlessClustalTextLines = T.unlines (drop 2 clustalLines) let reformatedClustalText = T.map reformatRNACodeAln headerlessClustalTextLines TI.writeFile selectedClustalpath (headerClustalTextLines `T.append` (T.singleton '\n') `T.append` reformatedClustalText) return (Right ([],clustalFilepath))