00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef MS_QUANT_SPECIFICITY_HPP
00018 #define MS_QUANT_SPECIFICITY_HPP
00019
00020
00021 #include <string>
00022 #include <vector>
00023
00024
00025 namespace msparser_internal {
00026 class ms_quant_xmlloader;
00027 }
00028
00029 namespace matrix_science {
00030
00031 class ms_quant_neutralloss;
00032 class ms_quant_pepneutralloss;
00033 class ms_xml_schema;
00034
00040
00041
00044 class MS_MASCOTRESFILE_API ms_quant_specificity: public ms_xml_IValidatable
00045 {
00046 friend class msparser_internal::ms_quant_xmlloader;
00047
00048 public:
00050 ms_quant_specificity();
00051
00053 ms_quant_specificity(const ms_quant_specificity& src);
00054
00056 virtual ~ms_quant_specificity();
00057
00059 void defaultValues();
00060
00062 void copyFrom(const ms_quant_specificity* right);
00063
00064 #ifndef SWIG
00065
00066 ms_quant_specificity& operator=(const ms_quant_specificity& right);
00067 #endif
00068
00069
00071 virtual std::string getSchemaType() const;
00072
00074 virtual std::string validateShallow(const ms_xml_schema *pSchemaFileObj) const;
00075
00077 virtual std::string validateDeep(const ms_xml_schema *pSchemaFileObj) const;
00078
00079
00081 int getNumberOfNeutralLosses() const;
00082
00084 void clearNeutralLosses();
00085
00087 void appendNeutralLoss(const ms_quant_neutralloss *neutralloss);
00088
00090 const ms_quant_neutralloss * getNeutralLoss(const int idx) const;
00091
00093 bool updateNeutralLoss(const int idx, const ms_quant_neutralloss* neutralloss);
00094
00096 bool deleteNeutralLoss(const int idx);
00097
00099 std::string getNeutralLossSchemaType() const;
00100
00101
00103 int getNumberOfPepNeutralLosses() const;
00104
00106 void clearPepNeutralLosses();
00107
00109 void appendPepNeutralLoss(const ms_quant_pepneutralloss *neutralloss);
00110
00112 const ms_quant_pepneutralloss* getPepNeutralLoss(const int idx) const;
00113
00115 bool updatePepNeutralLoss(const int idx, const ms_quant_pepneutralloss* neutralloss);
00116
00118 bool deletePepNeutralLoss(const int idx);
00119
00121 std::string getPepNeutralLossSchemaType() const;
00122
00123
00125 bool haveSite() const;
00126
00128 std::string getSite() const;
00129
00131 void setSite(const char* site);
00132
00134 void dropSite();
00135
00137 std::string getSiteSchemaType() const;
00138
00139
00141 bool havePosition() const;
00142
00144 std::string getPosition() const;
00145
00147 void setPosition(const char* position);
00148
00150 void dropPosition();
00151
00153 std::string getPositionSchemaType() const;
00154
00155 private:
00156 typedef std::vector< ms_quant_neutralloss* > neutralloss_vector;
00157 neutralloss_vector _neutrallosses;
00158
00159 typedef std::vector< ms_quant_pepneutralloss* > pepneutralloss_vector;
00160 pepneutralloss_vector _pepneutrallosses;
00161
00162 std::string _site;
00163 bool _site_set;
00164
00165 std::string _position;
00166 bool _position_set;
00167 };
00168
00170
00171 }
00172
00173 #endif // MS_QUANT_SPECIFICITY_HPP
00174
00175