feature classifier error but no description?


I’ve been trying to run a pretrained silva classifier to generate a taxonomy artefact but I keep getting a plugin error message with no description (see attached screenshot). How can I solve this error if I don’t know what it is? Has anyone encountered this before?

I’m working in 2018.2 as that’s the version my classifier was made in (I mostly work in 2019.7 but the classifier wouldn’t work as the skit-learn was out of date). And I don’t currently have computing resources to retrain or train my own classifier, so I really need to try and get this one working, if possible


Hi @Bethanie,

Could you try running the command with --verbose mode to try and post the output?

Alternatively, would a pre-trained Silva V3-V4 classifier for 2019.7 work for you?


Hi @jwdebelius,

Thanks for your reply! I thought I already ran the command with the --verbose mode. Or does it have to be at the end of the command to be recognised?

Thanks for the link to the classifiers - I’ll have to see what my supervisor says about using them.


Hi @Bethanie,

Sorry, I missed the verbose flag. The flag order shouldn’t matter. That makes it weirder. Is it a consistent error? Might it be because you have two VMs (I assume?) @Nicholas_Bokulich, can I tag you in?

Im going to avoid quoting old memes at you, but I will say Ive used that classifier and its been pretty good for me.


1 Like

Hi @Bethanie and @jwdebelius,

The missing error message is bizarre… I’d start debugging with this:

  1. you are running a 2-year-old version of QIIME 2, could you try this with the latest release?
  2. maybe try removing the --verbose flag and see if the error log that is produced contains any more information.
1 Like

Hi @Nicholas_Bokulich,

The error message is the same whether I run with the verbose flag or not, and when I run in the latest release I get an error prompting me to retrain my classifier because the version of skit learn it was trained in is no longer up to date (hence why I’m using this older version).
Is there anything else I could do or do you think I should just abandon the idea of using 2018.2 as it is out dated?


1 Like

Hi @Bethanie

I think what @Nicholas_Bokulich was asking for was for you to run it without the verbose flag, and then to look at the log file that is saved when the error is raised.

1 Like

Oh @thermokarst , thanks so much for clarifying!
I found the error long and got this traceback

Traceback (most recent call last):
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/site-packages/q2cli/commands.py”, line 246, in call
results = action(**arguments)
File “”, line 2, in classify_sklearn
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/site-packages/qiime2/sdk/action.py”, line 222, in bound_callable
spec.view_type, recorder)
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/site-packages/qiime2/sdk/result.py”, line 261, in _view
result = transformation(self._archiver.data_dir)
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/site-packages/qiime2/core/transform.py”, line 59, in transformation
new_view = transformer(view)
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/site-packages/q2_feature_classifier/_taxonomic_classifier.py”, line 72, in _1
pipeline = joblib.load(os.path.join(dirname, ‘sklearn_pipeline.pkl’))
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/site-packages/sklearn/externals/joblib/numpy_pickle.py”, line 578, in load
obj = _unpickle(fobj, filename, mmap_mode)
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/site-packages/sklearn/externals/joblib/numpy_pickle.py”, line 508, in _unpickle
obj = unpickler.load()
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/pickle.py”, line 1043, in load
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/site-packages/sklearn/externals/joblib/numpy_pickle.py”, line 341, in load_build
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/site-packages/sklearn/externals/joblib/numpy_pickle.py”, line 184, in read
array = self.read_array(unpickler)
File “/home/qiime2/miniconda/envs/qiime2-2018.2/lib/python3.5/site-packages/sklearn/externals/joblib/numpy_pickle.py”, line 130, in read_array
array = unpickler.np.empty(count, dtype=self.dtype)

Does this mean my computer doesn’t have enough RAM to run the command?


1 Like

Yep! Looks like you’ve run into this issue before, see this topic for some troubleshooting steps: