Skip to content

Commit 2a09042

Browse files
src/Module.cpp: fixing a bug when calculating the maximum difference at any position for the per base sequence content
1 parent f78669f commit 2a09042

File tree

1 file changed

+9
-21
lines changed

1 file changed

+9
-21
lines changed

src/Module.cpp

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -772,7 +772,8 @@ ModulePerBaseSequenceQuality::make_html_data() {
772772
}
773773

774774
void
775-
ModulePerBaseSequenceQuality::read_data_line(const std::string &line) {}
775+
ModulePerBaseSequenceQuality::read_data_line(
776+
[[maybe_unused]] const std::string &line) {}
776777

777778
/************** PER TILE SEQUENCE QUALITY ********************/
778779
const std::string ModulePerTileSequenceQuality::module_name =
@@ -1116,28 +1117,15 @@ ModulePerBaseSequenceContent::summarize_module(FastqStats &stats) {
11161117
t_pos =
11171118
100.0 * t_pos / std::max(std::numeric_limits<double>::min(), total_pos);
11181119

1119-
// for WGBS, we only test non-bisulfite treated bases
1120-
if (!is_reverse_complement)
1121-
max_diff = std::max(max_diff, std::fabs(a_pos - g_pos));
1122-
else
1123-
max_diff = std::max(max_diff, std::fabs(c_pos - t_pos));
1124-
1125-
if (!is_bisulfite) {
1126-
max_diff = std::max(max_diff, std::fabs(a_pos - c_pos));
1127-
max_diff = std::max(max_diff, std::fabs(a_pos - t_pos));
1128-
max_diff = std::max(max_diff, std::fabs(c_pos - g_pos));
1129-
max_diff = std::max(max_diff, std::fabs(t_pos - g_pos));
1130-
1131-
if (!is_reverse_complement)
1132-
max_diff = std::max(max_diff, std::fabs(c_pos - t_pos));
1133-
else
1134-
max_diff = std::max(max_diff, std::fabs(a_pos - g_pos));
1135-
}
1136-
// WGBS specific base content count
1137-
else {
1120+
if (is_bisulfite) {
1121+
// for WGBS, we only test non-bisulfite treated bases
11381122
max_diff =
1139-
std::max(max_diff, std::fabs((c_pos + t_pos) - (a_pos + g_pos)));
1123+
std::max(max_diff, is_reverse_complement ? std::fabs(c_pos - t_pos)
1124+
: std::fabs(a_pos - g_pos));
1125+
continue;
11401126
}
1127+
max_diff = std::max(
1128+
max_diff, std::max(std::fabs(a_pos - t_pos), std::fabs(c_pos - g_pos)));
11411129
}
11421130

11431131
// turns above values to percent

0 commit comments

Comments
 (0)