Skip to content

Commit 11f7821

Browse files
committed
check reference sequence dictionary in header when comparing
1 parent 4673881 commit 11f7821

3 files changed

Lines changed: 38 additions & 0 deletions

File tree

src/main/java/adnascreen/AlignmentComparison.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,10 @@ public static boolean compareAlignmentFiles(String finalOutputFilename, String[]
220220
}
221221
inputIterators[n] = inputReaders[n].iterator();
222222
currentInputRecords[n] = inputIterators[n].next();
223+
// check that reference is the same
224+
if (!inputReaders[n].getFileHeader().getSequenceDictionary().equals(outputReader.getFileHeader().getSequenceDictionary())) {
225+
return false;
226+
}
223227
}
224228

225229
// each final output file record should appear in exactly one input file

src/test/java/adnascreen/AlignmentComparisonTests.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,4 +251,26 @@ public void testNoCheckFail() {
251251

252252
assertThrows(org.apache.commons.cli.MissingOptionException.class, () -> AlignmentComparison.main(commandArray));
253253
}
254+
255+
@Test
256+
public void testDifferentReferenceDictionary() {
257+
ClassLoader classLoader = getClass().getClassLoader();
258+
String samFilename1 = classLoader.getResource("alignment_comparison/multi_lib45.sam").getPath();
259+
String samFilename2 = classLoader.getResource("alignment_comparison/multi_lib45_extraSeqDict.sam").getPath();
260+
261+
String[] inputs = new String[1];
262+
inputs[0] = samFilename2;
263+
try {
264+
assertFalse(AlignmentComparison.compareAlignmentFiles(samFilename1, inputs, tags, null));
265+
} catch (IOException e) {
266+
fail(e.getMessage());
267+
}
268+
}
269+
270+
@Test
271+
public void testDifferentReferenceDictionaryCommandLine() throws IOException, ParseException {
272+
String samFilename1 = "alignment_comparison/multi_lib45.sam";
273+
String samFilename2 = "alignment_comparison/multi_lib45_extraSeqDict.sam";
274+
differentSAMCommandLine(samFilename1, samFilename2);
275+
}
254276
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
@HD VN:1.5 GO:none SO:coordinate
2+
@SQ SN:MT LN:16569
3+
@SQ SN:EXTRA LN:10000
4+
@RG ID:rg1 DT:2018-09-12T00:00:00-0400 LB:Lib1 PL:ILLUMINA PM:NS500217 592 PU:HCG37BGX7.1 SM:I12561
5+
@RG ID:rg2 DT:2018-09-12T00:00:00-0400 LB:Lib2 PL:ILLUMINA PM:NS500217 592 PU:HCG37BGX7.2 SM:I12561
6+
@RG ID:rg3 DT:2018-09-12T00:00:00-0400 LB:Lib3 PL:ILLUMINA PM:NS500217 592 PU:HCG37BGX7.3 SM:I12561
7+
@RG ID:rg4 DT:2018-09-27T00:00:00-0400 LB:Lib4 PL:ILLUMINA PM:NS500217 598 PU:HYCVFBGX5.4 SM:I12561
8+
@RG ID:rg5 DT:2018-09-27T00:00:00-0400 LB:Lib1 PL:ILLUMINA PM:NS500217 598 PU:HYCVFBGX5.1 SM:I12561
9+
13602:9926:18684 0 MT 32 37 40M * 0 0 ACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGA EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE X0:i:1 X1:i:0 MD:Z:39G0 XD:Z:AAGCATC_ATTGGCA_40 RG:Z:rg4 XG:i:0 NM:i:1 XM:i:1 XO:i:0 XT:A:U
10+
23605:7072:4424 1024 MT 119 37 57M * 0 0 TCGCAGTATCTGTCTTTGATTCCTGCCTCATCCTATTATTTATCGCACCTACGTTCA EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE X0:i:1 X1:i:0 MD:Z:27C5C23 XD:Z:CCTGCAG_GCCAATG_57 RG:Z:rg4 XG:i:0 NM:i:2 XM:i:2 XO:i:0 XT:A:U
11+
12304:12820:10743 0 MT 324 37 36M * 0 0 CCACAGCACTTAAACACATCTCTGCCAAACCCCAAA EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE X0:i:1 X1:i:0 MD:Z:36 XD:Z:CCTGCAG_TGGCCAT_36 RG:Z:rg5 XG:i:0 NM:i:0 XM:i:0 XO:i:0 XT:A:U
12+
22412:14443:18175 0 MT 325 37 45M * 0 0 CACAGCACTTAAACACATCTCTGCCAAACCCCAAAAACAAAGAAC EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE X0:i:1 X1:i:0 MD:Z:45 XD:Z:GGATGCT_CAATTGC_45 RG:Z:rg5 XG:i:0 NM:i:0 XM:i:0 XO:i:0 XT:A:U

0 commit comments

Comments
 (0)