if (allowmismatch || c1 == c2)
{
- lastmatch = true;
- // extend mapping interval.
+ // extend mapping interval
if (lp1 + 1 != alignpos || lp2 + 1 != pdbpos)
{
as1.add(Integer.valueOf(alignpos));
as2.add(Integer.valueOf(pdbpos));
}
+ lastmatch = true;
lp1 = alignpos;
lp2 = pdbpos;
}
else
{
+ // extend mapping interval
+ if (lastmatch)
+ {
+ as1.add(Integer.valueOf(lp1));
+ as2.add(Integer.valueOf(lp2));
+ }
lastmatch = false;
}
}
// construct range pairs
+
int[] mapseq1 = new int[as1.size() + (lastmatch ? 1 : 0)], mapseq2 = new int[as2
.size() + (lastmatch ? 1 : 0)];
int i = 0;