We are running assemble-spades in QIIME and getting an error. We are attempting to process Illumina metagenome data, we can't share this data, but we were able to reproduce the error with the moving pictures data. We've tried this on a couple different computers and gotten the same results. It seems to stem from the version of spades (3.15.2) that is installed with the QIIME distribution. There is an issue in the spades repo here: Upgrade pyyaml to support Python 3.10 · Issue #863 · ablab/spades · GitHub
Commands to reproduce:
wget https://docs.qiime2.org/2024.10/data/tutorials/moving-pictures/demux.qza
qiime assembly assemble-spades --i-seqs demux.qza --output-dir assemble_out --p-debug --verbose
Error:
Running external command line application(s). This may print messages to stdout and/or stderr.
The command(s) being run are below. These commands cannot be manually re-run as they will depend on temporary files that no longer exist.
Command: spades.py -s /var/folders/j6/rbf5z_vj5r5d___y59xmcb2m0000gn/T/qiime2/jhch/data/00c495ee-deb5-4da5-988f-fb86a596f16f/data/L1S105_9_L001_R1_001.fastq.gz -o /var/folders/j6/rbf5z_vj5r5d___y59xmcb2m0000gn/T/tmpmfiqsnuo/results --threads 1 --memory 250 -k auto --cov-cutoff off --debug
== Warning == No assembly mode was specified! If you intend to assemble high-coverage multi-cell/isolate data, use '--isolate' option.
Command line: /Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/bin/spades.py -s /var/folders/j6/rbf5z_vj5r5d___y59xmcb2m0000gn/T/qiime2/jhch/data/00c495ee-deb5-4da5-988f-fb86a596f16f/data/L1S105_9_L001_R1_001.fastq.gz -o /var/folders/j6/rbf5z_vj5r5d___y59xmcb2m0000gn/T/tmpmfiqsnuo/results --threads 1 --memory 250 -k auto --cov-cutoff off --debug
System information:
SPAdes version: 3.15.2
Python version: 3.10.14
OS: macOS-15.2-x86_64-i386-64bit
Output dir: /var/folders/j6/rbf5z_vj5r5d___y59xmcb2m0000gn/T/tmpmfiqsnuo/results
Mode: read error correction and assembling
Debug mode is turned ON
Dataset parameters:
Standard mode
For multi-cell/isolate data we recommend to use '--isolate' option; for single-cell MDA data use '--sc'; for metagenomic data use '--meta'; for RNA-Seq use '--rna'.
Reads:
Traceback (most recent call last):
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/bin/spades.py", line 651, in <module>
main(sys.argv)
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/bin/spades.py", line 591, in main
print_params(log, log_filename, command_line, args, cfg)
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/bin/spades.py", line 327, in print_params
print_used_values(cfg, log)
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/bin/spades.py", line 117, in print_used_values
dataset_data = pyyaml.load(open(cfg["dataset"].yaml_filename))
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/share/spades/pyyaml3/__init__.py", line 72, in load
return loader.get_single_data()
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/share/spades/pyyaml3/constructor.py", line 37, in get_single_data
return self.construct_document(node)
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/share/spades/pyyaml3/constructor.py", line 46, in construct_document
for dummy in generator:
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/share/spades/pyyaml3/constructor.py", line 398, in construct_yaml_map
value = self.construct_mapping(node)
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/share/spades/pyyaml3/constructor.py", line 204, in construct_mapping
return super().construct_mapping(node, deep=deep)
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/share/spades/pyyaml3/constructor.py", line 126, in construct_mapping
if not isinstance(key, collections.Hashable):
AttributeError: module 'collections' has no attribute 'Hashable'
Traceback (most recent call last):
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/lib/python3.10/site-packages/q2_assembly/spades/spades.py", line 85, in _process_sample
run_command(cmd, verbose=True)
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/lib/python3.10/site-packages/q2_assembly/_utils.py", line 38, in run_command
subprocess.run(cmd, check=True)
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/lib/python3.10/subprocess.py", line 526, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['spades.py', '-s', '/var/folders/j6/rbf5z_vj5r5d___y59xmcb2m0000gn/T/qiime2/jhch/data/00c495ee-deb5-4da5-988f-fb86a596f16f/data/L1S105_9_L001_R1_001.fastq.gz', '-o', '/var/folders/j6/rbf5z_vj5r5d___y59xmcb2m0000gn/T/tmpmfiqsnuo/results', '--threads', '1', '--memory', '250', '-k', 'auto', '--cov-cutoff', 'off', '--debug']' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/lib/python3.10/site-packages/q2cli/commands.py", line 530, in __call__
results = self._execute_action(
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/lib/python3.10/site-packages/q2cli/commands.py", line 602, in _execute_action
results = action(**arguments)
File "<decorator-gen-19>", line 2, in assemble_spades
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/lib/python3.10/site-packages/qiime2/sdk/action.py", line 299, in bound_callable
outputs = self._callable_executor_(
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/lib/python3.10/site-packages/qiime2/sdk/action.py", line 570, in _callable_executor_
output_views = self._callable(**view_args)
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/lib/python3.10/site-packages/q2_assembly/spades/spades.py", line 202, in assemble_spades
return _assemble_spades(
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/lib/python3.10/site-packages/q2_assembly/spades/spades.py", line 161, in _assemble_spades
_process_sample(samp, fwd, rev, common_args, result)
File "/Users/jhch/miniconda3/envs/qiime2-metagenome-2024.10/lib/python3.10/site-packages/q2_assembly/spades/spades.py", line 87, in _process_sample
raise Exception(
Exception: An error was encountered while running SPAdes, (return code 1), please inspect stdout and stderr to learn more.
Plugin error from assembly:
An error was encountered while running SPAdes, (return code 1), please inspect stdout and stderr to learn more.
See above for debug info.
Installation:
CONDA_SUBDIR=osx-64 conda env create -n qiime2-amplicon-2024.10 --file https://data.qiime2.org/distro/amplicon/qiime2-amplicon-2024.10-py310-osx-conda.yml
conda activate qiime2-amplicon-2024.10
conda config --env --set subdir osx-64