var searchIndex = {}; searchIndex["bio"] = {"doc":"# Rust-bio, a bioinformatics library for Rust.\nThis library provides implementations of many algorithms and data structures\nthat are useful for bioinformatics.\nAll provided implementations are rigorously tested via continuous\nintegration.\nFor installation instructions and a general overview, visit\nhttps://rust-bio.github.io.","items":[[0,"utils","bio","Common utilities.",null,null],[3,"NonNaNFloat","bio::utils","",null,null],[5,"trim_newline","","Remove a trailing newline from the given string in place.",null,{"inputs":[{"name":"string"}],"output":null}],[5,"scan","","In place implementation of scan over a slice.",null,null],[5,"prescan","","",null,null],[6,"Text","","Type alias for an owned text, i.e. ``Vec<u8>``.",null,null],[6,"TextSlice","","Type alias for a text slice, i.e. ``&[u8]``.",null,null],[8,"TextIterator","","Type alias for an iterator over a sequence, i.e. ``Iterator<Item=&u8>``.",null,null],[8,"IntoTextIterator","","Type alias for a type that can be coerced into a ``TextIterator``.\nThis includes ``&Vec<u8>``, ``&[u8]``, ``Iterator<Item=&u8>``.",null,null],[11,"clone","","",0,null],[11,"fmt","","",0,null],[11,"eq","","",0,null],[11,"ne","","",0,null],[11,"partial_cmp","","",0,null],[11,"lt","","",0,null],[11,"le","","",0,null],[11,"gt","","",0,null],[11,"ge","","",0,null],[11,"new","","",0,{"inputs":[{"name":"f"}],"output":{"name":"option"}}],[11,"unwrap","","",0,null],[11,"cmp","","",0,null],[0,"alphabets","bio","Implementation of alphabets and useful utilities.",null,null],[3,"Alphabet","bio::alphabets","Representation of an alphabet.",null,null],[12,"symbols","","",1,null],[3,"RankTransform","","Tools based on transforming the alphabet symbols to their lexicographical ranks.",null,null],[12,"ranks","","",2,null],[3,"QGrams","","Iterator over q-grams.",null,null],[0,"dna","","Implementation of the DNA alphabet.",null,null],[5,"alphabet","bio::alphabets::dna","The DNA alphabet (uppercase and lowercase).",null,{"inputs":[],"output":{"name":"alphabet"}}],[5,"n_alphabet","","The DNA alphabet including N (uppercase and lowercase).",null,{"inputs":[],"output":{"name":"alphabet"}}],[5,"iupac_alphabet","","The IUPAC DNA alphabet (uppercase and lowercase).",null,{"inputs":[],"output":{"name":"alphabet"}}],[5,"complement","","Return complement of given DNA alphabet character (IUPAC alphabet supported).",null,{"inputs":[{"name":"u8"}],"output":{"name":"u8"}}],[5,"revcomp","","Calculate reverse complement of given text (IUPAC alphabet supported).",null,{"inputs":[{"name":"t"}],"output":{"name":"vec"}}],[0,"protein","bio::alphabets","Implementation of the protein alphabet.",null,null],[5,"alphabet","bio::alphabets::protein","Returns the standard protein alphabet, containing the 20 common amino acids.",null,{"inputs":[],"output":{"name":"alphabet"}}],[6,"SymbolRanks","bio::alphabets","",null,null],[11,"new","","Create new alphabet from given symbols.",1,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"insert","","Insert symbol into alphabet.",1,null],[11,"is_word","","Check if given text is a word over the alphabet.",1,null],[11,"max_symbol","","Return lexicographically maximal symbol.",1,null],[11,"len","","Return size of the alphabet.",1,null],[11,"is_empty","","Is this alphabet empty?",1,null],[11,"new","","Construct a new `RankTransform`.",2,{"inputs":[{"name":"alphabet"}],"output":{"name":"self"}}],[11,"get","","Get the rank of symbol `a`.",2,null],[11,"transform","","Transform a given `text`.",2,null],[11,"qgrams","","Iterate over q-grams (substrings of length q) of given `text`. The q-grams are encoded\nas `usize` by storing the symbol ranks in log2(|A|) bits (with |A| being the alphabet size).",2,null],[11,"alphabet","","Restore alphabet from transform.",2,null],[11,"next","","",3,null],[0,"pattern_matching","bio","This module contains various useful pattern matching algorithms.\nThe implementations are based on the lecture notes\n"Algorithmen auf Sequenzen", Kopczynski, Marschall, Martin and Rahmann, 2008 - 2015.",null,null],[0,"shift_and","bio::pattern_matching","ShiftAnd algorithm for pattern matching.\nPatterns may contain at most 64 symbols.\nComplexity: O(n) with text length n.",null,null],[3,"ShiftAnd","bio::pattern_matching::shift_and","ShiftAnd algorithm.",null,null],[3,"Matches","","Iterator over start positions of matches.",null,null],[5,"masks","","Calculate ShiftAnd masks. This function is called automatically when instantiating\na new ShiftAnd for a given pattern.",null,null],[11,"new","","Create new ShiftAnd instance from a given pattern.",4,{"inputs":[{"name":"p"}],"output":{"name":"self"}}],[11,"find_all","","Find all matches of pattern in the given text. Matches are returned as an iterator\nover start positions.",4,null],[11,"next","","",5,null],[0,"kmp","bio::pattern_matching","Algorithm of Knuth Morris and Pratt.\nConstructs an automaton recognizing the pattern, and scans linearly over\na text of length n. Complexity: O(n).\nThe transition function delta is simulated via the lps-function, that assigns to each position\nq in the pattern the longest prefix of the pattern that is suffix of pattern[..q+1].\nThen, in the NFA for the pattern, active states after reading position q are\n{q, lps(q), lps(lps(q)), ... 0}.",null,null],[3,"KMP","bio::pattern_matching::kmp","KMP algorithm.",null,null],[3,"Matches","","Iterator over start positions of matches.",null,null],[11,"new","","Create a new instance for a given pattern.",6,{"inputs":[{"name":"textslice"}],"output":{"name":"self"}}],[11,"find_all","","Find all matches of pattern in a given text. Matches are returned as iterator over start positions.",6,null],[11,"next","","",7,null],[0,"bom","bio::pattern_matching","Backward oracle matching algorithm.\nBest-case complexity: O(n / m) with pattern of length m and text of length n.\nWorst case complexity: O(n * m).",null,null],[3,"BOM","bio::pattern_matching::bom","Backward oracle matching algorithm.",null,null],[3,"Matches","","Iterator over start positions of matches.",null,null],[11,"new","","Create a new instance for a given pattern.",8,{"inputs":[{"name":"p"}],"output":{"name":"self"}}],[11,"find_all","","Find all matches of the pattern in the given text. Matches are returned as an iterator over start positions.",8,null],[11,"next","","",9,null],[0,"horspool","bio::pattern_matching","Algorithm of Horspool.\nWindow-based, similar to but faster than Boyer-Moore.",null,null],[3,"Horspool","bio::pattern_matching::horspool","Algorithm of Horspool.",null,null],[3,"Matches","","Iterator over start positions of matches.",null,null],[11,"new","","Create a new instance for a given pattern.",10,{"inputs":[{"name":"textslice"}],"output":{"name":"self"}}],[11,"find_all","","Find all matches with a given text. Matches are returned as an iterator over start positions.",10,null],[11,"next","","",11,null],[0,"bndm","bio::pattern_matching","Backward nondeterministic DAWG matching (BNDM).\nBest-case complexity: O(n / m) with pattern of length m <= 64 and text of length n.\nWorst case complexity: O(n * m).",null,null],[3,"BNDM","bio::pattern_matching::bndm","BNDM algorithm.",null,null],[3,"Matches","","Iterator over start positions of matches.",null,null],[11,"new","","Create a new instance for a given pattern.",12,{"inputs":[{"name":"p"}],"output":{"name":"self"}}],[11,"find_all","","Find all matches of pattern with a given text. Matches are returned as iterator over start positions.",12,null],[11,"next","","",13,null],[0,"ukkonen","bio::pattern_matching","Bounded version of Ukkonens DP algorithm for approximate pattern matching.\nComplexity: O(n * k) on random texts.",null,null],[3,"Ukkonen","bio::pattern_matching::ukkonen","Ukkonens algorithm.",null,null],[3,"Matches","","Iterator over pairs of end positions and distance of matches.",null,null],[5,"unit_cost","","Default cost function (unit costs).",null,{"inputs":[{"name":"u8"},{"name":"u8"}],"output":{"name":"u32"}}],[11,"with_capacity","","Initialize algorithm with given capacity and cost function.",14,{"inputs":[{"name":"usize"},{"name":"f"}],"output":{"name":"self"}}],[11,"find_all_end","","Find all matches between pattern and text with up to k errors.\nMatches are returned as an iterator over pairs of end position and distance.",14,null],[11,"next","","",15,null],[0,"myers","bio::pattern_matching","Myers bit-parallel approximate pattern matching algorithm.\nFinds all matches up to a given edit distance. The pattern has to fit into a bitvector,\nand is here limited to 64 symbols.\nComplexity: O(n)",null,null],[3,"Myers","bio::pattern_matching::myers","Myers algorithm.",null,null],[3,"Matches","","Iterator over pairs of end positions and distance of matches.",null,null],[11,"new","","Create a new instance of Myers algorithm for a given pattern.",16,{"inputs":[{"name":"p"}],"output":{"name":"self"}}],[11,"with_wildcard","","Create a new instance of Myers algorithm for a given pattern and a wildcard character\nthat shall match any character.",16,{"inputs":[{"name":"textslice"},{"name":"u8"}],"output":{"name":"self"}}],[11,"distance","","Calculate the global distance of the pattern to the given text.",16,null],[11,"find_all_end","","Find all matches of pattern in the given text up to a given maximum distance.\nMatches are returned as an iterator over pairs of end position and distance.",16,null],[11,"next","","",17,null],[0,"data_structures","bio","Various useful data structures.",null,null],[0,"rank_select","bio::data_structures","Rank/Select data structure based on Gonzalez, Grabowski, Mäkinen, Navarro (2005).\nThis implementation uses only a single level of blocks, and performs well for large n.",null,null],[3,"RankSelect","bio::data_structures::rank_select","A rank/select data structure.",null,null],[11,"new","","Create a new instance.",18,{"inputs":[{"name":"bitvec"},{"name":"usize"}],"output":{"name":"rankselect"}}],[11,"rank","","Get the rank of a given bit, i.e. the number of 1-bits in the bitvector up to i (inclusive).\nComplexity: O(k).",18,null],[11,"select","","Get the smallest bit with a given rank.\nComplexity: O(log (n / k) + k).",18,null],[0,"suffix_array","bio::data_structures","Suffix arrays and related algorithms.\nThe implementation is based on the lecture notes\n"Algorithmen auf Sequenzen", Kopczynski, Marschall, Martin and Rahmann, 2008 - 2015.",null,null],[5,"suffix_array","bio::data_structures::suffix_array","Construct suffix array for given text of length n.\nComplexity: O(n).\nThis is an implementation of the induced sorting as presented by\nGe Nong, Sen Zhang und Wai Hong Chan (2009), also known as SAIS.\nThe implementation is based on the following lecture notes:\nhttp://ls11-www.cs.tu-dortmund.de/people/rahmann/algoseq.pdf",null,null],[5,"lcp","","Construct lcp array for given text and suffix array of length n.\nComplexity: O(n).",null,null],[5,"shortest_unique_substrings","","Calculate all locally shortest unique substrings from a given suffix and lcp array\n(Ohlebusch (2013). "Bioinformatics Algorithms". ISBN 978-3-00-041316-2).\nComplexity: O(n)",null,{"inputs":[{"name":"sa"},{"name":"lcparray"}],"output":{"name":"vec"}}],[6,"LCPArray","","",null,null],[6,"RawSuffixArray","","",null,null],[8,"SuffixArray","","A trait exposing general functionality of suffix arrays.",null,null],[10,"get","","",19,null],[10,"len","","",19,null],[11,"get","","",20,null],[11,"len","","",20,null],[0,"bwt","bio::data_structures","The Burrows-Wheeler-Transform and related data structures.\nThe implementation is based on the lecture notes\n"Algorithmen auf Sequenzen", Kopczynski, Marschall, Martin and Rahmann, 2008 - 2015.",null,null],[3,"Occ","bio::data_structures::bwt","An occurence array implementation.",null,null],[5,"bwt","","Calculate Burrows-Wheeler-Transform of the given text of length n.\nComplexity: O(n).",null,null],[5,"invert_bwt","","Calculate the inverse of a BWT of length n, which is the original text.\nComplexity: O(n).",null,{"inputs":[{"name":"bwtslice"}],"output":{"name":"vec"}}],[5,"less","","Calculate the less array for a given BWT. Complexity O(n).",null,{"inputs":[{"name":"bwtslice"},{"name":"alphabet"}],"output":{"name":"less"}}],[5,"bwtfind","","Calculate the bwtfind array needed for inverting the BWT. Complexity O(n).",null,{"inputs":[{"name":"bwtslice"},{"name":"alphabet"}],"output":{"name":"bwtfind"}}],[6,"BWT","","",null,null],[6,"BWTSlice","","",null,null],[6,"Less","","",null,null],[6,"BWTFind","","",null,null],[8,"DerefBWT","","",null,null],[8,"DerefOcc","","",null,null],[8,"DerefLess","","",null,null],[11,"new","","Calculate occ array with sampling from BWT of length n.\nTime complexity: O(n).\nSpace complexity: O(n / k * A) with A being the alphabet size.\nAlphabet size is determined on the fly from the BWT.\nFor large texts, it is therefore advisable to transform\nthe text before calculating the BWT (see alphabets::rank_transform).",21,{"inputs":[{"name":"bwtslice"},{"name":"usize"},{"name":"alphabet"}],"output":{"name":"self"}}],[11,"get","","Get occurrence count of symbol a in BWT[..r+1].\nComplexity: O(k).",21,null],[0,"bitenc","bio::data_structures","A fixed-width bit encoding implementation. This allows to store a sequence of values over\na reduced alphabet by packing them bit-encoded into a sequence of bytes.",null,null],[3,"BitEnc","bio::data_structures::bitenc","A sequence of bitencoded values.",null,null],[3,"BitEncIter","","Iterator over values of a bitencoded sequence (values will be unpacked into bytes).",null,null],[11,"new","","Create a new instance with a given encoding width (e.g. width=2 for using two bits per value).",22,{"inputs":[{"name":"usize"}],"output":{"name":"self"}}],[11,"with_capacity","","Create a new instance with a given capacity and encoding width (e.g. width=2 for using two bits per value).",22,{"inputs":[{"name":"usize"},{"name":"usize"}],"output":{"name":"self"}}],[11,"push","","Append a value.",22,null],[11,"push_values","","Append `n` times the given value.",22,null],[11,"set","","Set the value as position `i`.",22,null],[11,"get","","Get the value at position `i`.",22,null],[11,"iter","","Iterate over stored values (values will be unpacked into bytes).",22,null],[11,"clear","","Clear the sequence.",22,null],[11,"len","","",22,null],[11,"is_empty","","",22,null],[11,"next","","",23,null],[0,"smallints","bio::data_structures","A data structure for a sequence of small integers with a few big integers.\nSmall ints are stored in type S (e.g. a byte), big ints are stored separately (in type B) in a BTree.\nThe implementation provides vector-like operations on the data structure (e.g. retrieve a position,\nadd an integer, etc.).",null,null],[3,"SmallInts","bio::data_structures::smallints","Data structure for storing a sequence of small integers with few big ones space efficiently\nwhile supporting classical vector operations.",null,null],[3,"Iter","","Iterator over the elements of a SmallInts sequence.",null,null],[11,"new","","Create a new instance.",24,{"inputs":[],"output":{"name":"self"}}],[11,"with_capacity","","Create a new instance with a given capacity.",24,{"inputs":[{"name":"usize"}],"output":{"name":"self"}}],[11,"from_elem","","Create a new instance containing `n` times the integer `v` (and `v` is expected to be small).",24,{"inputs":[{"name":"s"},{"name":"usize"}],"output":{"name":"self"}}],[11,"get","","Return the integer at position `i`.",24,null],[11,"push","","Append `v` to the sequence. This will determine whether `v` is big or small and store it accordingly.",24,null],[11,"set","","Set value of position `i` to `v`. This will determine whether `v` is big or small and store it accordingly.",24,null],[11,"iter","","Iterate over sequence. Values will be returned in the big integer type (`B`).",24,null],[11,"decompress","","Decompress into a normal vector of big integers (type `B`).",24,null],[11,"len","","Length of the sequence.",24,null],[11,"is_empty","","is the sequence empty?",24,null],[11,"next","","",25,null],[0,"fmindex","bio::data_structures","FM-Index and FMD-Index for finding suffix array intervals matching a given pattern in linear time.",null,null],[3,"Interval","bio::data_structures::fmindex","A suffix array interval.",null,null],[12,"lower","","",26,null],[12,"upper","","",26,null],[3,"FMIndex","","The Fast Index in Minute space (FM-Index, Ferragina and Manzini, 2000) for finding suffix array\nintervals matching a given pattern.",null,null],[3,"BiInterval","","A bi-interval on suffix array of the forward and reverse strand of a DNA text.",null,null],[3,"FMDIndex","","The FMD-Index for linear time search of supermaximal exact matches on forward and reverse\nstrand of DNA texts (Li, 2012).",null,null],[8,"FMIndexable","","",null,null],[10,"occ","","Get occurrence count of symbol a in BWT[..r+1].",27,null],[10,"less","","Also known as",27,null],[10,"bwt","","",27,null],[11,"backward_search","","Perform backward search, yielding suffix array\ninterval denoting exact occurrences of the given pattern of length m in the text.\nComplexity: O(m).",27,null],[11,"fmt","","",26,null],[11,"clone","","",26,null],[11,"occ","","",26,null],[11,"occ","","",28,null],[11,"less","","",28,null],[11,"bwt","","Provide a reference to the underlying BWT.",28,null],[11,"new","","Construct a new instance of the FM index.",28,{"inputs":[{"name":"dbwt"},{"name":"dless"},{"name":"docc"}],"output":{"name":"self"}}],[11,"fmt","","",29,null],[11,"clone","","",29,null],[11,"forward","","",29,null],[11,"revcomp","","",29,null],[11,"occ","","",30,null],[11,"less","","",30,null],[11,"bwt","","Provide a reference to the underlying BWT.",30,null],[11,"from","","Construct a new instance of the FMD index (see Heng Li (2012) Bioinformatics).\nThis expects a BWT that was created from a text over the DNA alphabet with N\n(`alphabets::dna::n_alphabet()`) consisting of the\nconcatenation with its reverse complement, separated by the sentinel symbol `$`.\nI.e., let T be the original text and R be its reverse complement.\nThen, the expected text is T$R$. Further, multiple concatenated texts are allowed, e.g.\nT1$R1$T2$R2$T3$R3$.",30,{"inputs":[{"name":"fmindex"}],"output":{"name":"fmdindex"}}],[11,"smems","","Find supermaximal exact matches of given pattern that overlap position i in the pattern.\nComplexity O(m) with pattern of length m.",30,null],[0,"qgram_index","bio::data_structures","A classical, flexible, q-gram index implementation.",null,null],[3,"QGramIndex","bio::data_structures::qgram_index","A classical, flexible, q-gram index implementation.",null,null],[3,"Interval","","An interval, consisting of start and stop position (the latter exclusive).",null,null],[12,"start","","",31,null],[12,"stop","","",31,null],[3,"Match","","A match between the pattern and the text.",null,null],[12,"pattern","","",32,null],[12,"text","","",32,null],[12,"count","","",32,null],[3,"ExactMatch","","An exact match between the pattern and the text.",null,null],[12,"pattern","","",33,null],[12,"text","","",33,null],[11,"new","","Create a new q-gram index.\nThe q has to be smaller than b / log2(|A|) with |A| being the alphabet size and b the number\nbits with the `usize` data type.",34,null],[11,"with_max_count","","Create a new q-gram index, only considering q-grams that occur at most `max_count` times.\nThe q has to be smaller than b / log2(|A|) with |A| being the alphabet size and b the number\nbits with the `usize` data type.",34,null],[11,"q","","The used q.",34,null],[11,"qgram_matches","","Return text positions with matching q-gram. Complexity O(1).",34,null],[11,"matches","","Return matches of the given pattern.\nComplexity O(m + k) for pattern of length m and k being the number of matching q-grams.",34,null],[11,"exact_matches","","Return exact matches (substrings) of the given pattern.\nComplexity O(m + k) for pattern of length m and k being the number of matching q-grams.",34,null],[11,"clone","","",31,null],[11,"fmt","","",31,null],[11,"eq","","",31,null],[11,"ne","","",31,null],[11,"get","","Get the text within the given interval.",31,null],[11,"clone","","",32,null],[11,"fmt","","",32,null],[11,"eq","","",32,null],[11,"ne","","",32,null],[11,"cmp","","",32,null],[11,"partial_cmp","","",32,null],[11,"clone","","",33,null],[11,"fmt","","",33,null],[11,"eq","","",33,null],[11,"ne","","",33,null],[0,"alignment","bio","Various alignment and distance computing algorithms.",null,null],[3,"Alignment","bio::alignment","An alignment, consisting of a score, the start and end position of the alignment on\nsequence x and sequence y, the length of sequence x,\nand the alignment edit operations (see alignment::pairwise for meaning of x and y).",null,null],[12,"score","","",35,null],[12,"ystart","","",35,null],[12,"xstart","","",35,null],[12,"yend","","",35,null],[12,"xend","","",35,null],[12,"xlen","","",35,null],[12,"operations","","",35,null],[4,"AlignmentOperation","","Alignment operations (Match, Subst, Del and Ins).",null,null],[13,"Match","","",36,null],[13,"Subst","","",36,null],[13,"Del","","",36,null],[13,"Ins","","",36,null],[0,"pairwise","","Calculate alignments with a generalized variant of the Smith Waterman algorithm.\nComplexity: O(n * m) for strings of length m and n.",null,null],[3,"Aligner","bio::alignment::pairwise","A generalized Smith-Waterman aligner.",null,null],[11,"new","","Create new aligner instance with given gap open and gap extend penalties\nand the score function.",37,{"inputs":[{"name":"i32"},{"name":"i32"},{"name":"f"}],"output":{"name":"self"}}],[11,"with_capacity","","Create new aligner instance. The size hints help to\navoid unnecessary memory allocations.",37,{"inputs":[{"name":"usize"},{"name":"usize"},{"name":"i32"},{"name":"i32"},{"name":"f"}],"output":{"name":"self"}}],[11,"global","","Calculate global alignment of x against y.",37,null],[11,"semiglobal","","Calculate semiglobal alignment of x against y (x is global, y is local).",37,null],[11,"local","","Calculate local alignment of x against y.",37,null],[0,"distance","bio::alignment","Various subroutines for computing a distance between sequences.\nComplexity: O(n) for strings of length n for the Hamming distance;\nO(n * m) for strings of length n and m for the Levenshtein (or edit) distance.",null,null],[5,"hamming","bio::alignment::distance","Compute the Hamming distance between two strings with `hamming`. If returns the `Result<u32, &str>` type\nwith the first element corresponding to the distance between two strings (a number of mismatches) and the second one to the error message\nwhen two strings are not of equal sizes.",null,{"inputs":[{"name":"textslice"},{"name":"textslice"}],"output":{"name":"result"}}],[5,"levenshtein","","Compute the Levenshtein (or Edit) distance between two strings with `levenshtein`. It returns a distance between two strings,\ni.e. minimal number of mismatches, insertions and deletions between two strings.",null,{"inputs":[{"name":"textslice"},{"name":"textslice"}],"output":{"name":"u32"}}],[11,"clone","bio::alignment","",36,null],[11,"fmt","","",36,null],[11,"eq","","",36,null],[11,"fmt","","",35,null],[11,"cigar","","Calculate the cigar string.",35,null],[11,"pretty","","Return the pretty formatted alignment as a String.",35,null],[0,"io","bio","Readers and writers for common bioinformatics file formats.",null,null],[4,"Strand","bio::io","Strand information.",null,null],[13,"Forward","","",38,null],[13,"Reverse","","",38,null],[13,"Unknown","","",38,null],[0,"fastq","","FastQ reading and writing.",null,null],[3,"Reader","bio::io::fastq","A FastQ reader.",null,null],[3,"Record","","A FastQ record.",null,null],[3,"Records","","An iterator over the records of a FastQ file.",null,null],[3,"Writer","","A FastQ writer.",null,null],[11,"from_file","","Read from a given file.",39,{"inputs":[{"name":"p"}],"output":{"name":"result"}}],[11,"new","","Read from a given `io::Read`.",39,{"inputs":[{"name":"r"}],"output":{"name":"self"}}],[11,"read","","Read into a given record.\nReturns an error if the record in incomplete or syntax is violated.\nThe content of the record can be checked via the record object.",39,null],[11,"records","","Return an iterator over the records of this FastQ file.",39,null],[11,"clone","","",40,null],[11,"fmt","","",40,null],[11,"new","","Create a new, empty FastQ record.",40,{"inputs":[],"output":{"name":"self"}}],[11,"is_empty","","Check if record is empty.",40,null],[11,"check","","Check validity of FastQ record.",40,null],[11,"id","","Return the id of the record.",40,null],[11,"desc","","Return descriptions if present.",40,null],[11,"seq","","Return the sequence of the record.",40,null],[11,"qual","","Return the base qualities of the record.",40,null],[11,"fmt","","",40,null],[11,"next","","",41,null],[11,"to_file","","Write to a given file path.",42,{"inputs":[{"name":"p"}],"output":{"name":"result"}}],[11,"new","","Write to a given `io::Write`.",42,{"inputs":[{"name":"w"}],"output":{"name":"self"}}],[11,"write_record","","Directly write a FastQ record.",42,null],[11,"write","","Write a FastQ record with given id, optional description, sequence and qualities.",42,null],[11,"flush","","Flush the writer, ensuring that everything is written.",42,null],[0,"fasta","bio::io","FASTA format reading and writing.",null,null],[3,"Reader","bio::io::fasta","A FASTA reader.",null,null],[3,"Index","","A FASTA index as created by SAMtools (.fai).",null,null],[3,"IndexedReader","","A FASTA reader with an index as created by SAMtools (.fai).",null,null],[12,"index","","",43,null],[3,"Sequence","","A sequence record returned by the FASTA index.",null,null],[12,"name","","",44,null],[12,"len","","",44,null],[3,"Writer","","A Fasta writer.",null,null],[3,"Record","","A FASTA record.",null,null],[3,"Records","","An iterator over the records of a Fasta file.",null,null],[11,"from_file","","Read FASTA from given file path.",45,{"inputs":[{"name":"p"}],"output":{"name":"result"}}],[11,"new","","Create a new Fasta reader given an instance of `io::Read`.",45,{"inputs":[{"name":"r"}],"output":{"name":"self"}}],[11,"read","","Read next FASTA record into the given `Record`.",45,null],[11,"records","","Return an iterator over the records of this FastQ file.",45,null],[11,"new","","Open a FASTA index from a given `io::Read` instance.",46,{"inputs":[{"name":"r"}],"output":{"name":"result"}}],[11,"from_file","","Open a FASTA index from a given file path.",46,{"inputs":[{"name":"p"}],"output":{"name":"result"}}],[11,"with_fasta_file","","Open a FASTA index given the corresponding FASTA file path (e.g. for ref.fasta we expect ref.fasta.fai).",46,{"inputs":[{"name":"p"}],"output":{"name":"result"}}],[11,"sequences","","Return a vector of sequences described in the index.",46,null],[11,"from_file","","Read from a given file path. This assumes the index ref.fasta.fai to be present for FASTA ref.fasta.",43,{"inputs":[{"name":"p"}],"output":{"name":"result"}}],[11,"new","","Read from a FASTA and its index, both given as `io::Read`. FASTA has to be `io::Seek` in addition.",43,{"inputs":[{"name":"r"},{"name":"i"}],"output":{"name":"result"}}],[11,"with_index","","Read from a FASTA and its index, the first given as `io::Read`, the second given as index object.",43,{"inputs":[{"name":"r"},{"name":"index"}],"output":{"name":"self"}}],[11,"read_all","","For a given seqname, read the whole sequence into the given vector.",43,null],[11,"read","","Read the given interval of the given seqname into the given vector (stop position is exclusive).",43,null],[11,"to_file","","Write to the given file path.",47,{"inputs":[{"name":"p"}],"output":{"name":"result"}}],[11,"new","","Create a new Fasta writer.",47,{"inputs":[{"name":"w"}],"output":{"name":"self"}}],[11,"write_record","","Directly write a Fasta record.",47,null],[11,"write","","Write a Fasta record with given id, optional description and sequence.",47,null],[11,"flush","","Flush the writer, ensuring that everything is written.",47,null],[11,"new","","Create a new instance.",48,{"inputs":[],"output":{"name":"self"}}],[11,"is_empty","","Check if record is empty.",48,null],[11,"check","","Check validity of Fasta record.",48,null],[11,"id","","Return the id of the record.",48,null],[11,"desc","","Return descriptions if present.",48,null],[11,"seq","","Return the sequence of the record.",48,null],[11,"next","","",49,null],[0,"bed","bio::io","BED format reading and writing.",null,null],[3,"Reader","bio::io::bed","A BED reader.",null,null],[3,"Records","","A BED record.",null,null],[3,"Writer","","A BED writer.",null,null],[3,"Record","","A BED record as defined by BEDtools (http://bedtools.readthedocs.org/en/latest/content/general-usage.html)",null,null],[11,"from_file","","Read from a given file path.",50,{"inputs":[{"name":"p"}],"output":{"name":"result"}}],[11,"new","","Read from a given reader.",50,{"inputs":[{"name":"r"}],"output":{"name":"self"}}],[11,"records","","Iterate over all records.",50,null],[11,"next","","",51,null],[11,"to_file","","Write to a given file path.",52,{"inputs":[{"name":"p"}],"output":{"name":"result"}}],[11,"new","","Write to a given writer.",52,{"inputs":[{"name":"w"}],"output":{"name":"self"}}],[11,"write","","Write a given BED record.",52,null],[11,"encode","","",53,null],[11,"new","","Create a new BED record.",53,{"inputs":[],"output":{"name":"self"}}],[11,"chrom","","Chromosome of the feature.",53,null],[11,"start","","Start position of feature (0-based).",53,null],[11,"end","","End position of feature (0-based, not included).",53,null],[11,"name","","Name of the feature.",53,null],[11,"score","","Score of the feature.",53,null],[11,"strand","","Strand of the feature.",53,null],[11,"aux","","Access auxilliary fields after the strand field by index (counting first field (chromosome) as 0).",53,null],[11,"set_chrom","","Set chromosome.",53,null],[11,"set_start","","Set start of feature.",53,null],[11,"set_end","","Set end of feature.",53,null],[11,"set_name","","Set name.",53,null],[11,"set_score","","Set score.",53,null],[11,"push_aux","","Add auxilliary field. This has to happen after name and score have been set.",53,null],[0,"gff","bio::io","GFF3 format reading and writing.",null,null],[3,"Reader","bio::io::gff","A GFF reader.",null,null],[3,"Records","","A GFF record.",null,null],[3,"Writer","","A GFF writer.",null,null],[3,"Record","","A GFF record",null,null],[4,"GffType","","GffType",null,null],[13,"GFF3","","Attribute format is key1=value, key2=value",54,null],[13,"GFF2","","Attribute format is key1 value; key2 value",54,null],[13,"GTF2","","Same as GFF2 just possible keyword and possible value change",54,null],[13,"Any","","Any, first field of tuple is key value separator, second is field separator",54,null],[11,"clone","","",54,null],[11,"from_file","","Read GFF from given file path in given format.",55,{"inputs":[{"name":"p"},{"name":"gfftype"}],"output":{"name":"result"}}],[11,"new","","Create a new GFF reader given an instance of `io::Read`, in given format.",55,{"inputs":[{"name":"r"},{"name":"gfftype"}],"output":{"name":"self"}}],[11,"records","","Iterate over all records.",55,null],[11,"next","","",56,null],[11,"to_file","","Write to a given file path in given format.",57,{"inputs":[{"name":"p"},{"name":"gfftype"}],"output":{"name":"result"}}],[11,"new","","Write to a given writer.",57,{"inputs":[{"name":"w"},{"name":"gfftype"}],"output":{"name":"self"}}],[11,"write","","Write a given GFF record.",57,null],[11,"encode","","",58,null],[11,"new","","Create a new GFF record.",58,{"inputs":[],"output":{"name":"self"}}],[11,"seqname","","Sequence name of the feature.",58,null],[11,"source","","Source of the feature.",58,null],[11,"feature_type","","Type of the feature.",58,null],[11,"start","","Start position of feature (1-based).",58,null],[11,"end","","End position of feature (1-based, not included).",58,null],[11,"score","","Score of feature",58,null],[11,"strand","","Strand of the feature.",58,null],[11,"frame","","Frame of the feature.",58,null],[11,"attributes","","Attribute of feature",58,null],[11,"seqname_mut","","Get mutable reference on seqname of feature.",58,null],[11,"source_mut","","Get mutable reference on source of feature.",58,null],[11,"feature_type_mut","","Get mutable reference on type of feature.",58,null],[11,"start_mut","","Get mutable reference on start of feature.",58,null],[11,"end_mut","","Get mutable reference on end of feature.",58,null],[11,"score_mut","","Get mutable reference on score of feature.",58,null],[11,"strand_mut","","Get mutable reference on strand of feature.",58,null],[11,"attributes_mut","","Get mutable reference on attributes of feature.",58,null],[11,"eq","bio::io","",38,null],[11,"fmt","","",38,null],[0,"seq_analysis","bio","Sequence analysis algorithms.",null,null],[0,"orf","bio::seq_analysis","One-way orf finder algorithm.",null,null],[3,"Finder","bio::seq_analysis::orf","An implementation of a naive algorithm finder",null,null],[3,"Orf","","An orf representation with start and end position of said orf,\nas well as offset of the reading frame (1,2,3) and strand location ",null,null],[12,"start","","",59,null],[12,"end","","",59,null],[12,"offset","","",59,null],[3,"Matches","","Iterator over offset, start position, end position and sequence of matched orfs.",null,null],[11,"new","","Create a new instance of a finder for the given start and stop codons and a particular length",60,{"inputs":[{"name":"vec"},{"name":"vec"},{"name":"usize"}],"output":{"name":"self"}}],[11,"find_all","","Find all orfs in the given sequence",60,null],[11,"next","","",61,null],[0,"gc","bio::seq_analysis","GC counter over an IntoTextIterator object.\nComplexity: o(n)",null,null],[5,"gc_content","bio::seq_analysis::gc","gc content counter for every nucleotide",null,{"inputs":[{"name":"i"}],"output":{"name":"f32"}}],[5,"gc3_content","","gc content counter for the nucleotide in 3rd position",null,{"inputs":[{"name":"i"}],"output":{"name":"f32"}}],[0,"stats","bio","Mathematical and statistical tools.",null,null],[0,"combinatorics","bio::stats","Combinations with and without replacement.",null,null],[5,"scaled_combinations","bio::stats::combinatorics","Calculate the number of combinations when choosing\nk elements from n elements without replacement, multiplied by a scaling factor.",null,{"inputs":[{"name":"u64"},{"name":"u64"},{"name":"f64"}],"output":{"name":"f64"}}],[5,"combinations","","Calculate the number of combinations when choosing\nk elements from n elements without replacement.\nThis is also known as n over k, or the binomial coefficient.",null,{"inputs":[{"name":"u64"},{"name":"u64"}],"output":{"name":"f64"}}],[5,"combinations_with_repl","","Calculate the number of combinations when choosing\nk elements from n elements with replacement.",null,{"inputs":[{"name":"u64"},{"name":"u64"}],"output":{"name":"f64"}}],[0,"logprobs","bio::stats","Handling log-probabilities.",null,null],[5,"ln_1m_exp","bio::stats::logprobs","Calculate log(1 - p) with p given in log space without loss of precision as described in\nhttp://cran.r-project.org/web/packages/Rmpfr/vignettes/log1mexp-note.pdf.",null,{"inputs":[{"name":"logprob"}],"output":{"name":"logprob"}}],[5,"log_to_phred","","Convert log scale probability to PHRED scale.",null,{"inputs":[{"name":"logprob"}],"output":{"name":"f64"}}],[5,"phred_to_log","","Convert PHRED scale probability to log scale.",null,{"inputs":[{"name":"f64"}],"output":{"name":"logprob"}}],[5,"sum","","Calculate the sum of the given probabilities in a numerically stable way (Durbin 1998).",null,null],[5,"add","","Add the given probabilities in a numerically stable way (Durbin 1998).",null,{"inputs":[{"name":"logprob"},{"name":"logprob"}],"output":{"name":"logprob"}}],[5,"sub","","Subtract the given probabilities in a numerically stable way (Durbin 1998).",null,{"inputs":[{"name":"logprob"},{"name":"logprob"}],"output":{"name":"logprob"}}],[5,"cumsum","","Calculate the cumulative sum of the given probabilities in a numerically stable way (Durbin 1998).",null,{"inputs":[{"name":"i"}],"output":{"name":"scaniter"}}],[6,"ScanIter","","Iterator returned by scans over logprobs.",null,null],[6,"Prob","bio::stats","An alias for `f64` to indicate a probability.",null,null],[6,"LogProb","","An alias for `f64` to indicate a log-probability.",null,null],[0,"scores","bio","",null,null],[0,"blosum62","bio::scores","",null,null],[5,"blosum62","bio::scores::blosum62","",null,{"inputs":[{"name":"u8"},{"name":"u8"}],"output":{"name":"i32"}}],[0,"pam40","bio::scores","",null,null],[5,"pam40","bio::scores::pam40","",null,{"inputs":[{"name":"u8"},{"name":"u8"}],"output":{"name":"i32"}}],[0,"pam120","bio::scores","",null,null],[5,"pam120","bio::scores::pam120","",null,{"inputs":[{"name":"u8"},{"name":"u8"}],"output":{"name":"i32"}}],[0,"pam200","bio::scores","",null,null],[5,"pam200","bio::scores::pam200","",null,{"inputs":[{"name":"u8"},{"name":"u8"}],"output":{"name":"i32"}}],[0,"pam250","bio::scores","",null,null],[5,"pam250","bio::scores::pam250","",null,{"inputs":[{"name":"u8"},{"name":"u8"}],"output":{"name":"i32"}}]],"paths":[[3,"NonNaNFloat"],[3,"Alphabet"],[3,"RankTransform"],[3,"QGrams"],[3,"ShiftAnd"],[3,"Matches"],[3,"KMP"],[3,"Matches"],[3,"BOM"],[3,"Matches"],[3,"Horspool"],[3,"Matches"],[3,"BNDM"],[3,"Matches"],[3,"Ukkonen"],[3,"Matches"],[3,"Myers"],[3,"Matches"],[3,"RankSelect"],[8,"SuffixArray"],[6,"RawSuffixArray"],[3,"Occ"],[3,"BitEnc"],[3,"BitEncIter"],[3,"SmallInts"],[3,"Iter"],[3,"Interval"],[8,"FMIndexable"],[3,"FMIndex"],[3,"BiInterval"],[3,"FMDIndex"],[3,"Interval"],[3,"Match"],[3,"ExactMatch"],[3,"QGramIndex"],[3,"Alignment"],[4,"AlignmentOperation"],[3,"Aligner"],[4,"Strand"],[3,"Reader"],[3,"Record"],[3,"Records"],[3,"Writer"],[3,"IndexedReader"],[3,"Sequence"],[3,"Reader"],[3,"Index"],[3,"Writer"],[3,"Record"],[3,"Records"],[3,"Reader"],[3,"Records"],[3,"Writer"],[3,"Record"],[4,"GffType"],[3,"Reader"],[3,"Records"],[3,"Writer"],[3,"Record"],[3,"Orf"],[3,"Finder"],[3,"Matches"]]}; initSearch(searchIndex);