/// <summary> /// Selects charge correlating group based on composite score /// </summary> /// <param name="result"></param> /// <returns></returns> private ChromPeakIqTarget TargetSelector(TopDownIqResult result) { double bestScore = 0; var bestScoringGroup = new ChargeCorrelationItem(); var corrData = result.ChargeCorrelationData.CorrelationData; foreach (var group in corrData) { double groupScore = 0; var entries = group.PeakCorrelationData; foreach (var entry in entries) { groupScore += (entry.Value.RSquaredValsMedian.HasValue) ? entry.Value.RSquaredValsMedian.Value : 0; groupScore += (1 - entry.Key.GetResult().FitScore); } if (groupScore > bestScore) { bestScore = groupScore; bestScoringGroup = group; } } bestScoringGroup.SelectedTargetGrouping = true; result.SelectedCorrelationGroup = bestScoringGroup; foreach (var entry in bestScoringGroup.PeakCorrelationData) { UpdateSelection(entry.Key); } return(bestScoringGroup.ReferenceTarget); }
public TopDownIqResult(IqTarget target) : base(target) { ChargeCorrelationData = new ChargeCorrelationData(); SelectedCorrelationGroup = new ChargeCorrelationItem(); }