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: Hannes Roest $ 00032 // $Authors: Andreas Bertsch $ 00033 // -------------------------------------------------------------------------- 00034 00035 #ifndef OPENMS_ANALYSIS_TARGETED_TARGETEDEXPERIMENT_H 00036 #define OPENMS_ANALYSIS_TARGETED_TARGETEDEXPERIMENT_H 00037 00038 #include <OpenMS/KERNEL/StandardTypes.h> 00039 #include <OpenMS/ANALYSIS/MRM/ReactionMonitoringTransition.h> 00040 #include <OpenMS/ANALYSIS/TARGETED/IncludeExcludeTarget.h> 00041 #include <OpenMS/METADATA/CVTerm.h> 00042 #include <OpenMS/METADATA/CVTermList.h> 00043 #include <OpenMS/METADATA/Software.h> 00044 #include <OpenMS/ANALYSIS/TARGETED/TargetedExperimentHelper.h> 00045 00046 #include <vector> 00047 00048 namespace OpenMS 00049 { 00053 class OPENMS_DLLAPI TargetedExperiment 00054 { 00055 public: 00056 00057 typedef TargetedExperimentHelper::CV CV; 00058 typedef TargetedExperimentHelper::Protein Protein; 00059 typedef TargetedExperimentHelper::RetentionTime RetentionTime; 00060 typedef TargetedExperimentHelper::Compound Compound; 00061 typedef TargetedExperimentHelper::Peptide Peptide; 00062 typedef TargetedExperimentHelper::Contact Contact; 00063 typedef TargetedExperimentHelper::Publication Publication; 00064 typedef TargetedExperimentHelper::Instrument Instrument; 00065 typedef TargetedExperimentHelper::Prediction Prediction; 00066 00067 typedef std::map<String, const Protein *> ProteinReferenceMapType; 00068 typedef std::map<String, const Peptide *> PeptideReferenceMapType; 00069 00073 00074 TargetedExperiment(); 00075 00077 TargetedExperiment(const TargetedExperiment & rhs); 00078 00080 virtual ~TargetedExperiment(); 00082 00084 TargetedExperiment & operator=(const TargetedExperiment & rhs); 00085 00089 bool operator==(const TargetedExperiment & rhs) const; 00091 00097 TargetedExperiment operator+(const TargetedExperiment & rhs) const; 00098 00104 TargetedExperiment & operator+=(const TargetedExperiment & rhs); 00105 00111 void clear(bool clear_meta_data); 00112 00116 // cv list 00117 void setCVs(const std::vector<CV> & cvs); 00118 00119 const std::vector<CV> & getCVs() const; 00120 00121 void addCV(const CV & cv); 00122 00123 // contact list 00124 void setContacts(const std::vector<Contact> & contacts); 00125 00126 const std::vector<Contact> & getContacts() const; 00127 00128 void addContact(const Contact & contact); 00129 00130 // publication list 00131 void setPublications(const std::vector<Publication> & publications); 00132 00133 const std::vector<Publication> & getPublications() const; 00134 00135 void addPublication(const Publication & publication); 00136 00137 // target list 00138 void setTargetCVTerms(const CVTermList & cv_terms); 00139 00140 const CVTermList & getTargetCVTerms() const; 00141 00142 void addTargetCVTerm(const CVTerm & cv_term); 00143 00144 void setTargetMetaValue(const String & name, const DataValue & value); 00145 00146 // instrument list 00147 void setInstruments(const std::vector<Instrument> & instruments); 00148 00149 const std::vector<Instrument> & getInstruments() const; 00150 00151 void addInstrument(const Instrument & instrument); 00152 00153 // software list 00154 void setSoftware(const std::vector<Software> & software); 00155 00156 const std::vector<Software> & getSoftware() const; 00157 00158 void addSoftware(const Software & software); 00159 00160 // protein list 00161 void setProteins(const std::vector<Protein> & proteins); 00162 00163 const std::vector<Protein> & getProteins() const; 00164 00165 const Protein & getProteinByRef(const String & ref); 00166 00167 void addProtein(const Protein & protein); 00168 00169 // compound list 00170 void setCompounds(const std::vector<Compound> & rhs); 00171 00172 const std::vector<Compound> & getCompounds() const; 00173 00174 void addCompound(const Compound & rhs); 00175 00176 void setPeptides(const std::vector<Peptide> & rhs); 00177 00178 const std::vector<Peptide> & getPeptides() const; 00179 00180 const Peptide & getPeptideByRef(const String & ref); 00181 00182 void addPeptide(const Peptide & rhs); 00183 00185 void setTransitions(const std::vector<ReactionMonitoringTransition> & transitions); 00186 00188 const std::vector<ReactionMonitoringTransition> & getTransitions() const; 00189 00191 void addTransition(const ReactionMonitoringTransition & transition); 00192 00193 void setIncludeTargets(const std::vector<IncludeExcludeTarget> & targets); 00194 00195 const std::vector<IncludeExcludeTarget> & getIncludeTargets() const; 00196 00197 void addIncludeTarget(const IncludeExcludeTarget & target); 00198 00199 void setExcludeTargets(const std::vector<IncludeExcludeTarget> & targets); 00200 00201 const std::vector<IncludeExcludeTarget> & getExcludeTargets() const; 00202 00203 void addExcludeTarget(const IncludeExcludeTarget & target); 00204 00206 void setSourceFiles(const std::vector<SourceFile> & source_files); 00207 00209 const std::vector<SourceFile> & getSourceFiles() const; 00210 00212 void addSourceFile(const SourceFile & source_file); 00214 00216 00217 00220 void sortTransitionsByProductMZ(); 00222 00223 protected: 00224 00225 void createProteinReferenceMap_(); 00226 00227 void createPeptideReferenceMap_(); 00228 00229 std::vector<CV> cvs_; 00230 00231 std::vector<Contact> contacts_; 00232 00233 std::vector<Publication> publications_; 00234 00235 std::vector<Instrument> instruments_; 00236 00237 CVTermList targets_; 00238 00239 std::vector<Software> software_; 00240 00241 std::vector<Protein> proteins_; 00242 00243 std::vector<Compound> compounds_; 00244 00245 std::vector<Peptide> peptides_; 00246 00247 std::vector<ReactionMonitoringTransition> transitions_; 00248 00249 std::vector<IncludeExcludeTarget> include_targets_; 00250 00251 std::vector<IncludeExcludeTarget> exclude_targets_; 00252 00253 std::vector<SourceFile> source_files_; 00254 00255 ProteinReferenceMapType protein_reference_map_; 00256 00257 bool protein_reference_map_dirty_; 00258 00259 PeptideReferenceMapType peptide_reference_map_; 00260 00261 bool peptide_reference_map_dirty_; 00262 00263 }; 00264 00265 00266 namespace TargetedExperimentHelper 00267 { 00268 } // namespace TargetedExperimentHelper 00269 00270 00271 } // namespace OpenMS 00272 00273 #endif // OPENMS_ANALYSIS_TARGETED_TARGETEDEXPERIMENT_H
| OpenMS / TOPP release 1.10.0 | Documentation generated on Thu Mar 7 2013 09:42:45 using doxygen 1.7.1 |