Subject: | Missing output for fetch_window |
Date: | Fri, 27 Oct 2017 19:32:57 +0100 |
To: | bug-Set-IntervalTree [...] rt.cpan.org |
From: | Matthieu Muffato <muffato [...] ebi.ac.uk> |
Hello,
I am having issues with fetch_window. As I add more intervals/objects to
the tree, some objects are not returned any more. It looks like the C++
code does not handle overlapping input overlaps, but it is not mentioned
in the documentation of the module.
I have attached a minimal test script. It adds elements one at a time to
the tree, and queries a given interval (always the same) with
fetch_window. It prints the returned array and the internal structure of
the tree (even though I can't make sense of it). The list is supposed to
remain the same or grow, reaching the elements 1, 2, 4, 6 and 7. But as
soon as element 3 is added, the tree only returns the element 2.
I think this is due to the end coordinate of element 3 being higher than
the start coordinate of element 2. If I decrease the end coordinate to
6208751, none of the intervals overlap (but one is duplicated) and it
works. However the documentation doesn't mention such a limitation.
On the other hand, fetch doesn't seem to be affected by the overlap. It
always correctly returns all the elements. I haven't looked into the C++
code, but could that mean that the structure is correct, but
fetch_window makes too many assumptions about the intervals ?
Bug replicated on:
- v0.10, on perl v5.18.2 / Linux 3.13.0-132-generic (Ubuntu)
- v0.11, on perl v5.24.1 / Linux 3.10.0-514.16.1.el7.x86_64 (RHEL7)
I hope you can provide some guidance !
Thank you
Best regards,
Matthieu Muffato
Message body is not shown because sender requested not to inline it.