Please read the following before posting!
Dear All,
I am following this tutorial How to train a GTDB SSU classifier using RESCRIPt. and the command:
qiime rescript evaluate-fit-classifier \
--i-sequences gtdb-214-both-seqs.qza \
--i-taxonomy gtdb-214-both-tax.qza \
--p-n-jobs 32 \
--o-classifier gtdb-214-both-classifier_2.qza \
--o-observed-taxonomy gtdb-214-both-predicted-taxonomy_2.qza \
--o-evaluation gtdb-214-both-classifier-evaluation_2.qzv \
--verbose
throws the following error
/path/to/qiime2-2023.2/lib/python3.8/site-packages/rescript/cross_validate.py:34: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.
taxa = taxa.loc[seq_ids]
Validation: 3.39s
/path/to/qiime2-2023.2/lib/python3.8/site-packages/q2_feature_classifier/classifier.py:102: UserWarning: The TaxonomicClassifier artifact that results from this method was trained using scikit-learn version 0.24.1. It cannot be used with other versions of scikit-learn. (While the classifier may complete successfully, the results will be unreliable.)
warnings.warn(warning, UserWarning)
Training: 2700.10s
Classification: 737.18s
/path/to/qiime2-2023.2/lib/python3.8/site-packages/rescript/evaluate.py:79: UserWarning: The lists of input taxonomies and labels are different lengths. Additional taxonomies will be labeled numerically by their order in the inputs. Note that if these numbers match existing labels, those data will be grouped in the visualization.
warnings.warn(msg, UserWarning)
Traceback (most recent call last):
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/q2cli/commands.py", line 417, in __call__
results = action(**arguments)
File "<decorator-gen-481>", line 2, in evaluate_fit_classifier
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/sdk/action.py", line 211, in bound_callable
outputs = self._callable_executor_(scope, callable_args,
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/sdk/action.py", line 439, in _callable_executor_
outputs = self._callable(scope.ctx, **view_args)
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/rescript/cross_validate.py", line 53, in evaluate_fit_classifier
evaluation, = _eval([taxonomy], [observed_taxonomy])
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/sdk/context.py", line 112, in deferred_action
return action_obj._bind(
File "<decorator-gen-547>", line 2, in evaluate_classifications
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/sdk/action.py", line 211, in bound_callable
outputs = self._callable_executor_(scope, callable_args,
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/sdk/action.py", line 439, in _callable_executor_
outputs = self._callable(scope.ctx, **view_args)
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/rescript/cross_validate.py", line 204, in evaluate_classifications
plots, = volatility(metadata=q2.Metadata(precision_recall),
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/sdk/context.py", line 75, in deferred_action
invocation = HashableInvocation(plugin_action, arguments)
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/core/type/signature.py", line 691, in __init__
self.arguments = self._make_hashable(unified_arguments)
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/core/type/signature.py", line 741, in _make_hashable
new_collection.append(self._make_hashable(elem))
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/core/type/signature.py", line 738, in _make_hashable
new_collection.append((k, self._make_hashable(v)))
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/core/type/signature.py", line 746, in _make_hashable
collection.save(fp)
File "/path/to/qiime2-2023.2/lib/python3.8/site-packages/qiime2/metadata/metadata.py", line 250, in save
filepath = filepath.rstrip('.')
AttributeError: '_io.TextIOWrapper' object has no attribute 'rstrip'
I am using qiime2-2023.2 installed with conda. RESCRIPt was installed following Option 2: Install within QIIME 2 environment
Thank you!