Giter Club home page Giter Club logo

approxbayes.jl's Introduction

Approximate Bayesian Computation

Build Status Build Status Coverage Status codecov.io

Package to implement Approximate Bayesian computation algorithms in the Julia programming language. Package implements basic ABC rejection sampler and sequential monte carlo algorithm (ABC SMC) as in Toni. et al 2009 as well as model selection versions of both (Toni. et al 2010).

Getting Started

To download the package, once you're in a Julia session type the following command:

Pkg.add("ApproxBayes")

Examples

Below is a simple example using the package to infer the mean of a normal distribution. The first step is to create an ABC type which stores the information required to run an analysis. The first input is the simulation function which returns a distance between the simulated and target data sets, the second input is the number of parameters and the the third is the desired tolerance. The final required input is the prior distributions for the parameters, this specified as by creating an a Prior type which is an array of distribution types from Distributions.jl of the same length as the number of parameters. There are some more optional parameters that are specific the the different algorithms.

First we'll load ApproxBayes and Distributions packages.

using ApproxBayes
using Distributions

Now we'll set up the simulation function, we'll use the Kolmogorov Distance as our distance measure. The simulation needs to return 2 values the first being the distance, the second value is useful if additional information from the simulation needs to be stored, here this is not the case so we'll simply return 1, for example sometimes we might want to keep the raw data generated from each simulation.

function normaldist(params, constants, targetdata)
  simdata = rand(Normal(params...), 1000)
  ApproxBayes.ksdist(simdata, targetdata), 1
end

Now we can generate some target data, we'll take 100 samples from a normal distirbution with mean = 2.0 and variance = 0.4.

using Random
Random.seed!(1)
p1 = 2.0
p2 = 0.4
targetdata = rand(Normal(p1, p2), 1000)

Now we can setup an ABCrejection type and run the inference.

setup = ABCRejection(normaldist, #simulation function
  2, # number of parameters
  0.1, #target ϵ
  Prior([Uniform(0.0, 20.0), Uniform(0.0, 2.0)]); # Prior for each of the parameters
  maxiterations = 10^6, #Maximum number of iterations before the algorithm terminates
  )

# run ABC inference
rejection = runabc(setup, targetdata)

We can do the same with ABC SMC algorithm.

setup = ABCSMC(normaldist, #simulation function
  2, # number of parameters
  0.1, #target ϵ
  Prior([Uniform(0.0, 20.0), Uniform(0.0, 2.0)]), #Prior for each of the parameters
  )

smc = runabc(setup, targetdata, verbose = true, progress = true)

Parallelism

Parallelism is provided via multithreading. To use multithreading you'll need to set the JULIA_NUM_THREADS environmental variable before running julia (one way of doing this exporting the variable in the terminal eg export JULIA_NUM_THREADS=1). Then when running an ABCRejection or ABCSMC inference in parallel set the parallel keyword to true. For example the normal distribution example above would be run in parallel as follows:

setup = ABCSMC(normaldist, #simulation function
  2, # number of parameters
  0.1, #target ϵ
  Prior([Uniform(0.0, 20.0), Uniform(0.0, 2.0)]), #Prior for each of the parameters
  )

smc = runabc(setup, targetdata, verbose = true, progress = true, parallel = true)

Optional arguments

There are more optional arguments for each of the algorithms, to see these simply use ?ABCSMC in a Julia session. If verbose and progress are set to true then a progress meter will be displayed and at the end of each population a summary will be printed.

There are more examples provided in the examples directory and used as tests in the test directory. ApproxBayes.jl is also available as an option to perform Bayesian inference with differential equations in DiffEqBayes.jl.

Perturbation kernels

One requirement for the ABC SMC is to have a perturbation kernel. This kernel takes a sampled particle and perturbs the parameter vector in some way to explore the parameter space. Two default kernels are supplied by ApproxBayes.jl, a uniform kernel and a gaussian kernel. Both are adaptive in that the parameters specific to the kernel change as the distance decreases. For example, in the gaussian kernel the variance is calculated from the variance of the previous population. If you want to write your own kernel, take a look at src/kernels.jl for examples.

Convenience functions

Also provided are some convenience functions for plotting and saving the output.

  • writeoutput(abcresults): This will write the output to a text file should you wish to some additional analysis or plotting using some other tools or languages.
  • plot: Plotting recipes for use with Plots.jl are provided. Just use plot on any ABC return type. This will plot histograms of the posterior distributions. For the model selection algorithm plot(result::ABCSMCmodelresults) will plot the model posterior probabilities, a second argument indexing a particular model will plot the parameter posterior distributions for that model, ie plot(result::ABCSMCmodelresults, 1) will plot the posterior distribution of parameters for model 1. You'll need to add the Plots.jl packages yourself as it is not bundled in with ApproxBayes.jl.

Other ABC packages in julia

Here are some other packages that perform ABSC in julia that I am aware of. If this package does not have all your requirements then you might want to take a look at these. gpABC.jl in particular has more features.

Acknowledgments

Some of the code was inspired by ABC-SysBio.

approxbayes.jl's People

Contributors

chrisrackauckas avatar gantza avatar github-actions[bot] avatar jasnyder avatar juliatagbot avatar marcjwilliams1 avatar mauro3 avatar quipa avatar rdbrackston avatar t-heide avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

approxbayes.jl's Issues

Plot recipe overwrite

WARNING: Method definition apply_recipe(Base.Dict{Symbol, Any}, ApproxBayes.ABCrejectionmodelresults) in module ApproxBayes at C:\Users\accou\.julia\packages\RecipesBase\Uz5AO\src\RecipesBase.jl:269 overwritten at C:\Users\accou\.julia\packages\RecipesBase\Uz5AO\src\RecipesBase.jl:269.
WARNING: Method definition apply_recipe(Base.Dict{Symbol, Any}, ApproxBayes.ABCSMCmodelresults) in module ApproxBayes at C:\Users\accou\.julia\packages\RecipesBase\Uz5AO\src\RecipesBase.jl:269 overwritten at C:\Users\accou\.julia\packages\RecipesBase\Uz5AO\src\RecipesBase.jl:269.

discrete priors with ABC-SMC

Hi,

thanks a lot for this package, I really enjoy using it! However, I came into a situation now where I would like to use discrete prior distributions. I noted that the ABCRejection algorithm still works, while the ABCSMC algorithm (which I usually tend to use) gets stuck in preparing the run.

minimal working example:

using ApproxBayes
using Distributions
using Random

Random.seed!(1)
p1 = 100.0
p2 = 10.0
targetdata = rand(Normal(p1, p2), 1000)

function normaldist(params, constants, targetdata)
  simdata = rand(Normal(params...), 1000)
  ApproxBayes.ksdist(simdata, targetdata), 1
end

setup = ABCSMC(normaldist, # ABCSMC() or ABCRejection()
  2,
  0.1,
  Prior([DiscreteUniform(0.0, 200.0), Uniform(0.0, 50.0)]), # discrete prior for p1
  )

smc = runabc(setup, targetdata, verbose = true, progress = true)

mean(smc.parameters, dims=1)
median(smc.parameters, dims=1)

output:

##################################################
Use ABC rejection to get first population
Preparing to run in serial on 1 processor
Running ABC SMC... 

Preparing to run in serial on 1 processor

Is there a way to make ABC-SMC work with discrete priors like this? I would be extremely glad for any help!

Best

Precompilation Compatibility with DifferentialEquations

I'm enjoying this package, but unfortunately it seems to have some issues with precompilation of DifferentialEquations in the v1.9.0 Julia release. It seems to be that ApproxBayes requires versions of some packages that are incompatible with versions of SteadyStateDiffEq that DifferentialEquations depends on in v1.9.0 of Julia.

