RAVEN
RAVEN copied to clipboard
fix: various minor fixes
Main improvements in this PR:
- fix:
simplifyModelwith irreversible backwards-only reactions (solves #529)writeYAMLmodeldo not write lines with empty entries (e.g. reactions without subsystems)getModelFromKEGGincludesmodel.annotation.defaultLBandmodel.annotation.defaultUBfieldsgetGenesFromGrRulescan handle genes with '|'getModelFromHomologyremove geneFrom field (solves #533)getMinNrFluxesreduce default verbositywriteYAMLmodelallow empty id and name fields, in line with https://github.com/SysBioChalmers/RAVEN/wiki/RAVEN-Model-StructureravenCobraWrapperprefers to use grRules in COBRA models if present (solves GECKO issue #367)optimizeProbwill throw error when trying to solve MILP with glpk (also if glpk is set via cobra)writeYAMLmodelwill throw an informative error if it cannot write the file to the intended directory
- feat:
randomSamplingcan run in parallel with MATLAB Parallel Computing Toolbox installedsetParamhas an additional option, 'unc' if a reaction's lower and upper bound should be set as unconstrained. If available, this will use the default bounds inmodel.annotation(otherwise [-1000, 1000]), and considers reversibility (in which case lower bound = 0)- auxiliary
parallelPoolRAVENfunction to check if function should be running in parallel - use alternative ProgressBar, particularly in functions containing
parforcalls
Instructions on merging this PR:
- [x] This PR has
developas target branch, and will be resolved with a squash-merge. - [ ] This PR has
mainas target branch, and will be resolved with a merge commit.
This PR has been automatically tested with GH Actions. Here is the output of the tests:
> Installing from location /home/m/actions-runner/_work/RAVEN/RAVEN
> Checking RAVEN release DEVELOPMENT
> Checking MATLAB release 2020b
> Checking system architecture glnxa64
> Set RAVEN in MATLAB path Pass
> Save MATLAB path Pass
> Make binaries executable Pass
> Add Java paths for Excel format Pass
> Checking libSBML version 5.19.0
> Checking model import and export
> Import Excel format Pass
> Export Excel format Pass
> Import SBML format Pass
> Export SBML format Pass
> Checking for LP solvers
> glpk Pass
> gurobi Fail
> scip Fail
> cobra Pass
> Set RAVEN solver glpk
> Checking BLAST+ Pass
> Checking DIAMOND Pass
> Checking HMMER Pass
> Checking function uniqueness Pass
*** checkInstallation complete ***
Running blastPlusTests
.
Done blastPlusTests
Running cdhitTests
.
Done cdhitTests
Running checkTasksTests
.
Done checkTasksTests
Running diamondTests
.
Done diamondTests
Running fillGapsLargeTests
Error occurred in fillGapsLargeTests/testLargeGurobi and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using fillGapsLargeTests>testLargeGurobi (line 32)
Solver not working
.
Error occurred in fillGapsLargeTests/testLargeSCIP and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using setRavenSolver (line 35)
SCIP not found. RAVEN only provides the precompiled SCIP MEX binary for Windows. Instructions on how to compile the SCIP MEX file are found at
https://github.com/scipopt/MatlabSCIPInterface
Error in fillGapsLargeTests>testLargeSCIP (line 56)
setRavenSolver('scip');
.
Done fillGapsLargeTests
Running fillGapsSmallTests
Error occurred in fillGapsSmallTests/testSmallSCIP and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using setRavenSolver (line 35)
SCIP not found. RAVEN only provides the precompiled SCIP MEX binary for Windows. Instructions on how to compile the SCIP MEX file are found at
https://github.com/scipopt/MatlabSCIPInterface
Error in fillGapsSmallTests>testSmallSCIP (line 16)
setRavenSolver('scip');
.
Error occurred in fillGapsSmallTests/testSmallGurobi and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using fillGapsSmallTests>testSmallGurobi (line 67)
Solver not working
.
Done fillGapsSmallTests
Running hmmerTests
.
Done hmmerTests
Running importExportTests
....
Done importExportTests
Running mafftTests
.
Done mafftTests
Running miriamTests
.
Done miriamTests
Running modelAbilitiesTests
........
Done modelAbilitiesTests
Running modelConversionTests
.
Done modelConversionTests
Running modelCurationTests
.......... ........
Done modelCurationTests
Running modelSortingTests
..
Done modelSortingTests
Running solverTests
.
Error occurred in solverTests/testGurobi and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using solverTests>testGurobi (line 60)
Solver not working
.
Error occurred in solverTests/testSCIP and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using solverTests>testSCIP (line 77)
SCIP MEX binary not installed or not functional, test skipped
..
Done solverTests
Running tinitTests
.
Error occurred in tinitTests/testftINIT_T0001 and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using dispEM (line 49)
Failed to find good enough solution within the time frame. MIPGap: Inf
Error in ftINIT (line 281)
dispEM(['Failed to find good enough solution within the time frame. MIPGap: ' num2str(mipGap)]);
Error in tinitTests>testftINIT_T0001 (line 237)
[~,tst1ResModel1] = evalc('ftINIT(prepDataTest1,arrayData1.tissues{1},[],[],arrayData1,[],getINITSteps(),true,true,testParams,false);');
.
Error occurred in tinitTests/testftINIT_T0002 and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using dispEM (line 49)
Failed to find good enough solution within the time frame. MIPGap: Inf
Error in ftINIT (line 281)
dispEM(['Failed to find good enough solution within the time frame. MIPGap: ' num2str(mipGap)]);
Error in tinitTests>testftINIT_T0002 (line 277)
[~,tst1ResModel1] = evalc('ftINIT(prepDataTest1,arrayData1.tissues{1},[],[],arrayData1,[],getINITSteps(),true,true,testParams,false);');
.....
Error occurred in tinitTests/testftINIT_T0008 and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using dispEM (line 49)
Failed to find good enough solution within the time frame. MIPGap: Inf
Error in ftINIT (line 281)
dispEM(['Failed to find good enough solution within the time frame. MIPGap: ' num2str(mipGap)]);
Error in tinitTests>testftINIT_T0008 (line 377)
[~,tst1ResModel1] = evalc('ftINIT(prepDataTest1,arrayData1.tissues{1},[],[],arrayData1,[],getINITSteps(),true,true,testParams,false);');
..
Error occurred in tinitTests/testftINIT_T0050 and it did not run to completion.
---------
Error ID:
---------
''
--------------
Error Details:
--------------
Error using dispEM (line 49)
Failed to find good enough solution within the time frame. MIPGap: Inf
Error in ftINIT (line 281)
dispEM(['Failed to find good enough solution within the time frame. MIPGap: ' num2str(mipGap)]);
Error in tinitTests>testftINIT_T0050 (line 543)
[~,mres] = evalc('ftINIT(prepDataL,arrayDataL.tissues{1},[],[],arrayDataL,[],getINITSteps(),true,true,testParams,false);');
.
Done tinitTests
Failure Summary:
Name Failed Incomplete Reason(s)
===================================================================
fillGapsLargeTests/testLargeGurobi X X Errored.
-------------------------------------------------------------------
fillGapsLargeTests/testLargeSCIP X X Errored.
-------------------------------------------------------------------
fillGapsSmallTests/testSmallSCIP X X Errored.
-------------------------------------------------------------------
fillGapsSmallTests/testSmallGurobi X X Errored.
-------------------------------------------------------------------
solverTests/testGurobi X X Errored.
-------------------------------------------------------------------
solverTests/testSCIP X X Errored.
-------------------------------------------------------------------
tinitTests/testftINIT_T0001 X X Errored.
-------------------------------------------------------------------
tinitTests/testftINIT_T0002 X X Errored.
-------------------------------------------------------------------
tinitTests/testftINIT_T0008 X X Errored.
-------------------------------------------------------------------
tinitTests/testftINIT_T0050 X X Errored.
Note: In the case of multiple test runs, this post will be edited.
Failing tests is likely due to invalid gurobi license on the CI server.