A couple of minor updates to BQSR

This commit is contained in:
Eric Banks 2012-06-12 16:12:13 -04:00
parent 277493dd83
commit 37f56ce8fd
3 changed files with 15 additions and 10 deletions

View File

@ -19,7 +19,7 @@ import java.util.*;
public class RecalibrationReport { public class RecalibrationReport {
private QuantizationInfo quantizationInfo; // histogram containing the counts for qual quantization (calculated after recalibration is done) private QuantizationInfo quantizationInfo; // histogram containing the counts for qual quantization (calculated after recalibration is done)
private final LinkedHashMap<BQSRKeyManager, Map<Long, RecalDatum>> keysAndTablesMap; // quick access reference to the read group table and its key manager private final LinkedHashMap<BQSRKeyManager, Map<Long, RecalDatum>> keysAndTablesMap; // quick access reference to the read group table and its key manager
private final ArrayList<Covariate> requestedCovariates = new ArrayList<Covariate>(); // list of all covariates to be used in this calculation private final Covariate[] requestedCovariates; // list of all covariates to be used in this calculation
private final GATKReportTable argumentTable; // keep the argument table untouched just for output purposes private final GATKReportTable argumentTable; // keep the argument table untouched just for output purposes
private final RecalibrationArgumentCollection RAC; // necessary for quantizing qualities with the same parameter private final RecalibrationArgumentCollection RAC; // necessary for quantizing qualities with the same parameter
@ -36,8 +36,12 @@ public class RecalibrationReport {
Pair<ArrayList<Covariate>, ArrayList<Covariate>> covariates = RecalDataManager.initializeCovariates(RAC); // initialize the required and optional covariates Pair<ArrayList<Covariate>, ArrayList<Covariate>> covariates = RecalDataManager.initializeCovariates(RAC); // initialize the required and optional covariates
ArrayList<Covariate> requiredCovariates = covariates.getFirst(); ArrayList<Covariate> requiredCovariates = covariates.getFirst();
ArrayList<Covariate> optionalCovariates = covariates.getSecond(); ArrayList<Covariate> optionalCovariates = covariates.getSecond();
requestedCovariates.addAll(requiredCovariates); // add all required covariates to the list of requested covariates requestedCovariates = new Covariate[requiredCovariates.size() + optionalCovariates.size()];
requestedCovariates.addAll(optionalCovariates); // add all optional covariates to the list of requested covariates int covariateIndex = 0;
for (final Covariate covariate : requiredCovariates)
requestedCovariates[covariateIndex++] = covariate;
for (final Covariate covariate : optionalCovariates)
requestedCovariates[covariateIndex++] = covariate;
for (Covariate cov : requestedCovariates) for (Covariate cov : requestedCovariates)
cov.initialize(RAC); // initialize any covariate member variables using the shared argument collection cov.initialize(RAC); // initialize any covariate member variables using the shared argument collection
@ -73,11 +77,12 @@ public class RecalibrationReport {
keysAndTablesMap.put(keyManager, table); keysAndTablesMap.put(keyManager, table);
} }
protected RecalibrationReport(QuantizationInfo quantizationInfo, LinkedHashMap<BQSRKeyManager, Map<Long, RecalDatum>> keysAndTablesMap, GATKReportTable argumentTable, RecalibrationArgumentCollection RAC) { protected RecalibrationReport(final QuantizationInfo quantizationInfo, final LinkedHashMap<BQSRKeyManager, Map<Long, RecalDatum>> keysAndTablesMap, final GATKReportTable argumentTable, final RecalibrationArgumentCollection RAC) {
this.quantizationInfo = quantizationInfo; this.quantizationInfo = quantizationInfo;
this.keysAndTablesMap = keysAndTablesMap; this.keysAndTablesMap = keysAndTablesMap;
this.argumentTable = argumentTable; this.argumentTable = argumentTable;
this.RAC = RAC; this.RAC = RAC;
this.requestedCovariates = null;
} }
/** /**
@ -127,7 +132,7 @@ public class RecalibrationReport {
return keysAndTablesMap; return keysAndTablesMap;
} }
public ArrayList<Covariate> getRequestedCovariates() { public Covariate[] getRequestedCovariates() {
return requestedCovariates; return requestedCovariates;
} }

View File

@ -44,9 +44,9 @@ public class BaseRecalibration {
private final static String UNRECOGNIZED_REPORT_TABLE_EXCEPTION = "Unrecognized table. Did you add an extra required covariate? This is a hard check that needs propagate through the code"; private final static String UNRECOGNIZED_REPORT_TABLE_EXCEPTION = "Unrecognized table. Did you add an extra required covariate? This is a hard check that needs propagate through the code";
private final static String TOO_MANY_KEYS_EXCEPTION = "There should only be one key for the RG collapsed table, something went wrong here"; private final static String TOO_MANY_KEYS_EXCEPTION = "There should only be one key for the RG collapsed table, something went wrong here";
private QuantizationInfo quantizationInfo; // histogram containing the map for qual quantization (calculated after recalibration is done) private final QuantizationInfo quantizationInfo; // histogram containing the map for qual quantization (calculated after recalibration is done)
private LinkedHashMap<BQSRKeyManager, Map<Long, RecalDatum>> keysAndTablesMap; // quick access reference to the read group table and its key manager private final LinkedHashMap<BQSRKeyManager, Map<Long, RecalDatum>> keysAndTablesMap; // quick access reference to the read group table and its key manager
private ArrayList<Covariate> requestedCovariates = new ArrayList<Covariate>(); // list of all covariates to be used in this calculation private final Covariate[] requestedCovariates; // list of all covariates to be used in this calculation
/** /**
* Constructor using a GATK Report file * Constructor using a GATK Report file
@ -73,7 +73,7 @@ public class BaseRecalibration {
* @param keysAndTablesMap the map of key managers and recalibration tables * @param keysAndTablesMap the map of key managers and recalibration tables
* @param requestedCovariates the list of requested covariates * @param requestedCovariates the list of requested covariates
*/ */
protected BaseRecalibration(QuantizationInfo quantizationInfo, LinkedHashMap<BQSRKeyManager, Map<Long, RecalDatum>> keysAndTablesMap, ArrayList<Covariate> requestedCovariates) { protected BaseRecalibration(final QuantizationInfo quantizationInfo, final LinkedHashMap<BQSRKeyManager, Map<Long, RecalDatum>> keysAndTablesMap, final Covariate[] requestedCovariates) {
this.quantizationInfo = quantizationInfo; this.quantizationInfo = quantizationInfo;
this.keysAndTablesMap = keysAndTablesMap; this.keysAndTablesMap = keysAndTablesMap;
this.requestedCovariates = requestedCovariates; this.requestedCovariates = requestedCovariates;

View File

@ -112,7 +112,7 @@ public class BaseRecalibrationUnitTest {
} }
QuantizationInfo quantizationInfo = new QuantizationInfo(quantizedQuals, qualCounts); QuantizationInfo quantizationInfo = new QuantizationInfo(quantizedQuals, qualCounts);
quantizationInfo.noQuantization(); quantizationInfo.noQuantization();
baseRecalibration = new BaseRecalibration(quantizationInfo, keysAndTablesMap, requestedCovariates); baseRecalibration = new BaseRecalibration(quantizationInfo, keysAndTablesMap, requestedCovariates.toArray());
} }