001/* 002 * mzTab-M reference implementation and validation API. 003 * This is the mzTab-M reference implementation and validation API service. 004 * 005 * OpenAPI spec version: 2.0.0 006 * Contact: nils.hoffmann@isas.de 007 * 008 * NOTE: This class is auto generated by the swagger code generator program. 009 * https://github.com/swagger-api/swagger-codegen.git 010 * Do not edit the class manually. 011 */ 012 013 014package de.isas.mztab2.model; 015 016import java.util.Objects; 017import java.util.Arrays; 018import com.fasterxml.jackson.annotation.JsonProperty; 019import com.fasterxml.jackson.annotation.JsonCreator; 020import com.fasterxml.jackson.annotation.JsonValue; 021import de.isas.mztab2.model.Comment; 022import de.isas.mztab2.model.OptColumnMapping; 023import de.isas.mztab2.model.Parameter; 024import io.swagger.annotations.ApiModel; 025import io.swagger.annotations.ApiModelProperty; 026import java.util.ArrayList; 027import java.util.List; 028import com.fasterxml.jackson.dataformat.xml.annotation.*; 029import javax.xml.bind.annotation.*; 030import javax.validation.constraints.*; 031import javax.validation.Valid; 032import de.isas.lipidomics.mztab2.validation.constraints.*; 033/** 034 * 035 * The small molecule summary section is table-based, represented summarized quantitative information across assays and study variables, grouped by identification in rows. The small molecule section MUST always come after the metadata section. All table columns MUST be Tab separated. There MUST NOT be any empty cells; missing values MUST be reported using “null” for columns where Is Nullable = “True”. 036 037Each row of the small molecule section is intended to report one final result to be communicated in terms of a molecule that has been quantified. In many cases, this may be the molecule of biological interest, although in some cases, the final result could be a derivatized form as appropriate – although it is desirable for the database identifier(s) to reference to the biological (non-derivatized) form. In general, different adduct forms would generally be reported in the Small Molecule Feature section. 038 039The order of columns MUST follow the order specified below. 040 041All columns are MANDATORY except for “opt_” columns. 042 043 * 044 * 045 * 046 * 047 */ 048@ApiModel(description = "The small molecule summary section is table-based, represented summarized quantitative information across assays and study variables, grouped by identification in rows. The small molecule section MUST always come after the metadata section. All table columns MUST be Tab separated. There MUST NOT be any empty cells; missing values MUST be reported using “null” for columns where Is Nullable = “True”. Each row of the small molecule section is intended to report one final result to be communicated in terms of a molecule that has been quantified. In many cases, this may be the molecule of biological interest, although in some cases, the final result could be a derivatized form as appropriate – although it is desirable for the database identifier(s) to reference to the biological (non-derivatized) form. In general, different adduct forms would generally be reported in the Small Molecule Feature section. The order of columns MUST follow the order specified below. All columns are MANDATORY except for “opt_” columns. ") 049@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2021-01-02T19:26:21.550+01:00") 050@XmlRootElement(name = "SmallMoleculeSummary") 051@XmlAccessorType(XmlAccessType.FIELD) 052@JacksonXmlRootElement(localName = "SmallMoleculeSummary") 053public class SmallMoleculeSummary { 054 055 /** 056 * Property enumeration for SmallMoleculeSummary. 057 */ 058 public static enum Properties { 059 prefix("prefix"), 060 headerPrefix("header_prefix"), 061 smlId("sml_id"), 062 smfIdRefs("smf_id_refs"), 063 databaseIdentifier("database_identifier"), 064 chemicalFormula("chemical_formula"), 065 smiles("smiles"), 066 inchi("inchi"), 067 chemicalName("chemical_name"), 068 uri("uri"), 069 theoreticalNeutralMass("theoretical_neutral_mass"), 070 adductIons("adduct_ions"), 071 reliability("reliability"), 072 bestIdConfidenceMeasure("best_id_confidence_measure"), 073 bestIdConfidenceValue("best_id_confidence_value"), 074 abundanceAssay("abundance_assay"), 075 abundanceStudyVariable("abundance_study_variable"), 076 abundanceVariationStudyVariable("abundance_variation_study_variable"), 077 opt("opt"), 078 comment("comment"); 079 080 private final String propertyName; 081 082 private Properties(String propertyName) { 083 this.propertyName = propertyName; 084 } 085 086 public String getPropertyName() { 087 return propertyName; 088 } 089 090 public String toString() { 091 return propertyName; 092 } 093 094 public String toUpper() { 095 return propertyName.toUpperCase(); 096 } 097 098 public static Properties of(String value) { 099 if(value==null) { 100 throw new NullPointerException("Argument value must not be null!"); 101 } 102 return Arrays.asList(Properties.values()).stream().filter(m -> m.propertyName.equals(value.toLowerCase())).findAny().orElseThrow(IllegalArgumentException::new); 103 } 104 }; 105 106 /** 107 * The small molecule table row prefix. SML MUST be used for rows of the small molecule table. 108 */ 109 public enum PrefixEnum { 110 SML("SML"); 111 112 private String value; 113 114 PrefixEnum(String value) { 115 this.value = value; 116 } 117 118 @JsonValue 119 public String getValue() { 120 return value; 121 } 122 123 @Override 124 public String toString() { 125 return String.valueOf(value); 126 } 127 128 @JsonCreator 129 public static PrefixEnum fromValue(String text) { 130 for (PrefixEnum b : PrefixEnum.values()) { 131 if (String.valueOf(b.value).equals(text)) { 132 return b; 133 } 134 } 135 return null; 136 } 137 } 138 139 @JsonProperty("prefix") 140 @JacksonXmlProperty(localName = "prefix") 141 @XmlElement(name = "prefix") 142 private PrefixEnum prefix = PrefixEnum.SML; 143 /** 144 * The small molecule table header prefix. SMH MUST be used for the small molecule table header line (the column labels). 145 */ 146 public enum HeaderPrefixEnum { 147 SMH("SMH"); 148 149 private String value; 150 151 HeaderPrefixEnum(String value) { 152 this.value = value; 153 } 154 155 @JsonValue 156 public String getValue() { 157 return value; 158 } 159 160 @Override 161 public String toString() { 162 return String.valueOf(value); 163 } 164 165 @JsonCreator 166 public static HeaderPrefixEnum fromValue(String text) { 167 for (HeaderPrefixEnum b : HeaderPrefixEnum.values()) { 168 if (String.valueOf(b.value).equals(text)) { 169 return b; 170 } 171 } 172 return null; 173 } 174 } 175 176 @JsonProperty("header_prefix") 177 @JacksonXmlProperty(localName = "header_prefix") 178 @XmlElement(name = "header_prefix") 179 private HeaderPrefixEnum headerPrefix = HeaderPrefixEnum.SMH; 180 @JsonProperty("sml_id") 181 @JacksonXmlProperty(localName = "sml_id") 182 @XmlElement(name = "sml_id") 183 private Integer smlId = null; 184 @JsonProperty("smf_id_refs") 185 // Is a container wrapped=false 186 // items.name=smfIdRefs items.baseName=smfIdRefs items.xmlName= items.xmlNamespace= 187 // items.example= items.type=Integer 188 @XmlElement(name = "smfIdRefs") 189 private List<Integer> smfIdRefs = null; 190 @JsonProperty("database_identifier") 191 // Is a container wrapped=false 192 // items.name=databaseIdentifier items.baseName=databaseIdentifier items.xmlName= items.xmlNamespace= 193 // items.example= items.type=String 194 @XmlElement(name = "databaseIdentifier") 195 private List<String> databaseIdentifier = null; 196 @JsonProperty("chemical_formula") 197 // Is a container wrapped=false 198 // items.name=chemicalFormula items.baseName=chemicalFormula items.xmlName= items.xmlNamespace= 199 // items.example= items.type=String 200 @XmlElement(name = "chemicalFormula") 201 private List<String> chemicalFormula = null; 202 @JsonProperty("smiles") 203 // Is a container wrapped=false 204 // items.name=smiles items.baseName=smiles items.xmlName= items.xmlNamespace= 205 // items.example= items.type=String 206 @XmlElement(name = "smiles") 207 private List<String> smiles = null; 208 @JsonProperty("inchi") 209 // Is a container wrapped=false 210 // items.name=inchi items.baseName=inchi items.xmlName= items.xmlNamespace= 211 // items.example= items.type=String 212 @XmlElement(name = "inchi") 213 private List<String> inchi = null; 214 @JsonProperty("chemical_name") 215 // Is a container wrapped=false 216 // items.name=chemicalName items.baseName=chemicalName items.xmlName= items.xmlNamespace= 217 // items.example= items.type=String 218 @XmlElement(name = "chemicalName") 219 private List<String> chemicalName = null; 220 @JsonProperty("uri") 221 // Is a container wrapped=false 222 // items.name=uri items.baseName=uri items.xmlName= items.xmlNamespace= 223 // items.example= items.type=String 224 @XmlElement(name = "uri") 225 private List<String> uri = null; 226 @JsonProperty("theoretical_neutral_mass") 227 // Is a container wrapped=false 228 // items.name=theoreticalNeutralMass items.baseName=theoreticalNeutralMass items.xmlName= items.xmlNamespace= 229 // items.example= items.type=Double 230 @XmlElement(name = "theoreticalNeutralMass") 231 private List<Double> theoreticalNeutralMass = null; 232 @JsonProperty("adduct_ions") 233 // Is a container wrapped=false 234 // items.name=adductIons items.baseName=adductIons items.xmlName= items.xmlNamespace= 235 // items.example= items.type=String 236 @XmlElement(name = "adductIons") 237 private List<String> adductIons = null; 238 @JsonProperty("reliability") 239 @JacksonXmlProperty(localName = "reliability") 240 @XmlElement(name = "reliability") 241 private String reliability = null; 242 @JsonProperty("best_id_confidence_measure") 243 @JacksonXmlProperty(localName = "best_id_confidence_measure") 244 @XmlElement(name = "best_id_confidence_measure") 245 private Parameter bestIdConfidenceMeasure = null; 246 @JsonProperty("best_id_confidence_value") 247 @JacksonXmlProperty(localName = "best_id_confidence_value") 248 @XmlElement(name = "best_id_confidence_value") 249 private Double bestIdConfidenceValue = null; 250 @JsonProperty("abundance_assay") 251 // Is a container wrapped=false 252 // items.name=abundanceAssay items.baseName=abundanceAssay items.xmlName= items.xmlNamespace= 253 // items.example= items.type=Double 254 @XmlElement(name = "abundanceAssay") 255 private List<Double> abundanceAssay = null; 256 @JsonProperty("abundance_study_variable") 257 // Is a container wrapped=false 258 // items.name=abundanceStudyVariable items.baseName=abundanceStudyVariable items.xmlName= items.xmlNamespace= 259 // items.example= items.type=Double 260 @XmlElement(name = "abundanceStudyVariable") 261 private List<Double> abundanceStudyVariable = null; 262 @JsonProperty("abundance_variation_study_variable") 263 // Is a container wrapped=false 264 // items.name=abundanceVariationStudyVariable items.baseName=abundanceVariationStudyVariable items.xmlName= items.xmlNamespace= 265 // items.example= items.type=Double 266 @XmlElement(name = "abundanceVariationStudyVariable") 267 private List<Double> abundanceVariationStudyVariable = null; 268 @JsonProperty("opt") 269 // Is a container wrapped=false 270 // items.name=opt items.baseName=opt items.xmlName= items.xmlNamespace= 271 // items.example= items.type=OptColumnMapping 272 @XmlElement(name = "opt") 273 private List<OptColumnMapping> opt = null; 274 @JsonProperty("comment") 275 // Is a container wrapped=false 276 // items.name=comment items.baseName=comment items.xmlName= items.xmlNamespace= 277 // items.example= items.type=Comment 278 @XmlElement(name = "comment") 279 private List<Comment> comment = null; 280 /** 281 * The small molecule table row prefix. SML MUST be used for rows of the small molecule table. 282 * 283 * @return prefix 284 **/ 285 @ApiModelProperty(value = "The small molecule table row prefix. SML MUST be used for rows of the small molecule table.") 286 public PrefixEnum getPrefix() { 287 return prefix; 288 } 289 290 /** 291 * The small molecule table header prefix. SMH MUST be used for the small molecule table header line (the column labels). 292 * 293 * @return headerPrefix 294 **/ 295 @ApiModelProperty(value = "The small molecule table header prefix. SMH MUST be used for the small molecule table header line (the column labels).") 296 public HeaderPrefixEnum getHeaderPrefix() { 297 return headerPrefix; 298 } 299 300 301 /** 302 * Builder method for smlId. 303 * 304 * @see SmallMoleculeSummary#setSmlId SmallMoleculeSummary#setSmlId for specification examples 305 * @see SmallMoleculeSummary#getSmlId SmallMoleculeSummary#getSmlId for validation constraints 306 * @param smlId a {@code Integer} parameter. 307 * @return SmallMoleculeSummary 308 **/ 309 public SmallMoleculeSummary smlId(Integer smlId) { 310 this.smlId = smlId; 311 return this; 312 } 313 314 /** 315 * A within file unique identifier for the small molecule. 316 * 317 * @return smlId 318 **/ 319 @NotNull 320 @ApiModelProperty(required = true, value = "A within file unique identifier for the small molecule.") 321 public Integer getSmlId() { 322 return smlId; 323 } 324 325 /** 326 * Set smlId. 327 * 328 * <p>mzTab-M specification example(s):</p> 329 * <pre><code>SMH SML_ID … 330SML 1 … 331SML 2 … 332</code></pre> 333 * 334 * 335 * @see #getSmlId SmallMoleculeSummary#getSmlId for validation constraints 336 * @param smlId a {@code Integer} parameter. 337 **/ 338 public void setSmlId(Integer smlId) { 339 this.smlId = smlId; 340 } 341 342 343 /** 344 * Builder method for smfIdRefs. 345 * 346 * @see SmallMoleculeSummary#setSmfIdRefs SmallMoleculeSummary#setSmfIdRefs for specification examples 347 * @see SmallMoleculeSummary#getSmfIdRefs SmallMoleculeSummary#getSmfIdRefs for validation constraints 348 * @param smfIdRefs a {@code List<Integer>} parameter. 349 * @return SmallMoleculeSummary 350 **/ 351 public SmallMoleculeSummary smfIdRefs(List<Integer> smfIdRefs) { 352 this.smfIdRefs = smfIdRefs; 353 return this; 354 } 355 356 /** 357 * Add a single smfIdRefsItem to the smfIdRefs collection. 358 * 359 * @see SmallMoleculeSummary#getSmfIdRefs SmallMoleculeSummary#getSmfIdRefs for validation constraints 360 * @param smfIdRefsItem a {@code Integer} parameter. 361 * @return SmallMoleculeSummary 362 */ 363 public SmallMoleculeSummary addSmfIdRefsItem(Integer smfIdRefsItem) { 364 if (this.smfIdRefs == null) { 365 this.smfIdRefs = new ArrayList<>(); 366 } 367 this.smfIdRefs.add(smfIdRefsItem); 368 return this; 369 } 370 371 /** 372 * References to all the features on which quantitation has been based (SMF elements) via referencing SMF_ID values. Multiple values SHOULD be provided as a “|” separated list. This MAY be null only if this is a Summary file. 373 * 374 * @return smfIdRefs 375 **/ 376 @ApiModelProperty(value = "References to all the features on which quantitation has been based (SMF elements) via referencing SMF_ID values. Multiple values SHOULD be provided as a “|” separated list. This MAY be null only if this is a Summary file.") 377 public List<Integer> getSmfIdRefs() { 378 return smfIdRefs; 379 } 380 381 /** 382 * Set smfIdRefs. 383 * 384 * <p>mzTab-M specification example(s):</p> 385 * <pre><code>SMH SML_ID SMF_ID_REFS 386SML 1 2|3|11… 387</code></pre> 388 * 389 * 390 * @see #getSmfIdRefs SmallMoleculeSummary#getSmfIdRefs for validation constraints 391 * @param smfIdRefs a {@code List<Integer>} parameter. 392 **/ 393 public void setSmfIdRefs(List<Integer> smfIdRefs) { 394 this.smfIdRefs = smfIdRefs; 395 } 396 397 398 /** 399 * Builder method for databaseIdentifier. 400 * 401 * @see SmallMoleculeSummary#setDatabaseIdentifier SmallMoleculeSummary#setDatabaseIdentifier for specification examples 402 * @see SmallMoleculeSummary#getDatabaseIdentifier SmallMoleculeSummary#getDatabaseIdentifier for validation constraints 403 * @param databaseIdentifier a {@code List<String>} parameter. 404 * @return SmallMoleculeSummary 405 **/ 406 public SmallMoleculeSummary databaseIdentifier(List<String> databaseIdentifier) { 407 this.databaseIdentifier = databaseIdentifier; 408 return this; 409 } 410 411 /** 412 * Add a single databaseIdentifierItem to the databaseIdentifier collection. 413 * 414 * @see SmallMoleculeSummary#getDatabaseIdentifier SmallMoleculeSummary#getDatabaseIdentifier for validation constraints 415 * @param databaseIdentifierItem a {@code String} parameter. 416 * @return SmallMoleculeSummary 417 */ 418 public SmallMoleculeSummary addDatabaseIdentifierItem(String databaseIdentifierItem) { 419 if (this.databaseIdentifier == null) { 420 this.databaseIdentifier = new ArrayList<>(); 421 } 422 this.databaseIdentifier.add(databaseIdentifierItem); 423 return this; 424 } 425 426 /** 427 * A list of “|” separated possible identifiers for the small molecule; multiple values MUST only be provided to indicate ambiguity in the identification of the molecule and not to demonstrate different identifier types for the same molecule. Alternative identifiers for the same molecule MAY be provided as optional columns. 428 429The database identifier must be preceded by the resource description (prefix) followed by a colon, as specified in the metadata section. 430 431A null value MAY be provided if the identification is sufficiently ambiguous as to be meaningless for reporting or the small molecule has not been identified. 432 433 * 434 * @return databaseIdentifier 435 **/ 436 @ApiModelProperty(value = "A list of “|” separated possible identifiers for the small molecule; multiple values MUST only be provided to indicate ambiguity in the identification of the molecule and not to demonstrate different identifier types for the same molecule. Alternative identifiers for the same molecule MAY be provided as optional columns. The database identifier must be preceded by the resource description (prefix) followed by a colon, as specified in the metadata section. A null value MAY be provided if the identification is sufficiently ambiguous as to be meaningless for reporting or the small molecule has not been identified. ") 437 public List<String> getDatabaseIdentifier() { 438 return databaseIdentifier; 439 } 440 441 /** 442 * Set databaseIdentifier. 443 * 444 * <p>mzTab-M specification example(s):</p> 445 * <pre><code>A list of “|” separated possible identifiers for the small molecule; multiple values MUST only be provided to indicate ambiguity in the identification of the molecule and not to demonstrate different identifier types for the same molecule. Alternative identifiers for the same molecule MAY be provided as optional columns. 446 447The database identifier must be preceded by the resource description (prefix) followed by a colon, as specified in the metadata section. 448 449A null value MAY be provided if the identification is sufficiently ambiguous as to be meaningless for reporting or the small molecule has not been identified. 450</code></pre> 451 * 452 * 453 * @see #getDatabaseIdentifier SmallMoleculeSummary#getDatabaseIdentifier for validation constraints 454 * @param databaseIdentifier a {@code List<String>} parameter. 455 **/ 456 public void setDatabaseIdentifier(List<String> databaseIdentifier) { 457 this.databaseIdentifier = databaseIdentifier; 458 } 459 460 461 /** 462 * Builder method for chemicalFormula. 463 * 464 * @see SmallMoleculeSummary#setChemicalFormula SmallMoleculeSummary#setChemicalFormula for specification examples 465 * @see SmallMoleculeSummary#getChemicalFormula SmallMoleculeSummary#getChemicalFormula for validation constraints 466 * @param chemicalFormula a {@code List<String>} parameter. 467 * @return SmallMoleculeSummary 468 **/ 469 public SmallMoleculeSummary chemicalFormula(List<String> chemicalFormula) { 470 this.chemicalFormula = chemicalFormula; 471 return this; 472 } 473 474 /** 475 * Add a single chemicalFormulaItem to the chemicalFormula collection. 476 * 477 * @see SmallMoleculeSummary#getChemicalFormula SmallMoleculeSummary#getChemicalFormula for validation constraints 478 * @param chemicalFormulaItem a {@code String} parameter. 479 * @return SmallMoleculeSummary 480 */ 481 public SmallMoleculeSummary addChemicalFormulaItem(String chemicalFormulaItem) { 482 if (this.chemicalFormula == null) { 483 this.chemicalFormula = new ArrayList<>(); 484 } 485 this.chemicalFormula.add(chemicalFormulaItem); 486 return this; 487 } 488 489 /** 490 * A list of “|” separated potential chemical formulae of the reported compound. The number of values provided MUST match the number of entities reported under “database_identifier”, even if this leads to redundant reporting of information (i.e. if ambiguity can be resolved in the chemical formula), and the validation software will throw an error if the number of “|” symbols does not match. “null” values between bars are allowed. 491 492This should be specified in Hill notation (EA Hill 1900), i.e. elements in the order C, H and then alphabetically all other elements. Counts of one may be omitted. Elements should be capitalized properly to avoid confusion (e.g., “CO” vs. “Co”). The chemical formula reported should refer to the neutral form. 493 494Example: N-acetylglucosamine would be encoded by the string “C8H15NO6”. 495 496 * 497 * @return chemicalFormula 498 **/ 499 @ApiModelProperty(value = "A list of “|” separated potential chemical formulae of the reported compound. The number of values provided MUST match the number of entities reported under “database_identifier”, even if this leads to redundant reporting of information (i.e. if ambiguity can be resolved in the chemical formula), and the validation software will throw an error if the number of “|” symbols does not match. “null” values between bars are allowed. This should be specified in Hill notation (EA Hill 1900), i.e. elements in the order C, H and then alphabetically all other elements. Counts of one may be omitted. Elements should be capitalized properly to avoid confusion (e.g., “CO” vs. “Co”). The chemical formula reported should refer to the neutral form. Example: N-acetylglucosamine would be encoded by the string “C8H15NO6”. ") 500 public List<String> getChemicalFormula() { 501 return chemicalFormula; 502 } 503 504 /** 505 * Set chemicalFormula. 506 * 507 * <p>mzTab-M specification example(s):</p> 508 * <pre><code>SMH SML_ID … chemical_formula … 509SML 1 … C17H20N4O2 … 510</code></pre> 511 * 512 * 513 * @see #getChemicalFormula SmallMoleculeSummary#getChemicalFormula for validation constraints 514 * @param chemicalFormula a {@code List<String>} parameter. 515 **/ 516 public void setChemicalFormula(List<String> chemicalFormula) { 517 this.chemicalFormula = chemicalFormula; 518 } 519 520 521 /** 522 * Builder method for smiles. 523 * 524 * @see SmallMoleculeSummary#setSmiles SmallMoleculeSummary#setSmiles for specification examples 525 * @see SmallMoleculeSummary#getSmiles SmallMoleculeSummary#getSmiles for validation constraints 526 * @param smiles a {@code List<String>} parameter. 527 * @return SmallMoleculeSummary 528 **/ 529 public SmallMoleculeSummary smiles(List<String> smiles) { 530 this.smiles = smiles; 531 return this; 532 } 533 534 /** 535 * Add a single smilesItem to the smiles collection. 536 * 537 * @see SmallMoleculeSummary#getSmiles SmallMoleculeSummary#getSmiles for validation constraints 538 * @param smilesItem a {@code String} parameter. 539 * @return SmallMoleculeSummary 540 */ 541 public SmallMoleculeSummary addSmilesItem(String smilesItem) { 542 if (this.smiles == null) { 543 this.smiles = new ArrayList<>(); 544 } 545 this.smiles.add(smilesItem); 546 return this; 547 } 548 549 /** 550 * A list of “|” separated potential molecule structures in the simplified molecular-input line-entry system (SMILES) for the small molecule. The number of values provided MUST match the number of entities reported under “database_identifier”, and the validation software will throw an error if the number of “|” symbols does not match. “null” values between bars are allowed. 551 * 552 * @return smiles 553 **/ 554 @ApiModelProperty(value = "A list of “|” separated potential molecule structures in the simplified molecular-input line-entry system (SMILES) for the small molecule. The number of values provided MUST match the number of entities reported under “database_identifier”, and the validation software will throw an error if the number of “|” symbols does not match. “null” values between bars are allowed.") 555 public List<String> getSmiles() { 556 return smiles; 557 } 558 559 /** 560 * Set smiles. 561 * 562 * <p>mzTab-M specification example(s):</p> 563 * <pre><code>SMH SML_ID … chemical_formula smiles … 564SML 1 … C17H20N4O2 C1=CC=C(C=C1)CCNC(=O)CCNNC(=O)C2=CC=NC=C2 … 565</code></pre> 566 * 567 * 568 * @see #getSmiles SmallMoleculeSummary#getSmiles for validation constraints 569 * @param smiles a {@code List<String>} parameter. 570 **/ 571 public void setSmiles(List<String> smiles) { 572 this.smiles = smiles; 573 } 574 575 576 /** 577 * Builder method for inchi. 578 * 579 * @see SmallMoleculeSummary#setInchi SmallMoleculeSummary#setInchi for specification examples 580 * @see SmallMoleculeSummary#getInchi SmallMoleculeSummary#getInchi for validation constraints 581 * @param inchi a {@code List<String>} parameter. 582 * @return SmallMoleculeSummary 583 **/ 584 public SmallMoleculeSummary inchi(List<String> inchi) { 585 this.inchi = inchi; 586 return this; 587 } 588 589 /** 590 * Add a single inchiItem to the inchi collection. 591 * 592 * @see SmallMoleculeSummary#getInchi SmallMoleculeSummary#getInchi for validation constraints 593 * @param inchiItem a {@code String} parameter. 594 * @return SmallMoleculeSummary 595 */ 596 public SmallMoleculeSummary addInchiItem(String inchiItem) { 597 if (this.inchi == null) { 598 this.inchi = new ArrayList<>(); 599 } 600 this.inchi.add(inchiItem); 601 return this; 602 } 603 604 /** 605 * A list of “|” separated potential standard IUPAC International Chemical Identifier (InChI) of the given substance. 606 607The number of values provided MUST match the number of entities reported under “database_identifier”, even if this leads to redundant information being reported (i.e. if ambiguity can be resolved in the InChi), and the validation software will throw an error if the number of “|” symbols does not match. “null” values between bars are allowed. 608 609 * 610 * @return inchi 611 **/ 612 @ApiModelProperty(value = "A list of “|” separated potential standard IUPAC International Chemical Identifier (InChI) of the given substance. The number of values provided MUST match the number of entities reported under “database_identifier”, even if this leads to redundant information being reported (i.e. if ambiguity can be resolved in the InChi), and the validation software will throw an error if the number of “|” symbols does not match. “null” values between bars are allowed. ") 613 public List<String> getInchi() { 614 return inchi; 615 } 616 617 /** 618 * Set inchi. 619 * 620 * <p>mzTab-M specification example(s):</p> 621 * <pre><code>SMH SML_ID … chemical_formula … inchi … 622SML 1 … C17H20N4O2 … InChI=1S/C17H20N4O2/c22-16(19-12-6-14-4-2-1-3-5-14)9-13-20-21-17(23)15-7-10-18-11-8-15/h1-5,7-8,10-11,20H,6,9,12-13H2,(H,19,22)(H,21,23) … 623</code></pre> 624 * 625 * 626 * @see #getInchi SmallMoleculeSummary#getInchi for validation constraints 627 * @param inchi a {@code List<String>} parameter. 628 **/ 629 public void setInchi(List<String> inchi) { 630 this.inchi = inchi; 631 } 632 633 634 /** 635 * Builder method for chemicalName. 636 * 637 * @see SmallMoleculeSummary#setChemicalName SmallMoleculeSummary#setChemicalName for specification examples 638 * @see SmallMoleculeSummary#getChemicalName SmallMoleculeSummary#getChemicalName for validation constraints 639 * @param chemicalName a {@code List<String>} parameter. 640 * @return SmallMoleculeSummary 641 **/ 642 public SmallMoleculeSummary chemicalName(List<String> chemicalName) { 643 this.chemicalName = chemicalName; 644 return this; 645 } 646 647 /** 648 * Add a single chemicalNameItem to the chemicalName collection. 649 * 650 * @see SmallMoleculeSummary#getChemicalName SmallMoleculeSummary#getChemicalName for validation constraints 651 * @param chemicalNameItem a {@code String} parameter. 652 * @return SmallMoleculeSummary 653 */ 654 public SmallMoleculeSummary addChemicalNameItem(String chemicalNameItem) { 655 if (this.chemicalName == null) { 656 this.chemicalName = new ArrayList<>(); 657 } 658 this.chemicalName.add(chemicalNameItem); 659 return this; 660 } 661 662 /** 663 * A list of “|” separated possible chemical/common names for the small molecule, or general description if a chemical name is unavailable. Multiple names are only to demonstrate ambiguity in the identification. The number of values provided MUST match the number of entities reported under “database_identifier”, and the validation software will throw an error if the number of “|” symbols does not match. “null” values between bars are allowed. 664 665 * 666 * @return chemicalName 667 **/ 668 @ApiModelProperty(value = "A list of “|” separated possible chemical/common names for the small molecule, or general description if a chemical name is unavailable. Multiple names are only to demonstrate ambiguity in the identification. The number of values provided MUST match the number of entities reported under “database_identifier”, and the validation software will throw an error if the number of “|” symbols does not match. “null” values between bars are allowed. ") 669 public List<String> getChemicalName() { 670 return chemicalName; 671 } 672 673 /** 674 * Set chemicalName. 675 * 676 * <p>mzTab-M specification example(s):</p> 677 * <pre><code>SMH SML_ID … description … 678SML 1 … N-(2-phenylethyl)-3-[2-(pyridine-4-carbonyl)hydrazinyl]propanamide … 679</code></pre> 680 * 681 * 682 * @see #getChemicalName SmallMoleculeSummary#getChemicalName for validation constraints 683 * @param chemicalName a {@code List<String>} parameter. 684 **/ 685 public void setChemicalName(List<String> chemicalName) { 686 this.chemicalName = chemicalName; 687 } 688 689 690 /** 691 * Builder method for uri. 692 * 693 * @see SmallMoleculeSummary#setUri SmallMoleculeSummary#setUri for specification examples 694 * @see SmallMoleculeSummary#getUri SmallMoleculeSummary#getUri for validation constraints 695 * @param uri a {@code List<String>} parameter. 696 * @return SmallMoleculeSummary 697 **/ 698 public SmallMoleculeSummary uri(List<String> uri) { 699 this.uri = uri; 700 return this; 701 } 702 703 /** 704 * Add a single uriItem to the uri collection. 705 * 706 * @see SmallMoleculeSummary#getUri SmallMoleculeSummary#getUri for validation constraints 707 * @param uriItem a {@code String} parameter. 708 * @return SmallMoleculeSummary 709 */ 710 public SmallMoleculeSummary addUriItem(String uriItem) { 711 if (this.uri == null) { 712 this.uri = new ArrayList<>(); 713 } 714 this.uri.add(uriItem); 715 return this; 716 } 717 718 /** 719 * A URI pointing to the small molecule’s entry in a reference database (e.g., the small molecule’s HMDB or KEGG entry). The number of values provided MUST match the number of entities reported under “database_identifier”, and the validation software will throw an error if the number of “|” symbols does not match. “null” values between bars are allowed. 720 * 721 * @return uri 722 **/ 723 @ApiModelProperty(value = "A URI pointing to the small molecule’s entry in a reference database (e.g., the small molecule’s HMDB or KEGG entry). The number of values provided MUST match the number of entities reported under “database_identifier”, and the validation software will throw an error if the number of “|” symbols does not match. “null” values between bars are allowed.") 724 public List<String> getUri() { 725 return uri; 726 } 727 728 /** 729 * Set uri. 730 * 731 * <p>mzTab-M specification example(s):</p> 732 * <pre><code>SMH SML_ID … uri … 733SML 1 … http://www.genome.jp/dbget-bin/www_bget?cpd:C00031 … 734SML 2 … http://www.hmdb.ca/metabolites/HMDB0001847 … 735SML 3 … http://identifiers.org/hmdb/HMDB0001847 … 736</code></pre> 737 * 738 * 739 * @see #getUri SmallMoleculeSummary#getUri for validation constraints 740 * @param uri a {@code List<String>} parameter. 741 **/ 742 public void setUri(List<String> uri) { 743 this.uri = uri; 744 } 745 746 747 /** 748 * Builder method for theoreticalNeutralMass. 749 * 750 * @see SmallMoleculeSummary#setTheoreticalNeutralMass SmallMoleculeSummary#setTheoreticalNeutralMass for specification examples 751 * @see SmallMoleculeSummary#getTheoreticalNeutralMass SmallMoleculeSummary#getTheoreticalNeutralMass for validation constraints 752 * @param theoreticalNeutralMass a {@code List<Double>} parameter. 753 * @return SmallMoleculeSummary 754 **/ 755 public SmallMoleculeSummary theoreticalNeutralMass(List<Double> theoreticalNeutralMass) { 756 this.theoreticalNeutralMass = theoreticalNeutralMass; 757 return this; 758 } 759 760 /** 761 * Add a single theoreticalNeutralMassItem to the theoreticalNeutralMass collection. 762 * 763 * @see SmallMoleculeSummary#getTheoreticalNeutralMass SmallMoleculeSummary#getTheoreticalNeutralMass for validation constraints 764 * @param theoreticalNeutralMassItem a {@code Double} parameter. 765 * @return SmallMoleculeSummary 766 */ 767 public SmallMoleculeSummary addTheoreticalNeutralMassItem(Double theoreticalNeutralMassItem) { 768 if (this.theoreticalNeutralMass == null) { 769 this.theoreticalNeutralMass = new ArrayList<>(); 770 } 771 this.theoreticalNeutralMass.add(theoreticalNeutralMassItem); 772 return this; 773 } 774 775 /** 776 * The small molecule’s precursor’s theoretical neutral mass. 777 778The number of values provided MUST match the number of entities reported under “database_identifier”, and the validation software will throw an error if the number of “|” symbols does not match. “null” values (in general and between bars) are allowed for molecules that have not been identified only, or for molecules where the neutral mass cannot be calculated. In these cases, the SML entry SHOULD reference features in which exp_mass_to_charge values are captured. 779 780 * 781 * @return theoreticalNeutralMass 782 **/ 783 @ApiModelProperty(value = "The small molecule’s precursor’s theoretical neutral mass. The number of values provided MUST match the number of entities reported under “database_identifier”, and the validation software will throw an error if the number of “|” symbols does not match. “null” values (in general and between bars) are allowed for molecules that have not been identified only, or for molecules where the neutral mass cannot be calculated. In these cases, the SML entry SHOULD reference features in which exp_mass_to_charge values are captured. ") 784 public List<Double> getTheoreticalNeutralMass() { 785 return theoreticalNeutralMass; 786 } 787 788 /** 789 * Set theoreticalNeutralMass. 790 * 791 * <p>mzTab-M specification example(s):</p> 792 * <pre><code>SMH SML_ID … theoretical_neutral_mass … 793SML 1 … 1234.5 … 794</code></pre> 795 * 796 * 797 * @see #getTheoreticalNeutralMass SmallMoleculeSummary#getTheoreticalNeutralMass for validation constraints 798 * @param theoreticalNeutralMass a {@code List<Double>} parameter. 799 **/ 800 public void setTheoreticalNeutralMass(List<Double> theoreticalNeutralMass) { 801 this.theoreticalNeutralMass = theoreticalNeutralMass; 802 } 803 804 805 /** 806 * Builder method for adductIons. 807 * 808 * @see SmallMoleculeSummary#setAdductIons SmallMoleculeSummary#setAdductIons for specification examples 809 * @see SmallMoleculeSummary#getAdductIons SmallMoleculeSummary#getAdductIons for validation constraints 810 * @param adductIons a {@code List<String>} parameter. 811 * @return SmallMoleculeSummary 812 **/ 813 public SmallMoleculeSummary adductIons(List<String> adductIons) { 814 this.adductIons = adductIons; 815 return this; 816 } 817 818 /** 819 * Add a single adductIonsItem to the adductIons collection. 820 * 821 * @see SmallMoleculeSummary#getAdductIons SmallMoleculeSummary#getAdductIons for validation constraints 822 * @param adductIonsItem a {@code String} parameter. 823 * @return SmallMoleculeSummary 824 */ 825 public SmallMoleculeSummary addAdductIonsItem(String adductIonsItem) { 826 if (this.adductIons == null) { 827 this.adductIons = new ArrayList<>(); 828 } 829 this.adductIons.add(adductIonsItem); 830 return this; 831 } 832 833 /** 834 * A “|” separated list of detected adducts for this this molecule, following the general style in the 2013 IUPAC recommendations on terms relating to MS e.g. [M+H]1+, [M+Na]1+, [M+NH4]1+, [M-H]1-, [M+Cl]1-, [M+H]1+. If the adduct classification is ambiguous with regards to identification evidence it MAY be null. 835 836 * 837 * @return adductIons 838 **/ 839 @ApiModelProperty(value = "A “|” separated list of detected adducts for this this molecule, following the general style in the 2013 IUPAC recommendations on terms relating to MS e.g. [M+H]1+, [M+Na]1+, [M+NH4]1+, [M-H]1-, [M+Cl]1-, [M+H]1+. If the adduct classification is ambiguous with regards to identification evidence it MAY be null. ") 840 public List<String> getAdductIons() { 841 return adductIons; 842 } 843 844 /** 845 * Set adductIons. 846 * 847 * <p>mzTab-M specification example(s):</p> 848 * <pre><code>SMH SML_ID … adduct_ions … 849SML 1 … [M+H]1+ | [M+Na]1+ … 850</code></pre> 851 * 852 * 853 * @see #getAdductIons SmallMoleculeSummary#getAdductIons for validation constraints 854 * @param adductIons a {@code List<String>} parameter. 855 **/ 856 public void setAdductIons(List<String> adductIons) { 857 this.adductIons = adductIons; 858 } 859 860 861 /** 862 * Builder method for reliability. 863 * 864 * @see SmallMoleculeSummary#setReliability SmallMoleculeSummary#setReliability for specification examples 865 * @see SmallMoleculeSummary#getReliability SmallMoleculeSummary#getReliability for validation constraints 866 * @param reliability a {@code String} parameter. 867 * @return SmallMoleculeSummary 868 **/ 869 public SmallMoleculeSummary reliability(String reliability) { 870 this.reliability = reliability; 871 return this; 872 } 873 874 /** 875 * The reliability of the given small molecule identification. This must be supplied by the resource and MUST be reported as an integer between 1-4: 876 877 identified metabolite (1) 878 879 putatively annotated compound (2) 880 881 putatively characterized compound class (3) 882 883 unknown compound (4) 884 885These MAY be replaced using a suitable CV term in the metadata section e.g. to use MSI recommendation levels (see Section 6.2.57 for details). 886 887The following CV terms are already available within the PSI MS CV. Future schemes may be implemented by extending the PSI MS CV with new terms and associated levels. 888 889The MSI has recently discussed an extension of the original four level scheme into a five level scheme MS:1002896 (compound identification confidence level) with levels 890 891 isolated, pure compound, full stereochemistry (0) 892 893 reference standard match or full 2D structure (1) 894 895 unambiguous diagnostic evidence (literature, database) (2) 896 897 most likely structure, including isomers, substance class or substructure match (3) 898 899 unknown compound (4) 900 901For high-resolution MS, the following term and its levels may be used: MS:1002955 (hr-ms compound identification confidence level) with levels 902 903 confirmed structure (1) 904 905 probable structure (2) 906 907 unambiguous ms library match (2a) 908 909 diagnostic evidence (2b) 910 911 tentative candidates (3) 912 913 unequivocal molecular formula (4) 914 915 exact mass (5) 916 917A String data type is set to allow for different systems to be specified in the metadata section. 918 919 * 920 * @return reliability 921 **/ 922 @ApiModelProperty(value = "The reliability of the given small molecule identification. This must be supplied by the resource and MUST be reported as an integer between 1-4: identified metabolite (1) putatively annotated compound (2) putatively characterized compound class (3) unknown compound (4) These MAY be replaced using a suitable CV term in the metadata section e.g. to use MSI recommendation levels (see Section 6.2.57 for details). The following CV terms are already available within the PSI MS CV. Future schemes may be implemented by extending the PSI MS CV with new terms and associated levels. The MSI has recently discussed an extension of the original four level scheme into a five level scheme MS:1002896 (compound identification confidence level) with levels isolated, pure compound, full stereochemistry (0) reference standard match or full 2D structure (1) unambiguous diagnostic evidence (literature, database) (2) most likely structure, including isomers, substance class or substructure match (3) unknown compound (4) For high-resolution MS, the following term and its levels may be used: MS:1002955 (hr-ms compound identification confidence level) with levels confirmed structure (1) probable structure (2) unambiguous ms library match (2a) diagnostic evidence (2b) tentative candidates (3) unequivocal molecular formula (4) exact mass (5) A String data type is set to allow for different systems to be specified in the metadata section. ") 923 public String getReliability() { 924 return reliability; 925 } 926 927 /** 928 * Set reliability. 929 * 930 * <p>mzTab-M specification example(s):</p> 931 * <pre><code>SMH identifier … reliability … 932SML 1 … 3 … 933 934or 935MTD small_molecule-identification_reliability [MS, MS:1002896, compound identification confidence level,] 936… 937SMH identifier … reliability … 938SML 1 … 0 … 939 940or 941MTD small_molecule-identification_reliability [MS, MS:1002955, hr-ms compound identification confidence level,] 942… 943SMH identifier … reliability … 944SML 1 … 2a … 945</code></pre> 946 * 947 * 948 * @see #getReliability SmallMoleculeSummary#getReliability for validation constraints 949 * @param reliability a {@code String} parameter. 950 **/ 951 public void setReliability(String reliability) { 952 this.reliability = reliability; 953 } 954 955 956 /** 957 * Builder method for bestIdConfidenceMeasure. 958 * 959 * @see SmallMoleculeSummary#setBestIdConfidenceMeasure SmallMoleculeSummary#setBestIdConfidenceMeasure for specification examples 960 * @see SmallMoleculeSummary#getBestIdConfidenceMeasure SmallMoleculeSummary#getBestIdConfidenceMeasure for validation constraints 961 * @param bestIdConfidenceMeasure a {@code Parameter} parameter. 962 * @return SmallMoleculeSummary 963 **/ 964 public SmallMoleculeSummary bestIdConfidenceMeasure(Parameter bestIdConfidenceMeasure) { 965 this.bestIdConfidenceMeasure = bestIdConfidenceMeasure; 966 return this; 967 } 968 969 /** 970 * The approach or database search that identified this small molecule with highest confidence. 971 * 972 * @return bestIdConfidenceMeasure 973 **/ 974 @Valid 975 @ApiModelProperty(value = "The approach or database search that identified this small molecule with highest confidence.") 976 public Parameter getBestIdConfidenceMeasure() { 977 return bestIdConfidenceMeasure; 978 } 979 980 /** 981 * Set bestIdConfidenceMeasure. 982 * 983 * 984 * 985 * @see #getBestIdConfidenceMeasure SmallMoleculeSummary#getBestIdConfidenceMeasure for validation constraints 986 * @param bestIdConfidenceMeasure a {@code Parameter} parameter. 987 **/ 988 public void setBestIdConfidenceMeasure(Parameter bestIdConfidenceMeasure) { 989 this.bestIdConfidenceMeasure = bestIdConfidenceMeasure; 990 } 991 992 993 /** 994 * Builder method for bestIdConfidenceValue. 995 * 996 * @see SmallMoleculeSummary#setBestIdConfidenceValue SmallMoleculeSummary#setBestIdConfidenceValue for specification examples 997 * @see SmallMoleculeSummary#getBestIdConfidenceValue SmallMoleculeSummary#getBestIdConfidenceValue for validation constraints 998 * @param bestIdConfidenceValue a {@code Double} parameter. 999 * @return SmallMoleculeSummary 1000 **/ 1001 public SmallMoleculeSummary bestIdConfidenceValue(Double bestIdConfidenceValue) { 1002 this.bestIdConfidenceValue = bestIdConfidenceValue; 1003 return this; 1004 } 1005 1006 /** 1007 * The best confidence measure in identification (for this type of score) for the given small molecule across all assays. The type of score MUST be defined in the metadata section. If the small molecule was not identified by the specified search engine, “null” MUST be reported. If the confidence measure does not report a numerical confidence value, “null” SHOULD be reported. 1008 * 1009 * @return bestIdConfidenceValue 1010 **/ 1011 @ApiModelProperty(value = "The best confidence measure in identification (for this type of score) for the given small molecule across all assays. The type of score MUST be defined in the metadata section. If the small molecule was not identified by the specified search engine, “null” MUST be reported. If the confidence measure does not report a numerical confidence value, “null” SHOULD be reported.") 1012 public Double getBestIdConfidenceValue() { 1013 return bestIdConfidenceValue; 1014 } 1015 1016 /** 1017 * Set bestIdConfidenceValue. 1018 * 1019 * <p>mzTab-M specification example(s):</p> 1020 * <pre><code>SMH SML_ID … best_id_confidence_value … 1021SML 1 … 0.7 … 1022</code></pre> 1023 * 1024 * 1025 * @see #getBestIdConfidenceValue SmallMoleculeSummary#getBestIdConfidenceValue for validation constraints 1026 * @param bestIdConfidenceValue a {@code Double} parameter. 1027 **/ 1028 public void setBestIdConfidenceValue(Double bestIdConfidenceValue) { 1029 this.bestIdConfidenceValue = bestIdConfidenceValue; 1030 } 1031 1032 1033 /** 1034 * Builder method for abundanceAssay. 1035 * 1036 * @see SmallMoleculeSummary#setAbundanceAssay SmallMoleculeSummary#setAbundanceAssay for specification examples 1037 * @see SmallMoleculeSummary#getAbundanceAssay SmallMoleculeSummary#getAbundanceAssay for validation constraints 1038 * @param abundanceAssay a {@code List<Double>} parameter. 1039 * @return SmallMoleculeSummary 1040 **/ 1041 public SmallMoleculeSummary abundanceAssay(List<Double> abundanceAssay) { 1042 this.abundanceAssay = abundanceAssay; 1043 return this; 1044 } 1045 1046 /** 1047 * Add a single abundanceAssayItem to the abundanceAssay collection. 1048 * 1049 * @see SmallMoleculeSummary#getAbundanceAssay SmallMoleculeSummary#getAbundanceAssay for validation constraints 1050 * @param abundanceAssayItem a {@code Double} parameter. 1051 * @return SmallMoleculeSummary 1052 */ 1053 public SmallMoleculeSummary addAbundanceAssayItem(Double abundanceAssayItem) { 1054 if (this.abundanceAssay == null) { 1055 this.abundanceAssay = new ArrayList<>(); 1056 } 1057 this.abundanceAssay.add(abundanceAssayItem); 1058 return this; 1059 } 1060 1061 /** 1062 * The small molecule’s abundance in every assay described in the metadata section MUST be reported. Null or zero values may be reported as appropriate. "null" SHOULD be used to report missing quantities, while zero SHOULD be used to indicate a present but not reliably quantifiable value (e.g. below a minimum noise threshold). 1063 * 1064 * @return abundanceAssay 1065 **/ 1066 @ApiModelProperty(value = "The small molecule’s abundance in every assay described in the metadata section MUST be reported. Null or zero values may be reported as appropriate. \"null\" SHOULD be used to report missing quantities, while zero SHOULD be used to indicate a present but not reliably quantifiable value (e.g. below a minimum noise threshold).") 1067 public List<Double> getAbundanceAssay() { 1068 return abundanceAssay; 1069 } 1070 1071 /** 1072 * Set abundanceAssay. 1073 * 1074 * <p>mzTab-M specification example(s):</p> 1075 * <pre><code>SMH SML_ID … abundance_assay[1] … 1076SML 1 … 0.3 … 1077</code></pre> 1078 * 1079 * 1080 * @see #getAbundanceAssay SmallMoleculeSummary#getAbundanceAssay for validation constraints 1081 * @param abundanceAssay a {@code List<Double>} parameter. 1082 **/ 1083 public void setAbundanceAssay(List<Double> abundanceAssay) { 1084 this.abundanceAssay = abundanceAssay; 1085 } 1086 1087 1088 /** 1089 * Builder method for abundanceStudyVariable. 1090 * 1091 * @see SmallMoleculeSummary#setAbundanceStudyVariable SmallMoleculeSummary#setAbundanceStudyVariable for specification examples 1092 * @see SmallMoleculeSummary#getAbundanceStudyVariable SmallMoleculeSummary#getAbundanceStudyVariable for validation constraints 1093 * @param abundanceStudyVariable a {@code List<Double>} parameter. 1094 * @return SmallMoleculeSummary 1095 **/ 1096 public SmallMoleculeSummary abundanceStudyVariable(List<Double> abundanceStudyVariable) { 1097 this.abundanceStudyVariable = abundanceStudyVariable; 1098 return this; 1099 } 1100 1101 /** 1102 * Add a single abundanceStudyVariableItem to the abundanceStudyVariable collection. 1103 * 1104 * @see SmallMoleculeSummary#getAbundanceStudyVariable SmallMoleculeSummary#getAbundanceStudyVariable for validation constraints 1105 * @param abundanceStudyVariableItem a {@code Double} parameter. 1106 * @return SmallMoleculeSummary 1107 */ 1108 public SmallMoleculeSummary addAbundanceStudyVariableItem(Double abundanceStudyVariableItem) { 1109 if (this.abundanceStudyVariable == null) { 1110 this.abundanceStudyVariable = new ArrayList<>(); 1111 } 1112 this.abundanceStudyVariable.add(abundanceStudyVariableItem); 1113 return this; 1114 } 1115 1116 /** 1117 * The small molecule’s abundance in all the study variables described in the metadata section (study_variable[1-n]_average_function), calculated using the method as described in the Metadata section (default = arithmetic mean across assays). Null or zero values may be reported as appropriate. "null" SHOULD be used to report missing quantities, while zero SHOULD be used to indicate a present but not reliably quantifiable value (e.g. below a minimum noise threshold). 1118 * 1119 * @return abundanceStudyVariable 1120 **/ 1121 @ApiModelProperty(value = "The small molecule’s abundance in all the study variables described in the metadata section (study_variable[1-n]_average_function), calculated using the method as described in the Metadata section (default = arithmetic mean across assays). Null or zero values may be reported as appropriate. \"null\" SHOULD be used to report missing quantities, while zero SHOULD be used to indicate a present but not reliably quantifiable value (e.g. below a minimum noise threshold).") 1122 public List<Double> getAbundanceStudyVariable() { 1123 return abundanceStudyVariable; 1124 } 1125 1126 /** 1127 * Set abundanceStudyVariable. 1128 * 1129 * <p>mzTab-M specification example(s):</p> 1130 * <pre><code>SMH SML_ID … abundance_study_variable[1] … 1131SML 1 … 0.3 … 1132</code></pre> 1133 * 1134 * 1135 * @see #getAbundanceStudyVariable SmallMoleculeSummary#getAbundanceStudyVariable for validation constraints 1136 * @param abundanceStudyVariable a {@code List<Double>} parameter. 1137 **/ 1138 public void setAbundanceStudyVariable(List<Double> abundanceStudyVariable) { 1139 this.abundanceStudyVariable = abundanceStudyVariable; 1140 } 1141 1142 1143 /** 1144 * Builder method for abundanceVariationStudyVariable. 1145 * 1146 * @see SmallMoleculeSummary#setAbundanceVariationStudyVariable SmallMoleculeSummary#setAbundanceVariationStudyVariable for specification examples 1147 * @see SmallMoleculeSummary#getAbundanceVariationStudyVariable SmallMoleculeSummary#getAbundanceVariationStudyVariable for validation constraints 1148 * @param abundanceVariationStudyVariable a {@code List<Double>} parameter. 1149 * @return SmallMoleculeSummary 1150 **/ 1151 public SmallMoleculeSummary abundanceVariationStudyVariable(List<Double> abundanceVariationStudyVariable) { 1152 this.abundanceVariationStudyVariable = abundanceVariationStudyVariable; 1153 return this; 1154 } 1155 1156 /** 1157 * Add a single abundanceVariationStudyVariableItem to the abundanceVariationStudyVariable collection. 1158 * 1159 * @see SmallMoleculeSummary#getAbundanceVariationStudyVariable SmallMoleculeSummary#getAbundanceVariationStudyVariable for validation constraints 1160 * @param abundanceVariationStudyVariableItem a {@code Double} parameter. 1161 * @return SmallMoleculeSummary 1162 */ 1163 public SmallMoleculeSummary addAbundanceVariationStudyVariableItem(Double abundanceVariationStudyVariableItem) { 1164 if (this.abundanceVariationStudyVariable == null) { 1165 this.abundanceVariationStudyVariable = new ArrayList<>(); 1166 } 1167 this.abundanceVariationStudyVariable.add(abundanceVariationStudyVariableItem); 1168 return this; 1169 } 1170 1171 /** 1172 * A measure of the variability of the study variable abundance measurement, calculated using the method as described in the metadata section (study_variable[1-n]_average_function), with a default = arithmethic co-efficient of variation of the small molecule’s abundance in the given study variable. 1173 * 1174 * @return abundanceVariationStudyVariable 1175 **/ 1176 @ApiModelProperty(value = "A measure of the variability of the study variable abundance measurement, calculated using the method as described in the metadata section (study_variable[1-n]_average_function), with a default = arithmethic co-efficient of variation of the small molecule’s abundance in the given study variable.") 1177 public List<Double> getAbundanceVariationStudyVariable() { 1178 return abundanceVariationStudyVariable; 1179 } 1180 1181 /** 1182 * Set abundanceVariationStudyVariable. 1183 * 1184 * <p>mzTab-M specification example(s):</p> 1185 * <pre><code>SMH SML_ID … abundance_study_variable[1] abundance_variation_study_variable[1] … 1186SML 1 … 0.3 0.04 … 1187</code></pre> 1188 * 1189 * 1190 * @see #getAbundanceVariationStudyVariable SmallMoleculeSummary#getAbundanceVariationStudyVariable for validation constraints 1191 * @param abundanceVariationStudyVariable a {@code List<Double>} parameter. 1192 **/ 1193 public void setAbundanceVariationStudyVariable(List<Double> abundanceVariationStudyVariable) { 1194 this.abundanceVariationStudyVariable = abundanceVariationStudyVariable; 1195 } 1196 1197 1198 /** 1199 * Builder method for opt. 1200 * 1201 * @see SmallMoleculeSummary#setOpt SmallMoleculeSummary#setOpt for specification examples 1202 * @see SmallMoleculeSummary#getOpt SmallMoleculeSummary#getOpt for validation constraints 1203 * @param opt a {@code List<OptColumnMapping>} parameter. 1204 * @return SmallMoleculeSummary 1205 **/ 1206 public SmallMoleculeSummary opt(List<OptColumnMapping> opt) { 1207 this.opt = opt; 1208 return this; 1209 } 1210 1211 /** 1212 * Add a single optItem to the opt collection. 1213 * 1214 * @see SmallMoleculeSummary#getOpt SmallMoleculeSummary#getOpt for validation constraints 1215 * @param optItem a {@code OptColumnMapping} parameter. 1216 * @return SmallMoleculeSummary 1217 */ 1218 public SmallMoleculeSummary addOptItem(OptColumnMapping optItem) { 1219 if (this.opt == null) { 1220 this.opt = new ArrayList<>(); 1221 } 1222 this.opt.add(optItem); 1223 return this; 1224 } 1225 1226 /** 1227 * Additional columns can be added to the end of the small molecule table. These column headers MUST start with the prefix “opt_” followed by the {identifier} of the object they reference: assay, study variable, MS run or “global” (if the value relates to all replicates). Column names MUST only contain the following characters: ‘A’-‘Z’, ‘a’-‘z’, ‘0’-‘9’, ‘’, ‘-’, ‘[’, ‘]’, and ‘:’. CV parameter accessions MAY be used for optional columns following the format: opt{identifier}_cv_{accession}_\{parameter name}. Spaces within the parameter’s name MUST be replaced by ‘_’. 1228 1229 * 1230 * @return opt 1231 **/ 1232 @Valid 1233 @ApiModelProperty(value = "Additional columns can be added to the end of the small molecule table. These column headers MUST start with the prefix “opt_” followed by the {identifier} of the object they reference: assay, study variable, MS run or “global” (if the value relates to all replicates). Column names MUST only contain the following characters: ‘A’-‘Z’, ‘a’-‘z’, ‘0’-‘9’, ‘’, ‘-’, ‘[’, ‘]’, and ‘:’. CV parameter accessions MAY be used for optional columns following the format: opt{identifier}_cv_{accession}_\\{parameter name}. Spaces within the parameter’s name MUST be replaced by ‘_’. ") 1234 public List<OptColumnMapping> getOpt() { 1235 return opt; 1236 } 1237 1238 /** 1239 * Set opt. 1240 * 1241 * <p>mzTab-M specification example(s):</p> 1242 * <pre><code>SMH SML_ID … opt_assay[1]_my_value … opt_global_another_value 1243SML 1 … My value … some other value 1244</code></pre> 1245 * 1246 * 1247 * @see #getOpt SmallMoleculeSummary#getOpt for validation constraints 1248 * @param opt a {@code List<OptColumnMapping>} parameter. 1249 **/ 1250 public void setOpt(List<OptColumnMapping> opt) { 1251 this.opt = opt; 1252 } 1253 1254 1255 /** 1256 * Builder method for comment. 1257 * 1258 * @see SmallMoleculeSummary#setComment SmallMoleculeSummary#setComment for specification examples 1259 * @see SmallMoleculeSummary#getComment SmallMoleculeSummary#getComment for validation constraints 1260 * @param comment a {@code List<Comment>} parameter. 1261 * @return SmallMoleculeSummary 1262 **/ 1263 public SmallMoleculeSummary comment(List<Comment> comment) { 1264 this.comment = comment; 1265 return this; 1266 } 1267 1268 /** 1269 * Add a single commentItem to the comment collection. 1270 * 1271 * @see SmallMoleculeSummary#getComment SmallMoleculeSummary#getComment for validation constraints 1272 * @param commentItem a {@code Comment} parameter. 1273 * @return SmallMoleculeSummary 1274 */ 1275 public SmallMoleculeSummary addCommentItem(Comment commentItem) { 1276 if (this.comment == null) { 1277 this.comment = new ArrayList<>(); 1278 } 1279 this.comment.add(commentItem); 1280 return this; 1281 } 1282 1283 /** 1284 * <p>Get comment.</p> 1285 * 1286 * @return comment 1287 **/ 1288 @Valid 1289 @ApiModelProperty(value = "") 1290 public List<Comment> getComment() { 1291 return comment; 1292 } 1293 1294 /** 1295 * Set comment. 1296 * 1297 * 1298 * 1299 * @see #getComment SmallMoleculeSummary#getComment for validation constraints 1300 * @param comment a {@code List<Comment>} parameter. 1301 **/ 1302 public void setComment(List<Comment> comment) { 1303 this.comment = comment; 1304 } 1305 1306 1307 @Override 1308 public boolean equals(java.lang.Object o) { 1309 if (this == o) { 1310 return true; 1311 } 1312 if (o == null || getClass() != o.getClass()) { 1313 return false; 1314 } 1315 SmallMoleculeSummary smallMoleculeSummary = (SmallMoleculeSummary) o; 1316 return Objects.equals(this.prefix, smallMoleculeSummary.prefix) && 1317 Objects.equals(this.headerPrefix, smallMoleculeSummary.headerPrefix) && 1318 Objects.equals(this.smlId, smallMoleculeSummary.smlId) && 1319 Objects.equals(this.smfIdRefs, smallMoleculeSummary.smfIdRefs) && 1320 Objects.equals(this.databaseIdentifier, smallMoleculeSummary.databaseIdentifier) && 1321 Objects.equals(this.chemicalFormula, smallMoleculeSummary.chemicalFormula) && 1322 Objects.equals(this.smiles, smallMoleculeSummary.smiles) && 1323 Objects.equals(this.inchi, smallMoleculeSummary.inchi) && 1324 Objects.equals(this.chemicalName, smallMoleculeSummary.chemicalName) && 1325 Objects.equals(this.uri, smallMoleculeSummary.uri) && 1326 Objects.equals(this.theoreticalNeutralMass, smallMoleculeSummary.theoreticalNeutralMass) && 1327 Objects.equals(this.adductIons, smallMoleculeSummary.adductIons) && 1328 Objects.equals(this.reliability, smallMoleculeSummary.reliability) && 1329 Objects.equals(this.bestIdConfidenceMeasure, smallMoleculeSummary.bestIdConfidenceMeasure) && 1330 Objects.equals(this.bestIdConfidenceValue, smallMoleculeSummary.bestIdConfidenceValue) && 1331 Objects.equals(this.abundanceAssay, smallMoleculeSummary.abundanceAssay) && 1332 Objects.equals(this.abundanceStudyVariable, smallMoleculeSummary.abundanceStudyVariable) && 1333 Objects.equals(this.abundanceVariationStudyVariable, smallMoleculeSummary.abundanceVariationStudyVariable) && 1334 Objects.equals(this.opt, smallMoleculeSummary.opt) && 1335 Objects.equals(this.comment, smallMoleculeSummary.comment); 1336 } 1337 1338 @Override 1339 public int hashCode() { 1340 return Objects.hash(prefix, headerPrefix, smlId, smfIdRefs, databaseIdentifier, chemicalFormula, smiles, inchi, chemicalName, uri, theoreticalNeutralMass, adductIons, reliability, bestIdConfidenceMeasure, bestIdConfidenceValue, abundanceAssay, abundanceStudyVariable, abundanceVariationStudyVariable, opt, comment); 1341 } 1342 1343 1344 @Override 1345 public String toString() { 1346 StringBuilder sb = new StringBuilder(); 1347 sb.append("class SmallMoleculeSummary {\n"); 1348 1349 sb.append(" prefix: ").append(toIndentedString(prefix)).append("\n"); 1350 sb.append(" headerPrefix: ").append(toIndentedString(headerPrefix)).append("\n"); 1351 sb.append(" smlId: ").append(toIndentedString(smlId)).append("\n"); 1352 sb.append(" smfIdRefs: ").append(toIndentedString(smfIdRefs)).append("\n"); 1353 sb.append(" databaseIdentifier: ").append(toIndentedString(databaseIdentifier)).append("\n"); 1354 sb.append(" chemicalFormula: ").append(toIndentedString(chemicalFormula)).append("\n"); 1355 sb.append(" smiles: ").append(toIndentedString(smiles)).append("\n"); 1356 sb.append(" inchi: ").append(toIndentedString(inchi)).append("\n"); 1357 sb.append(" chemicalName: ").append(toIndentedString(chemicalName)).append("\n"); 1358 sb.append(" uri: ").append(toIndentedString(uri)).append("\n"); 1359 sb.append(" theoreticalNeutralMass: ").append(toIndentedString(theoreticalNeutralMass)).append("\n"); 1360 sb.append(" adductIons: ").append(toIndentedString(adductIons)).append("\n"); 1361 sb.append(" reliability: ").append(toIndentedString(reliability)).append("\n"); 1362 sb.append(" bestIdConfidenceMeasure: ").append(toIndentedString(bestIdConfidenceMeasure)).append("\n"); 1363 sb.append(" bestIdConfidenceValue: ").append(toIndentedString(bestIdConfidenceValue)).append("\n"); 1364 sb.append(" abundanceAssay: ").append(toIndentedString(abundanceAssay)).append("\n"); 1365 sb.append(" abundanceStudyVariable: ").append(toIndentedString(abundanceStudyVariable)).append("\n"); 1366 sb.append(" abundanceVariationStudyVariable: ").append(toIndentedString(abundanceVariationStudyVariable)).append("\n"); 1367 sb.append(" opt: ").append(toIndentedString(opt)).append("\n"); 1368 sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); 1369 sb.append("}"); 1370 return sb.toString(); 1371 } 1372 1373 /** 1374 * Convert the given object to string with each line indented by 4 spaces 1375 * (except the first line). 1376 */ 1377 private String toIndentedString(java.lang.Object o) { 1378 if (o == null) { 1379 return "null"; 1380 } 1381 return o.toString().replace("\n", "\n "); 1382 } 1383 1384} 1385