Skip to content

v4.0.0b1

Latest

Choose a tag to compare

@edkerk edkerk released this 08 Sep 21:24
277b74a

Version realignment: geckopy numbering will be aligned with GECKO (MATLAB),
justifying a jump to 4.x. This is the first release published to PyPI.

  • New: kcat_tuning.evotune fits ec.kcat to measured growth rates and
    exchange fluxes with CMA-ES (screen_kcat_leverage, select_tunable_mask,
    cmaes_kcat_tuning, tune_prior_penalty_weight), replacing the earlier
    ABC-SMC approach. EvotuneResult.corrections() reports a tuning run as a
    ranked table of what changed and why, rather than a raw kcat vector. Gated
    behind the new evotune extra.
  • New: gather_kcats.review.review_assignment flags kcat-assignment
    problems (repeated values, EC-maximum fallback, implausible magnitude)
    worth curating before a tuning run.
  • kcat_sensitivity_analysis renamed to kcat_tuning, with the CMA-ES
    subpackage named evotune rather than bayesian — the shipped method is
    CMA-ES, not Bayesian inference.
  • flexibilize_enz_concs: the post-loop refinement now uses MATLAB's soft
    ±0.25% growth band instead of pinning to exp_growth exactly, matching
    flexibilizeEnzConcs.m.
  • make_ec_model no longer splits exchange reactions in the irreversibility
    stage, matching makeEcModel.m's nonExchRxns exclusion.
  • get_reactions_from_enzyme now matches protein_id case-insensitively,
    matching MATLAB's strcmpi.
  • read_dlkcat_output gained an opt-in strict=True fail-fast on
    unrecognized substrates, matching MATLAB, and now reports drop reasons
    separately instead of lumping them together.
  • assign_standard_kcat: a NaN-kcat reaction no longer counts toward a
    subsystem's threshold eligibility or gets folded into the subsystem
    median; unset kcats now get filled for NaN too, not just literal zeros.
  • parse_okp_output now tags provenance with the OKP- prefix MATLAB
    applies; merge_kcats strips it again before source-priority matching so
    tagged rows still rank correctly.
  • set_kcat_for_reactions now accepts a per-isozyme kcat list against an
    un-suffixed base name (assigned positionally, matching MATLAB), and writes
    ec.source = "setKcatForReactions" (MATLAB's actual value) instead of
    "manual".
  • ec_fseof: scan floor now anchors to the production target's flux at
    biomass-optimum instead of a fixed fraction of the theoretical maximum,
    and candidates are restricted to gene-associated, non-standard reactions
    before classification — both matching ecFSEOF.m.
  • ec_fva's parallel path now uses cobra.util.process_pool.ProcessPool
    instead of a hand-rolled multiprocessing.Pool — fixes a slow Windows
    initializer handoff and gives graceful pool teardown. Public signature
    unchanged.
  • raven-toolbox dependency switched from a git+...@develop pin to the
    PyPI >=3.0.0b1 release, which carries the convert_to_irreversible(..., rxns=...) addition make_ec_model needs.
  • Packaging: the sdist was bundling the entire local .venv-win
    virtualenv (~60MB, including a compiled scipy wheel) because .gitignore
    listed .venv/ but not .venv-win/, and hatchling's default sdist
    selection only reads the top-level .gitignore.
  • release.yml: PyPI publish job enabled (trusted publishing).
  • README: disambiguation note simplified and repointed at the specific old
    geckopy release (2.0.2 and earlier), now that this project has taken
    over the PyPI project name itself.

Full changelog: https://github.com/SysBioChalmers/geckopy/blob/main/CHANGELOG.md
Compare: v0.3.0...v4.0.0b1