Assigning Taxonomy with the Silva Classifier

Hello, I'm trying to assign taxonomy using the Silva classifier files I obtained from the rescript command as well as other sources, however I get the following error :

"Invalid value for '--i-classifier': Expected an artifact of at least
type TaxonomicClassifier. An artifact of type FeatureData[Sequence] was
provided."

Script I used to obtain Silva files:
qiime rescript get-silva-data --p-version '138.2' --p-target 'SSURef_NR99' --o-silva-sequences silva-138.2-ssu-nr99-rna-seqs.qza --o-silva-taxonomy silva-138.2-ssu-nr99-tax.qza

However, I've tried several classifier file alternatives from downloads and they all give the same error (e.g., silva-138-99-seqs, silva-138-99-seqs-515-806, silva-138-99-tax-515-806, silva-138-99-tax)

Example code

qiime feature-classifier classify-sklearn --i-classifier silva-138.2-ssu-nr99-seqs.qza --i-reads representative-sequences.qza --o-classification taxonomy_silva.qza

I'm guess I'm still not picking the correct classifier file or doing something else wrong. It works when I use the green genes example but I just can't repeat it with a Silva classifier

Thank you!

Hello!

The issue is that you need a classifier, not only the sequences that you downloaded with RESCRIPt. If you just want to use the full length classifier, you can download one from the resources page.
If you want to train your own classifier, please follow the instructions here.
Best,

2 Likes

Do any of these pre-trained classifiers work without going through all of the steps to build my own classifier?

Pre-trained classifiers: Data resources — QIIME 2 2024.2.0 documentation

Yes, they will work. They are already trained and ready to use. Usually, if one wants to use classifier that is trained on the same region that is targeted in the dataset (V3-V4, V4 or other), then it is better to train your own classifier. Another option is to use full-length classifier that is already trained (entire 16S rRNA).
Trained on the same region classifier are a little bit better, but recently developers of Qiime2 stated in one of the posts here that the difference in the performance is not so great, so one can use full length classifiers

Ok, I tried with the full length 16S classifier but I got the same error: (1/1) Invalid value for '--i-classifier': silva-138-99-nb-classifier.qza is
not a QIIME archive.

Code: (qiime2-amplicon-2024.10) [jcunder@login2 SonomaWildfire]$ qiime feature-classifier classify-sklearn --i-classifier silva-138-99-nb-classifier.qza --i-reads represent
ative-sequences.qza --o-classification taxonomy_silva.qza

It didn't work with the 515F and 806R classifier either. Maybe this means I have no other choice than to train my own classifier?

1 Like

But errors are different. First time it was the wrong type of the file, now Qiime2 can't recognize the file.

Looks like you should try following:

  • In your previous comment, you provided link to the classifier trained for version 2024.2. On your last comment, you use version 2024.10. Did you try to download classifier for the same version you are using?
  • Sometimes you need to change permissions of the classifier that you download:
    chmod 777 your-classifier.qza

Make sure that you indicate the right path to the classifier both in the Qiime2 command and while changing permissions.

Best,

1 Like