Abstract
We present BSTModelKit.jl, an open-source Julia package for constructing, solving, and analyzing Biochemical Systems Theory (BST) models of biochemical networks. The package implements S-system representations, a canonical power-law formalism for modeling metabolic and regulatory networks. BSTModelKit.jl provides a declarative model specification format, dynamic simulation via ordinary differential equation (ODE) integration, steady-state computation, and global sensitivity analysis using the Morris and Sobol methods. The package leverages the Julia scientific computing ecosystem, in particular the SciML suite of differential equation solvers, to provide efficient and flexible model analysis tools. We describe the mathematical formulation, software design, and demonstrate the package capabilities with illustrative examples.
Keywords: biochemical systems theory, S-system, power-law formalism, Julia, systems biology, metabolic modeling
1. Introduction
Mathematical modeling of biochemical networks is essential for understanding the complex dynamics of living systems. Among the many formalisms available, Biochemical Systems Theory (BST) occupies a distinctive position: it provides a canonical mathematical structure grounded in a power-law approximation of enzyme kinetics that is both analytically tractable and broadly applicable. BST was introduced by Savageau in a series of foundational papers [Savageau, 1969a,b, 1970] and later elaborated in a comprehensive monograph [Savageau, 1976]. The key insight underlying BST is that, in the vicinity of an operating point, the net rate of production or consumption of any biochemical species can be well-approximated by a product of power-law functions of the concentrations of the species in the system. This approximation is exact for mass-action kinetics and provides a remarkably good local representation of more complex rate laws, including Michaelis-Menten and Hill-type kinetics [Savageau, 1976, Voit, 2000].
The power-law formalism gives rise to two canonical representations: the Generalized Mass Action (GMA) system, which retains individual reaction terms, and the S-system, which aggregates all production and consumption terms for each species into single power-law expressions [Savageau et al., 1987]. The S-system representation has particularly attractive mathematical properties—its steady-state equations can be transformed into a system of linear algebraic equations in logarithmic coordinates, enabling efficient analytical and numerical solution [Savageau, 1976, Voit, 2000]—and Savageau and Voit established that BST and metabolic control theory yield equivalent descriptions of metabolic regulation near steady state [Savageau et al., 1987]. These properties have led to broad application across biological domains. In metabolic engineering, S-system models have been used to characterize and optimize pathways such as glycolysis in Saccharomyces cerevisiae [Cascante et al., 1995] and to develop systematic strategies for representing reversible metabolic pathways [Sorribas and Savageau, 1989]. Savageau and Alves applied ensemble methods based on S-system models to study systemic properties of metabolic networks [Alves and Savageau, 2000]. In gene regulation, BST has provided design principles for understanding the functional logic of elementary gene circuits [Savageau, 2001], and in signal transduction, Vera et al. demonstrated that S-system models can capture the essential dynamics of signaling cascades with fewer parameters than mechanistic alternatives [Vera et al., 2007]. Voit provides comprehensive reviews of both the theory and its applications [Voit, 2000, Torres and Voit, 2002, Voit, 2013a,b]. Despite this rich theoretical foundation and broad applicability, the software landscape for BST modeling has not kept pace. Early computational tools such as PLAS [Voit, 2000] and the specialized numerical methods of Irvine and Savageau [Irvine and Savageau, 1990] were pioneering but are tied to legacy computing environments. General-purpose systems biology platforms such as COPASI [Hoops et al., 2006] support a variety of kinetic formalisms but do not provide specialized support for the power-law structure of BST models, nor do they expose the stoichiometric and kinetic order matrices that are central to BST analysis. This gap motivates the development of BSTModelKit.jl, an open-source Julia [Bezanson et al., 2017] package that provides a complete workflow for BST modeling: declarative model specification, automated construction of the stoichiometric and kinetic order matrices, dynamic simulation, steady-state computation, and global sensitivity analysis. Julia is well-suited for this purpose, as its multiple dispatch paradigm enables clean abstractions, its just-in-time compilation delivers performance competitive with statically compiled languages, and its scientific computing ecosystem—particularly the SciML differential equation solvers [Rackauckas and Nie, 2017] and GlobalSensitivity.jl [Dixit and Rackauckas, 2022]—provides state-of-the-art numerical methods that BSTModelKit.jl leverages directly.
In this paper, we describe the mathematical foundations of the generalized S-system representation used by BSTModelKit.jl (Section 2), the software architecture and design (Section 3), illustrative examples demonstrating the package capabilities (Section 4), and conclude with a discussion of limitations and future directions (Section 5).
2. Mathematical Formulation
Consider a biochemical network with dynamic species and static (externally controlled) species. Let denote the concentration of species . In the S-system formalism, the time evolution of each dynamic species is governed by:
| (1) |
where and are non-negative rate constants, and are real-valued kinetic orders, and the products extend over all species, both dynamic and static. The first term represents the aggregate production rate of , while the second represents its aggregate consumption rate. The kinetic orders and capture the sensitivity of each flux to changes in species concentrations: positive values indicate activation, negative values indicate inhibition, and zero indicates no dependence.
BSTModelKit.jl uses a generalized matrix representation that decouples the stoichiometry from the kinetics. Rather than lumping all production and consumption into two aggregate terms per species, the system dynamics are expressed as:
| (2) |
where is the vector of dynamic species concentrations, is the vector of static species concentrations, is the stoichiometric matrix for reactions, is the reaction rate vector, and is an optional external input vector. Each reaction rate is computed using the power-law kinetic formalism:
| (3) |
where is the rate constant vector and is the kinetic order (exponent) matrix. This formulation generalizes the classical S-system (Eqn. (1)) by allowing arbitrary stoichiometric coefficients and providing an explicit separation between network structure () and kinetics (. The matrix form also makes the connection to stoichiometric network analysis transparent and facilitates algorithmic construction of models from structured input files.
At steady state, the time derivatives vanish, giving the algebraic condition:
| (4) |
BSTModelKit.jl computes steady-state solutions using the DynamicSS algorithm from Steady-StateDiffEq.jl, which integrates the ODE system forward in time until the derivatives are sufficiently small. This approach is robust for systems where direct algebraic solution of Eqn. (4) is intractable, as is typical for power-law systems with many interacting species.
To quantify the influence of model parameters on system behavior, BSTModelKit.jl provides wrappers for two global sensitivity analysis methods from GlobalSensitivity.jl [Dixit and Rackauckas, 2022]. The Morris method [Morris, 1991] computes elementary effects by perturbing one parameter at a time along randomized trajectories through the parameter space. For each parameter , the method estimates the mean and variance of the elementary effects; parameters with large have significant influence on the output, while large indicates nonlinear effects or interactions. The Morris method is computationally inexpensive and is well-suited for screening large parameter spaces to identify the most influential parameters. The Sobol method [Sobol’, 2001] provides a more detailed variance-based decomposition, partitioning the total output variance into contributions from individual parameters (first-order indices ) and parameter interactions (total-order indices ). While more computationally demanding, the Sobol method yields a complete picture of parameter importance and interaction structure.
3. Software Design
BSTModelKit.jl is organized around a central BSTModel type that encapsulates all data required to simulate and analyze a BST model, including the lists of dynamic and static species, the stoichiometric matrix , the kinetic order matrix , the rate constant vector , initial conditions, and static factor values. The model object is mutable, allowing users to adjust parameters, initial conditions, and matrix entries after construction without rebuilding the model from file.
The package exposes a small public API centered on seven functions; complete documentation including usage examples and function signatures is available at https://varnerlab.org/BSTModelKit.jl/dev/. The build function constructs a BSTModel from a file, supporting TOML, BST, and JLD2 formats. The evaluate function simulates the dynamic trajectory by integrating the ODE system (Eqn. (2)) over a user-specified time span, returning vectors of time points and state values. The steadystate function computes the steady-state solution of the system (Eqn. (4)). The savemodel and loadmodel functions serialize and deserialize model objects to JLD2 binary files, enabling reproducible workflows. Finally, the morris and sobol functions perform global sensitivity analysis given a user-defined scalar performance function and parameter bounds.
Models are specified in declarative text files that define the species, network connectivity, kinetic dependencies, and stoichiometric coefficients. The recommended format is TOML, which is human-readable and well-supported by Julia’s standard library. A TOML model file contains a [metadata] section with author and version information, and a [model] section that lists the dynamic and static species, the reaction connection records (specifying reactants and products for each reaction), the kinetic records (specifying which species appear in the rate law for each reaction), and optional stoichiometric coefficient overrides. An example TOML model file for a linear pathway with feedback inhibition is shown in Listing 1. The package also supports a custom BST text format that uses section markers (e.g., #dynamic::start/#dynamic::end) and line comments prefixed with //.
Listing 1:
TOML model file for a linear pathway with feedback inhibition.
Table 1 summarizes the public API.
Table 1:
Public API of BSTModelKit.jl. All functions operate on or produce BSTModel instances.
| Function | Returns | Description |
|---|---|---|
|
| ||
| build(path) | BSTModel | Construct model from TOML, BST, or JLD2 file |
| evaluate(model; ...) | (, ) | Simulate dynamic trajectory via ODE integration |
| steadystate(model; ...) | Compute steady-state concentrations | |
| morris(f, L, U; ...) | (, ) | Morris elementary-effects screening |
| sobol(f, L, U; ...) | SobolResult | Sobol variance-based sensitivity indices |
| savemodel(path, model) | — | Serialize model to JLD2 binary file |
| loadmodel(path) | BSTModel | Deserialize model from JLD2 binary file |
BSTModelKit.jl builds on several packages from the Julia ecosystem. Dynamic simulation and steady-state computation are handled by OrdinaryDiffEq.jl and SteadyStateDiffEq.jl [Rackauckas and Nie, 2017], which provide adaptive-step explicit and implicit ODE solvers. Global sensitivity analysis is performed through GlobalSensitivity.jl [Dixit and Rackauckas, 2022], with quasi-random sampling provided by QuasiMonteCarlo.jl. Model serialization uses JLD2.jl, a Julia-native binary format that preserves type information across save and load cycles.
4. Examples
We demonstrate the capabilities of BSTModelKit.jl with three examples of increasing complexity: dynamic simulation of a feedback-inhibited linear pathway, steady-state analysis of a branched pathway under varying enzyme levels, and global sensitivity analysis using the Morris and Sobol methods. All examples use the TOML model specification format and are available in the package repository.
4.1. Dynamic simulation of a feedback-inhibited pathway
We considered a five-species linear pathway in which a precursor was converted through intermediates and to a product , with a branch producing a byproduct from . Three static enzymes , , and catalyzed reactions , , and , respectively. Product exerted feedback inhibition on by appearing in its rate law with a negative kinetic order (), so that as accumulated, the flux from to was progressively suppressed. The model was specified in the TOML format shown in Listing 1, with static factor values , rate constants for reactions , and initial conditions near zero for all species. Rather than using a constant source rate, we drove the production of through a time-varying external input function that applied two square pulses of different amplitude: a high pulse () from to , followed by a return to baseline (), and then a medium pulse () from to . This input protocol exercised the feedback mechanism under two different loading conditions.
We simulated the dynamic trajectory using the evaluate function and observed that the feedback loop attenuated the response to both pulses (Figure 1). During the high pulse, rose rapidly, the intermediates and reached approximately unit concentration, and accumulated to its highest level (≈ 3.3), which in turn suppressed and limited further buildup of . During the medium pulse, the system responded proportionally—the and peaks were roughly half their previous values—demonstrating that the feedback mechanism operated across a range of input magnitudes. The byproduct , which had no degradation pathway, accumulated monotonically and ratcheted upward with each pulse, a behavior that would be important to consider in a metabolic engineering context.
Figure 1:
Dynamic simulation of a feedback-inhibited linear pathway driven by a pulsed input. Top panel: reaction network schematic showing a linear pathway from to with a branch to byproduct ; solid arrows denote mass flow catalyzed by enzymes , , and , while the dashed red line indicates feedback inhibition of by the product . Middle panel: the time-varying input function applied to the production of , consisting of a high pulse () and a medium pulse (, ) separated by returns to baseline . Bottom panel: simulated concentration trajectories for all five species over ; accumulation during each pulse suppresses via feedback, limiting upstream buildup, while the byproduct accumulates monotonically because it lacks a degradation pathway.
4.2. Steady-state analysis of a branched pathway
We next considered a branched pathway in which a source produced species , which was converted to , then to , at which point the pathway branched: was converted to via reaction (catalyzed by enzyme ) or to via reaction (catalyzed by enzyme ). Both and were degraded by first-order reactions and . Two feedback loops were present: inhibited and inhibited . This network topology is common in amino acid and nucleotide biosynthesis, where branch point enzymes control the distribution of flux between competing product pathways. The TOML specification for this network is shown in Listing 2; the branch at is expressed naturally as two separate connection records (r3::C –> D and r4::C –> E), and the feedback dependencies appear in the kinetics records for and . To illustrate how enzyme levels at the branch point controlled metabolic flux distribution, we swept the concentration of from 0.1 to 5.0 while holding fixed and computed the steady-state concentrations using the steadystate function.
Listing 2:
TOML model file for a branched pathway with dual feedback inhibition.
We found that increasing systematically redirected flux from the branch to the branch (Figure 2). At low , reaction was slow relative to , so most flux was directed toward ; the steady-state concentration of exceeded 1.8 while was below 0.2. As increased, the flux redistributed: the and curves crossed near , and at high the situation reversed, with reaching approximately 1.7 and dropping below 0.4. The branch point metabolite decreased monotonically with increasing , as it was consumed more rapidly. The upstream species and also adjusted through the feedback loops, decreasing as the changing and levels modulated and . This example demonstrated how BSTModelKit.jl could be used to explore the relationship between enzyme levels and steady-state flux distribution, a central concern in metabolic engineering.
Figure 2:
Steady-state analysis of a branched pathway under varying enzyme levels. Top panel: reaction network schematic showing a linear pathway from source to , where the pathway branches to (via , catalyzed by ) and (via , catalyzed by ); both and are degraded by first-order reactions and , respectively; dashed red lines indicate feedback inhibition of by and by . Bottom panel: steady-state concentrations of all five species as a function of the enzyme level (swept from 0.1 to 5.0, with held fixed), computed using the steadystate function. At low , flux is directed predominantly toward ; as increases, the and curves cross near and the flux redistributes to favor the branch. The upstream species and decrease at high due to modulation by the feedback loops.
4.3. Global sensitivity analysis
Finally, we performed a global sensitivity analysis to identify which parameters most influenced the time-integrated concentration of in the feedback-inhibited pathway from Section 4.1. The seven parameters varied were the six rate constants (with bounds at ±50% of their nominal values) and the feedback kinetic order (varied from −2 to 0). The scalar performance metric was , representing the cumulative exposure to the product. We applied both the Morris screening method (500 trajectories) and the Sobol variance decomposition (1000 quasi-random samples).
We found that the two methods yielded consistent conclusions, identifying the source and degradation rates as the dominant parameters (Figure 3). The Morris elementary effects identified (source rate) and (product degradation rate) as the most influential parameters, with (branch rate) a distant third; the upstream reaction rate constants and the feedback kinetic order had negligible influence. The Sobol analysis confirmed this ranking: had the largest first-order index () and total-order index (), followed by . The gap between and for both parameters indicated mild interactions, consistent with the multiplicative structure of the power-law kinetics. These results are intuitive: the integrated concentration was controlled primarily by how fast was produced (governed by the source feeding the pathway) and how fast it was removed (governed by ), while the intermediate conversion steps operated fast enough that their rate constants did not limit the overall accumulation.
Figure 3:
Global sensitivity analysis of the time-integrated concentration for the feedback-inhibited pathway shown in Figure 1. Seven parameters were varied: six rate constants (, , , , , ; bounds at ±50% of nominal) and the feedback kinetic order (varied from −2 to 0). Left panel: Morris screening (500 trajectories) showing mean absolute elementary effects with standard deviation error bars for each parameter; and dominate. Right panel: Sobol variance decomposition (1000 quasi-random samples) showing first-order () and total-order sensitivity indices with confidence intervals; and () account for the majority of output variance, while the gap between and indicates mild parameter interactions.
5. Discussion
We have presented BSTModelKit.jl, an open-source Julia package that provides a complete workflow for Biochemical Systems Theory modeling: declarative model specification in TOML or custom text formats, automated construction of the stoichiometric and kinetic order matrices, dynamic simulation via ODE integration, steady-state computation, and global sensitivity analysis using the Morris and Sobol methods. The package leverages the Julia scientific computing ecosystem—particularly OrdinaryDiffEq.jl, SteadyStateDiffEq.jl [Rackauckas and Nie, 2017], and GlobalSensitivity.jl [Dixit and Rackauckas, 2022]—to provide efficient and numerically robust solvers while maintaining a small, focused API. The three examples presented in Section 4 illustrate the range of analyses that can be performed: dynamic simulation of feedback-regulated pathways under time-varying inputs, systematic exploration of how enzyme levels at metabolic branch points control steady-state flux distribution, and identification of the most influential parameters through global sensitivity analysis.
It is worth noting what BSTModelKit.jl deliberately does not attempt. The package is not a general-purpose systems biology platform: it does not provide a graphical user interface, SBML import/export, or stochastic simulation. It does not perform parameter estimation, model selection, or Bayesian inference. These are mature capabilities available in tools such as COPASI [Hoops et al., 2006] and the broader Julia SciML ecosystem. Instead, BSTModelKit.jl occupies a focused niche—programmatic construction, simulation, and sensitivity analysis of S-system models—and is designed to be composed with other Julia packages rather than to replace them.
Several limitations of the current implementation suggest directions for future development. First, BSTModelKit.jl currently supports only the S-system representation; extending the package to support the Generalized Mass Action (GMA) formalism would enable modeling of systems where aggregation of production and consumption terms into single power-law expressions is not appropriate, such as networks with multiple independent production pathways for a single species. Second, the package does not currently provide local sensitivity analysis; integration with Julia’s automatic differentiation ecosystem (e.g., ForwardDiff.jl) would enable efficient computation of sensitivity coefficients and logarithmic gains, quantities that are central to the classical BST analysis framework [Savageau, 1976, Voit, 2000]. Third, parameter estimation from experimental data is not yet supported; combining the power-law model structure with gradient-based optimization or Bayesian inference methods available in the Julia ecosystem would make it possible to calibrate BST models directly from time-series measurements. Finally, integration with ModelingToolkit.jl could enable symbolic simplification, automatic Jacobian generation, and compilation of optimized model code, further improving performance for large-scale systems. We anticipate that these extensions, together with the growing Julia ecosystem for scientific computing, will make BSTModelKit.jl a useful tool for researchers applying BST to problems in systems biology and metabolic engineering.
Acknowledgments
This work was supported by the National Institutes of Health (NIH) National Heart, Lung, and Blood Institute (NHLBI) under grants R33 HL141787 (The Interaction of Basal Risk, Pharmacological Ovulation Induction, Pregnancy and Delivery on Hemostatic Balance; PIs I. Bernstein and T. Orfeo) and R01 HL71944 (The Pregnancy Phenotype and Predisposition to Preeclampsia; PI I. Bernstein).
Data and Code Availability
BSTModelKit.jl is freely available under the MIT license at https://github.com/varnerlab/BSTModelKit.jl. The package can be installed from the Julia REPL by entering package mode (] key) and running:
add BSTModelKit
Alternatively, the development version can be installed directly from GitHub:
Documentation is available at https://varnerlab.org/BSTModelKit.jl/dev/. All example code and model files used in this paper are included in the paper/code directory of the repository.
References
- Alves Rui and Savageau Michael A. Systemic properties of ensembles of metabolic networks: Application of graphical and statistical methods to simple unbranched pathways. Bioinformatics, 16(6):534–547, 2000. doi: 10.1093/bioinformatics/16.6.534. [DOI] [PubMed] [Google Scholar]
- Bezanson Jeff, Edelman Alan, Karpinski Stefan, and Shah Viral B. Julia: A fresh approach to numerical computing. SIAM Review, 59(1):65–98, 2017. doi: 10.1137/141000671. [DOI] [Google Scholar]
- Cascante Marta, Curto Rui, and Sorribas Albert. Comparative characterization of the fermentation pathway of Saccharomyces cerevisiae using biochemical systems theory and metabolic control analysis: Steady-state analysis. Mathematical Biosciences, 130(1):51–69, 1995. doi: 10.1016/0025-5564(94)00093-F. [DOI] [PubMed] [Google Scholar]
- Vaibhav Kumar Dixit and Christopher Rackauckas. GlobalSensitivity.jl: Performant and parallel global sensitivity analysis with Julia. Journal of Open Source Software, 7(76):4561, 2022. doi: 10.21105/joss.04561. [DOI] [Google Scholar]
- Hoops Stefan, Sahle Sven, Gauges Ralph, Lee Christine, Pahle Jürgen, Simus Natalia, Singhal Mudita, Xu Liang, Mendes Pedro, and Kummer Ursula. COPASI—a COmplex PAthway SImulator. Bioinformatics, 22(24):3067–3074, 2006. doi: 10.1093/bioinformatics/btl485. [DOI] [PubMed] [Google Scholar]
- Irvine Douglas H. and Savageau Michael A. Efficient solution of nonlinear ordinary differential equations expressed in S-system canonical form. SIAM Journal on Numerical Analysis, 27(3): 704–735, 1990. doi: 10.1137/0727042. [DOI] [Google Scholar]
- Morris Max D. Factorial sampling plans for preliminary computational experiments. Technometrics, 33(2):161–174, 1991. doi: 10.1080/00401706.1991.10484804. [DOI] [Google Scholar]
- Rackauckas Christopher and Nie Qing. DifferentialEquations.jl – a performant and feature-rich ecosystem for solving differential equations in Julia. Journal of Open Research Software, 5(1):15, 2017. doi: 10.5334/jors.151. [DOI] [Google Scholar]
- Savageau Michael A. Biochemical systems analysis: I. Some mathematical properties of the rate law for the component enzymatic reactions. Journal of Theoretical Biology, 25(3):365–369, 1969a. doi: 10.1016/S0022-5193(69)80026-3. [DOI] [PubMed] [Google Scholar]
- Savageau Michael A. Biochemical systems analysis: II. The steady-state solutions for an -pool system using a power-law approximation. Journal of Theoretical Biology, 25(3):370–379, 1969b. doi: 10.1016/S0022-5193(69)80027-5. [DOI] [PubMed] [Google Scholar]
- Savageau Michael A. Biochemical systems analysis: III. Dynamic solutions using a power-law approximation. Journal of Theoretical Biology, 26(2):215–226, 1970. doi: 10.1016/S0022-5193(70)80013-3. [DOI] [PubMed] [Google Scholar]
- Savageau Michael A. Biochemical Systems Analysis: A Study of Function and Design in Molecular Biology. Addison-Wesley, Reading, MA, 1976. [Google Scholar]
- Savageau Michael A. Design principles for elementary gene circuits: Elements, methods, and examples. Chaos, 11(1):142–159, 2001. doi: 10.1063/1.1349892. [DOI] [PubMed] [Google Scholar]
- Savageau Michael A., Voit Eberhard O., and Irvine Douglas H. Biochemical systems theory and metabolic control theory: 1. Fundamental similarities and differences. Mathematical Biosciences, 86(2):127–145, 1987. doi: 10.1016/0025-5564(87)90007-1. [DOI] [Google Scholar]
- Ilya M. Sobol’. Global sensitivity indices for nonlinear mathematical models and their Monte Carlo estimates. Mathematics and Computers in Simulation, 55(1–3):271–280, 2001. doi: 10.1016/S0378-4754(00)00270-6. [DOI] [Google Scholar]
- Sorribas Albert and Savageau Michael A. Strategies for representing metabolic pathways within biochemical systems theory: Reversible pathways. Mathematical Biosciences, 94(2):239–269, 1989. doi: 10.1016/0025-5564(89)90066-7. [DOI] [PubMed] [Google Scholar]
- Torres Néstor V. and Voit Eberhard O. Pathway Analysis and Optimization in Metabolic Engineering. Cambridge University Press, Cambridge, 2002. doi: 10.1017/CBO9780511546839. [DOI] [Google Scholar]
- Vera Julio, Eva Balsa-Canto Peter Wellstead, Banga Julio R., and Wolkenhauer Olaf. Power-law models of signal transduction pathways. Cellular Signalling, 19(7):1531–1541, 2007. doi: 10.1016/j.cellsig.2007.01.029. [DOI] [PubMed] [Google Scholar]
- Voit Eberhard O. Computational Analysis of Biochemical Systems: A Practical Guide for Biochemists and Molecular Biologists. Cambridge University Press, Cambridge, 2000. doi: 10.1017/CBO9780511806131. [DOI] [Google Scholar]
- Voit Eberhard O. A First Course in Systems Biology. Garland Science, New York, 1st edition, 2013a. [Google Scholar]
- Voit Eberhard O. Biochemical systems theory: A review. ISRN Biomathematics, 2013:897658, 2013b. doi: 10.1155/2013/897658. [DOI] [Google Scholar]
Associated Data
This section collects any data citations, data availability statements, or supplementary materials included in this article.
Data Availability Statement
BSTModelKit.jl is freely available under the MIT license at https://github.com/varnerlab/BSTModelKit.jl. The package can be installed from the Julia REPL by entering package mode (] key) and running:
add BSTModelKit
Alternatively, the development version can be installed directly from GitHub:
Documentation is available at https://varnerlab.org/BSTModelKit.jl/dev/. All example code and model files used in this paper are included in the paper/code directory of the repository.





