We now automatically compress the output VCF if the file suffix is one of the supported types (.gz, .bz, .bz2). You can still specify -bzip if you want to use another file suffix (or pipe it to sdout for some reason).
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@4096 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
7a8b6b87da
commit
7957b60768
|
|
@ -33,6 +33,7 @@ import java.io.File;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injects new command-line arguments into the system providing support for the genotype writer.
|
* Injects new command-line arguments into the system providing support for the genotype writer.
|
||||||
|
|
@ -44,6 +45,15 @@ public class VCFWriterArgumentTypeDescriptor extends ArgumentTypeDescriptor {
|
||||||
|
|
||||||
private static final String COMPRESSION_FULLNAME = "bzip_compression";
|
private static final String COMPRESSION_FULLNAME = "bzip_compression";
|
||||||
private static final String COMPRESSION_SHORTNAME = "bzip";
|
private static final String COMPRESSION_SHORTNAME = "bzip";
|
||||||
|
private static final HashSet<String> SUPPORTED_ZIPPED_SUFFIXES = new HashSet<String>();
|
||||||
|
//
|
||||||
|
// static list of zipped suffixes supported by this system.
|
||||||
|
//
|
||||||
|
static {
|
||||||
|
SUPPORTED_ZIPPED_SUFFIXES.add(".gz");
|
||||||
|
SUPPORTED_ZIPPED_SUFFIXES.add(".bz");
|
||||||
|
SUPPORTED_ZIPPED_SUFFIXES.add(".bz2");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The engine into which output stubs should be fed.
|
* The engine into which output stubs should be fed.
|
||||||
|
|
@ -111,7 +121,7 @@ public class VCFWriterArgumentTypeDescriptor extends ArgumentTypeDescriptor {
|
||||||
File writerFile = writerFileName != null ? new File(writerFileName) : null;
|
File writerFile = writerFileName != null ? new File(writerFileName) : null;
|
||||||
|
|
||||||
// Should we compress the output stream?
|
// Should we compress the output stream?
|
||||||
boolean compress = argumentIsPresent(createVCFCompressionArgumentDefinition(source), matches);
|
boolean compress = argumentIsPresent(createVCFCompressionArgumentDefinition(source), matches) || (writerFileName != null && SUPPORTED_ZIPPED_SUFFIXES.contains(getFileSuffix(writerFileName)));
|
||||||
|
|
||||||
// Create a stub for the given object.
|
// Create a stub for the given object.
|
||||||
VCFWriterStub stub = (writerFile != null) ? new VCFWriterStub(engine, writerFile, compress) : new VCFWriterStub(engine, System.out, compress);
|
VCFWriterStub stub = (writerFile != null) ? new VCFWriterStub(engine, writerFile, compress) : new VCFWriterStub(engine, System.out, compress);
|
||||||
|
|
@ -121,6 +131,18 @@ public class VCFWriterArgumentTypeDescriptor extends ArgumentTypeDescriptor {
|
||||||
return stub;
|
return stub;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a lower-cased version of the suffix of the provided file.
|
||||||
|
* @param fileName the file name. Must not be null.
|
||||||
|
* @return lower-cased version of the file suffix. Will not be null.
|
||||||
|
*/
|
||||||
|
private String getFileSuffix(String fileName) {
|
||||||
|
int indexOfLastDot = fileName.lastIndexOf(".");
|
||||||
|
if ( indexOfLastDot == -1 )
|
||||||
|
return "";
|
||||||
|
return fileName.substring(indexOfLastDot);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the optional compression argument for the VCF file.
|
* Creates the optional compression argument for the VCF file.
|
||||||
* @param source Argument source for the VCF file. Must not be null.
|
* @param source Argument source for the VCF file. Must not be null.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue