Dear all,
I have two related questions concerning DADA2 and Deblur. I understand that both methods have their merits and drawbacks and for the moment at least there is no consensus regarding which method is better suited when. I therefore decided to apply both methods to my large avian cloacal swab 16S dataset and compare the results to get an idea of which method may be more appropriate when. Below is my script:
source activate qiime2-2018.2
qiime tools import
–type ‘SampleData[PairedEndSequencesWithQuality]’
–input-path /home/mark/Dropbox/MicrobiomeHM/QIIME2/FinalAnalysis/RawData
–source-format CasavaOneEightSingleLanePerSampleDirFmt
–output-path /home/mark/Dropbox/MicrobiomeHM/QIIME2/FinalAnalysis/qiime2output/Deblur/demux-paired-end.qza
qiime cutadapt trim-paired
–i-demultiplexed-sequences demux-paired-end.qza
–p-cores 8
–p-front-f NNNNGTGCCAGCNGCCGCGGTAA
–p-front-r GGACTACNVGGGTWTCTAAT
–verbose
–output-dir trimmed
#qiime tools validate demux.qza
qiime dada2 denoise-paired
–i-demultiplexed-seqs trimmed/trimmed_sequences.qza
–p-trim-left-f 0
–p-trunc-len-f 219
–p-trunc-len-r 198
–p-n-threads 8
–o-representative-sequences trimmed/DADA2/rep-seqs-dada2.qza
–o-table trimmed/DADA2/table-dada2.qza
qiime vsearch join-pairs
–i-demultiplexed-seqs trimmed/trimmed_sequences.qza
–verbose
–o-joined-sequences trimmed/deblur/demux-joined.qza
qiime quality-filter q-score-joined
–i-demux trimmed/deblur/ndemux-joined.qza
–o-filtered-sequences trimmed/deblur/demux-joined-filtered.qza
–o-filter-stats trimmed/deblur/demux-joined-filter-stats.qza
qiime deblur denoise-16S
–i-demultiplexed-seqs trimmed/deblur/demux-joined-filtered.qza
–p-trim-length 253
–p-jobs-to-start 8
–p-sample-stats
–o-representative-sequences trimmed/deblur/rep-seqs.qza
–o-table trimmed/deblur/table.qza
–o-stats trimmed/deblur/deblur-stats.qza
Following this script I am removing primers using cutadapt within QIIME 2. I apply DADA2 directly on the unmerged paired-end sequences following the moving pictures tutorial. For Deblur I am merging my pair-end sequences using vsearch and applying a quality filter prior to denoising following the Alternative methods tutorial.
My dataset initially contains 30,761,377 sequences. After denoising using DADA2 I obtain 21,637,825 and after filtering for bacterial sequences I get 20,937,471 sequences and 15,042 features. On the other hand, after denoising using Deblur I obtain 7,749,8954 and 9,373 features. That is in my mind a very big difference in the number of sequences and features using the same dataset from the two denoising methods.
Digging deeper into the data of course all sequences from Deblur are 253bp (since I specified that all sequences are trimmed at 253bp since Deblur requires that all sequences are of the same length). On the hand, sequences of features from DADA2 are of varying length as follows:
feature length | frequency | Proportion |
---|---|---|
219 | 4 | 0.000 |
221 | 3 | 0.000 |
227 | 3 | 0.000 |
234 | 1 | 0.000 |
237 | 1 | 0.000 |
240 | 64 | 0.004 |
249 | 1 | 0.000 |
250 | 1 | 0.000 |
251 | 24 | 0.002 |
252 | 1171 | 0.078 |
253 | 12883 | 0.856 |
254 | 797 | 0.053 |
255 | 49 | 0.003 |
256 | 3 | 0.000 |
257 | 2 | 0.000 |
258 | 3 | 0.000 |
267 | 1 | 0.000 |
269 | 2 | 0.000 |
270 | 4 | 0.000 |
272 | 3 | 0.000 |
273 | 10 | 0.001 |
274 | 7 | 0.000 |
276 | 3 | 0.000 |
302 | 1 | 0.000 |
318 | 1 | 0.000 |
Therefore only 12883 features (85.6%) are of the expected amplicon length. However this is insufficient to explain the large discrepancy in the number of features between DADA2 and Deblur. When I continue downstream analyses, Unifrac (weighed and unweighted) PCoA plots looks very similar between methods and alpha diversity measures (although lower in absolute terms for Deblur) also give extremely similar results (when comparing between sampling sites for example). Similarly I get very similar phylum, class and genus composition of the micobiome (e.g. proportion of each phylum across sampling sites) regardless of the denoising dataset used. So it seems that biological interpretation (at least superficially) would be very similar regardless of the method I choose to use.
So my questions are (sorry for the long post):
-
If I choose to use DADA2, should I filter for sequences that are of the expected amplicon length? I noticed that in the R package there is the option to filter for sequence length using maxLen and minLen. Why are these features not included in the QIIME 2 plug-in? To me all features that are not 253bp are likely to be sequencing/PCR artefacts…
-
I understand that both denoising methods use very different methods but are such large differences in the absolute number of reads and features expected? Did I do something wrong? Have you experienced similar results? (I tried my script on another dataset from a colleague and get a very similar discrepancy in the results suggesting that it is not dataset dependent)
Many thanks for any feedback you may provide!
Best,
Mark