knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  message = FALSE
)
library(MiscMetabar)

Re-clustering ASVs

ASV (stands for Amplicon Sequence Variant; also called ESV for Exact Amplicon Variant) is a DNA sequence obtained from high-throughput analysis of marker genes. OTU are a group of closely related individuals created by clustering sequences based on a threshold of similarity. An ASV is a special case of an OTU with a similarity threshold of 100%. A third concept is the zero-radius OTU zOTU [@edgar2016] which is the same concept than ASV but compute with other softwares than dada (e.g. vsearch).

The choice between ASV and OTU is important because they lead to different results (@joos2020, Box 2 in @tedersoo2022, @chiarello2022). Most articles recommend making a choice depending on the question. For example, ASV may be better than OTU for describing a group of very closely related species. In addition, ASV are comparable across different datasets (obtained using identical marker genes). On the other hand, [@tedersoo2022] report that ASV approaches overestimate the richness of common fungal species (due to haplotype variation), but underestimate the richness of rare species. They therefore recommend the use of OTUs in metabarcoding analyses of fungal communities. Finally, [@kauserud2023] argues that the ASV term falls within the original OTU term and recommends adopting only the OTU terms, but with a concise and clear report on how the OTUs were generated.

Recent articles [@forster2019; @antich2021; @brandt2021] propose to use both approach together. They recommend (i) using ASV to denoise the dataset and (ii) for some questions, clustering the ASV sequences into OTUs. [@garcia2019] used both concept to demonstrate that ecotypes (ASV within OTUs) are adapted to different values of environmental factors favoring the persistence of OTU across changing environmental conditions. This is the goal of the function asv2otu(), using either the DECIPHER::Clusterize function from R or the vsearch software.

Using decipher or Vsearch algorithm

data(data_fungi_sp_known)
otu <- asv2otu(data_fungi_sp_known, method = "clusterize")
otu_vs <- asv2otu(data_fungi_sp_known, method = "vsearch")

The vsearch method requires the installation of Vsearch.

summary_plot_pq(data_fungi_sp_known)
summary_plot_pq(otu)

Using lulu algorithm (link to LULU article)

Another post-clustering transformation method is implemented in lulu_pq(), which uses @froslev2017's method for curation of DNA amplicon data. The aim is more to clean non-biological information than to make explicitly less clusters. For examples, [@brandt2021] clustered amplicon sequence variants (ASVs) into operational taxonomic units (OTUs) with swarm and choose to curate ASVs/OTUs using LULU.

data(data_fungi_sp_known)
lulu_res <- lulu_pq(data_fungi_sp_known)
summary_plot_pq(data_fungi_sp_known)
summary_plot_pq(lulu_res$new_physeq)

Tracking number of samples, sequences and clusters

track_wkflow(list(
  "Raw data" = data_fungi_sp_known,
  "OTU" = otu,
  "OTU_vsearch" = otu_vs,
  "LULU" = lulu_res[[1]]
))

Session information

sessionInfo()

References



adrientaudiere/MiscMetabar documentation built on July 6, 2024, 7:02 p.m.