Skip to content

geckopy 0.1.0a3 (second alpha)

Pre-release
Pre-release

Choose a tag to compare

@edkerk edkerk released this 30 May 21:16
· 55 commits to main since this release
72f4ad2

Second public alpha. Layering pass: the bits of geckopy that aren't GECKO-specific moved into raven-python, and gecko-light ecModels are now buildable end-to-end. Repo housekeeping for a discoverable first GitHub release.

(v0.1.0a2 was tagged earlier but its release.yml build failed — hatchling rejected the raven-python @ git+https://... direct reference. v0.1.0a3 carries the same content with the one-line [tool.hatch.metadata] allow-direct-references = true fix.)

Install

pip install \
    git+https://github.com/SysBioChalmers/raven-python.git@develop \
    git+https://github.com/SysBioChalmers/geckopy.git@v0.1.0a3

raven-python is not yet on PyPI; geckopy's PyPI name is currently taken by another project. Both currently install from git.

Highlights

  • gecko-light ecModel end-to-end (#20) — make_ec_model(gecko_light=True) produces a working light ecModel; cobra reactions stay singular and per-isozyme coupling lives in ec.rxns as duplicate rows with a ###_ counter prefix. apply_kcat_constraints picks the lowest-cost isozyme per cobra reaction. New tutorials/light_ecModel/protocol.py + opt-in Human-GEM smoke test (pytest -m smoke, ~2.5 min). See docs/gecko_light_status.md.
  • YAML I/O + typed EcData delegated to raven-python (#19) — save_ec_model / load_ec_model are now ~80-LOC wrappers around raven_python.io.read_yaml_model / write_yaml_model. SBML ecModel I/O removed (cobra.io.read_sbml_model is still used for loading the conventional starting GEM). geckopy.EcData re-exports raven's EcData. See docs/raven_integration.md.
  • ec_fseof re-aligned with raven_python.analysis.fseof (#21) — thin wrapper over raven's regression-based FSEOF; selection moves from MATLAB GECKO's strict monotonicity + top-25 %-by-slope to |correlation| ≥ threshold with pFBA per step. Result type is raven's FSEOFResult; action labels are amplify/knockdown/knockout.
  • get_conc_control_coeffs solver-state guard fix — gates both shadow-price and finite-difference helpers on sol.status == "optimal"; previously accepted infeasible-LP states where glpk returns a non-NaN objective from the binding-constraint rhs.

Removed (breaking from 0.1.0a1)

  • geckopy.io.sbml.{read,write}_sbml_ec_model and the geckopy.io package.
  • geckopy.EcFseofResult (use raven_python.analysis.fseof.FSEOFResult).
  • Top-level requirements.txt (a pip freeze snapshot duplicating pyproject.toml).

Repo housekeeping (PRs #22, #23, #24)

  • MIT LICENSE text added at repo root (was only declared in pyproject.toml).
  • Internal planning docs moved from docs/ to docs/internal/ so the user-facing tree only carries reference documentation.
  • [tool.hatch.metadata] allow-direct-references = true so python -m build accepts the raven-python git URL dependency.
  • permissions: contents: write on the release.yml build job so softprops/action-gh-release can attach assets without HTTP 403.

Full notes: CHANGELOG.md § 0.1.0a3 + § 0.1.0a2.