From 3f6e44dc712e4722dcddcc3135c7a3381b5327e3 Mon Sep 17 00:00:00 2001 From: ebanks Date: Sun, 8 Aug 2010 04:39:18 +0000 Subject: [PATCH] Updated recalibrator and cleaner to output full command-lines in the bam header git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3972 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/indels/IndelRealigner.java | 4 ++ .../TableRecalibrationWalker.java | 49 +++++++------------ 2 files changed, 23 insertions(+), 30 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java b/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java index db3b32af9..9e6f766c1 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java @@ -45,6 +45,7 @@ import org.broadinstitute.sting.utils.sam.AlignmentUtils; import org.broadinstitute.sting.utils.sam.ReadUtils; import org.broadinstitute.sting.utils.collections.Pair; import org.broadinstitute.sting.commandline.Argument; +import org.broadinstitute.sting.commandline.CommandLineUtils; import java.io.File; import java.io.FileWriter; @@ -224,6 +225,9 @@ public class IndelRealigner extends ReadWalker { final SAMProgramRecord programRecord = new SAMProgramRecord(PROGRAM_RECORD_NAME); final ResourceBundle headerInfo = TextFormattingUtils.loadResourceBundle("StingText"); programRecord.setProgramVersion(headerInfo.getString("org.broadinstitute.sting.gatk.version")); + HashSet args = new HashSet(); + args.add(this); + programRecord.setCommandLine(CommandLineUtils.createApproximateCommandLineArgumentString(getToolkit(), args, getClass())); List oldRecords = header.getProgramRecords(); List newRecords = new ArrayList(oldRecords.size()+1); diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TableRecalibrationWalker.java b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TableRecalibrationWalker.java index b28085d5b..bc87f63d7 100644 --- a/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TableRecalibrationWalker.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/recalibration/TableRecalibrationWalker.java @@ -27,11 +27,7 @@ package org.broadinstitute.sting.gatk.walkers.recalibration; import java.io.File; import java.io.FileNotFoundException; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; -import java.util.ResourceBundle; +import java.util.*; import java.util.regex.Pattern; import net.sf.samtools.*; @@ -46,7 +42,6 @@ import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.gatk.walkers.Requires; import org.broadinstitute.sting.gatk.walkers.WalkerName; import org.broadinstitute.sting.gatk.contexts.ReferenceContext; -import org.broadinstitute.sting.utils.classloader.JVMUtils; import org.broadinstitute.sting.utils.classloader.PackageUtils; import org.broadinstitute.sting.utils.collections.NestedHashMap; import org.broadinstitute.sting.utils.QualityUtils; @@ -54,11 +49,7 @@ import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.utils.text.TextFormattingUtils; import org.broadinstitute.sting.utils.Utils; import org.broadinstitute.sting.utils.text.XReadLines; -import org.broadinstitute.sting.commandline.Argument; -import org.broadinstitute.sting.commandline.ArgumentCollection; -import org.broadinstitute.sting.commandline.ArgumentDefinition; -import org.broadinstitute.sting.commandline.ArgumentSource; -import org.broadinstitute.sting.commandline.ArgumentTypeDescriptor; +import org.broadinstitute.sting.commandline.*; import org.broadinstitute.sting.utils.sam.GATKSAMRecord; /** @@ -261,27 +252,25 @@ public class TableRecalibrationWalker extends ReadWalker args = new HashSet(); + args.add(RAC); + StringBuffer sb = new StringBuffer(); + sb.append(CommandLineUtils.createApproximateCommandLineArgumentString(getToolkit(), args, getClass())); + sb.append(" Covariates=["); for( Covariate cov : requestedCovariates ) { - commandLineString += cov.getClass().getSimpleName() + ", "; + sb.append(cov.getClass().getSimpleName()); + sb.append(", "); } - commandLineString = commandLineString.substring( 0, commandLineString.length() - 2 ); // Trim off the trailing comma - commandLineString += "], "; - // Add all of the arguments from the recalibration argument collection to the command line string - final Field[] fields = RAC.getClass().getFields(); - for( Field field : fields ) { - final ArgumentTypeDescriptor atd = ArgumentTypeDescriptor.create(field.getType()); - final List adList = atd.createArgumentDefinitions(new ArgumentSource(field.getType(), field)); - for( ArgumentDefinition ad : adList ) { - if( !ad.fullName.equalsIgnoreCase( "recalFile" ) && !ad.fullName.equalsIgnoreCase( "recal_file" ) ) { // recalFile argument is not added to the PG tag - commandLineString += (ad.fullName + "=" + JVMUtils.getFieldValue(field, RAC) + ", "); - } - } - } - commandLineString += "pQ=" + PRESERVE_QSCORES_LESS_THAN + ", "; - commandLineString += "maxQ=" + MAX_QUALITY_SCORE + ", "; - commandLineString += "smoothing=" + SMOOTHING; - programRecord.setCommandLine( commandLineString ); + sb.setCharAt(sb.length()-2, ']'); + sb.setCharAt(sb.length()-1, ' '); + sb.append("pQ="); + sb.append(PRESERVE_QSCORES_LESS_THAN); + sb.append(" maxQ="); + sb.append(MAX_QUALITY_SCORE); + sb.append(" smoothing="); + sb.append(SMOOTHING); + programRecord.setCommandLine(sb.toString()); List oldRecords = header.getProgramRecords(); List newRecords = new ArrayList(oldRecords.size()+1);