Struggling for days with deblur denoise-other

Hi good folks!

I've been working with QIIME 2 before, and everything has worked flawlessly (this forum is a goldmine, thanks!)

On my recent project, I'm stuck at deblur for some reason I can't seem to figure out. I work in QIIME2/2020.11

Heres my code, following this SOP:

qiime tools import \
   --type SampleData[PairedEndSequencesWithQuality] \
   --input-path /raw_data \
   --output-path /treated_data/reads.qza \
   --input-format CasavaOneEightSingleLanePerSampleDirFmt
   
qiime cutadapt trim-paired \
   --i-demultiplexed-sequences /treated_data/reads.qza \
   --p-cores $NCORES \
   --p-front-f CCAGCASCYGCGGTAATTCC \
   --p-front-r ACTTTCGTTCTTGATYRATGA \
   --p-discard-untrimmed \
   --p-no-indels \
   --o-trimmed-sequences /treated_data/reads_trimmed.qza
   
qiime vsearch join-pairs \
   --i-demultiplexed-seqs /treated_data/reads_trimmed.qza \
   --o-joined-sequences /treated_data/reads_trimmed_joined.qza
   
qiime quality-filter q-score \
   --i-demux /treated_data/reads_trimmed_joined.qza \
   --o-filter-stats /treated_data/filt_stats.qza \
   --o-filtered-sequences /treated_data/reads_trimmed_joined_filt.qza
   
qiime deblur denoise-other \
   --i-demultiplexed-seqs /treated_data/reads_trimmed_joined.qza \
   --i-reference-seqs /gb203_pr2_all_10_28_99p_clean_prob-rm.qza \
   --p-trim-length 1 \
   --p-sample-stats \
   --p-jobs-to-start $NCORES \
   --p-min-reads 1 \
   --output-dir /treated_data/deblur_output

My error reads:

Traceback (most recent call last):
  File "/cluster/software/QIIME2/2020.11/lib/python3.6/site-packages/q2cli/commands.py", line 329, in __call__
    results = action(**arguments)
  File "<decorator-gen-510>", line 2, in denoise_other
  File "/cluster/software/QIIME2/2020.11/lib/python3.6/site-packages/qiime2/sdk/action.py", line 245, in bound_callable
    output_types, provenance)
  File "/cluster/software/QIIME2/2020.11/lib/python3.6/site-packages/qiime2/sdk/action.py", line 390, in _callable_executor_
    output_views = self._callable(**view_args)
  File "/cluster/software/QIIME2/2020.11/lib/python3.6/site-packages/q2_deblur/_denoise.py", line 130, in denoise_other
    hashed_feature_ids=hashed_feature_ids)
  File "/cluster/software/QIIME2/2020.11/lib/python3.6/site-packages/q2_deblur/_denoise.py", line 192, in _denoise_helper
    "of the data being denoised." % trim_length)
ValueError: No sequences passed the filter. It is possible the trim_length (1) may exceed the longest sequence, that all of the sequences are artifacts like PhiX or adapter, or that the positive reference used is not representative of the data being denoised.

I have triple checked my primers, and they are correct. I have never worked with denoise-other (all my former projects was 16S rRNA).

All the best,
Stian

1 Like

Hey @h0chem ,
Sorry to hear that deblur has given you so much grief!

I am guessing that this is your issue:

All sequences are being trimmed to 1 nt long!

Did you mean to use trim-length -1? (to disable length trimming, as they have in that tutorial)

In any case, I recommend starting there to see if setting a more appropriate trim length causes reads to pass filter. Let us know what you find!

Hi Nicholas, and thanks for the reply.

Of course, I meant "-1" to disable the trim option. I've also tried various trim lengths, with same result.
I also have a set with 16S data, and I get the error when trying to run deblur.

I have a third set of data that I worked trough three or four months ago, and I've tried re-running that just do double-check, and it works like a charm (it is a 16S data set). I am really at a loss here..

All the best,
Stian

Let me just reply to my self and inform that I have solved it. It was the trim-length. For some reason "-1" didn't work (any idea why?). I was so hung up on that command and trusted it 100 % and was thinking the problem had to be something else (since it had worked on previous datasets I've been working on.

All the best,
Stian

1 Like

Hi @h0chem,

If there is any variation in sequence lengths, then disabling trimming may disrupt deblur in unexpected ways. The deblur algorithm assumes the fragment lengths are consistent.

Best,
Daniel

1 Like