The demulticoder
package is a
Cutadapt
and
DADA2
wrapper package for metabarcodng
analyses. The main commands and outputs are intuitive and comprehensive,
which helps to account for the complex and iterative nature of
metabarcoding analyses.
Here is a brief schematic of the general workflow:
DADA2
to
analyze data derived from multiple metabarcodes.Dependencies:
First install Cutadapt
program following
the instructions here: https://cutadapt.readthedocs.io/en/stable/installation.html
Let’s locate where the Cutadapt
executable is. You must do this from a Terminal
window:
#If you installed with pip or pipx, or homebrew, run this command from a Terminal window
which cutadapt
cutadapt --version
If you followed the Cutadapt
installation instructions to create a conda environment called cutadapt
(change to whatever you named your environment), to install it in, open
up a Terminal window and type these commands:
#Run commands from a Terminal window
conda activate cutadapt
which cutadapt
cutadapt --version
Second, make sure the following R packages are installed:
DADA2
(Latest version is 3.20)
phyloseq
metacoder
(Available through
CRAN)To install the development version of package (while submission to CRAN is in progress):
#Here we install demulticoder (instructions will be updated once available through CRAN)
::install_github("grunwaldlab/demulticoder")
devtoolslibrary("demulticoder")
#Let's make sure other packages are loaded:
library("devtools")
library("dada2")
library("phyloseq")
library("metacoder")
1. Set-up input directory and files
To demonstrate how to use the package, we have a small test data set that comes loaded with the package. This data set will be used in the workflow example below.
Already loaded in the test data set directory are the following files:
metadata.csv
primerinfo_params.csv
Cutadapt
and
DADA2
parametersSee Documentation for how to format databases and input files.
For more details on each step, check out the Getting Started tab on the package website
2. Prepare reads
<-prepare_reads(
outputdata_directory = system.file("extdata", package = "demulticoder"), # This allows us to use the test directory located within the package
output_directory = tempdir(), # Change to you preferred location on your local computer (Example: "~/demulticoder_test")
overwrite_existing = TRUE)
3. Cut and trim reads
User must install Cutadapt
on their local
machine and append the path to the executable.
cut_trim(
output,cutadapt_path="/usr/bin/cutadapt", # Change to the location on your computer. (Example: "/usr/bin/cutadapt")
overwrite_existing = TRUE)
4. Make ASV abundance matrix
make_asv_abund_matrix(
output,overwrite_existing = TRUE)
5. Assign taxonomy
assign_tax(
output,
asv_abund_matrix,overwrite_existing = TRUE)
6. Convert ASV matrix to taxmap and phyloseq objects
<-convert_asv_matrix_to_objs(output) objs
For more information on source code, check out the package repository: https://grunwaldlab.github.io/demulticoder/
https://github.com/grunwaldlab/demulticoder/
The package was developed by Martha Sudermann, Zachary Foster, Samantha Dawson, Hung Phan, Jeff Chang, and Niklaus Grünwald
Sudermann MA, Foster ZSL, Dawson SCL, Phan H, Fieland VJ, Martin FN, Chang JH, Grünwald NJ. Demulticoder: An R Package for the Simultaneous Analysis of Multiplexed Metabarcodes. Phytopathology. 2025. 10.1094/PHYTO-02-25-0043-FI. Epub ahead of print.