diamond 2.0.11 segmentation fault when using -F 15 along with --iterate
Hi,
Just in case this is of help, I was running diamond of DNA against a database of proteins, using:
--ultra-sensitive --iterate -e 0.001 --matrix BLOSUM45 --query-gencode 11 --top 3 -F 15
--outfmt 6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore qcovhsp scovhsp
However, I had an error like:
[...]
Processing query block 1, query iteration 3, reference block 1/1, shape 64/64.
Building reference seed array... [0.016s]
Building query seed array... [0.002s]
Computing hash join... [0.002s]
Building seed filter... [0.012s]
Searching alignments... [0.002s]
Deallocating buffers... [0.001s]
Clearing query masking... [0.002s]
Opening temporary output file... [0.003s]
Computing alignments... [0.301s]
Deallocating reference... [0.002s]
Loading reference sequences... [0.001s]
Deallocating buffers... [0.001s]
Aligned 3/433 queries in this iteration, 271/433 total.
Joining output blocks... Joining output blocks... Error: Error: Sequence set index out of bounds.
Error: Sequence set index out of bounds.
Error: Sequence set index out of bounds.
*** Error in `diamond': free(): corrupted unsorted chunks: 0x0000000002927110 ***
*** Error in `diamond': corrupted size vs. prev_size: 0x0000000002927100 ***
Error: Sequence set index out of bounds.
Error: Sequence set index out of bounds.
Error: Sequence set index out of bounds.
Sequence set index out of bounds.
/var/spool/slurm/d/job27679916/slurm_script: line 96: 423639 Segmentation fault diamond blastx -d ${dbs_dmnd} -q ${contigs_file} --threads ${cpus} -o ${dmnd_out_file} --ultra-sensitive --iterate -e 0.001 --matrix BLOSUM45 --query-gencode 11 --top 3 -F 15 --outfmt
6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore qcovhsp scovhsp
After trying several combinations, it seems that it was running either removing the sensitivity option or the --iterate flag.
For example, it seems that using:
--ultra-sensitive -e 0.001 --matrix BLOSUM45 --query-gencode 11 --top 3 -F 15
--outfmt 6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore qcovhsp scovhsp
That is, just removing the --iterate option. In my mind, the last command should be more demanding than using the iterate option. That is why I thought it could be a bug. Just guessing.
Best, Carlos
I can confirm the bug and will try to provide a fix in the near future.
It seems I didn't mention that it only happened when using -F 15. It ran ok with --ultra-sensitive and --iterate, without -F 15.