Skip to content

Commit 69e3a29

Browse files
orebasclaude
andcommitted
Add comprehensive biohydrogenation debugging and CAS dependencies
Major changes: - Add biohydrogenation example with extensive debugging - Add CAS dependencies (Oscar, Singular, Groebner, Nemo, DynamicPolynomials) - Extensive debugging for identifiability analysis - Use Symbolics.substitute explicitly throughout - Add debug output for polynomial system construction - Track derivative order decisions and rank analysis src/core/parameter_estimation.jl: - Add comprehensive debug output for identifiability analysis - Track derivative order selection (PE formula vs heuristic) - Debug Jacobian construction and nullspace analysis - Output full polynomial system for debugging - Add UNTESTED FIX comments for OrderedDict usage - Add EXPERIMENTAL FIX for derivative order calculation src/examples/biohydrogenation/: - Complete biohydrogenation example with saved systems - Algebraic diagnostics summary - Data files and results Dependencies added for CAS diagnostics: - Oscar, Singular, Groebner for algebraic analysis - DynamicPolynomials, MultivariatePolynomials for polynomial manipulation - Nemo for number theory support 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 225fee0 commit 69e3a29

536 files changed

Lines changed: 17353 additions & 40 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Project.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,36 @@ CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
1010
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
1111
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
1212
DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab"
13+
DynamicPolynomials = "7c1d4256-1411-5781-91ec-d7bc3513ac07"
1314
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
1415
GaussianProcesses = "891a1506-143c-57d2-908e-e1f8e92e6de9"
16+
Groebner = "0b43b601-686d-58a3-8a1c-6623616c7cd4"
1517
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
1618
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
1719
LeastSquaresOptim = "0fc2ff8b-aaa3-5acd-a817-1944a5e08891"
1820
LineSearches = "d3d80556-e9d4-5f37-9878-2ab0fcc64255"
1921
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
2022
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
2123
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
24+
MultivariatePolynomials = "102ac46a-7ee4-5c85-9060-abc95bfdeaa3"
2225
NLSolversBase = "d41bc354-129a-5804-8e4c-c37616107c6c"
26+
Nemo = "2edaba10-b0f1-5616-af89-8c11ac63239a"
2327
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
2428
Optim = "429524aa-4258-5aef-a3af-852621145aeb"
2529
Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba"
2630
OptimizationMOI = "fd9f6733-72f4-499f-8506-86b2bdd0dea1"
2731
OptimizationOptimJL = "36348300-93cb-4f02-beb5-3c3902f8871e"
2832
OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
2933
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
34+
Oscar = "f1435218-dba5-11e9-1e4d-f1a5fab5fc13"
3035
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
3136
PolynomialRoots = "3a141323-8675-5d76-9d11-e1df1406c778"
3237
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
3338
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
3439
RS = "01933e51-4c7d-4354-b809-e991ab46e7ed"
3540
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
3641
RationalUnivariateRepresentation = "17246082-4fa7-4287-87d4-6a5617fca855"
42+
Singular = "bcd08a7b-43d2-5ff7-b6d4-c458787f915c"
3743
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
3844
Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb"
3945
SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5"
@@ -48,6 +54,7 @@ PEtab = "48d54b35-e43e-4a66-a5a1-dde6b987cf69"
4854
ODEParameterEstimationPEtabExt = ["PEtab"]
4955

5056
[compat]
57+
Oscar = "1.2.2"
5158

5259
[extras]
5360
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

src/ODEParameterEstimation.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ using NonlinearSolve
2828
using PolynomialRoots
2929
using Suppressor
3030
using Logging
31+
using Singular
32+
using Groebner
33+
using DynamicPolynomials
34+
using Nemo#using GLPK
35+
using Oscar
3136

3237
using AbstractAlgebra
3338
using RationalUnivariateRepresentation
@@ -129,7 +134,7 @@ export substr_test, global_unident_test, sum_test, trivial_unident
129134
# data_sample = load("/home/ad7760/parameter_estimation_tests/data/julia/lotka-volterra_0.jld2", "data")
130135

131136
estimation_problem = sample_problem_data(pep, datasize = datasize, time_interval = time_interval, noise_level = 0.0)
132-
res = analyze_parameter_estimation_problem(estimation_problem, nooutput = true, system_solver = solve_with_nlopt)
137+
res = analyze_parameter_estimation_problem(estimation_problem, nooutput = true, system_solver = solve_with_nlopt, shooting_points = 1)
133138
#analysis_result, besterror =
134139
# analyze_estimation_result(estimation_problem, res, nooutput = true)
135140

0 commit comments

Comments
 (0)