Any help would be appreciated.

Thanks

Installing DifferentialEquations
(MyProject) pkg> add DifferentialEquations
   Resolving package versions...
   Installed SciMLOperators ──────── v0.2.7
   Installed DifferentialEquations ─ v7.7.0
    Updating `~/Documents/Repos/MyProject/Project.toml`
  [0c46a032] + DifferentialEquations v7.7.0
    Updating `~/Documents/Repos/MyProject/Manifest.toml`
  [ec485272] + ArnoldiMethod v0.2.0
  [30b0a656] + ArrayInterfaceCore v0.1.29
⌃ [4c555306] + ArrayLayouts v0.8.18
⌃ [aae01518] + BandedMatrices v0.17.18
  [62783981] + BitTwiddlingConvenienceFunctions v0.1.5
  [764a87c0] + BoundaryValueDiffEq v2.11.0
  [2a0fbf3d] + CPUSummary v0.2.2
  [fb6a15b2] + CloseOpenIntervals v0.1.12
  [38540f10] + CommonSolve v0.2.3
  [adafc99b] + CpuId v0.3.1
  [bcd4f6db] + DelayDiffEq v5.42.0
  [2b5f629d] + DiffEqBase v6.124.0
  [459566f4] + DiffEqCallbacks v2.26.1
  [77a26b50] + DiffEqNoiseProcess v5.16.0
  [0c46a032] + DifferentialEquations v7.7.0
  [4e289a0a] + EnumX v1.0.4
  [d4d017d3] + ExponentialUtilities v1.24.0
  [e2ba6199] + ExprTools v0.1.9
  [7034ab61] + FastBroadcast v0.2.5
  [9aa1b823] + FastClosures v0.3.2
  [29a986be] + FastLapackInterface v1.2.9
⌅ [1a297f60] ↓ FillArrays v1.0.0 ⇒ v0.13.11
  [6a86dc24] + FiniteDiff v2.20.0
  [069b7b12] + FunctionWrappers v1.1.3
  [77dc65aa] + FunctionWrappersWrappers v0.1.3
  [c145ed77] + GenericSchur v0.5.3
  [86223c79] + Graphs v1.8.0
  [3e5b6fbb] + HostCPUFeatures v0.1.14
  [615f187c] + IfElse v0.1.1
  [42fd0dbc] + IterativeSolvers v0.9.2
  [ccbc3e58] + JumpProcesses v9.6.3
  [ef3ab10e] + KLU v0.4.0
  [ba0b0d4f] + Krylov v0.9.0
  [0b1a1467] + KrylovKit v0.6.0
  [10f19ff3] + LayoutPointers v0.1.14
  [50d2b5c4] + Lazy v0.15.1
  [2d8b4e74] + LevyArea v1.0.0
  [d3d80556] + LineSearches v7.2.0
  [7ed4a6bd] + LinearSolve v1.42.0
  [bdcacae8] + LoopVectorization v0.12.159
  [d125e4d3] + ManualMemory v0.1.8
  [46d2c3a1] + MuladdMacro v0.2.4
  [d41bc354] + NLSolversBase v7.8.3
  [2774e3e8] + NLsolve v4.5.1
  [8913a72c] + NonlinearSolve v1.6.0
  [429524aa] + Optim v1.7.5
  [1dea7af3] + OrdinaryDiffEq v6.51.1
  [d96e819e] + Parameters v0.12.3
  [e409e4f3] + PoissonRandom v0.4.4
  [f517fe37] + Polyester v0.7.3
  [1d0040c9] + PolyesterWeave v0.2.1
  [85a6dd25] + PositiveFactorizations v0.2.4
  [74087812] + Random123 v1.6.1
  [e6cf234a] + RandomNumbers v1.5.3
  [f2c3362d] + RecursiveFactorization v0.2.18
  [ae5879a3] + ResettableStacks v1.1.1
  [7e49a35a] + RuntimeGeneratedFunctions v0.5.7
  [94e857df] + SIMDTypes v0.1.0
  [476501e8] + SLEEFPirates v0.6.38
  [0bca4576] + SciMLBase v1.91.7
  [e9a6253c] + SciMLNLSolve v0.1.6
  [c0aeaf25] + SciMLOperators v0.2.7
  [727e6d20] + SimpleNonlinearSolve v0.1.14
  [ce78b400] + SimpleUnPack v1.1.0
⌅ [47a9eef4] + SparseDiffTools v1.31.0
  [e56a9233] + Sparspak v0.3.9
  [aedffcd0] + Static v0.8.7
  [0d7ed370] + StaticArrayInterface v1.4.0
  [9672c7b4] + SteadyStateDiffEq v1.15.0
  [789caeaf] + StochasticDiffEq v6.60.0
  [7792a7ef] + StrideArraysCore v0.4.14
  [c3572dad] + Sundials v4.17.0
  [8290d209] + ThreadingUtilities v0.5.1
  [a2a6695c] + TreeViews v0.3.0
  [d5829a12] + TriangularSolve v0.1.19
  [410a4b4d] + Tricks v0.1.7
  [781d530d] + TruncatedStacktraces v1.3.0
  [3d5dd08c] + VectorizationBase v0.21.64
  [19fa3120] + VertexSafeGraphs v0.2.0
  [700de1a5] + ZygoteRules v0.2.3
  [fb77eaff] + Sundials_jll v5.2.1+0
        Info Packages marked with ⌃ and ⌅ have new versions available, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
Precompiling project...
  23 dependencies successfully precompiled in 175 seconds. 293 already precompiled.
Installing ApproxBayes
(MyProject) pkg> add ApproxBayes
   Resolving package versions...
   Installed InverseFunctions ────── v0.1.9
   Installed ApproxBayes ─────────── v0.3.2
   Installed DifferentialEquations ─ v6.18.0
   Installed StatsFuns ───────────── v0.9.18
    Updating `~/Documents/Repos/MyProject/Project.toml`
⌃ [cbdf2221] ↓ AlgebraOfGraphics v0.6.14 ⇒ v0.6.12
  [f5f396d3] + ApproxBayes v0.3.2
⌃ [13f3f980] ↓ CairoMakie v0.10.5 ⇒ v0.9.4
⌃ [a93c6f00] ↓ DataFrames v1.5.0 ⇒ v1.3.6
⌃ [0c46a032] ↓ DifferentialEquations v7.7.0 ⇒ v6.18.0
⌃ [2ee39098] ↓ LabelledArrays v1.14.0 ⇒ v1.9.0
    Updating `~/Documents/Repos/MyProject/Manifest.toml`
⌅ [c3fe647b] + AbstractAlgebra v0.27.10
⌅ [1520ce14] ↓ AbstractTrees v0.4.4 ⇒ v0.3.4
⌃ [cbdf2221] ↓ AlgebraOfGraphics v0.6.14 ⇒ v0.6.12
  [f5f396d3] + ApproxBayes v0.3.2
  [dce04be8] + ArgCheck v2.3.0
⌅ [ec485272] ↓ ArnoldiMethod v0.2.0 ⇒ v0.1.0
⌅ [4fba245c] ↓ ArrayInterface v7.4.3 ⇒ v3.2.2
  [6ba088a2] + ArrayInterfaceGPUArrays v0.2.2
⌅ [4c555306] ↓ ArrayLayouts v0.8.18 ⇒ v0.4.11
  [15f4f7f2] + AutoHashEquals v0.2.0
⌃ [aae01518] ↓ BandedMatrices v0.17.18 ⇒ v0.16.8
  [198e06fe] + BangBang v0.3.37
  [9718e550] + Baselet v0.1.1
  [e2ed5e7c] + Bijections v0.1.4
