private static boolean validVersion(File filepath) throws IOException { BufferedReader reader = Files.newBufferedReader(filepath.toPath(), UTF_8); // The first line must be the header String firstLine = reader.readLine(); reader.close(); try { VCFHeaderVersion version = VCFHeaderVersion.getHeaderVersion(firstLine); // If the version is greater than or equal to 4.2, we cannot handle it if (version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_2)) { return false; } } catch (TribbleException.InvalidHeader msg) { throw new IOException(msg); } return true; }
if ( version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_2) ) expectedTags.add("Version"); final Map<String,String> mapping = VCFHeaderLineTranslator.parseLine(version, line, expectedTags); } else if ( numberStr.equals(VCFConstants.PER_GENOTYPE_COUNT) ) { countType = VCFHeaderLineCount.G; } else if ( (version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) && numberStr.equals(VCFConstants.UNBOUNDED_ENCODING_v4)) || (! version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) && numberStr.equals(VCFConstants.UNBOUNDED_ENCODING_v3)) ) { countType = VCFHeaderLineCount.UNBOUNDED; } else {
if (version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_2)) expectedTags.add("Version"); final Map<String, String> mapping = VCFHeaderLineTranslator.parseLine(version, line, expectedTags); } else if (numberStr.equals(VCFConstants.PER_GENOTYPE_COUNT)) { countType = VCFHeaderLineCount.G; } else if ((version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) && numberStr.equals(VCFConstants.UNBOUNDED_ENCODING_v4)) || (!version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) && numberStr.equals(VCFConstants.UNBOUNDED_ENCODING_v3))) { countType = VCFHeaderLineCount.UNBOUNDED; } else {
if (version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_2)) { recommendedTags = Arrays.asList("Source", "Version"); } else { } else if (numberStr.equals(VCFConstants.PER_GENOTYPE_COUNT)) { countType = VCFHeaderLineCount.G; } else if ((version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) && numberStr.equals(VCFConstants.UNBOUNDED_ENCODING_v4)) || (!version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) && numberStr.equals(VCFConstants.UNBOUNDED_ENCODING_v3))) { countType = VCFHeaderLineCount.UNBOUNDED; } else { if (version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_2)) { this.source = mapping.get("Source"); this.version = mapping.get("Version");
if ( ! version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_1) && genotypeAlleleLocation == -1 ) generateException("Unable to find the GT field for the record; the GT field is required before VCF4.1"); if ( genotypeAlleleLocation > 0 )
if ( ! version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_1) && genotypeAlleleLocation == -1 ) generateException("Unable to find the GT field for the record; the GT field is required before VCF4.1"); if ( genotypeAlleleLocation > 0 )
if (!version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_1) && genotypeAlleleLocation == -1) { generateException("Unable to find the GT field for the record; the GT field is required before VCF4.1");
foundHeaderVersion = true; version = VCFHeaderVersion.toHeaderVersion(lineFields[1]); if ( ! version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) ) throw new TribbleException.InvalidHeader("This codec is strictly for VCFv4; please use the VCF3 codec for " + lineFields[1]); if ( version != VCFHeaderVersion.VCF4_0 && version != VCFHeaderVersion.VCF4_1 && version != VCFHeaderVersion.VCF4_2 )
foundHeaderVersion = true; version = VCFHeaderVersion.toHeaderVersion(lineFields[1]); if ( ! version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) ) throw new TribbleException.InvalidHeader("This codec is strictly for VCFv4; please use the VCF3 codec for " + lineFields[1]); if ( version != VCFHeaderVersion.VCF4_0 && version != VCFHeaderVersion.VCF4_1 && version != VCFHeaderVersion.VCF4_2 )
if (!version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_1) && genotypeAlleleLocation == -1) { generateException("Unable to find the GT field for the record; the GT field is required before VCF4.1");
foundHeaderVersion = true; version = VCFHeaderVersion.toHeaderVersion(lineFields[1]); if ( ! version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) ) throw new TribbleException.InvalidHeader("This codec is strictly for VCFv4; please use the VCF3 codec for " + lineFields[1]); if ( version != VCFHeaderVersion.VCF4_0 && version != VCFHeaderVersion.VCF4_1 && version != VCFHeaderVersion.VCF4_2 )
if ( ! version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_1) && genotypeAlleleLocation == -1 ) generateException("Unable to find the GT field for the record; the GT field is required before VCF4.1"); if ( genotypeAlleleLocation > 0 )