QF?g      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefNone1"Keeps track of model construction <Static construction optionsN  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMI  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHN<=>?@ABCDEFGH123456789:;M-./0L'()*+,K!"#$%& J I   !"#$%&'()*+,-./01 23456789:;< =>?@ABCDEFGHIJKLMNone)N\Initial RNA family model construction - generates iteration number, seed alignment and modelgHReevaluate collected potential members for inclusion in the result modelh Computes size of blast db in Mb i|Replaces structure of input stockholm file with the consensus structure of alifoldFilepath and outputs updated stockholmfilej*Used for passing progress to Alien server P*Used for passing progress to Alien server k}Filter duplicates removes hits in sequences that were already collected. This happens during revisiting the starting subtree.l!Filter a list of similar extended blast hits filterIdenticalSequencesWithOrigin :: [(Sequence,Int,String,Char)] -> Double -> [(Sequence,Int,String,Char)] filterIdenticalSequencesWithOrigin (headSequence:rest) identitycutoff = result where filteredSequences = filter (x -> (sequenceIdentity (firstOfQuadruple headSequence) (firstOfQuadruple x)) < identitycutoff) rest result = headSequence:(filterIdenticalSequencesWithOrigin filteredSequences identitycutoff) filterIdenticalSequencesWithOrigin [] _ = []/Filter a list of similar extended blast hits m9Filter sequences too similar to already aligned sequencesn)Filter alignment entries by similiarity oJCheck if the result field of BlastResult is filled and if hits are presentpCompute identity of sequencesqCompute identity of sequencesQ]Partitions sequences by containing a cmsearch hit and extracts the hit region as new sequenceRPExtract a substring with coordinates from cmsearch, first nucleotide has index 1r&Adds cm prefix to pseudo random numbersPRun external locarna command and read the output into the corresponding datatypetRun external mlocarna command and read the output into the corresponding datatype, there is also a folder created at the location of the input fasta fileuRun external mlocarna command and read the output into the corresponding datatype, there is also a folder created at the location of the input fasta file, the job is terminated after the timeout provided in secondsv5Run external clustalo command and return the Exitcodew5Run external clustalo command and return the ExitcodexQRun external CMbuild command and read the output into the corresponding datatype yARun CMCompare and read the output into the corresponding datatypeT Run CMsearch z Run CMstat{#Run CMcalibrate and return exitcode|#Run CMcalibrate and return exitcodeV'parse from input filePath W/parse from input filePath X'parse from input filePath Y/parse from input filePath }.Hits should have a compareable length to query~.Hits should have a compareable length to queryJWrapper for retrieveFullSequence that rerequests incomplete return sequees9NCBI uses the e-Value of the best HSP as the Hits e-ValueHWrapper functions that ensures that only 20 queries are sent per requestHWrapper functions that ensures that only 20 queries are sent per requestb*Call for external preprocessClustalForRNAzcRNAz can process 500 sequences at max. Using rnazSelectSeqs to isolate representative sample. rnazSelectSeqs only accepts - gap characters, alignment is reformatted accordingly.d"Check if alien can connect to NCBI5Blast evalue is set stricter in inital alignment modeNOghijPklmnopqQRrSstuvwxyTz{|UVWXY}~Z[\]^_`abcdefb  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHNOPQRSTUVWXYZ[\]^_`abcdefSZ[N^P_]\TWUVRO`YXdcbaefQNOghijPklmnopqQRrSstuvwxyTz{|UVWXY}~Z[\]^_`abcdef      !!"#$%&&'()*++,-../01234567889:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RNAli_2RnL7Y6JBmA0pG9UZ61NdPBio.RNAlienDataBio.RNAlienLibraryCMstat statIndexstatName statAccessionstatSequenceNumberstatEffectiveSequencesstatConsensusLengthstatW statBasepairsstatBifurcations statModelrelativeEntropyCMrelativeEntropyHMM SearchResult candidatesblastDatabaseSize CMsearchHithitRankhitSignificance hitEvaluehitScorehitBiashitSequenceHeaderhitStarthitEnd hitStrandhitModel hitTruncation hitGCContenthitDescriptionCMsearch queryCMfiletargetSequenceDatabasenumberOfWorkerThreads cmsearchHitsSequenceRecordnucleotideSequencealignedrecordDescriptionsequenceOriginTaxonomyRecordrecordTaxonomyIdsequenceRecordsModelConstructioniterationNumber inputFasta taxRecordsupperTaxonomyLimittaxonomicContextevalueThresholdalignmentModeInfernalselectedQueriespotentialMembers StaticOptions tempDirPath sessionID nSCICutoff userTaxIdsingleHitperTaxTogglelengthFilterTogglecoverageFilterToggle cpuThreads blastDatabasetaxRestrictionverbositySwitch $fShowCMstat$fShowSearchResult$fShowSequenceRecord$fShowTaxonomyRecord$fShowModelConstructionmodelConstructersetInitialTaxId resultSummaryevaluePartitionTrimCMsearchHitscmSearchsubStringcreateSessionIDsystemCMsearch compareCM parseCMSearch readCMSearch parseCMstat readCMstat logMessage logEither checkToolslogToolVersions constructTaxonomyRecordsCSVTable setVerboseevaluateConstructionResultrnaZEvalOutput preprocessClustalForRNAzExternalpreprocessClustalForRNAzcheckNCBIConnection reformatFastacheckTaxonomyRestrictionreevaluatePotentialMemberscomputeDataBaseSizereplaceStockholmStructureiterationSummaryfilterDuplicatesfilterIdenticalSequencesfilterWithCollectedSequencesfilterIdenticalAlignmentEntryblastMatchesPresentstringIdentitysequenceIdentityrandomid systemlocarnasystemMlocarnasystemMlocarnaWithTimeoutsystemClustalw2systemClustalo systemCMbuildsystemCMcompare systemCMstatsystemCMcalibrate systemCMalignhitLengthCheck coverageCheckretrieveFullSequences hitEValueretrieveParentTaxIdsEntrezretrieveBlastHitsTaxIdEntrezsetBlastExpectThresholdcatchAllextractLastTaxIdmodelConstructionResult#alignmentConstructionWithCandidates&alignmentConstructionWithoutCandidatesfindTaxonomyStartsearchCandidatesalignCandidatesalignCandidatesInfernalModealignCandidatesInitialModesetClusterNumberfindCutoffforClusterNumber selectQueriesconstructModelupdateStructureElementsisStructureLineiterationSummaryLogreadClustaloDistMatrixgenParserClustaloDistMatrixgenParserClustaloDistRowgenParserClustaloDistancegetDistanceMatrixElementsisUnSimilarSequence firstOfTriplefirstOfQuadruplegetTaxonomicContextEntrezsetTaxonomicContextEntrezsetUpperLowerTaxLimitEntrezraiseTaxIdLimitEntrez constructNextbuildTaxRecordssameTaxIdAlignmentResultbuildTaxRecordbuildSeqRecordtrimCMsearchHitextractQueriesextractQueryCandidatesbuildTaxFilterQuerybuildHitNumberQueryencodedTaxIDQueryreadInt readDoublegenParserCMsearchgenParserCMsearchHeaderFieldgenParserCMsearchEmptyHitgenParserCMsearchHitgenParserCMstatextractCandidateSequencesextractAlignedSequencesfilterByParentTaxIdfilterByHitLengthfilterByCoverageretrieveFullSequencegetRequestedSequenceElementblastHitIsReverseComplement"getForwardRequestedSequenceElementlowerBoundryCoordinateSetterupperBoundryCoordinateSetter"getReverseRequestedSequenceElementalignSequencesconstructFastaFilePathsconstructCMsearchFilePathscompareHitEValue compareTaxId sameTaxIdconvertFastaFoldStockholmconvertClustaltoStockholm mergeEntrybuildStockholmAlignmentEntriesretrieveTaxonomicContextEntrezretrieveParentTaxIdEntrezretrieveBlastHitTaxIdEntrezextractTaxIdFromEntrySummariesextractAccession extractGeneIdextractTaxIdfromDocumentSummary getBestHitgetHitWithFractionEvalue showlines logWarninglogVerboseMessage checkTool!constructTaxonomyRecordCSVEntriescmstatEvalOutputrnaZSelectSeqs reformatAlnreformatFastaSequencesetRestrictedTaxonomyLimitscheckTaxonomyRestrictionString