⌃ [764a87c0] ↓ BoundaryValueDiffEq v2.11.0 ⇒ v2.8.0
⌅ [2a0fbf3d] ↓ CPUSummary v0.2.2 ⇒ v0.1.30
  [00ebfdb7] + CSTParser v3.3.6
⌃ [13f3f980] ↓ CairoMakie v0.10.5 ⇒ v0.9.4
  [49dc2e85] - Calculus v0.5.1
⌃ [fb6a15b2] ↓ CloseOpenIntervals v0.1.12 ⇒ v0.1.11
  [861a8166] + Combinatorics v1.0.2
  [a80b9123] + CommonMark v0.8.12
⌅ [34da2185] ↓ Compat v4.6.1 ⇒ v3.46.2
  [b152e2b5] + CompositeTypes v0.1.3
  [a33af91c] + CompositionsBase v0.1.2
⌃ [a93c6f00] ↓ DataFrames v1.5.0 ⇒ v1.3.6
  [244e2a9f] + DefineSingletons v0.1.2
⌃ [bcd4f6db] ↓ DelayDiffEq v5.42.0 ⇒ v5.33.0
  [8bb1440f] + DelimitedFiles v1.9.1
⌅ [2b5f629d] ↓ DiffEqBase v6.124.0 ⇒ v6.70.0
  [5a0ffddc] + DiffEqFinancial v2.4.0
⌅ [c894b116] + DiffEqJump v7.3.1
  [055956cb] + DiffEqPhysics v3.11.0
⌃ [0c46a032] ↓ DifferentialEquations v7.7.0 ⇒ v6.18.0
  [c619ae07] + DimensionalPlotRecipes v1.2.0
⌅ [b4f34e82] ↓ Distances v0.10.8 ⇒ v0.9.2
⌅ [31c24e10] ↓ Distributions v0.25.90 ⇒ v0.23.11
⌅ [ffbed154] ↓ DocStringExtensions v0.9.3 ⇒ v0.8.6
⌅ [5b8099bc] + DomainSets v0.5.15
  [fa6b7ba4] - DualNumbers v0.6.8
  [7c1d4256] + DynamicPolynomials v0.4.6
⌃ [d4d017d3] ↓ ExponentialUtilities v1.24.0 ⇒ v1.23.0
⌅ [7034ab61] ↓ FastBroadcast v0.2.5 ⇒ v0.1.17
  [29a986be] - FastLapackInterface v1.2.9
⌅ [1a297f60] ↓ FillArrays v0.13.11 ⇒ v0.9.7
⌃ [6a86dc24] ↓ FiniteDiff v2.20.0 ⇒ v2.13.1
⌅ [0b43b601] + Groebner v0.2.11
  [d5909c97] + GroupsCore v0.4.0
  [3e5b6fbb] - HostCPUFeatures v0.1.14
  [34004b35] - HypergeometricFunctions v0.3.16
  [22cec73e] + InitialValues v0.3.1
  [842dd82b] - InlineStrings v1.4.0
  [18e54dd8] + IntegerMathUtils v0.1.0
⌅ [8197267c] ↓ IntervalSets v0.7.4 ⇒ v0.7.3
  [3587e190] + InverseFunctions v0.1.9
⌅ [92d709cd] ↓ IrrationalConstants v0.2.2 ⇒ v0.1.1
⌅ [98e50ef6] + JuliaFormatter v0.21.2
  [ccbc3e58] - JumpProcesses v9.6.3
  [ef3ab10e] - KLU v0.4.0
  [ba0b0d4f] - Krylov v0.9.0
  [0b1a1467] - KrylovKit v0.6.0
⌃ [2ee39098] ↓ LabelledArrays v1.14.0 ⇒ v1.9.0
  [984bce1d] + LambertW v0.4.6
⌅ [23fbe1c1] + Latexify v0.15.21
⌃ [10f19ff3] ↓ LayoutPointers v0.1.14 ⇒ v0.1.8
  [50d2b5c4] - Lazy v0.15.1
  [2d8b4e74] - LevyArea v1.0.0
  [093fc24a] + LightGraphs v1.3.5
⌃ [d3d80556] ↓ LineSearches v7.2.0 ⇒ v7.1.1
  [7ed4a6bd] - LinearSolve v1.42.0
  [bdcacae8] - LoopVectorization v0.12.159
⌅ [ee78f7c6] ↓ Makie v0.19.5 ⇒ v0.18.4
⌅ [20f20a25] ↓ MakieCore v0.6.3 ⇒ v0.5.2
⌅ [e9d8d322] + Metatheory v1.3.5
  [128add7d] + MicroCollections v0.1.4
⌃ [961ee093] + ModelingToolkit v8.1.0
  [f9640e96] + MultiScaleArrays v1.10.0
  [102ac46a] + MultivariatePolynomials v0.4.7
  [d8a4904e] + MutableArithmetics v1.3.0
⌅ [77ba4419] ↓ NaNMath v1.0.2 ⇒ v0.3.7
⌅ [8913a72c] ↓ NonlinearSolve v1.6.0 ⇒ v0.3.22
⌅ [1dea7af3] ↓ OrdinaryDiffEq v6.51.1 ⇒ v5.55.1
⌅ [90014a1f] ↓ PDMats v0.11.17 ⇒ v0.10.1
⌅ [19eb6ba3] ↓ Packing v0.5.0 ⇒ v0.4.2
  [65888b18] + ParameterizedFunctions v5.15.0
⌅ [f517fe37] ↓ Polyester v0.7.3 ⇒ v0.6.12
⌅ [1d0040c9] ↓ PolyesterWeave v0.2.1 ⇒ v0.1.13
  [d236fae5] - PreallocationTools v0.4.12
⌅ [08abe8d2] ↓ PrettyTables v2.2.4 ⇒ v1.3.1
  [27ebfcd6] + Primes v0.5.3
  [fb686558] + RandomExtensions v0.4.3
⌃ [731186ca] ↓ RecursiveArrayTools v2.38.5 ⇒ v2.17.2
⌅ [f2c3362d] ↓ RecursiveFactorization v0.2.18 ⇒ v0.1.0
  [42d2dcc6] + Referenceables v0.1.2
  [476501e8] - SLEEFPirates v0.6.38
  [1bc83da4] + SafeTestsets v0.0.1
⌃ [0bca4576] ↓ SciMLBase v1.91.7 ⇒ v1.81.0
  [e9a6253c] - SciMLNLSolve v0.1.6
  [c0aeaf25] - SciMLOperators v0.2.7
  [91c51154] - SentinelArrays v1.3.18
⌅ [efcf1570] ↓ Setfield v1.1.1 ⇒ v0.7.1
  [727e6d20] - SimpleNonlinearSolve v0.1.14
  [ce78b400] - SimpleUnPack v1.1.0
⌅ [47a9eef4] ↓ SparseDiffTools v1.31.0 ⇒ v1.21.0
  [e56a9233] - Sparspak v0.3.9
⌅ [276daf66] ↓ SpecialFunctions v2.2.0 ⇒ v0.10.3
  [171d559e] + SplittablesBase v0.1.15
  [c5dd0088] - StableHashTraits v0.3.1
⌅ [aedffcd0] ↓ Static v0.8.7 ⇒ v0.4.1
  [0d7ed370] - StaticArrayInterface v1.4.0
