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 LinkedHashSet<GATKSAMRecord> myReads = new LinkedHashSet<GATKSAMRecord>();
// package access for unit testing
ActivityProfile profile;
@Override
public String getTraversalUnits() {
return "active regions";
@ -56,7 +53,7 @@ public class TraverseActiveRegions <M,T> extends TraversalEngine<M,T,ActiveRegio
int minStart = Integer.MAX_VALUE;
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);

View File

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

View File

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