PedReader support for ; separated lines, not only newline
This commit is contained in:
parent
52f670c8b8
commit
0604ce55d1
|
|
@ -30,10 +30,7 @@ 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.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.Reader;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
|
|
@ -146,6 +143,11 @@ public class PedReader {
|
|||
return parse(new FileReader(source), missingFields, sampleDB);
|
||||
}
|
||||
|
||||
public final List<Sample> parse(final String source, EnumSet<MissingPedField> missingFields, SampleDataSource sampleDB) {
|
||||
logger.warn("Reading PED string: \"" + source + "\" with missing fields: " + missingFields);
|
||||
return parse(new StringReader(source.replace(";", String.format("%n"))), missingFields, sampleDB);
|
||||
}
|
||||
|
||||
public final List<Sample> parse(Reader reader, EnumSet<MissingPedField> missingFields, SampleDataSource sampleDB) {
|
||||
final List<String> lines = new XReadLines(reader).readLines();
|
||||
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ public class PedReaderUnitTest extends BaseTest {
|
|||
logger.warn("Test " + test);
|
||||
PedReader reader = new PedReader();
|
||||
SampleDataSource sampleDB = new SampleDataSource();
|
||||
List<Sample> readSamples = reader.parse(new StringReader(myFileContents), missing, sampleDB);
|
||||
List<Sample> readSamples = reader.parse(myFileContents, missing, sampleDB);
|
||||
Assert.assertEquals(new HashSet<Sample>(test.expectedSamples), new HashSet<Sample>(readSamples), "Parsed incorrect number of samples");
|
||||
}
|
||||
|
||||
|
|
@ -188,11 +188,18 @@ public class PedReaderUnitTest extends BaseTest {
|
|||
runTest(test, test.fileContents, EnumSet.noneOf(PedReader.MissingPedField.class));
|
||||
}
|
||||
|
||||
@Test(enabled = true, dataProvider = "readerTest", dependsOnMethods = "testPedReader")
|
||||
@Test(enabled = true, dataProvider = "readerTest")
|
||||
public void testPedReaderWithComments(PedReaderTest test) {
|
||||
runTest(test, String.format("#comment%n%s", test.fileContents), EnumSet.noneOf(PedReader.MissingPedField.class));
|
||||
}
|
||||
|
||||
@Test(enabled = true, dataProvider = "readerTest")
|
||||
public void testPedReaderWithSemicolons(PedReaderTest test) {
|
||||
runTest(test,
|
||||
test.fileContents.replace(String.format("%n"), ";"),
|
||||
EnumSet.noneOf(PedReader.MissingPedField.class));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
// missing format field tests
|
||||
// -----------------------------------------------------------------
|
||||
|
|
@ -218,7 +225,6 @@ public class PedReaderUnitTest extends BaseTest {
|
|||
|
||||
@DataProvider(name = "readerTestMissing")
|
||||
public Object[][] createPEDFilesWithMissing() {
|
||||
|
||||
new PedReaderTestMissing("missingFam",
|
||||
"fam1 kid dad mom 1 2",
|
||||
EnumSet.of(PedReader.MissingPedField.NO_FAMILY_ID),
|
||||
|
|
@ -253,7 +259,7 @@ public class PedReaderUnitTest extends BaseTest {
|
|||
return PedReaderTestMissing.getTests(PedReaderTestMissing.class);
|
||||
}
|
||||
|
||||
@Test(enabled = true, dataProvider = "readerTestMissing", dependsOnMethods = "testPedReader")
|
||||
@Test(enabled = true, dataProvider = "readerTestMissing")
|
||||
public void testPedReaderWithMissing(PedReaderTestMissing test) {
|
||||
final String contents = sliceContents(test.missingFields, test.fileContents);
|
||||
logger.warn("Test " + test);
|
||||
|
|
|
|||
Loading…
Reference in New Issue