⌅ [4c63d2b9] ↓ StatsFuns v1.3.0 ⇒ v0.9.18
⌃ [9672c7b4] ↓ SteadyStateDiffEq v1.15.0 ⇒ v1.12.0
⌃ [789caeaf] ↓ StochasticDiffEq v6.60.0 ⇒ v6.40.0
⌅ [7792a7ef] ↓ StrideArraysCore v0.4.14 ⇒ v0.3.17
  [892a3eda] - StringManipulation v0.3.0
⌃ [c3572dad] ↓ Sundials v4.17.0 ⇒ v4.15.1
  [2efcf032] - SymbolicIndexingInterface v0.2.2
⌅ [d1185830] + SymbolicUtils v0.19.11
⌅ [0c5d862f] + Symbolics v4.14.0
⌅ [8ea1fca8] + TermInterface v0.2.3
  [ac1d9e8a] + ThreadsX v0.1.11
  [a759f4b9] + TimerOutputs v0.5.23
  [0796e94c] + Tokenize v0.5.25
  [28d57a85] + Transducers v0.4.76
  [d5829a12] - TriangularSolve v0.1.19
  [410a4b4d] - Tricks v0.1.7
  [781d530d] - TruncatedStacktraces v1.3.0
  [9d95972d] - TupleTools v1.3.0
  [5c2747f8] + URIs v1.4.2
  [1986cc42] + Unitful v1.14.0
  [3d5dd08c] - VectorizationBase v0.21.64
  [8bf52ea8] - CRC32c
  [05823500] - OpenLibm_jll v0.8.1+0
        Info Packages marked with ⌃ and ⌅ have new versions available, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
Precompiling project...
  ✗ SteadyStateDiffEq
  ✗ DifferentialEquations
  73 dependencies successfully precompiled in 139 seconds. 253 already precompiled.
  2 dependencies errored. To see a full report either run `import Pkg; Pkg.precompile()` or load the packages
  6 dependencies had warnings during precompilation:
┌ DataFrames [a93c6f00-e57d-5684-b7b6-d8193f3e46c0]
│  WARNING: method definition for #DataFrame#195 at /Users/cfa5228/.julia/packages/DataFrames/JZ7x5/src/dataframe/dataframe.jl:398 declares type variable T but does not use it.
│  WARNING: method definition for col_ordering at /Users/cfa5228/.julia/packages/DataFrames/JZ7x5/src/abstractdataframe/sort.jl:145 declares type variable O but does not use it.
└
┌ ModelingToolkit [961ee093-0014-501f-94e3-6117800e7a78]
│  WARNING: method definition for namespace_expr at /Users/cfa5228/.julia/packages/ModelingToolkit/zjJ83/src/systems/abstractsystem.jl:406 declares type variable T but does not use it.
└
┌ ArrayLayouts [4c555306-a7a7-4459-81d9-ec55ddd5c99a]
│  WARNING: could not import Base._rangestyle into ArrayLayouts
│  WARNING: could not import LinearAlgebra.Abuf into ArrayLayouts
│  WARNING: could not import LinearAlgebra.Bbuf into ArrayLayouts
│  WARNING: could not import LinearAlgebra.Cbuf into ArrayLayouts
│  WARNING: method definition for unsafe_convert at /Users/cfa5228/.julia/packages/ArrayLayouts/M5SFk/src/ArrayLayouts.jl:90 declares type variable P but does not use it.
│  WARNING: method definition for unsafe_convert at /Users/cfa5228/.julia/packages/ArrayLayouts/M5SFk/src/ArrayLayouts.jl:90 declares type variable N but does not use it.
│  WARNING: method definition for similar at /Users/cfa5228/.julia/packages/ArrayLayouts/M5SFk/src/mul.jl:79 declares type variable N but does not use it.
│  WARNING: method definition for similar at /Users/cfa5228/.julia/packages/ArrayLayouts/M5SFk/src/muladd.jl:41 declares type variable N but does not use it.
│  WARNING: method definition for similar at /Users/cfa5228/.julia/packages/ArrayLayouts/M5SFk/src/lmul.jl:22 declares type variable N but does not use it.
│  WARNING: method definition for similar at /Users/cfa5228/.julia/packages/ArrayLayouts/M5SFk/src/lmul.jl:22 declares type variable N but does not use it.
│  WARNING: method definition for materialize! at /Users/cfa5228/.julia/packages/ArrayLayouts/M5SFk/src/triangular.jl:186 declares type variable UPLO but does not use it.
│  WARNING: method definition for materialize! at /Users/cfa5228/.julia/packages/ArrayLayouts/M5SFk/src/triangular.jl:192 declares type variable UPLO but does not use it.
│  WARNING: method definition for MemoryLayout at /Users/cfa5228/.julia/packages/ArrayLayouts/M5SFk/src/factorizations.jl:97 declares type variable T but does not use it.
│  WARNING: method definition for MemoryLayout at /Users/cfa5228/.julia/packages/ArrayLayouts/M5SFk/src/factorizations.jl:99 declares type variable T but does not use it.
└
┌ DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]
│  WARNING: method definition for similar at /Users/cfa5228/.julia/packages/DiffEqBase/niZxn/src/data_array.jl:47 declares type variable T but does not use it.
│  WARNING: method definition for EnsembleSolution_adjoint at /Users/cfa5228/.julia/packages/DiffEqBase/niZxn/src/chainrules.jl:65 declares type variable T but does not use it.
└
┌ BandedMatrices [aae01518-5342-5314-be14-df237901396f]
│  WARNING: method definition for #_lu#19 at /Users/cfa5228/.julia/packages/BandedMatrices/sSIkN/src/banded/BandedLU.jl:94 declares type variable T but does not use it.
└
┌ DiffEqJump [c894b116-72e5-5b58-be3c-e6d8d4ac2b12]
│  WARNING: method definition for #MassActionJump#8 at /Users/cfa5228/.julia/packages/DiffEqJump/x05Qi/src/jumps.jl:103 declares type variable U but does not use it.
│  WARNING: method definition for #MassActionJump#8 at /Users/cfa5228/.julia/packages/DiffEqJump/x05Qi/src/jumps.jl:103 declares type variable S but does not use it.
│  WARNING: method definition for #MassActionJump#9 at /Users/cfa5228/.julia/packages/DiffEqJump/x05Qi/src/jumps.jl:104 declares type variable U but does not use it.
│  WARNING: method definition for #MassActionJump#9 at /Users/cfa5228/.julia/packages/DiffEqJump/x05Qi/src/jumps.jl:104 declares type variable S but does not use it.
│  WARNING: method definition for #RDirectJumpAggregation#62 at /Users/cfa5228/.julia/packages/DiffEqJump/x05Qi/src/aggregators/rdirect.jl:23 declares type variable DEPGR but does not use it.
└
Trying to load DifferentialEquations
julia> using DifferentialEquations
[ Info: Precompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]
ERROR: LoadError: UndefVarError: `prepare_alg` not defined
Stacktrace:
 [1] getproperty(x::Module, f::Symbol)
   @ Base ./Base.jl:31
 [2] top-level scope
   @ ~/.julia/packages/SteadyStateDiffEq/gjuOi/src/solve.jl:1
 [3] include(mod::Module, _path::String)
   @ Base ./Base.jl:457
 [4] include(x::String)
   @ SteadyStateDiffEq ~/.julia/packages/SteadyStateDiffEq/gjuOi/src/SteadyStateDiffEq.jl:1
 [5] top-level scope
   @ ~/.julia/packages/SteadyStateDiffEq/gjuOi/src/SteadyStateDiffEq.jl:12
 [6] include
   @ ./Base.jl:457 [inlined]
 [7] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
   @ Base ./loading.jl:2010
 [8] top-level scope
   @ stdin:2
