From ff49e7ee3033e83b23a75e3b4e1d471f3a9f1fc2 Mon Sep 17 00:00:00 2001 From: Fengchao Date: Wed, 31 Jan 2018 12:49:23 +0800 Subject: [PATCH] Fix a small bug in CalEValue and improvement. --- src/main/java/proteomics/Search/CalEValue.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/proteomics/Search/CalEValue.java b/src/main/java/proteomics/Search/CalEValue.java index f9afe8f..dfb0170 100644 --- a/src/main/java/proteomics/Search/CalEValue.java +++ b/src/main/java/proteomics/Search/CalEValue.java @@ -84,12 +84,10 @@ public class CalEValue { // find the next max nonzero idx. from this down to the changing point are from null. int null_end_idx = max_nonzero_idx; - for (int i = min_nonzero_idx; i <= max_nonzero_idx; ++i) { - if (score_histogram[i] == 0) { - if (i == max_nonzero_idx || score_histogram[i + 1] == 0) { - null_end_idx = i - 1; - break; - } + for (int i = max_nonzero_idx; i > min_nonzero_idx + 4; --i) { + if (score_histogram[i] == 0 && score_histogram[i - 1] == 0 && score_histogram[i - 2] != 0) { + null_end_idx = i - 2; + break; } } @@ -100,8 +98,8 @@ public class CalEValue { } // find the start point - int start_idx = min_nonzero_idx; - if (null_end_idx > 3 / ResultEntry.histogram_bin_size) { + int start_idx; + if (null_end_idx > 3 * inverseHistogramBinSize) { start_idx = Math.max(min_nonzero_idx, (int) (0.75 * null_end_idx)); } else { start_idx = Math.max(min_nonzero_idx, (int) ( 0.5 * null_end_idx));