|
1 | 1 | package org.qcmg.qprofiler.fastq; |
2 | 2 |
|
3 | | -import static org.junit.Assert.assertEquals; |
4 | 3 | import htsjdk.samtools.fastq.FastqRecord; |
5 | | - |
6 | | -import org.junit.Ignore; |
7 | 4 | import org.junit.Test; |
8 | 5 |
|
| 6 | +import static org.junit.Assert.assertEquals; |
| 7 | +import static org.junit.Assert.assertTrue; |
| 8 | + |
9 | 9 | public class FastqSummaryReportTest { |
10 | 10 |
|
11 | 11 | @Test |
12 | 12 | public void parseRecordHeader() { |
13 | | - FastqRecord rec = new FastqRecord("@ERR091788.1 HSQ955_155:2:1101:1473:2037/1", |
| 13 | + FastqRecord rec = new FastqRecord("ERR091788.1 HSQ955_155:2:1101:1473:2037/1", |
14 | 14 | "GGGCANCCAGCAGCCCTCGGGGCTTCTCTGTTTATGGAGTAGCCATTCTCGTATCCTTCTACTTTCTTAAACTTTCTTTCACTTACAAAAAAATAGTGGA", |
15 | | - "+", |
| 15 | + "", |
16 | 16 | "<@@DD#2AFFHHH<FHFF@@FEG@DF?BF4?FFGDIBC?B?=FHIEFHGGG@CGHIIHDHFHFECDEEEECCCCCCAC@CCC>CCCCCCBBBBAC>:@<C"); |
17 | 17 |
|
18 | 18 | FastqSummaryReport report = new FastqSummaryReport(); |
19 | 19 | report.parseRecord(rec); |
20 | 20 | assertEquals(1, report.getRecordsParsed()); |
21 | | - assertEquals(1, report.instruments.get("@ERR091788").intValue()); |
| 21 | + assertEquals(1, report.instruments.get("ERR091788").intValue()); |
22 | 22 | assertEquals(1, report.flowCellIds.get("HSQ955").intValue()); |
23 | 23 | assertEquals(1, report.flowCellLanes.get("2").intValue()); |
24 | 24 | assertEquals(1, report.tileNumbers.get(1101).intValue()); |
25 | 25 | assertEquals(1, report.firstInPair.intValue()); |
26 | 26 | assertEquals(0, report.secondInPair.intValue()); |
27 | | - |
28 | 27 | } |
29 | 28 |
|
30 | | - @Ignore // may need to cater for this in the future... |
31 | | - public void parseAnotherRecordHeader() { |
32 | | - FastqRecord rec = new FastqRecord("@SRR001666.1 071112_SLXA-EAS1_s_7:5:1:817:345 length=36", |
| 29 | + @Test // may need to cater for this in the future... |
| 30 | + public void parseHeaderDoubleSpace2() { |
| 31 | + FastqRecord rec = new FastqRecord("SRR001666.1 071112_SLXA-EAS1_s_7:5:1:817:345 length=36", |
33 | 32 | "GGGCANCCAGCAGCCCTCGGGGCTTCTCTGTTTATGGAGTAGCCATTCTCGTATCCTTCTACTTTCTTAAACTTTCTTTCACTTACAAAAAAATAGTGGA", |
34 | | - "+", |
| 33 | + "", |
35 | 34 | "<@@DD#2AFFHHH<FHFF@@FEG@DF?BF4?FFGDIBC?B?=FHIEFHGGG@CGHIIHDHFHFECDEEEECCCCCCAC@CCC>CCCCCCBBBBAC>:@<C"); |
36 | 35 |
|
37 | 36 | FastqSummaryReport report = new FastqSummaryReport(); |
38 | 37 | report.parseRecord(rec); |
39 | 38 | assertEquals(1, report.getRecordsParsed()); |
40 | | - assertEquals(1, report.instruments.get("@ERR091788").intValue()); |
41 | | - assertEquals(1, report.flowCellIds.get("HSQ955").intValue()); |
42 | | - assertEquals(1, report.flowCellLanes.get("2").intValue()); |
| 39 | + assertEquals(1, report.instruments.get("071112").intValue()); |
| 40 | + assertEquals(1, report.runIds.get("SLXA-EAS1_s_7").intValue()); |
| 41 | + assertEquals(1, report.flowCellLanes.get("5").intValue()); |
| 42 | + assertEquals(1, report.tileNumbers.get(1).intValue()); |
| 43 | + assertEquals(0, report.firstInPair.intValue()); |
| 44 | + assertEquals(0, report.secondInPair.intValue()); |
| 45 | + } |
| 46 | + @Test // may need to cater for this in the future... |
| 47 | + public void parseHeaderDoubleSpace() { |
| 48 | + |
| 49 | + /* |
| 50 | + @SRR14585604.19092 A00805:41:HMJJWDRXX:1:1101:15329:20181 length=101 |
| 51 | +TGCATTGTGTCAAAAGAAATTTCCTTATTTTCTACTGCCATTCCCATAAAAGTAAGTAGTCTCATTTTTGACATATTCTGTTCATGTAACAGGCCAAGTTA |
| 52 | ++SRR14585604.19092 A00805:41:HMJJWDRXX:1:1101:15329:20181 length=101 |
| 53 | +:::FF:F,:F,FF:F:FFF:FFF,FFFFF,FF:FFF,F:F:,F,:FFF:FF:FF:F,F,::F::FF,FF,,:F,F,FFF,FFF:,,FFFFF,F:FF,FF,F |
| 54 | + */ |
| 55 | + FastqRecord rec = new FastqRecord("SRR14585604.19092 A00805:41:HMJJWDRXX:1:1101:15329:20181 length=101", |
| 56 | + "TGCATTGTGTCAAAAGAAATTTCCTTATTTTCTACTGCCATTCCCATAAAAGTAAGTAGTCTCATTTTTGACATATTCTGTTCATGTAACAGGCCAAGTTA", |
| 57 | + "SRR14585604.19092 A00805:41:HMJJWDRXX:1:1101:15329:20181 length=101", |
| 58 | + ":::FF:F,:F,FF:F:FFF:FFF,FFFFF,FF:FFF,F:F:,F,:FFF:FF:FF:F,F,::F::FF,FF,,:F,F,FFF,FFF:,,FFFFF,F:FF,FF,F"); |
| 59 | + |
| 60 | + FastqSummaryReport report = new FastqSummaryReport(); |
| 61 | + report.parseRecord(rec); |
| 62 | + assertEquals(1, report.getRecordsParsed()); |
| 63 | + assertEquals(1, report.instruments.get("A00805").intValue()); |
| 64 | + assertEquals(1, report.flowCellIds.get("HMJJWDRXX").intValue()); |
| 65 | + assertEquals(1, report.flowCellLanes.get("1").intValue()); |
| 66 | + assertEquals(1, report.tileNumbers.get(1101).intValue()); |
| 67 | + assertEquals(0, report.firstInPair.intValue()); |
| 68 | + assertEquals(0, report.secondInPair.intValue()); |
| 69 | + } |
| 70 | + |
| 71 | + @Test |
| 72 | + public void parseHeaderSingleSpace() { |
| 73 | + /* |
| 74 | + @VH01336:23:AAC37HWHV:1:1101:18459:1000 1:N:0:GGGGGGGG+AGATCTCG |
| 75 | +GTCCAGTTGCATTTTAGTAAGCTCTTTTTGATTCTCAAATCCGGCGTCAACCATACCAGCAGAGGAAGCATCAGCACCAGCACGCTCCCAAGCATTAAGCT |
| 76 | ++ |
| 77 | +CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC;CCCCCCCCC;;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC-CCCCCCCC |
| 78 | + */ |
| 79 | + FastqRecord rec = new FastqRecord("VH01336:23:AAC37HWHV:1:1101:18459:1000 1:N:0:GGGGGGGG+AGATCTCG", |
| 80 | + "GTCCAGTTGCATTTTAGTAAGCTCTTTTTGATTCTCAAATCCGGCGTCAACCATACCAGCAGAGGAAGCATCAGCACCAGCACGCTCCCAAGCATTAAGCT", |
| 81 | + "", |
| 82 | + "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC;CCCCCCCCC;;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC-CCCCCCCC"); |
| 83 | + |
| 84 | + FastqSummaryReport report = new FastqSummaryReport(); |
| 85 | + report.parseRecord(rec); |
| 86 | + assertEquals(1, report.getRecordsParsed()); |
| 87 | + assertEquals(1, report.instruments.get("VH01336").intValue()); |
| 88 | + assertEquals(1, report.flowCellIds.get("AAC37HWHV").intValue()); |
| 89 | + assertEquals(1, report.flowCellLanes.get("1").intValue()); |
43 | 90 | assertEquals(1, report.tileNumbers.get(1101).intValue()); |
44 | 91 | assertEquals(1, report.firstInPair.intValue()); |
45 | 92 | assertEquals(0, report.secondInPair.intValue()); |
46 | | - |
47 | 93 | } |
48 | | - |
49 | | - |
50 | 94 |
|
| 95 | + @Test |
| 96 | + public void parseHeaderNoSpace() { |
| 97 | + /* |
| 98 | + @HWI-ST590:2:1201:12570:134058#0 |
| 99 | +AATAGTCCTAACGTTCTACATAACTTCAAGTAGTAAAATTCACCATCCTCT |
| 100 | ++ |
| 101 | +:BC8?ABCEBEB9CEBFB@BC;>BFD=DE?B;@DBDED?DCD?BDDDBBBB |
| 102 | + */ |
| 103 | + FastqRecord rec = new FastqRecord("HWI-ST590:2:1201:12570:134058#0", |
| 104 | + "AATAGTCCTAACGTTCTACATAACTTCAAGTAGTAAAATTCACCATCCTCT", |
| 105 | + "", |
| 106 | + ":BC8?ABCEBEB9CEBFB@BC;>BFD=DE?B;@DBDED?DCD?BDDDBBBB"); |
| 107 | + |
| 108 | + FastqSummaryReport report = new FastqSummaryReport(); |
| 109 | + report.parseRecord(rec); |
| 110 | + assertEquals(1, report.getRecordsParsed()); |
| 111 | + assertEquals(1, report.instruments.get("HWI-ST590").intValue()); |
| 112 | + assertTrue(report.flowCellIds.isEmpty()); |
| 113 | + assertEquals(1, report.flowCellLanes.get("2").intValue()); |
| 114 | + assertEquals(1, report.tileNumbers.get(1201).intValue()); |
| 115 | + assertEquals(0, report.firstInPair.intValue()); |
| 116 | + assertEquals(0, report.secondInPair.intValue()); |
| 117 | + } |
| 118 | + @Test |
| 119 | + public void parseHeaderNoSpace2() { |
| 120 | + /* |
| 121 | + @V350046278L1C001R00100004433/2 |
| 122 | +CGCTGAAAATTGAAAGCCCGCTTGGGATAAGTGACATTAAGAACTGGCACCGACTGCAGAACCGCAATTTCCAGTTGACGCTAAGTGGGGGCTTATTTAGCACCCAGCTCTGTTTGCCAACACCCCCTGGGCATGAGAGCTCCCCAAGGG |
| 123 | ++ |
| 124 | +HGGCGEE<DDDH<EAHBFGGGDBHHBB;C:HCGBEEBA@8HEDGAFGECFGG,1BH?@G)-C@EB?D/C6>GDHBBF(EH:7>>G@GH?G?F@?6<CB?B=DEC:>>CBE?G???BBG<.F:E?CFD?@?A:#5E>5BE/>BFFD+$E,> |
| 125 | + */ |
| 126 | + FastqRecord rec = new FastqRecord("V350046278L1C001R00100004433/2", |
| 127 | + "CGCTGAAAATTGAAAGCCCGCTTGGGATAAGTGACATTAAGAACTGGCACCGACTGCAGAACCGCAATTTCCAGTTGACGCTAAGTGGGGGCTTATTTAGCACCCAGCTCTGTTTGCCAACACCCCCTGGGCATGAGAGCTCCCCAAGGG", |
| 128 | + "", |
| 129 | + "HGGCGEE<DDDH<EAHBFGGGDBHHBB;C:HCGBEEBA@8HEDGAFGECFGG,1BH?@G)-C@EB?D/C6>GDHBBF(EH:7>>G@GH?G?F@?6<CB?B=DEC:>>CBE?G???BBG<.F:E?CFD?@?A:#5E>5BE/>BFFD+$E,>"); |
| 130 | + |
| 131 | + FastqSummaryReport report = new FastqSummaryReport(); |
| 132 | + report.parseRecord(rec); |
| 133 | + assertEquals(1, report.getRecordsParsed()); |
| 134 | + assertTrue(report.instruments.isEmpty()); |
| 135 | + assertTrue(report.flowCellIds.isEmpty()); |
| 136 | + assertTrue(report.flowCellLanes.isEmpty()); |
| 137 | + assertTrue(report.tileNumbers.isEmpty()); |
| 138 | + assertEquals(0, report.firstInPair.intValue()); |
| 139 | + assertEquals(0, report.secondInPair.intValue()); |
| 140 | + } |
51 | 141 | } |
0 commit comments