/** * Compiles the list of keys for the Covariates table and uses the shared parsing utility to * produce the actual table * * @param reportTable the GATKReport table containing data for this table * @param recalibrationTables the recalibration tables \ */ private void parseAllCovariatesTable( final GATKReportTable reportTable, final RecalibrationTables recalibrationTables) { for (int i = 0; i < reportTable.getNumRows(); i++) { final Object rg = reportTable.get(i, RecalUtils.READGROUP_COLUMN_NAME); tempCOVarray[0] = requestedCovariates[0].keyFromValue(rg); final Object qual = reportTable.get(i, RecalUtils.QUALITY_SCORE_COLUMN_NAME); tempCOVarray[1] = requestedCovariates[1].keyFromValue(qual); final String covName = (String) reportTable.get(i, RecalUtils.COVARIATE_NAME_COLUMN_NAME); final int covIndex = optionalCovariateIndexes.get(covName); final Object covValue = reportTable.get(i, RecalUtils.COVARIATE_VALUE_COLUMN_NAME); tempCOVarray[2] = requestedCovariates[ RecalibrationTables.TableType.OPTIONAL_COVARIATE_TABLES_START.ordinal() + covIndex] .keyFromValue(covValue); final EventType event = EventType.eventFrom((String) reportTable.get(i, RecalUtils.EVENT_TYPE_COLUMN_NAME)); tempCOVarray[3] = event.ordinal(); recalibrationTables .getTable( RecalibrationTables.TableType.OPTIONAL_COVARIATE_TABLES_START.ordinal() + covIndex) .put(getRecalDatum(reportTable, i, false), tempCOVarray); } }
/** * Combines two recalibration reports by adding all observations and errors * * <p>Note: This method DOES NOT recalculate the empirical qualities and quantized qualities. You * have to recalculate them after combining. The reason for not calculating it is because this * function is intended for combining a series of recalibration reports, and it only makes sense * to calculate the empirical qualities and quantized qualities after all the recalibration * reports have been combined. Having the user recalculate when appropriate, makes this method * faster * * <p>Note2: The empirical quality reported, however, is recalculated given its simplicity. * * @param other the recalibration report to combine with this one */ public void combine(final RecalibrationReport other) { for (int tableIndex = 0; tableIndex < recalibrationTables.numTables(); tableIndex++) { final NestedIntegerArray<RecalDatum> myTable = recalibrationTables.getTable(tableIndex); final NestedIntegerArray<RecalDatum> otherTable = other.recalibrationTables.getTable(tableIndex); RecalUtils.combineTables(myTable, otherTable); } }