in expression starting at /Users/cfa5228/.julia/packages/SteadyStateDiffEq/gjuOi/src/solve.jl:1
in expression starting at /Users/cfa5228/.julia/packages/SteadyStateDiffEq/gjuOi/src/SteadyStateDiffEq.jl:1
in expression starting at stdin:2
ERROR: LoadError: Failed to precompile SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f] to "/Users/cfa5228/.julia/compiled/v1.9/SteadyStateDiffEq/jl_SVT8bN".
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
    @ Base ./loading.jl:2260
  [3] compilecache
    @ ./loading.jl:2127 [inlined]
  [4] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:1770
  [5] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1625
  [6] macro expansion
    @ ./loading.jl:1613 [inlined]
  [7] macro expansion
    @ ./lock.jl:267 [inlined]
  [8] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1576
  [9] include
    @ ./Base.jl:457 [inlined]
 [10] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
    @ Base ./loading.jl:2010
 [11] top-level scope
    @ stdin:2
in expression starting at /Users/cfa5228/.julia/packages/DifferentialEquations/el96s/src/DifferentialEquations.jl:1
in expression starting at stdin:2
ERROR: Failed to precompile DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa] to "/Users/cfa5228/.julia/compiled/v1.9/DifferentialEquations/jl_UNN2Mx".
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
   @ Base ./loading.jl:2260
 [3] compilecache
   @ ./loading.jl:2127 [inlined]
 [4] _require(pkg::Base.PkgId, env::String)
   @ Base ./loading.jl:1770
 [5] _require_prelocked(uuidkey::Base.PkgId, env::String)
   @ Base ./loading.jl:1625
 [6] macro expansion
   @ ./loading.jl:1613 [inlined]
 [7] macro expansion
   @ ./lock.jl:267 [inlined]
 [8] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:1576
] st -m
(MyProject) pkg> st -m
Status `~/Documents/Repos/MyProject/Manifest.toml`
⌅ [c3fe647b] AbstractAlgebra v0.27.10
  [621f4979] AbstractFFTs v1.3.1
⌅ [1520ce14] AbstractTrees v0.3.4
  [79e6a3ab] Adapt v3.6.2
⌃ [cbdf2221] AlgebraOfGraphics v0.6.12
  [27a7e980] Animations v0.4.1
  [f5f396d3] ApproxBayes v0.3.2
  [dce04be8] ArgCheck v2.3.0
⌅ [ec485272] ArnoldiMethod v0.1.0
⌅ [4fba245c] ArrayInterface v3.2.2
  [30b0a656] ArrayInterfaceCore v0.1.29
  [6ba088a2] ArrayInterfaceGPUArrays v0.2.2
⌅ [4c555306] ArrayLayouts v0.4.11
  [15f4f7f2] AutoHashEquals v0.2.0
  [67c07d97] Automa v0.8.2
  [13072b0f] AxisAlgorithms v1.0.1
  [39de3d68] AxisArrays v0.4.6
⌃ [aae01518] BandedMatrices v0.16.8
  [198e06fe] BangBang v0.3.37
  [9718e550] Baselet v0.1.1
  [e2ed5e7c] Bijections v0.1.4
  [62783981] BitTwiddlingConvenienceFunctions v0.1.5
⌃ [764a87c0] BoundaryValueDiffEq v2.8.0
  [fa961155] CEnum v0.4.2
⌅ [2a0fbf3d] CPUSummary v0.1.30
  [00ebfdb7] CSTParser v3.3.6
  [159f3aea] Cairo v1.0.5
⌃ [13f3f980] CairoMakie v0.9.4
  [8be319e6] Chain v0.5.0
  [d360d2e6] ChainRulesCore v1.16.0
⌃ [fb6a15b2] CloseOpenIntervals v0.1.11
  [a2cac450] ColorBrewer v0.4.0
  [35d6a980] ColorSchemes v3.21.0
  [3da002f7] ColorTypes v0.11.4
  [c3611d14] ColorVectorSpace v0.9.10
  [5ae59095] Colors v0.12.10
  [861a8166] Combinatorics v1.0.2
  [a80b9123] CommonMark v0.8.12
  [38540f10] CommonSolve v0.2.3
  [bbf7d656] CommonSubexpressions v0.3.0
⌅ [34da2185] Compat v3.46.2
  [b152e2b5] CompositeTypes v0.1.3
  [a33af91c] CompositionsBase v0.1.2
  [187b0558] ConstructionBase v1.5.2
  [d38c429a] Contour v0.6.2
  [adafc99b] CpuId v0.3.1
  [a8cc5b0e] Crayons v4.1.1
  [9a962f9c] DataAPI v1.15.0
⌃ [a93c6f00] DataFrames v1.3.6
  [1313f7d8] DataFramesMeta v0.14.0
  [864edb3b] DataStructures v0.18.13
  [e2d170a0] DataValueInterfaces v1.0.0
  [244e2a9f] DefineSingletons v0.1.2
⌃ [bcd4f6db] DelayDiffEq v5.33.0
  [8bb1440f] DelimitedFiles v1.9.1
  [85a47980] Dictionaries v0.3.25
⌅ [2b5f629d] DiffEqBase v6.70.0
  [459566f4] DiffEqCallbacks v2.26.1
  [5a0ffddc] DiffEqFinancial v2.4.0
⌅ [c894b116] DiffEqJump v7.3.1
  [77a26b50] DiffEqNoiseProcess v5.16.0
  [055956cb] DiffEqPhysics v3.11.0
  [163ba53b] DiffResults v1.1.0
  [b552c78f] DiffRules v1.13.0
⌃ [0c46a032] DifferentialEquations v6.18.0
  [c619ae07] DimensionalPlotRecipes v1.2.0
⌅ [b4f34e82] Distances v0.9.2
⌅ [31c24e10] Distributions v0.23.11
⌅ [ffbed154] DocStringExtensions v0.8.6
⌅ [5b8099bc] DomainSets v0.5.15
  [634d3b9d] DrWatson v2.12.5
  [7c1d4256] DynamicPolynomials v0.4.6
  [4e289a0a] EnumX v1.0.4
⌃ [d4d017d3] ExponentialUtilities v1.23.0
  [e2ba6199] ExprTools v0.1.9
  [411431e0] Extents v0.1.1
  [c87230d0] FFMPEG v0.4.1
  [7a1cc6ca] FFTW v1.6.0
⌅ [7034ab61] FastBroadcast v0.1.17
  [9aa1b823] FastClosures v0.3.2
  [5789e2e9] FileIO v1.16.1
⌅ [1a297f60] FillArrays v0.9.7
⌃ [6a86dc24] FiniteDiff v2.13.1
  [53c48c17] FixedPointNumbers v0.8.4
  [59287772] Formatting v0.4.2
  [f6369f11] ForwardDiff v0.10.35
  [b38be410] FreeType v4.0.0
  [663a7486] FreeTypeAbstraction v0.10.0
  [069b7b12] FunctionWrappers v1.1.3
  [77dc65aa] FunctionWrappersWrappers v0.1.3
  [38e38edf] GLM v1.8.3
  [46192b85] GPUArraysCore v0.1.4
  [c145ed77] GenericSchur v0.5.3
  [cf35fbd7] GeoInterface v1.3.1
  [5c1252a2] GeometryBasics v0.4.7
  [a2bd30eb] Graphics v1.1.2
  [86223c79] Graphs v1.8.0
  [3955a311] GridLayoutBase v0.9.1
  [42e2da0e] Grisu v1.0.2
⌅ [0b43b601] Groebner v0.2.11
  [d5909c97] GroupsCore v0.4.0
  [615f187c] IfElse v0.1.1
  [2803e5a7] ImageAxes v0.6.10
  [c817782e] ImageBase v0.1.5
  [a09fc81d] ImageCore v0.9.4
  [82e4d734] ImageIO v0.6.6
  [bc367c6b] ImageMetadata v0.9.8
  [313cdc1a] Indexing v1.1.1
  [9b13fd28] IndirectArrays v1.0.0
  [d25df0c9] Inflate v0.1.3
  [22cec73e] InitialValues v0.3.1
  [18e54dd8] IntegerMathUtils v0.1.0
  [a98d9a8b] Interpolations v0.14.7
⌅ [8197267c] IntervalSets v0.7.3
  [3587e190] InverseFunctions v0.1.9
  [41ab1584] InvertedIndices v1.3.0
⌅ [92d709cd] IrrationalConstants v0.1.1
  [f1662d9f] Isoband v0.1.1
  [c8e1da08] IterTools v1.4.0
  [42fd0dbc] IterativeSolvers v0.9.2
  [82899510] IteratorInterfaceExtensions v1.0.0
  [033835bb] JLD2 v0.4.31
  [692b3bcd] JLLWrappers v1.4.1
  [682c06a0] JSON v0.21.4
  [b835a17e] JpegTurbo v0.1.2
⌅ [98e50ef6] JuliaFormatter v0.21.2
  [5ab0869b] KernelDensity v0.6.7
  [b964fa9f] LaTeXStrings v1.3.0
⌃ [2ee39098] LabelledArrays v1.9.0
  [984bce1d] LambertW v0.4.6
⌅ [23fbe1c1] Latexify v0.15.21
⌃ [10f19ff3] LayoutPointers v0.1.8
  [8cdb02fc] LazyModules v0.3.1
  [093fc24a] LightGraphs v1.3.5
⌃ [d3d80556] LineSearches v7.1.1
⌅ [4345ca2d] Loess v0.5.4
  [2ab3a3ac] LogExpFunctions v0.3.23
  [1914dd2f] MacroTools v0.5.10
⌅ [ee78f7c6] Makie v0.18.4
⌅ [20f20a25] MakieCore v0.5.2
  [d125e4d3] ManualMemory v0.1.8
  [dbb5928d] MappedArrays v0.4.1
  [7eb4fadd] Match v1.2.0
  [0a4f8689] MathTeXEngine v0.5.6
⌅ [e9d8d322] Metatheory v1.3.5
  [128add7d] MicroCollections v0.1.4
  [978d7f02] MiniQhull v0.4.0
  [e1d29d7a] Missings v1.1.0
⌃ [961ee093] ModelingToolkit v8.1.0
  [e94cdb99] MosaicViews v0.3.4
  [46d2c3a1] MuladdMacro v0.2.4
  [f9640e96] MultiScaleArrays v1.10.0
  [102ac46a] MultivariatePolynomials v0.4.7
  [d8a4904e] MutableArithmetics v1.3.0
  [d41bc354] NLSolversBase v7.8.3
  [2774e3e8] NLsolve v4.5.1
⌅ [77ba4419] NaNMath v0.3.7
  [f09324ee] Netpbm v1.1.0
⌅ [8913a72c] NonlinearSolve v0.3.22
  [510215fc] Observables v0.5.4
  [6fe1bfb0] OffsetArrays v1.12.9
  [52e1d378] OpenEXR v0.3.2
  [429524aa] Optim v1.7.5
  [bac558e1] OrderedCollections v1.6.0
⌅ [1dea7af3] OrdinaryDiffEq v5.55.1
⌅ [90014a1f] PDMats v0.10.1
  [f57f5aa1] PNGFiles v0.3.17
⌅ [19eb6ba3] Packing v0.4.2
  [5432bcbf] PaddedViews v0.5.12
  [65888b18] ParameterizedFunctions v5.15.0
  [d96e819e] Parameters v0.12.3
  [69de0a69] Parsers v2.5.9
  [eebad327] PkgVersion v0.3.2
  [995b91a9] PlotUtils v1.3.5
  [e409e4f3] PoissonRandom v0.4.4
⌅ [f517fe37] Polyester v0.6.12
⌅ [1d0040c9] PolyesterWeave v0.1.13
  [647866c9] PolygonOps v0.1.2
  [2dfb63ee] PooledArrays v1.4.2
  [85a6dd25] PositiveFactorizations v0.2.4
  [aea7be01] PrecompileTools v1.1.1
  [21216c6a] Preferences v1.4.0
⌅ [08abe8d2] PrettyTables v1.3.1
  [27ebfcd6] Primes v0.5.3
  [92933f4c] ProgressMeter v1.7.2
  [4b34888f] QOI v1.0.0
  [1fd47b50] QuadGK v2.8.2
  [74087812] Random123 v1.6.1
  [fb686558] RandomExtensions v0.4.3
  [e6cf234a] RandomNumbers v1.5.3
  [b3c3ace0] RangeArrays v0.3.2
  [c84ed2f1] Ratios v0.4.4
  [3cdcf5f2] RecipesBase v1.3.4
⌃ [731186ca] RecursiveArrayTools v2.17.2
⌅ [f2c3362d] RecursiveFactorization v0.1.0
  [189a3867] Reexport v1.2.2
  [42d2dcc6] Referenceables v0.1.2
  [05181044] RelocatableFolders v1.0.0
  [ae029012] Requires v1.3.0
  [ae5879a3] ResettableStacks v1.1.1
  [79098fc4] Rmath v0.7.1
  [7e49a35a] RuntimeGeneratedFunctions v0.5.7
  [fdea26ae] SIMD v3.4.5
  [94e857df] SIMDTypes v0.1.0
  [1bc83da4] SafeTestsets v0.0.1
  [7b38b023] ScanByte v0.3.3
⌃ [0bca4576] SciMLBase v1.81.0
  [6c6a2e73] Scratch v1.2.0
⌅ [efcf1570] Setfield v0.7.1
  [1277b4bf] ShiftedArrays v2.0.0
  [992d4aef] Showoff v1.0.3
  [73760f76] SignedDistanceFields v0.4.0
  [699a6c99] SimpleTraits v0.9.4
  [45858cf5] Sixel v0.1.2
  [66db9d55] SnoopPrecompile v1.0.3
  [a2af1166] SortingAlgorithms v1.1.0
⌅ [47a9eef4] SparseDiffTools v1.21.0
⌅ [276daf66] SpecialFunctions v0.10.3
  [171d559e] SplittablesBase v0.1.15
  [cae243ae] StackViews v0.1.1
⌅ [aedffcd0] Static v0.4.1
  [90137ffa] StaticArrays v1.5.24
  [1e83bf80] StaticArraysCore v1.4.0
  [82ae8749] StatsAPI v1.6.0
⌅ [2913bbd2] StatsBase v0.33.21
⌅ [4c63d2b9] StatsFuns v0.9.18
  [3eaba693] StatsModels v0.7.2
⌃ [9672c7b4] SteadyStateDiffEq v1.12.0
⌃ [789caeaf] StochasticDiffEq v6.40.0
⌅ [7792a7ef] StrideArraysCore v0.3.17
  [09ab397b] StructArrays v0.6.15
⌃ [c3572dad] Sundials v4.15.1
⌅ [d1185830] SymbolicUtils v0.19.11
⌅ [0c5d862f] Symbolics v4.14.0
  [3783bdb8] TableTraits v1.0.1
  [bd369af6] Tables v1.10.1
  [62fd8b95] TensorCore v0.1.1
