small fix for the table codec; if you see a header line, you know you've finished parsing the header. Also also some changes to return the ref ordered data pool test to using MappedStreamSegment instead of EntireStream
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@4942 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
20f29e4690
commit
cba436fa2f
|
|
@ -13,7 +13,7 @@ import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* implementation of a simple table (tab or comma delimited format) input files... more improvements to come
|
* implementation of a simple table (tab or comma delimited format) input files
|
||||||
*/
|
*/
|
||||||
public class TableCodec implements ReferenceDependentFeatureCodec {
|
public class TableCodec implements ReferenceDependentFeatureCodec {
|
||||||
private String delimiterRegex = "\\s+";
|
private String delimiterRegex = "\\s+";
|
||||||
|
|
@ -48,8 +48,6 @@ public class TableCodec implements ReferenceDependentFeatureCodec {
|
||||||
String[] split = line.split(delimiterRegex);
|
String[] split = line.split(delimiterRegex);
|
||||||
if (split.length < 1)
|
if (split.length < 1)
|
||||||
throw new IllegalArgumentException("TableCodec line = " + line + " doesn't appear to be a valid table format");
|
throw new IllegalArgumentException("TableCodec line = " + line + " doesn't appear to be a valid table format");
|
||||||
|
|
||||||
|
|
||||||
return new TableFeature(genomeLocParser.parseGenomeLoc(split[0]),Arrays.asList(split),header);
|
return new TableFeature(genomeLocParser.parseGenomeLoc(split[0]),Arrays.asList(split),header);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,6 +65,7 @@ public class TableCodec implements ReferenceDependentFeatureCodec {
|
||||||
if (header.size() > 0) throw new IllegalStateException("Input table file seems to have two header lines. The second is = " + line);
|
if (header.size() > 0) throw new IllegalStateException("Input table file seems to have two header lines. The second is = " + line);
|
||||||
String spl[] = line.split(delimiterRegex);
|
String spl[] = line.split(delimiterRegex);
|
||||||
for (String s : spl) header.add(s);
|
for (String s : spl) header.add(s);
|
||||||
|
return header;
|
||||||
} else if (!line.startsWith(commentDelimiter)) {
|
} else if (!line.startsWith(commentDelimiter)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,10 @@ public class ReferenceOrderedDataPoolUnitTest extends BaseTest {
|
||||||
private GenomeLoc testSite2;
|
private GenomeLoc testSite2;
|
||||||
private GenomeLoc testSite3;
|
private GenomeLoc testSite3;
|
||||||
|
|
||||||
|
private GenomeLoc testInterval1; // an interval matching testSite1 -> testSite2 for queries
|
||||||
|
private GenomeLoc testInterval2; // an interval matching testSite2 -> testSite3 for queries
|
||||||
|
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public void init() throws FileNotFoundException {
|
public void init() throws FileNotFoundException {
|
||||||
seq = new CachingIndexedFastaSequenceFile(new File(hg18Reference));
|
seq = new CachingIndexedFastaSequenceFile(new File(hg18Reference));
|
||||||
|
|
@ -59,6 +63,8 @@ public class ReferenceOrderedDataPoolUnitTest extends BaseTest {
|
||||||
testSite1 = genomeLocParser.createGenomeLoc("chrM",10);
|
testSite1 = genomeLocParser.createGenomeLoc("chrM",10);
|
||||||
testSite2 = genomeLocParser.createGenomeLoc("chrM",20);
|
testSite2 = genomeLocParser.createGenomeLoc("chrM",20);
|
||||||
testSite3 = genomeLocParser.createGenomeLoc("chrM",30);
|
testSite3 = genomeLocParser.createGenomeLoc("chrM",30);
|
||||||
|
testInterval1 = genomeLocParser.createGenomeLoc("chrM",10,20);
|
||||||
|
testInterval2 = genomeLocParser.createGenomeLoc("chrM",20,30);
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeMethod
|
@BeforeMethod
|
||||||
|
|
@ -92,10 +98,10 @@ public class ReferenceOrderedDataPoolUnitTest extends BaseTest {
|
||||||
@Test
|
@Test
|
||||||
public void testCreateMultipleIterators() {
|
public void testCreateMultipleIterators() {
|
||||||
ReferenceOrderedQueryDataPool iteratorPool = new ReferenceOrderedQueryDataPool(triplet,builder,seq.getSequenceDictionary(),genomeLocParser);
|
ReferenceOrderedQueryDataPool iteratorPool = new ReferenceOrderedQueryDataPool(triplet,builder,seq.getSequenceDictionary(),genomeLocParser);
|
||||||
LocationAwareSeekableRODIterator iterator1 = iteratorPool.iterator( new EntireStream() );
|
LocationAwareSeekableRODIterator iterator1 = iteratorPool.iterator( new MappedStreamSegment(testInterval1) );
|
||||||
|
|
||||||
// Create a new iterator at position 2.
|
// Create a new iterator at position 2.
|
||||||
LocationAwareSeekableRODIterator iterator2 = iteratorPool.iterator( new EntireStream() );
|
LocationAwareSeekableRODIterator iterator2 = iteratorPool.iterator( new MappedStreamSegment(testInterval2) );
|
||||||
|
|
||||||
Assert.assertEquals(iteratorPool.numIterators(), 2, "Number of iterators in the pool is incorrect");
|
Assert.assertEquals(iteratorPool.numIterators(), 2, "Number of iterators in the pool is incorrect");
|
||||||
Assert.assertEquals(iteratorPool.numAvailableIterators(), 0, "Number of available iterators in the pool is incorrect");
|
Assert.assertEquals(iteratorPool.numAvailableIterators(), 0, "Number of available iterators in the pool is incorrect");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue