eVl      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None0"Keeps track of model construction ;Static construction optionsP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOK  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJP;<=>?@ABCDEFGHIJ0123456789:O,-./N'()*+M!"#$%& L K   !"#$%&'()*+,-./0 123456789:;<=>?@ABCDEFGHIJKLMNONone5Z,Data structure for RNAcentral entry response Send query and parse return XML "Send query and return response XML[4Function for querying the RNAcentral REST interface.rFunction for delayed queries to the RNAcentral REST interface. Enforces the maximum 20 requests per second policy.YZ[\]^_`abcYZ[\]^_[]^\_ZYYZ[\]^_`abcNonej'parse from input filePath k'parse from input filePath l/parse from input filePath m/parse from input filePath VParsing function for CMSearches with multiple querymodels in one modelfile, e.g. clansn'parse from input filePath o/parse from input filePath jklmnoQ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJjklmnolmjknojklmnoNone(p\Initial RNA family model construction - generates iteration number, seed alignment and modelHReevaluate collected potential members for inclusion in the result model Computes size of blast db in Mb |Replaces structure of input stockholm file with the consensus structure of alifoldFilepath and outputs updated stockholmfile*Used for passing progress to Alien server r*Used for passing progress to Alien server }Filter duplicates removes hits in sequences that were already collected. This happens during revisiting the starting subtree.!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 9Filter sequences too similar to already aligned sequences)Filter alignment entries by similiarity )Filter alignment entries by similiarity JCheck if the result field of BlastResult is filled and if hits are presentCompute identity of sequencesCompute identity of sequencess]Partitions sequences by containing a cmsearch hit and extracts the hit region as new sequencetPExtract a substring with coordinates from cmsearch, first nucleotide has index 1&Adds cm prefix to pseudo random numberuCreate session id for RNAlienPRun external locarna command and read the output into the corresponding datatypeRun external mlocarna command and read the output into the corresponding datatype, there is also a folder created at the location of the input fasta fileRun 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 seconds5Run external clustalo command and return the Exitcode5Run external clustalo command and return the ExitcodeQRun external CMbuild command and read the output into the corresponding datatype ARun CMCompare and read the output into the corresponding datatypev Run CMsearch  Run CMstat#Run CMcalibrate and return exitcode#Run CMcalibrate and return exitcode.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 request*Call for external preprocessClustalForRNAzCall for external preprocessClustalForRNAcode - RNAcode additionally to RNAz requirements does not accept pipe,underscore, doublepoint symbolsRNAz can process 500 sequences at max. Using rnazSelectSeqs to isolate representative sample. rnazSelectSeqs only accepts - gap characters, alignment is reformatted accordingly."Check if alien can connect to NCBI5Blast evalue is set stricter in inital alignment modepqrstuvw x  yz{ | }~e  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJjlmnopqrstuvwxyz{|}~uxyp|r}{zvlmwjtq~onspqrstuvw x  yz{ | }~      !"##$%&'(()*+,,-.//01234567899:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~VW     #RNAlien-1.2.4-IZQkc6hxEmHG0TfuQmcx0Bio.RNAlienDataBio.RNAcentralHTTPBio.InfernalParserBio.RNAlienLibraryCMstat statIndexstatName statAccessionstatSequenceNumberstatEffectiveSequencesstatConsensusLengthstatW statBasepairsstatBifurcations statModelrelativeEntropyCMrelativeEntropyHMM SearchResult candidatesblastDatabaseSize CMsearchHithitRankhitSignificance hitEvaluehitScorehitBiashitSequenceHeaderhitStarthitEnd hitStrandhitModel hitTruncation hitGCContenthitDescriptionCMsearch queryCMfiletargetSequenceDatabasenumberOfWorkerThreads cmsearchHitsSequenceRecordnucleotideSequencealignedrecordDescriptionTaxonomyRecordrecordTaxonomyIdsequenceRecordsModelConstructioniterationNumber inputFasta taxRecordsupperTaxonomyLimittaxonomicContextevalueThresholdalignmentModeInfernalselectedQueriespotentialMembers StaticOptions tempDirPath sessionID nSCICutoff userTaxIdsingleHitperTaxTogglequerySelectionMethod queryNumberlengthFilterTogglecoverageFilterToggleblastSoftmaskingToggle cpuThreads blastDatabasetaxRestrictionverbositySwitch $fShowCMstat$fShowSearchResult$fShowSequenceRecord$fShowTaxonomyRecord$fShowModelConstruction$fShowStaticOptions$fShowCMsearchHit$fEqCMsearchHit$fReadCMsearchHit$fShowCMsearch $fEqCMsearch$fReadCMsearch $fEqCMstat $fReadCMstatRNAcentralEntryRNAcentralEntryResponsernaCentralHTTPgetRNACentralEntriesbuildSequenceViaMD5QuerybuildStringViaMD5QueryshowRNAcentralAlienEvaluation$fFromJSONRNAcentralEntry$fToJSONRNAcentralEntry!$fFromJSONRNAcentralEntryResponse$fToJSONRNAcentralEntryResponse$fShowRNAcentralEntry$fEqRNAcentralEntry$fGenericRNAcentralEntry$fShowRNAcentralEntryResponse$fEqRNAcentralEntryResponse $fGenericRNAcentralEntryResponse parseCMSearchparseCMSearches readCMSearchreadCMSearches parseCMstat readCMstatmodelConstructersetInitialTaxId resultSummaryevaluePartitionTrimCMsearchHitscmSearchsubStringcreateSessionIDsystemCMsearch compareCM logMessage logEither checkToolslogToolVersions constructTaxonomyRecordsCSVTable setVerboseevaluateConstructionResultrnaZEvalOutput preprocessClustalForRNAzExternalpreprocessClustalForRNAzcheckNCBIConnection reformatFastacheckTaxonomyRestriction startSession sendQuerydelayedRNACentralHTTPurl rnacentral_idmd5sequencelengthxrefs publicationscountnextpreviousresults!showRNAcentralAlienEvaluationLine bsreplaceUTgenParserMultipleCMSearchgenParserCMSearchesgenParserCMSearchgenParserCMsearchHeaderFieldgenParserCMsearchEmptyHitgenParserCMsearchHitgenParserCMstatreadInt readDoublereevaluatePotentialMemberscomputeDataBaseSizereplaceStockholmStructureiterationSummaryfilterDuplicatesfilterIdenticalSequencesfilterWithCollectedSequencesfilterIdenticalSequences'filterIdenticalAlignmentEntryblastMatchesPresentstringIdentitysequenceIdentityrandomid systemlocarnasystemMlocarnasystemMlocarnaWithTimeoutsystemClustalw2systemClustalo systemCMbuildsystemCMcompare systemCMstatsystemCMcalibrate systemCMalignhitLengthCheck coverageCheckretrieveFullSequences hitEValueretrieveParentTaxIdsEntrezretrieveBlastHitsTaxIdEntrez#preprocessClustalForRNAcodeExternalsetBlastExpectThresholdcatchAllextractLastTaxIdmodelConstructionResult#alignmentConstructionWithCandidates&alignmentConstructionWithoutCandidatesfindTaxonomyStartsearchCandidatesalignCandidatesalignCandidatesInfernalModealignCandidatesInitialModesetClusterNumberfindCutoffforClusterNumber selectQueriesfilterSequenceById seqenceHasIdconstructModelupdateStructureElementsisStructureLineiterationSummaryLogreadClustaloDistMatrixgenParserClustaloDistMatrixgenParserClustaloDistRowgenParserClustaloDistancegetDistanceMatrixElementsisUnSimilarSequence firstOfTriplegetTaxonomicContextEntrezsetTaxonomicContextEntrezsetUpperLowerTaxLimitEntrezraiseTaxIdLimitEntrez constructNextbuildTaxRecordssameTaxIdAlignmentResultbuildTaxRecordbuildSeqRecordtrimCMsearchHitextractQueriesextractQueryCandidatesbuildTaxFilterQuerybuildHitNumberQueryencodedTaxIDQueryextractCandidateSequencesextractAlignedSequencesfilterByParentTaxIdfilterByHitLengthfilterByCoverageretrieveFullSequencegetRequestedSequenceElementblastHitIsReverseComplement"getForwardRequestedSequenceElementlowerBoundryCoordinateSetterupperBoundryCoordinateSetter"getReverseRequestedSequenceElementalignSequencesconstructFastaFilePathsconstructCMsearchFilePathscompareHitEValue compareTaxId sameTaxIdconvertFastaFoldStockholmconvertClustaltoStockholm mergeEntrybuildStockholmAlignmentEntriesretrieveTaxonomicContextEntrezretrieveParentTaxIdEntrezretrieveBlastHitTaxIdEntrezextractTaxIdFromEntrySummariesextractAccession extractGeneIdextractTaxIdfromDocumentSummary getBestHitgetHitWithFractionEvalue showlines logWarninglogVerboseMessage checkTool!constructTaxonomyRecordCSVEntriesconstructTaxonomyRecordCSVEntrycheckTaxonomyRecordCSVCharcmstatEvalOutputrnaCodeEvalOutputshowRNACodeHitsrnaZSelectSeqsreformatRNACodeAln reformatAlnreformatFastaSequencesetRestrictedTaxonomyLimitscheckTaxonomyRestrictionStringextractAlignmentSequencesByIdsextractAlignmentSequencesfilterSequencesById sequenceHasIdfilterAlnCharsmergeIdSeqTuplestoSequence