Hi,
I’m observing a difference between BLASTN and MMseqs2 (easy-search, version 18.8cc5c) when aligning full-length nucleotide alleles against a bacterial genome.
In multiple cases, BLASTN produces a single perfect alignment (100% identity, 100% coverage), while MMseqs2 splits the same alignment into two perfectly contiguous HSPs with 100% identity.
This happens even when both fragments together exactly reconstruct the full-length BLAST alignment.
Example 1
Blastn result
| qaccver |
saccver |
pident |
length |
qcovhsp |
mismatch |
gapopen |
qlen |
qstart |
qend |
sstart |
send |
evalue |
bitscore |
| lmo0027_10 |
NODE_4_length_460766_cov_107.215521 |
100 |
1905 |
100 |
0 |
0 |
1905 |
1 |
1905 |
151470 |
149566 |
0 |
3518 |
MMseqs2 result
| qaccver |
saccver |
pident |
length |
qcovhsp |
mismatch |
gapopen |
qlen |
qstart |
qend |
sstart |
send |
evalue |
bitscore |
| lmo0027_10 |
NODE_4_length_460766_cov_107.215521 |
100 |
1470 |
77.2 |
0 |
0 |
1905 |
1470 |
1 |
150001 |
151470 |
0 |
2635 |
| lmo0027_10 |
NODE_4_length_460766_cov_107.215521 |
100 |
435 |
22.8 |
0 |
0 |
1905 |
1905 |
1471 |
149566 |
150000 |
3.28E-226 |
781 |
Example 2
Blastn result
| qaccver |
saccver |
pident |
length |
qcovhsp |
mismatch |
gapopen |
qlen |
qstart |
qend |
sstart |
send |
evalue |
bitscore |
| lmo0052_8 |
NODE_4_length_460766_cov_107.215521 |
100 |
1974 |
100 |
0 |
0 |
1974 |
1 |
1974 |
121630 |
119657 |
0 |
3646 |
MMseqs2 result
| qaccver |
saccver |
pident |
length |
qcovhsp |
mismatch |
gapopen |
qlen |
qstart |
qend |
sstart |
send |
evalue |
bitscore |
| lmo0052_8 |
NODE_4_length_460766_cov_107.215521 |
100 |
1630 |
82.6 |
0 |
0 |
1974 |
1630 |
1 |
120001 |
121630 |
0 |
2922 |
| lmo0052_8 |
NODE_4_length_460766_cov_107.215521 |
100 |
344 |
17.4 |
0 |
0 |
1974 |
1974 |
1631 |
119657 |
120000 |
4.57E-177 |
618 |
In both cases, MMseqs2 splits the alignment exactly at:
- 150000/150001
- 120000/120001
The two fragments are:
- perfectly contiguous in query and target
- 100% identical
- sum exactly equals the BLASTN alignment length
No sequence discontinuity (no Ns, no gaps, no rearrangements)
Command used:
mmseqs easy-search --search-type 3 --cov-mode 2 -c 0.1 --mask 0 --format-mode 0 -s 7 --split-memory-limit 32G --min-seq-id 0.9 -k 13 --spaced-kmer-mode 0 --max-accept 20 --threads 52 --remove-tmp-files --strand 2 --format-output query,target,pident,alnlen,qcov,mismatch,gapopen,qlen,qstart,qend,tstart,tend,evalue,bits,taln
Also tested with --threads 1, --split-mode 1 and --merge-query 1, and without --split-memory-limit, same behavior
Is this expected behavior of MMseqs2 nucleotide chaining/alignment (i.e. lack of HSP merging across adjacent chains), or is there a parameter that controls merging of adjacent alignments into a single HSP similar to BLASTN?
Thank you in advance
Hi,
I’m observing a difference between BLASTN and MMseqs2 (easy-search, version 18.8cc5c) when aligning full-length nucleotide alleles against a bacterial genome.
In multiple cases, BLASTN produces a single perfect alignment (100% identity, 100% coverage), while MMseqs2 splits the same alignment into two perfectly contiguous HSPs with 100% identity.
This happens even when both fragments together exactly reconstruct the full-length BLAST alignment.
Example 1
Blastn result
MMseqs2 result
Example 2
Blastn result
MMseqs2 result
In both cases, MMseqs2 splits the alignment exactly at:
The two fragments are:
No sequence discontinuity (no Ns, no gaps, no rearrangements)
Command used:
Also tested with --threads 1, --split-mode 1 and --merge-query 1, and without --split-memory-limit, same behavior
Is this expected behavior of MMseqs2 nucleotide chaining/alignment (i.e. lack of HSP merging across adjacent chains), or is there a parameter that controls merging of adjacent alignments into a single HSP similar to BLASTN?
Thank you in advance