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:
parent
de9f2b11da
commit
2b7d39035a
|
|
@ -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() {
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue