From 23f8d8aa8b49d9425221bda53d23c39846136ca2 Mon Sep 17 00:00:00 2001 From: Sander Bollen <a.h.b.bollen@lumc.nl> Date: Fri, 14 Aug 2015 10:57:18 +0200 Subject: [PATCH] slight refactor for readability purposes --- .../biopet/tools/BastyGenerateFasta.scala | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/BastyGenerateFasta.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/BastyGenerateFasta.scala index 66f5ba800..deb9aa38c 100644 --- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/BastyGenerateFasta.scala +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/BastyGenerateFasta.scala @@ -17,7 +17,7 @@ package nl.lumc.sasc.biopet.tools import java.io.{ File, PrintWriter } -import htsjdk.samtools.SamReaderFactory +import htsjdk.samtools.{SAMSequenceRecord, SamReaderFactory} import htsjdk.samtools.reference.IndexedFastaSequenceFile import htsjdk.variant.variantcontext.VariantContext import htsjdk.variant.vcf.VCFFileReader @@ -28,6 +28,7 @@ import org.broadinstitute.gatk.utils.commandline.{ Input, Output } import scala.collection.JavaConversions._ import scala.collection.mutable.ListBuffer +import scala.collection.parallel.ParMap class BastyGenerateFasta(val root: Configurable) extends ToolCommandFuntion with Reference { javaMainClass = getClass.getName @@ -165,8 +166,12 @@ object BastyGenerateFasta extends ToolCommand { val argsParser = new OptParser cmdArgs = argsParser.parse(args, Args()) getOrElse sys.exit(1) - if (cmdArgs.outputVariants != null) writeVariantsOnly() - if (cmdArgs.outputConsensus != null || cmdArgs.outputConsensusVariants != null) writeConsensus() + if (cmdArgs.outputVariants != null) { + writeVariantsOnly() + } + if (cmdArgs.outputConsensus != null || cmdArgs.outputConsensusVariants != null) { + writeConsensus() + } } protected def writeConsensus() { @@ -271,14 +276,28 @@ object BastyGenerateFasta extends ToolCommand { protected[tools] def getMaxAllele(vcfRecord: VariantContext)(implicit cmdArgs: Args): String = { val maxSize = getLongestAllele(vcfRecord).getBases.length - if (cmdArgs.sampleName == null) return fillAllele(vcfRecord.getReference.getBaseString, maxSize) + if (cmdArgs.sampleName == null) { + return fillAllele(vcfRecord.getReference.getBaseString, maxSize) + } val genotype = vcfRecord.getGenotype(cmdArgs.sampleName) - if (genotype == null) return fillAllele("", maxSize) + + if (genotype == null) { + return fillAllele("", maxSize) + } + val AD = if (genotype.hasAD) genotype.getAD else Array.fill(vcfRecord.getAlleles.size())(cmdArgs.minAD) - if (AD == null) return fillAllele("", maxSize) + + if (AD == null) { + return fillAllele("", maxSize) + } + val maxADid = AD.zipWithIndex.maxBy(_._1)._2 - if (AD(maxADid) < cmdArgs.minAD) return fillAllele("", maxSize) + + if (AD(maxADid) < cmdArgs.minAD) { + return fillAllele("", maxSize) + } + fillAllele(vcfRecord.getAlleles()(maxADid).getBaseString, maxSize) } -} \ No newline at end of file +} -- GitLab