Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Synapsa Commons › Programmes › Proteomics and multiomics

Proteomics and multiomics

Proteomics, metabolomics and multiomics integration. The programme for the people whose numbers come out of a mass spectrometer.

A protein count, a metabolite annotation or a biomarker shortlist is the end of a long chain of software choices, and the error in it is not the error anybody quoted. This programme builds the chain by hand, in numpy, on a laptop: the search that turns a spectrum into a peptide, the error estimate that says how many of those peptides to believe, the roll-up to proteins, and then the quantitation, the integration across modalities and the audit that decide whether a result survives contact with a second cohort.

Every lab runs on a simulated sample by default, and that is a design decision, not a shortcut. A real submission has no answer key, so it can never tell you which of your identifications are wrong. A simulated one does, and a false discovery rate is a claim about an answer key.

Start here: DIA and DDA fundamentals with open search engines · ~90 minutes · Python · builds on The 8 GB track

Open DIA and DDA fundamentals with open search engines in Colab Open DIA and DDA fundamentals with open search engines in Kaggle Open DIA and DDA fundamentals with open search engines in Binder

4 of 7 modules built, 2 specified and not built yet. Every built module, in order:

  1. DIA and DDA fundamentals with open search engines · ~90 minutes · Python
    Open DIA and DDA fundamentals with open search engines in Colab Open DIA and DDA fundamentals with open search engines in Kaggle Open DIA and DDA fundamentals with open search engines in Binder
  2. Quantitation, missing values and batch effects · ~120 minutes · Python
    Open Quantitation, missing values and batch effects in Colab Open Quantitation, missing values and batch effects in Kaggle Open Quantitation, missing values and batch effects in Binder
  3. Metabolomics feature detection and annotation · ~150 minutes · Python
    Open Metabolomics feature detection and annotation in Colab Open Metabolomics feature detection and annotation in Kaggle Open Metabolomics feature detection and annotation in Binder
  4. Integration: factor models for two omics layers · ~150 minutes · Python
    Open Integration: factor models for two omics layers in Colab Open Integration: factor models for two omics layers in Kaggle Open Integration: factor models for two omics layers in Binder
  5. Cross-modality QC and leakage traps · ~60 minutes · Python · in review (executed)
    Open Cross-modality QC and leakage traps in Colab Open Cross-modality QC and leakage traps in Kaggle Open Cross-modality QC and leakage traps in Binder

Every module, the lab in each, measured timings and rubric sizes: MODULES.md.


Why this programme, and why now

Three things are current, and each is dated.

Open, machine-learned DIA search is new. AlphaDIA, a modular open-source search framework for data-independent acquisition proteomics, appeared in Nature Biotechnology in the July 2026 issue (volume 44, issue 7), after going online on 21 October 2025. Its authors propose a search strategy they call DIA transfer learning, which uses fully predicted libraries. Two production search engines stand beside it in module 1: the open-source Sage, whose author reports that it matches the performance of state-of-the-art software tools while running an order of magnitude faster, and MSFragger, which is free for academic, non-commercial and educational use under an academic licence (not open source), and was reported in 2017 to be more than 100-fold faster than most existing proteome database search tools. Module 1 builds the small, readable version of what those engines do, and says where its toy stops.

The public archive is large and keeps growing. The 2025 update of the PRIDE database paper reports that submissions to the archive had reached on average around 534 datasets per month. Reprocessing other people's data is a normal way to work, and that makes two questions routine: which of your identifications are wrong, and what you are actually allowed to do with the files.

Every record carries its own terms. EMBL-EBI, which hosts PRIDE and MetaboLights, states that where it presents data generated by others it imposes no restriction beyond the data owner's. The ProteomeXchange guidelines (version 3.0.1, 13 October 2019) say the original submitter and the principal investigator are the owners of a submitted dataset. So the licence is a property of the record, and this programme keeps a ledger of it (below) instead of assuming one for the archive.

Every claim in these paragraphs is sourced, with a primary URL, an access date and a verbatim quote, in claims.yaml.


Who this is for

  • Proteomics data analysts and bioinformaticians in a proteomics core facility, who run a search workflow every week and would like to know what its FDR number is a promise about.
  • Multiomics data scientists and computational biologists (integration), who receive matched proteomic, transcriptomic or metabolomic tables and have to decide what may be combined, and how to show that a biomarker is not a batch.
  • Mass spectrometrists and wet-lab proteomics students who want to see inside the software they depend on.
  • Method developers who need a small correct reference implementation to test an idea against.

This is a statement of who the programme is written for, not of who will get a job from it; the programme makes no claim about pay or hiring, and claims.yaml records why.


What a graduate can do

Concretely, and demonstrably, because each one is something they built and measured:

  1. Write the search engine, and say what it is not. Digest a proteome, compute fragment ions, score candidates by a hyperscore, and explain why a search engine always answers.
  2. Control the false discovery rate with decoys, and test the assumption. Compute q-values that treat ties honestly, and compare the estimate with the truth on a sample that has an answer key.
  3. Infer proteins by parsimony, and control error at the level you report. Show, by measurement, how many reported proteins are absent from the sample when error is controlled on peptides and when it is controlled on proteins, at the same promised rate.
  4. Say how a missing-value strategy changed a result (module 2), not merely which strategy was used.
  5. Report an annotation with its confidence level rather than a bare identification (module 3).
  6. Recover shared factors across modalities and check them against what is known (module 4).
  7. Audit a multiomics cohort for donor, batch and cross-modality leakage before any biomarker is reported (module 5), and count variant peptides that spectra actually support (module 6).

What a graduate cannot do, and this programme will not claim: publish a protein list from a real instrument on the strength of a simulated lab. What transfers is the method.


Prerequisites

  • lessons/T00-L01-the-8gb-track: the profiler and the tier gate. Required. Every module here declares a compute budget, and this is the lesson that teaches what a declared budget means. It is also the house introduction to how these lessons are shaped: stubs, public checks, an autograded rubric.
  • Python and numpy, at the level of writing an indexing expression without looking it up. No pandas, no scikit-learn, no scipy, no PyTorch: every estimator in this programme is built.
  • No biology beyond a sentence. Proteins are chains of amino acids and a mass spectrometer weighs their pieces. Where a lesson needs a term, it defines it where it is used.

Compute tier, and the honesty about data

Every module in this programme is cpu8: 8 GiB of RAM, 2 vCPU, no GPU, no network on any required path, under ten minutes. The exact figures for each built module are written into its meta.yaml by tools/execute.py from an actual run, never typed by its author, and appear in the generated table in MODULES.md.

Which data is generated, and which is third-party. Today, all of it is generated. Each lab builds its world from a fixed seed inside the notebook (a proteome, a sample, its spectra, and later intensity matrices, LC-MS scans, matched modalities and a cohort), declares it kind: synthetic in meta.yaml, and says so in the first screen of the notebook. Nothing in a generated world is claimed to describe a real organism, instrument, cohort or search.

Why not download the public data the catalogue names? Because the catalogue's first lab, reprocessing a public PRIDE DIA submission, means fetching raw instrument files. For scale: the raw file of the archive's first submission, PXD000001, which is a single LC-MS run, is 220,475,548 bytes in the archive's own file listing, and a study with more runs downloads more. A required path that needs a download is not a cpu8, no-network lesson. The other reason is the answer key, above. MODULES.md says, module by module, what replaces each public-data lab.

The dataset ledger

A third-party extract may enter this programme only through this ledger, before it is committed. The rule has four steps:

  1. Read the licence from the record itself (for PRIDE, the license field of the dataset's record in the archive's web service; for MetaboLights, the datasetLicense field of the study's record), on the day the extract is chosen.
  2. Enter it below with the date read, the accession and the module that uses it.
  3. Commit an extract only if that licence lets this repository, which is CC BY-NC-SA 4.0, carry it. Data under a share-alike licence such as CC BY-SA or ODbL is not committed as a derived extract; the lesson downloads it at run time, or does without.
  4. Put the licence text, source URL and any acknowledgement the licence requires in the lesson's assets/SOURCE.md and its meta.yaml datasets entry.

The rule exists because the licence is a property of the record: the PRIDE record for PXD000001 reads "EBI terms of use", the MetaboLights record for MTBLS1 reads "EMBL-EBI Terms of Use" and carries a revision comment about updating its data licence, EMBL-EBI says it adds no restriction beyond the data owner's, and the ProteomeXchange guidelines, dated 2019, describe a move towards CC0 as a minimum while the record's own field is the current statement. The same guidelines give CC0 as the default licence of MassIVE, the other public archive the catalogue names; no MassIVE dataset is used here, and one would enter through this ledger in the same way, its terms read from its own record on the day it is chosen. Sources for each are in claims.yaml.

Dataset Used by Licence field as read Read on Committed here?
Generated worlds (every module's own seeded simulator) modules 1 to 7 not applicable - generated at run time by the lesson itself n/a n/a: nothing is stored
PRIDE Archive PXD000001, read as a worked example of the rule none EBI terms of use 2026-09-29 no
MetaboLights MTBLS1, read as a worked example of the rule none EMBL-EBI Terms of Use 2026-09-29 no

No third-party dataset is committed anywhere in this programme. The two accession rows record what the rule looks like when applied, not data that a module uses; a real row is added, with its own accession and date, before a real extract is.


The modules

Seven, from the catalogue's six modules and its capstone. MODULES.md carries each lab, what the student measures, and where this programme departs from the catalogue's wording.

  1. DIA and DDA fundamentals with open search engines: a search engine, target-decoy error control and protein inference from scratch. Built first.
  2. Quantitation, missing values and batch effects.
  3. Metabolomics feature detection and annotation.
  4. Integration: factor models for two omics layers.
  5. Cross-modality QC and leakage traps.
  6. Proteogenomics: variants to protein evidence.
  7. Capstone: a reproducible multiomics integration of one cohort, shipped with a QC and leakage audit and a biomarker shortlist that survives negative controls.

Status

MODULES.md is this programme's map. Its status list is generated from the lessons themselves by tools/status.py: a module reads built only when its lesson exists, passes every gate in QUALITY.md and has been independently reviewed, and every other row says specified. No count is typed here, so none can go stale.

programmes/proteomics-multiomics/
├── README.md        this file, with the dataset ledger
├── MODULES.md       the module map, with its generated status table
├── claims.yaml      every claim above, with a primary source
└── lessons/         one directory per built module
For maintainers

These commands run in the maintainers' source, which holds the worked solutions and the rubrics; this repository has neither, by design. run a lesson's gates from the repository root, for example the opening one:

python tools/execute.py programmes/proteomics-multiomics/lessons/P07-L01-search-engine-and-fdr --write-back
python tools/grade.py  programmes/proteomics-multiomics/lessons/P07-L01-search-engine-and-fdr --solution
python tools/grade.py  programmes/proteomics-multiomics/lessons/P07-L01-search-engine-and-fdr

Synapsa Commons · © 2026 RealAI · licensed under CC BY-NC-SA 4.0. You may use this material to learn and to teach, and copy, fork, share and adapt it. You must credit "Synapsa Commons by RealAI" with a link to https://github.com/TarrySingh/Artificial-Intelligence-Deep-Learning-Machine-Learning-Tutorials, say what you changed, and share adaptations under the same licence. You may not use it, or anything adapted from it, for commercial advantage or payment; for a commercial licence, contact RealAI. The full summary is in NOTICE; the licence's legal code governs.