From 694b5e34d97bac579805b01259439231b425e5f7 Mon Sep 17 00:00:00 2001 From: Eduard Kerkhoven Date: Fri, 6 Nov 2026 23:28:33 +0100 Subject: [PATCH] Replace figurative verbs and idioms in help text, comments and the README --- databases/README.md | 2 +- src/change_model/applyKcatConstraints.m | 2 +- src/change_model/getSubsetEcModel.m | 2 +- src/download_databases/fetchBrendaAsset.m | 2 +- src/download_databases/loadBRENDAdata.m | 2 +- src/flux_analysis/getPfbaEnzymes.m | 4 ++-- src/gather_kcats/collectKcats.m | 2 +- src/gather_kcats/convertCustomKcats.m | 2 +- src/gather_kcats/getStandardKcat.m | 2 +- src/gather_kcats/mergeDLKcatAndFuzzyKcats.m | 2 +- src/gather_kcats/mergeKcats.m | 8 +++---- .../readOpenKineticsPredictorOutput.m | 2 +- .../submitOpenKineticsPredictor.m | 4 ++-- src/get_enzyme_data/findECInDB.m | 2 +- src/kcat_tuning/evotune/bestParsimonious.m | 2 +- src/kcat_tuning/evotune/cmaesKcatTuning.m | 8 +++---- src/kcat_tuning/evotune/evotuneScore.m | 4 ++-- src/kcat_tuning/evotune/parsimonyFrontier.m | 2 +- src/kcat_tuning/evotune/screenKcatLeverage.m | 2 +- .../evotune/tunePriorPenaltyWeight.m | 4 ++-- src/kcat_tuning/sigmaFitter.m | 2 +- src/limit_proteins/calculateFfactor.m | 2 +- src/limit_proteins/flexibilizeEnzConcs.m | 2 +- src/limit_proteins/relaxProteomicsGreedy.m | 2 +- src/model_adapter/convertAdapterToToml.m | 2 +- src/utilities/upgradeGECKOproject.m | 2 +- test/unit_tests/geckoCoreFunctionTests.m | 24 +++++++++---------- test/unit_tests/isozymeTests.m | 2 +- test/unit_tests/kcatAssignmentTests.m | 4 ++-- test/unit_tests/kcatContractTests.m | 2 +- test/unit_tests/levelComplexTests.m | 2 +- test/unit_tests/parityDecisionTests.m | 4 ++-- 32 files changed, 55 insertions(+), 55 deletions(-) diff --git a/databases/README.md b/databases/README.md index 9169ef75..45cf23bb 100644 --- a/databases/README.md +++ b/databases/README.md @@ -10,7 +10,7 @@ ### BRENDA -GECKO does not ship BRENDA data. `fetchBrendaAsset` downloads the files of the [toolbox-assets](https://github.com/CompMetEng/toolbox-assets) release `brenda-2026.1-1` ([BRENDA](https://www.brenda-enzymes.org) 2026.1, CC BY 4.0) on first use into `databases/brenda-2026.1-1`, checked against the manifest checksums. geckopy uses the same release. A project can use its own BRENDA files instead, in `data/brenda`, written by the `geckopy brenda-refresh` CLI of [geckopy](https://github.com/CompMetEng/geckopy). +GECKO does not include BRENDA data. `fetchBrendaAsset` downloads the files of the [toolbox-assets](https://github.com/CompMetEng/toolbox-assets) release `brenda-2026.1-1` ([BRENDA](https://www.brenda-enzymes.org) 2026.1, CC BY 4.0) on first use into `databases/brenda-2026.1-1`, checked against the manifest checksums. geckopy uses the same release. A project can use its own BRENDA files instead, in `data/brenda`, written by the `geckopy brenda-refresh` CLI of [geckopy](https://github.com/CompMetEng/geckopy). - `kcat.tsv`: kcat values per organism, reaction and substrate. Both a per-triple maximum (`kcat_max`) and median (`kcat_median`) are recorded. Which one is used is set by `params.kcatAggregation` on the model adapter, or per call with `fuzzyKcatMatching(model,'kcatAggregation','median')`; the default is `max`. - `sa.tsv`: specific activities per organism, reaction and substrate, with a maximum (`sa_max`) and median (`sa_median`); `loadBRENDAdata` uses `sa_max`. diff --git a/src/change_model/applyKcatConstraints.m b/src/change_model/applyKcatConstraints.m index 1edabd5e..5fcd54c7 100644 --- a/src/change_model/applyKcatConstraints.m +++ b/src/change_model/applyKcatConstraints.m @@ -163,7 +163,7 @@ % isozyme row without any enzyme has MWkcat zero. Drop those % isozymes *before* selecting the cheapest one: including them in % the min() below would let an isozyme with no kcat or no enzyme - % always win over a real kcat on another isozyme of the same reaction. + % always be selected over a real kcat on another isozyme of the same reaction. % A row with a kcat that is not positive or an enzyme mass that is not % positive has no usable cost either. hasEnzyme = full(sum(model.ec.rxnEnzMat(ecIdx,:) ~= 0,2)) > 0; diff --git a/src/change_model/getSubsetEcModel.m b/src/change_model/getSubsetEcModel.m index ae09990c..b336db9f 100644 --- a/src/change_model/getSubsetEcModel.m +++ b/src/change_model/getSubsetEcModel.m @@ -72,7 +72,7 @@ smallEcModel = removeReactions(smallEcModel,~keepRxns, true, true, true); % Remove reactions from ec-structure -% The reaction identifiers of a light ecModel carry a 4 character prefix +% The reaction identifiers of a light ecModel have a 4 character prefix if smallEcModel.ec.geckoLight ecModelRxns = extractAfter(smallEcModel.ec.rxns,4); else diff --git a/src/download_databases/fetchBrendaAsset.m b/src/download_databases/fetchBrendaAsset.m index 1672a6b3..2865277d 100644 --- a/src/download_databases/fetchBrendaAsset.m +++ b/src/download_databases/fetchBrendaAsset.m @@ -1,7 +1,7 @@ function folder = fetchBrendaAsset(files) % fetchBrendaAsset Download (once) GECKO's BRENDA files and return their folder. % -% GECKO does not ship BRENDA data. The files of the toolbox-assets release +% GECKO does not include BRENDA data. The files of the toolbox-assets release % brenda-2026.1-1 (BRENDA 2026.1, CC BY 4.0) are downloaded on first use % with RAVEN's fetchToolboxAsset, which checks them against the checksums % of the toolbox-assets manifest, and are unpacked into diff --git a/src/download_databases/loadBRENDAdata.m b/src/download_databases/loadBRENDAdata.m index 07a96db4..266f5220 100644 --- a/src/download_databases/loadBRENDAdata.m +++ b/src/download_databases/loadBRENDAdata.m @@ -7,7 +7,7 @@ % and specific activities (the latter converted to kcat values using the % molecular weights). % -% kcat.tsv and sa.tsv each carry both a max and a median aggregate per +% kcat.tsv and sa.tsv each have both a max and a median aggregate per % (EC, substrate, organism) triple; kcatAggregation selects which of the % two is read. Each file starts with a `#`-prefixed release-version line % followed by a tab-delimited column header, both skipped on read. diff --git a/src/flux_analysis/getPfbaEnzymes.m b/src/flux_analysis/getPfbaEnzymes.m index d14bc34e..de3cea1b 100644 --- a/src/flux_analysis/getPfbaEnzymes.m +++ b/src/flux_analysis/getPfbaEnzymes.m @@ -5,7 +5,7 @@ % value of the current objective, finds the one that minimises total % enzyme usage: the smallest sum of usage_prot_* fluxes. This is the % enzyme-aware analogue of classical pFBA, which minimises total flux -% instead --- for ecModels this usually picks the most parsimonious +% instead --- for ecModels this usually selects the most parsimonious % *proteome*, not just the most parsimonious fluxes. % % Parameters @@ -21,7 +21,7 @@ % (default: use model.c as given). % fractionOfOptimum : double % fraction of the optimal objective value to fix before minimising -% enzyme usage (default 1.0). A value below 1.0 lets the objective fall +% enzyme usage (default 1.0). A value below 1.0 allows the objective to fall % by (1 - fractionOfOptimum) times the magnitude of its optimum, so it % also applies to a negative optimum (for example the exchange flux of % a nutrient that is maximised). diff --git a/src/gather_kcats/collectKcats.m b/src/gather_kcats/collectKcats.m index 2bf88084..1966d194 100644 --- a/src/gather_kcats/collectKcats.m +++ b/src/gather_kcats/collectKcats.m @@ -24,7 +24,7 @@ % [kcat_sources.okp] % methods = ["CataPro", "UniKP"] # the okp source group % -% A stage decides the reactions that are still open: +% A stage sets the kcat of the reactions that are still open: % - select: the first listed source with a value (see mergeKcats). Sources % are the names of source files (custom, ec_tree, dlkcat, okp_catapro, % ...) and the BRENDA quality tiers database_exact, database_top and diff --git a/src/gather_kcats/convertCustomKcats.m b/src/gather_kcats/convertCustomKcats.m index c1d5aaf8..0d47cac9 100644 --- a/src/gather_kcats/convertCustomKcats.m +++ b/src/gather_kcats/convertCustomKcats.m @@ -4,7 +4,7 @@ % Writes the custom kcats of a GECKO 3 project as the curated kcat source % file data/kcats/custom.tsv, which collectKcats reads first. The kcats are % those applyCustomKcats gives the ecModel, including which of two entries -% for the same reaction wins: one row per reaction, keyed by conventional +% for the same reaction is kept: one row per reaction, keyed by conventional % reaction and enzyme set (see getEcRxnKeys), with the entry's notes in the % note column. The stoicho column is left out: complex stoichiometry comes % from applyComplexData. Unlike applyCustomKcats, custom.tsv also applies to diff --git a/src/gather_kcats/getStandardKcat.m b/src/gather_kcats/getStandardKcat.m index d1d9c867..962746c9 100644 --- a/src/gather_kcats/getStandardKcat.m +++ b/src/gather_kcats/getStandardKcat.m @@ -145,7 +145,7 @@ enzSubSystem_names = enzSubSystems(firstOccurrence); % Calculate the median kcat per subSystem, counting only reactions % with a real (nonzero, non-NaN) kcat toward both the median itself - % and the threshold that decides whether a subSystem-specific value + % and the threshold that determines whether a subSystem-specific value % is used at all. numSubSystem = numel(enzSubSystem_names); kcatsPerSubSystem = zeros(numSubSystem,1); diff --git a/src/gather_kcats/mergeDLKcatAndFuzzyKcats.m b/src/gather_kcats/mergeDLKcatAndFuzzyKcats.m index 364efeac..a3470b50 100644 --- a/src/gather_kcats/mergeDLKcatAndFuzzyKcats.m +++ b/src/gather_kcats/mergeDLKcatAndFuzzyKcats.m @@ -3,7 +3,7 @@ % % Deprecated thin wrapper around mergeKcats, kept for the common DLKcat + % fuzzy-BRENDA case. New code should call mergeKcats directly, which also -% handles a single list that mixes several sources (e.g. an +% accepts a single list that mixes several sources (e.g. an % OpenKineticsPredictor result with BRENDA/Sabio-RK/CataPro rows). % % Merges the results from DLKcat and fuzzy matching to the BRENDA database. diff --git a/src/gather_kcats/mergeKcats.m b/src/gather_kcats/mergeKcats.m index 4930b305..cbb5a2fa 100644 --- a/src/gather_kcats/mergeKcats.m +++ b/src/gather_kcats/mergeKcats.m @@ -5,9 +5,9 @@ % Generalizes mergeDLKcatAndFuzzyKcats: instead of two fixed inputs (DLKcat % + fuzzy BRENDA) it accepts a cell array of kcatLists, each of which may % itself mix several sources (for example the output of -% fetchOpenKineticsPredictor, carrying BRENDA, Sabio-RK and CataPro values -% in its kcatSource field). A caller-supplied sourcePriority decides which -% source wins for each reaction. +% fetchOpenKineticsPredictor, holding BRENDA, Sabio-RK and CataPro values +% in its kcatSource field). A caller-supplied sourcePriority determines which +% source is kept for each reaction. % % Parameters % ---------- @@ -120,7 +120,7 @@ dbSources = cellfun(@normalizeSource, databaseSources, 'UniformOutput', false); -% Rank map: normalised priority token -> rank (1 = best). First wins. +% Rank map: normalised priority token -> rank (1 = best). The first is kept. rankMap = containers.Map('KeyType','char','ValueType','double'); for r = 1:numel(sourcePriority) key = normalizeSource(sourcePriority{r}); diff --git a/src/gather_kcats/readOpenKineticsPredictorOutput.m b/src/gather_kcats/readOpenKineticsPredictorOutput.m index 2574e20a..6cce326e 100644 --- a/src/gather_kcats/readOpenKineticsPredictorOutput.m +++ b/src/gather_kcats/readOpenKineticsPredictorOutput.m @@ -87,7 +87,7 @@ outFile = fullfile(fPath, fName); end -%% Read OKP output file using readcell to correctly handle quoted fields +%% Read OKP output file using readcell to correctly read quoted fields % that may contain commas in the 'Extra Info kcat' column. if ~exist(outFile,'file') error('Cannot find file: %s', outFile) diff --git a/src/gather_kcats/submitOpenKineticsPredictor.m b/src/gather_kcats/submitOpenKineticsPredictor.m index c35fbf59..4fabf2ee 100644 --- a/src/gather_kcats/submitOpenKineticsPredictor.m +++ b/src/gather_kcats/submitOpenKineticsPredictor.m @@ -5,7 +5,7 @@ % SMILES, via writeOpenKineticsPredictorInput) and submits a kcat prediction % job to the OKP REST API (https://predictor.openkinetics.org/). The returned % job id is also stored in data/OKP_job.txt, so fetchOpenKineticsPredictor can -% pick it up later. +% read it later. % % Predictors available via OKP: CataPro, CatPred, CatRange, DLKcat, EITLEM, % KinForm-H, KinForm-L, OmniESI, OmniESI-O2DENet, TurNup, UniKP (see GET @@ -19,7 +19,7 @@ % 2. In the "API key generator" section, click "Generate". % 3. Copy the key shown (it is displayed only once). If you lose it, % revoke it on the same page and generate a new one. -% Keys are tied to your IP and carry a daily prediction quota that resets +% Keys are tied to your IP and have a daily prediction quota that resets % at midnight UTC. % % The key is a secret; do NOT put it in the model adapter (which is diff --git a/src/get_enzyme_data/findECInDB.m b/src/get_enzyme_data/findECInDB.m index 50abdd05..dc6efbec 100644 --- a/src/get_enzyme_data/findECInDB.m +++ b/src/get_enzyme_data/findECInDB.m @@ -192,7 +192,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function tf = subsumes(general,specific) %True if the code general is equal to or a wildcard parent of the code -%specific; both carry the "EC" prefix and need four levels. +%specific; both have the "EC" prefix and need four levels. general = strsplit(extractAfter(general,2),'.'); specific = strsplit(extractAfter(specific,2),'.'); tf = false; diff --git a/src/kcat_tuning/evotune/bestParsimonious.m b/src/kcat_tuning/evotune/bestParsimonious.m index 8b67244a..8298a655 100644 --- a/src/kcat_tuning/evotune/bestParsimonious.m +++ b/src/kcat_tuning/evotune/bestParsimonious.m @@ -5,7 +5,7 @@ % Defaults to 2%, which is the scale of alternate-optimum noise typically % seen from re-solving an LP with a slightly different kcat vector -- % below that, two vectors are not meaningfully different in fit, so the -% sparser one wins. +% sparser one is kept. % % Parameters % ---------- diff --git a/src/kcat_tuning/evotune/cmaesKcatTuning.m b/src/kcat_tuning/evotune/cmaesKcatTuning.m index 130ddc47..ee67e7e0 100644 --- a/src/kcat_tuning/evotune/cmaesKcatTuning.m +++ b/src/kcat_tuning/evotune/cmaesKcatTuning.m @@ -7,7 +7,7 @@ % maxGenerations/rmseThreshold are its stopping conditions. % % Vendors a separable (diagonal-covariance) CMA-ES -- MATLAB has no -% built-in implementation and Global Optimization Toolbox doesn't ship +% built-in implementation and Global Optimization Toolbox does not include % one either. Separable rather than full-covariance because that is what % geckopy's own port actually runs (cma's CMA_diagonal=True) and what its % defaults were validated against; it is also lower risk to implement @@ -45,7 +45,7 @@ % Returns % ------- % ecModel : struct -% mutated: tunable rows carry the best kcat vector CMA-ES found, with +% mutated: tunable rows hold the best kcat vector CMA-ES found, with % kcat constraints already applied. MATLAB structs are copied on % assignment, so -- unlike geckopy's in-place mutation -- this output % must be captured by the caller. @@ -129,8 +129,8 @@ expand = @(Xlog) exp(Xlog(assign,:)); -% Baseline: score the untouched prior, and pick up the excarbon-augmented -% model to carry through the rest of the run (see evotuneScore's 4th +% Baseline: score the untouched prior, and keep the excarbon-augmented +% model to use in the rest of the run (see evotuneScore's 4th % output -- avoids rescanning metabolite formulas on every candidate). [obj0,rmse0,~,baseModel] = scoreCandidate(ecModel,tunableIdx,ecRxnIdsTunable,evoData,modelAdapter,params,kcat0,kcat0,sigma0log); bestObj = obj0; bestRmse = rmse0; bestVec = kcat0; diff --git a/src/kcat_tuning/evotune/evotuneScore.m b/src/kcat_tuning/evotune/evotuneScore.m index 189c4ac9..58049658 100644 --- a/src/kcat_tuning/evotune/evotuneScore.m +++ b/src/kcat_tuning/evotune/evotuneScore.m @@ -46,7 +46,7 @@ % the input ecModel, with ec.excarbon cached on it if it wasn't % already present. MATLAB structs are copied on assignment, not % shared by reference like a Python object, so callers scoring many -% candidates in a loop should carry this output back in as the base +% candidates in a loop should pass this output back in as the base % copy for the next candidate, rather than recomputing excarbon (an % expensive metabolite-formula scan) on every single call. % @@ -146,7 +146,7 @@ sol = solveLP(model_tmp); if checkSolution(sol) bioRxn = getIndexes(model_tmp,data.biomass,'rxns'); - % Biomass carries an assumed 41 Cmmol/gDCW, matching fillCarbonNum. + % Biomass has an assumed 41 Cmmol/gDCW, matching fillCarbonNum. bioMeas = data.grRate(i) * 41; bioSim = sol.x(bioRxn) * 41; diff --git a/src/kcat_tuning/evotune/parsimonyFrontier.m b/src/kcat_tuning/evotune/parsimonyFrontier.m index 07ef941b..d014f975 100644 --- a/src/kcat_tuning/evotune/parsimonyFrontier.m +++ b/src/kcat_tuning/evotune/parsimonyFrontier.m @@ -8,7 +8,7 @@ % units of each kcat's own prior sigma) and reports how RMSE trades off % against how many kcats stayed at their tuned value, so a sparser % result within noise of the best fit can be preferred over the raw -% tuner output. See bestParsimonious to pick a point off this frontier. +% tuner output. See bestParsimonious to select a point on this frontier. % % Parameters % ---------- diff --git a/src/kcat_tuning/evotune/screenKcatLeverage.m b/src/kcat_tuning/evotune/screenKcatLeverage.m index db1862f2..96710f31 100644 --- a/src/kcat_tuning/evotune/screenKcatLeverage.m +++ b/src/kcat_tuning/evotune/screenKcatLeverage.m @@ -92,7 +92,7 @@ rmses = zeros(nVec,1); if nProc == 1 - % Serial path: carry the excarbon-augmented model from one call into + % Serial path: pass the excarbon-augmented model from one call to % the next, so the metabolite-formula scan behind it (evotuneScore's % 4th output) runs once for the whole screen rather than once per % probe vector. diff --git a/src/kcat_tuning/evotune/tunePriorPenaltyWeight.m b/src/kcat_tuning/evotune/tunePriorPenaltyWeight.m index f2e2ca80..ad4c2c9c 100644 --- a/src/kcat_tuning/evotune/tunePriorPenaltyWeight.m +++ b/src/kcat_tuning/evotune/tunePriorPenaltyWeight.m @@ -1,7 +1,7 @@ function sweepTable = tunePriorPenaltyWeight(ecModel,varargin) % tunePriorPenaltyWeight Sweep priorPenaltyWeight and report the -% fit/reproducibility trade-off, so the value doesn't have to be picked -% blind. +% fit/reproducibility trade-off, so the value can be selected from the reported +% results. % % priorPenaltyWeight charges for moving a kcat away from its prior, and % mainly exists to keep large corrections reproducible across seeds diff --git a/src/kcat_tuning/sigmaFitter.m b/src/kcat_tuning/sigmaFitter.m index 9ffbfe0c..8b517722 100644 --- a/src/kcat_tuning/sigmaFitter.m +++ b/src/kcat_tuning/sigmaFitter.m @@ -1,7 +1,7 @@ function [model, sigma] = sigmaFitter(model, varargin) % sigmaFitter Fit the average enzyme saturation factor of an ecModel. % -% Scans candidate sigma-factors from 0.01 to 1 in steps of 0.01 and picks the +% Scans candidate sigma-factors from 0.01 to 1 in steps of 0.01 and selects the % one whose simulated growth rate best matches the provided experimental % growth rate, then applies it to the model's protein pool constraint. % diff --git a/src/limit_proteins/calculateFfactor.m b/src/limit_proteins/calculateFfactor.m index 7cac14fc..7523291f 100644 --- a/src/limit_proteins/calculateFfactor.m +++ b/src/limit_proteins/calculateFfactor.m @@ -70,7 +70,7 @@ if ischar(protData) && endsWith(protData,'paxDB.tsv') % Gather Uniprot database for finding MW. Only needed here, to map paxDB.tsv's gene % identifiers onto UniProt IDs and molecular weights --- a protData struct supplied by - % the caller already carries UniProt IDs and needs no lookup, so this stays inside the + % the caller already has UniProt IDs and needs no lookup, so this stays inside the % branch that actually uses it rather than running (and potentially downloading or % reading UniProt data) on every call. uniprotDB = loadDatabases('uniprot', modelAdapter); diff --git a/src/limit_proteins/flexibilizeEnzConcs.m b/src/limit_proteins/flexibilizeEnzConcs.m index f37a5724..b17bea6a 100644 --- a/src/limit_proteins/flexibilizeEnzConcs.m +++ b/src/limit_proteins/flexibilizeEnzConcs.m @@ -44,7 +44,7 @@ % enzyme (default false). Enzymes and complexes are then ranked by the % growth gained per foldChange of raising all their usage upper bounds % together (a levelled complex binds on all subunits at once, so no -% single subunit shows a gain), every measured subunit of the picked +% single subunit shows a gain), every measured subunit of the selected % complex is raised by the same factor, iterations are counted per % complex, and one factor per complex is kept in the final pass, so that % concentrations levelled by levelComplexConcs stay levelled. An upper diff --git a/src/limit_proteins/relaxProteomicsGreedy.m b/src/limit_proteins/relaxProteomicsGreedy.m index 3d9ad4c9..80f24d28 100644 --- a/src/limit_proteins/relaxProteomicsGreedy.m +++ b/src/limit_proteins/relaxProteomicsGreedy.m @@ -51,7 +51,7 @@ % Different relaxation strategy from flexibilizeEnzConcs: this one is % shadow-price-ordered (one solve per step) and often converges in fewer % iterations when one or two enzymes dominate the infeasibility. The -% trade-off is that it fully unconstrains each picked enzyme with no +% trade-off is that it fully unconstrains each selected enzyme with no % tighten-back pass, so the result is looser (less proteomics-faithful). % % There are two distinct non-convergence outcomes: running out of diff --git a/src/model_adapter/convertAdapterToToml.m b/src/model_adapter/convertAdapterToToml.m index fe24c636..5ac9c4fd 100644 --- a/src/model_adapter/convertAdapterToToml.m +++ b/src/model_adapter/convertAdapterToToml.m @@ -9,7 +9,7 @@ % [matlab.params], so that loadAdapterParams gives back the same params. % % Methods that the adapter class overrides cannot be written to TOML. -% They are listed in the report, with how to carry them over: +% They are listed in the report, with how to convert them: % - getSpontaneousReactions: set [spontaneous] name_contains or file; % - makeModelAnaerobic, changeProteinBiomass: set [matlab] % make_model_anaerobic or change_protein_biomass to a function name; diff --git a/src/utilities/upgradeGECKOproject.m b/src/utilities/upgradeGECKOproject.m index 56a22661..c971c55f 100644 --- a/src/utilities/upgradeGECKOproject.m +++ b/src/utilities/upgradeGECKOproject.m @@ -1,7 +1,7 @@ function report = upgradeGECKOproject(projectPath, varargin) % upgradeGECKOproject Bring a GECKO 3 project to the GECKO 4 layout. % -% Lists, and with 'dryRun', false carries out, the steps that bring a +% Lists, and with 'dryRun', false performs, the steps that bring a % project made with GECKO 3 (or an earlier GECKO 4) to the current layout: % % 1. adapter: an adapter class without model_adapter.toml gets one diff --git a/test/unit_tests/geckoCoreFunctionTests.m b/test/unit_tests/geckoCoreFunctionTests.m index 4a158f03..4fcfbbb0 100644 --- a/test/unit_tests/geckoCoreFunctionTests.m +++ b/test/unit_tests/geckoCoreFunctionTests.m @@ -636,7 +636,7 @@ function testCalculateFfactor_tc0014(testCase) model = getGeckoTestModel(); ecModel = makeEcModel(model, false, adapter); - % ecTestGEM ships no data/paxDB.tsv, so with no protData supplied + % ecTestGEM includes no data/paxDB.tsv, so with no protData supplied % calculateFfactor must fall back to its documented default of 0.5. [~, f] = evalc("calculateFfactor(ecModel, [], [], adapter)"); verifyEqual(testCase,f,0.5) @@ -752,7 +752,7 @@ function testAddNewRxnsToEC_tc0018(testCase) verifyEqual(testCase, sort(rxnsAdded), sort(expRxnsAdded)) verifyEqual(testCase, sort(enzAdded), sort(newEnzymes.enzymes)) - % Each split reaction must carry exactly the one gene it was split from --- not the + % Each split reaction must have exactly the one gene it was split from --- not the % unsplit "X or Y" string the bug left on the second (and later) reaction, nor a % double-suffixed id from re-splitting an already-split entry. [~, idxA1] = ismember('RNEWA_EXP_1', ecModel.rxns); @@ -904,7 +904,7 @@ function testFuzzyKcatMatchingTieBreakRespectsWildcardCount_tc0022(testCase) % Verifies fuzzyKcatMatching's cross-EC-token tie-break: when a % reaction's multiple EC tokens match BRENDA at the same origin (organism % tier) but different wildcard levels, the token matched with fewer - % wildcards must win, even if a more-wildcarded token happens to carry a + % wildcards must be selected, even if a more-wildcarded token happens to have a % larger kcat. The fixture gives one reaction two EC tokens that both % resolve at the same origin -- one an exact (0-wildcard) match with a % small kcat, the other a 2-wildcard match with a larger kcat -- and @@ -1580,10 +1580,10 @@ function testGetECfromGEMRejectsMalformedComponents_tc0031(testCase) function testFindECInDBIntersectionDedupesWildcardPair_tc0032(testCase) % Verifies that reconciling EC annotations across an AND-complex's genes % via findECInDB de-duplicates a code that matches via both itself and - % its own wildcard parent. Gene 1's protein carries two EC tokens, + % its own wildcard parent. Gene 1's protein has two EC tokens, % '1.1.1.1' and its own wildcard parent '1.1.1.-' (space-separated, the % format getECstring expects for one protein's multiple activities); - % gene 2's protein carries just '1.1.1.1'. The intersection across both + % gene 2's protein has the single token '1.1.1.1'. The intersection across both % genes must return '1.1.1.1' once, not twice. geneHashMap = containers.Map({'G1','G2'}, {1,2}); geneIndex = {1; 2}; @@ -1650,7 +1650,7 @@ function testGetStandardKcatUsesSubsystemKcatWheneverAnyMatches_tc0034(testCase) % the model has more than one distinct subsystem. R1 has no GPR and % shares subSystem 'SubA' with R3 (kcat 50); R5 sits in a different % subSystem 'SubB' (kcat 999, deliberately large so it would skew the - % model-wide fallback if picked by mistake). R1 must be assigned SubA's + % model-wide fallback if selected by mistake). R1 must be assigned SubA's % kcat (50), not the model-wide standardKcat fallback. geckoPath = findGECKOroot; adapter = ModelAdapterManager.getAdapter(fullfile(geckoPath,'test','unit_tests','ecTestGEM', 'TestGEMAdapter.m')); @@ -1882,7 +1882,7 @@ function testMergeKcatsGeneralizesToNSourcesWithExactTier_tc0041(testCase) % R1: fuzzy gives 'database_top' (wc=0, origin=1); OKP's BRENDA row has % no wildcard/origin metadata at all, so it is an exact hit -- - % 'database_exact' outranks 'database_top', so OKP's 99 wins, not + % 'database_exact' outranks 'database_top', so OKP's 99 is kept, not % fuzzy's 5 or DLKcat's 50 (DLKcat is never even reached for R1). r1 = strcmp(mergedKcatList.rxns, 'R1'); verifyEqual(testCase, sum(r1), 1) @@ -1926,7 +1926,7 @@ function testMergeDLKcatAndFuzzyKcatsDelegatesToMergeKcats_tc0042(testCase) mergedKcatList = mergeDLKcatAndFuzzyKcats(dlkcatList, fuzzyList); - % R1: BRENDA top-tier match (5) wins over DLKcat (50). + % R1: BRENDA top-tier match (5) is selected over DLKcat (50). r1 = strcmp(mergedKcatList.rxns, 'R1'); verifyEqual(testCase, mergedKcatList.kcats(r1), 5) % R2: no BRENDA row -- DLKcat (80) is the only candidate. @@ -1988,7 +1988,7 @@ function testLoadBRENDAdataParsesNewTsvFormat_tc0043(testCase) function testMakeEcModelFallsBackToKeggForUnmatchedGenes_tc0044(testCase) % Verifies that makeEcModel falls back to databases.kegg for a gene with % no UniProt match: ec.mw and ec.sequence are filled from the KEGG row, - % and ec.enzymes gets the UniProt accession carried on that row, or -- + % and ec.enzymes gets the UniProt accession held on that row, or -- % when that column is itself empty, as tested here -- the bare KEGG gene % id as a fallback identifier. Such a gene must not appear in the % noUniprot output. @@ -2002,7 +2002,7 @@ function testMakeEcModelFallsBackToKeggForUnmatchedGenes_tc0044(testCase) % G5 is deliberately absent from uniprot.tsv (only G1-G4 are UniProt-matched) % but present in kegg.tsv with an empty UniProt-accession column (col 1), % forcing the bare-KEGG-gene-id fallback rather than the more common - % KEGG-row-carries-a-UniProt-accession case. + % KEGG-row-has-a-UniProt-accession case. fid = fopen(fullfile(scratchDir,'data','uniprot.tsv'), 'w'); fprintf(fid, 'Entry\tGene Names (ordered locus)\tEC number\tMass\tSequence\n'); fprintf(fid, 'P1\tG1\t1.1.1.1\t10000\tMRAL\n'); @@ -2304,8 +2304,8 @@ function testApplyCustomKcatsModeAWritesSourceAndNotes_tc0054(testCase) ecModel = makeEcModel(model, false, adapter); ecModel = getECfromGEM(ecModel); - % R3 already carries a real, non-custom kcat, as it would after - % selectKcatValue picked a BRENDA-derived value earlier in the + % R3 already has a real, non-custom kcat, as it would after + % selectKcatValue selected a BRENDA-derived value earlier in the % pipeline. r3 = strcmp(ecModel.ec.rxns, 'R3'); ecModel.ec.kcat(r3) = 46.5; diff --git a/test/unit_tests/isozymeTests.m b/test/unit_tests/isozymeTests.m index afe52e2b..9c4c262e 100644 --- a/test/unit_tests/isozymeTests.m +++ b/test/unit_tests/isozymeTests.m @@ -169,7 +169,7 @@ function testLevelComplexConcsSkipsComplexWithOnlyZeroSubunits_tc0316(testCase) function testFlexibilizePerComplexKeepsMeasuredZeroOutOfTheReport_tc0317(testCase) % X1 has a concentration of 0 but an open usage bound, X2 limits the - % complex. X2 is raised and carries the count; X1 is not reported. + % complex. X2 is raised and holds the count; X1 is not reported. adapter = getAdapter(); model = complexZeroToy([0 1], [1000 1]); warning('off', 'flexibilizeEnzConcs:measuredZero') diff --git a/test/unit_tests/kcatAssignmentTests.m b/test/unit_tests/kcatAssignmentTests.m index 97cdae66..66093455 100644 --- a/test/unit_tests/kcatAssignmentTests.m +++ b/test/unit_tests/kcatAssignmentTests.m @@ -35,8 +35,8 @@ function testAssignKcatsReproducesChain_tc0079(testCase) end function testCollectKcatsLeavesModel_tc0080(testCase) - % collectKcats decides without changing the model; a missing source is - % reported; custom.tsv decides first. + % collectKcats selects kcats without changing the model; a missing source is + % reported; custom.tsv is used first. [base, adapter, project] = buildProject(); adapter.params.kcat_assignment = struct('preset', 'gecko_median'); kcatsFromBrenda(base, 'modelAdapter', adapter); diff --git a/test/unit_tests/kcatContractTests.m b/test/unit_tests/kcatContractTests.m index 1539fe32..9b3b874f 100644 --- a/test/unit_tests/kcatContractTests.m +++ b/test/unit_tests/kcatContractTests.m @@ -28,7 +28,7 @@ function testCollectKcatsCountsEachSourceFileOnce_tc0300(testCase) function testMergeKcatsMatchesOkpTaggedSources_tc0301(testCase) % The OKP- tag is dropped for matching: OKP-BRENDA is an exact database % hit and OKP-CataPro matches the priority entry catapro; the rows keep - % their labels and win over DLKcat. + % their labels and are kept over DLKcat. list = struct('source', 'x', 'rxns', {{'A'; 'A'; 'B'; 'B'}}, 'kcats', [3; 9; 4; 9], ... 'kcatSource', {{'OKP-BRENDA'; 'DLKcat'; 'OKP-CataPro'; 'DLKcat'}}); merged = mergeKcats({list}, {'database_exact', 'catapro', 'dlkcat'}); diff --git a/test/unit_tests/levelComplexTests.m b/test/unit_tests/levelComplexTests.m index 63905d41..6df831f5 100644 --- a/test/unit_tests/levelComplexTests.m +++ b/test/unit_tests/levelComplexTests.m @@ -199,7 +199,7 @@ function testFlexibilizePerComplexDoesNotPickComplexForPoolPrice_tc0276(testCase end function model = ecOnly(concs, rows) - % A model that carries nothing but the ec data: rows is {rxn, struct(enzyme, copies)} + % A model that has no data except the ec data: rows is {rxn, struct(enzyme, copies)} enzymes = {'A';'B';'C';'D';'F';'S';'E';'G';'H'}; mw = [100; 200; 50; 100; 100; 100; 100; 100; 100]; mat = zeros(size(rows, 1), numel(enzymes)); diff --git a/test/unit_tests/parityDecisionTests.m b/test/unit_tests/parityDecisionTests.m index 081c4cca..b56ad988 100644 --- a/test/unit_tests/parityDecisionTests.m +++ b/test/unit_tests/parityDecisionTests.m @@ -27,7 +27,7 @@ function testMergeDLKcatAndFuzzyKcatsDefaultTopOriginLimitIs4_tc0241(testCase) end function testFindECInDBSingleGeneDropsWildcardParent_tc0242(testCase) - % One gene whose protein carries '1.1.1.4 1.1.1.- 1.1.1.303' keeps the + % One gene whose protein has '1.1.1.4 1.1.1.- 1.1.1.303' keeps the % two specific codes and loses the wildcard of the same prefix. geneHashMap = containers.Map({'G1'}, {1}); geneIndex = {1}; @@ -61,7 +61,7 @@ function testFindECInDBComplexDropsWildcardParent_tc0244(testCase) geneIndex = {1; 2; 3}; EC = findECInDB({'G1','G2'}, {'1.1.1.4 1.1.1.-'; '1.1.1.4 1.1.1.-'; ''}, DBMW, geneIndex, geneHashMap); verifyEqual(testCase, EC, '1.1.1.4') - % A wildcard that only the union carries is dropped too + % A wildcard that only the union contains is dropped too EC = findECInDB({'G1','G2','G3'}, {'1.1.1.4'; '1.1.1.- 2.2.2.2'; '5.5.5.5'}, DBMW, geneIndex, geneHashMap); verifyEqual(testCase, EC, '1.1.1.4;2.2.2.2;5.5.5.5') % A wildcard shared by every gene stays, as nothing more specific exists