ITS Tutorial qiime feature Taxonomic Analysis

So there are several solutions how you can solve it:

  1. To search for a newer classifier on this forum (not sure if it is here) and use it or ask someone to train it for you.
  2. Download reference sequences and reference taxonomy from the according database and train the classifier yourself
  3. Download classifier for one of the previous versions of Qiime2 and perform all the analysis in older version of Qiime2

Dear all,

Can anyone let me know the tutorial for ITS analysis? I tried these commands below and did not work in the version 2019.7

qiime feature-classifier classify-sklearn
–i-classifier silva-132-99-nb-classifier.qza
–i-reads rep-seqs.qza
–o-classification taxonomy.qza
This one above generated an output with the bacterial taxonomy (not my target)

qiime feature-classifier classify-sklearn
–i-classifier unite-ver7-99-classifier-01.12.2017.qza
–i-reads rep-seqs.qza
–o-classification taxonomy.qza
Not match to this version.

Please let me know where I can download the new classifier for the ITS and the correct command to run the qiime feature-classifier

Well, silva doesn’t have sequences for ITS as I know, so I suggest you to use unite instead.

I did some analysis with unite and results were close enough to the expectation.

Other than all of this, if your hardware is good enough, I also suggest you to train your classifier with the Q2 version you use, because there might be an update to a q2-plugin and this causes an error when you run an analysis. If not, you can check forum posts, someone should have sent it for 2019.7, since you haven’t switched to 2019.10, you can use them. You can check this tutorial to train your own classifier.

1 Like

This command fails because you are using the wrong type of input — you are inputting a trained classifier instead of a FeatureData[Taxonomy] artifact.

This fails because you are downloading an old classifier from the forum, which was trained using an older version of QIIME 2 (probably 2019.1). So you have two options:

  1. Install QIIME 2 2019.1 in a separate conda environment and use that to use that pre-trained classifier.
  2. Download the UNITE sequences and train your own classifier. In fact, that tutorial gives all the steps to train your own classifier so just follow those steps to train one with your current environment. That is the best way to make sure that you have an up-to-date pre-trained classifier.

Good luck!


qiime feature-classifier classify-sklearn --i-classifier unite-ver7-99-classifier-01.12.2017.qza --i-reads rep-seqs.qza --o-classification taxonomy.qza

Plugin error from feature-classifier:
The scikit-learn version (0.19.1) used to generate this artifact does not match the current version of scikit-learn installed (0.21.2). Please retrain your classifier for your current deployment to prevent data-corruption errors.

Debug info has been saved to /tmp/qiime2-q2cli-err-o8d38m00.log

I tried to install the old version 2019.1 but there are conflicts that is blocking the instaling. I have only the 2019.4, 2019.7 both failed with the above command.
Can anyone guide me on the qiime feature-classifier for these versions above?

2018.10 should work nicely

Older versions before the 2019.4, I cannot install. In such case I found this tutorial for the 2018.11.
qiime feature-classifier classify-sklearn
–i-classifier unite-ver7-99-classifier-01.12.2017.qza
–i-reads dada2-single-end-rep-seqs.qza
–o-classification taxonomy-single-end.qza

Can anyone guide me about the new version the command above, including the classifier for the 2019.7 or 2019.10? I tried the similar command and it says that the classifier is not suitable for this version.

UNITE ITS QIIME2 release->

After you download this, you can track the steps in this tutorial.

I used "dynamic" sequences and taxonomy for it but ofc you can try other things.

classifier.qza (1.0 MB)

This is the classifier I used with 2019.7. I haven't tried it with 2019.10, but you can check it and inform us as well.

If you go with this classifier, you can just use the command below with the rep-seqs.qza from your analysis.

qiime feature-classifier classify-sklearn
--i-classifier classifier.qza
--i-reads rep-seqs.qza
--o-classification taxonomy.qza


I used the classifier.qza above with the 2019.7, which worked well. However, the results were a little strange. Most of the sequences (99%), were shown up to level 1 in the taxonomy. And it reached the maximum to level 3 (class). I picked up some sequences from the rep-seqs.qzv and checked at BLAST search which showed up to specie level. I wonder if there is any other classifier to run with the command below

qiime feature-classifier classify-sklearn
–i-classifier classifier.qza
–i-reads rep-seqs.qza
–o-classification taxonomy.qza

I have already downloaded this one UNITE ITS QIIME2 release->

and checked this website

However, I just could not pickup the ITS classifier file (.qza) to be used in that command above. Could you please show me that?


In fact I also tried this one below but I got an error during the feature classifier again.

This one was OK

qiime tools import --type ‘FeatureData[Taxonomy]’ --input-format HeaderlessTSVTaxonomyFormat --input-path sh_taxonomy_qiime_ver7_dynamic_01.12.2017.txt --output-path ref-taxonomy.qza
Imported sh_taxonomy_qiime_ver7_dynamic_01.12.2017.txt as HeaderlessTSVTaxonomyFormat to ref-taxonomy.qza

