package picard.vcf; import htsjdk.samtools.util.IOUtil; import htsjdk.samtools.util.IntervalList; import htsjdk.samtools.util.Log; import htsjdk.variant.vcf.VCFFileReader; import picard.cmdline.CommandLineProgram; import picard.cmdline.CommandLineProgramProperties; import picard.cmdline.Option; import picard.cmdline.StandardOptionDefinitions; import picard.cmdline.programgroups.VcfOrBcf; import java.io.File; /** * Creates an interval list from a VCF * * @author ggrant@broadinstitute.org */ @CommandLineProgramProperties( usage = "Converts a VCF or BCF file to a Picard Interval List.", usageShort = "Converts a VCF or BCF file to a Picard Interval List.", programGroup = VcfOrBcf.class ) public class VcfToIntervalList extends CommandLineProgram { // The following attributes define the command-line arguments public static final Log LOG = Log.getInstance(VcfToIntervalList.class); @Option(doc="The BCF or VCF input file. The file format is determined by file extension.", shortName= StandardOptionDefinitions.INPUT_SHORT_NAME) public File INPUT; @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The output Picard Interval List") public File OUTPUT; public static void main(final String[] argv) { new VcfToIntervalList().instanceMainWithExit(argv); } @Override protected int doWork() { IOUtil.assertFileIsReadable(INPUT); IOUtil.assertFileIsWritable(OUTPUT); final IntervalList intervalList = VCFFileReader.fromVcf(INPUT); // Sort and write the output intervalList.uniqued().write(OUTPUT); return 0; } }