⌅ [8ea1fca8] TermInterface v0.2.3
  [8290d209] ThreadingUtilities v0.5.1
  [ac1d9e8a] ThreadsX v0.1.11
  [731e570b] TiffImages v0.6.4
  [a759f4b9] TimerOutputs v0.5.23
  [0796e94c] Tokenize v0.5.25
  [3bb67fe8] TranscodingStreams v0.9.13
  [28d57a85] Transducers v0.4.76
  [a2a6695c] TreeViews v0.3.0
  [981d1d27] TriplotBase v0.1.0
  [5c2747f8] URIs v1.4.2
  [3a884ed6] UnPack v1.0.2
  [1cfade01] UnicodeFun v0.4.1
  [1986cc42] Unitful v1.14.0
  [19fa3120] VertexSafeGraphs v0.2.0
  [efce3f68] WoodburyMatrices v0.5.5
  [700de1a5] ZygoteRules v0.2.3
  [6e34b625] Bzip2_jll v1.0.8+0
  [83423d85] Cairo_jll v1.16.1+1
  [5ae413db] EarCut_jll v2.2.4+0
  [2e619515] Expat_jll v2.4.8+0
  [b22a6f82] FFMPEG_jll v4.4.2+2
  [f5851436] FFTW_jll v3.3.10+0
  [a3f928ae] Fontconfig_jll v2.13.93+0
  [d7e528f0] FreeType2_jll v2.10.4+0
  [559328eb] FriBidi_jll v1.0.10+0
  [78b55507] Gettext_jll v0.21.0+0
  [7746bdde] Glib_jll v2.74.0+2
  [3b182d85] Graphite2_jll v1.3.14+0
  [2e76f6c2] HarfBuzz_jll v2.8.1+1
  [905a6f67] Imath_jll v3.1.7+0
  [1d5cc7b8] IntelOpenMP_jll v2023.1.0+0
  [aacddb02] JpegTurbo_jll v2.1.91+0
  [c1c5ebd0] LAME_jll v3.100.1+0
  [dd4b983a] LZO_jll v2.10.1+0
⌅ [e9f186c6] Libffi_jll v3.2.2+1
  [d4300ac3] Libgcrypt_jll v1.8.7+0
  [7add5ba3] Libgpg_error_jll v1.42.0+0
  [94ce4f54] Libiconv_jll v1.16.1+2
  [4b2f31a3] Libmount_jll v2.35.0+0
  [38a345b3] Libuuid_jll v2.36.0+0
⌅ [856f044c] MKL_jll v2022.2.0+0
  [e7412a2a] Ogg_jll v1.3.5+1
  [18a262bb] OpenEXR_jll v3.1.4+0
⌅ [458c3c95] OpenSSL_jll v1.1.20+0
  [efe28fd5] OpenSpecFun_jll v0.5.5+0
  [91d4177d] Opus_jll v1.3.2+0
  [36c8627f] Pango_jll v1.50.9+0
  [30392449] Pixman_jll v0.40.1+0
  [460c41e3] QhullMiniWrapper_jll v1.0.0+1
⌅ [784f63db] Qhull_jll v8.0.1003+0
  [f50d1b31] Rmath_jll v0.4.0+0
  [fb77eaff] Sundials_jll v5.2.1+0
  [02c8fc9c] XML2_jll v2.10.3+0
  [aed1982a] XSLT_jll v1.1.34+0
  [4f6342f7] Xorg_libX11_jll v1.6.9+4
  [0c0b7dd1] Xorg_libXau_jll v1.0.9+4
  [a3789734] Xorg_libXdmcp_jll v1.1.3+4
  [1082639a] Xorg_libXext_jll v1.3.4+4
  [ea2f1a96] Xorg_libXrender_jll v0.9.10+4
  [14d82f49] Xorg_libpthread_stubs_jll v0.1.0+3
  [c7cfdc94] Xorg_libxcb_jll v1.13.0+3
  [c5fb5394] Xorg_xtrans_jll v1.4.0+3
  [9a68df92] isoband_jll v0.2.3+0
  [a4ae2306] libaom_jll v3.4.0+0
  [0ac62f75] libass_jll v0.15.1+0
  [f638f0a6] libfdk_aac_jll v2.0.2+0
  [b53b4c65] libpng_jll v1.6.38+0
  [075b6546] libsixel_jll v1.10.3+0
  [f27f6e37] libvorbis_jll v1.3.7+1
  [1270edf5] x264_jll v2021.5.5+0
  [dfaa095f] x265_jll v3.5.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.3
  [76f85450] LibGit2
  [8f399da3] Libdl
  [37e2e46d] LinearAlgebra
  [56ddb016] Logging
  [d6f4376e] Markdown
  [a63ad114] Mmap
  [ca575930] NetworkOptions v1.2.0
  [44cfe95a] Pkg v1.9.0
  [de0858da] Printf
  [3fa0cd96] REPL
  [9a3f8284] Random
  [ea8e919c] SHA v0.7.0
  [9e88b42a] Serialization
  [1a1011a3] SharedArrays
  [6462fe0b] Sockets
  [2f01184e] SparseArrays
  [10745b16] Statistics v1.9.0
  [4607b0f0] SuiteSparse
  [fa267f1f] TOML v1.0.3
  [a4e569a6] Tar v1.10.0
  [8dfed614] Test
  [cf7118a7] UUIDs
  [4ec0a83e] Unicode
  [e66e0078] CompilerSupportLibraries_jll v1.0.2+0
  [deac9b47] LibCURL_jll v7.84.0+0
  [29816b5a] LibSSH2_jll v1.10.2+0
  [c8ffd9c3] MbedTLS_jll v2.28.2+0
  [14a3606d] MozillaCACerts_jll v2022.10.11
  [4536629a] OpenBLAS_jll v0.3.21+4
  [efcefdf7] PCRE2_jll v10.42.0+0
  [bea87d4a] SuiteSparse_jll v5.10.1+6
  [83775a58] Zlib_jll v1.2.13+0
  [8e850b90] libblastrampoline_jll v5.7.0+0
  [8e850ede] nghttp2_jll v1.48.0+0
  [3f19e933] p7zip_jll v17.4.0+0
Info Packages marked with ⌃ and ⌅ have new versions available, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

Remove Plots dependency

When used from DiffEqBayes.jl I get:

[ Info: Recompiling stale cache file C:\Users\Chris\.julia\compiled\v1.0\ApproxBayes\bnega.ji for ApproxBayes [f5f396d3-230c-5e07-80e6-9fadf06146cc]
WARNING: eval from module Plots to ApproxBayes:
Expr(:call, Expr(:., :Sys, :(:islinux)))
  ** incremental compilation may be broken for this module **

WARNING: eval from module Plots to ApproxBayes:
Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1383 =#, Expr(:call, Expr(:., :Sys, :(:isapple))))
  ** incremental compilation may be broken for this module **

WARNING: eval from module Plots to ApproxBayes:
Expr(:function, Expr(:call, :_show, Expr(:::, :io, :IO), Expr(:::, Expr(:curly, :MIME, Expr(:call, :Symbol, "application/postscript"))), Expr(:::, :plt, Expr(:curly, :Plot, :GRBackend))), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1394 =#, Expr(:call, Expr(:., :GR, :(:emergencyclosegks))), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1395 =#, :filepath = Expr(:call, :*, Expr(:call, :tempname), ".", "ps"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1396 =#, :env = Expr(:call, :get, :ENV, "GKSwstype", "0"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1397 =#, Expr(:ref, :ENV, "GKSwstype") = "ps", #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1398 =#, Expr(:ref, :ENV, "GKS_FILEPATH") = :filepath,
#= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1399 =#, Expr(:call, :gr_display, :plt, "ps"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1400 =#, Expr(:call, Expr(:., :GR,
:(:emergencyclosegks))), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1401 =#, Expr(:call, :write, :io, Expr(:call, :read, :filepath, :String)), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1402 =#, Expr(:call, :rm, :filepath), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1403 =#, Expr(:if, Expr(:call, :!=, :env, "0"), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1404 =#, Expr(:ref, :ENV, "GKSwstype") = :env), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1406 =#, Expr(:call, :pop!, :ENV, "GKSwstype")))))
  ** incremental compilation may be broken for this module **

