Conversation
|
There was a problem hiding this comment.
Pull Request Overview
This PR fixes issues with exclusive events, updates the length function calculation, and enforces a specific version requirement for MUSCLE.
- Fixed reported exclusive event calculations and test inconsistencies
- Revised interval length calculation and sorting keys in data preprocessing
- Upgraded MUSCLE usage and updated documentation accordingly
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_classification.py | Adjusted exon coordinate lists and renamed a test for clarity |
| exonize/sqlite_handler.py | Updated table creation defaults and added placeholder values |
| exonize/searcher.py | Changed MUSCLE CLI options and switched to a helper for interval length |
| exonize/reconciler_handler.py | Replaced direct coordinate arithmetic with a helper function |
| exonize/exonize.py | Minor messaging adjustments in CLI descriptions |
| exonize/environment_setup.py | Added tool version validation using subprocess and updated MUSCLE check |
| exonize/data_preprocessor.py | Fixed sorting key and added an interval_length helper with +1 offset |
| exonize/classifier_handler.py | Reworked exclusive event and intersection logic to use new parameters |
| docs/index.md & README.md | Updated documentation to reflect MUSCLE (v.5.3) changes |
Comments suppressed due to low confidence (1)
exonize/searcher.py:109
- [nitpick] Verify that the new MUSCLE command flag '-align' (and its corresponding '-output') are correctly supported in MUSCLE v5.3 as these changes require alignment with updated documentation.
"-align",
| @staticmethod | ||
| def _find_related_items(item, list_items): | ||
| def check_condition(itemi, itemj): | ||
| return bool(set(itemi).intersection(set(itemj))) if itemi != itemj else {} |
There was a problem hiding this comment.
The condition function in _find_related_items returns an empty dictionary instead of a Boolean value when items are equal. Replace {} with false to ensure a consistent Boolean return type.
| return bool(set(itemi).intersection(set(itemj))) if itemi != itemj else {} | |
| return bool(set(itemi).intersection(set(itemj))) if itemi != itemj else False |
| def interval_length( | ||
| interval: P.Interval | ||
| ): | ||
| return interval.upper - interval.lower + 1 |
There was a problem hiding this comment.
Add a comment clarifying that the '+1' adjustment is used because the interval boundaries are inclusive, to document this assumption for future maintainers.
| capture_output=True, | ||
| text=True | ||
| ) | ||
| if version not in program_version.stdout.strip(): |
There was a problem hiding this comment.
[nitpick] Consider implementing a more robust version comparison rather than a substring check, as this can lead to false positives if version numbers share digits.



Main changes:
muscleand made the version a requirement