Small runtime improvement in TableRecalibration.
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2519 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
b745c2f8d7
commit
370a365147
|
|
@ -351,16 +351,14 @@ public class TableRecalibrationWalker extends ReadWalker<SAMRecord, SAMFileWrite
|
||||||
*/
|
*/
|
||||||
private byte performSequentialQualityCalculation(Object... key ) {
|
private byte performSequentialQualityCalculation(Object... key ) {
|
||||||
|
|
||||||
final String readGroupKeyElement = key[0].toString();
|
final byte qualFromRead = (byte)Integer.parseInt(key[1].toString());
|
||||||
final int qualityScoreKeyElement = Integer.parseInt(key[1].toString());
|
|
||||||
final byte qualFromRead = (byte)qualityScoreKeyElement;
|
|
||||||
final Object[] readGroupCollapsedKey = new Object[1];
|
final Object[] readGroupCollapsedKey = new Object[1];
|
||||||
final Object[] qualityScoreCollapsedKey = new Object[2];
|
final Object[] qualityScoreCollapsedKey = new Object[2];
|
||||||
final Object[] covariateCollapsedKey = new Object[3];
|
final Object[] covariateCollapsedKey = new Object[3];
|
||||||
|
|
||||||
// The global quality shift (over the read group only)
|
// The global quality shift (over the read group only)
|
||||||
readGroupCollapsedKey[0] = readGroupKeyElement;
|
readGroupCollapsedKey[0] = key[0];
|
||||||
RecalDatum globalRecalDatum = ((RecalDatum)dataManager.getCollapsedTable(0).get( readGroupCollapsedKey ));
|
final RecalDatum globalRecalDatum = ((RecalDatum)dataManager.getCollapsedTable(0).get( readGroupCollapsedKey ));
|
||||||
double globalDeltaQ = 0.0;
|
double globalDeltaQ = 0.0;
|
||||||
if( globalRecalDatum != null ) {
|
if( globalRecalDatum != null ) {
|
||||||
double globalDeltaQEmpirical = globalRecalDatum.getEmpiricalQuality();
|
double globalDeltaQEmpirical = globalRecalDatum.getEmpiricalQuality();
|
||||||
|
|
@ -369,9 +367,9 @@ public class TableRecalibrationWalker extends ReadWalker<SAMRecord, SAMFileWrite
|
||||||
}
|
}
|
||||||
|
|
||||||
// The shift in quality between reported and empirical
|
// The shift in quality between reported and empirical
|
||||||
qualityScoreCollapsedKey[0] = readGroupKeyElement;
|
qualityScoreCollapsedKey[0] = key[0];
|
||||||
qualityScoreCollapsedKey[1] = qualityScoreKeyElement;
|
qualityScoreCollapsedKey[1] = key[1];
|
||||||
RecalDatum qReportedRecalDatum = ((RecalDatum)dataManager.getCollapsedTable(1).get( qualityScoreCollapsedKey ));
|
final RecalDatum qReportedRecalDatum = ((RecalDatum)dataManager.getCollapsedTable(1).get( qualityScoreCollapsedKey ));
|
||||||
double deltaQReported = 0.0;
|
double deltaQReported = 0.0;
|
||||||
if( qReportedRecalDatum != null ) {
|
if( qReportedRecalDatum != null ) {
|
||||||
double deltaQReportedEmpirical = qReportedRecalDatum.getEmpiricalQuality();
|
double deltaQReportedEmpirical = qReportedRecalDatum.getEmpiricalQuality();
|
||||||
|
|
@ -381,11 +379,11 @@ public class TableRecalibrationWalker extends ReadWalker<SAMRecord, SAMFileWrite
|
||||||
// The shift in quality due to each covariate by itself in turn
|
// The shift in quality due to each covariate by itself in turn
|
||||||
double deltaQCovariates = 0.0;
|
double deltaQCovariates = 0.0;
|
||||||
double deltaQCovariateEmpirical;
|
double deltaQCovariateEmpirical;
|
||||||
covariateCollapsedKey[0] = readGroupKeyElement;
|
covariateCollapsedKey[0] = key[0];
|
||||||
covariateCollapsedKey[1] = qualityScoreKeyElement;
|
covariateCollapsedKey[1] = key[1];
|
||||||
for( int iii = 2; iii < key.length; iii++ ) {
|
for( int iii = 2; iii < key.length; iii++ ) {
|
||||||
covariateCollapsedKey[2] = key[iii]; // The given covariate
|
covariateCollapsedKey[2] = key[iii]; // The given covariate
|
||||||
RecalDatum covariateRecalDatum = ((RecalDatum)dataManager.getCollapsedTable(iii).get( covariateCollapsedKey ));
|
final RecalDatum covariateRecalDatum = ((RecalDatum)dataManager.getCollapsedTable(iii).get( covariateCollapsedKey ));
|
||||||
if( covariateRecalDatum != null ) {
|
if( covariateRecalDatum != null ) {
|
||||||
deltaQCovariateEmpirical = covariateRecalDatum.getEmpiricalQuality();
|
deltaQCovariateEmpirical = covariateRecalDatum.getEmpiricalQuality();
|
||||||
deltaQCovariates += ( deltaQCovariateEmpirical - qualFromRead - (globalDeltaQ + deltaQReported) );
|
deltaQCovariates += ( deltaQCovariateEmpirical - qualFromRead - (globalDeltaQ + deltaQReported) );
|
||||||
|
|
@ -393,7 +391,7 @@ public class TableRecalibrationWalker extends ReadWalker<SAMRecord, SAMFileWrite
|
||||||
}
|
}
|
||||||
|
|
||||||
final double newQuality = qualFromRead + globalDeltaQ + deltaQReported + deltaQCovariates;
|
final double newQuality = qualFromRead + globalDeltaQ + deltaQReported + deltaQCovariates;
|
||||||
final byte newQualityByte = QualityUtils.boundQual( (int)Math.round(newQuality), QualityUtils.MAX_REASONABLE_Q_SCORE );
|
return QualityUtils.boundQual( (int)Math.round(newQuality), QualityUtils.MAX_REASONABLE_Q_SCORE );
|
||||||
|
|
||||||
|
|
||||||
// Verbose printouts used to validate with old recalibrator
|
// Verbose printouts used to validate with old recalibrator
|
||||||
|
|
@ -406,7 +404,7 @@ public class TableRecalibrationWalker extends ReadWalker<SAMRecord, SAMFileWrite
|
||||||
// key.get(0).toString(), key.get(3).toString(), key.get(2).toString(), key.get(1).toString(), qualFromRead, globalDeltaQ, deltaQReported, deltaQPos, deltaQDinuc, newQualityByte) );
|
// key.get(0).toString(), key.get(3).toString(), key.get(2).toString(), key.get(1).toString(), qualFromRead, globalDeltaQ, deltaQReported, deltaQPos, deltaQDinuc, newQualityByte) );
|
||||||
//}
|
//}
|
||||||
|
|
||||||
return newQualityByte;
|
//return newQualityByte;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue