Hi all,
I am trying to incorporate some complete/near complete 16s rRNA sequences that I have extracted from annotated genomes following some PacBio HiFi metagenomic sequencing I have done. The aim here is to compare these sequences against a V1-V2 16s rRNA sequencing dataset, generating a phylogenetic tree to see the evolutionary relatedness of the V1-V2 ASVs to the PacBio 16s sequences.
I have imported the PacBio 16s rRNA sequences using the following command, with each sample being represented by a single FASTQ file containing a single 16s sequence:
qiime tools import
--type 'SampleData[SequencesWithQuality]'
--input-path SingleEndManifestPacBio.csv
--output-path single-end-demux.qza
--input-format SingleEndFastqManifestPhred33
I now want to generate ASVs from these sequences (to compare with the V1-V2 dataset), however, as each sample (sequence) only consists of one read, I receive the following error:
qiime dada2 denoise-single
--i-demultiplexed-seqs ./single-end-demux.qza
--p-trunc-len 0
--o-representative-sequences ./pacbio-rep-seqs-dada2.qza
--o-table ./pacbio-table-dada2.qza
--o-denoising-stats ./pacbio-dada2-stats.qza
--verbose
R version 4.2.3 (2023-03-15)
Loading required package: Rcpp
DADA2: 1.26.0 / Rcpp: 1.0.10 / RcppParallel: 5.1.6
2) Filtering .......................................................................................................................................................................................................................................................................................................................................................................................................................................
3) Learning Error Rates
646684 total bases in 423 reads from 423 samples will be used for learning the error rates.
Error rates could not be estimated (this is usually because of very few reads).
Error in getErrors(err, enforce = TRUE) : Error matrix is NULL.
6: stop("Error matrix is NULL.")
5: getErrors(err, enforce = TRUE)
4: dada(drps, err = NULL, errorEstimationFunction = errorEstimationFunction,
selfConsist = TRUE, multithread = multithread, verbose = verbose,
MAX_CONSIST = MAX_CONSIST, OMEGA_C = OMEGA_C, ...)
3: learnErrors(filts, nreads = nreads.learn, multithread = multithread,
HOMOPOLYMER_GAP_PENALTY = HOMOPOLYMER_GAP_PENALTY, BAND_SIZE = BAND_SIZE)
2: withCallingHandlers(expr, warning = function(w) if (inherits(w,
classes)) tryInvokeRestart("muffleWarning"))
1: suppressWarnings(learnErrors(filts, nreads = nreads.learn, multithread = multithread,
HOMOPOLYMER_GAP_PENALTY = HOMOPOLYMER_GAP_PENALTY, BAND_SIZE = BAND_SIZE))
Traceback (most recent call last):
File "/pub59/rsoftley/anaconda3/envs/qiime2-2023.5/lib/python3.8/site-packages/q2_dada2/_denoise.py", line 220, in _denoise_single
run_commands([cmd])
File "/pub59/rsoftley/anaconda3/envs/qiime2-2023.5/lib/python3.8/site-packages/q2_dada2/_denoise.py", line 36, in run_commands
subprocess.run(cmd, check=True)
File "/pub59/rsoftley/anaconda3/envs/qiime2-2023.5/lib/python3.8/subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['run_dada.R', '--input_directory', '/tmp/qiime2/rsoftley/data/fe0fae4d-d4d5-41ed-a486-b8c2b7f1ea19/data', '--output_path', '/tmp/tmpfj8tqof8/output.tsv.biom', '--output_track', '/tmp/tmpfj8tqof8/track.tsv', '--filtered_directory', '/tmp/tmpfj8tqof8', '--truncation_length', '0', '--trim_left', '0', '--max_expected_errors', '2.0', '--truncation_quality_score', '2', '--max_length', 'Inf', '--pooling_method', 'independent', '--chimera_method', 'consensus', '--min_parental_fold', '1.0', '--allow_one_off', 'False', '--num_threads', '1', '--learn_min_reads', '1000000', '--homopolymer_gap_penalty', 'NULL', '--band_size', '16']' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/pub59/rsoftley/anaconda3/envs/qiime2-2023.5/lib/python3.8/site-packages/q2cli/commands.py", line 468, in call
results = action(**arguments)
File "", line 2, in denoise_single
File "/pub59/rsoftley/anaconda3/envs/qiime2-2023.5/lib/python3.8/site-packages/qiime2/sdk/action.py", line 274, in bound_callable
outputs = self.callable_executor(
File "/pub59/rsoftley/anaconda3/envs/qiime2-2023.5/lib/python3.8/site-packages/qiime2/sdk/action.py", line 509, in callable_executor
output_views = self._callable(**view_args)
File "/pub59/rsoftley/anaconda3/envs/qiime2-2023.5/lib/python3.8/site-packages/q2_dada2/_denoise.py", line 244, in denoise_single
return _denoise_single(
File "/pub59/rsoftley/anaconda3/envs/qiime2-2023.5/lib/python3.8/site-packages/q2_dada2/_denoise.py", line 229, in _denoise_single
raise Exception("An error was encountered while running DADA2"
Exception: An error was encountered while running DADA2 in R (return code 1), please inspect stdout and stderr to learn more.
Plugin error from dada2:
An error was encountered while running DADA2 in R (return code 1), please inspect stdout and stderr to learn more.
See above for debug info.
Can anyone suggest a work around or alternative method for this type of analysis?