!{A      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m nopqrstuvwxyz{|}~None-.127=>?@ADHMPUVX_gk(>  BiobaseTypes&Species have an accession number, too. BiobaseTypes<Tag as being an Rfam model. Used for Stockholm and CM files. BiobaseTypesTag as being a Pfam model. BiobaseTypesTag as being a clan. BiobaseTypesprotein sequence  BiobaseTypesnucleotide sequence  BiobaseTypes>The accession number is a unique identifier in bioinformatics.Depending on the source, accession numbers follow different alphanumeric formats! While letters-than-numbers is quite common, swissprot uses a mix. Hence, we just use a text string as accession.tA phantom type is provided to enable type safety annotations. Helper functions provide smart construction from the  Accession tagged generic type. BiobaseTypes5Generate an accession with an explicit phantom type: accession' Nucleotide Bla has type :: Accession Nucleotide. BiobaseTypes$Generate an accession when the type  Accession t is clear from the context. BiobaseTypesRetag an accession BiobaseTypes,Guess the type of accession number. Returns Nothing if unknown structure.    None-.127=>?@ADHMPUVX_gk+ BiobaseTypesA short amino acid suquence.It is an instance of  to allow 'RNAseq (BS.pack "cag") ^? ix 2 == Just g. !() !()None-.127=>?@ADHMPUVX_gk6/ BiobaseTypesmBit score; behaves like a double (deriving Num). In particular, the algebraic operations behave as expected *Bitscore a + Bitscore b == Bitscore (a+b).#Currently geared towards use as in Infernal and HMMER.?Infernal users guide, p.42: log-odds score in log_2 (aka bits).@ BiobaseTypesCGiven a null model and a probability, calculate the corresponding BitScore.TODO  x<=epsilon ?A BiobaseTypesGiven a null model and a BitScore& return the corresponding probability.B BiobaseTypes,A default bitscore of "-infinity", but with 10-1 wiggle room.5TODO Check out the different "defaults" Infernal uses /01@A/01@ANone-.127=>?@ADHMPUVX_gk;F BiobaseTypesGibbs free energy change.\For RNA structure, the change in energy from the unfolded structure to the given structure. In units of  kcal / mol.,TODO shall we phantom-type the actual units?Q BiobaseTypes Discretized DG. FGHQRSFGHQRSNone-.127=>?@ADHMPUVX_gk>_l BiobaseTypesType-safe wrapper for e-values.| BiobaseTypesBy default, we expect no hits.lmnlmnNone-.127=>?@ADHMPUVX_gkA BiobaseTypes A linear Int-based index type. BiobaseTypesTurn an  into an  safely. BiobaseTypesProduce  and  or . None-.127=>?@ADHMPUVX_gkOG  BiobaseTypesOne-based indices. BiobaseTypesZero-based indices. BiobaseTypesUses  to guarantee that the  is ok. BiobaseTypesRe-Index an index of type Index n as Index m. This is always safe, as  0 :: Index 0 gives  1 :: Index 17 for example. I.e. valid indices become valid indices. BiobaseTypesHelper function that allows addition of an  and an  , with the  on the right. BiobaseTypes Unsafe plus. BiobaseTypesHelper function that allows  subtraction of an  and an  , with the  on the right. BiobaseTypesDelta between two  points. BiobaseTypes Unsafe minus. BiobaseTypesReturn the index as an Int -style index that is zero-based. BiobaseTypesAs an index from an Int-style zero-based one.1TODO We might want to check that the argument is [0..].None-.127=>?@ADHMPUVX_gkT BiobaseTypesAdd Text and return Inte key. Will return key for existing string and thereby serves for lookup in left-to-right direction. BiobaseTypes Lookup the InternedMultiChar based on an Int" key. Unsafe totality assumption. None-.127=>?@ADHMPUVX_gkYO BiobaseTypes$A species name. Represented with an Int, but behaves like a Text. BiobaseTypes;The taxonomic rank. This encodes the name for a given rank. BiobaseTypes<Smart constructor that performs the correct internalization.  None-.127=>?@ADHMPUVX_gkr  BiobaseTypesA sequence identifier. Just a newtype wrapped text field. Because we can never know what people are up to, this is utf8-encoded. TODO Provide Iso' for Text, too?TODO move into Biobase.Types.SequenceID BiobaseTypesA short RNA sequence.It is an instance of  to allow 'RNAseq (BS.pack "cag") ^? ix 2 == Just g. BiobaseTypes.Convert to a string in a unicode-aware manner. BiobaseTypesA short DNA sequence.dNote everything really long should be handled by specialized libraries with streaming capabilities. BiobaseTypes The complement of a biosequence. BiobaseTypes;Transcribes a DNA sequence into an RNA sequence. Note that c is actually very generic. We just define its semantics to be that of biomolecular transcription." makes the assumption that, given  DNA -> RNA%, we transcribe the coding strand. Ehttp://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html@ DNAseq ACGT ^. transcribe == RNAseq ACGU RNAseq ACGU ^. transcribe == DNAseq ACGT RNAseq ACGU( ^. from transcribe :: DNAseq == DNAseq ACGT @ BiobaseTypesSimple case translation from U to T'. with upper and lower-case awareness. BiobaseTypes Single character RNA complement. BiobaseTypesSimple case translation from T to U' with upper- and lower-case awareness. BiobaseTypes Single character DNA complement. BiobaseTypes>Transcribe a RNA sequence into an DNA sequence. This does not reverse the sequence! BiobaseTypes>Transcribe a DNA sequence into an RNA sequence. This does not reverse the sequence! None-.127=>?@ADHMPUVX_gkz BiobaseTypesThe Reading frame. Sequence indexing starts at position 1, which starts reading frame 1. Reading frame 2 and 3 start at position 2 and 3 respectively.0The reading frame should be constructed from an Index 1> with a smart constructor to get the frame calculation right.  BiobaseTypesqTODO should this be a type class, since we might reasonably want to construct from a number of possible indices?          None-.127=>?@ADHMPUVX_gk~e BiobaseTypesEncode strand information. < is defined as the strand encoded in, say, the FASTA file. ! hence is the reverse complement.  None-.127=>?@ADHMPUVX_gk* BiobaseTypesSecondary structure using () for paired elements, and ., for unpaired ones. It is assumed that the ()* match up. These structures from a Monoid.5 BiobaseTypesEnsemble structure encoding. *Very* different type ctor name chosen! The structure of this string makes verification much more complicated.?TODO describe encoding used by RNAfold for the ensemble string.@ BiobaseTypesCofolded structure.L BiobaseTypes?The set of nucleotide pairs, together with the sequence length.N BiobaseTypesthe set of nucleotide pairs.O BiobaseTypes-length of the underlying nucleotide sequence.P BiobaseTypes+Capture what might be wrong with the RNAss.V BiobaseTypes-A Prism that turns ByteStrings with a single & into RNAds.W BiobaseTypesIsomorphism from RNAds to  (RNAss,RNAss). The RNAss are only legal if taken both: rnassFromDimer . both.X BiobaseTypes"Try to create a dimeric structure.Y BiobaseTypesJVerifies that the given RNAss is properly formatted. Otherwise, error out.TODO Implement! Check with BiobaseXNA and the stack effort in there. This might influence if the verification goes into BiobaseXNA and happens via an Iso'.e BiobaseTypes Transform an * into a set of base pairs (i,j). The pairs are 0-based.f BiobaseTypesNGenereate a simple structured/paired forest from a secondary structure string.g BiobaseTypesXCompactify such an SPForest. This means that all stems are now represented by a single  data constructor.h BiobaseTypes/RNA pair set, but a transformation error calls error.j BiobaseTypes{Calculates the number of different base pairs between two structures. This ignores the length of the underlying sequences."*+,5678@ACBDLMONPQSRTUVWXYcdefghij"*+,8567D@ACBUTVWXPQSRYLMONdcefghijNone-.127=>?@ADHMPUVX_gk8 n BiobaseTypes'The type of RNA shapes. Keeps the type p BiobaseTypesThe type of shape encoded here.q BiobaseTypesThe actual shape as a string.r BiobaseTypes<Shape levels are hardcoded according to their specification.7TODO Allow compile-time check on accepted shape levels? BiobaseTypesEWrapper for string-positional shapes. Intentionally chosen long name. BiobaseTypesGiven a compactified ,, creates a shape forest of the given level.TODO needs newtyping BiobaseTypesturn into unit test. also reverse of the input should give reverse shape! this then gives a quickcheck test, reversing the input should reverse the shape2TODO requires generating secondary structures via  Arbitrary. BiobaseTypes BiobaseTypes Transform an RNAss into a set of base pairs (i,j). The pairs are 0-based. BiobaseTypes/RNA pair set, but a transformation error calls error. BiobaseTypesECalculates the number of different base pairs betwwen two structures.(TODO error out on different shape levelsnoqprwvutsrwvutsnoqpNone-.127=>?@ADHMPUVX_gk BiobaseTypesTaxonomic classification. Enum together with a final Unknown is somewhat fishy.FTODO What should the order be? Kingdom > Species or Kingdom < Species? BiobaseTypesKA somewhat generic representation of a species within a taxonomic context. BiobaseTypes"the full, formal name of a species BiobaseTypes"the accession for the species (or "" if unknown) BiobaseTypes&vector with classification information !"#$%&'(()*+,-./01234567789:;<=>?@ABCDEFGHIJKLMMNOPQRSTUVWWXYZ[\]^_`abcdefghijklmnopqqrstuvwxyz{|}~                                                 ! " # $ % % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : : ; < = > ? @ A B C D E E F G H H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c deefghijklmnopqrstuvwxyz{{|}~_     +BiobaseTypes-0.1.4.0-2SJmLmHyrafG90Dl3d2I5jBiobase.Types.AccessionBiobase.Types.AminoAcidSequenceBiobase.Types.BitscoreBiobase.Types.EnergyBiobase.Types.EvalueBiobase.Types.Index.TypeBiobase.Types.IndexBiobase.Types.Names.InternalBiobase.Types.Names Biobase.Types.NucleotideSequenceBiobase.Types.ReadingFrameBiobase.Types.StrandBiobase.Types.StructureBiobase.Types.ShapeBiobase.Types.TaxonomySpeciesRfamPfamClanProtein Nucleotide Accession _getAccession accession' accessionretagAccessionguessAccessionType$fNFDataAccession$fToJSONAccession$fSerializeAccession$fHashableAccession$fFromJSONAccession$fBinaryAccession$fIsStringAccession $fEqAccession$fOrdAccession$fReadAccession$fShowAccession$fGenericAccessionAAseq_aaseq $fDataAAseq$fGenericAAseq $fEqAAseq $fOrdAAseq $fReadAAseq $fShowAAseqaaseqmkAAseq$fArbitraryAAseq$fIsStringAAseq $fIxedAAseq $fNFDataAAseq$fReversingAAseqBitscore getBitscore$fNFDataBitscore$fToJSONBitscore$fSerializeBitscore$fHashableBitscore$fFromJSONBitscore$fBinaryBitscore $fEqBitscore $fOrdBitscore$fReadBitscore$fShowBitscore $fNumBitscore$fFractionalBitscore$fGenericBitscore$fNumericLimitsBitscore prob2Score score2Prob$fDefaultBitscore$fVectorVectorBitscore$fMVectorMVectorBitscore$fUnboxBitscoreDGdG$fEqDG$fOrdDG$fNumDG$fFractionalDG$fReadDG$fShowDG $fGenericDG$fDataDGDDGdDG $fDefaultDG $fNFDataDG $fToJSONDG $fFromJSONDG $fSerializeDG $fBinaryDG $fHashableDG$fVectorVectorDG$fMVectorMVectorDG $fUnboxDG$fEqDDG$fOrdDDG$fNumDDG $fReadDDG $fShowDDG $fGenericDDG $fIntegralDDG $fRealDDG $fEnumDDG$fNumericEpsilonDG$fNumericLimitsDG$fVectorVectorDDG$fMVectorMVectorDDG $fUnboxDDGEvalue getEvalue$fNFDataEvalue$fToJSONEvalue$fSerializeEvalue$fHashableEvalue$fFromJSONEvalue$fBinaryEvalue $fEqEvalue $fOrdEvalue $fReadEvalue $fShowEvalue $fNumEvalue$fGenericEvalue$fNumericLimitsEvalue$fDefaultEvalue$fVectorVectorEvalue$fMVectorMVectorEvalue $fUnboxEvalueIndexgetIndexindex maybeIndex$fHashableIndex$fFromJSONIndex $fToJSONIndex$fSerializeIndex $fBinaryIndex $fNFDataIndex $fNumIndex $fShowIndex $fReadIndex $fEqIndex $fOrdIndex$fGenericIndex $fIxIndex$fArbitraryIndex$fIndexStreamIndex$fIndexStream:. $fIndexIndex$fVectorVectorIndex$fMVectorMVectorIndex $fUnboxIndexI1I0 checkIndexreIndex+. unsafePlus-.delta unsafeMinustoInttoInt0fromInt0speciesNameBimapspeciesNameBimapAddspeciesNameBimapLookupInt SpeciesNamegetSpeciesNameRep$fEqSpeciesName$fGenericSpeciesName TaxonomicRankgetTaxonomicRank speciesName$fToJSONSpeciesName$fFromJSONSpeciesName$fSerializeSpeciesName$fBinarySpeciesName$fNFDataSpeciesName#$fConvertibleStringsSpeciesNameText#$fConvertibleStringsTextSpeciesName$fHashableSpeciesName$fReadSpeciesName$fShowSpeciesName$fIsStringSpeciesName$fOrdSpeciesName$fVectorVectorSpeciesName$fMVectorMVectorSpeciesName$fUnboxSpeciesName$fToJSONTaxonomicRank$fFromJSONTaxonomicRank$fSerializeTaxonomicRank$fBinaryTaxonomicRank$fReadTaxonomicRank$fHashableTaxonomicRank%$fConvertibleStringsTaxonomicRankText%$fConvertibleStringsTextTaxonomicRank$fNFDataTaxonomicRank$fIsStringTaxonomicRank$fEqTaxonomicRank$fOrdTaxonomicRank$fShowTaxonomicRank$fGenericTaxonomicRank SequenceID _sequenceID$fDataSequenceID$fGenericSequenceID$fEqSequenceID$fOrdSequenceID$fReadSequenceID$fShowSequenceID$fIsStringSequenceIDRNAseq_rnaseq sequenceIDsequenceIDstring$fNFDataSequenceID $fDataRNAseq$fGenericRNAseq $fEqRNAseq $fOrdRNAseq $fReadRNAseq $fShowRNAseqDNAseq_dnaseqrnaseqmkRNAseq$fArbitraryRNAseq$fIsStringRNAseq $fIxedRNAseq$fNFDataRNAseq $fDataDNAseq$fGenericDNAseq $fEqDNAseq $fOrdDNAseq $fReadDNAseq $fShowDNAseq$fReversingRNAseq Complement complement Transcribe TranscribeTo transcribednaseqmkDNAseqrna2dna rnaComplementdna2rna dnaComplement$fArbitraryDNAseq$fIsStringDNAseq $fIxedDNAseq$fNFDataDNAseq$fTranscribeRNAseq$fTranscribeDNAseq$fComplementRNAseq$fComplementDNAseq$fReversingDNAseq ReadingFramegetReadingFramenextReadingFrameprevReadingFrame fromIndex$fEqReadingFrame$fOrdReadingFrame$fGenericReadingFrameStrand getStrand MinusStrand PlusStrand$fNFDataStrand$fHashableStrand$fFromJSONStrand$fToJSONStrand$fSerializeStrand$fBinaryStrand $fEnumStrand$fBoundedStrand $fReadStrand $fShowStrand $fEqStrand $fOrdStrand$fGenericStrand$fArbitraryStrand$fIndexStreamStrand $fIndexStrand$fVectorVectorStrand$fMVectorMVectorStrand $fUnboxStrandRNAss_rnass $fEqRNAss $fOrdRNAss $fShowRNAss $fReadRNAss $fDataRNAss$fGenericRNAss$fSemigroupRNAss $fMonoidRNAssRNAensembleStructureRNAes_rnaesrnass $fNFDataRNAss$fEqRNAensembleStructure$fOrdRNAensembleStructure$fShowRNAensembleStructure$fReadRNAensembleStructure$fDataRNAensembleStructure$fGenericRNAensembleStructureRNAds_rnadsL_rnadsRrnaes$fNFDataRNAensembleStructure $fEqRNAds $fOrdRNAds $fShowRNAds $fReadRNAds $fDataRNAds$fGenericRNAdsRNApset_rnapset _rnapsetSLenRNAStructureError_rnaStructureError _rnaOffenderrnadsLrnadsRrnadsrnads2rnassPairmkRNAds verifyRNAss $fNFDataRNAds$fNFDataRNAStructureError$fShowRNAStructureError$fGenericRNAStructureError $fReadRNApset $fShowRNApset $fEqRNApset $fOrdRNApset$fGenericRNApsetrnapset rnapsetSLen rnassPairSet rnassSPForestcompactifySPForest rnassPairSet' rnapsetRNAsspairDist$fArbitraryRNAss$fArbitraryRNApset$fNFDataRNApsetRNAshape_rnashapelevel _rnashape ShapeLevelSL1SL2SL3SL4SL5$fNFDataShapeLevel$fEqShapeLevel$fOrdShapeLevel$fShowShapeLevel$fReadShapeLevel$fDataShapeLevel$fGenericShapeLevel $fEqRNAshape $fOrdRNAshape$fShowRNAshape$fReadRNAshape$fDataRNAshape$fGenericRNAshape RNAshapepset_rnashapepsetlevel _rnashapepsetrnashape rnashapelevel shapeForest rnass2shapetestshapeForestshape generateShape$fNFDataRNAshape$fReadRNAshapepset$fShowRNAshapepset$fEqRNAshapepset$fOrdRNAshapepset$fGenericRNAshapepset rnashapepsetrnashapepsetlevelrnashapePairSet shapePairDist$fNFDataRNAshapepsetClassificationKingdomPhylumClassOrderSubOrderFamilyGenusUnknown$fNFDataClassification$fToJSONClassification$fSerializeClassification$fHashableClassification$fFromJSONClassification$fBinaryClassification$fEqClassification$fOrdClassification$fReadClassification$fShowClassification$fEnumClassification$fGenericClassificationTaxonspeciesclassification$fVectorVectorClassification$fMVectorMVectorClassification$fUnboxClassification$fHashableTaxon $fNFDataTaxon $fToJSONTaxon$fSerializeTaxon$fFromJSONTaxon $fBinaryTaxon $fEqTaxon $fReadTaxon $fShowTaxon$fGenericTaxon lens-4.17-GBC3c9yW0tz1odQsR33aDlControl.Lens.AtIxed&vector-0.12.0.2-H1Eu1OCXL0L9y980iV8EwUData.Vector.Unboxed.BaseMVector MV_BitscoreVector V_BitscoreMV_DGMV_DDGV_DGV_DDG MV_EvalueV_Evalueghc-prim GHC.TypesIntbase GHC.MaybeJustNothing-PrimitiveArray-0.9.0.0-7o4e78MXLzPCxIvR95QAvsData.PrimitiveArray.Index.Class LimitTypeLtIndexMV_IndexV_IndexMV_SpeciesName V_SpeciesNameLtStrand MV_StrandV_Strand/ForestStructures-0.0.1.0-82bQfB0BoZu5AE6gQL6IE9Data.Forest.StructuredPairedSPTSPForestMV_ClassificationV_Classification