Hi there, I’m new to this so trying to work through a few things and running into some issues.
I have 120 samples that have undergone sequencing using the Illumina NextSeq 2000 platform (300 bp paired-end sequencing chemistry), targeting ITS: ITS1F - ITS2. I am trying to taxonomically classify my data for downstream functional classification using FUNGuild.
I am using QIIME 2 version 2025.10 and conda version 25.11.0. I have made a manifest file and imported my raw reads/turned them into an artifact, then visualised the quality. I know I need to truncate, but am under the impression that I should trim my sequences first to the ITS1 region using ITSxpress before performing denoising with DADA2. Is this correct?
When trying to extract just the ITS1 region with ITSxpress, I keep running into this error: (1/1) Invalid value for '--i-per-sample-sequences': its-demux.qza was created
by 'QIIME 2025.10.1'. The currently installed framework cannot interpret
archive version '7.1'. I assume this is an incompatibility error with the versions of either QIIME, conda or ITSxpress I have installed?
After successfully carrying out the ITSxpress function, I planned to denoise with DADA2, truncating to f290 and r285, but not trimming. Is this corrrect?
Then, I am planning on using a pre-trained classifier to assign taxonomy using UNITE. I am unclear here whether I can use ASVs or if I need to cluster to 97% OTUs. Are ASVs compatible with this workflow? How would I adapt my code to suit them, rather than OTUs?
Also, I keep coming across HMMER and Vsearch, but am unsure how this plays into the code? I know Vsearch is used to cluster my OTUs, but if I can use ASVs, is it still relevant? I’m sorry if some of these are silly questions.
I’ve attached my quality reads and also my code. I’ve also linked the tutorials and forum posts I’ve been following. I would really appreciate any help!
# Activate QIIME
conda activate qiime2-amplicon-2025.10
# Update conda (from 25.7.0 to 25.11.0)
conda update -n base -c conda-forge conda
# Make manifest file
nano ITS_manifest.sh
# Paste into nano
#!/bin/bash
# Directory containing ITS reads
READ_DIR="/Users/lowelabshared/Desktop/Madi/Madi_Data_AGRF-selected/AGRF_DVPROCAGRF25060388-2_AAHFYLYM5-ITS-Fungi"
OUTPUT="ITS-manifest.tsv"
echo -e "sample-id\tforward-absolute-filepath\treverse-absolute-filepath" > $OUTPUT
for r1 in {READ_DIR}/\*\_R1.fastq.gz
do
r2="{r1/_R1.fastq.gz/_R2.fastq.gz}"
filename=$(basename "r1")
sample=(echo "$filename" | cut -f1 -d"_")
echo -e "{sample}\\t{r1}\t${r2}" >> $OUTPUT
done
# Make executable (generates ITS-manifest.tsv)
chmod +x ITS_manifest.sh
# Run it
./ITS_manifest.sh
# Check top of manifest
head ITS-manifest.tsv
# Import raw reads & turn into artifact
qiime tools import \
--type 'SampleData[PairedEndSequencesWithQuality]' \
--input-path ITS-manifest.tsv \
--output-path its-demux.qza \
--input-format PairedEndFastqManifestPhred33V2
# Visualise quality
qiime demux summarize \
--i-data its-demux.qza \
--o-visualization its-demux.qzv
# Download ITSxpress
conda env create -n qiime2-amplicon-2024.10 --file https://data.qiime2.org/distro/amplicon/qiime2-amplicon-2024.10-py310-osx-conda.yml
conda activate qiime2-amplicon-2024.10
conda install -c bioconda -c conda-forge ITSxpress
qiime dev refresh-cache
# Check to see ITSxpress plugin is installed
qiime itsxpress
# Extract ITS1 region with ITSxpress
qiime itsxpress trim-pair-output-unmerged \
--i-per-sample-sequences its-demux.qza \
--p-region ITS1 \
--p-taxa F \
--p-cluster-id 1.0 \
--p-threads 8 \
--o-trimmed its1-trimmed.qza
ERROR RETURNED HERE
PLANNED CODE FROM HERE ON
# Denoising with DADA2
qiime dada2 denoise-paired \
--i-demultiplexed-seqs its-demux.qza \
--p-trunc-len-f 290 \
--p-trunc-len-r 285 \
--o-table its-dada2-table.qza \
--o-representative-sequences its-dada2-repseqs.qza \
--o-denoising-stats its-dada2-stats.qza
# Visualise data for inspection
qiime feature-table summarize \
--i-table dada2out/table.qza \
--o-visualization tableviz.qzv
qiime itsxpress trim-paired \
--i-per-sample-sequences its-demux.qza \
--p-region ITS1 \
--p-threads 8 \
--o-trimmed its1-trimmed.qza
# Cluster to 97% OTUs?
qiime vsearch cluster-features-de-novo \
--i-sequences its-dada2-repseqs.qza \
--i-table its-dada2-table.qza \
--p-perc-identity 0.97 \
--o-clustered-table its-otu-table.qza \
--o-clustered-sequences its-otu-repseqs.qza
# Assign taxonomy using UNITE
qiime feature-classifier classify-sklearn \
--i-classifier unite-its1-classifier.qza \
--i-reads its-otu-repseqs.qza \
--o-classification its-taxonomy.qza
Instructions/tutorials I’ve been following:



