From f0021a35330472cea6a68b498df97a9d3705602f Mon Sep 17 00:00:00 2001 From: chartl Date: Sun, 18 Oct 2009 18:09:25 +0000 Subject: [PATCH] Changes to the BTTC scala walker: - Updated to use the unified genotyper rather than ssg - Fixed a minor issue where the Unified Genotyper returns null and SSG would still return an object. isDefinitelyHomRef() now checks for null Unified Genotyper pairs. - Tables output survive a diff with previous tables git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1872 348d0f76-0448-11de-a6fe-93d51630548a --- scala/src/BaseTransitionTableCalculator.scala | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/scala/src/BaseTransitionTableCalculator.scala b/scala/src/BaseTransitionTableCalculator.scala index 4a4c9ee10..500f3832b 100755 --- a/scala/src/BaseTransitionTableCalculator.scala +++ b/scala/src/BaseTransitionTableCalculator.scala @@ -1,12 +1,14 @@ package org.broadinstitute.sting.scala -import gatk.walkers.genotyper.{SingleSampleGenotyper, SSGGenotypeCall} +import gatk.walkers.genotyper.{UnifiedGenotyper, GenotypeCall} import java.io.File import net.sf.samtools.SAMRecord import org.broadinstitute.sting.gatk.walkers.LocusWalker import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker import org.broadinstitute.sting.gatk.contexts.ReferenceContext import org.broadinstitute.sting.gatk.contexts.AlignmentContext +import org.broadinstitute.sting.utils.Pair +import org.broadinstitute.sting.utils.genotype.GenotypeMetaData import utils._ import cmdLine.Argument @@ -72,7 +74,7 @@ class BaseTransitionTableCalculator extends LocusWalker[Unit,Int] { private var PRINT_FREQ = 1000000 private var CARE_ABOUT_STRAND = true - private val SSG = new SingleSampleGenotyper() + private val SSG = new UnifiedGenotyper() private val table1 = new TransitionTable() private val tableFWD = new TransitionTable() private val tableREV = new TransitionTable() @@ -86,14 +88,15 @@ class BaseTransitionTableCalculator extends LocusWalker[Unit,Int] { } override def map(tracker: RefMetaDataTracker, ref: ReferenceContext, context: AlignmentContext): Unit = { - val call = SSG.map(tracker, ref, context) + val callPair = SSG.map(tracker, ref, context) + //val call = callPair.getFirst().get(0) val pileup = new ReadBackedPileup(ref.getBase(), context) def hasNoNs(): Boolean = { return ! (pileup.getBases() exists ('N' ==)) } - if ( isDefinitelyHomRef(call) && hasNoNs() ) { + if ( isDefinitelyHomRef(callPair) && hasNoNs() ) { var (refBases, nonRefBases) = splitBases(ref.getBase, pileup.getBases) //printf("nonRefBases %s%n", nonRefBases) @@ -173,8 +176,11 @@ class BaseTransitionTableCalculator extends LocusWalker[Unit,Int] { return (refBases, nonRefBases) } - def isDefinitelyHomRef(call: SSGGenotypeCall): Boolean = { - return ! call.isVariation() && call.getBestNext() > MIN_LOD + def isDefinitelyHomRef(call: Pair[java.util.List[GenotypeCall],GenotypeMetaData]): Boolean = { + if ( call == null ) + return false; + + return ! call.getFirst().get(0).isVariant() && call.getFirst().get(0).getNegLog10PError() > MIN_LOD } def reduceInit(): Int = {