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:
parent
c1abcfb014
commit
4eac3193f7
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 + "]";
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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++)
|
||||
|
|
|
|||
|
|
@ -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++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue