Count isActive calls directly
This commit is contained in:
parent
7580a487f3
commit
c08b782743
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue