Context: we use region strings (UCSC format, e.g. chr:start-end) throughout the code and keep parsing / serializing them and doing operations.
Proposed changes:
This PR adds a dedicated Region type that centralizes the logic to:
parse from / convert to various formats
perform operations (overlap et cie)
The main advantage is reducing duplication and more explicit code.
Additional changes:
The modos.helpers module was getting quite large. This PR splits it into submodules (genomics, region, schema).
There was a strong coupling between helpers.schema and introspection (i.e. they kept importing each other), so I merged modos.introspection into modos.helpers.schema. We might figure out a cleaner way to structure this later.
Context: we use region strings (UCSC format, e.g. chr:start-end) throughout the code and keep parsing / serializing them and doing operations.
Proposed changes: This PR adds a dedicated
Region
type that centralizes the logic to:The main advantage is reducing duplication and more explicit code.
Additional changes:
modos.helpers
module was getting quite large. This PR splits it into submodules (genomics, region, schema).