WARNING: eval from module Plots to ApproxBayes:
Expr(:function, Expr(:call, :_show, Expr(:::, :io, :IO), Expr(:::, Expr(:curly, :MIME, Expr(:call, :Symbol, "application/pdf"))), Expr(:::, :plt, Expr(:curly, :Plot, :GRBackend))), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1394 =#, Expr(:call,
Expr(:., :GR, :(:emergencyclosegks))), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1395 =#, :filepath = Expr(:call, :*, Expr(:call, :tempname), ".", "pdf"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1396 =#, :env = Expr(:call, :get, :ENV, "GKSwstype", "0"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1397 =#,
Expr(:ref, :ENV, "GKSwstype") = "pdf", #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1398 =#, Expr(:ref, :ENV, "GKS_FILEPATH") = :filepath, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1399 =#, Expr(:call, :gr_display, :plt, "pdf"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1400 =#, Expr(:call, Expr(:., :GR, :(:emergencyclosegks))), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1401 =#, Expr(:call, :write, :io, Expr(:call, :read, :filepath, :String)), #=
Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1402 =#, Expr(:call, :rm, :filepath), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1403 =#, Expr(:if, Expr(:call, :!=, :env, "0"), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1404 =#, Expr(:ref, :ENV, "GKSwstype") = :env), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1406 =#, Expr(:call, :pop!, :ENV, "GKSwstype")))))
  ** incremental compilation may be broken for this module **

WARNING: eval from module Plots to ApproxBayes:
Expr(:function, Expr(:call, :_show, Expr(:::, :io, :IO), Expr(:::, Expr(:curly, :MIME, Expr(:call, :Symbol, "image/png"))), Expr(:::, :plt, Expr(:curly, :Plot, :GRBackend))), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1394 =#, Expr(:call, Expr(:., :GR, :(:emergencyclosegks))), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1395 =#, :filepath = Expr(:call, :*, Expr(:call, :tempname), ".",
"png"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1396 =#, :env = Expr(:call, :get, :ENV, "GKSwstype", "0"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1397 =#, Expr(:ref, :ENV, "GKSwstype") = "png", #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1398 =#, Expr(:ref, :ENV, "GKS_FILEPATH") = :filepath, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1399 =#, Expr(:call, :gr_display, :plt, "png"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1400 =#, Expr(:call, Expr(:., :GR, :(:emergencyclosegks))), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1401 =#, Expr(:call, :write, :io, Expr(:call, :read, :filepath, :String)), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1402 =#, Expr(:call, :rm, :filepath), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1403 =#, Expr(:if, Expr(:call, :!=, :env, "0"), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1404 =#, Expr(:ref, :ENV, "GKSwstype") = :env), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1406 =#, Expr(:call, :pop!, :ENV, "GKSwstype")))))
  ** incremental compilation may be broken for this module **

WARNING: eval from module Plots to ApproxBayes:
Expr(:function, Expr(:call, :_show, Expr(:::, :io, :IO), Expr(:::, Expr(:curly, :MIME, Expr(:call, :Symbol, "image/svg+xml"))), Expr(:::, :plt, Expr(:curly, :Plot, :GRBackend))), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1394 =#, Expr(:call, Expr(:., :GR, :(:emergencyclosegks))), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1395 =#, :filepath = Expr(:call, :*, Expr(:call, :tempname), ".", "svg"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1396 =#, :env = Expr(:call, :get, :ENV, "GKSwstype", "0"), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1397 =#, Expr(:ref, :ENV, "GKSwstype") = "svg", #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1398 =#, Expr(:ref, :ENV, "GKS_FILEPATH") = :filepath, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1399 =#, Expr(:call, :gr_display, :plt, "svg"),
#= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1400 =#, Expr(:call, Expr(:., :GR, :(:emergencyclosegks))), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1401 =#, Expr(:call, :write, :io, Expr(:call, :read, :filepath, :String)), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1402 =#, Expr(:call, :rm, :filepath), #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1403 =#, Expr(:if, Expr(:call, :!=, :env, "0"), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1404 =#, Expr(:ref, :ENV, "GKSwstype") = :env), Expr(:block, #= Symbol("C:\Users\Chris\.julia\packages\Plots\EJpx2\src\backends\gr.jl"):1406 =#,
Expr(:call, :pop!, :ENV, "GKSwstype")))))
  ** incremental compilation may be broken for this module **

WARNING: eval from module Plots to ApproxBayes:
Expr(:call, Expr(:., :Sys, :(:isapple)))
  ** incremental compilation may be broken for this module **

WARNING: eval from module Plots to ApproxBayes:
Expr(:||, Expr(:call, Expr(:., :Sys, :(:islinux))), Expr(:call, Expr(:., :Sys, :(:isbsd))))
  ** incremental compilation may be broken for this module **

WARNING: eval from module Plots to ApproxBayes:
Expr(:call, Expr(:., :Sys, :(:iswindows)))
  ** incremental compilation may be broken for this module **

loaded

The Plots.jl dependency should be entirely removed and replaced with recipes.

SMCABC BoundsError in Parallel

I am running the SMCABC method, with parallel=true, to find parameter posterior distribution for my custom model. But I end up with a BoundsError like the one below. The "43-element" is a different number each time

BoundsError: attempt to access 43-element Array{ApproxBayes.ParticleSMC,1} at index [1:100]
throw_boundserror(::Array{ApproxBayes.ParticleSMC,1}, ::Tuple{UnitRange{Int64}}) at abstractarray.jl:484
checkbounds at abstractarray.jl:449 [inlined]
getindex(::Array{ApproxBayes.ParticleSMC,1}, ::UnitRange{Int64}) at array.jl:737
#runabc#88(::Bool, ::Bool, ::Bool, ::Function, ::ABCSMC, ::Array{Float64,1}) at ABCalgorithm.jl:225
(::getfield(ApproxBayes, Symbol("#kw##runabc")))(::NamedTuple{(:verbose, :progress, :parallel),Tuple{Bool,Bool,Bool}}, ::typeof(runabc), ::ABCSMC, ::Array{Float64,1}) at none:0
top-level scope at none:0

Any idea why this occurring? I don't get the error when I run the parallel example from the README

plotparameterposterior

Hi
In LV.jl example, why the command "plotparameterposterior(ressmc)" does not work?
The error is this:
UndefVarError: plotparameterposterior not defined
Stacktrace:
[1] top-level scope

Which package should I call for that?

Significant digits in output file hearders

Hi,

Many thanks for this package which I am finding really useful!

With my current project, the rejection rates are quite high and in the file output, I may get an acceptance ratio like 0.0001. Personally, I would find it useful to return a value rounded to a specific number of significant digits (not 4 digits overall which may all be zeros).

Happy to send a pull request if that's of interest.

All the best,
Hannes

make the other field in particle types a parametric type

At the moment you can add an "other" field to all particle types, this will store any extra information you might want from the simulations. At the moment this can be of any type, but should change to be parametric so that is infers the type the first time it is called

tests

Need to add tests

Add convergence parameters to ABCSMC types

Add input parameter that modifies when ABC SMC is judged to have converged. Currently it is:
eps_t - eps_t-1 / eps_t-1 < 0.05, change so that 0.05 can be modified

$$\epsilon$$

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.