I'm encountering a reproducible issue when running SingleM under SLURM on an HPC cluster.
export SINGLEM_METAPACKAGE_PATH='/scartch/imorel/S5.4.0.GTDB_r226.metapackage_20250331.smpkg.zb'
singlem pipe -1 GCA_000309865.1_genomic.fna -p /dev/stdout
2026/03/31 11:20:51 AM INFO: SingleM v0.20.3
2026/03/31 11:20:51 AM INFO: Acquiring SingleM metapackage from Zenodo backpack directory specified ..
2026/03/31 11:20:51 AM INFO: Retrieval successful. Location of backpack is: S5.4.0.GTDB_r226.metapackage_20250331.smpkg.zb
2026/03/31 11:20:51 AM INFO: Loaded 59 SingleM packages
2026/03/31 11:20:51 AM INFO: Using as input 1 different sequence files e.g. GCA_000309865.1_genomic.fna
2026/03/31 11:20:51 AM INFO: Filtering sequence files through DIAMOND blastx
2026/03/31 11:20:53 AM INFO: Finished DIAMOND prefilter phase
2026/03/31 11:20:53 AM INFO: Assigning sequences to SingleM packages with DIAMOND ..
2026/03/31 11:21:20 AM INFO: Running taxonomic assignment ..
2026/03/31 11:21:20 AM INFO: Assigning taxonomy by singlem query ..
2026/03/31 11:21:20 AM INFO: Querying against species database with 1 sequences, using method smafa-naive and max divergence 2
2026/03/31 11:21:20 AM INFO: Searching with SMAFA NAIVE by nucleotide sequence ..
2026/03/31 11:21:20 AM INFO: Querying index for S3.1.ribosomal_protein_L2_rplB
2026/03/31 11:21:20 AM INFO: Loading taxonomy cache
2026/03/31 11:21:25 AM INFO: Querying against species database with 1 sequences, using method smafa-naive and max divergence 2
2026/03/31 11:21:25 AM INFO: Searching with SMAFA NAIVE by nucleotide sequence ..
2026/03/31 11:21:25 AM INFO: Querying index for S3.2.ribosomal_protein_L3_rplC
Traceback (most recent call last):
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/../sqlalchemy/engine/base.py", line 1967, in _exec_single_context
self.dialect.do_execute(
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/../sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
sqlite3.OperationalError: disk I/O error
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/imorel/miniconda3/envs/singlem/bin/singlem", line 9, in <module>
sys.exit(main())
^^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/main.py", line 776, in main
singlem.pipe.SearchPipe().run(
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/pipe.py", line 73, in run
otu_table_object = self.run_to_otu_table(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/pipe.py", line 473, in run_to_otu_table
otu_table_object = self.assign_taxonomy_and_process(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/pipe.py", line 506, in assign_taxonomy_and_process
assignment_result = self._assign_taxonomy(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/pipe.py", line 1238, in _assign_taxonomy
query_based_assignment_result = PipeTaxonomyAssignerByQuery().assign_taxonomy(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/pipe_taxonomy_assigner_by_query.py", line 122, in assign_taxonomy
query_single_set(queries, 0)
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/pipe_taxonomy_assigner_by_query.py", line 102, in query_single_set
for hit in querier.query_with_queries(queries, sdb, max_species_divergence, method, SequenceDatabase.NUCLEOTIDE_TYPE, 1, None, False, None):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/querier.py", line 355, in query_by_sequence_similarity_with_smafa_naive
m = sdb.sqlalchemy_connection.execute(query).first()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/../sqlalchemy/engine/base.py", line 1419, in execute
return meth(
^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/../sqlalchemy/sql/elements.py", line 527, in _execute_on_connection
return connection._execute_clauseelement(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/../sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
ret = self._execute_context(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/../sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/../sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/../sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/../sqlalchemy/engine/base.py", line 1967, in _exec_single_context
self.dialect.do_execute(
File "/home/imorel/miniconda3/envs/singlem/lib/python3.12/site-packages/singlem/../sqlalchemy/engine/default.py", line 952, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) disk I/O error
[SQL: SELECT markers.id
FROM markers
WHERE markers.marker = ?]
[parameters: ('S3.2.ribosomal_protein_L3_rplC',)]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Is there a known issue with SQLite usage in SingleM under SLURM or HPC environments?
Or any recommended configuration/workaround for this type of setup?
Happy to provide more details or test suggestions if needed.
Hi,
I'm encountering a reproducible issue when running SingleM under SLURM on an HPC cluster.
Summary
Environment and command
I've been just trying with the test dataset:
singlem pipe -1 GCA_000309865.1_genomic.fna --metapackage S5.4.0.GTDB_r226.metapackage_20250331.smpkg.zb -p /dev/stdoutand
Error
What I tested
Question
Is there a known issue with SQLite usage in SingleM under SLURM or HPC environments?
Or any recommended configuration/workaround for this type of setup?
Happy to provide more details or test suggestions if needed.
Thanks!