Conversation
…dy-output-contract Standardize dashboard-ready output contract
…nd added imageio and gravis libs, module levelling for scripts
…amics-panel Fix forward phosphosite ODE panel
…es-for-combinatorial-model Make combinatorial model memory safe
…no memory explosion in for loop, vectorized RHS for combinatorial model. Example: 10 multi-starts 17 protein entities × 14 time points, 17 RNA entities × 9 time points, 36 phosphosites × 14 time points 238 protein rows, 153 RNA rows, 504 phospho rows | Total 895 observation rows Parameter vector size: 149 Memory is use: 18 GB RAM on server
…o, tested all scenarios, works!
…th-empty-config.toml Defer ODE input validation until ProtWise runtime
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 490a294299
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| - name: Run tests | ||
| run: | | ||
| pixi run test || echo "No Pixi test task configured; skipping tests." |
There was a problem hiding this comment.
Do not mask release test failures
In the tag-release workflow, this || echo makes the test step succeed for any non-zero pixi run test exit, including real pytest failures and the default-environment case where pytest is not installed. Because the archive and gh release create steps run unconditionally after this, a broken tag can still publish a GitHub release instead of stopping at the test gate.
Useful? React with 👍 / 👎.
| Computed result from this routine. | ||
| """ | ||
| p = Path(output_dir) / "dashboard_bundle.pkl" | ||
| p = Path(output_dir) / "artifacts" / "dashboard_bundle.pkl" |
There was a problem hiding this comment.
Fall back to legacy dashboard bundles
Existing networkmodel result directories created before this change store dashboard_bundle.pkl at the run root, and the new panel still discovers that legacy location, but load_dashboard_bundle() now only opens artifacts/dashboard_bundle.pkl. Users opening old runs through networkmodel/dashboard_app.py or the unified panel will get FileNotFoundError even though the bundle exists, so keep a root-level fallback when the artifacts copy is absent.
Useful? React with 👍 / 👎.
| description="PhosKinTime - SLSQP/TRUST-CONSTR Kinase Phosphorylation Optimization Problem prior to ODE Modelling." | ||
| ) | ||
|
|
||
| parser.add_argument("--conf", default=None, help="Compatibility option; configuration is loaded before argument parsing.") |
There was a problem hiding this comment.
When the dashboard or config.cli passes --conf for a KinOpt run, this parser accepts the option but never uses it; _CFG, INPUT1, INPUT2, and the defaults were already loaded from the project config.toml at import time. That makes a user-selected TOML silently ignored, so experiments can run with the wrong input files and bounds instead of the uploaded/custom configuration.
Useful? React with 👍 / 👎.
| parser = argparse.ArgumentParser( | ||
| description="PhosKinTime - SLSQP mRNA-TF Optimization Problem." | ||
| ) | ||
| parser.add_argument("--conf", default=None, help="Compatibility option; configuration is loaded before argument parsing.") |
There was a problem hiding this comment.
The TFOpt launcher has the same silent no-op behavior for --conf: the option is parsed here, but all config-derived constants and defaults were loaded from the default project config before argument parsing. Any dashboard/config-cli run that selects a custom TOML will therefore execute with the wrong TFOpt inputs and settings while appearing to have accepted the file.
Useful? React with 👍 / 👎.
PR Summary: Merge
globalintomainand preparev0.5.0releaseThis PR merges the current
globaldevelopment branch intomainand prepares the repository for thev0.5.0release.The release consolidates the major PhosKinTime refactor around the JAX/JAXopt/Diffrax-based modelling stack, improves multimodal input handling, stabilizes
networkmodelandprotwise, standardizes dashboard-ready outputs, and updates documentation, tests, release workflows, and future extension planning.Major changes
NetworkModel and global ODE workflow
ProtWise local ODE models
randmodsubset ordering and masks.randmodaggregation.Dashboard and frontend
Performance and memory safety
Configuration, imports, and runtime safety
config.toml.odeintcode paths where no longer needed.Documentation, notebooks, and release materials
v0.5.0.Repository maintenance
git-cliffchangelog tooling and Pixi changelog tasks.Testing
The following areas were tested or stabilized during this release cycle:
Expected release validation command:
Release notes
This PR prepares PhosKinTime
v0.5.0.This release should be treated as a major framework stabilization release rather than a small patch. The main focus is making the JAX/JAXopt/Diffrax-based workflow usable, testable, dashboard-ready, and compatible with realistic multimodal and missing-modality scenarios.
After merging, create and push the release tag:
git tag -a v0.5.0 -m "Release v0.5.0" git push origin v0.5.0The GitHub release can then be created from the tag, with Zenodo archiving enabled through the linked repository.