Conversation
Multi-threaded Gurobi can non-deterministically report the ftINIT MILP as infeasible, causing reconstruction to fail for some cell types (e.g. vascularSmoothMuscleCells, pericyte) with Human-GEM v2.0.0 while succeeding with v1.19.0. The existing single-thread safeguard in optimizeProb only applies inside parallel workers (getCurrentTask), not in serial runs. Default Threads=1 for the ftINIT MILP (overridable via the step MILPParams) in both the main reconstruction loop (ftINIT.m) and the gap-filling MILP (ftINITFillGapsMILP.m). Resolves #607
exportModel failed with 'Dimensions of arrays being concatenated are not consistent' when reactions had differing numbers of subsystems (a valid nested cell-of-cells subSystems field, e.g. produced by importModel when some reactions belong to multiple SBML groups). The flattening step used vertcat on row cell entries of unequal length (1x1 vs 1xN), which errors. Each subSystems entry is now reshaped to a column cell array before flattening, so reactions with any number of subsystems concatenate correctly. Added a regression test (testSBMLExportNestedSubSystems) that exports and re-imports a model with mixed-length nested subSystems.
* fix: gene field alignment in removeLowScoreGenes removeLowScoreGenes regenerated model.genes from getGenesFromGrRules, which returns a sorted list, but trimmed the gene-associated fields (geneShortNames, proteins, geneMiriams, geneFrom, geneComps) using a mask in the original gene order. When model.genes was not already sorted, this left every annotation field shifted relative to model.genes, corrupting the gene ID to gene symbol mapping in ftINIT-reconstructed models (removeGenes=true). Retain the remaining genes in their original order and reorder the rxnGeneMat columns to match, so the trimmed annotation fields stay aligned. Fixes #669 * chore: updateDocumentation
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.
Main improvements in this PR:
ftINITshould solve MILP by default through single-threaded Gurobi (fix: default ftINIT MILP solving to single-threaded Gurobi #615)exportModelhandling of nested `subSystems (fix: exportModel handling of nested subSystems #639)removeLowScoreGenes, affectingftINIT-generated models (fix: gene field alignment in removeLowScoreGenes #670)Instructions on merging this PR:
developas target branch, and will be resolved with a squash-merge.mainas target branch, and will be resolved as descriped here.