/** * Conditions checked are: score above the threshold, order higher than 1 and refinement * succeeded. * * @return true if significant, false otherwise */ public boolean isSignificant() { // In any case if the order is 1 it is asymmetric if (symmOrder < 2) return false; // If the TM-Score is below the threshold if (selfAlignment.getTMScore() < params.getScoreThreshold()) return false; // If the refinement was attempted if (params.getRefineMethod() != RefineMethod.NOT_REFINED) { // Check for minimum length if (multipleAlignment.getCoreLength() < params.getMinCoreLength()) return false; // Allow 90% of original TM-Score theshold if (multipleAlignment.getScore(MultipleAlignmentScorer.AVGTM_SCORE) < params.getScoreThreshold() * 0.9) return false; return true; } return true; }
public void setParams(CESymmParameters params) { this.params = params.clone(); }
@Override public CESymmParameters clone() { CESymmParameters p = new CESymmParameters(); p.maxSymmOrder = maxSymmOrder; p.symmType = symmType; p.orderDetectorMethod = orderDetectorMethod; p.userOrder = userOrder; p.refineMethod = refineMethod; p.optimization = optimization; p.rndSeed = rndSeed; p.symmLevels = symmLevels; p.unrefinedScoreThreshold = unrefinedScoreThreshold; p.refinedScoreThreshold = refinedScoreThreshold; p.sseThreshold = sseThreshold; p.minCoreLength = minCoreLength; p.distanceCutoff = distanceCutoff; p.gaps = gaps; p.optimizationSteps = optimizationSteps; p.winSize = winSize; p.rmsdThr = rmsdThr; p.rmsdThrJoin = rmsdThrJoin; p.scoringStrategy = scoringStrategy; p.maxGapSize = maxGapSize; p.showAFPRanges = showAFPRanges; p.maxOptRMSD = maxOptRMSD; p.gapOpen = gapOpen; p.gapExtension = gapExtension; p.distanceIncrement = distanceIncrement; p.oRmsdThr = oRmsdThr; p.maxNrIterationsForOptimization = maxNrIterationsForOptimization; p.seqWeight = seqWeight; return p; }