A couple of minor updates to BQSR
This commit is contained in:
parent
277493dd83
commit
37f56ce8fd
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue