Skip to content
This repository was archived by the owner on May 22, 2026. It is now read-only.

Commit a017b1a

Browse files
committed
Fixes StringOutOfBoundException for cases of three indels/three deletions/ two deletions and insertion
Added test case
1 parent 26fc1d8 commit a017b1a

6 files changed

Lines changed: 10 additions & 3 deletions

File tree

src/main/java/com/astrazeneca/vardict/VarDict.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,9 @@ static int somdict(Region segs, Map<Integer, Vars> vars1, Map<Integer, Vars> var
524524
Collections.sort(pp);
525525

526526
for (Integer p : pp) {
527+
if (p < segs.start || p > segs.end) {
528+
continue;
529+
}
527530
Vars v1 = vars1.get(p);
528531
Vars v2 = vars2.get(p);
529532
if (v1 == null && v2 == null) { // both samples have no coverage

src/main/java/com/astrazeneca/vardict/modules/CigarUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ public static Tuple.Tuple2<Integer, String> modifyCigar(int indel,
194194

195195
//number of bases after refoff/rdoff that match in reference and read
196196
int rn = 0;
197-
while (isHasAndEquals(querySeq.charAt(rdoff + rn), ref, refoff + rn)) {
197+
while (rdoff + rn < querySeq.length() && isHasAndEquals(querySeq.charAt(rdoff + rn), ref, refoff + rn)) {
198198
rn++;
199199
}
200200
RDOFF += rn;
@@ -247,7 +247,7 @@ public static Tuple.Tuple2<Integer, String> modifyCigar(int indel,
247247

248248
//number of bases after refoff/rdoff that match in reference and read
249249
int rn = 0;
250-
while (isHasAndEquals(querySeq.charAt(rdoff + rn), ref, refoff + rn)) {
250+
while (rdoff + rn < querySeq.length() && isHasAndEquals(querySeq.charAt(rdoff + rn), ref, refoff + rn)) {
251251
rn++;
252252
}
253253
RDOFF += rn;
@@ -301,7 +301,7 @@ public static Tuple.Tuple2<Integer, String> modifyCigar(int indel,
301301
}
302302

303303
int rn = 0;
304-
while (isHasAndEquals(querySeq.charAt(rdoff + rn), ref, refoff + rn)) {
304+
while (rdoff + rn < querySeq.length() && isHasAndEquals(querySeq.charAt(rdoff + rn), ref, refoff + rn)) {
305305
rn++;
306306
}
307307
RDOFF += rn;

testdata/fastas/GRCh37.fa.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
11,1278939,1281541,CGGTAAGACGCTGCAGAGCAGAGGTGCCCGGCATAGGGTGAGGGGGGACAGAGCCGGTGCCCACCAGGGGCCTGTGGGTTGGGCACAGGAGAGCAGAGGAGAGCCACTGTGTCCTGGCGTGACCGCGGCAGGACCACTCGGCAGAGATGGCCTCCAGGTGCTTCATTCTCCTCCTAACGATGAGGCTGGTGACCTCTGGCCTGCCCAGGAGTGGCCCAGGGACGTGGGAAGCAGCGGGGAGGTGGCCAAGCAAGGGGCCTGGAGGGAGCCCCCAGGGGCTGTGAAGCGGTCAGGTCCTCGGGGAAAAGCACGCCTGCGACTTACTCTGGGAACAAGTGGTCGGGAGGAGGAGTGAGCAGCGCCCAGACAGTGGCCTCCATCCTCCCGCAGTGTGCAACACAACCACCTGCCCCCAGAGCCTGCCTGTGTGCCCGCCAGGGCAGGAGTCCATCTGCACCCAGGAGGAGGGCGACTGCTGTCCCACCTTCCGCTGCAGTGAGCGGGGCTGGGGCCGGGCTCCTGGGTGGCCTCTTGCTGGGGGTGGGGGAGTGCAGGATGGTGGGGGCGCTGGAGCACATGCTCCCCACCACTTGTCGAGGGCTTAGCTCCCTTTCCTTCCAGGACCTCAGCTGTGTTCGTACAATGGCACCTTCTACGGGGTAAGGGCACAGCAGTGGGTGGGTGTGGCCCTGGGGCCTGAACATGTGTGTGGGATGCCCCGGGGCTCTCTGAGCCCCACTCCTTGTCTTGACATTCCTGCCCTGAGGGCCGATCCGCACAGGGGCCCTGGACACGTCAGAGCTGGGACATGCTTGGGACTCAGGGGCACCTTACGTCGACAGCCATGAGCTCCACAACTGCTGCCTCTGAGAGGTCCCTTCAGGGGCTCCCAGCAACAGCCTGGGGGCAGCACACACTGGCCTGGGGTCCCCGCCTGCCCGCCCAGATTCCTACCCGCCCGGATTCCTGCCTGCCAGATTCCTGCCCCCATGGGGTCTCTGCCCACCCAGATTCCTGCCCACATGGGGTCTCTGCCTGCCCAGATTCCCTGCCCACCTGTGGTCCCTGTGTGCATCAGCTCCCTGCCTGCCTGGGTCCATGCTCAGCCAGGGGTGCATCTATGCTCCATCTGAGGAAGGAACAACTCCCTGCAGGCCCCATTGGGTCATGGGGAGGGGTCCTGGCCCTGTTGCCCCACCAGTGCCCTCAGTGCCACCCTCCCACCCCTTGCAGGTTGGTGCAACCTTCCCAGGCGCCCTTCCCTGCCACATGTGTACCTGCCTCTCTGGGGACACCCAGGACCCAACGGTGCAATGTCAGGAGGATGCCTGCAACAATACTACCTGTCCCCAGGTGAGACCCGAGGCACCTGCCCCCAGGTGAGCCCCCGAGGCACCTGCCCCCAAGTGAGACCCGAGGCACCTGCCCCCAGGTGAGACCTGAGTCACCCGCCCCCAGGTGAGCCCCCGAGGCACCTGCCCCCAGGTGAGTCCCTGAGGCACTTGCCCCCAAGTGAGACCCGAGGCACCTGCCCCCAGGTGAGACCCGAGGCACCTGCCCCCAGGTGAGACCTGAGTCACCTGCCCCCAGGTGAGCCACCAAGGCACCTGCCCCCAAGTGAGACCCGAGGCACCTGCCCCCAGGTGAGCCCACAGCTGCTGGGCAGACCCAGCCCTGAGTCACTTATCCTGGCTCCCTGGGGTTCTCTAGCTCAGCCATTGCTGGGGTCTTGTTTGTTTCCAAAGGGAGGGTATGAAGTAGGAGGATAACTGAGGGGGTCTGGGGGTGGGACAGGACCTGCAGGCTGCTGGGGACAGGGGCTGAGGTCAGGTTCCAGGAAGGCAGGGGTAGGCAGAGAGAAGGTGCTGGAAACTGGGGTGAGGCTGAGCCGGGATAACTGAGTGGGGGCAACTTCTTCGGGTATAGGCCCAGGCAGGGACAGGGCTAAGGGGTCCTGGACCACTGGGGTGTAGACAGGAGGGCAGGCTGGGCCGGGGCATGTGCTGGAGGAGAGGGTTAGGGCCTGACGCCCCTCATGTCCCCACAGGGCTTTGAGTACAAGAGAGTGGCCGGGCAGTGCTGTGGGGAGTGCGTCCAGACCGCCTGCCTCACGCCCGATGGCCAGCCAGTCCAGGTAACAGCAGAGGCATGTGGGGGCAGGTCTCAGCTCCCTCCCTGGAGACCCTCACCCCCAATGGGGCTCTGCACAAGAGGTAATCCCTACTCAGCTTCCACACTCACCCTTGCATTTCAGCTGAATGAAACCTGGGTCAACAGCCATGTGGACAACTGCACCGTGTACCTCTGTGAGGCTGAGGGTGGAGTCCATTTGCTGACCCCACAGCCTGCATCCTGCCCAGATGTGTCCAGCTGCAGGGTGTGTGCTGGAGGCCCTGCCCCTGCCTGGGAGTCCTTGTCCATCAGGGAGGCCCAACCCCTGTCTGGGATGCCCTGCACAGCAGGGAGGCCCCACCCCTGCTGGGGAGGCCCCACCCCTGCCTGGGAAGCCCCACCCCTGCCTGGGAGGCCCCGCCCCTGCCCGGGAGGCCATGCCCCTGCCCGGGTGGGCCCCTCCCCAGGAGGCCGCACCCACCAGGGAGGCC
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Simple,GRCh37.fa,N13532.TwoDels1InsStringBoundError.bam,chr11,1280138,1280341,-f 0.0025 -F 0x700 -Q 10
2+
N13532.TwoDels1InsStringBoundError testbed 11 1280291 1280344 GGTGAGACCCGAGGCACCTGCCCCCAGGTGAGCCCCCGAGGCACCTGCCCCCAA G 3733 39 1693 1990 0 39 G/-53 0.0104 2;1 48.6 1 34.3 1 48.5 78.000 0.0112 0 31 2.000 1 3.6 39 3488 AACAATACTACCTGTCCCCA GTGAGACCCGAGGCACCTGC 11:1280139-1280341 Deletion 0 0
3+
N13532.TwoDels1InsStringBoundError testbed 11 1280301 1280301 G A 3708 33 1606 2012 11 22 G/A 0.0089 2;2 49.1 1 37.1 1 58.1 10.000 0.0088 0 0 1.000 1 1.8 30 3409 CCTGTCCCCAGGTGAGACCC AGGCACCTGCCCCCAGGTGA 11:1280139-1280341 SNV 0 0

0 commit comments

Comments
 (0)