Skip to content

Fix relative path management to find pangenome.h5 file - #54

Merged
jpjarnoux merged 3 commits into
devfrom
bugfix/53-unable-to-locate-pangenome
Jul 23, 2026
Merged

Fix relative path management to find pangenome.h5 file#54
jpjarnoux merged 3 commits into
devfrom
bugfix/53-unable-to-locate-pangenome

Conversation

@jpjarnoux

@jpjarnoux jpjarnoux commented Feb 16, 2026

Copy link
Copy Markdown
Member

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

  • 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.

Documentation

  • Added/updated code comments
  • Added/updated docstring
  • Updated README or docs if needed
  • Added example usage (if relevant)

Checklist

  • My code follows the project guidelines
  • Complex logic is commented
  • No unnecessary files or debug code included
  • My PR is targeting the dev branch

Additional notes

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 jpjarnoux linked an issue Feb 16, 2026 that may be closed by this pull request
@jpjarnoux
jpjarnoux merged commit 6e1415a into dev Jul 23, 2026
3 checks passed
@jpjarnoux
jpjarnoux deleted the bugfix/53-unable-to-locate-pangenome branch July 23, 2026 13:08
@jpjarnoux jpjarnoux mentioned this pull request Jul 23, 2026
8 tasks
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unable to locate pangenome

1 participant