Class that uses SEQAN library for a suffix array. It can be used to find peptide Candidates for a MS spectrum. More...
#include <OpenMS/DATASTRUCTURES/SuffixArraySeqan.h>
Public Member Functions | |
| SuffixArraySeqan (const String &st, const String &filename, const WeightWrapper::WEIGHTMODE weight_mode=WeightWrapper::MONO) | |
| constructor | |
| SuffixArraySeqan (const SuffixArraySeqan &source) | |
| copy constructor | |
| virtual | ~SuffixArraySeqan () |
| destructor | |
| String | toString () |
| converts suffix array to a printable string | |
| void | findSpec (std::vector< std::vector< std::pair< std::pair< SignedSize, SignedSize >, DoubleReal > > > &candidates, const std::vector< DoubleReal > &spec) |
| the function that will find all peptide candidates for a given spectrum | |
| bool | save (const String &filename) |
| saves the suffix array to disc | |
| bool | open (const String &filename) |
| opens the suffix array | |
| void | setTolerance (DoubleReal t) |
| setter for tolerance | |
| DoubleReal | getTolerance () const |
| getter for tolerance | |
| bool | isDigestingEnd (const char aa1, const char aa2) const |
| returns if an enzyme will cut after first character | |
| void | setTags (const std::vector< OpenMS::String > &tags) |
| setter for tags | |
| const std::vector < OpenMS::String > & | getTags () |
| getter for tags | |
| void | setUseTags (bool use_tags) |
| setter for use_tags | |
| bool | getUseTags () |
| getter for use_tags | |
| void | setNumberOfModifications (Size number_of_mods) |
| setter for number of modifications | |
| Size | getNumberOfModifications () |
| getter for number of modifications | |
| void | printStatistic () |
Protected Member Functions | |
| void | goNextSubTree_ (TIter &it, DoubleReal &m, std::stack< DoubleReal > &allm, std::stack< std::map< DoubleReal, SignedSize > > &mod_map) |
| overwriting goNextSubTree_ from seqan index_esa_stree.h for mass update during suffix array traversal | |
| void | goNextSubTree_ (TIter &it) |
| goes to the next sub tree | |
| void | goNext_ (TIter &it, DoubleReal &m, std::stack< DoubleReal > &allm, std::stack< std::map< DoubleReal, SignedSize > > &mod_map) |
| overwriting goNext from seqan index_esa_stree.h for mass update during suffix array traversal | |
| void | parseTree_ (TIter &it, std::vector< std::pair< SignedSize, SignedSize > > &out_number, std::vector< std::pair< SignedSize, SignedSize > > &edge_length, std::vector< SignedSize > &leafe_depth) |
| SignedSize | findFirst_ (const std::vector< DoubleReal > &spec, DoubleReal &m) |
| binary search for finding the index of the first element of the spectrum that matches the desired mass within the tolerance. | |
| SignedSize | findFirst_ (const std::vector< DoubleReal > &spec, DoubleReal &m, SignedSize start, SignedSize end) |
| binary search for finding the index of the first element of the spectrum that matches the desired mass within the tolerance. it searches recursivly. | |
Protected Attributes | |
| TIndex | index_ |
| seqan suffix array | |
| TIter * | it_ |
| seqan suffix array iterator | |
| const String & | s_ |
| reference to strings for which the suffix array is build | |
| DoubleReal | masse_ [255] |
| amino acid masses | |
| SignedSize | number_of_modifications_ |
| number of allowed modifications | |
| std::vector< String > | tags_ |
| all tags | |
| bool | use_tags_ |
| if tags are used | |
| DoubleReal | tol_ |
| tolerance | |
Private Types | |
| typedef seqan::TopDown < seqan::ParentLinks<> > | TIterSpec |
| typedef seqan::Index < seqan::String< char > , seqan::IndexEsa< TIterSpec > > | TIndex |
| typedef seqan::Iter< TIndex, seqan::VSTree< TIterSpec > > | TIter |
Class that uses SEQAN library for a suffix array. It can be used to find peptide Candidates for a MS spectrum.
This class uses SEQAN suffix array. It can just be used for finding peptide Candidates for a given MS Spectrum within a certain mass tolerance. The suffix array can be saved to disc for reused so it has to be build just once.
typedef seqan::TopDown<seqan::ParentLinks<> > TIterSpec [private] |
| SuffixArraySeqan | ( | const String & | st, | |
| const String & | filename, | |||
| const WeightWrapper::WEIGHTMODE | weight_mode = WeightWrapper::MONO | |||
| ) |
constructor
| st | const string reference with the string for which the suffix array should be build | |
| filename | const string reference with filename for opening or saving the suffix array | |
| weight_mode | if not monoistopic weight should be used, this parameters can be set to AVERAGE |
| FileNotFound | is thrown if the given file is not found | |
| InvalidValue | if the given suffix array string is invalid |
| SuffixArraySeqan | ( | const SuffixArraySeqan & | source | ) |
copy constructor
| virtual ~SuffixArraySeqan | ( | ) | [virtual] |
destructor
| SignedSize findFirst_ | ( | const std::vector< DoubleReal > & | spec, | |
| DoubleReal & | m | |||
| ) | [protected] |
binary search for finding the index of the first element of the spectrum that matches the desired mass within the tolerance.
| spec | const reference to spectrum | |
| m | mass |
| SignedSize findFirst_ | ( | const std::vector< DoubleReal > & | spec, | |
| DoubleReal & | m, | |||
| SignedSize | start, | |||
| SignedSize | end | |||
| ) | [protected] |
binary search for finding the index of the first element of the spectrum that matches the desired mass within the tolerance. it searches recursivly.
| spec | const reference to spectrum | |
| m | mass | |
| start | start index | |
| end | end index |
| void findSpec | ( | std::vector< std::vector< std::pair< std::pair< SignedSize, SignedSize >, DoubleReal > > > & | candidates, | |
| const std::vector< DoubleReal > & | spec | |||
| ) |
the function that will find all peptide candidates for a given spectrum
| spec | const reference of DoubleReal vector describing the spectrum | |
| candidates | output parameters which holds the candidates of the masses given in spec after call |
for every mass within the spectrum all candidates described by as pairs of ints are returned. All masses are searched for the same time in just one suffix array traversal. In order to accelerate the traversal the skip and lcp table are used. The mass wont be calculated for each entry but it will be updated during traversal using a stack datastructure
| Size getNumberOfModifications | ( | ) |
getter for number of modifications
| const std::vector<OpenMS::String>& getTags | ( | ) |
getter for tags
| DoubleReal getTolerance | ( | ) | const |
getter for tolerance
| bool getUseTags | ( | ) |
getter for use_tags
| void goNext_ | ( | TIter & | it, | |
| DoubleReal & | m, | |||
| std::stack< DoubleReal > & | allm, | |||
| std::stack< std::map< DoubleReal, SignedSize > > & | mod_map | |||
| ) | [inline, protected] |
overwriting goNext from seqan index_esa_stree.h for mass update during suffix array traversal
the suffix array is treated as a suffix tree. this function goes to the next node that has not been visited yet. During this traversal the mass will be updated using the stack with edge masses.
| it | reference to the suffix array iterator | |
| m | reference to actual mass | |
| allm | reference to the stack with history of traversal | |
| mod_map | input parameters which specifies the modification masses allowed in the candidates |
| void goNextSubTree_ | ( | TIter & | it | ) | [inline, protected] |
goes to the next sub tree
| it | reference to the suffix array iterator |
| void goNextSubTree_ | ( | TIter & | it, | |
| DoubleReal & | m, | |||
| std::stack< DoubleReal > & | allm, | |||
| std::stack< std::map< DoubleReal, SignedSize > > & | mod_map | |||
| ) | [inline, protected] |
overwriting goNextSubTree_ from seqan index_esa_stree.h for mass update during suffix array traversal
the suffix array is treated as a suffix tree. this function skips the subtree under the actual node and goes directly to the next subtree that has not been visited yet. During this traversal the mass will be updated using the stack with edge masses.
| it | reference to the suffix array iterator | |
| m | reference to actual mass | |
| allm | reference to the stack with history of traversal | |
| mod_map | input parameters which specifies the modification massen allowed in the candidates |
| bool isDigestingEnd | ( | const char | aa1, | |
| const char | aa2 | |||
| ) | const |
returns if an enzyme will cut after first character
| aa1 | const char as first aminoacid | |
| aa2 | const char as second aminoacid |
Reimplemented in SuffixArrayTrypticSeqan.
| bool open | ( | const String & | filename | ) |
opens the suffix array
| filename | const reference string describing the filename |
| FileNotFound | is thrown if the given file could not be found |
| void parseTree_ | ( | TIter & | it, | |
| std::vector< std::pair< SignedSize, SignedSize > > & | out_number, | |||
| std::vector< std::pair< SignedSize, SignedSize > > & | edge_length, | |||
| std::vector< SignedSize > & | leafe_depth | |||
| ) | [inline, protected] |
| void printStatistic | ( | ) |
| bool save | ( | const String & | filename | ) |
saves the suffix array to disc
| filename | const reference string describing the filename |
| UnableToCreateFile | is thrown if the output files could not be created |
| void setNumberOfModifications | ( | Size | number_of_mods | ) |
setter for number of modifications
| number_of_mods |
| void setTags | ( | const std::vector< OpenMS::String > & | tags | ) |
setter for tags
| tags | reference to vector of strings with tags |
| void setTolerance | ( | DoubleReal | t | ) |
setter for tolerance
| t | DoubleReal with tolerance, only 0 or greater is allowed |
| InvalidValue | is thrown if given tolerance is negative |
| void setUseTags | ( | bool | use_tags | ) |
setter for use_tags
| use_tags | indicating whether tags should be used or not |
| String toString | ( | ) |
converts suffix array to a printable string
DoubleReal masse_[255] [protected] |
amino acid masses
SignedSize number_of_modifications_ [protected] |
number of allowed modifications
DoubleReal tol_ [protected] |
tolerance
bool use_tags_ [protected] |
if tags are used
| OpenMS / TOPP release 1.10.0 | Documentation generated on Thu Mar 7 2013 09:42:53 using doxygen 1.7.1 |