Feat/pypangraph junctions - #182
Conversation
…date imports in tests
|
Will check later, but I am somewhat weak on both the junctions and the snake language, so not much hope. Pasting AI review in the meantime
OverviewClick to expandThis branch adds a Changes span the pypangraph Python package (13 production files, 7 test files), documentation (3 new tutorials, image assets, changelog), and a minor README update. BackgroundPangenome junctions and structural variation [click to expand]In a pangenome graph, genomes are decomposed into blocks (pancontigs) of homologous sequence. A junction is the accessory region between two consecutive core blocks shared across all (or most) genomes. By comparing junctions at the same pair of core flanks across isolates, one can identify insertions, deletions, rearrangements, and mobile element activity. This is the analytical framework described in Molari, Shaw, and Neher (2025) [1]. The branch implements this framework as a Python library, building on pangraph's block/path/node data model. Each genome's path is split at backbone boundaries (core blocks above a length threshold), producing per-isolate junctions keyed by their flanking edge. Reverse-complement symmetry is handled by canonicalizing junction orientation before comparison. Blocking issuesCorrectness concerns worth addressing before merge. 🔴 H1.
|
|
Thank you! Still very appreciated! I'll go through these and after this polishing I'll release next week! |
Feat/streamlined gfa export
The aim of this PR is to add functionalities to PyPangraph to analyze core-genome junctions.
Core-genome junctions are defined as regions in the graph separated by two adjacent flanking core blocks.
The main additions of the PR are:
BackboneJunctionsthat serves as the interface to functions for junction analysisstatsof this class, returning summary statistics for each junction.positionsthat computed junction coordinates in genomes frames of reference.sequences, that extracts from the graph unaligned sequences for each junction.