Taxonomic Classification Issues in Meiofauna Analysis using QIIME2 and SILVA 138 and 138.1

Hi, I am conducting a meiofauna analysis in beach sand. I have 192 samples. My samples were sequenced using the primers 18S F04mod: GCTTGWCTCAAAGATTAAGCC and R22mod: CCTGCTGCCTTCCTTDGA. I used the silva-138-99-nb-classifier.qza classifier from the resources page, and when I examine the taxonomy file, I get these strange results in some classifications:

d__Eukaryota;p__Peronosporomycetes;c__Peronosporomycetes;o__Peronosporomycetes;f__Peronosporomycetes d__Eukaryota;p__Labyrinthulomycetes;c__Labyrinthulomycetes;o__Labyrinthulomycetes;f__Thraustochytriaceae;g__Aplanochytrium;s__ . . . It seems that names belonging to groups are assigned as phylum. Is this normal? Is there any way to correct it?

I have also used a custom classifier using RESCRIP as follows:

qiime rescript get-silva-data \
    --p-version '138.1' \
    --p-target 'SSURef_NR99' \
    --o-silva-sequences silva-138.1-ssu-nr99-rna-seqs.qza \
    --o-silva-taxonomy silva-138.1-ssu-nr99-tax.qza

qiime rescript reverse-transcribe \
    --i-rna-sequences silva-138.1-ssu-nr99-rna-seqs.qza \
    --o-dna-sequences silva-138.1-ssu-nr99-seqs.qza

qiime rescript cull-seqs \
    --i-sequences silva-138.1-ssu-nr99-seqs.qza \
    --o-clean-sequences silva-138.1-ssu-nr99-seqs-cleaned.qza

qiime rescript filter-seqs-length-by-taxon \
    --i-sequences silva-138.1-ssu-nr99-seqs-cleaned.qza \
    --i-taxonomy silva-138.1-ssu-nr99-tax.qza \
    --p-labels Eukaryota \
    --p-min-lens 1400 \
    --o-filtered-seqs silva-138.1-ssu-nr99-seqs-filt.qza \
    --o-discarded-seqs silva-138.1-ssu-nr99-seqs-discard.qza

qiime rescript dereplicate \
    --i-sequences silva-138.1-ssu-nr99-seqs-filt.qza \
    --i-taxa silva-138.1-ssu-nr99-tax.qza \
    --p-mode 'uniq' \
    --o-dereplicated-sequences silva-138.1-ssu-nr99-seqs-derep-uniq.qza \
    --o-dereplicated-taxa silva-138.1-ssu-nr99-tax-derep-uniq.qza

qiime feature-classifier fit-classifier-naive-bayes \
  --i-reference-reads silva-138.1-ssu-nr99-seqs-derep-uniq.qza \
  --i-reference-taxonomy silva-138.1-ssu-nr99-tax-derep-uniq.qza \
  --o-classifier silva-138.1-ssu-nr99-uniq-classifier.qza

And I get the same results.

This is my first time using qiime2 and I am not very familiar with it yet, so I don't know if this is normal or if I am making a mistake.

Hi @Pepe_Calderon ,
Welcome to the forum! Could you please run the following commands and share the QZV outputs here?

qiime metadata tabulate \
    --m-input-file silva-138.1-ssu-nr99-tax.qza \
    --o-visualization silva-138.1-ssu-nr99-tax.qzv

qiime metadata tabulate \
    --m-input-file silva-138.1-ssu-nr99-tax-derep-uniq.qza \
    --o-visualization silva-138.1-ssu-nr99-tax-derep-uniq.qzv


1 Like

Hello, I am sharing the requested files and the file "Euka-uniq-taxonomy.qzv," where I observed the issue mentioned earlier. This file was generated after running the following commands:

qiime feature-classifier classify-sklearn
--i-classifier /home/lab510/qiime2/silva/16S_18S/silva-138.1-ssu-nr99-Euka-uniq-classifier.qza
--i-reads PE-rep-seqs.qza
--p-confidence 0.9
--o-classification Euka-uniq-taxonomy.qza

qiime metadata tabulate
--m-input-file Euka-uniq-taxonomy.qza
--o-visualization Euka-uniq-taxonomy.qzv
Thank you.

1 Like

Hi @Pepe_Calderon ,

Thank you for sharing. This is expected behavior. By default, when taxonomic information in SILVA is missing at a particular rank, the get-silva-data action will fill that empty rank by propagating the taxonomic information from the previous rank. In this case it looks like those clades have no class or order information, so the phylum label (Labyrinthulomycetes) is being propagated to those ranks.

The confusing thing to me is that Labyrinthulomycetes is not a phylum, it is a class as far as I am aware, but it looks like this is how it is listed in SILVA for these accessions.

You can disable rank propagation by using the --p-no-propagate-option with the get-silva-data action, if you want to keep the empty ranks instead. You can also adjust which ranks you want to use with the --p-ranks parameter, if desired.

Good luck!

1 Like