diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d9b56ef..37e3f4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,8 +12,8 @@ concurrency: cancel-in-progress: true env: - NBCONVERT_JOBS: '3' - LITERATE_PROC: '3' + NBCONVERT_JOBS: '6' + LITERATE_PROC: '6' JULIA_NUM_THREADS: '2' ALLOWERRORS: 'false' NBCACHE: '.cache' @@ -22,7 +22,7 @@ env: jobs: CI: - runs-on: ubuntu-latest + runs-on: self-hosted steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/Manifest.toml b/Manifest.toml index d0f82ff..8939cb3 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -5,9 +5,9 @@ manifest_format = "2.0" project_hash = "59790a49873d13dffc12303a936abd751ae64bc5" [[deps.ADTypes]] -git-tree-sha1 = "30bb95a372787af850addf28ac937f1be7b79173" +git-tree-sha1 = "72af59f5b8f09faee36b4ec48e014a79210f2f4f" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "1.10.0" +version = "1.11.0" weakdeps = ["ChainRulesCore", "ConstructionBase", "EnzymeCore"] [deps.ADTypes.extensions] @@ -73,9 +73,9 @@ version = "0.4.0" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra"] -git-tree-sha1 = "d60a1922358aa203019b7857a2c8c37329b8736c" +git-tree-sha1 = "d5140b60b87473df18cf4fe66382b7c3596df047" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.17.0" +version = "7.17.1" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" @@ -417,9 +417,9 @@ version = "6.160.0" [[deps.DiffEqCallbacks]] deps = ["ConcreteStructs", "DataStructures", "DiffEqBase", "DifferentiationInterface", "Functors", "LinearAlgebra", "Markdown", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "b1f970a2873a2cf76ce35fb0ed2b755a11b31052" +git-tree-sha1 = "f6bc598f21c7bf2f7885cff9b3c9078e606ab075" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "4.1.0" +version = "4.2.2" [[deps.DiffEqNoiseProcess]] deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] @@ -447,9 +447,9 @@ version = "1.15.1" [[deps.DifferentiationInterface]] deps = ["ADTypes", "LinearAlgebra"] -git-tree-sha1 = "0c99576d0b93df0aff1bed9d9adddef14e4e658f" +git-tree-sha1 = "94e3189f15c2d9011144c094a89fe3f31cc394b0" uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" -version = "0.6.22" +version = "0.6.23" [deps.DifferentiationInterface.extensions] DifferentiationInterfaceChainRulesCoreExt = "ChainRulesCore" @@ -588,21 +588,25 @@ version = "0.0.20230411+0" [[deps.ExceptionUnwrapping]] deps = ["Test"] -git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +git-tree-sha1 = "d36f682e590a83d63d1c7dbd287573764682d12a" uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" -version = "0.1.10" +version = "0.1.11" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" +git-tree-sha1 = "cc5231d52eb1771251fbd37171dbc408bcc8a1b6" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.6.2+0" +version = "2.6.4+0" [[deps.ExponentialUtilities]] deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] -git-tree-sha1 = "8e18940a5ba7f4ddb41fe2b79b6acaac50880a86" +git-tree-sha1 = "cae251c76f353e32d32d76fae2fea655eab652af" uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" -version = "1.26.1" +version = "1.27.0" +weakdeps = ["StaticArrays"] + + [deps.ExponentialUtilities.extensions] + ExponentialUtilitiesStaticArraysExt = "StaticArrays" [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" @@ -699,9 +703,9 @@ version = "1.4.1" [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Setfield"] -git-tree-sha1 = "b10bdafd1647f57ace3885143936749d61638c3b" +git-tree-sha1 = "84e3a47db33be7248daa6274b287507dd6ff84e8" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.26.0" +version = "2.26.2" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -772,10 +776,10 @@ uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" version = "0.1.3" [[deps.Functors]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "64d8e93700c7a3f28f717d265382d52fac9fa1c1" +deps = ["Compat", "ConstructionBase", "LinearAlgebra", "Random"] +git-tree-sha1 = "15e5397dd1cea034c7c772d9748cdee461fb5496" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.12" +version = "0.5.1" [[deps.Future]] deps = ["Random"] @@ -806,12 +810,6 @@ git-tree-sha1 = "f31929b9e67066bee48eec8b03c0df47d31a74b3" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" version = "0.73.8+0" -[[deps.GenericLinearAlgebra]] -deps = ["LinearAlgebra", "Printf", "Random", "libblastrampoline_jll"] -git-tree-sha1 = "c4f9c87b74aedf20920034bd4db81d0bffc527d2" -uuid = "14197337-ba66-59df-a3e3-ca00e7dcff7a" -version = "0.3.14" - [[deps.GenericSchur]] deps = ["LinearAlgebra", "Printf"] git-tree-sha1 = "af49a0851f8113fcfae2ef5027c6d49d0acec39b" @@ -1174,9 +1172,9 @@ version = "1.11.0" [[deps.LinearSolve]] deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "LazyArrays", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "591de175461afd8323aa24b7686062574527aa3a" +git-tree-sha1 = "6b79df6e803fb62b79a364b86c790e7e21bd38ce" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "2.36.2" +version = "2.37.0" [deps.LinearSolve.extensions] LinearSolveBandedMatricesExt = "BandedMatrices" @@ -1315,10 +1313,10 @@ uuid = "a63ad114-7e13-5084-954f-fe012c677804" version = "1.11.0" [[deps.ModelingToolkit]] -deps = ["AbstractTrees", "ArrayInterface", "BlockArrays", "Combinatorics", "CommonSolve", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "DiffRules", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "DynamicQuantities", "ExprTools", "Expronicon", "FindFirstFunctions", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "Graphs", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "Latexify", "Libdl", "LinearAlgebra", "MLStyle", "NaNMath", "NonlinearSolve", "OffsetArrays", "OrderedCollections", "PrecompileTools", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "SciMLStructures", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "URIs", "UnPack", "Unitful"] -git-tree-sha1 = "b96b0749d6d9c8d6480641dcfcc02a265cf6d9e7" +deps = ["AbstractTrees", "ArrayInterface", "BlockArrays", "Combinatorics", "CommonSolve", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "DiffRules", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "DynamicQuantities", "EnumX", "ExprTools", "Expronicon", "FindFirstFunctions", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "Graphs", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "Latexify", "Libdl", "LinearAlgebra", "MLStyle", "NaNMath", "NonlinearSolve", "OffsetArrays", "OrderedCollections", "PrecompileTools", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "SciMLStructures", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "URIs", "UnPack", "Unitful"] +git-tree-sha1 = "d4d2c1a26e9450499a98b4c9388823697fd130f8" uuid = "961ee093-0014-501f-94e3-6117800e7a78" -version = "9.50.0" +version = "9.52.0" [deps.ModelingToolkit.extensions] MTKBifurcationKitExt = "BifurcationKit" @@ -1351,9 +1349,9 @@ version = "0.5.7" [[deps.MutableArithmetics]] deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "90077f1e79de8c9c7c8a90644494411111f4e07b" +git-tree-sha1 = "a2710df6b0931f987530f59427441b21245d8f5e" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.5.2" +version = "1.6.0" [[deps.NLSolversBase]] deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] @@ -1373,9 +1371,9 @@ version = "1.2.0" [[deps.NonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DiffEqBase", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "NonlinearSolveBase", "NonlinearSolveFirstOrder", "NonlinearSolveQuasiNewton", "NonlinearSolveSpectralMethods", "PrecompileTools", "Preferences", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseMatrixColorings", "StaticArraysCore", "SymbolicIndexingInterface"] -git-tree-sha1 = "22f3efdd47bd18d8a26bd559fff254e6b21000fd" +git-tree-sha1 = "e646d238e65928630a5f557c0676051a11504c9d" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "4.1.0" +version = "4.2.0" [deps.NonlinearSolve.extensions] NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" @@ -1428,10 +1426,10 @@ version = "1.3.3" SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" [[deps.NonlinearSolveFirstOrder]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConcreteStructs", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLJacobianOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "dc8535cecb0f9d978019e44b7144b9e84ab85424" +deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConcreteStructs", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLJacobianOperators", "Setfield", "StaticArraysCore"] +git-tree-sha1 = "05a42691900f8f14e930478d5638a5f0fc973601" uuid = "5959db7a-ea39-4486-b5fe-2dd0bf03d60d" -version = "1.0.0" +version = "1.1.0" [[deps.NonlinearSolveQuasiNewton]] deps = ["ArrayInterface", "CommonSolve", "ConcreteStructs", "DiffEqBase", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLOperators", "StaticArraysCore"] @@ -1531,9 +1529,9 @@ version = "1.1.2" [[deps.OrdinaryDiffEqCore]] deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "FastBroadcast", "FastClosures", "FastPower", "FillArrays", "FunctionWrappersWrappers", "InteractiveUtils", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleUnPack", "Static", "StaticArrayInterface", "StaticArraysCore", "SymbolicIndexingInterface", "TruncatedStacktraces"] -git-tree-sha1 = "6f86041d5978ce3574f022f4098e0c216e2a3395" +git-tree-sha1 = "7ad369e1c06c6e267b4b8414518ee69b767705ee" uuid = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" -version = "1.10.2" +version = "1.12.0" weakdeps = ["EnzymeCore"] [deps.OrdinaryDiffEqCore.extensions] @@ -1570,10 +1568,10 @@ uuid = "becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4" version = "1.2.1" [[deps.OrdinaryDiffEqFIRK]] -deps = ["DiffEqBase", "FastBroadcast", "FastPower", "GenericLinearAlgebra", "GenericSchur", "LinearAlgebra", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polynomials", "RecursiveArrayTools", "Reexport", "RootedTrees", "SciMLOperators", "Symbolics"] -git-tree-sha1 = "1dcf5bebc5179c1c119a7a30f99bbb93eec02d44" +deps = ["DiffEqBase", "FastBroadcast", "FastPower", "LinearAlgebra", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "SciMLOperators"] +git-tree-sha1 = "7a6e3996dc0850aee6cdc10c8afa377242fce702" uuid = "5960d6e9-dd7a-4743-88e7-cf307b64f125" -version = "1.3.0" +version = "1.5.0" [[deps.OrdinaryDiffEqFeagin]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] @@ -1806,24 +1804,6 @@ git-tree-sha1 = "645bed98cd47f72f67316fd42fc47dee771aefcd" uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" version = "0.2.2" -[[deps.Polynomials]] -deps = ["LinearAlgebra", "RecipesBase", "Requires", "Setfield", "SparseArrays"] -git-tree-sha1 = "1a9cfb2dc2c2f1bd63f1906d72af39a79b49b736" -uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" -version = "4.0.11" - - [deps.Polynomials.extensions] - PolynomialsChainRulesCoreExt = "ChainRulesCore" - PolynomialsFFTWExt = "FFTW" - PolynomialsMakieCoreExt = "MakieCore" - PolynomialsMutableArithmeticsExt = "MutableArithmetics" - - [deps.Polynomials.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" - MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" - MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" - [[deps.PooledArrays]] deps = ["DataAPI", "Future"] git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" @@ -1960,9 +1940,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "6f4dca5fd8e97087a76b7ab8384d1c3086ace0b7" +git-tree-sha1 = "32f824db4e5bab64e25a12b22483a30a6b813d08" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.27.3" +version = "3.27.4" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -1971,6 +1951,7 @@ version = "3.27.3" RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] RecursiveArrayToolsSparseArraysExt = ["SparseArrays"] + RecursiveArrayToolsStructArraysExt = "StructArrays" RecursiveArrayToolsTrackerExt = "Tracker" RecursiveArrayToolsZygoteExt = "Zygote" @@ -1981,6 +1962,7 @@ version = "3.27.3" MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" @@ -2025,16 +2007,6 @@ git-tree-sha1 = "58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8" uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" version = "0.5.1+0" -[[deps.RootedTrees]] -deps = ["LaTeXStrings", "Latexify", "LinearAlgebra", "Preferences", "RecipesBase", "Requires"] -git-tree-sha1 = "c0c464d3063e46e4128d21fd677ca575ace44fdc" -uuid = "47965b36-3f3e-11e9-0dcf-4570dfd42a8c" -version = "2.23.1" -weakdeps = ["Plots"] - - [deps.RootedTrees.extensions] - PlotsExt = "Plots" - [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] git-tree-sha1 = "04c968137612c4a5629fa531334bb81ad5680f00" @@ -2058,9 +2030,9 @@ version = "0.6.43" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "Expronicon", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] -git-tree-sha1 = "f9195449e0ae7e8daf9d609c9619ecfc2369f62c" +git-tree-sha1 = "114a5eb8c060c9d801431985e9147832d5f3b845" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.60.0" +version = "2.63.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2100,9 +2072,9 @@ weakdeps = ["SparseArrays", "StaticArraysCore"] [[deps.SciMLStructures]] deps = ["ArrayInterface"] -git-tree-sha1 = "25514a6f200219cd1073e4ff23a6324e4a7efe64" +git-tree-sha1 = "0444a37a25fab98adbd90baa806ee492a3af133a" uuid = "53ae85a6-f571-4167-b2af-e1d143709226" -version = "1.5.0" +version = "1.6.1" [[deps.Scratch]] deps = ["Dates"] @@ -2363,9 +2335,9 @@ version = "3.7.2" [[deps.Symbolics]] deps = ["ADTypes", "ArrayInterface", "Bijections", "CommonWorldInvalidations", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "DynamicPolynomials", "IfElse", "LaTeXStrings", "Latexify", "Libdl", "LinearAlgebra", "LogExpFunctions", "MacroTools", "Markdown", "NaNMath", "PrecompileTools", "Primes", "RecipesBase", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArraysCore", "SymbolicIndexingInterface", "SymbolicLimits", "SymbolicUtils", "TermInterface"] -git-tree-sha1 = "24e006074ef13894ed23d006f55e6082998c9035" +git-tree-sha1 = "ce9c95fc859007747a4faf10166201e0b10d4313" uuid = "0c5d862f-8b57-4792-8d23-62f2024744c7" -version = "6.19.0" +version = "6.22.0" [deps.Symbolics.extensions] SymbolicsForwardDiffExt = "ForwardDiff" @@ -2561,9 +2533,9 @@ version = "1.6.1" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "6a451c6f33a176150f315726eba8b92fbfdb9ae7" +git-tree-sha1 = "a2fccc6559132927d4c5dc183e3e01048c6dcbd6" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.13.4+0" +version = "2.13.5+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "XML2_jll", "Zlib_jll"] diff --git a/docs/_toc.yml b/docs/_toc.yml index eeedb65..4c44bde 100644 --- a/docs/_toc.yml +++ b/docs/_toc.yml @@ -8,6 +8,7 @@ chapters: - file: iso-sens - file: camk-sens - file: camk-simp - - file: bcl - - file: iso - - file: ros + - file: effects-bcl + - file: iso-effects + - file: ros-effects + - file: caffeine-effects diff --git a/docs/caffeine-effects.jl b/docs/caffeine-effects.jl new file mode 100644 index 0000000..e5e0c46 --- /dev/null +++ b/docs/caffeine-effects.jl @@ -0,0 +1,53 @@ +# # Caffeine Effects +# Caffeine increase RyR opening sensitivity to luminal and subspace calcium +# In this model, we decrease the mid saturation sub-SR calcium concentration for the opening rate +using ModelingToolkit +using OrdinaryDiffEq +using DiffEqCallbacks +using Plots +using CaMKIIModel +Plots.default(lw=1.5) + +#--- +sys = build_neonatal_ecc_sys(simplify=true, reduce_iso=true) +tend = 500.0 +prob = ODEProblem(sys, [], tend) +stimstart = 100.0 +stimend = 300.0 +alg = FBDF() +function add_coffee_affect!(integrator) + integrator.ps[sys.RyRsensitivity] = 10 +end + +@unpack Istim = sys +callback = build_stim_callbacks(Istim, stimend; period=1, starttime=stimstart) +# Add caffeine at t = 200 +callback_caf = CallbackSet(build_stim_callbacks(Istim, stimend; period=1, starttime=stimstart), PresetTimeCallback(200.0, add_coffee_affect!)) + +#--- +sol = solve(prob, alg; callback, abstol=1e-6, reltol=1e-6) +sol_caf = solve(prob, alg; callback = callback_caf, abstol=1e-6, reltol=1e-6) + +#--- +plot(sol, idxs=sys.vm*1000, title="Action potential", lab="Ctl") +plot!(sol_caf, idxs=sys.vm*1000, lab="Caf", tspan=(199, 210), ylabel="Voltage (mV)") + +#--- +plot(sol, idxs=sys.Cai_sub_SR*1E6, title="Calcium transient (During caffeine addition)", lab="Ctl") +plot!(sol_caf, idxs=sys.Cai_sub_SR*1E6, tspan=(195, 210), lab="Caf", ylabel="Subspace calcium (nM)") + +#--- +plot(sol, idxs=sys.Cai_sub_SR*1E6, title="Calcium transient (After caffeine addition)", lab="Ctl", ylabel="Subspace calcium (nM)") +plot!(sol_caf, idxs=sys.Cai_sub_SR*1E6, tspan=(295, 300), lab="Caf") + +#--- +plot(sol, idxs=sys.CaJSR*1E3, title="SR Calcium (During caffeine addition)", lab="Ctl", ylabel="SR calcium (μM)") +plot!(sol_caf, idxs=sys.CaJSR*1E3, tspan=(195, 210), lab="Caf", ylims=(200, 850)) + +#--- +plot(sol, idxs=sys.Jrel, title="RyR Ca flux", lab="Ctl") +plot!(sol_caf, idxs=sys.Jrel, tspan=(195, 210), lab="Caf", ylabel="μM/ms") + +#--- +plot(sol, idxs=sys.CaMKAct, title="Active CaMKII", lab="Ctl") +plot!(sol_caf, idxs=sys.CaMKAct, lab="Caf") diff --git a/docs/bcl.jl b/docs/effects-bcl.jl similarity index 89% rename from docs/bcl.jl rename to docs/effects-bcl.jl index ebc6cf6..4680f9f 100644 --- a/docs/bcl.jl +++ b/docs/effects-bcl.jl @@ -1,4 +1,4 @@ -# # Pacing frequency +# # Pacing frequency Effects using ModelingToolkit using OrdinaryDiffEq using Plots @@ -49,13 +49,32 @@ plot(sol2, idxs=[sys.Cai_sub_SR, sys.Cai_sub_SL, sys.Cai_mean], tspan=(299, 300) #--- plot(sol2, idxs=sys.CaMKAct, title="Active CaMKII") -# ## Comparing 1-2 Hz +# ## 3Hz +# AP not stable +callback = build_stim_callbacks(Istim, stimend; period=1/3, starttime=stimstart) +sol3 = solve(prob, alg; callback, abstol=1e-6, reltol=1e-6) + +#--- +plot(sol3, idxs=sys.vm*1000, title="Action potential") + +#--- +plot(sol3, idxs=sys.vm*1000, title="Action potential", tspan=(298, 300)) + +#--- +plot(sol3, idxs=[sys.Cai_sub_SR, sys.Cai_sub_SL, sys.Cai_mean], tspan=(298, 300), title="Calcium transient") + +#--- +plot(sol3, idxs=sys.CaMKAct, title="Active CaMKII") + +# ## Comparing 1-3 Hz plot(sol, idxs=sys.vm*1000, title="Action potential", lab="1Hz") plot!(sol2, idxs=sys.vm*1000, lab="2Hz", tspan=(299, 300), xlabel="Time (sec.)", ylabel="Voltage (mV)") +plot!(sol3, idxs=sys.vm*1000, lab="3Hz") #--- plot(sol, idxs=sys.CaMKAct, title="CaMKII", lab="1Hz") plot!(sol2, idxs=sys.CaMKAct, lab="2Hz", ylim=(0.0, 1.0), xlabel="Time (sec.)", ylabel="Act. fraction (AU)") +plot!(sol3, idxs=sys.CaMKAct, lab="3Hz") # ## Data fitting ### Pacing duration and CaMKII activity diff --git a/docs/iso.jl b/docs/iso-effects.jl similarity index 100% rename from docs/iso.jl rename to docs/iso-effects.jl diff --git a/docs/ros.jl b/docs/ros-effects.jl similarity index 100% rename from docs/ros.jl rename to docs/ros-effects.jl diff --git a/pluto-nb/test-lcc.jl b/pluto-nb/test-lcc.jl index 811dad8..cef8319 100644 --- a/pluto-nb/test-lcc.jl +++ b/pluto-nb/test-lcc.jl @@ -15,7 +15,6 @@ begin using OrdinaryDiffEq using DiffEqCallbacks using Plots - using LsqFit using CaMKIIModel using CaMKIIModel: μM, Hz, μAμF Plots.default(lw=1.5) @@ -28,14 +27,11 @@ Base.current_project() sys = build_neonatal_ecc_sys(simplify=true, reduce_iso=true); # ╔═╡ fb697567-fa32-4963-a490-0668657b22f5 -tend = 100.0 +tend = 500.0 # ╔═╡ 638be248-21ad-4833-bbc8-f2f9a805a900 ps = [ - sys.ktrCaSR => 50Hz, - sys.kRyR => 20Hz, - sys.GCaL => 1e-4, # 6.3e-5 - sys.kNaCa => 2.268e-16μAμF / μM^4 # 2.268e-16 + sys.RyRsensitivity => 10 ] # ╔═╡ 78fb22d4-2f06-49b0-a818-377eedf7ca8d @@ -58,6 +54,9 @@ begin plot(sol, idxs=[INaCa, ICaL], tspan=(90, 92), ylabel="uA/uF or uM/ms") end +# ╔═╡ 32ea73cb-f2f1-4530-a401-f7db9fb1b313 +plot(sol, idxs=sys.PO1RyR, tspan=(90, 92)) + # ╔═╡ 8a2eb462-92ee-4ed3-a315-3c58a9a194f4 plot(sol, idxs=sys.vm*1000, lab="Membrane potential", tspan=(90, 92)) @@ -66,28 +65,11 @@ plot(sol, idxs=sys.vm*1000, lab="Membrane potential", tspan=(90, 92)) plot(sol, idxs=[sys.Cai_sub_SL*1E6, sys.Cai_sub_SR*1E6], tspan=(90, 92), ylabel="nM", lab=["Ca (sub SL)" "Ca (sub SR)"], ylims=(100, 800)) # ╔═╡ cd11a3d5-bdd8-415c-8b8d-58c4228f8877 -# SR Ca release is reletively small (see JSR) plot(sol, idxs=[sys.CaJSR, sys.CaNSR], tspan=(90, 92), ylabel="mM") # ╔═╡ b563ef4c-1dc3-4b3e-9f58-bace24d03d9e plot(sol, idxs=sys.CaMKAct) -# ╔═╡ 3e63b27f-a13a-45a6-9f95-83d31d64db34 -begin - @unpack CaM0_CaMK, Ca2CaM_C_CaMK, Ca2CaM_N_CaMK, Ca4CaM_CaMK, CaM0_CaMKP, Ca2CaM_C_CaMKP, Ca2CaM_N_CaMKP, Ca4CaM_CaMKP, CaMKP, CaMKP2, CaMK= sys; - KCaM = CaM0_CaMK + Ca2CaM_C_CaMK + Ca2CaM_N_CaMK + Ca4CaM_CaMK - PCaM = CaM0_CaMKP + Ca2CaM_C_CaMKP + Ca2CaM_N_CaMKP + Ca4CaM_CaMKP -end; - -# ╔═╡ 5d7497ec-d7b0-41b6-ba68-4015bb98090a -begin - plot(sol, idxs=KCaM, lab="KCaM") - plot!(sol, idxs=PCaM, lab="PCaM") - plot!(sol, idxs=CaMKP) - plot!(sol, idxs=CaMKP2) - plot!(sol, idxs=CaMK, lab="Inactive CaMK") -end - # ╔═╡ Cell order: # ╠═fe7e7c0b-1ae0-4a04-9549-23aba60efcf5 # ╠═f4d83570-9d1c-11ef-0654-53e2d6f12d6e @@ -99,9 +81,8 @@ end # ╠═12ded313-721a-4d7b-a2e3-25b313c1a582 # ╠═761a0baf-b5ec-4caa-ae56-5808a2840987 # ╠═58073dd2-9670-48d1-876e-82ba2a1f5611 +# ╠═32ea73cb-f2f1-4530-a401-f7db9fb1b313 # ╠═8a2eb462-92ee-4ed3-a315-3c58a9a194f4 # ╠═152536f6-3cb9-48dd-9467-f1a2b64b3dba # ╠═cd11a3d5-bdd8-415c-8b8d-58c4228f8877 # ╠═b563ef4c-1dc3-4b3e-9f58-bace24d03d9e -# ╠═3e63b27f-a13a-45a6-9f95-83d31d64db34 -# ╠═5d7497ec-d7b0-41b6-ba68-4015bb98090a diff --git a/src/er.jl b/src/er.jl index db703c7..bc1fee2 100644 --- a/src/er.jl +++ b/src/er.jl @@ -5,16 +5,17 @@ function get_ser_sys(Cai_sub_SR; fracPLB_CKp=0, fracPLBp=0, RyR_CKp=0.2, V_sub_S VNSR = 0.9 * VSR VJSR = VSR - VNSR # RyR - kRyR = 20Hz + kRyR = 20Hz # 10 Hz kaposRyR = 1000Hz kanegRyR = 160Hz + RyRsensitivity = 1.0 # SERCA VmaxSR = 0.9996mM*Hz KmfSR = 0.5μM KmrSR = 3.5mM kSRleak = 0.005Hz fracPKA_PLBo = 1 - 0.079755 - ktrCaSR = 50Hz + ktrCaSR = 50Hz # 5Hz csqntot = 24.750mM Kmcsqn = 0.8mM end @@ -36,7 +37,7 @@ function get_ser_sys(Cai_sub_SR; fracPLB_CKp=0, fracPLBp=0, RyR_CKp=0.2, V_sub_S fCKII_PLB = (1 - 0.5 * fracPLB_CKp) # Max effect: fCKII_PLB=0.5 fPKA_PLB = ((1 - fracPLBp) / fracPKA_PLBo) * (1 - 0.5531) + 0.5531 # Select the smaller value (resulting in max reduction of Kmf) - Kmfp = KmfSR * min(fCKII_PLB, fPKA_PLB) #fCKII_PLB + Kmfp = KmfSR * min(fCKII_PLB, fPKA_PLB) # fCKII_PLB fSR = (Cai_sub_SR / Kmfp)^2 rSR = (CaNSR / KmrSR)^2 kleak = (1 + 5 * RyR_CKp) * kSRleak / 2 @@ -45,7 +46,7 @@ function get_ser_sys(Cai_sub_SR; fracPLB_CKp=0, fracPLBp=0, RyR_CKp=0.2, V_sub_S 1 ~ PO1RyR + PC1RyR, Jrel ~ kRyR * PO1RyR * (CaJSR - Cai_sub_SR), KmRyR ~ (3.51 / (1 + exp((CaJSR - 530μM) / 200μM)) + 0.25) * μM, - D(PO1RyR) ~ kaposRyR * hil(Cai_sub_SR, KmRyR, 4) * PC1RyR - kanegRyR * PO1RyR, + D(PO1RyR) ~ kaposRyR * hil(Cai_sub_SR, KmRyR / RyRsensitivity, 4) * PC1RyR - kanegRyR * PO1RyR, Jup ~ VmaxSR * (fSR - rSR) / (1 + fSR + rSR), Jleak ~ kleak * (CaNSR - Cai_sub_SR), Jtr ~ ktrCaSR * (CaNSR - CaJSR),