I’m QIIME 2 v2019.10 on a cluster and following the " Alternative methods of read-joining in QIIME 2" tutorial with my data, and am stuck at the deblur denoising/subOTU picking step. I ran the command:
qiime deblur denoise-16S --i-demultiplexed-seqs demux-joined-filtered.qza --p-trim-length 250 --p-sample-stats --o-representative-sequences rep-seqs-deblur250.qza --o-table table-deblur250.qza --o-stats deblur-stats250.qza
And get an error
"Traceback (most recent call last): File “/opt/conda/envs/qiime2-2019.10/lib/python3.6/site-packages/q2cli/commands.py”, line 328, in call results = action(**arguments) File “</opt/conda/envs/qiime2-2019.10/lib/python3.6/site-packages/decorator.py:decorator-gen-449>”, line 2, in denoise_16S File “/opt/conda/envs/qiime2-2019.10/lib/python3.6/site-packages/qiime2/sdk/action.py”, line 240, in bound_callable output_types, provenance) File “/opt/conda/envs/qiime2-2019.10/lib/python3.6/site-packages/qiime2/sdk/action.py”, line 383, in callable_executor output_views = self._callable(**view_args) File “/opt/conda/envs/qiime2-2019.10/lib/python3.6/site-packages/q2_deblur/_denoise.py”, line 100, in denoise_16S hashed_feature_ids=hashed_feature_ids) File “/opt/conda/envs/qiime2-2019.10/lib/python3.6/site-packages/q2_deblur/_denoise.py”, line 150, in denoise_helper ids_with_underscores = df[df.index.str.contains(’’)].index.tolist() File “/opt/conda/envs/qiime2-2019.10/lib/python3.6/site-packages/pandas/core/accessor.py”, line 175, in get accessor_obj = self._accessor(obj) File “/opt/conda/envs/qiime2-2019.10/lib/python3.6/site-packages/pandas/core/strings.py”, line 1917, in init self._inferred_dtype = self._validate(data) File “/opt/conda/envs/qiime2-2019.10/lib/python3.6/site-packages/pandas/core/strings.py”, line 1967, in _validate raise AttributeError("Can only use .str accessor with string " “values!”) AttributeError: Can only use .str accessor with string values! Plugin error from deblur: Can only use .str accessor with string values! "
The test dataset in the tutorial runs fine, so it is something with my file rather than the qiime2 setup. The only thing I can think of is that the script is looking for samples which no longer exist because they were filtered out at the previous step (it is an old labeling experiment so some samples had very few reads to start with). If indeed this is likely to be the case, how do I filter out these fastq files from the .qza file? Or do you have any other ideas about what might have gone wrong?
Thanks so much!