Added RefMetaDataTracker system as a replacement for the List<RefenenceOrderedData> going into walkers. This system allows you to more easily get a tracker for processing using the lookup(name, default) system. See Pileup for an example.

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@292 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
depristo 2009-04-03 19:54:54 +00:00
parent c1abcfb014
commit 4eac3193f7
17 changed files with 118 additions and 54 deletions

View File

@ -0,0 +1,54 @@
package org.broadinstitute.sting.gatk.refdata;
import org.apache.log4j.Logger;
import java.util.HashMap;
import java.util.List;
import java.util.Collection;
/**
* Created by IntelliJ IDEA.
* User: mdepristo
* Date: Apr 3, 2009
* Time: 3:05:23 PM
* To change this template use File | Settings | File Templates.
*/
public class RefMetaDataTracker {
final HashMap<String, ReferenceOrderedDatum> map = new HashMap<String, ReferenceOrderedDatum>();
protected static Logger logger = Logger.getLogger(RefMetaDataTracker.class);
/**
* Finds the reference meta data named name, if it exists, otherwise returns the defaultValue
*
* @param name
* @param defaultValue
* @return
*/
public ReferenceOrderedDatum lookup(final String name, ReferenceOrderedDatum defaultValue) {
//logger.debug(String.format("Lookup %s%n", name));
if ( map.containsKey(name) )
return map.get(name);
else
return defaultValue;
}
public Object lookup(final String name, Object defaultValue) {
if ( map.containsKey(name) )
return map.get(name);
else
return defaultValue;
}
public Object hasROD(final String name) {
return map.containsKey(name);
}
public Collection<ReferenceOrderedDatum> getAllRods() {
return map.values();
}
public void bind(final String name, ReferenceOrderedDatum rod) {
//logger.debug(String.format("Binding %s to %s%n", name, rod));
map.put(name, rod);
}
}

View File

@ -35,6 +35,8 @@ public class ReferenceOrderedData<ROD extends ReferenceOrderedDatum> implements
this.name = name;
}
public String getName() { return name; }
public RODIterator iterator() {
return new RODIterator(new SimpleRODIterator());
}

View File

@ -19,6 +19,7 @@ import org.apache.log4j.Logger;
import org.broadinstitute.sting.gatk.iterators.*;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.gatk.walkers.ReadWalker;
import org.broadinstitute.sting.gatk.walkers.Walker;
@ -33,7 +34,7 @@ public abstract class TraversalEngine {
protected List<ReferenceOrderedData<? extends ReferenceOrderedDatum>> rods = null;
// Iterator over rods
List<ReferenceOrderedData<? extends ReferenceOrderedDatum>.RODIterator> rodIters;
List<Pair<String, ReferenceOrderedData<? extends ReferenceOrderedDatum>.RODIterator>> rodIters;
// How strict should we be with SAM/BAM parsing?
protected ValidationStringency strictness = ValidationStringency.STRICT;
@ -411,13 +412,12 @@ public abstract class TraversalEngine {
*
* @return A list of ROD iterators for getting data from each ROD
*/
protected List<ReferenceOrderedData<? extends ReferenceOrderedDatum>.RODIterator> initializeRODs() {
protected void initializeRODs() {
// set up reference ordered data
rodIters = new ArrayList<ReferenceOrderedData<? extends ReferenceOrderedDatum>.RODIterator>();
rodIters = new ArrayList<Pair<String, ReferenceOrderedData<? extends ReferenceOrderedDatum>.RODIterator>>();
for (ReferenceOrderedData<? extends ReferenceOrderedDatum> data : rods) {
rodIters.add(data.iterator());
rodIters.add(new Pair<String, ReferenceOrderedData<? extends ReferenceOrderedDatum>.RODIterator>(data.getName(), data.iterator()));
}
return rodIters;
}
/**
@ -459,13 +459,13 @@ public abstract class TraversalEngine {
* @param loc The location to get the rods at
* @return A list of ReferenceOrderDatum at loc. ROD without a datum at loc will be null in the list
*/
protected List<ReferenceOrderedDatum> getReferenceOrderedDataAtLocus(List<ReferenceOrderedData<? extends ReferenceOrderedDatum>.RODIterator> rodIters,
final GenomeLoc loc) {
List<ReferenceOrderedDatum> data = new ArrayList<ReferenceOrderedDatum>();
for (ReferenceOrderedData<? extends ReferenceOrderedDatum>.RODIterator iter : rodIters) {
data.add(iter.seekForward(loc));
protected RefMetaDataTracker getReferenceOrderedDataAtLocus(final GenomeLoc loc) {
RefMetaDataTracker tracks = new RefMetaDataTracker();
for (Pair<String, ReferenceOrderedData<? extends ReferenceOrderedDatum>.RODIterator> pair : rodIters) {
String name = pair.getFirst();
tracks.bind(name, pair.getSecond().seekForward(loc));
}
return data;
return tracks;
}
// --------------------------------------------------------------------------------------------------------------

View File

@ -6,6 +6,7 @@ import org.broadinstitute.sting.gatk.walkers.Walker;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.iterators.ReferenceIterator;
import org.broadinstitute.sting.gatk.iterators.LocusIterator;
import org.broadinstitute.sting.gatk.iterators.LocusIteratorByHanger;
@ -120,9 +121,9 @@ public class TraverseByLoci extends TraversalEngine {
locus.setReferenceContig(refSite.getCurrentContig());
// Iterate forward to get all reference ordered data covering this locus
final List<ReferenceOrderedDatum> rodData = getReferenceOrderedDataAtLocus(rodIters, locus.getLocation());
final RefMetaDataTracker tracker = getReferenceOrderedDataAtLocus(locus.getLocation());
sum = walkAtLocus( walker, sum, locus, refSite, rodData );
sum = walkAtLocus( walker, sum, locus, refSite, tracker );
//System.out.format("Working at %s\n", locus.getLocation().toString());
@ -144,7 +145,7 @@ public class TraverseByLoci extends TraversalEngine {
T sum,
final LocusContext locus,
final ReferenceIterator refSite,
final List<ReferenceOrderedDatum> rodData ) {
final RefMetaDataTracker tracker ) {
final char refBase = refSite.getBaseAsChar();
//logger.debug(String.format(" Reference: %s:%d %c", refSite.getCurrentContig().getName(), refSite.getPosition(), refBase));
@ -152,9 +153,9 @@ public class TraverseByLoci extends TraversalEngine {
//
// Execute our contract with the walker. Call filter, map, and reduce
//
final boolean keepMeP = walker.filter(rodData, refBase, locus);
final boolean keepMeP = walker.filter(tracker, refBase, locus);
if (keepMeP) {
M x = walker.map(rodData, refBase, locus);
M x = walker.map(tracker, refBase, locus);
sum = walker.reduce(x, sum);
}

View File

@ -6,6 +6,7 @@ import org.broadinstitute.sting.gatk.walkers.Walker;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.iterators.ReferenceIterator;
import org.broadinstitute.sting.gatk.iterators.LocusIterator;
import org.broadinstitute.sting.gatk.iterators.LocusIteratorByHanger;
@ -64,7 +65,7 @@ public class TraverseByLociByReference extends TraverseByLoci {
GenomeLoc current = refSite.getLocation();
// Iterate forward to get all reference ordered data covering this locus
final List<ReferenceOrderedDatum> rodData = getReferenceOrderedDataAtLocus(rodIters, current);
final RefMetaDataTracker tracker = getReferenceOrderedDataAtLocus(current);
LocusContext locus = null;
@ -79,7 +80,7 @@ public class TraverseByLociByReference extends TraverseByLoci {
locus.setReferenceContig(refSite.getCurrentContig());
if ( DOWNSAMPLE_BY_COVERAGE )
locus.downsampleToCoverage(downsamplingCoverage);
sum = walkAtLocus( walker, sum, locus, refSite, rodData );
sum = walkAtLocus( walker, sum, locus, refSite, tracker );
if (this.maxReads > 0 && this.nRecords > this.maxReads) {
logger.warn(String.format("Maximum number of reads encountered, terminating traversal " + this.nRecords));

View File

@ -4,6 +4,7 @@ import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.iterators.ReferenceIterator;
import org.broadinstitute.sting.utils.GenomeLoc;
@ -90,11 +91,11 @@ public class TraverseByReference extends TraverseByLoci {
GenomeLoc current = refSite.getLocation();
// Iterate forward to get all reference ordered data covering this locus
final List<ReferenceOrderedDatum> rodData = getReferenceOrderedDataAtLocus(rodIters, current);
final RefMetaDataTracker tracker = getReferenceOrderedDataAtLocus(current);
LocusContext locus = new LocusContext(current, NO_READS, NO_OFFSETS); // make the empty locus that has no reads
locus.setReferenceContig(refSite.getCurrentContig());
sum = walkAtLocus( walker, sum, locus, refSite, rodData );
sum = walkAtLocus( walker, sum, locus, refSite, tracker );
if (this.maxReads > 0 && this.nRecords > this.maxReads) {
logger.warn(String.format("Maximum number of reads encountered, terminating traversal " + this.nRecords));

View File

@ -2,6 +2,7 @@ package org.broadinstitute.sting.gatk.walkers;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import java.util.List;
@ -13,7 +14,7 @@ import java.util.List;
* To change this template use File | Settings | File Templates.
*/
public class CountLociWalker extends LocusWalker<Integer, Integer> {
public Integer map(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context) {
public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) {
return 1;
}

View File

@ -2,6 +2,7 @@ package org.broadinstitute.sting.gatk.walkers;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.utils.cmdLine.Argument;
import org.broadinstitute.sting.utils.Pair;
import java.util.List;
@ -17,7 +18,7 @@ public class DepthOfCoverageWalker extends LocusWalker<Integer, Pair<Long, Long>
@Argument(fullName="suppressLocusPrinting",required=false,defaultValue="false")
public boolean suppressPrinting;
public Integer map(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context) {
public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) {
if ( !suppressPrinting )
out.printf("%s: %d%n", context.getLocation(), context.getReads().size() );
return context.getReads().size();

View File

@ -1,6 +1,7 @@
package org.broadinstitute.sting.gatk.walkers;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.LocusContext;
import java.util.List;
@ -14,7 +15,7 @@ import java.util.List;
*/
public abstract class LocusWalker<MapType, ReduceType> extends Walker<MapType, ReduceType> {
// Do we actually want to operate on the context?
public boolean filter(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context) {
public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) {
return true; // We are keeping all the reads
}
@ -26,7 +27,7 @@ public abstract class LocusWalker<MapType, ReduceType> extends Walker<MapType, R
public boolean cannotHandleReads() { return false; }
// Map over the org.broadinstitute.sting.gatk.LocusContext
public abstract MapType map(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context);
public abstract MapType map(RefMetaDataTracker tracker, char ref, LocusContext context);
// Given result of map function
public abstract ReduceType reduceInit();

View File

@ -3,6 +3,7 @@ package org.broadinstitute.sting.gatk.walkers;
import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import java.util.List;
@ -14,12 +15,12 @@ public class NullWalker extends LocusWalker<Integer, Integer> {
}
// Do we actually want to operate on the context?
public boolean filter(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context) {
public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) {
return true; // We are keeping all the reads
}
// Map over the org.broadinstitute.sting.gatk.LocusContext
public Integer map(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context)
public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context)
{
return 1;
}

View File

@ -3,6 +3,7 @@ package org.broadinstitute.sting.gatk.walkers;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.rodDbSNP;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.utils.cmdLine.Argument;
import org.broadinstitute.sting.utils.Utils;
import net.sf.samtools.SAMRecord;
@ -24,11 +25,11 @@ public class PileupWalker extends LocusWalker<Integer, Integer> {
}
// Do we actually want to operate on the context?
public boolean filter(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context) {
public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) {
return true; // We are keeping all the reads
}
public Integer map(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context) {
public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) {
List<SAMRecord> reads = context.getReads();
List<Integer> offsets = context.getOffsets();
String bases = Utils.basePileupAsString(reads, offsets);
@ -39,17 +40,15 @@ public class PileupWalker extends LocusWalker<Integer, Integer> {
}
String rodString = "";
for ( ReferenceOrderedDatum datum : rodData ) {
if ( datum != null ) {
if ( datum instanceof rodDbSNP) {
rodDbSNP dbsnp = (rodDbSNP)datum;
rodString += dbsnp.toMediumString();
}
else {
rodString += datum.toSimpleString();
}
for ( ReferenceOrderedDatum datum : tracker.getAllRods() ) {
if ( datum != null && ! (datum instanceof rodDbSNP)) {
rodString += datum.toSimpleString();
}
}
rodDbSNP dbsnp = (rodDbSNP)tracker.lookup("dbSNP", null);
if ( dbsnp != null )
rodString += dbsnp.toMediumString();
if ( rodString != "" )
rodString = "[ROD: " + rodString + "]";

View File

@ -3,6 +3,7 @@ package org.broadinstitute.sting.playground.gatk.walkers;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.rodDbSNP;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.playground.utils.AlleleFrequencyEstimate;
import org.broadinstitute.sting.playground.utils.AlleleMetrics;
@ -32,7 +33,7 @@ public class AlleleFrequencyWalker extends LocusWalker<AlleleFrequencyEstimate,
public boolean requiresReads() { return true; }
public AlleleFrequencyEstimate map(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context)
public AlleleFrequencyEstimate map(RefMetaDataTracker tracker, char ref, LocusContext context)
{
// Convert context data into bases and 4-base quals
String bases = getBases(context);
@ -103,7 +104,7 @@ public class AlleleFrequencyWalker extends LocusWalker<AlleleFrequencyEstimate,
// Print dbSNP data if its there
if (true) {
for ( ReferenceOrderedDatum datum : rodData ) {
for ( ReferenceOrderedDatum datum : tracker.getAllRods() ) {
if ( datum != null && datum instanceof rodDbSNP) {
rodDbSNP dbsnp = (rodDbSNP)datum;
//System.out.printf(" DBSNP %s on %s => %s%n", dbsnp.toSimpleString(), dbsnp.strand, Utils.join("/", dbsnp.getAllelesFWD()));
@ -114,7 +115,7 @@ public class AlleleFrequencyWalker extends LocusWalker<AlleleFrequencyEstimate,
logger.debug(String.format(" => result is %s", alleleFreq));
if (LOG_METRICS) metrics.nextPosition(alleleFreq, rodData);
if (LOG_METRICS) metrics.nextPosition(alleleFreq, tracker);
return alleleFreq;
}

View File

@ -3,10 +3,7 @@ package org.broadinstitute.sting.playground.gatk.walkers;
import net.sf.samtools.*;
import org.broadinstitute.sting.gatk.*;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.rodDbSNP;
import org.broadinstitute.sting.gatk.refdata.rodGFF;
import org.broadinstitute.sting.gatk.refdata.*;
import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.playground.gatk.walkers.AlleleFrequencyWalker;
@ -36,7 +33,7 @@ public class CoverageBySample extends LocusWalker<String, String>
}
}
public String map(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context)
public String map(RefMetaDataTracker tracker, char ref, LocusContext context)
{
String line = context.getLocation().getContig() + " " + context.getLocation().getStart() + " " ;
for (int i = 0; i < sample_names.size(); i++)

View File

@ -4,6 +4,7 @@ package org.broadinstitute.sting.playground.gatk.walkers;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.rodDbSNP;
import org.broadinstitute.sting.gatk.refdata.rodGFF;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.playground.gatk.walkers.AlleleFrequencyWalker;
@ -20,7 +21,7 @@ public class PoolCallingExperiment extends LocusWalker<AlleleFrequencyEstimate,
@Argument public int DOWNSAMPLE;
public AlleleFrequencyEstimate map(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context)
public AlleleFrequencyEstimate map(RefMetaDataTracker tracker, char ref, LocusContext context)
{
for (int i = 0; i < context.getReads().size(); i++)
{

View File

@ -6,6 +6,7 @@ import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.rodDbSNP;
import org.broadinstitute.sting.gatk.refdata.HapMapAlleleFrequenciesROD;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.utils.Utils;
import org.broadinstitute.sting.utils.cmdLine.Argument;
import net.sf.samtools.SAMRecord;
@ -30,7 +31,7 @@ public class PopPriorWalker extends LocusWalker<Integer, Integer> {
public String walkerType() { return "ByLocus"; }
// Do we actually want to operate on the context?
public boolean filter(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context) {
public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) {
return true; // We are keeping all the reads
}
@ -95,7 +96,7 @@ public class PopPriorWalker extends LocusWalker<Integer, Integer> {
}
// Map over the org.broadinstitute.sting.gatk.LocusContext
public Integer map(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context) {
public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) {
char upRef = Character.toUpperCase(ref);
List<SAMRecord> reads = context.getReads();
List<Integer> offsets = context.getOffsets();
@ -106,7 +107,7 @@ public class PopPriorWalker extends LocusWalker<Integer, Integer> {
rodDbSNP dbsnpInfo = null;
HapMapAlleleFrequenciesROD hapmap = null;
for ( ReferenceOrderedDatum datum : rodData )
for ( ReferenceOrderedDatum datum : tracker.getAllRods() )
{
if ( datum != null )
{

View File

@ -3,6 +3,7 @@ package org.broadinstitute.sting.playground.gatk.walkers;
import org.broadinstitute.sting.gatk.LocusContext;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.rodDbSNP;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.gatk.walkers.LocusWalker;
import org.broadinstitute.sting.utils.Utils;
import net.sf.samtools.SAMRecord;
@ -13,7 +14,7 @@ import java.util.List;
// j.maguire 3-7-2009
public class SingleSampleGenotyper extends LocusWalker<Integer, Integer> {
public boolean filter(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context) {
public boolean filter(RefMetaDataTracker tracker, char ref, LocusContext context) {
return true; // We are keeping all the reads
}
@ -82,7 +83,7 @@ public class SingleSampleGenotyper extends LocusWalker<Integer, Integer> {
}
// Map over the org.broadinstitute.sting.gatk.LocusContext
public Integer map(List<ReferenceOrderedDatum> rodData, char ref, LocusContext context) {
public Integer map(RefMetaDataTracker tracker, char ref, LocusContext context) {
//System.out.printf("Reads %s:%d %d%n", context.getContig(), context.getPosition(), context.getReads().size());
//for ( SAMRecord read : context.getReads() ) {
// System.out.println(" -> " + read.getReadName());
@ -96,7 +97,7 @@ public class SingleSampleGenotyper extends LocusWalker<Integer, Integer> {
// Look up hapmap and dbsnp priors
String rodString = "";
for ( ReferenceOrderedDatum datum : rodData )
for ( ReferenceOrderedDatum datum : tracker.getAllRods() )
{
if ( datum != null )
{

View File

@ -3,6 +3,7 @@ package org.broadinstitute.sting.playground.utils;
import org.broadinstitute.sting.gatk.refdata.rodGFF;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
import org.broadinstitute.sting.gatk.refdata.rodDbSNP;
import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker;
import org.broadinstitute.sting.playground.gatk.walkers.AlleleFrequencyWalker;
import java.util.List;
@ -44,14 +45,14 @@ public class AlleleMetrics {
}
}
public void nextPosition(AlleleFrequencyEstimate alleleFreq, List<ReferenceOrderedDatum> rodData) {
public void nextPosition(AlleleFrequencyEstimate alleleFreq, RefMetaDataTracker tracker) {
num_loci_total += 1;
boolean is_dbSNP_SNP = false;
boolean has_hapmap_chip_genotype = false;
rodGFF hapmap_chip_genotype = null;
for ( ReferenceOrderedDatum datum : rodData )
for ( ReferenceOrderedDatum datum : tracker.getAllRods() )
{
if ( datum != null )
{