Repository navigation
Conversation
* Add CMA-ES kcat tuning against experimental flux/growth data * Rename Bayesian kcat tuning to evolutionary (CMA-ES) tuning; drop internal process docs * Rename evolutionary_tuning to the shorter evotune
* Add EvotuneResult.corrections(): report a tuning result as a ranked table * Move corrections to kcat_tuning; give sensitivity_tuning its own corrections()
Switches off the git develop pin now that 3.0.0b1 carries the convert_to_irreversible(rxns=...) addition make_ec_model needs (#42). Drops allow-direct-references along with it, since nothing in dependencies needs a direct URL reference anymore -- PyPI would have rejected an sdist containing one. Full suite passes against the PyPI release (1410 passed, 1 skipped, 1 xfailed).
Flattens the Keep-a-Changelog ### Added/Fixed/Changed subsections into one bullet list (matching raven-toolbox's CHANGELOG.md format) and drops the version header's brackets to match. Also folds in #49 and #50, which had merged straight to main since 0.3.0 and were missing from develop until the merge two commits back.
Removes every (#NN) / ([#NN]) citation and the now-unused version/PR link-reference block at the bottom of the file. Flattens each 0.x.y entry's Keep-a-Changelog ### Added/Fixed/Changed/... subsections into one bullet list per raven-toolbox's CHANGELOG.md format, matching what the 4.0.0b1 entry already does.
Exact list equality between the serial and 2-worker-pool runs is fragile: rmse_trace is summed in a different order across worker processes than in-process, so it can differ by a couple of ULPs even when the optimization result (new_kcat) is bit-identical. Failed on macOS CI for exactly that reason.
Explains both a plain pip install --pre geckopy (which resolves raven-toolbox's own pre-release transitively, verified against pip's actual resolver) and an explicit dual-pin for exact reproducibility. Also drops the under-active-development title suffix now that Status already covers that, and points at the evotune docs from Quick start.
Only one MATLAB-COMPAT: comment remained in src/ (query.py) -- the 0.3.0 docstring cleanup already replaced the rest with plain statements of current behavior, so the convention future_improvements.md and the README described as active was stale. Rewrites the two remaining source notes (query.py, _brenda_query.py) as plain statements, drops the now-false every-divergence-carries-a- MATLAB-COMPAT-comment claims from README.md and migrating_from_gecko_matlab.md, and points readers at the actively maintained MATLAB to Python translation guide on gecko-docs.readthedocs.io instead. Also cleans up docs/future_improvements.md: removes three MATLAB GECKO changes items that PRs #43 and #47 resolved in the opposite direction (geckopy changed to match MATLAB, rather than MATLAB adopting geckopy old behavior), and the drop-the-raven-toolbox- git-URL deferred-migration item, done a few commits back.
Audits the `Ported from GECKO MATLAB:` docstring convention across src/geckopy: adds the header to files that port real GECKO MATLAB functionality but were missing it, and fixes three headers that cited the wrong path. - adapter/adapter.py, adapter/resolve.py, adapter/template.py, adapter/params.py: port GECKO MATLAB's model_adapter/ (ModelAdapter.m, ModelAdapterManager.m, adapterTemplate.m), not geckopy-only scaffolding. - cli.py: the `init` subcommand ports startGECKOproject.m's project-scaffolding logic. - ec_model/pipeline/preprocess.py, populate_ec.py, protein_pool.py: split-out stages of makeEcModel.m; protein_pool.py's set_prot_pool_size also cites setProtPoolSize.m specifically. - ec_model/pipeline/query.py: ports getReactionsFromEnzyme.m. - gather_kcats/fuzzy_kcat_matching/_brenda_query.py, _escalation.py, _organism.py: split-out helpers of fuzzyKcatMatching.m, already cited by the parent package's __init__.py. - databases/uniprot_loader.py: cited src/geckomat/utilities/loadDatabases.m; loadDatabases.m lives under get_enzyme_data/, not utilities/. - databases/kegg_download.py, uniprot_download.py: cited nonexistent downloadKEGG.m / downloadUniProt.m paths; point at the real source, loadDatabases.m, with the extraction noted in prose. - databases/phyl_dist.py: normalized to the standard "Ported from GECKO MATLAB: <path>." wording (was missing the colon, so it didn't match the repo convention or the audit grep).
The kcat_tuning package (moved here from kcat_sensitivity_analysis, which no longer exists) cited `src/kcat_tuning/...` for its ported functions. That path doesn't resolve on the default GECKO MATLAB branch, and only partially resolves on `develop4` (sensitivityTuning.m, sigmaFitter.m, truncateValues.m exist there under `src/kcat_tuning/`, but findMaxValue.m and the whole `Bayesian/` folder do not). The real, resolvable source for all eight citations is `src/geckomat/kcat_sensitivity_analysis/`, matching every other header in the codebase and confirmed via the GECKO repo's actual tree (including a stale `doc/` snapshot on `develop4` that still shows `loadBayesianData.m` at that path). - kcat_tuning/find_max_value.py, sensitivity_tuning.py, sigma_fitter.py, truncate_values.py: `src/kcat_tuning/X.m` -> `src/geckomat/kcat_sensitivity_analysis/X.m`. - kcat_tuning/evotune/priors.py, distance.py, simulate.py, data.py: `src/kcat_tuning/Bayesian/X.m` -> `src/geckomat/kcat_sensitivity_analysis/Bayesian/X.m`.
Adds a callout right under the tagline, before Disambiguation -- that site carries the full protocol, install, troubleshooting, and API reference for both toolboxes, well beyond what this README covers, so it belongs as the first thing a reader sees rather than buried in Relationship to MATLAB GECKO near the bottom.
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.
Release prep included here: version bump, CHANGELOG conversion, and the README changes to match.
Highlights since 0.3.0:
kcat_tuning.evotune), replacing the earlier ABC-SMC approachflexibilize_enz_concs,make_ec_model,get_reactions_from_enzyme,read_dlkcat_output,parse_okp_output,set_kcat_for_reactions: parity fixes against MATLAB GECKOraven-toolboxdependency switched from a git pin to the PyPI>=3.0.0b1releaserelease.yml: PyPI publish job enabled (trusted publishing)After merge: publish a GitHub release tagged
v4.0.0b1to triggerrelease.yml. Note the PyPI publish step still needs two one-time setup steps first (trusted publishing registered on thegeckopyPyPI project, and apypiGitHub environment here) -- without those thepypi-publishjob will fail even thoughbuildsucceeds.