Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages

ResidueModification.h

Go to the documentation of this file.
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: Andreas Bertsch $
00032 // $Authors: Andreas Bertsch $
00033 // --------------------------------------------------------------------------
00034 //
00035 
00036 #ifndef OPENMS_CHEMISTRY_RESIDUEMODIFICATION_H
00037 #define OPENMS_CHEMISTRY_RESIDUEMODIFICATION_H
00038 
00039 #include <OpenMS/DATASTRUCTURES/String.h>
00040 #include <OpenMS/CHEMISTRY/EmpiricalFormula.h>
00041 
00042 #include <set>
00043 
00044 namespace OpenMS
00045 {
00046   // forward declaration
00047   class Residue;
00048 
00058   class OPENMS_DLLAPI ResidueModification
00059   {
00060 public:
00061 
00078     enum Term_Specificity
00079     {
00080       ANYWHERE = 0,
00081       C_TERM = 1,
00082       N_TERM = 2,
00083       NUMBER_OF_TERM_SPECIFICITY
00084     };
00085 
00089     enum Source_Classification
00090     {
00091       ARTIFACT = 0,
00092       HYPOTHETICAL,
00093       NATURAL,
00094       POSTTRANSLATIONAL,
00095       MULTIPLE,
00096       CHEMICAL_DERIVATIVE,
00097       ISOTOPIC_LABEL,
00098       PRETRANSLATIONAL,
00099       OTHER_GLYCOSYLATION,
00100       NLINKED_GLYCOSYLATION,
00101       AA_SUBSTITUTION,
00102       OTHER,
00103       NONSTANDARD_RESIDUE,
00104       COTRANSLATIONAL,
00105       OLINKED_GLYCOSYLATION,
00106       UNKNOWN,
00107       NUMBER_OF_SOURCE_CLASSIFICATIONS
00108     };
00110 
00111 
00112 
00116 
00117     ResidueModification();
00118 
00120     ResidueModification(const ResidueModification & modification);
00121 
00123     virtual ~ResidueModification();
00125 
00129 
00130     ResidueModification & operator=(const ResidueModification & modification);
00132 
00136 
00137     void setId(const String & id);
00138 
00140     const String & getId() const;
00141 
00143     void setFullId(const String & full_id);
00144 
00146     const String & getFullId() const;
00147 
00149     void setUniModAccession(const String & id);
00150 
00152     const String & getUniModAccession() const;
00153 
00155     void setPSIMODAccession(const String & id);
00156 
00158     const String & getPSIMODAccession() const;
00159 
00161     void setFullName(const String & full_name);
00162 
00164     const String & getFullName() const;
00165 
00167     void setName(const String & name);
00168 
00170     const String & getName() const;
00171 
00173     void setTermSpecificity(Term_Specificity term_spec);
00174 
00176     void setTermSpecificity(const String & name);
00177 
00179     Term_Specificity getTermSpecificity() const;
00180 
00182     String getTermSpecificityName(Term_Specificity = NUMBER_OF_TERM_SPECIFICITY) const;
00183 
00185     void setOrigin(const String & origin);
00186 
00188     const String & getOrigin() const;
00189 
00191     void setSourceClassification(const String & classification);
00192 
00194     void setSourceClassification(Source_Classification classification);
00195 
00197     Source_Classification getSourceClassification() const;
00198 
00200     String getSourceClassificationName(Source_Classification classification = NUMBER_OF_SOURCE_CLASSIFICATIONS) const;
00201 
00203     void setAverageMass(DoubleReal mass);
00204 
00206     DoubleReal getAverageMass() const;
00207 
00209     void setMonoMass(DoubleReal mass);
00210 
00212     DoubleReal getMonoMass() const;
00213 
00215     void setDiffAverageMass(DoubleReal mass);
00216 
00218     DoubleReal getDiffAverageMass() const;
00219 
00221     void setDiffMonoMass(DoubleReal mass);
00222 
00224     DoubleReal getDiffMonoMass() const;
00225 
00227     void setFormula(const String & composition);
00228 
00230     const String & getFormula() const;
00231 
00233     void setDiffFormula(const EmpiricalFormula & diff_formula);
00234 
00236     const EmpiricalFormula & getDiffFormula() const;
00237 
00239     void setSynonyms(const std::set<String> & synonyms);
00240 
00242     void addSynonym(const String & synonym);
00243 
00245     const std::set<String> & getSynonyms() const;
00246 
00248     void setNeutralLossDiffFormula(const EmpiricalFormula & loss);
00249 
00251     const EmpiricalFormula & getNeutralLossDiffFormula() const;
00252 
00254     void setNeutralLossMonoMass(DoubleReal mono_mass);
00255 
00257     DoubleReal getNeutralLossMonoMass() const;
00258 
00260     void setNeutralLossAverageMass(DoubleReal average_mass);
00261 
00263     DoubleReal getNeutralLossAverageMass() const;
00265 
00269 
00270     bool hasNeutralLoss() const;
00271 
00273     bool operator==(const ResidueModification & modification) const;
00274 
00276     bool operator!=(const ResidueModification & modification) const;
00278 
00279 protected:
00280 
00281     String id_;
00282 
00283     String full_id_;
00284 
00285     String psi_mod_accession_;
00286 
00287     String unimod_accession_;
00288 
00289     String full_name_;
00290 
00291     String name_;
00292 
00293     Term_Specificity term_spec_;
00294 
00295     String origin_;
00296 
00297     Source_Classification classification_;
00298 
00299     DoubleReal average_mass_;
00300 
00301     DoubleReal mono_mass_;
00302 
00303     DoubleReal diff_average_mass_;
00304 
00305     DoubleReal diff_mono_mass_;
00306 
00307     String formula_;
00308 
00309     EmpiricalFormula diff_formula_;
00310 
00311     std::set<String> synonyms_;
00312 
00313     EmpiricalFormula neutral_loss_diff_formula_;
00314 
00315     DoubleReal neutral_loss_mono_mass_;
00316 
00317     DoubleReal neutral_loss_average_mass_;
00318   };
00319 }
00320 
00321 #endif

OpenMS / TOPP release 1.10.0 Documentation generated on Thu Mar 7 2013 09:42:44 using doxygen 1.7.1