Count isActive calls directly

This commit is contained in:
Joel Thibault 2012-11-19 14:39:06 -05:00
parent 7580a487f3
commit c08b782743
3 changed files with 9 additions and 12 deletions

View File

@ -34,9 +34,6 @@ public class TraverseActiveRegions <M,T> extends TraversalEngine<M,T,ActiveRegio
private final LinkedList<ActiveRegion> workQueue = new LinkedList<ActiveRegion>(); private final LinkedList<ActiveRegion> workQueue = new LinkedList<ActiveRegion>();
private final LinkedHashSet<GATKSAMRecord> myReads = new LinkedHashSet<GATKSAMRecord>(); private final LinkedHashSet<GATKSAMRecord> myReads = new LinkedHashSet<GATKSAMRecord>();
// package access for unit testing
ActivityProfile profile;
@Override @Override
public String getTraversalUnits() { public String getTraversalUnits() {
return "active regions"; return "active regions";
@ -56,7 +53,7 @@ public class TraverseActiveRegions <M,T> extends TraversalEngine<M,T,ActiveRegio
int minStart = Integer.MAX_VALUE; int minStart = Integer.MAX_VALUE;
final List<ActiveRegion> activeRegions = new LinkedList<ActiveRegion>(); final List<ActiveRegion> activeRegions = new LinkedList<ActiveRegion>();
profile = new ActivityProfile(engine.getGenomeLocParser(), walker.hasPresetActiveRegions() ); ActivityProfile profile = new ActivityProfile(engine.getGenomeLocParser(), walker.hasPresetActiveRegions() );
ReferenceOrderedView referenceOrderedDataView = getReferenceOrderedView(walker, dataProvider, locusView); ReferenceOrderedView referenceOrderedDataView = getReferenceOrderedView(walker, dataProvider, locusView);

View File

@ -103,11 +103,6 @@ public class ActivityProfile {
isActiveList.add(result); isActiveList.add(result);
} }
// for unit testing
public List<ActivityProfileResult> getActiveList() {
return isActiveList;
}
public int size() { public int size() {
return isActiveList.size(); return isActiveList.size();
} }

View File

@ -41,6 +41,7 @@ public class TraverseActiveRegionsTest extends BaseTest {
private class DummyActiveRegionWalker extends ActiveRegionWalker<Integer, Integer> { private class DummyActiveRegionWalker extends ActiveRegionWalker<Integer, Integer> {
private final double prob; private final double prob;
public List<GenomeLoc> isActiveCalls = new ArrayList<GenomeLoc>();
public DummyActiveRegionWalker() { public DummyActiveRegionWalker() {
this.prob = 1.0; this.prob = 1.0;
@ -48,6 +49,7 @@ public class TraverseActiveRegionsTest extends BaseTest {
@Override @Override
public ActivityProfileResult isActive(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { public ActivityProfileResult isActive(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) {
isActiveCalls.add(ref.getLocus());
return new ActivityProfileResult(ref.getLocus(), prob); return new ActivityProfileResult(ref.getLocus(), prob);
} }
@ -71,7 +73,7 @@ public class TraverseActiveRegionsTest extends BaseTest {
private IndexedFastaSequenceFile reference; private IndexedFastaSequenceFile reference;
private GenomeLocParser genomeLocParser; private GenomeLocParser genomeLocParser;
private ActiveRegionWalker<Integer, Integer> walker; private DummyActiveRegionWalker walker;
@BeforeClass @BeforeClass
private void init() throws FileNotFoundException { private void init() throws FileNotFoundException {
@ -83,18 +85,21 @@ public class TraverseActiveRegionsTest extends BaseTest {
@Test @Test
public void testAllIntervalsSeen() throws Exception { public void testAllIntervalsSeen() throws Exception {
List<GenomeLoc> intervals = new ArrayList<GenomeLoc>(); List<GenomeLoc> intervals = new ArrayList<GenomeLoc>();
List<GenomeLoc> activeIntervals = new ArrayList<GenomeLoc>();
GenomeLoc interval = genomeLocParser.createGenomeLoc("1", 1, 1); GenomeLoc interval = genomeLocParser.createGenomeLoc("1", 1, 1);
intervals.add(interval); intervals.add(interval);
LocusShardDataProvider dataProvider = createDataProvider(intervals); LocusShardDataProvider dataProvider = createDataProvider(intervals);
t.traverse(walker, dataProvider, 0); t.traverse(walker, dataProvider, 0);
activeIntervals.addAll(walker.isActiveCalls);
boolean allGenomeLocsSeen = true; boolean allGenomeLocsSeen = true;
for (GenomeLoc loc : intervals) { for (GenomeLoc loc : intervals) {
boolean thisGenomeLocSeen = false; boolean thisGenomeLocSeen = false;
for (ActivityProfileResult active : t.profile.getActiveList()) { for (GenomeLoc activeLoc : activeIntervals) {
if (loc.equals(active.getLoc())) { if (loc.equals(activeLoc)) {
thisGenomeLocSeen = true; thisGenomeLocSeen = true;
break; break;
} }