switched over the FastaAlternateReferenceWalker to the Variation system

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1726 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
aaron 2009-09-25 16:09:43 +00:00
parent de9f2b11da
commit 2b7d39035a
2 changed files with 21 additions and 21 deletions

View File

@ -74,7 +74,7 @@ public class SimpleIndelROD extends TabularROD implements Genotype, AllelicVaria
*/ */
@Override @Override
public String getAlternateBases() { public String getAlternateBases() {
return ""; return getFWDAlleles().get(0);
} }
/** /**
@ -84,7 +84,7 @@ public class SimpleIndelROD extends TabularROD implements Genotype, AllelicVaria
*/ */
@Override @Override
public List<String> getAlternateBaseList() { public List<String> getAlternateBaseList() {
return Arrays.asList(new String[]{""}); return getFWDAlleles();
} }
public boolean isInsertion() { public boolean isInsertion() {

View File

@ -6,6 +6,7 @@ import org.broadinstitute.sting.gatk.refdata.*;
import org.broadinstitute.sting.gatk.walkers.*; import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.utils.*;
import org.broadinstitute.sting.utils.cmdLine.Argument; import org.broadinstitute.sting.utils.cmdLine.Argument;
import org.broadinstitute.sting.utils.genotype.Variation;
import java.io.*; import java.io.*;
import java.util.Iterator; import java.util.Iterator;
@ -26,7 +27,7 @@ public class FastaAlternateReferenceWalker extends FastaReferenceWalker {
public void initialize() { public void initialize() {
super.initialize(); super.initialize();
if ( indelsFile != null ) { if (indelsFile != null) {
try { try {
indelsWriter = new PrintWriter(indelsFile); indelsWriter = new PrintWriter(indelsFile);
} catch (IOException e) { } catch (IOException e) {
@ -38,46 +39,45 @@ public class FastaAlternateReferenceWalker extends FastaReferenceWalker {
public Pair<GenomeLoc, String> map(RefMetaDataTracker rodData, ReferenceContext ref, AlignmentContext context) { public Pair<GenomeLoc, String> map(RefMetaDataTracker rodData, ReferenceContext ref, AlignmentContext context) {
String refBase = String.valueOf(ref.getBase()); String refBase = String.valueOf(ref.getBase());
if ( deletionBasesRemaining > 0 ) { if (deletionBasesRemaining > 0) {
deletionBasesRemaining--; deletionBasesRemaining--;
return new Pair<GenomeLoc, String>(context.getLocation(), (SEQUENOM ? (deletionBasesRemaining == 0 ? refBase.concat("/-]") : refBase) : "")); return new Pair<GenomeLoc, String>(context.getLocation(), (SEQUENOM ? (deletionBasesRemaining == 0 ? refBase.concat("/-]") : refBase) : ""));
} }
Iterator<ReferenceOrderedDatum> rods = rodData.getAllRods().iterator(); Iterator<ReferenceOrderedDatum> rods = rodData.getAllRods().iterator();
while ( rods.hasNext() ) { while (rods.hasNext()) {
ReferenceOrderedDatum rod = rods.next(); ReferenceOrderedDatum rod = rods.next();
if ( !(rod instanceof AllelicVariant) ) if (!(rod instanceof Variation))
continue; continue;
// if we have multiple variants at a locus, just take the first damn one we see for now // if we have multiple variants at a locus, just take the first damn one we see for now
AllelicVariant variant = (AllelicVariant)rod; Variation variant = (Variation) rod;
if ( !rod.getName().startsWith("snpmask") && variant.isDeletion() ) { if (!rod.getName().startsWith("snpmask") && variant.isDeletion()) {
deletionBasesRemaining = variant.length(); deletionBasesRemaining = variant.getAlternateBases().length();
basesSeen++; basesSeen++;
if ( indelsWriter != null ) if (indelsWriter != null)
indelsWriter.println(fasta.getCurrentID() + ":" + basesSeen + "-" + (basesSeen + variant.length())); indelsWriter.println(fasta.getCurrentID() + ":" + basesSeen + "-" + (basesSeen + variant.getAlternateBases().length()));
// delete the next n bases, not this one // delete the next n bases, not this one
return new Pair<GenomeLoc, String>(context.getLocation(), (SEQUENOM ? refBase.concat("[") : refBase)); return new Pair<GenomeLoc, String>(context.getLocation(), (SEQUENOM ? refBase.concat("[") : refBase));
} else if ( !rod.getName().startsWith("snpmask") && variant.isInsertion() ) { } else if (!rod.getName().startsWith("snpmask") && variant.isInsertion()) {
basesSeen++; basesSeen++;
if ( indelsWriter != null ) if (indelsWriter != null)
indelsWriter.println(fasta.getCurrentID() + ":" + basesSeen + "-" + (basesSeen + variant.length())); indelsWriter.println(fasta.getCurrentID() + ":" + basesSeen + "-" + (basesSeen + variant.getAlternateBases().length()));
basesSeen += variant.length(); basesSeen += variant.getAlternateBases().length();
return new Pair<GenomeLoc, String>(context.getLocation(), (SEQUENOM ? refBase.concat("[-/"+variant.getAltBasesFWD()+"]") : refBase.concat(variant.getAltBasesFWD()))); return new Pair<GenomeLoc, String>(context.getLocation(), (SEQUENOM ? refBase.concat("[-/" + variant.getAlternateBases() + "]") : refBase.concat(variant.getAlternateBases())));
} else if ( variant.isSNP() ) { } else if (variant.isSNP()) {
basesSeen++; basesSeen++;
return new Pair<GenomeLoc, String>(context.getLocation(), (rod.getName().startsWith("snpmask") ? "N" : (SEQUENOM ? "[" + refBase + "/" + variant.getAltBasesFWD() + "]" : variant.getAltBasesFWD()))); return new Pair<GenomeLoc, String>(context.getLocation(), (rod.getName().startsWith("snpmask") ? "N" : (SEQUENOM ? "[" + refBase + "/" + variant.getAlternativeBaseForSNP() + "]" : String.valueOf(variant.getAlternativeBaseForSNP()))));
} }
} }
// if we got here then we're just ref // if we got here then we're just ref
basesSeen++; basesSeen++;
return new Pair<GenomeLoc, String>(context.getLocation(), refBase); return new Pair<GenomeLoc, String>(context.getLocation(), refBase);
} }
public void onTraversalDone(GenomeLoc sum) { public void onTraversalDone(GenomeLoc sum) {
super.onTraversalDone(sum); super.onTraversalDone(sum);
if ( indelsWriter != null ) if (indelsWriter != null)
indelsWriter.close(); indelsWriter.close();
} }