waldronlab / waldronlab/agent-protocols
Protocol: compute the oral-to-gut enrichment score for new samples
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 0
- Forks
- 1
- Avg merge
- 1h 2m
- Merged PRs (30d)
- 9
Description
Tier: D (cMD paper — headline result) · Type: atomic · Category: Statistical Analysis
What
Given the published list of oral-typical species and a new set of gut samples, compute each sample's oral-to-gut enrichment score. The species list is a fixed input to this protocol, not something it derives.
Why it matters
This reframing came out of review, and it is the difference between a protocol people can use and one only the authors can run. The score's value to an outside group is that it is the same score as the paper's — applied to their cohort. Re-deriving the species list from their own data would produce a different, incomparable index and quietly defeat the purpose.
So: the 305-species list is materials, pinned and versioned, exactly the way a reference database is materials in the HUMAnN protocols already in this repository. Re-deriving it is a separate protocol, for the separate occasion when the list itself needs updating — and that protocol is now general, so the same machinery can define a skin, vaginal or population-specific reference set and score against it.
Source material
waldronlab/curatedMetagenomicDataAnalyses—python_tools/oral_introgression_score.py(compute_oral_score, and thesimple=Truevariant),cMD3_paper_analyses/oral_enrichment/02-oral_enrichment.py,03-superframe_to_stats.py- Applied in: 10.1038/s41467-025-66888-1
Scope
In: the species list as a pinned, versioned input with its provenance recorded; the scoring formula; the difference between the simple and full variants and when each applies; the abundance scale the score is computed on and whether it requires the transformation protocol; what to do when a reference species is absent from or unmeasurable in the target dataset — different taxonomic databases and profilers will not all resolve all 305, and the protocol must define whether those are treated as zero, dropped with renormalization, or grounds for refusing to score; the sample-level QC required before a score is meaningful.
Out: deriving the species list — that is prevalence-based-reference-species-set, now stated generally enough to define a reference set for any body site or sample group; testing associations between the score and an outcome (use the meta-analysis protocols); the Mann-Whitney comparison, which is a generic test better specified elsewhere.
Frontmatter starting point
type: "atomic"
category: "Statistical Analysis"
citation: "10.1038/s41467-025-66888-1" # legitimate here — this paper did propose the score
tags: [oral-gut, enrichment-score, introgression, microbiome, scoring]
One of the few protocols in the batch where the cMD paper genuinely is the originating literature, because the score is that paper's own contribution. Contrast with its neighbours, where it is only an application.
Acceptance criteria
- The species list is an input with a version and a retrieval location, never recomputed
- Missing / unresolvable reference species have a defined, justified behavior
- Both scoring variants are defined with guidance on which to use
- A score computed on the paper's own data reproduces the published values
Cite the method's origin, not its users
PROTOCOL_STANDARD.md is explicit: an atomic protocol carries "strictly 1 citation... corresponding
to the primary literature where the method was originally published." Find the paper that proposed
the method. Do not cite a paper that merely applied it — including the BugSigDB and curatedMetagenomicData
papers, which are the source of the analysis these protocols were extracted from but almost never the
source of the method.
Tracing a method back to its first publication is real work, and it is part of the task, not a
formality. Three things to expect:
- Candidate DOIs in this issue are leads, not answers. Anything marked VERIFY has not been checked.
- Some methods predate modern citation practice or have no single identifiable origin. If that is
genuinely the case, say so in the pull request rather than reaching for a convenient recent paper.
Raise it as an issue inwaldronlab/agent-protocol-standard— the standard may need a way to express
"classical method, no primary source". - If you cannot name one paper that proposed everything the protocol does, it is more than one
protocol. That test has now split four protocols out of this batch: enrichment into three methods,
filtering from transformation, LODO from random forest, and PERMANOVA from ANOSIM.
Where the lab's own paper genuinely did propose the method — the oral-to-gut score, and LODO
cross-validation in Pasolli et al. 2016 — citing it is correct. That is the exception, not the pattern.
Before you start
Read CONTRIBUTING.md and
PROTOCOL_STANDARD.md.
The format is defined in the standard repo, not this one. Protocols are prose, not code: they say what to do
and why, precisely enough that two people — or two agents, in two languages — get the same answer. The existing
independent-filtering-variance
protocol is the model to imitate for tone and level of detail.
Validate locally before opening the PR:
git clone https://github.com/waldronlab/agent-protocol-standard.git
Rscript agent-protocol-standard/scripts/validate-protocol.R protocols
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read CONTRIBUTING.md, PROTOCOL_STANDARD.md, and protocols/independent-filtering-variance/protocol.md first. Inspect python_tools/oral_introgression_score.py and the two cMD3_paper_analyses/oral_enrichment scripts for the scoring variants and published-data comparison. Done means a prose protocol defines the pinned input, missing-species behavior, QC, both variants, and reproduction criterion, then passes Rscript agent-protocol-standard/scripts/validate-protocol.R protocols.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, r
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100