Fix relative path management to find pangenome.h5 file - #54
Merged
Conversation
Enhanced path resolution by adding the `resolve_path` function to handle both absolute and relative paths robustly. Updated `check_tsv_sanity` to utilize this function for improved error handling and path validation.
jpjarnoux
added a commit
that referenced
this pull request
Jul 23, 2026
## Description Release PR merging `dev` into `main`, bringing `main` from `1.0.0` up to `1.0.4`. This covers several bug fixes (annotation timing, path resolution, CLI argument names), a dependency floor bump for `pyhmmer` (0.12.0, required for compatibility with its `bytes`→`str` API change), removal of unsupported/dead CLI options, a large documentation overhaul (developer guide, API reference, citation guide, quick-start), and CI workflow cleanup. ## What changed - **Fixes:** - Fixed annotation monitoring accumulating elapsed time across pangenomes instead of per-pangenome (#48). - Fixed relative path resolution so `pangenome.h5` is found correctly regardless of where the pangenome TSV/CLI is invoked from (#54). - Fixed wrong argument names in the `compare_spots`/`compare_systems` commands. - Fixed a CI failure (#49). - **Dependencies:** - Pinned `pyhmmer>=0.12.0` in `pyproject.toml` and `panorama.yml`; updated `genInput.py`, `macsymodel_translator.py`, and `hmm_search.py` to use plain `str` access on HMM/Hit/Sequence/Alignment attributes now that pyhmmer 0.12+ returns `str` instead of `bytes` (#58). - **Removed:** - Removed unsupported `--conserved_spots` option from `write_flat.py` (#56). - Removed the automatic version-bump GitHub Actions workflow (#52). - **Utilities:** - Added a `resolve_path` utility, integrated into `check_tsv_sanity` for robust pangenome path resolution. - **CI:** - Scoped the Ruff format/lint workflow to `panorama`/`tests` only (`src` input), so it no longer lints unrelated paths like `.github/scripts/`. - Skipped test/Ruff workflow runs on `doc/*` branches and fixed duplicate doc-check workflow runs. - **Documentation:** - Added a "How to cite" guide and citation `.bib` files (#55). - Added a pull request template for contributions (#51). - Large developer-guide and API-documentation restructuring: new I/O layer and detection-workflow pages, cleaned-up autosummary/API structure, removed several outdated developer docs. - Numerous formatting/typo/link fixes across user and modeler documentation; added PANORAMA logo and citation/paper badges to the README. ## Testing **Test environment:** - Dataset used: no external `PANORAMA_test` dataset run as part of this release PR itself — each underlying change was tested/verified individually in its own PR (see #48, #49, #51, #52, #54, #55, #56, #57, #58). - Key parameters: N/A (aggregation PR). **Results:** - All constituent PRs passed CI (Ruff + pytest, Ubuntu/macOS, Python 3.12) individually before merging into `dev`. - Recommend a final CI run on this PR against `main` before merging. ## Documentation - [x] Added/updated code comments - [x] Added/updated docstring - [x] Updated README or docs if needed - [ ] Added example usage (if relevant) ## Checklist - [x] My code follows the project guidelines - [x] Complex logic is commented - [x] No unnecessary files or debug code included - [ ] My PR is targeting the `dev` branch (this PR targets `main`, as a release merge) ## Additional notes `VERSION` is already at `1.0.4` on `dev` (bumped incrementally across the merged PRs); no further manual bump should be needed for this release. Anyone with an existing `panorama` conda env built before `pyhmmer>=0.12.0` was pinned should recreate/update it to match the new floor.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The current behavior is to use the absolute path or the working directory relative path to find pangenome file. This is not the expected behavior describe in the documentation.
Example:
file tree
├── pangenome1.h5
├── pangenome2.h5
├── pangenomes
│ ├── pangenome3.h5
│ └── pangenome4.h5
└── pangenomes.tsv
pangenomes.tsv
pangenome1 /home/user/absolute/path/pangenome1.h5
pangenome2 pangenome2.h5
pangenome3 pangenomes/pangenome3.h5
pangenome4 /home/user/absolute/path/pangenome4.h5
This work if panorama is executed where pangenomes.tsv exist.
I add a new function to solve the path in the TSV.
Related issue
#53
What changed
resolve_pathfunction to handle both absolute and relative paths robustly.check_tsv_sanityto utilize this function for improved error handling and path validation.Documentation
Checklist
devbranchAdditional notes