The error appeared here. What was the issue?

qiime feature-classifier fit-classifier-naive-bayes --i-reference-reads rep-seqs.qza --i-reference-taxonomy ref-taxonomy.qza --o-classifier classifier.qza

Plugin error from feature-classifier:

not enough values to unpack (expected 2, got 0)

How long are your sequences? Either (a) your sequences are too short to reliably classify or (b) the classifier you used has something wrong with it. I cannot vouch for the classifier that @the_dummy posted if that is the classifier that you used.

As I noted above, you should really try training your own classifier (using the steps given in that tutorial!) to obtain the best results.

Well yes NCBI BLAST will always report the full taxonomic annotations of the top hits — that does not mean that those classifications are “correct” or can be reliably distinguished from other hits at species level. So this is really just a confirmation that your sequences are really fungal ITS (I am assuming NCBI BLAST reported fungal hits).

The taxonomy file you input contains either uneven ranks or formatting errors — you can search the forum archive for more details but the bottom line is don’t use that taxonomy file (or try finding the errors and fixing them).

If you would follow the download links and training steps in the tutorial I linked to above, this would not occur. But you are grabbing a different file from the one listed in that tutorial.

Please read the forum code of conduct:

could you upload rep-seqs.qza you use? i would like to try it as well.

Dear Developer,

Thanks for all the clarifications about the ITS protocol.
Also, would be great if you could test the rep-seqs.qza. Please find attached the file.rep-seqs.qza (158.4 KB)

Dear All,

After reading carefully the tutorial I succeeded to finish the ITS protocol analysis using the qiime 2019-10. First I trained the classifier and proceeded with the analysis.
Thank you so much for your assistance.
I just wonder if I did properly by skip the step - Extract reference reads
qiime feature-classifier extract-reads … --o-reads ref-seqs.qza
As I understood the instructions, the ITS sequences do not need the extraction or trimming, it should be used on the full reference sequences.

Thanks again

Hi Andre,

I am attempting to train the classifier on qiime2-2019.10 and for some reason keep getting the error below.

not enough values to unpack (expected 2, got 0)

I have never gotten this error before and although I have been through the forum, I cannot seem to fix the issue.

Would you mind sharing your scripts with me? I have uploaded my script, in case you want to look at it, but I am really at a loss.

Training-Feature-Classifier.txt (1.2 KB)

sed "s/^[ \t]*//" -i developer/sh_refs_qiime_ver8_99_s_02.02.2019_dev_up.fasta > sh_refs_qiime_ver8_99_s_02.02.2019_dev_uppercase.fasta

The first problem I saw was for output you didn’t add developer/
So, command should go like this:

sed "s/^[ \t]*//" -i developer/sh_refs_qiime_ver8_99_s_02.02.2019_dev_up.fasta > developer/sh_refs_qiime_ver8_99_s_02.02.2019_dev_uppercase.fasta

Next thing I discovered is sh_refs_qiime_ver8_99_s_02.02.2019_dev_uppercase.fasta is an empty file.

I don’t know anything about sed or how that regex goes, but this is the problem I believe.

Good luck…

Hello @the_dummy. I met the same problem. I run the code sed “s/^[ \t]*//” … and got a empty file. I also found the discussion IUPAC character problem while importing UNITE dataset I found you used 02.02.2019 while Nicholas used 01.12.2017. Dose different version influence the result? Did you solve the problem and give me some suggestion?

As noted here, the -i is editing in-place so no output is generated.

1 Like

Hi Fabiola,

Sorry for the delaying. I used these steps below. As stated in the tutorial, I by skip this step

  • Extract reference reads
    qiime feature-classifier extract-reads … --o-reads ref-seqs.qza
    Because the ITS sequences do not need the extraction or trimming, it should be used on the full reference sequences.

Please find below the steps for training.

qiime tools import
–type ‘FeatureData[Sequence]’
–input-path sh_refs_qiime_ver7_dynamic_01.12.2017.fasta \ (the fasta file containing the sequences)
–output-path shrefsdyn.qza

qiime tools import
–type ‘FeatureData[Taxonomy]’
–input-format HeaderlessTSVTaxonomyFormat
–input-path sh_taxonomy_qiime_ver7_dynamic_01.12.2017.txt \ (the txt file containing the taxonomy Kingdom………Species)
–output-path ITS1ref-taxonomy.qza

Making the classifier file
qiime feature-classifier fit-classifier-naive-bayes
–i-reference-reads shrefsdyn.qza
–i-reference-taxonomy ITS1ref-taxonomy.qza
–o-classifier ITSclassifier.qza (The classifer file to be used in step 13)

1 Like

A post was split to a new topic: how to cite unite database version