Hi,
I've been troubleshooting an issue I've encountered with dnabarcoder's search function when attempting to classify a relatively large number of full ITS sequences (~6000) against the UNITE-INSD 2024 database.
I've been using dnabarcoder v1.06.
What I've found is that the BLAST command runs out of memory and dnabarcoder continues as though BLAST command was successful.
The blastoutput file is empty or incomplete and the search.py command returns a .bestmatch file reporting BLAST scores of 0.
I think there are two issues at play here:
- dnabarcoder should detect whether the BLAST command fails
- the number of cpus (
nproc) should be configurable. Currently this uses all threads on my system (on my cluster: 124 threads) and I believe is the source the excessive memory use.
I've manually edited the code on my system to use fewer threads and this temporarily alleviates memory the issue for me.
The first issue is a little trickier to deal with as dnabarcoder might need to check return codes from the BLAST process.
This might be better suited using python's subprocess module (https://docs.python.org/3/library/subprocess.html#), but just a suggestion.
Thank you!!
Hi,
I've been troubleshooting an issue I've encountered with dnabarcoder's search function when attempting to classify a relatively large number of full ITS sequences (~6000) against the UNITE-INSD 2024 database.
I've been using dnabarcoder v1.06.
What I've found is that the BLAST command runs out of memory and dnabarcoder continues as though BLAST command was successful.
The
blastoutputfile is empty or incomplete and thesearch.pycommand returns a.bestmatchfile reporting BLAST scores of 0.I think there are two issues at play here:
nproc) should be configurable. Currently this uses all threads on my system (on my cluster: 124 threads) and I believe is the source the excessive memory use.I've manually edited the code on my system to use fewer threads and this temporarily alleviates memory the issue for me.
The first issue is a little trickier to deal with as dnabarcoder might need to check return codes from the BLAST process.
This might be better suited using python's subprocess module (https://docs.python.org/3/library/subprocess.html#), but just a suggestion.
Thank you!!