Merge pull request #630 from broadinstitute/pd_blank_lines_in_listfile
Allow blank lines in a (non-BAM) list file
This commit is contained in:
commit
78560212d0
|
|
@ -25,7 +25,6 @@
|
|||
|
||||
package org.broadinstitute.sting.commandline;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import htsjdk.tribble.Feature;
|
||||
import org.broadinstitute.sting.gatk.refdata.tracks.FeatureManager;
|
||||
|
|
@ -35,6 +34,7 @@ import org.broadinstitute.sting.utils.classloader.JVMUtils;
|
|||
import org.broadinstitute.sting.utils.exceptions.DynamicClassResolutionException;
|
||||
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
||||
import org.broadinstitute.sting.utils.exceptions.UserException;
|
||||
import org.broadinstitute.sting.utils.text.XReadLines;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
|
@ -477,7 +477,7 @@ public abstract class ArgumentTypeDescriptor {
|
|||
final Set<String> fileValues = new HashSet<>();
|
||||
|
||||
// parse each line separately using the given Tags if none are provided on each line
|
||||
for ( final String line: FileUtils.readLines(file) ) {
|
||||
for ( final String line: new XReadLines(file) ) {
|
||||
final String[] tokens = line.split("\\s+");
|
||||
final RodBinding binding;
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
package org.broadinstitute.sting.commandline;
|
||||
|
||||
import htsjdk.variant.variantcontext.VariantContext;
|
||||
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||
import htsjdk.samtools.SAMFileWriter;
|
||||
import org.broadinstitute.sting.BaseTest;
|
||||
|
|
@ -36,6 +37,8 @@ import org.testng.Assert;
|
|||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintStream;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
|
@ -167,6 +170,54 @@ public class ArgumentTypeDescriptorUnitTest extends BaseTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRodBindingsCollection() {
|
||||
|
||||
final ParsingEngine parser = new ParsingEngine(new ATDTestCommandLineProgram());
|
||||
|
||||
//A list file containing a single VCF
|
||||
final File listFile = new File(privateTestDir+"oneVCF.list");
|
||||
|
||||
try {
|
||||
Object result = ArgumentTypeDescriptor.getRodBindingsCollection(listFile,
|
||||
parser,
|
||||
VariantContext.class,
|
||||
"variant",
|
||||
new Tags(),
|
||||
"variantTest");
|
||||
if (!(result instanceof RodBindingCollection))
|
||||
throw new ReviewedStingException("getRodBindingsCollection did not return a RodBindingCollection");
|
||||
RodBindingCollection<?> rbc = (RodBindingCollection) result;
|
||||
|
||||
Assert.assertEquals(rbc.getType(), VariantContext.class);
|
||||
Assert.assertEquals(rbc.getRodBindings().size(), 1);
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new ReviewedStingException(e.getMessage(), e);
|
||||
}
|
||||
|
||||
//The same file, now with an extra blank line
|
||||
final File listFileWithBlank = new File(privateTestDir+"oneVCFwithBlankLine.list");
|
||||
|
||||
try {
|
||||
Object result = ArgumentTypeDescriptor.getRodBindingsCollection(listFileWithBlank,
|
||||
parser,
|
||||
VariantContext.class,
|
||||
"variant",
|
||||
new Tags(),
|
||||
"variantTest");
|
||||
if (!(result instanceof RodBindingCollection))
|
||||
throw new ReviewedStingException("getRodBindingsCollection did not return a RodBindingCollection");
|
||||
RodBindingCollection<?> rbc = (RodBindingCollection) result;
|
||||
|
||||
Assert.assertEquals(rbc.getType(), VariantContext.class);
|
||||
Assert.assertEquals(rbc.getRodBindings().size(), 1);
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new ReviewedStingException(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean outputIsStdout(final Object out) {
|
||||
if ( out == null ) {
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue