SciML / StructuralIdentifiability.jl

Fast and automatic structural identifiability software for ODE systems
https://docs.sciml.ai/StructuralIdentifiability/stable/
MIT License
109 stars 17 forks source link

SI not compatible with latest Symbolics, SymbolicUtils, and ModelingToolkit versions #326

Closed TorkelE closed 3 months ago

TorkelE commented 3 months ago

Short example when I try to add all of these simultaneously:

(Environment - Temporary) pkg> st
Status `~/Desktop/Julia Playground/Environment - Temporary/Project.toml` (empty project)

(Environment - Temporary) pkg> add StructuralIdentifiability, Symbolics, SymbolicUtils, ModelingToolkit
   Resolving package versions...
    Updating `~/Desktop/Julia Playground/Environment - Temporary/Project.toml`
  [961ee093] + ModelingToolkit v9.16.0
⌃ [220ca800] + StructuralIdentifiability v0.1.0
  [d1185830] + SymbolicUtils v2.0.2
  [0c5d862f] + Symbolics v5.30.1
    Updating `~/Desktop/Julia Playground/Environment - Temporary/Manifest.toml`
  [47edcb42] + ADTypes v1.2.1
⌅ [c3fe647b] + AbstractAlgebra v0.20.1
  [1520ce14] + AbstractTrees v0.4.5
  [7d9f7c33] + Accessors v0.1.36
  [79e6a3ab] + Adapt v4.0.4
  [66dad0bd] + AliasTables v1.1.3
  [ec485272] + ArnoldiMethod v0.4.0
  [4fba245c] + ArrayInterface v7.11.0
  [4c555306] + ArrayLayouts v1.9.3
  [e2ed5e7c] + Bijections v0.1.6
  [b99e7846] + BinaryProvider v0.5.10
  [62783981] + BitTwiddlingConvenienceFunctions v0.1.5
  [2a0fbf3d] + CPUSummary v0.2.5
  [00ebfdb7] + CSTParser v3.4.3
  [49dc2e85] + Calculus v0.5.1
  [d360d2e6] + ChainRulesCore v1.24.0
  [fb6a15b2] + CloseOpenIntervals v0.1.12
  [861a8166] + Combinatorics v1.0.2
  [a80b9123] + CommonMark v0.8.12
  [38540f10] + CommonSolve v0.2.4
  [bbf7d656] + CommonSubexpressions v0.3.0
  [34da2185] + Compat v4.15.0
  [b152e2b5] + CompositeTypes v0.1.4
  [a33af91c] + CompositionsBase v0.1.2
  [2569d6c7] + ConcreteStructs v0.2.3
  [187b0558] + ConstructionBase v1.5.5
  [adafc99b] + CpuId v0.3.1
  [a8cc5b0e] + Crayons v4.1.1
⌅ [1f15a43c] + CxxWrap v0.11.2
  [9a962f9c] + DataAPI v1.16.0
  [864edb3b] + DataStructures v0.18.20
  [e2d170a0] + DataValueInterfaces v1.0.0
  [ab62b9b5] + DeepDiffs v1.2.0
  [2b5f629d] + DiffEqBase v6.151.2
  [459566f4] + DiffEqCallbacks v3.6.2
  [163ba53b] + DiffResults v1.1.0
  [b552c78f] + DiffRules v1.15.1
⌅ [a0c0ee7d] + DifferentiationInterface v0.4.2
  [31c24e10] + Distributions v0.25.109
  [ffbed154] + DocStringExtensions v0.9.3
  [5b8099bc] + DomainSets v0.7.14
  [fa6b7ba4] + DualNumbers v0.6.8
  [7c1d4256] + DynamicPolynomials v0.5.7
⌅ [06fc5a27] + DynamicQuantities v0.13.2
  [4e289a0a] + EnumX v1.0.4
  [f151be2c] + EnzymeCore v0.7.3
  [d4d017d3] + ExponentialUtilities v1.26.1
  [e2ba6199] + ExprTools v0.1.10
  [7034ab61] + FastBroadcast v0.3.2
  [9aa1b823] + FastClosures v0.3.2
  [29a986be] + FastLapackInterface v2.0.4
  [1a297f60] + FillArrays v1.11.0
  [64ca27bc] + FindFirstFunctions v1.2.0
  [6a86dc24] + FiniteDiff v2.23.1
  [1fa38f19] + Format v1.3.7
  [f6369f11] + ForwardDiff v0.10.36
  [069b7b12] + FunctionWrappers v1.1.3
  [77dc65aa] + FunctionWrappersWrappers v0.1.3
  [d9f16b24] + Functors v0.4.11
  [46192b85] + GPUArraysCore v0.1.6
  [c145ed77] + GenericSchur v0.5.4
  [c27321d9] + Glob v1.3.1
  [86223c79] + Graphs v1.11.0
  [e39c9192] + GroebnerBasis v0.3.3
⌅ [3e1990a7] + Hecke v0.10.15
  [3e5b6fbb] + HostCPUFeatures v0.1.16
  [34004b35] + HypergeometricFunctions v0.3.23
  [615f187c] + IfElse v0.1.1
  [d25df0c9] + Inflate v0.1.5
  [18e54dd8] + IntegerMathUtils v0.1.2
  [8197267c] + IntervalSets v0.7.10
  [3587e190] + InverseFunctions v0.1.14
  [92d709cd] + IrrationalConstants v0.2.2
  [c8e1da08] + IterTools v1.10.0
  [82899510] + IteratorInterfaceExtensions v1.0.0
  [692b3bcd] + JLLWrappers v1.5.0
  [682c06a0] + JSON v0.21.4
  [98e50ef6] + JuliaFormatter v1.0.56
  [ccbc3e58] + JumpProcesses v9.11.1
  [ef3ab10e] + KLU v0.6.0
  [ba0b0d4f] + Krylov v0.9.6
  [b964fa9f] + LaTeXStrings v1.3.1
  [2ee39098] + LabelledArrays v1.16.0
  [984bce1d] + LambertW v0.4.6
  [23fbe1c1] + Latexify v0.16.3
  [10f19ff3] + LayoutPointers v0.1.15
  [5078a376] + LazyArrays v2.0.4
  [d3d80556] + LineSearches v7.2.0
  [7ed4a6bd] + LinearSolve v2.30.1
⌅ [472f376f] + LoadFlint v0.5.1
  [2ab3a3ac] + LogExpFunctions v0.3.28
  [bdcacae8] + LoopVectorization v0.12.170
  [d8e11817] + MLStyle v0.4.17
  [1914dd2f] + MacroTools v0.5.13
  [d125e4d3] + ManualMemory v0.1.8
  [bb5d69b7] + MaybeInplace v0.1.3
  [e1d29d7a] + Missings v1.2.0
  [961ee093] + ModelingToolkit v9.16.0
  [46d2c3a1] + MuladdMacro v0.2.4
  [102ac46a] + MultivariatePolynomials v0.5.5
  [d8a4904e] + MutableArithmetics v1.4.4
  [d41bc354] + NLSolversBase v7.8.3
  [77ba4419] + NaNMath v1.0.2
⌅ [2edaba10] + Nemo v0.25.1
  [8913a72c] + NonlinearSolve v3.12.4
  [6fe1bfb0] + OffsetArrays v1.14.0
  [bac558e1] + OrderedCollections v1.6.3
  [1dea7af3] + OrdinaryDiffEq v6.81.1
  [90014a1f] + PDMats v0.11.31
  [65ce6f38] + PackageExtensionCompat v1.0.2
  [d96e819e] + Parameters v0.12.3
  [69de0a69] + Parsers v2.8.1
  [e409e4f3] + PoissonRandom v0.4.4
  [f517fe37] + Polyester v0.7.14
  [1d0040c9] + PolyesterWeave v0.2.1
  [d236fae5] + PreallocationTools v0.4.22
  [aea7be01] + PrecompileTools v1.2.1
  [21216c6a] + Preferences v1.4.3
  [27ebfcd6] + Primes v0.5.6
  [43287f4e] + PtrArrays v1.2.0
  [1fd47b50] + QuadGK v2.9.4
  [fb686558] + RandomExtensions v0.4.4
  [e6cf234a] + RandomNumbers v1.5.3
  [3cdcf5f2] + RecipesBase v1.3.4
  [731186ca] + RecursiveArrayTools v3.22.0
  [f2c3362d] + RecursiveFactorization v0.2.23
  [189a3867] + Reexport v1.2.2
  [ae029012] + Requires v1.3.0
  [79098fc4] + Rmath v0.7.1
  [7e49a35a] + RuntimeGeneratedFunctions v0.5.13
  [94e857df] + SIMDTypes v0.1.0
  [476501e8] + SLEEFPirates v0.6.42
  [0bca4576] + SciMLBase v2.40.0
  [c0aeaf25] + SciMLOperators v0.3.8
  [53ae85a6] + SciMLStructures v1.2.0
  [efcf1570] + Setfield v1.1.1
  [727e6d20] + SimpleNonlinearSolve v1.9.0
  [699a6c99] + SimpleTraits v0.9.4
  [ce78b400] + SimpleUnPack v1.1.0
⌅ [bcd08a7b] + Singular v0.5.8
  [a2af1166] + SortingAlgorithms v1.2.1
  [47a9eef4] + SparseDiffTools v2.19.0
  [0a514795] + SparseMatrixColorings v0.3.2
  [e56a9233] + Sparspak v0.3.9
  [276daf66] + SpecialFunctions v2.4.0
  [aedffcd0] + Static v0.8.10
  [0d7ed370] + StaticArrayInterface v1.5.0
  [90137ffa] + StaticArrays v1.9.4
  [1e83bf80] + StaticArraysCore v1.4.2
  [82ae8749] + StatsAPI v1.7.0
  [2913bbd2] + StatsBase v0.34.3
  [4c63d2b9] + StatsFuns v1.3.1
  [7792a7ef] + StrideArraysCore v0.5.6
⌃ [220ca800] + StructuralIdentifiability v0.1.0
  [2efcf032] + SymbolicIndexingInterface v0.3.22
  [19f23fe9] + SymbolicLimits v0.2.1
  [d1185830] + SymbolicUtils v2.0.2
  [0c5d862f] + Symbolics v5.30.1
  [3783bdb8] + TableTraits v1.0.1
  [bd369af6] + Tables v1.11.1
⌅ [8ea1fca8] + TermInterface v0.4.1
⌅ [98d24dd4] + TestSetExtensions v2.0.0
  [8290d209] + ThreadingUtilities v0.5.2
  [a759f4b9] + TimerOutputs v0.5.24
  [0796e94c] + Tokenize v0.5.29
  [d5829a12] + TriangularSolve v0.2.0
  [410a4b4d] + Tricks v0.1.8
  [781d530d] + TruncatedStacktraces v1.4.0
  [5c2747f8] + URIs v1.5.1
  [3a884ed6] + UnPack v1.0.2
  [1986cc42] + Unitful v1.20.0
  [a7c27f48] + Unityper v0.1.6
  [3d5dd08c] + VectorizationBase v0.21.68
  [19fa3120] + VertexSafeGraphs v0.2.0
⌅ [e21ec000] + Antic_jll v0.200.400+0
⌅ [d9960996] + Arb_jll v200.1900.1+0
⌅ [fcfa6d1b] + Calcium_jll v0.400.0+0
⌅ [e134572f] + FLINT_jll v200.700.100+0
  [e8aa6df9] + GLPK_jll v5.0.1+0
  [1d5cc7b8] + IntelOpenMP_jll v2024.1.0+0
  [856f044c] + MKL_jll v2024.1.0+0
  [efe28fd5] + OpenSpecFun_jll v0.5.5+0
  [f50d1b31] + Rmath_jll v0.4.2+0
⌅ [43d676ae] + Singular_jll v402.0.104+0
  [f07e07eb] + cddlib_jll v0.94.14+0
  [006bdf2e] + gb_jll v0.17.0+0
  [1493ae25] + lib4ti2_jll v1.6.10+0
⌅ [3eaa8342] + libcxxwrap_julia_jll v0.8.8+1
⌅ [ae4fbd8f] + libsingular_julia_jll v0.15.7+0
  [1317d2d5] + oneTBB_jll v2021.12.0+0
  [0dad84c5] + ArgTools v1.1.1
  [56f22d72] + Artifacts
  [2a0f44e3] + Base64
  [ade2ca70] + Dates
  [8ba89e20] + Distributed
  [f43a241f] + Downloads v1.6.0
  [7b1f6079] + FileWatching
  [9fa8497b] + Future
  [b77e0a4c] + InteractiveUtils
  [4af54fe1] + LazyArtifacts
  [b27032c2] + LibCURL v0.6.4
  [76f85450] + LibGit2
  [8f399da3] + Libdl
  [37e2e46d] + LinearAlgebra
  [56ddb016] + Logging
  [d6f4376e] + Markdown
  [a63ad114] + Mmap
  [ca575930] + NetworkOptions v1.2.0
  [44cfe95a] + Pkg v1.10.0
  [de0858da] + Printf
  [9abbd945] + Profile
  [3fa0cd96] + REPL
  [9a3f8284] + Random
  [ea8e919c] + SHA v0.7.0
  [9e88b42a] + Serialization
  [1a1011a3] + SharedArrays
  [6462fe0b] + Sockets
  [2f01184e] + SparseArrays v1.10.0
  [10745b16] + Statistics v1.10.0
  [4607b0f0] + SuiteSparse
  [fa267f1f] + TOML v1.0.3
  [a4e569a6] + Tar v1.10.0
  [8dfed614] + Test
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
  [e66e0078] + CompilerSupportLibraries_jll v1.1.1+0
  [781609d7] + GMP_jll v6.2.1+6
  [deac9b47] + LibCURL_jll v8.4.0+0
  [e37daf67] + LibGit2_jll v1.6.4+0
  [29816b5a] + LibSSH2_jll v1.11.0+1
  [3a97d323] + MPFR_jll v4.2.0+1
  [c8ffd9c3] + MbedTLS_jll v2.28.2+1
  [14a3606d] + MozillaCACerts_jll v2023.1.10
  [4536629a] + OpenBLAS_jll v0.3.23+4
  [05823500] + OpenLibm_jll v0.8.1+2
  [bea87d4a] + SuiteSparse_jll v7.2.1+1
  [83775a58] + Zlib_jll v1.2.13+1
  [8e850b90] + libblastrampoline_jll v5.8.0+1
  [8e850ede] + nghttp2_jll v1.52.0+1
  [3f19e933] + p7zip_jll v17.4.0+2
        Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

(Environment - Temporary) pkg> st
Status `~/Desktop/Julia Playground/Environment - Temporary/Project.toml`
  [961ee093] ModelingToolkit v9.16.0
⌃ [220ca800] StructuralIdentifiability v0.1.0
  [d1185830] SymbolicUtils v2.0.2
  [0c5d862f] Symbolics v5.30.1
Info Packages marked with ⌃ have new versions available and may be upgradable.

(Environment - Temporary) pkg> add StructuralIdentifiability@v0.5.7
   Resolving package versions...
┌ Error: Error watching manifest
│   exception =
│    UndefVarError: `SpecialFunctions` not defined
│    Stacktrace:
│     [1] eval(x::Expr)
│       @ Symbolics.SymbolicsForwardDiffExt ~/.julia/packages/Symbolics/8tggF/ext/SymbolicsForwardDiffExt.jl:1
│     [2] top-level scope
│       @ ~/.julia/packages/Symbolics/8tggF/ext/SymbolicsForwardDiffExt.jl:119
│    Revise evaluation error at /home/torkelloman/.julia/packages/Symbolics/8tggF/ext/SymbolicsForwardDiffExt.jl:119
│    
│    Stacktrace:
│     [1] methods_by_execution!(recurse::Any, methodinfo::Revise.CodeTrackingMethodInfo, docexprs::Dict{Module, Vector{Expr}}, mod::Module, ex::Expr; mode::Symbol, disablebp::Bool, always_rethrow::Bool, kwargs::@Kwargs{})
│       @ Revise ~/.julia/packages/Revise/bAgL0/src/lowered.jl:258
└ @ Revise ~/.julia/packages/Revise/bAgL0/src/pkgs.jl:493
┌ Warning: failed to remove pidfile on close
│   path = "/home/torkelloman/.julia/logs/manifest_usage.toml.pid"
│   removed = false
└ @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.4+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:342
    Updating `~/Desktop/Julia Playground/Environment - Temporary/Project.toml`
⌃ [961ee093] ↓ ModelingToolkit v9.16.0 ⇒ v9.15.0
  [220ca800] ↑ StructuralIdentifiability v0.1.0 ⇒ v0.5.7
⌅ [d1185830] ↓ SymbolicUtils v2.0.2 ⇒ v1.6.0
⌃ [0c5d862f] ↓ Symbolics v5.30.1 ⇒ v5.28.0
    Updating `~/Desktop/Julia Playground/Environment - Temporary/Manifest.toml`
⌅ [c3fe647b] ↑ AbstractAlgebra v0.20.1 ⇒ v0.40.9
  [a9b6321e] + Atomix v0.1.0
  [b99e7846] - BinaryProvider v0.5.10
  [1f15a43c] - CxxWrap v0.11.2
  [ab62b9b5] - DeepDiffs v1.2.0
  [0b43b601] + Groebner v0.7.4
  [e39c9192] - GroebnerBasis v0.3.3
  [3e1990a7] - Hecke v0.10.15
  [472f376f] - LoadFlint v0.5.1
⌃ [961ee093] ↓ ModelingToolkit v9.16.0 ⇒ v9.15.0
⌅ [2edaba10] ↑ Nemo v0.25.1 ⇒ v0.43.3
  [3e851597] + ParamPunPam v0.4.0
  [08abe8d2] + PrettyTables v2.3.2
  [92933f4c] + ProgressMeter v1.10.0
  [bcd08a7b] - Singular v0.5.8
  [892a3eda] + StringManipulation v0.3.4
  [220ca800] ↑ StructuralIdentifiability v0.1.0 ⇒ v0.5.7
⌅ [d1185830] ↓ SymbolicUtils v2.0.2 ⇒ v1.6.0
⌃ [0c5d862f] ↓ Symbolics v5.30.1 ⇒ v5.28.0
  [98d24dd4] - TestSetExtensions v2.0.0
  [013be700] + UnsafeAtomics v0.2.1
  [e21ec000] ↑ Antic_jll v0.200.400+0 ⇒ v0.201.500+0
  [d9960996] ↑ Arb_jll v200.1900.1+0 ⇒ v200.2300.0+0
  [fcfa6d1b] ↑ Calcium_jll v0.400.0+0 ⇒ v0.401.100+0
⌅ [e134572f] ↑ FLINT_jll v200.700.100+0 ⇒ v200.900.9+0
  [e8aa6df9] - GLPK_jll v5.0.1+0
⌅ [656ef2d0] + OpenBLAS32_jll v0.3.24+0
  [43d676ae] - Singular_jll v402.0.104+0
  [f07e07eb] - cddlib_jll v0.94.14+0
  [006bdf2e] - gb_jll v0.17.0+0
  [1493ae25] - lib4ti2_jll v1.6.10+0
  [3eaa8342] - libcxxwrap_julia_jll v0.8.8+1
  [ae4fbd8f] - libsingular_julia_jll v0.15.7+0
  [9abbd945] - Profile
        Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
Precompiling project...
  ✓ SymbolicUtils
  ✓ Symbolics
  20 dependencies successfully precompiled in 304 seconds. 238 already precompiled.
  2 dependencies precompiled but different versions are currently loaded. Restart julia to access the new versions

(Environment - Temporary) pkg> st
Status `~/Desktop/Julia Playground/Environment - Temporary/Project.toml`
⌃ [961ee093] ModelingToolkit v9.15.0
  [220ca800] StructuralIdentifiability v0.5.7
⌅ [d1185830] SymbolicUtils v1.6.0
⌃ [0c5d862f] Symbolics v5.28.0
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated`
pogudingleb commented 3 months ago

Thanks for reporting!

pogudingleb commented 3 months ago

This is fixed in the new version, 0.5.8, thanks to Chris.

TorkelE commented 3 months ago

And thanks for fixing the extra details for making the release so quickly!