11package org .qcmg .snp ;
22
3- import static org .junit .Assert .assertEquals ;
43import htsjdk .samtools .SAMFileHeader ;
54import htsjdk .samtools .SAMSequenceRecord ;
65import htsjdk .samtools .SamReader ;
109import java .io .PrintWriter ;
1110import java .util .ArrayList ;
1211import java .util .Arrays ;
13- import java .util .Collections ;
1412import java .util .Comparator ;
1513import java .util .HashMap ;
1614import java .util .List ;
3533import org .qcmg .picard .SAMFileReaderFactory ;
3634import org .qcmg .qio .vcf .VcfFileReader ;
3735
36+ import static org .junit .Assert .*;
37+
3838public class VcfPipelineTest {
3939
4040 @ org .junit .Rule
@@ -43,13 +43,13 @@ public class VcfPipelineTest {
4343 public ExpectedException thrown = ExpectedException .none ();
4444
4545 private void createFile ( File vcfFile , List <String > data ) throws IOException {
46- try (final PrintWriter pw = new PrintWriter (vcfFile ); ){
47- data .stream (). forEachOrdered (pw ::println );
46+ try (final PrintWriter pw = new PrintWriter (vcfFile )){
47+ data .forEach (pw ::println );
4848 }
4949 }
5050
5151 @ Test
52- public void readsEndAfter1Snp () throws SnpException , Exception {
52+ public void readsEndAfter1Snp () throws Exception {
5353 final File iniFile = testFolder .newFile ("qsnp_vcf.ini" );
5454 final File testInputVcf = testFolder .newFile ("test.vcf" );
5555 final File testInputBam = testFolder .newFile ("test.sam" );
@@ -76,28 +76,28 @@ public void updateGTField() {
7676 VcfRecord v = new VcfRecord (new String []{"chr1" ,"881627" ,"rs2272757" ,"G" ,"A" ,"164.77" ,"." ,"AC=1;AF=0.500;AN=2;BaseQRankSum=-2.799;ClippingRankSum=1.555;DB;DP=18;FS=7.375;MLEAC=1;MLEAF=0.500;MQ=59.94;MQ0=0;MQRankSum=0.400;QD=9.15;ReadPosRankSum=0.755;SOR=0.044" ,"GT:AD:DP:GQ:PL" ,"0/1:10,8:18:99:193,0,370" ,".:.:.:.:." });
7777 List <String > ff = v .getFormatFields ();
7878 assertEquals (3 , ff .size ());
79- assertEquals ( true , ff .get (1 ).contains ("0/1" ));
79+ assertTrue ( ff .get (1 ).contains ("0/1" ));
8080 assertEquals (".:.:.:.:." , ff .get (2 ));
8181 VcfPipeline .updateGTFieldIFNoCall (v , 10 , false );
8282 ff = v .getFormatFields ();
8383 assertEquals (3 , ff .size ());
84- assertEquals ( true , ff .get (1 ).contains ("0/1" ));
84+ assertTrue ( ff .get (1 ).contains ("0/1" ));
8585 assertEquals ("./.:.:10:.:." , ff .get (2 ));
8686 }
8787 @ Test
8888 public void updateGTFieldAgain () {
8989 VcfRecord v = new VcfRecord (new String []{"chr1" ,"31029" ,"rs372996257" ,"G" ,"A" ,"." ,"." ,"FLANK=TCACCAGGAAC;BaseQRankSum=1.632;ClippingRankSum=0.457;DP=15;FS=24.362;MQ=23.95;MQRankSum=-0.326;QD=2.38;ReadPosRankSum=2.285;SOR=3.220;IN=1,2;DB" ,"GT:AD:CCC:CCM:DP:FT:GQ:INF:MR:NNS:OABS" ,"./.:.:.:3:.:.:.:.:.:.:G14[37.5]0[0]" ,"0/1:11,4:.:3:15:SBIASALT:64:SOMATIC:4:4:A0[0]4[41];G10[39]2[41]" });
9090 List <String > ff = v .getFormatFields ();
9191 assertEquals (3 , ff .size ());
92- assertEquals ( true , ff .get (1 ).contains ("./." ));
92+ assertTrue ( ff .get (1 ).contains ("./." ));
9393 VcfPipeline .updateGTFieldIFNoCall (v , 14 , true );
9494 ff = v .getFormatFields ();
9595 assertEquals (3 , ff .size ());
96- assertEquals ( true , ff .get (1 ).contains ("./." ));
96+ assertTrue ( ff .get (1 ).contains ("./." ));
9797 }
9898
9999 @ Test
100- public void classify () throws SnpException , Exception {
100+ public void classify () throws Exception {
101101 final File iniFile = testFolder .newFile ("qsnp_vcf.ini" );
102102 final File testInputVcf = testFolder .newFile ("test.vcf" );
103103 final File testInputBam = testFolder .newFile ("test.sam" );
@@ -125,7 +125,7 @@ public void classify() throws SnpException, Exception {
125125 new VcfPipeline (new Ini (iniFile ), new QExec ("stackOverflow2" , "test" , null ), false );
126126 // check the vcf output file
127127 assertEquals (testVcfs .size () + controlVcfs .size () -2 , noOfLinesInVCFOutputFile (vcfOutput )); // -2 removes the 2 header files
128- try (VcfFileReader reader = new VcfFileReader (vcfOutput ); ){
128+ try (VcfFileReader reader = new VcfFileReader (vcfOutput )){
129129 for (VcfRecord vcf : reader ) {
130130
131131 /*
@@ -144,7 +144,7 @@ public void classify() throws SnpException, Exception {
144144 }
145145
146146 @ Test
147- public void classifySingleSample () throws SnpException , Exception {
147+ public void classifySingleSample () throws Exception {
148148 final File iniFile = testFolder .newFile ("qsnp_vcf.ini" );
149149 final File testInputVcf = testFolder .newFile ("test.vcf" );
150150 final File vcfOutput = testFolder .newFile ("output.vcf" );
@@ -163,7 +163,7 @@ public void classifySingleSample() throws SnpException, Exception {
163163 new VcfPipeline (new Ini (iniFile ), new QExec ("classifySingleSample" , "test" , null ), true );
164164 // check the vcf output file
165165 assertEquals (testVcfs .size () - 1 , noOfLinesInVCFOutputFile (vcfOutput )); // -1 removes the header file
166- try (VcfFileReader reader = new VcfFileReader (vcfOutput ); ){
166+ try (VcfFileReader reader = new VcfFileReader (vcfOutput )){
167167 for (VcfRecord vcf : reader ) {
168168
169169 /*
@@ -182,7 +182,7 @@ public void classifySingleSample() throws SnpException, Exception {
182182 }
183183 }
184184 @ Test
185- public void readsEndAfter2Snps () throws SnpException , Exception {
185+ public void readsEndAfter2Snps () throws Exception {
186186 final File iniFile = testFolder .newFile ("qsnp_vcf.ini" );
187187 final File testInputVcf = testFolder .newFile ("test.vcf" );
188188 final File testInputBam = testFolder .newFile ("test.sam" );
@@ -210,7 +210,7 @@ public void readsEndAfter2Snps() throws SnpException, Exception {
210210 assertEquals (vcfs .size ()-1 , noOfLinesInVCFOutputFile (vcfOutput ));
211211 }
212212 @ Test
213- public void readsEndBefore3Snps () throws SnpException , Exception {
213+ public void readsEndBefore3Snps () throws Exception {
214214 final File iniFile = testFolder .newFile ("qsnp_vcf.ini" );
215215 final File testInputVcf = testFolder .newFile ("test.vcf" );
216216 final File testInputBam = testFolder .newFile ("test.sam" );
@@ -236,7 +236,7 @@ public void readsEndBefore3Snps() throws SnpException, Exception {
236236 }
237237
238238 @ Test
239- public void readsEndBefore4Snps () throws SnpException , Exception {
239+ public void readsEndBefore4Snps () throws Exception {
240240 final File iniFile = testFolder .newFile ("qsnp_vcf.ini" );
241241 final File testInputVcf = testFolder .newFile ("test.vcf" );
242242 final File testInputBam = testFolder .newFile ("test.sam" );
@@ -263,7 +263,7 @@ public void readsEndBefore4Snps() throws SnpException, Exception {
263263 }
264264
265265 @ Test
266- public void compoundSnps () throws SnpException , Exception {
266+ public void compoundSnps () throws Exception {
267267 final File iniFile = testFolder .newFile ("qsnp_vcf.ini" );
268268 final File testInputVcf = testFolder .newFile ("test.vcf" );
269269 final File testInputBam = testFolder .newFile ("test.sam" );
@@ -291,10 +291,10 @@ public void compoundSnps() throws SnpException, Exception {
291291 public void sorting () throws IOException {
292292
293293 Comparator <String > comp = null ;
294- List <String > sortedContigs = new ArrayList <String >();
294+ List <String > sortedContigs = new ArrayList <>();
295295 final File testInputBam = testFolder .newFile ("test.sam" );
296296 createFile (testInputBam , getBamFile ());
297- try (SamReader reader = SAMFileReaderFactory .createSAMFileReader (testInputBam ); ) {
297+ try (SamReader reader = SAMFileReaderFactory .createSAMFileReader (testInputBam )) {
298298 final SAMFileHeader header = reader .getFileHeader ();
299299
300300 for (final SAMSequenceRecord contig : header .getSequenceDictionary ().getSequences ()) {
@@ -305,48 +305,47 @@ public void sorting() throws IOException {
305305 comp = ChrPositionComparator .getChrNameComparator (sortedContigs );
306306 Comparator <ChrPosition > c = ChrPositionComparator .getComparator (comp );
307307
308- List <ChrPosition > chrPos = sortedContigs .stream ().map (s -> ChrPositionUtils .getChrPosition (s , 1 , 1 )).collect (Collectors .toList ());
309-
310- Collections .sort (chrPos , VcfPipeline .CHR_COMPARATOR );
311- assertEquals (22 , chrPos .indexOf (ChrPositionUtils .getChrPosition ("chrMT" , 1 , 1 )));
312- Collections .sort (chrPos , c );
308+ List <ChrPosition > chrPos = sortedContigs .stream ().map (s -> ChrPositionUtils .getChrPosition (s , 1 , 1 )).sorted (VcfPipeline .CHR_COMPARATOR ).collect (Collectors .toList ());
309+
310+ assertEquals (24 , chrPos .indexOf (ChrPositionUtils .getChrPosition ("chrMT" , 1 , 1 )));
311+ chrPos .sort (c );
313312 assertEquals (83 , chrPos .indexOf (ChrPositionUtils .getChrPosition ("chrMT" , 1 , 1 )));
314-
315- assertEquals ( true , c .compare (ChrPositionUtils .getChrPosition ("chr1" , 1 , 1 ), ChrPositionUtils .getChrPosition ("chr1" , 2 , 2 )) < 0 );
316- assertEquals (true , c .compare (ChrPositionUtils .getChrPosition ("chr1" , 2 , 2 ), ChrPositionUtils .getChrPosition ("chr1" , 2 , 2 )) == 0 );
317- assertEquals ( true , c .compare (ChrPositionUtils .getChrPosition ("chr1" , 2 , 2 ), ChrPositionUtils .getChrPosition ("chr1" , 1 , 1 )) > 0 );
318- assertEquals ( true , c .compare (ChrPositionUtils .getChrPosition ("chr1" , 2 , 2 ), ChrPositionUtils .getChrPosition ("chr2" , 1 , 1 )) < 0 );
319- assertEquals ( true , c .compare (ChrPositionUtils .getChrPosition ("chr2" , 2 , 20 ), ChrPositionUtils .getChrPosition ("chr2" , 2 , 2 )) > 0 );
313+
314+ assertTrue ( c .compare (ChrPositionUtils .getChrPosition ("chr1" , 1 , 1 ), ChrPositionUtils .getChrPosition ("chr1" , 2 , 2 )) < 0 );
315+ assertEquals (0 , c .compare (ChrPositionUtils .getChrPosition ("chr1" , 2 , 2 ), ChrPositionUtils .getChrPosition ("chr1" , 2 , 2 )));
316+ assertTrue ( c .compare (ChrPositionUtils .getChrPosition ("chr1" , 2 , 2 ), ChrPositionUtils .getChrPosition ("chr1" , 1 , 1 )) > 0 );
317+ assertTrue ( c .compare (ChrPositionUtils .getChrPosition ("chr1" , 2 , 2 ), ChrPositionUtils .getChrPosition ("chr2" , 1 , 1 )) < 0 );
318+ assertTrue ( c .compare (ChrPositionUtils .getChrPosition ("chr2" , 2 , 20 ), ChrPositionUtils .getChrPosition ("chr2" , 2 , 2 )) > 0 );
320319 }
321320
322321
323322 @ Test
324323 public void getListComparator () throws IOException {
325324 List <String > list = Arrays .asList ("chr1" , "chr2" );
326325 Comparator <String > comp = ChrPositionComparator .getChrNameComparator (list );
327-
328- assertEquals ( true , comp .compare ("chr1" , "chr2" ) < 0 );
329- assertEquals ( true , comp .compare ("chr2" , "chr1" ) > 0 );
326+
327+ assertTrue ( comp .compare ("chr1" , "chr2" ) < 0 );
328+ assertTrue ( comp .compare ("chr2" , "chr1" ) > 0 );
330329
331330 final File testInputBam = testFolder .newFile ("test.sam" );
332331 createFile (testInputBam , getBamFile ());
333- try (SamReader reader = SAMFileReaderFactory .createSAMFileReader (testInputBam ); ) {
332+ try (SamReader reader = SAMFileReaderFactory .createSAMFileReader (testInputBam )) {
334333 final SAMFileHeader header = reader .getFileHeader ();
335334
336- final List <String > sortedContigs = new ArrayList <String >();
335+ final List <String > sortedContigs = new ArrayList <>();
337336 for (final SAMSequenceRecord contig : header .getSequenceDictionary ().getSequences ()) {
338337 sortedContigs .add (contig .getSequenceName ());
339338 }
340339 comp = ChrPositionComparator .getChrNameComparator (sortedContigs );
341340 }
342-
343- assertEquals ( true , comp .compare ("chr1" , "chr2" ) < 0 );
344- assertEquals ( true , comp .compare ("chr2" , "chr1" ) > 0 );
345- assertEquals ( true , comp .compare ("chrMT" , "chr1" ) > 0 );
346- assertEquals ( true , comp .compare ("chrMT" , "GL000249.1" ) > 0 );
341+
342+ assertTrue ( comp .compare ("chr1" , "chr2" ) < 0 );
343+ assertTrue ( comp .compare ("chr2" , "chr1" ) > 0 );
344+ assertTrue ( comp .compare ("chrMT" , "chr1" ) > 0 );
345+ assertTrue ( comp .compare ("chrMT" , "GL000249.1" ) > 0 );
347346
348347 List <String > toSort = Arrays .asList ("chrMT" , "chrX" ,"chr1" , "chrY" , "GL000217.1" );
349- Collections .sort (toSort , comp );
348+ toSort .sort (comp );
350349 assertEquals (0 , toSort .indexOf ("chr1" ));
351350 assertEquals (1 , toSort .indexOf ("chrX" ));
352351 assertEquals (2 , toSort .indexOf ("chrY" ));
@@ -357,15 +356,15 @@ public void getListComparator() throws IOException {
357356 @ Ignore
358357 public void testVcfOmissionBasedOnLackOfData () {
359358 VcfRecord vcf = new VcfRecord (new String []{"chrX" ,"84428775" ,"." ,"C" ,"CT" ,"368.74" ,"." ,"AC=1;AF=0.500;AN=2;BaseQRankSum=1.883;ClippingRankSum=0.000;DP=18;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.000;QD=20.49;ReadPosRankSum=0.774;SOR=0.941" ,"GT" ,"./." });
360- assertEquals (true , VcfPipeline .FF_NOT_ENOUGH_INFO . equals ( vcf .getFormatFieldStrings () ));
359+ assertEquals (VcfPipeline .FF_NOT_ENOUGH_INFO , vcf .getFormatFieldStrings ());
361360 vcf = new VcfRecord (new String []{"chrX" ,"84428775" ,"." ,"C" ,"CT" ,"368.74" ,"." ,"AC=1;AF=0.500;AN=2;BaseQRankSum=1.883;ClippingRankSum=0.000;DP=18;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.000;QD=20.49;ReadPosRankSum=0.774;SOR=0.941" ,"GT" ,"C/CT" });
362- assertEquals ( false , VcfPipeline .FF_NOT_ENOUGH_INFO . equals ( vcf .getFormatFieldStrings () ));
361+ assertNotEquals ( VcfPipeline .FF_NOT_ENOUGH_INFO , vcf .getFormatFieldStrings ());
363362 vcf = new VcfRecord (new String []{"chrX" ,"84428775" ,"." ,"C" ,"CT" ,"368.74" ,"." ,"AC=1;AF=0.500;AN=2;BaseQRankSum=1.883;ClippingRankSum=0.000;DP=18;ExcessHet=3.0103;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.000;QD=20.49;ReadPosRankSum=0.774;SOR=0.941" ,"GT:AD" ,"./.:0" });
364- assertEquals ( false , VcfPipeline .FF_NOT_ENOUGH_INFO . equals ( vcf .getFormatFieldStrings () ));
363+ assertNotEquals ( VcfPipeline .FF_NOT_ENOUGH_INFO , vcf .getFormatFieldStrings ());
365364 }
366365
367366 @ Test
368- public void stackOverflow () throws SnpException , Exception {
367+ public void stackOverflow () throws Exception {
369368 /*
370369 * I think that this is due to the comparator placing chrMT before the GL's whereas in the bam headers and vcfs, chrMT is last.
371370 * Not the case - see getLIstComparator test
@@ -646,7 +645,7 @@ public void getExistingVcfHeader() throws Exception {
646645 TestVcfPipeline vp = new TestVcfPipeline (true );
647646 vp .testVcfFile = vcfFile .getAbsolutePath ();
648647 VcfHeader headerFromFile = null ;
649- try (VcfFileReader reader = new VcfFileReader (vcfFile ); ) {
648+ try (VcfFileReader reader = new VcfFileReader (vcfFile )) {
650649 headerFromFile = reader .getVcfHeader ();
651650 }
652651 vp .setTestVcfHeader (headerFromFile );
@@ -658,21 +657,21 @@ public void getExistingVcfHeader() throws Exception {
658657 if (i == 1 ) {
659658 assertEquals ("##fileformat=VCFv4.1" , rec .toString ());
660659 } else if (i == 2 ) {
661- assertEquals ( true , rec .toString ().startsWith (VcfHeaderUtils .STANDARD_UUID_LINE ));
662- } else if (i == 3 ) {
663- assertEquals ( true , rec .toString ().startsWith ("##reference" ));
660+ assertTrue ( rec .toString ().startsWith (VcfHeaderUtils .STANDARD_UUID_LINE ));
661+ } else if (i == 3 ) {
662+ assertTrue ( rec .toString ().startsWith ("##reference" ));
664663 } else if (i == 4 ) {
665- assertEquals ( true , rec .toString ().startsWith (VcfHeaderUtils .HEADER_LINE_FILTER ));
664+ assertTrue ( rec .toString ().startsWith (VcfHeaderUtils .HEADER_LINE_FILTER ));
666665 } else if (i > 4 && i < 24 ) {
667- assertEquals ( true , rec .toString ().startsWith (VcfHeaderUtils .HEADER_LINE_INFO ));
666+ assertTrue ( rec .toString ().startsWith (VcfHeaderUtils .HEADER_LINE_INFO ));
668667 }else if (i > 23 && i < 29 ) {
669- assertEquals ( true , rec .toString ().startsWith (VcfHeaderUtils .HEADER_LINE_FORMAT ));
668+ assertTrue ( rec .toString ().startsWith (VcfHeaderUtils .HEADER_LINE_FORMAT ));
670669 } else if (i > 29 && i < 50 ) {
671- assertEquals ( true , rec .toString ().startsWith ("##contig" ));
670+ assertTrue ( rec .toString ().startsWith ("##contig" ));
672671 } else if (i == 29 ) {
673- assertEquals ( true , rec .toString ().startsWith ("##GATKCommandLine" ));
672+ assertTrue ( rec .toString ().startsWith ("##GATKCommandLine" ));
674673 } else {
675- assertEquals ( true , rec .toString ().startsWith ("#CHROM" ));
674+ assertTrue ( rec .toString ().startsWith ("#CHROM" ));
676675 }
677676 }
678677 assertEquals (50 , i ); // no additional header added at this stage
@@ -684,21 +683,21 @@ public void getExistingVcfHeader() throws Exception {
684683 if (rec .toString ().startsWith (VcfHeaderUtils .STANDARD_FILE_FORMAT )
685684 || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_FINAL_HEADER_LINE ))
686685 continue ;
687- assertEquals ( true , rec .getId () != null //???
688- || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_CONTROL_VCF )
689- || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_CONTROL_VCF_UUID )
690- || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_CONTROL_VCF_GATK_VER )
691- || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_TEST_VCF )
692- || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_TEST_VCF_GATK_VER )
693- || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_TEST_VCF_UUID ));
686+ assertTrue ( rec .getId () != null //???
687+ || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_CONTROL_VCF )
688+ || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_CONTROL_VCF_UUID )
689+ || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_CONTROL_VCF_GATK_VER )
690+ || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_TEST_VCF )
691+ || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_TEST_VCF_GATK_VER )
692+ || rec .toString ().startsWith (VcfHeaderUtils .STANDARD_TEST_VCF_UUID ));
694693 }
695694
696695 // now check that when calling writeToVcf that we get this along with standard qsnp vcf header
697696 File qsnpVcfFile = testFolder .newFile ();
698697 vp .writeVCF (qsnpVcfFile .getAbsolutePath ());
699698
700699 VcfHeader finalHeader = null ;
701- try (VcfFileReader reader2 = new VcfFileReader (qsnpVcfFile ); ) {
700+ try (VcfFileReader reader2 = new VcfFileReader (qsnpVcfFile )) {
702701 finalHeader = reader2 .getVcfHeader ();
703702 }
704703
@@ -725,14 +724,13 @@ public void getExistingVcfHeader() throws Exception {
725724 assertEquals (rec , finalRec );
726725 String line1 = rec .toString ();
727726 String line2 = finalRec .toString ();
728- assertEquals (true , line1 .equals (line2 ));
729- assertEquals (line1 .hashCode (), line1 .hashCode ());
727+ assertEquals (line1 , line2 );
730728 System .out .println ("finalRec: BaseQRankSum hashCode: " + finalRec .hashCode ());
731729 }
732730 }
733731 }
734-
735- assertEquals ( true , finalHeaderRecords .containsAll (existingHeaderRecords ));
732+
733+ assertTrue ( finalHeaderRecords .containsAll (existingHeaderRecords ));
736734 }
737735
738736 @ Test
@@ -757,7 +755,7 @@ public void merge() {
757755 */
758756 VcfPipeline .mergeVcfRecords (controlMap , testMap , mergedVcfs );
759757 assertEquals (1 , mergedVcfs .size ());
760- VcfRecord mergedRec = mergedVcfs .get ( 0 );
758+ VcfRecord mergedRec = mergedVcfs .getFirst ( );
761759 Map <String , String []> ffMap = VcfUtils .getFormatFieldsAsMap (mergedRec .getFormatFields ());
762760 assertEquals ("T,G" , mergedRec .getAlt ());
763761 assertEquals ("0/1" , ffMap .get (VcfHeaderUtils .FORMAT_GENOTYPE )[0 ]);
@@ -768,7 +766,7 @@ public void merge() {
768766
769767 private int noOfLinesInVCFOutputFile (File vcfOutput ) throws IOException {
770768 int noOfLines = 0 ;
771- try (VcfFileReader reader = new VcfFileReader (vcfOutput ); ){
769+ try (VcfFileReader reader = new VcfFileReader (vcfOutput )){
772770 for (VcfRecord vcf : reader ) noOfLines ++;
773771 }
774772 return noOfLines ;
0 commit comments