Skip to content
Snippets Groups Projects
Commit 0348f123 authored by Salson Mikael's avatar Salson Mikael
Browse files

MultiCover: Fix case when window is larger than chromosome

parent 81bfb8c1
No related branches found
No related tags found
No related merge requests found
......@@ -178,7 +178,13 @@ template <class bv>
void MultiCover<bv>::outputRangeBED(size_t range_size, std::ostream &output,
std::tuple<size_t, size_t, size_t> range) const {
size_t chr_index = std::get<0>(range);
for (size_t i = std::get<1>(range); i < std::get<2>(range) - range_size + 1; i += range_size) {
size_t end = std::get<2>(range);
size_t start = std::get<1>(range);
if (start > end)
throw std::invalid_argument("start position should be before end position");
if (end +1 < range_size || start > end-range_size+1)
range_size = end - start + 1;
for (size_t i = start; i <= end - range_size + 1; i += range_size) {
output << target_names[chr_index] << "\t" << i << "\t"
<< i+range_size << "\t"
<< covers[chr_index]->count_reads_between(i, i + range_size - 1)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment