00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef MS_QUANT_METHOD_HPP
00018 #define MS_QUANT_METHOD_HPP
00019
00020
00021 #include <string>
00022 #include <vector>
00023
00024
00025 namespace msparser_internal {
00026 class ms_quant_xmlloader;
00027 class ms_quant_method_impl;
00028 class ms_quant_configfile_impl;
00029 }
00030
00031 namespace matrix_science {
00032
00033 class ms_quant_modgroup;
00034 class ms_quant_component;
00035 class ms_quant_quality;
00036 class ms_quant_integration;
00037 class ms_quant_outliers;
00038 class ms_quant_normalisation;
00039 class ms_quant_protocol;
00040 class ms_quant_ratio;
00041 class ms_xml_schema;
00042 class ms_quant_localdef;
00043
00049
00050 class MS_MASCOTRESFILE_API ms_quant_method: public ms_xml_IValidatable
00051 {
00052 friend class msparser_internal::ms_quant_xmlloader;
00053 friend class msparser_internal::ms_quant_configfile_impl;
00054
00055 public:
00057
00063 enum METHOD_COMPATIBLE{
00064 COMPATIBLE,
00065 COMPATIBLE_DIFF_PROTOCOL,
00066 COMPATIBLE_DIFF_NUM_COMPONENTS,
00067 COMPATIBLE_MISSING_COMPONENT,
00068 COMPATIBLE_DIFF_NUM_MOD_GROUPS,
00069 COMPATIBLE_MISSING_MOD_GROUP,
00070 COMPATIBLE_DIFF_NUM_LOCAL_MODS,
00071 COMPATIBLE_DIFF_LOCAL_MOD,
00072 COMPATIBLE_DIFF_NUM_MODS,
00073 COMPATIBLE_MISSING_MOD,
00074 COMPATIBLE_MISSING_INTEGRATION,
00075 COMPATIBLE_MISSING_INTEGRATION_PARAM,
00076 COMPATIBLE_DIFF_INTEGRATION_PARAM,
00077 COMPATIBLE_DIFF_NUM_ISOTOPES
00078 };
00079
00081 ms_quant_method();
00082
00084 ms_quant_method(const ms_quant_method& src);
00085
00087 virtual ~ms_quant_method();
00088
00090 void defaultValues();
00091
00093 void copyFrom(const ms_quant_method* right);
00094
00095 #ifndef SWIG
00096
00097 ms_quant_method& operator=(const ms_quant_method& right);
00098 #endif
00099
00100 virtual std::string getSchemaType() const;
00101
00103 virtual std::string validateShallow(const ms_xml_schema *pSchemaFileObj) const;
00104
00106 virtual std::string validateDeep(const ms_xml_schema *pSchemaFileObj) const;
00107
00108
00110 int getNumberOfModificationGroups() const;
00111
00113 void clearModificationGroups();
00114
00116 void appendModificationGroup(const ms_quant_modgroup *item);
00117
00119 const ms_quant_modgroup * getModificationGroupByNumber(const int idx) const;
00120
00122 const ms_quant_modgroup * getModificationGroupByName(const char *name) const;
00123
00125 bool updateModificationGroupByNumber(const int idx, const ms_quant_modgroup* modgroup);
00126
00128 bool updateModificationGroupByName(const char *name, const ms_quant_modgroup* modgroup);
00129
00131 bool deleteModificationGroupByNumber(const int idx);
00132
00134 bool deleteModificationGroupByName(const char *name);
00135
00137 std::string getModificationGroupSchemaType() const;
00138
00140 void getLocalModifications(std::vector<const ms_quant_localdef *> &localDefVector);
00141
00143 int getNumberOfComponents() const;
00144
00146 void clearComponents();
00147
00149 void appendComponent(const ms_quant_component *item);
00150
00152 const ms_quant_component * getComponentByNumber(const int idx) const;
00153
00155 const ms_quant_component * getComponentByName(const char *name) const;
00156
00158 bool updateComponentByNumber(const int idx, const ms_quant_component* comp);
00159
00161 bool updateComponentByName(const char *name, const ms_quant_component* comp);
00162
00164 bool deleteComponentByNumber(const int idx);
00165
00167 bool deleteComponentByName(const char *name);
00168
00170 std::string getComponentSchemaType() const;
00171
00172
00174 int getNumberOfReportRatios() const;
00175
00177 void clearReportRatios();
00178
00180 void appendReportRatio(const ms_quant_ratio *ratio);
00181
00183 const ms_quant_ratio * getReportRatioByNumber(const int idx) const;
00184
00186 const ms_quant_ratio * getReportRatioByName(const char *name) const;
00187
00189 bool updateReportRatioByNumber(const int idx, const ms_quant_ratio* ratio);
00190
00192 bool updateReportRatioByName(const char *name, const ms_quant_ratio* ratio);
00193
00195 bool deleteReportRatioByNumber(const int idx);
00196
00198 bool deleteReportRatioByName(const char *name);
00199
00201 std::string getReportRatioSchemaType() const;
00202
00203
00205 int getNumberOfExclusions() const;
00206
00208 void clearExclusions();
00209
00211 void appendExclusion(const char* exclusion);
00212
00214 std::string getExclusion(const int idx) const;
00215
00217 bool updateExclusion(const int idx, const char* exclusion);
00218
00220 bool deleteExclusion(const int idx);
00221
00223 std::string getExclusionSchemaType() const;
00224
00225
00227 int getNumberOfSeqs() const;
00228
00230 void clearSeqs();
00231
00233 void appendSeq(const char* seq);
00234
00236 std::string getSeq(const int idx) const;
00237
00239 bool updateSeq(const int idx, const char* seq);
00240
00242 bool deleteSeq(const int idx);
00243
00245 std::string getSeqSchemaType() const;
00246
00247
00249 bool haveComp() const;
00250
00252 std::string getComp() const;
00253
00255 void setComp(const char* value);
00256
00258 void dropComp();
00259
00261 std::string getCompSchemaType() const;
00262
00263
00265 bool haveQuality() const;
00266
00268 const ms_quant_quality* getQuality() const;
00269
00271 void setQuality(const ms_quant_quality* quality);
00272
00274 void dropQuality();
00275
00277 std::string getQualitySchemaType() const;
00278
00279
00281 bool haveIntegration() const;
00282
00284 const ms_quant_integration* getIntegration() const;
00285
00287 void setIntegration(const ms_quant_integration* integration);
00288
00290 void dropIntegration();
00291
00293 std::string getIntegrationSchemaType() const;
00294
00295
00297 bool haveOutliers() const;
00298
00300 const ms_quant_outliers* getOutliers() const;
00301
00303 void setOutliers(const ms_quant_outliers* outliers);
00304
00306 void dropOutliers();
00307
00309 std::string getOutliersSchemaType() const;
00310
00311
00313 bool haveNormalisation() const;
00314
00316 const ms_quant_normalisation* getNormalisation() const;
00317
00319 void setNormalisation(const ms_quant_normalisation* normalisation);
00320
00322 void dropNormalisation();
00323
00325 std::string getNormalisationSchemaType() const;
00326
00327
00329 bool haveProtocol() const;
00330
00332 const ms_quant_protocol* getProtocol() const;
00333
00335 void setProtocol(const ms_quant_protocol* protocol);
00336
00338 void dropProtocol();
00339
00341 std::string getProtocolSchemaType() const;
00342
00343
00345 bool haveName() const;
00346
00348 std::string getName() const;
00349
00351 void setName(const char* value);
00352
00354 void dropName();
00355
00357 std::string getNameSchemaType() const;
00358
00359
00361 bool haveDescription() const;
00362
00364 std::string getDescription() const;
00365
00367 void setDescription(const char* value);
00368
00370 void dropDescription();
00371
00373 std::string getDescriptionSchemaType() const;
00374
00375
00377 bool haveConstrainSearch() const;
00378
00380 bool isConstrainSearch() const;
00381
00383 void setConstrainSearch(const bool value);
00384
00386 void dropConstrainSearch();
00387
00389 std::string getConstrainSearchSchemaType() const;
00390
00391
00393 bool haveProteinRatioType() const;
00394
00396 std::string getProteinRatioType() const;
00397
00399 void setProteinRatioType(const char* value);
00400
00402 void dropProteinRatioType();
00403
00405 std::string getProteinRatioTypeSchemaType() const;
00406
00407
00409 bool haveReportDetail() const;
00410
00412 bool isReportDetail() const;
00413
00415 void setReportDetail(const bool value);
00416
00418 void dropReportDetail();
00419
00421 std::string getReportDetailSchemaType() const;
00422
00423
00425 bool haveMinNumPeptides() const;
00426
00428 int getMinNumPeptides() const;
00429
00431 void setMinNumPeptides(const int value);
00432
00434 void dropMinNumPeptides();
00435
00437 std::string getMinNumPeptidesSchemaType() const;
00438
00439
00441 bool haveProtScoreType() const;
00442
00444 std::string getProtScoreType() const;
00445
00447 void setProtScoreType(const char* value);
00448
00450 void dropProtScoreType();
00451
00453 std::string getProtScoreTypeSchemaType() const;
00454
00455
00457 bool haveSigThresholdValue() const;
00458
00460 std::string getSigThresholdValue() const;
00461
00463 void setSigThresholdValue(const char* value);
00464
00466 void dropSigThresholdValue();
00467
00469 std::string getSigThresholdValueSchemaType() const;
00470
00471
00473 bool haveShowSubSets() const;
00474
00476 std::string getShowSubSets() const;
00477
00479 void setShowSubSets(const char* value);
00480
00482 void dropShowSubSets();
00483
00485 std::string getShowSubSetsSchemaType() const;
00486
00487
00489 bool haveRequireBoldRed() const;
00490
00492 bool isRequireBoldRed() const;
00493
00495 void setRequireBoldRed(const bool value);
00496
00498 void dropRequireBoldRed();
00499
00501 std::string getRequireBoldRedSchemaType() const;
00502 #ifndef SWIG
00503
00504 int isMethodCompatible(const ms_quant_method &other, std::string & reasonStrRef) const;
00505 #else // SWIG Multiple return values
00506 int isMethodCompatible(const ms_quant_method &other, std::string & OUTPUT) const;
00507 #endif
00508 private:
00509 msparser_internal::ms_quant_method_impl * m_pImpl;
00510 };
00511
00513
00514 }
00515
00516 #endif // MS_QUANT_METHOD_HPP
00517
00518
00519