Skip to content

Commit 32b8c7b

Browse files
src/Module.cpp: updating output precision for the per base sequence quality and per tile sequence quality
1 parent 7d4dc96 commit 32b8c7b

1 file changed

Lines changed: 22 additions & 11 deletions

File tree

src/Module.cpp

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -736,14 +736,22 @@ ModulePerBaseSequenceQuality::make_grade() {
736736

737737
void
738738
ModulePerBaseSequenceQuality::write_module(std::ostream &os) {
739+
constexpr auto max_precision{std::numeric_limits<double>::digits10};
740+
const auto default_precision{os.precision()};
739741
os << "#Base\tMean\tMedian\tLower Quartile\tUpper Quartile"
740742
<< "\t10th Percentile\t90th Percentile\n";
741-
742743
// GS: TODO make base groups
743744
for (std::size_t i = 0; i < num_groups; ++i) {
744-
os << base_groups[i] << "\t" << group_mean[i] << "\t" << group_median[i]
745-
<< "\t" << group_lquartile[i] << "\t" << group_uquartile[i] << "\t"
746-
<< group_ldecile[i] << "\t" << group_udecile[i] << "\n";
745+
// clang-format off
746+
os << base_groups[i] << "\t"
747+
<< std::setprecision(max_precision) << group_mean[i] << "\t"
748+
<< std::fixed << std::setprecision(1) << group_median[i] << "\t"
749+
<< std::fixed << std::setprecision(1) << group_lquartile[i] << "\t"
750+
<< std::fixed << std::setprecision(1) << group_uquartile[i] << "\t"
751+
<< std::fixed << std::setprecision(1) << group_ldecile[i] << "\t"
752+
<< std::fixed << std::setprecision(1) << group_udecile[i] << "\n"
753+
<< std::defaultfloat << std::setprecision(default_precision);
754+
// clang-format on
747755
}
748756
}
749757

@@ -869,16 +877,17 @@ ModulePerTileSequenceQuality::make_grade() {
869877

870878
void
871879
ModulePerTileSequenceQuality::write_module(std::ostream &os) {
872-
880+
constexpr auto max_precision{std::numeric_limits<double>::digits10};
881+
const auto default_precision{os.precision()};
873882
// prints tiles sorted by value
874883
os << "#Tile\tBase\tMean\n";
875884
for (std::size_t i = 0; i < std::size(tiles_sorted); ++i) {
876885
for (std::size_t j = 0; j < max_read_length; ++j) {
877-
878886
if (std::size(tile_position_quality[tiles_sorted[i]]) >= j) {
879887
os << tiles_sorted[i] << "\t" << j + 1 << "\t"
880-
<< tile_position_quality[tiles_sorted[i]][j];
881-
os << "\n";
888+
<< std::setprecision(max_precision)
889+
<< tile_position_quality[tiles_sorted[i]][j]
890+
<< std::setprecision(default_precision) << "\n";
882891
}
883892
}
884893
}
@@ -1294,7 +1303,8 @@ ModulePerBaseSequenceContent::make_html_data() {
12941303
const std::string ModulePerSequenceGCContent::module_name =
12951304
"Per sequence GC content";
12961305
ModulePerSequenceGCContent::ModulePerSequenceGCContent(
1297-
const FalcoConfig &config) : Module(ModulePerSequenceGCContent::module_name) {
1306+
const FalcoConfig &config) :
1307+
Module(ModulePerSequenceGCContent::module_name) {
12981308
auto gc_vars = config.limits.find("gc_sequence")->second;
12991309
gc_warn = gc_vars.find("warn")->second;
13001310
gc_error = gc_vars.find("error")->second;
@@ -2152,8 +2162,9 @@ ModuleKmerContent::write_module(std::ostream &os) {
21522162
const std::size_t kmer = kmers_to_report[i].first;
21532163
os << size_t_to_seq(kmer, kmer_size) << "\t" << total_kmer_counts[kmer]
21542164
<< "\t"
2155-
<< "0.0" << "\t" << obs_exp_max[kmer] << "\t"
2156-
<< where_obs_exp_is_max[kmer] << "\n";
2165+
<< "0.0"
2166+
<< "\t" << obs_exp_max[kmer] << "\t" << where_obs_exp_is_max[kmer]
2167+
<< "\n";
21572168
}
21582169
}
21592170

0 commit comments

Comments
 (0)