Added functionality to CatVariants to process .list files with -V

- Pivotal 70305712
This commit is contained in:
Phillip Dexheimer 2014-06-17 23:38:03 -04:00
parent da1dab6c32
commit da5e567b73
2 changed files with 30 additions and 0 deletions

View File

@ -38,6 +38,7 @@ import org.broadinstitute.gatk.utils.commandline.Output;
import org.broadinstitute.gatk.utils.commandline.CommandLineProgram;
import org.broadinstitute.gatk.utils.help.DocumentedGATKFeature;
import org.broadinstitute.gatk.utils.help.HelpConstants;
import org.broadinstitute.gatk.utils.text.XReadLines;
import org.broadinstitute.gatk.utils.variant.GATKVCFIndexType;
import org.broadinstitute.gatk.utils.variant.GATKVCFUtils;
import htsjdk.variant.bcf2.BCF2Codec;
@ -196,6 +197,28 @@ public class CatVariants extends CommandLineProgram {
return reader;
}
/**
* Replaces any .list files in rawFileList with the files named in said .list file
* @param rawFileList the original file list, possibly including .list files
* @return a new List, with .list files replaced
*/
private List<File> parseVariantList(final List<File> rawFileList) {
final List<File> result = new ArrayList<>(rawFileList.size());
for (final File rawFile : rawFileList) {
if (rawFile.getName().endsWith(".list")) {
try {
for (final String line : new XReadLines(rawFile, true))
result.add(new File(line));
} catch (IOException e) {
throw new UserException.CouldNotReadInputFile(rawFile, e);
}
} else {
result.add(rawFile);
}
}
return result;
}
@Override
protected int execute() throws Exception {
BasicConfigurator.configure();
@ -208,6 +231,8 @@ public class CatVariants extends CommandLineProgram {
throw new UserException("Couldn't load provided reference sequence file " + refFile, e);
}
variant = parseVariantList(variant);
Comparator<Pair<Integer,File>> positionComparator = new PositionComparator();
Queue<Pair<Integer,File>> priorityQueue;

View File

@ -78,6 +78,11 @@ public class CatVariantsIntegrationTest {
for (String extension : AbstractFeatureReader.BLOCK_COMPRESSED_EXTENSIONS)
new CatVariantsTestProvider("CatVariantsTest1.vcf" + extension, "CatVariantsTest2.vcf" + extension, BaseTest.createTempFile("CatVariantsTest", ".vcf" + extension), "33f728ac5c70ce2994f3619a27f47088");
//Test list parsing functionality
new CatVariantsTestProvider("CatVariantsTest1.list", "CatVariantsTest2.vcf", BaseTest.createTempFile("CatVariantsTest", ".vcf"), "d0d81eb7fd3905256c4ac7c0fc480094");
new CatVariantsTestProvider("CatVariantsTest1.vcf", "CatVariantsTest2.list", BaseTest.createTempFile("CatVariantsTest", ".vcf"), "d0d81eb7fd3905256c4ac7c0fc480094");
new CatVariantsTestProvider("CatVariantsTest1.list", "CatVariantsTest2.list", BaseTest.createTempFile("CatVariantsTest", ".vcf"), "d0d81eb7fd3905256c4ac7c0fc480094");
return CatVariantsTestProvider.getTests(CatVariantsTestProvider.class);
}