/**
*
*/
package com.github.lindenb.jvarkit.tools.vcf2xml;
import java.io.File;
import java.io.IOException;
import java.util.List;
import htsjdk.variant.variantcontext.writer.VariantContextWriter;
import com.beust.jcommander.Parameter;
import com.github.lindenb.jvarkit.util.jcommander.Launcher;
import com.github.lindenb.jvarkit.util.jcommander.Program;
import com.github.lindenb.jvarkit.util.picard.SAMSequenceDictionaryProgress;
import com.github.lindenb.jvarkit.util.vcf.VcfIterator;
import com.github.lindenb.jvarkit.util.vcf.XMLVcfWriterFactory;
/**
*/
@Program(name="vcf2xml",description="Convert VCF to XML",keywords={"vcf","xml"})
public class Vcf2Xml extends Launcher
{
@Parameter(names={"-o","--output"},description="Output file. Optional . Default: stdout")
private File outputFile = null;
public Vcf2Xml()
{
}
@Override
protected int doVcfToVcf(
final String inputName,
final VcfIterator iterin,
final VariantContextWriter out
) {
final SAMSequenceDictionaryProgress progress=new SAMSequenceDictionaryProgress(iterin.getHeader());
while(iterin.hasNext())
{
out.add(progress.watch(iterin.next()));
}
progress.finish();
return 0;
}
/** open VariantContextWriter */
@Override
protected VariantContextWriter openVariantContextWriter(final File outorNull) throws IOException {
final XMLVcfWriterFactory factory=XMLVcfWriterFactory.newInstance();
if(outorNull!=null)
{
factory.setOutputFile(outorNull);
}
return factory.createVariantContextWriter();
}
@Override
public int doWork(List<String> args) {
return doVcfToVcf(args, outputFile);
}
public static void main(final String[] args)
{
new Vcf2Xml().instanceMain(args);
}
}