This README contains the steps of the workflow associated with the manuscript Disease-specific loss of microbial cross-feeding interactions in the human gut, from quality control to visualization of final results.
Note that the intermediate files (e.g. metabolic exchanges obtained wth MICOM) and input files for the R scripts can also be found in the Zenodo repository.
version 1.2.1
- Quality control
QC - Read quality with TrimGalore! (Krueger) This will remove Illumina adapters and low-quality sequences. Illumina’s Genome Analyser also uses Sanger quality encoding (Phred), so no need to worry. Minimum len = 80bp. and minimum phred = 25.
trim_galore --paired --length 80 --quality 25 --cores 4 --output_dir 01_CleanReads --fastqc 00_ENA_downloads/ERRxx.fastq.gz 00_ENA_downloads/ERRxx.fastq.gz
Remove human reads (use python script for batch analyses) - Bowtie2 (Langmead 2012)
bowtie2 -p $th -x $db -1 01_CleanReads/ERR1190655_1_val_1.fq.gz -2 01_CleanReads/ERR1190655_2_val_2.fq.gz --un-conc 02_Host_Removed/ERRxx > 02_Host_Removed/ERRxx.sam.temp
Rarefy sequences
seqtk sample -s 8 02_Host_Removed/ERRxx.1 15000000 > 03_Rarefied/ERRxx_R1.fq
- Metagenome assembly and binning
We performed sequence assembly on individual samples using Megahit (Li et al 2015)
megahit -t 12 --presets meta-sensitive --verbose --min-contig-len 1000 -1 {input.R1} -2 {input.R2} -o {params.out_folder}_tmp
See ‘Assembly_Binning/1_megahit/’ folder for the Snakemake workflow.
We then performed co-binning of samples in two batches (Sup. table S1) using the workflow suggested for VAMB.
VAMB (Nissen et al 2021) was run with default parameters:
vamb --outdir 2_vamb --fasta {input.contigs} --jgi {input.jgi} -p 12 -o C -m 2000 --minfasta 500000
See ‘Assembly_Binning/2_vamb/’ folder for the Snakemake workflow.
- MAGs QC, classification and abundance
CheckM (Parks 2015) was used to evaluate the completeness and contamination of the bins:
checkm lineage_wf -f + out_file + -t 8 -x fna + in_folder + + out_folder
The High quality bins (>90% completeness and < 5% contamination) were dereplicated with dRep (Olm et al 2017):
dRep dereplicate 1_drep_genomes -g 0_all_HQ_bins/*.fna --genomeInfo checkm_all.csv -p 24 -pa 0.95 --SkipSecondary
Taxonomic classification was performed with GTDBtk (Chaumeil
et al 2019):
gtdbtk classify_wf --genome_dir 4_Classification/temp_bins_0 --out_dir 4_Classification/gtdb.outdir.0 --cpus 64
To estimate the abundance of the species-level MAGs in ecah
sample, we used KMA (Clausen et al 2018).
#index database:
kma index -i 0_merged_bins_renamed.fas -o MAGs_db_sparse -NI -Sparse TG
#run KMA:
kma -ipe $in_file_f $in_file_r -o $out_file -t_db $db -t 3 -1t1 -mem_mode -and -apm p -ef -tmp KMA_temp
- Genome-scale metabolic models
We then built genome-scale metabolic models for each species-level MAG with CarveMe (Machado et al 2018), using their domain classification (Bacteria or Archaea) as parameter for their universe.
carve {input.bin} --gapfill western_diet_gut --mediadb {input.media} -u {params.domain} -v -o {output}
- Community-wide modelling with MICOM (Diener et al
2020)
First make a txt file with sample names in the 0_MAGs_tables folder (ls -1 > all_samples.txt). Remove the “.csv” from all lines & “all_samples” from first line.
screen -L -S micom
mkdir -p z_snakemake_logs
conda activate snakemake_cplex
snakemake --snakefile MICOM_Snakefile_grow.py --latency-wait 60 --cluster 'sbatch --output=z_snakemake_logs/%j.out --error=z_snakemake_logs/%j.out -t {resources.time_min} --mem={resources.mem_mb} -c {resources.cpus} -p short,comp' -j 900 -np
- Metabolite Exchange Scoring System for
Interdependence (MESSI)
Calculate number of producers and consumers per metabolite
python3 MetModels_producers_consumers_per_rxn.py -f 2_exchanges -o 3_parsed_exchanges/producers_consumers.csv
Then process the output files in R with the scripts in folder ‘MES/Differences_in_MES’
MESSI == (2 x ((n_produc * n_cons)/(n_produc+n_cons)))
Panel a: The tree file was generated with GTDBtk de novo workflow (Chaumeil et al 2020), and visualized with iTOL (Letunic & Bork 2021).
Scripts to reproduce panels b and c are in ‘MES/Differences_in_MES’ folder.
See ‘Figure2b_metabolite_imp_healthy.R’ script to reproduce panel b
See ‘Figure2c_MES_barplots_all.R’ script to reproduce the panel c
- Crohn’s disease (CD)
Calculate flux considering species abundances (done in HPC)
smux new-session --time=6:00:00 --mem=200G --partition=short,comp
python3 MetModels_summarize_net_produc.py -f 2_exchanges -o 3_parsed_exchanges/net_produc_consump_merged.csv
python3 MetModels_summarize_total_produc_consump.py -f 2_exchanges -kma 1.1_merged_kma_simplified4summarize_production_consumption.csv -op 3_parsed_exchanges/total_production.csv -oc 3_parsed_exchanges/total_consumption.csv
Note that net production here is a table with net production / consumption of metabolites by the microbiome -> these are the exchanges with the media (“_m”), as they indicate the “excess” of metabolites that are released or consumed from the environment. The values are already corrected for species’ relative abundance.
Statistics for H2S production and consumption are detailed within the R scripts (scripts in CD+_focus/R_graphs/xxx.R)
- Network analyses for CD:
From metadata, produce 2 files containing prefixes of samples of CD and Healthy individuals . It is important to have the same number of samples in healthy and diseased cohort here, so I am using all 38 samples from the healthy cohort that worked and 38 samples from the CD cohort (randomly deleted other samples)
In HPC, produce nodes and edges file:
./MetModels_create_global_network_from_list.py -if 2_exchanges/ -s He_CD_prefixes_rarefied.txt -m h2s_e -sp wanted_spp_classification.tsv -on 4_nodes_edges_He2017/He_CD_nodes.csv -oe 4_nodes_edges_He2017/He_CD_edges.csv
./MetModels_create_global_network_from_list.py -if 2_exchanges/ -s He_healthy_prefixes_all_that_worked.txt -m h2s_e -sp wanted_spp_classification.tsv -on 4_nodes_edges_He2017/He_healthy_nodes.csv -oe 4_nodes_edges_He2017/He_healthy_edges.csv
The output of these scripts can be processed with R (scripts in CD+_focus/R_graphs/xxx.R) to identify a consortium of microbes with promising therapeutic potential.
If you have any questions please get in touch:
vmarcelino-at-unimelb.edu.au