Skip to content
spakowiczlabPublic

About

Microbiome, Aging and Immunotherapy

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mageio hex sticker: a phylogenetic tree flowing into responder, non-responder, and unknown-or-mixed streams mageio




DOI

Microbiome, aging, and immunotherapy. This repository holds the code and frozen inputs for Figure 2 and for the trial-category percentages discussed with Table 1 in Spakowicz et al., Journal of Geriatric Oncology (2021).

Citation

Spakowicz D, Bibi A, Muniak M, Williams NF, Hoyd R, Presley CJ. The aging microbiome and response to immunotherapy: Considerations for the treatment of older adults with cancer. Journal of Geriatric Oncology. 2021 Jul;12(6):985–989. doi:10.1016/j.jgo.2021.02.001. Epub 2021 Feb 18. PMID:33612452. PMCID:PMC8717818.

The article is open access (CC BY 4.0). Correspondence in the paper is to Daniel Spakowicz (Daniel.spakowicz@osumc.edu), Division of Medical Oncology, The Ohio State University Comprehensive Cancer Center–James. Daniel Spakowicz and Carolyn J. Presley conceived the study. Mitchell Muniak, Amna Bibi, Nyelia F. Williams, and Daniel Spakowicz collected the data. Rebecca Hoyd, Amna Bibi, and Mitchell Muniak generated the figures and tables. Rebecca Hoyd created this code repository. Daniel Spakowicz drafted the manuscript, and all authors reviewed it.

Graphical abstract

Graphical abstract. Age shifts the gut microbiome toward an immunotherapy non-responder state: Bifidobacterium is lost and Proteobacteria are gained with age; Akkermansia, Bifidobacterium, and Ruminococcus support checkpoint response and are depleted in older adults; Escherichia and Parabacteroides are enriched with age and in non-responders. Of 25 microbiome-modification trials in August 2020, 16% focused on older adults. A feedback cycle links lifestyle, Proteobacteria, gut leak, and illness.

The abstract summarizes the argument of the paper. Panel 3 uses the category counts from scripts/trial-catergory-frequencies.R. The bottom band is the model in published Figure 1, which was drawn in BioRender and is not generated by code here. The dendrogram-and-flow mark on the hex sticker is a thumbnail of published Figure 2.

Repository layout

mageio/
├── mageio.Rproj
├── LICENSE
├── README.md
├── data/
│   ├── Table-S1_alluvial-diagram.xlsx    # Supplementary Table S1
│   ├── tnrs-matched-names_2020-11-20.csv  # Open Tree of Life name matches, frozen
│   └── tol-induced-tree_2020-11-20.txt    # induced subtree, Newick, frozen
├── scripts/
│   ├── dendrogram_alluvial.Rmd            # builds Figure 2
│   └── trial-catergory-frequencies.R      # category counts quoted with Table 1
└── figures/
    ├── dendruvial_2020-11-20.png          # Figure 2, tree and alluvial combined
    ├── hex-sticker.png                    # README mark, not a paper figure
    └── graphical-abstract.png             # README summary, not a paper figure

mageio.Rproj is an RStudio project. Paths in the R Markdown file are relative to scripts/ (../data, ../figures), so the project root is the working directory those paths expect. This is not an installable R package: there is no DESCRIPTION, R/, or NAMESPACE. The hex sticker uses the R package sticker format for the repository name.

Path Role
data/Table-S1_alluvial-diagram.xlsx Supplementary Table S1. One row per genus, with the age enrichment, the immunotherapy enrichment, and the references used for each call. Sheet 1 is the input to Figure 2.
data/tnrs-matched-names_2020-11-20.csv Taxonomic name resolution against the Open Tree of Life on 20 November 2020. A representative species stands in for each genus. Synonyms are already resolved (Clostridium difficile to Clostridioides difficile, Eubacterium lentum to Eggerthella lenta).
data/tol-induced-tree_2020-11-20.txt Newick tree induced from those Open Tree of Life identifiers on the same date.
scripts/dendrogram_alluvial.Rmd Reads the three data files and writes the two panels of Figure 2.
scripts/trial-catergory-frequencies.R Tallies how the 25 trials in Table 1 proposed to change the microbiome. The filename keeps the original spelling.
figures/dendruvial_2020-11-20.png The two panels placed side by side, which is how Figure 2 appears in the paper.
figures/hex-sticker.png Sticker for this README.
figures/graphical-abstract.png Graphical abstract for this README.
LICENSE MIT license for the code, copyright 2020 Spakowicz Lab.

Knitting the R Markdown also writes figures/tree.pdf and figures/alluvial_3-axes.pdf. Those PDFs are build products and are not committed. The combined PNG is the stored rendering of the published figure.

Scripts and the published figures

The paper’s reproducibility statement points here for Figure 2: the code that turns Supplementary Table S1 into that figure. Two other display items in the paper are easy to confuse with it.

In the paper What it shows Where it comes from
Figure 1. Summary of age-related effects on response to immunotherapy via the microbiome. Lifestyle (diet, exercise, medications) changes the gut community, especially the Proteobacteria fraction. That feeds a cycle of barrier leak, systemic inflammation, and age-related illness, including cancer treated with immunotherapy, which feeds back on the microbiome. Drawn in BioRender. No script in this repository builds it.
Figure 2. The gut microbes associated with aging and response to immune checkpoint inhibitors. A phylogenetic tree of the genera, joined to an alluvial of immunotherapy class and age class. scripts/dendrogram_alluvial.Rmd, from Supplementary Table S1 and the frozen Open Tree of Life files. Stored rendering: figures/dendruvial_2020-11-20.png.
Table S1. Enrichment of microbes in young and old, and in responders and non-responders, with references. The genus-level calls behind Figure 2. data/Table-S1_alluvial-diagram.xlsx.
Table 1. Clinical trials that aim to modify cancer outcomes via the microbiome. 25 trials as of August 2020, with NCT number, age range, description, site, investigator, status, and time frame. Typeset in the paper. This repository does not redraw the table.
Percentages in the paragraph after Table 1. Probiotic supplementation 24%, fecal microbiota transplantation 32%, diet 32%, lifestyle 12%. Four of the 25 trials (16%) restricted enrollment toward older adults. The 24/32/32/12 split is what scripts/trial-catergory-frequencies.R prints. The 16% figure is counted in the paper from the age-range column of Table 1; the script does not compute it.

Figure 2 — scripts/dendrogram_alluvial.Rmd

The R Markdown file does three things.

  1. It reads Supplementary Table S1 and keeps genera whose immunotherapy label and age label differ. Bacteroides is the row this drops (unknown or mixed on both axes). Each remaining genus is paired with a representative species, in alphabetical order, so the tree can be built from species that the Open Tree of Life recognizes. The frozen name match does not include every remaining genus: Lactonifactor is in the table but not in the 20 November 2020 file, so it is absent from the tree and the alluvial.

  2. It draws the dendrogram from the frozen Newick file, not from a live query. The calls to rotl::tnrs_match_names() and rotl::tol_induced_subtree() are left in the file as comments, with the CSV and Newick they produced on 20 November 2020. That keeps the topology stable when the Open Tree of Life taxonomy moves. ladderize() is called but its return value is not saved; ggtree() is then drawn with ladderize = FALSE, and tip order for the alluvial is taken from the edge list of that same tree. A handful of tip-to-genus labels that the name match did not carry through (Faecalibacterium, Enterococcus, Lactobacillus, Escherichia) are filled in by position in the script. The dendrogram is written to figures/tree.pdf (2.5 by 5 inches).

  3. It draws a three-axis alluvial with ggalluvial: genus, ordered to follow the tree; immunotherapy enrichment (NR, R, or U/M); and age enrichment (Y, O, or U/M). U/M is unknown or mixed. Fill color is the pair of those two labels:

Joint class Meaning Color in the script
NRY Non-responder, young orangered
NRU/M Non-responder, unknown or mixed sienna
NRO Non-responder, old firebrick
RY Responder, young royalblue
RU/M Responder, unknown or mixed steelblue
RO Responder, old navy
U/MY Immunotherapy unknown or mixed, young grey60
U/MO Immunotherapy unknown or mixed, old grey20

The alluvial is written to figures/alluvial_3-axes.pdf (5 by 5 inches). figures/dendruvial_2020-11-20.png places the tree on the left and the alluvial on the right.

Read that figure against the paper’s claim in the section “Relating the microbes associated with response to ICIs and age.” Akkermansia, Bifidobacterium, and Ruminococcus can modify checkpoint response in preclinical models and are depleted in older adults. Escherichia and other Proteobacteria, and several Bacteroidetes including Parabacteroides, are enriched both in non-responders and in older adults. Roseburia, in Table S1, is the non-responder genus associated with younger adults. Faecalibacterium, Enterococcus, and Alistipes are enriched in older adults and have also been linked to response. The largest share of genera is still unknown or mixed for age, immunotherapy, or both.

Table 1 percentages — scripts/trial-catergory-frequencies.R

The script does not query ClinicalTrials.gov. It encodes the 25 trials, plus one unclassified entry, as a character vector. Blank lines and the token ?? are dropped, which leaves 25 trials, the count given in the paper (“as of August 2020, we found 25 trials”). Each letter is one proposed way of changing the microbiome:

Letter Strategy in the paper Count Share
F Fecal microbiota transplantation 8 32%
D Diet 8 32%
P Probiotic supplementation 6 24%
L Lifestyle 3 12%

The letters are not named inside the script. They are the assignment that reproduces the sentence in the paper: probiotic supplementation (24%), fecal microbiota transplantation (32%), diet (32%), and lifestyle (12%). addmargins() and prop.table() print the counts and those proportions. Nothing is written to figures/.

Reproduce

Open mageio.Rproj so the working directory is the repository root, then knit scripts/dendrogram_alluvial.Rmd or source scripts/trial-catergory-frequencies.R.

The Figure 2 script loads readxl, tidyverse, rotl, ggtree, phylogram, phytools, ggalluvial, and Hmisc. ggtree is a Bioconductor package. read.tree() and ladderize() come from ape, which the tree packages import. Hmisc::capitalize() is used on genus labels. With the frozen CSV and Newick in place, the commented rotl calls do not need a network connection. The trial script needs tidyverse only (stringr and the pipe).

License

Code in this repository is released under the MIT license, copyright 2020 Spakowicz Lab. The journal article is published under CC BY 4.0.

About

Microbiome, Aging and Immunotherapy

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages