Merge pull request #660 from broadinstitute/pd_catvariants_list
Added functionality to CatVariants to process .list files with -V
This commit is contained in:
commit
db7dc8ab5f
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue