diff --git a/docs/pages/examples.md b/docs/pages/examples.md index 6883446c..0b4d73b5 100644 --- a/docs/pages/examples.md +++ b/docs/pages/examples.md @@ -4,11 +4,14 @@ title: "mzQC Examples" permalink: /examples/ --- -Here are a number of worked examples, that, each for its own use-case, go step-by-step through the different parts of a mzQC. +The following use cases provide several hands-on examples of how mzQC files are structured and can be used: - [Representing QC data for an individual mass spectrometry run](intro_run/) - [Deriving QC data from multiple related mass spectrometry runs](intro_set/) - [QC sample mzQC](QC2-sample-example/) -- [in mzML](mzml-mzqc-example/) -- [Using USI with mzQC](USI-example/) - [Batch correction](metabo-batches/) + +Additionally, for more advanced usage, mzQC can closely interoperate with several other file formats developed by the Proteomics Standards Initiative: + +- [Using USI with mzQC](USI-example/) +- [Incorporating QC metrics in mzML files](adv_mzqc_in_mzml/) diff --git a/docs/pages/worked-examples/adv_mzqc_in_mzml.md b/docs/pages/worked-examples/adv_mzqc_in_mzml.md new file mode 100644 index 00000000..1a136143 --- /dev/null +++ b/docs/pages/worked-examples/adv_mzqc_in_mzml.md @@ -0,0 +1,76 @@ +--- +layout: page +title: "Incorporating QC Metrics in mzML Files" +permalink: /examples/adv_mzqc_in_mzml/ +--- + +While QC metrics in the PSI-MS controlled vocabulary are primarily intended for use in mzQC files, they can also be embedded directly within other file formats developed by the Proteomics Standards Initiative, such as [mzML](https://github.com/HUPO-PSI/mzML) and [mzIdentML](https://github.com/HUPO-PSI/mzIdentML) files. +This integration is particularly useful when it's preferred to store a limited set of QC metrics alongside the data they describe, thereby enhancing data integrity and accessibility. + +You can view a comprehensive example of an mzML file incorporating QC metrics [here](https://github.com/HUPO-PSI/mzQC/tree/main/specification_documents/examples/adv_mzqc_in_mzml.mzml). +Below, we detail the steps and elements involved in this process. + +1. **Source file specification** + +Define the source of the QC metrics using a `sourceFile` element. +This specifies the mzQC file as an input file, similarly to how other input files are handled within mzML: + +``` + + + +``` + +2. **Software and data processing** + +Document the software and data processing steps utilized to generate the mzQC file and compute the QC metrics: + +``` + + + +``` + +And: + +``` + + + + + +``` + +3. **Inclusion of QC metrics** + +Include the QC metrics at appropriate levels within the mzML structure: + +- **Run-level metrics** + +Metrics that relate to all spectra in the file are embedded at the `run` level using a `cvParam`: + +``` + + + ... + +``` + +- **Individual spectrum metrics** + +For metrics that relate to individual spectra, include these metrics at the `spectrum` level using a `cvParam`: + +``` + + ... + + ... + +``` + +Repeat for each spectrum as necessary, adjusting the spectrum ID and corresponding values. + +Note that because QC metrics in mzQC files are typically encoded at the level of runs rather than individual spectra, most spectrum-level QC metrics are defined in the PSI-MS controlled vocabulary as tabular metrics with rows for all spectra. +Therefore, when directly associating these metrics with a specific spectrum, the tables should contain a single entry only for this spectrum. + +The key insight for embedding QC metrics in alternative file formats is that because they are backed by terms in the PSI-MS controlled vocabulary, they can be directly included using the respective functionalities for CV terms, such as `cvParam`. diff --git a/docs/pages/worked-examples/mzml-mzqc-example.md b/docs/pages/worked-examples/mzml-mzqc-example.md deleted file mode 100644 index a88869ec..00000000 --- a/docs/pages/worked-examples/mzml-mzqc-example.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -layout: page -title: "Example of mzQC metrics in mzML" -permalink: /examples/mzml-mzqc-example/ ---- - -QC metrics from _mzQC_ can also be incorporated into other PSI formats, like _mzML_ and _mzIdentML_, if it is preferable to keep all information in one file. -The following describes a tiny _mzML_, for which a QC tool calculated id-free QC metrics for all individual spectra of the run and a set of charge distribution metrics. -Due to the shared design properties of _mzQC_, metrics can be directly represented as XML `` elements, however their location bound to mzML schema constraints. - -The first addition to the _mzML_ is the source from which the metrics came from, for reference to more QC information on the run and documentation. -``` - - - -``` -Next, the metrics computed for the whole run can be be deposited as a child of the `` element itself. Metric objects from mzQC can be directly translated into `` elements. -``` - - - -``` -Please note that for example brevity purposes the _mzML_ was truncated to 3 spectra, however the metrics were calculated on the whole to reflect realistic values. Also, the NativeID format was truncated to the index of `spectrum=` bit. - -Next, the spectra metrics can be put as children of `` elements, in the same fashion as for the run metrics. -``` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WCz3rG/BckDqpo+35sJyQE1J4Cc+w3JAzDyhysXEckCitDODWsVyQOu042tD0nJAoiDOt3fTckDdtIVDYtRyQNSyBfjM33JAss+e6yTgckBGwpA0uOByQLX5rnNO4XJAUhwGHlHickAA/uSNj+JyQOp/TXok43JAfnKJ7snxckBdMMTdffJyQInw7FO383JA942OrqH0ckDkroJ5wf9yQOGVLX5kAHNAyBdr3PoAc0AsP5cpzwJzQH+W4Nn6A3NA4KDR50wNc0BBJnBrCRJzQMhy89O8EnNAA4HnMPkTc0DMyXmnThRzQIjL8eF5H3NAs1lC6KMgc0DkNauWOSFzQC+RxY/KInNAnuTtGjskc0CSoTZhzyRzQBzsWZxGMXNATQIOz6Ezc0BQR1bMOTRzQMVRKDDbNHNABej+Abk/c0BgO7Hz40BzQPDBIlJ5QXNAx93i9XpEc0DKA4MRFktzQC4GikqkU3NAalcXnoFUc0ADETkZDVVzQKp4LDA7W3NAzXDVjIlgc0CylY18RWNzQPN7YCNRcnNArDyBouVyc0Akr1XQt3RzQLxed6ZMdXNAJ2zwrmp2c0AQbl5JeYBzQEqNPR+lgHNArW6Vrg2Bc0AzZ11fhpBzQLv575hNknNADMD2lc6Tc0AaHVYFY5RzQGYaar/3lHNAu1AmQ7mgc0A+yY+eT6FzQIhdJOByoXNAqJtmpFuic0CqlhXN5qJzQEJQa2MGpXNAOeX1aTSxc0CKWJUYgbFzQGTOTE64s3NAb2k1wQ20c0CbfOcq+cBzQPwWEC89wnNA3J+h4tDCc0B2c5zBJsNzQHeOg0zX0XNAVpkkrDTTc0B8bAYo99NzQLB4EZji1HNA7kcidqLgc0Be+mq/OOFzQDyqDkFk4XNAQlhFlzXjc0AGrX3FNfRzQATXfM+O9HNA0q+4ouQAdEBzoM8meQF0QOoq6kOkAXRA3fqSKuQDdECEpScBiBF0QFfd2rZvEnRAolR4AU0TdEBeU/tJeRR0QGLL01F7HXRAp2G4v0sgdEDCY20mjSB0QBTrB7a5IXRArLUW67okdEBqOQru2DJ0QHz1aSRTQHRAbmBIjXpDdEBcyUeP9lR0QFQT27iLVXRAfNzuGrhgdECyf1ZtCWJ0QGM3bnK+YnRAYtAy3k1kdEB79QdQjWh0QLzrZRsjcHRAekkegUFxdEDFrm9QOXN0QOjpEDY3dXRAbO7dwPiAdEA+VFt2JYF0QF79wNhOgXRAUvpvq5KCdEA6LCK/FpB0QBYyhcrPoHRApQzDPDehdEBISWquu6J0QOZZyejRonRAkC1TXw+jdEC/UnslCbB0QGyerZbcsnRABhOAdeXAdEDFoEKsecF0QCPstVXswXRAltEjt3nEdEDyijcZuMR0QMqpzeidyHRAwAMSuv7OdEAU+QAU49N0QBK6z0TO1HRA2nD7diThdEBdjaP9t+F0QNL8885O5XRAzG68Po3zdEAuzHjbePR0QILWIcGkAHVAQkOz384AdUBwJBBGZAF1QF7oxYUFEnVA8C6UUjwTdUBxagGCJRR1QDpHsVq6I3VAF8gujs01dUDOCvK3gFF1QIaqgOxNVHVAJU0UOHdVdUD2o6BlOGF1QBdQYlQAcHVAtUiAFHhydUCXCguajXR1QPG3igx6gXVAxvPmBq6BdUBypc61qIN1QABtU+SahHVA6rnDl7yRdUBuqToLb5J1QMa9kUU9k3VAhzv6DiOhdUDq0v8luaF1QNbIUsViwXVAVoHaSPjBdUB8HQPMzdN1QJ6jQu/k33VAoHzVngjidUCkpRlWSAJ2QHhOjIXSA3ZAanuIHlUSdkANQR2lTRR2QNUlN90LFnZAU17cXIgidkDFcA4unCN2QMhuDDyRJHZAbKizD0ordkC5aB+7HzF2QGbMDSckM3ZAPn3xDlIzdkA2JciglzN2QC3GU5udNHZA3svMrx1BdkAXeXqQeUR2QCDPuSn8TnZA7AgXCMtQdkC0hYgAElF2QBynKYHNVHZADlmLCRBhdkCFXuPSG2F2QNcgd1HaZHZAo5A9qo6CdkAR0lpFvJN2QHNDNGG3sHZAiXUR+MOydkBWTnOWDbR2QO71RS6wtHZAzqkj1L/AdkBE6Ixz5MF2QLvVQjwaxHZAcH/Av87OdkBSAr8s9OF2QFQWpZqR83ZAAFjo90/0dkAFafXzNAJ3QPA6SncBEndAil+IUT0Sd0B+XCNBDiJ3QH5cm1W6JHdAAJCrGg01d0AgSCatnUF3QLg7yWQbRXdAUEBHi0tRd0B47pUck1F3QFg57YUpVXdAQbM+4Udhd0Dbhh6Jj2F3QMZ7NjQob3dAvIL77490d0BY75HNeIJ3QHB03L8JkndAO/3WIevCd0BgCJO2i9Z3QGG241dQ8ndATq7mFU4VeEAoAtuobiJ4QDkGphOFI3hAuK1deg1CeEBMhMa4ekV4QCg9YY7LUXhArBErPIlVeEBnXklU+mB4QFAs7Uy3YXhA9HvKv7dieECyF52FOnR4QPZubY9ndHhA8DGUr4t0eEBuLMkC03R4QGDbNxT+dHhAYtCVNaWBeEBizxsHmoR4QMAwayBQj3hAbEs/NZiReED6xcoXp5R4QM9m1w+6pHhASEQ6Dc7AeEDIRpwh9sF4QAypoWq11HhAANHLOQL0eEB/U9+xjPV4QMFSWRYRBHlA4gDNKpoFeUC7Wy3xwCN5QMCOVz27M3lACdKf84tCeUBUGSmX4VB5QJS/9ec3VHlATpxzLM1UeUAuAJW76mB5QHKJqxPbZHlAH2qjVUNzeUAS+c7s9YF5QFhB9ta/snlAcmzZYULUeUDqXfSizNV5QLWK2IRR5HlATVvnaPgFekD+kLnN3CZ6QEpkSFkMNXpALlpbjBpFekDag3dZLVB6QP1oUFaCUnpAml12YStVekAWKlYWOG16QIzUWRmLcnpAVmlNgQmdekA6+8yKYqJ6QCdaF0eqp3pArv2hXTOsekDAgrUZBq16QBI+g1UNtnpA/VRVWCzDekDGwb0F2NN6QGmoGV155HpA8oL4WjXuekAq6YJkKg57QKFOscFMFXtAgpnq2lole0BWgSx+Hy57QG6i6qJUMHtA4inJgMAze0D8joS9JJV7QJLh+616xntAgtrrHK7Te0BGJ8nWt9t7QL7cwylF4ntALrpHbrnje0Ak35E2/uN7QF7noQWo53tAnpNappfxe0BO3Bg9jPV7QFAv4iyPAXxAarAQqdkBfEDUCC7j8wF8QIjFdRWZBXxABHLuttERfECQ/b5jyyF8QOoLaVHMQXxAaoAd39pRfEAi/sZ4DmJ8QDahp/aTm3xAEm140sOyfEDCbzSrD7Z8QGWbdMjM1XxA3qsV0VfifEClN6NtFvJ8QK7G+Z5V8nxAanGjYAACfUASHp+ASwJ9QJIHu6ZFEn1AtoxqsDwifUCXXx7YoTF9QPxCiKSgU31A/FSO+SzDfUAWNHd51+J9QLK8T2h6831AaXD2y4/1fUBT9Ek/jlV+QFsxQ6KZZX5Avlhs6dPvfkCIFNDxAxt/QFeQmTARM39A37p88FA4f0BWOGmdqj1/QH/YCjUDQ39AN03r11pIf0D+bujCt3F/QEA+vl6xgX9Avl0drqODf0CgRmjfYpF/QN7yq/DdkX9AdzLI5paTf0DSpP6v5Zl/QDzflyBeoX9AtFzgU86hf0BLKH6pVLF/QEeBq+mQs39AcwnRDJbdf0B2ESVQ7+J/QJK5jnhC6H9Aw3lPI57tf0C6+7u6gxGAQDrzMpEwFIBAvoqhRNUWgECyX/l95S+AQAJAdSXXNoBAot5+k+s3gED4EUGEgjmAQPIJiKwpPIBAjMKVO9Y+gEAMpBgQ90iAQEPHhRnnUIBAxtjeAhRRgEDhVu/k5ViAQMijus0OWYBASPYvLylvgEBUdfaTDnqAQBQWG40TfoBAFuZz9hyPgECsULnubJGAQCfO4HoZlIBAwRq4uMOWgEAW4xmwbJmAQMq3HbQYnIBAI3Uu14apgEDiaaNgUsGAQCIKm1NTyYBAsMeJVkzRgEBCRgKYYNGAQJz1AbxK2YBAMlgZ55jZgEC299d5RdyAQAhwZRry3oBAAZgqPkXhgECm/z7EmeGAQPcV10H26IBARmaiWUrvgECfcfm9PPOAQJp9qhhA/4BAArtdoT0HgUCcgt1BPw+BQByecoIeHoFAFtU6CzQfgUCAjONlISKBQB5c0iE2J4FANe7kV7wxgUDq7FRvVY+BQGcZ/flVl4FASNqJU+ehgUBwup5abqiBQI7J/z3sqYFAFHl6c0qvgUBMSDjFfdOBQHDJd3TYGIJADo16tNYggkCUIHrdzyiCQNHIkAekMIJAi/x8bsh5gkCOOJXvy32CQJjG0+3AgYJASDI8XdKBgkBwfZmfxoWCQCCWfT5DiYJAJJI4v0ORgkA6DOBVPJmCQOLnNrJUmYJABofqBw+hgkBj+hfVOqGCQNfiL7cNqYJAyI5w4TOpgkA3OhXJB7GCQIpazjSu+YJA6l8/cHkRg0Bg9A0mehmDQAZAQZByIYNAGJ95wnEpg0A6P7CcaTGDQDy+W6fCVYNAruu6HkDSg0C9P2+W/2iEQDmxQSv+cIRAPMT6U/h4hEBRt8eCatmEQD0cEFFq4YRAoBE0MmPphEDmIN68NvGEQGJKjqZk8YRAL+GAkTT5hEAMm5RKWvmEQAps2RIxAYVAtHDac6BhhUDF7I8FoWmFQCZfYMiYcYVAWLxLiZh5hUBaDlTYk4GFQLKM98cXeoZAssMQWye5hkDg04zVkCmHQNR0nmmRMYdAaKdVzIo5h0A0NQoLXUGHQHuNvPeKQYdAMjFGQxpeh0B8ZnwSHmKHQMxGunAhZodAVP4Fcjlqh0AQPlIDZa6HQNBmFrrHsYdAz+Am22iyh0AQZofhx7mHQPRRB/bAwYdAuppRtT5OiEA0v5eWQlKIQPaySh91rYhAvtv7nCmwiECHo5X4G9aIQA== - - - - - - a3BWReO5k0SWhb1EWvvWRE9oi0RWsB5HY6+0RNFygESwlQJFDlp/RJLrH0UkS4dEx59sRQuju0RV8pBEKkqYRfgjiERoJs5EuoiWRAKoD0X1cJdEs5XlRPOcJUWSxR1HCAqcRPKLnUSKg0lGVwuaRaObmkQ3gtlEdnUbRb/8+UaEGM9EIHjERFjTq0V05UBFWLm8RA0ieET9oapEp4x6RLhUFkXLV49FdPcYRsmFRkX8SLlF3STLRH0En0RTcftF6xCGRAHnLUWie51EB9V6RPMAoEQ9SR5F1AiLRNRQAUfD3uBEIhkFRfd7PUVYEllHCWyPRMqQG0Xgb5tGeR3xRUtYwUR8vJVEf1brRSkooUSh3RxFFmOvROFNlESrR6JFFRaIRWDLBUWEnp1E0b2mRaSHnkibowJFfZ8XRwOEEEXD5KRFt62JRJRCBUaGjLZE7xf+RDVoCUU03qhEC/3yRFUsmUarcK1E79FjRKEwykSg3SlGqfZXRQ+nlESY14BETTaQRKzBhkQ7ZBJFSPebRMkeWUSUFoRE1SqcRLV31kTrZxFF1xS9RWJl30Tf75FEwwHFRIPOc0QOkKhFDMNSRwhA3UT8t85EbcQ0RYcdfUR1MgFG/Z2KRLCaykVyY9BE68O+RFAh10Q29MBFKEYZRcoDgES+XIhEakOwRFf820SkerZEQBOoRAinAUUzIyJFV8DARAUdhkSL/qpEObaQRMm3JUU4XLFEEnfDRWYRl0TLuZdEvoLjRKiLAEXE5dxEZe6PRC+FAEXvpodEfD8/RTgP3UR/aK5EtfPvRP6GVEVIXoVEgltPRaWLSEY7xxdFc//0RexFwUQGnhFFp9KaRNprt0SeNZVE4R7iRBsZl0SiWJZEF0YaRRnf8EQyUZ5E6oOHRc35jEW4891EfMi2ROhTjkSO5NFE55TKRDCiv0R0ixZGYmDYRboD8EbxVYlEl3sYRSOvlkQStsFE2jKgRT63jUXI26ZEidW+RA8pj0UIRWNGjvmJREj6hkTfXBJFOjGNRCY5t0SWK7NE26G+RLpqmkXGJJ1EPYzoRPmqf0SOvL9EGvJBRcw32kTwfy9FU7WvRGu5/ET6d8BGf4eBRNsfjkUV/n1EARkNSBQR10YP0/FG7QrCRQ7BoEbrUzdF09a2RAAASEX/RZxFN72ERAbzw0TLJKREW7aJRLGMqkRE+fxEaKKQRMgvmUXUBqFETlQeRe43hUYSLbBFlyZHRT0cI0UYK3FFngyvRHxzR0V84OZFf+5iScRXV0VZmK9E7Mo6RTm6ZEjD5aBEXBPYRDgEvUbAJ6VE4/V4RQXly0SfZhdFd4q6RcpuIEZEkJVEcnnkREIqVEVV5WxEJ52nRC+T1kT9la1E9Rm8RdnGukTUhsdEzAG6RL/mokQpG3dFSvYERps9B0Wo68ZEjJa5RD6QtkQifOVHQRflRsFvuETOD59E2iopRT8xlkRvq4pE7xniRQLp4kViLyRFP4mLRCTRzkRTnc5FgD+dRMbusETkPpBEK7Y5RZTmBEUEAWxGRC9DRWe4hETORs5FaK6NRGNoAEUg66tE9+6QRexek0SozqNEimSKRIOcs0QJuvFEycDFRRD+qkaKL69E4opIRtx4/USoxLFF5rSfRaDFnkQSj+xF1jCWRPRRzESM3rxEd8rTRGNMiURz/qlEXBP7R0S/AUWuU/5G5oNLRdxszUZk4J9FMu3NRHXQkkRj8qBEIUrkRC+H80Rs85FEw6UqRfOBDUWtJ4NEbJaZRMehhUQMwJVFjV/nRpvPd0ZRZNJFFqv4RPDku0UlwaxE+3iRROBFR0YbXgRGYm+WRFUbwEQfBIdFTK6qRGUGLUWCXlpF0lSkRpVaJEbqeUxFb3IKRZ6/jUXGqmdFQhS0REBhi0Tm4WpGXPuxRF/HLEYtLrNFg4qBRfFPAEWaPVFFs+SGRvLQ6ESAu+FFLjDERFIj2kRUKXJEDMs7RWCtOEcKEyhHADCQRtVT20U3RjxF1htFRVa8gEhKwtpH+ud/R1huOkVUhmNGjpC4RlbsoUYRartFxHepRQj98ESircVE8+SRRNo2u0TWjzJGfSsaRfCKx0SNS+hFdx/gRflbHEWW45xEdUHBRKXL7UWhB+lErOosRTt840QpzoREaTk7Re5eykTitWNG6FWmRTV7LEVfP+pE4qjuRtqQnUYOtIVFFcpURVPvDEVpE9xHl3hKRy647UZ2+yFFhNrcRQE7EkaRz6FErvMyRU5yqkSG9c1EYV3fR890NkeaONxGq1YARrVJDkUfmRtFONqGRNS1/0Wz1FdFVXkSRQqDHEfFgY9GEmRMRhEakUVEnmxFxREKRYIGnUTz6ulEGWMGR3pmc0Y95h9GvveDRdMC6kSi5bBEhhiNRJiIVkY+cvBFRy+6Rci0gESVLLpEZ+oTRuKtyUWTpyBFOUeURGa2HUW4xApGshXURHdyg0V4D1hFY7SrRGjFrkQwDf9E/4+zRHfdzEQ= - - - - - ... -``` -As you can seen in the `` elements, it contains extra information in `cvRef`. -This attribute is a reference to a data entry registering the controlled vocabularies used in the file much like in _mzQC_. -This has to be added to finalise the _mzML_. -The `` elements are again very similar to the respective entries in _mzQC_, making translation easy. -``` - - - - - - - -``` -Note that you should also add your software to `` and ``. - -### This is the mzQC file once again, in full: -**[mzml-mzqc-example.mzML](https://github.com/HUPO-PSI/mzQC/tree/main/specification_documents/examples/mzml-mzqc-example.mzML)** \ No newline at end of file diff --git a/specification_documents/examples/mzml-mzqc-example.mzML b/specification_documents/examples/adv_mzqc_in_mzml.mzML similarity index 99% rename from specification_documents/examples/mzml-mzqc-example.mzML rename to specification_documents/examples/adv_mzqc_in_mzml.mzML index 62dc41a5..8414cbd7 100644 --- a/specification_documents/examples/mzml-mzqc-example.mzML +++ b/specification_documents/examples/adv_mzqc_in_mzml.mzML @@ -1,7 +1,7 @@ - + @@ -11,7 +11,7 @@ - + @@ -29,7 +29,7 @@ - + @@ -69,8 +69,8 @@ - - + + @@ -320,7 +320,7 @@ - + @@ -338,7 +338,7 @@ - + @@ -378,7 +378,7 @@ - + @@ -418,7 +418,7 @@ - +