00001 // -------------------------------------------------------------------------- 00002 // OpenMS -- Open-Source Mass Spectrometry 00003 // -------------------------------------------------------------------------- 00004 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen, 00005 // ETH Zurich, and Freie Universitaet Berlin 2002-2012. 00006 // 00007 // This software is released under a three-clause BSD license: 00008 // * Redistributions of source code must retain the above copyright 00009 // notice, this list of conditions and the following disclaimer. 00010 // * Redistributions in binary form must reproduce the above copyright 00011 // notice, this list of conditions and the following disclaimer in the 00012 // documentation and/or other materials provided with the distribution. 00013 // * Neither the name of any author or any participating institution 00014 // may be used to endorse or promote products derived from this software 00015 // without specific prior written permission. 00016 // For a full list of authors, refer to the file AUTHORS. 00017 // -------------------------------------------------------------------------- 00018 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00019 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00020 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00021 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING 00022 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00023 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00024 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 00025 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00026 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00027 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 00028 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00029 // 00030 // -------------------------------------------------------------------------- 00031 // $Maintainer: Florian Zeller $ 00032 // $Authors: Lukas Mueller, Markus Mueller $ 00033 // -------------------------------------------------------------------------- 00034 // 00036 // 00037 // PEAK DETECTION OF FOURIER TRANSFORME MS INSTRUMENT DATA 00038 // 00039 // written by Markus Mueller, markus.mueller@imsb.biol.ethz.ch 00040 // ( and Lukas Mueller, Lukas.Mueller@imsb.biol.ethz.ch) 00041 // October 2005 00042 // 00043 // Ported to OpenMS by Florian Zeller, florian.zeller@bsse.ethz.ch 00044 // December 2010 00045 // 00046 // Group of Prof. Ruedi Aebersold, IMSB, ETH Hoenggerberg, Zurich 00047 // 00048 // 00049 00050 00051 #ifndef OPENMS_TRANSFORMATIONS_FEATUREFINDER_SUPERHIRN_MS2CONSENSUSSPECTRUM_H 00052 #define OPENMS_TRANSFORMATIONS_FEATUREFINDER_SUPERHIRN_MS2CONSENSUSSPECTRUM_H 00053 00054 #include <OpenMS/CONCEPT/Types.h> 00055 00056 #include <string> 00057 #include <map> 00058 00059 namespace OpenMS 00060 { 00061 00062 class OPENMS_DLLAPI MS2ConsensusSpectrum 00063 { 00064 00065 00067 // declaration of the private members: 00068 00069 private: 00070 00071 // stores the MS2 fragments: 00072 std::multimap<double, MS2Fragment> MS2FragmentPeaks; 00073 00074 00075 protected: 00076 00078 // declaration of the public members: 00079 00080 00081 double startTR; 00082 double endTR; 00083 int z; 00084 int apexScan; 00085 int startScan; 00086 int endScan; 00087 00088 00089 public: 00090 00091 double precursorMZ; 00092 double TR; 00093 00094 00095 // mass to charge tolerance for MS2 trace level: 00096 static double MS2_MZ_TOLERANCE; 00097 00098 // class destructor 00099 ~MS2ConsensusSpectrum(); 00100 00101 // class constructor 00102 MS2ConsensusSpectrum(); 00103 MS2ConsensusSpectrum(MS2Fragment *); 00104 MS2ConsensusSpectrum(double iPrecursorMZ, double iTR, int iChrg, int iApexScan); 00105 00106 // class copy constructor 00107 MS2ConsensusSpectrum(const MS2ConsensusSpectrum &); 00108 // class copy constructor 00109 MS2ConsensusSpectrum(const MS2ConsensusSpectrum *); 00110 00111 00113 // overload operators: 00114 MS2ConsensusSpectrum & operator=(const MS2ConsensusSpectrum &); 00115 bool operator==(const MS2ConsensusSpectrum &); 00116 MS2ConsensusSpectrum & operator<=(const MS2ConsensusSpectrum &); 00117 MS2ConsensusSpectrum & operator>=(const MS2ConsensusSpectrum &); 00118 MS2ConsensusSpectrum & operator<(const MS2ConsensusSpectrum &); 00119 MS2ConsensusSpectrum & operator>(const MS2ConsensusSpectrum &); 00120 00121 00123 // copmute the similarity of the elution shape of the 00124 // MS2 fragment to this MS2 consensus spectrum 00125 double getLCElutionPeakSimilarity(MS2Fragment *); 00126 00127 00128 // add a MS2 fragment: 00129 void addMS2Fragment(MS2Fragment *); 00130 00131 // compute MS2 parameters 00132 void computeMS2SpectrumParameters(); 00133 00134 //*** PK removed, never used 00135 00136 // process the stored fragments: 00137 // void processConsenusSpectraFragments(); 00138 00139 // remove outlier fragments based on their: 00140 // MS2Fragment::OutlierAttribute = ... 00141 // 1: retention time 00142 // 2: precursor mass 00143 // etc. 00144 // void removeOutlierFragments(); 00145 00146 // remove H2O loss region of the MS2 spectra 00147 // void removeWaterLossRegion( ); 00148 00149 00150 // show MS2 spectrum info: 00151 void show_info(); 00152 00153 00154 // find a corresponding MS2 fragment 00155 MS2Fragment * findMS2Fragment(double); 00156 00157 00158 00160 // start here all the get / set 00161 // function to access the 00162 // variables of the class 00163 00164 // precursor mass: 00165 double getPrecursorMZ(){return precursorMZ; } 00166 00167 // TR: 00168 double getTR(){return TR; } 00169 // start TR 00170 double getStartTR(){return startTR; } 00171 // end TR 00172 double getEndTR(){return endTR; } 00173 00174 00175 // set / get the charge state of the precursor MZ: 00176 void setPrecursorChrg(int IN){ z = IN; } 00177 int getPrecursorChrg(){ return z; } 00178 // apex scan: 00179 int getApexScan(){return apexScan; } 00180 // start scan 00181 int getStartScan(){return startScan; } 00182 // end scan 00183 int getEndScan(){return endScan; } 00184 // get the number of consensus fragments: 00185 int getNbMS2Fragments(){return (int) MS2FragmentPeaks.size(); } 00186 00187 // get the MS2 fragments list iterator: 00188 std::multimap<double, MS2Fragment>::iterator getMS2FragmentPeakStart(){return MS2FragmentPeaks.begin(); } 00189 std::multimap<double, MS2Fragment>::iterator getMS2FragmentPeakEnd(){return MS2FragmentPeaks.end(); } 00190 std::multimap<double, MS2Fragment> * getMS2FragmentMap(){return &MS2FragmentPeaks; } 00191 00192 00193 }; 00194 00195 } // ns 00196 00197 #endif // OPENMS_TRANSFORMATIONS_FEATUREFINDER_SUPERHIRN_MS2CONSENSUSSPECTRUM_H
| OpenMS / TOPP release 1.10.0 | Documentation generated on Thu Mar 7 2013 09:42:42 using doxygen 1.7.1 |