Published Mar 11, 2015 – Apr 27, 2026 | Version MMv0r3p1_c1
Software Open

Prototype Evolvix: A Domain-Specific Language and Compiler to Simplify Accurate Mass-Action Modeling in Biology

  • 1. Laboratory of Genetics
  • 2. Wisconsin Institute for Discovery
  • 3. EDMO icon University of Wisconsin-Madison

Description

Abstract

Prototype Evolvix is a domain-specific modeling language designed to simplify accurate modeling of biological systems where Parts randomly meet for Actions triggered at defined relative Rates. The compiler simulates systems where Parts randomly meet to trigger Actions at defined rates; the relative rates across competing Actions determine which Action fires next in stochastic simulations (Sorting Direct Method), while their absolute values set the time units that both stochastic and deterministic simulations share.

The declarative syntax of Prototype Evolvix allows researchers to describe complex biological models in terms of Parts and Actions, without having to manually write code for a stochastic simulation algorithm (SSA) or for an ordinary differential equation (ODE) solver. Only a declarative file is needed, the Prototype Evolvix Quest file. From the model description in that single file, the compiler produces an internal representation that is translated, as requested, either without loss into a corresponding stochastic simulation algorithm (SSA) model or into the closest approximate deterministic ordinary differential equation (ODE) model. The choice is made with a simple switch in the Simulate command in that Quest file. To help researchers focus on the most important data, Prototype Evolvix offers a TimeSeries syntax for specifying which Part amounts ought to be reported when running a particular Quest file. If R is installed, the compiler then produces PDFs of standard TimeSeries plots automatically after each run to visualize each requested TimeSeries. The numerical amounts of Parts observed at relevant times requested are stored in the local Results/ folder in either case.

What this release contains

This is the 2015 Prototype Evolvix command-line compiler, version MMv0r3p1_c1 (equivalent to the original release label Evolvix_CL_0.3.1_RC1, built 2015-03-11). The archive provides pre-compiled x86_64 binaries for five platforms tested in 2015:

  • Mac OS X, Command Line Interface (for x64 processors)
  • Windows 7, Command Line Interface (for x64 processors)
  • Linux Ubuntu 14, Command Line Interface (for x64 processors)
  • Linux Fedora 21, Command Line Interface (for x64 processors)
  • Linux Red Hat Enterprise Linux RHEL 7, Command Line Interface (x64)

The 2026 file installation-guide.txt contains essential instructions and work-arounds for how to run Prototype Evolvix on newer versions of macOS (including modern Apple Silicon Macs), Windows, and Linux, as well as installing R for plotting automation.

The 2015 HTML documentation folder for any web browser offers an introduction to Prototype Evolvix syntax and how to use it. A complementary PDF manual (slightly older, MMv0r3p0) offers mostly the same in a different format.

A 2018 one-page overview poster offers a whirl-wind tour that covers background questions like why ecological and evolutionary forecasting matters, how it works, what the computational biology challenges are, how Evolvix can help in principle, and how Evolvix models are built using a worked example. It then illustrates the fundamentally different outcomes produced by stochastic simulations (the SSA respects the indivisible nature of individuals, forcing the timing of Actions to be flexible) vs. deterministic simulations (ODEs impose rigid external timing regimes and rather sacrifice the indivisibility of individuals in order to be computationally efficient). Both have their advantages and are essential in their respective optimal cases of use, which complement each other: ODEs are best for huge populations where random effects become negligible, while the SSA is essential when the existence of a rare individual can make all the difference. On this poster its reference [1] also offers one of the independent implementation test results that were used to ensure that the mathematically relevant parts of this implementation are reliable.

The underpinning conceptual model is defined by Continuous Time Markov Chains (CTMCs), which have been studied for a long time in mathematics and many applied fields. For a brief introduction of how to analyze CTMCs using various SSA and ODE approximations, as well as for definitions of the basic terminology of Parts, Actions, and Rates in Prototype Evolvix, see Ehlert & Loewe (2014). This study also introduces a new type of approximate SSA (Lazy Updating) that is not included in this variant of Prototype Evolvix.

License: Creative Commons Attribution 4.0 International (CC BY 4.0), as recorded in the deposit metadata.

Provenance and integrity

This deposit's binaries trace to a specific source-tree commit and are fingerprinted with SHA256 checksums for byte-level verifiability.

Source-tree freezing commit. The binaries were compiled from the "Freezing RC1" commit of the historical Evolvix development repository:

6e355803bc6fff5b125ef4bf1be1f8e980f364be
"dev-0.3.1 : Freezing RC1", Seth A Keel, <skeel@discovery.wisc.edu>, 2015-03-09 00:12 (local time at UW-Madison Central Time).

The repository is held privately by Loewe at the time of this deposit; the cryptographic hash itself anchors source-tree provenance independently of the repository's publication status.

Build chronology. Cross-checked against the Evolvix release log: the binaries were compiled on 2015-03-09 (a March 9 prerelease snapshot contains binaries byte-identical to the deposited ones). The 2015-03-11 packaging date reflects the bundling step that added the rendered Sphinx HTML user documentation tree under html/, whereas the compiler binaries themselves are dated 2015-03-09.

SHA256 checksums of the deposited files:

SHA256 File
5345b7a8eaa8d1cf5d3fd6920fd917dc7defd373e9814ff0803c4e933b3f7fa1 Evolvix_CL_0.3.1_RC1_x64_Fedora21.tar.gz
d3ad3a9f5123138d7fca3c63e8b1516fdb904bfb9940d386e95c1bfdc8dfe2b1 Evolvix_CL_0.3.1_RC1_x64_OS_X_10.tar.gz
1c8bd54b6d7776867931f79493b3bcd20e487e8fa49b6494efba7e084cbc5ddc Evolvix_CL_0.3.1_RC1_x64_RHEL7.tar.gz
48308a26fb6578af1d5ffffeb7d732e5c1158bfb54b733019b90480bc6a5d496 Evolvix_CL_0.3.1_RC1_x64_Ubuntu14.tar.gz
96678128a92b6745cbcfae267e8c255ae65917094f5f2d848aa4051bf0f790d0 Evolvix_CL_0.3.1_RC1_x64_Windows7.zip
b8d65792d49e50d59149a45cc70036146f461c6a06f60433e2344b0a3059444b evolvix-cl-user-docs-browser-mmv0r3p1_rc1_2015-html.zip
ec11c3d5d73757bc9cb0c48f14697ffa642682e010f64856c9790b18cdbadf58 evolvix-prototype-intro-manual-mmv0r3p0beta_2014m10d01-57page.pdf
815195da1cb995f4912b7dbf0ddc371842408428ccc8bbf32a606fbcdb978f30 evx-1page-forecast-manual-fox-rabbit-pop-crash-iv_llol_qqv10r0p2_2018m07d19-letter.pdf
83a9ed21aee56301ee4058ddb44457ca79897b079ded4392eb065f5960dba295 installation-guide.txt

Documentation bundling. The Sphinx-rendered HTML user documentation tree (124 user-facing files) bundled under html/ in each of the five platform packages is byte-identical to the content of the standalone documentation archive evolvix-cl-user-docs-browser-mmv0r3p1_rc1_2015-html.zip. (The additional Sphinx-build fingerprint html/.buildinfo is inconsequential.)

Per-platform compiled binaries. Each platform archive contains three platform-specific compiled binaries (Evolvix, Workers/Worker_DAE_IDAS_Dense, Workers/Worker_SSA_SDM) with distinct SHA256 fingerprints per platform:

Evolvix (main CLI driver):

SHA256 Platform File name
7555fe60acf1745f5a8df00bbf23fbae4505606081540745e4219d70c71f60da macOS 10 Evolvix
621e68e4ef35ed32b524def2d15ca4e52b88976884c2296d4f979cce6cd744c1 Ubuntu 14 Evolvix
59e985cd126a6c0f8482559cc1009eec2e7b5f3f6ac14f01c97b9ccb177bbec2 Fedora 21 Evolvix
702968bd435020bc4f91a46bf729eec104f110fad1241271b0db426eef30a85c RHEL 7 Evolvix
39d78206612684a911100ef145bbfc5e249a9252200ca43415160851ab48b96c Windows 7 Evolvix.exe

Workers/Worker_DAE_IDAS_Dense (deterministic ODE simulator, SUNDIALS IDAS):

SHA256 Platform File path
afd017c0a1410ad47cbda2d7b9adab686810c9772929baa24122451806cd30e5 macOS 10 Workers/Worker_DAE_IDAS_Dense
13bd220195f15b608ba2fbbd25ee2b5e70f7b9d90ffd830a7f43682ecadc56b1 Ubuntu 14 Workers/Worker_DAE_IDAS_Dense
eb93062173a15d18423f023689a2ff15d27041cc0b12873b86bffb5b78804143 Fedora 21 Workers/Worker_DAE_IDAS_Dense
e572e8bc65f792f474107d66e8951fb7e329e07ff98dcc6a5e9bd592cb7a6e1a RHEL 7 Workers/Worker_DAE_IDAS_Dense
54932d4a658acbb54e5dc7ee0beb4e88291be84ce7d84c654b07f753c58d0199 Windows 7 Workers/Worker_DAE_IDAS_Dense.exe

Workers/Worker_SSA_SDM (stochastic Sorting Direct Method simulator):

SHA256 Platform File path
6e3be6c1245403e05489003ca6265ef2a9f598a1c8e7310a900c7a40861bcc55 macOS 10 Workers/Worker_SSA_SDM
aa3b726745874c14974e10ae8d8492ea002b24e36f5a57ba3c3a6ed6dbfa0784 Ubuntu 14 Workers/Worker_SSA_SDM
fa26cdf4057aa72cf71fa4964efc528b30ad48529bde7e29bb6f3020c1a00de8 Fedora 21 Workers/Worker_SSA_SDM
cf550255597d089d63d77da94cba6566620191d994f977a047a4cd2df97646fa RHEL 7 Workers/Worker_SSA_SDM
4c3ea645612658a988cd1f63d5e6f5720252ad9a30b6984f7b97ca5d9a79c1ce Windows 7 Workers/Worker_SSA_SDM.exe

Platform-shared content inside each platform archive (byte-identical across all 5 platforms):

SHA256 File (relative to Evolvix_0.3.1_RC1_x64_<platform>/)
63a82745e55b4d619e4f7a45fe54003a9f787e61a86095f9e4e9f8373b148d3f Default_Quest.Evolvix.txt
3b07cb6789f900884d6b0a482c6bf1bd484a43a487bb245f875977868cfda41c Quest.Plot.Configuration.R
528614f71f8be0569aac1be9a08117f228ccfb25f4231dde52d913520eb8ee19 Scripts/Plot_Time_Series_Data.R
d43c2e12ef570b8bd106eab1cdf793a92198ea22b6933bd0e7c2ac0502659977 Scripts/Run_and_Plot.bat
2b82c57d305529bdd88dbca7cc22bcc49168f7d4e1a767234993ce7e23cd781d Scripts/Run_and_Plot.sh

How to compute checksums:

shasum -a 256 <archive>               # macOS, Linux
certutil -hashfile <archive> SHA256   # Windows

Implementation

This Prototype Evolvix Compiler cobbles together several languages and supporting libraries for building the integrated simulation work environment that Loewe extensively used for efficient modeling in his lab.

This prototype integrates several technology layers — a parser, an intermediate representation, a runtime math evaluator, and two simulation engines — implemented by the following stack: C++ and C with ANTLR 3.4 (configured to produce C/C++ code for runtime parsing) produce an Evolvix Internal Representation implemented in ProtocolBuffers to give each Worker (simulation engine) the data required for running the requested forward-in-time simulation. To do so, the respective propensities and probabilities for reacting are computed with the help of muparser 2.2.3, which calculates at runtime the rates defined in the Evolvix model (as parsed by ANTLR). The stochastic simulator implements the Sorting Direct Method as originally defined by McCollum et al. (2006, Ref. R0); Prototype Evolvix's implementation is the one used by Ehlert & Loewe (2014) (Ref. R1), which is also the source of the Parts / Actions / Rates terminology and framework definitions used throughout this deposit. The deterministic simulator uses the SUNDIALS IDAS 1.1.0 solver, which was chosen for its solver-reliability reputation in the 2013-2015 evaluation period and for its natural support of algebraic conservation laws (in anticipation of allowing Evolvix models to include such constraints). Once the results are produced and recorded in a TimeSeries file, the Evolvix make-file copies findings to a time-stamped folder for documenting all input and output reliably and for producing (via R) a PDF that plots an overview of results for efficient turnaround times.

In many exploratory modeling contexts, iterative manual editing of parameters is sufficient for exploring enough relevant parameter spaces in order to construct sensible first mockup models. Yet, more systematic explorations likely require more systematic parameter grid searches. That is where this current Prototype hits its limits. Programming experts will see how the purely declarative syntax of Evolvix becomes a prison in these cases: these would be most elegantly solved by offering an Evolvix syntax for allowing the construction of respective loops and other features for organizing modeling code. Such solutions are envisioned for future general-purpose programming versions of Evolvix. For now, the best solution (as implemented for the work presented in Ref. R1 by Ehlert & Loewe, 2014) was to write Python scripts that produce the Quest files then used by Prototype Evolvix to run the simulations, before the Python script takes over again and extracts the relevant amounts observed for results plotting from the raw data files. That this setup easily leads to fragile code does not need to be stressed. Hunting bugs across the several languages involved that somehow can touch the mathematical reliability of results in such an elaborate setup convinced Loewe that over the long-term adding general-purpose programming capabilities to Evolvix would become a matter of survival for the language.

Applications

The Prototype Evolvix Compiler released here was tested and used extensively in the EvoSysBio Group (the Loewe lab) at the Wisconsin Institute for Discovery at UW-Madison. Loewe, his collaborators and students used it for building a broad range of models in research, teaching, and outreach from 2013 through to 2018 (see Refs. W2, W9–W10 below).

It became clear after completing Ref. R1 that all such modeling work requires extensive parameter sensitivity analyses for producing publishable results. Much of this work can be easily automated by providing corresponding compiler-level features for iterating over grids of defined parameter combinations.

However, it was also clear that such work — if it were to truly lead to long-term stable solutions — would eventually require some general-purpose programming, naming, and function-defining features.

The quest for whether such features were indeed implementable in general, and by Loewe and his lab in particular, led Loewe to the discovery of wide interdisciplinary diversity-encouraging ("wid-e") research as a new type of interdisciplinary research (to be described in more detail elsewhere), leading to new types of open research collaborations. To cut a long story short, Ref. R2 reports that there is indeed hope for solving the respective hard naming problems, albeit only if certain well-defined methodologies can be adopted and sufficiently broad and general support for such common-interest work can be found.

Thus, Loewe's Evolvix research shifted from improving lesser features of the Prototype Evolvix Compiler (made available here "as is") to the question of whether it is possible to envision such a sufficiently general-purpose computer language for biology that is capable of handling the staggering biouncertainty regularly found in biodata science.

The challenge is not the existence of "unknowns" in biology; most unknowns are often very easy to pin down to a min and a max only 4–6 orders of magnitude apart using only what is generally known to biologists (even if "ignorance" is claimed). Conversely, even if biologists claim to "know", almost all respective measurements come with measurement errors, resulting again in min-max scenarios if not in well-defined distributions from which to sample, e.g. due to variance in a population.

Here is not the space to explore the many types of biouncertainty that can be defined if one attempts to define them with unambiguous accuracy and precision. Such work is pivotal for using simulations to estimate key parameters regularly encountered in evolutionary systems biology (Ref. R3) at large scales. It is also essential for reliably estimating parameters for systems biology models from relatively well-defined experimental data that still contains large amounts of biouncertainty (see example in Ref. R4).

Subsequently the Coronavirus pandemic showed in 2020 how important it is to have reliable ways for handling biouncertainty estimates that affect models of existential threats and to have clear ways of communicating relevant biouncertainty results.

At the time, Loewe had a rather poor understanding of the systemic importance of ill-quantified biouncertainty. Else he would have released this compiler much sooner in a much better organized form. All further discussion of related topics is referred to https://balospe.com. This includes Loewe's Coronavirus pandemic modeling in his 2020 PandemicSociety101 model that combines diverse insights from his lab's various modeling adventures to define a SGIR model (Susceptible-Gap-of-germs-Infected-Removed model), as well as other models of existential threats.

Mathematical Reliability, the "Prototype" qualifier and Long-Term Stability

In implementing this compiler the EvoSysBio Group and Loewe took great care to test that the underpinning parts of the code that affect the mathematical reliability of simulations all work together to produce the most precise mapping to reality that could be obtained.

This required a range of decisions from conceptual questions at the design stage (e.g. the decision to only use absolute amounts of Parts and never concentrations) to countless low-level implementation test decisions, as well as high-level comparative tests designed to catch high-level discrepancies.

For example, given sufficiently large population sizes, the SSA and ODE timeseries obtained should produce near-identical results, even though they are generated by completely different computational solvers. This can be tested by running both modes on the worked predator-prey example below.

Reproducibility Test. To assess reliability in a worked example, on the 2018 overview poster (Fig. 7d) a the predator-prey model is used from Otto & Day (2007), A biologist's guide to mathematical modeling in ecology and evolution (Princeton University Press): the ODE is at p. 76, Eq. 3.18; the parameter values are recomputed from the max and min reported on p. 141, Fig. 4.17, with 1 TimeUnit set equal to 1 Month. The Quest file used to drive the Prototype Evolvix simulation is embedded in the 2018 poster PDF deposited alongside the binaries. The test demonstrates agreement between the ODE trajectories of Evolvix and of the published figure (as well as it can be assessed visually). The law of large numbers allows for additional tests: at sufficiently large population sizes quantitative test suites can be constructed to test whether the SSA implementation and the ODE solver used here converge on predicting the same amounts. Such tests were run repeatedly over the years but are not documented here; such a test suite may be produced for a separate forthcoming Zenodo deposit.

The outcomes of those tests — the Otto & Day demo plus the unrecorded test runs over the years — substantially strengthened Loewe's confidence in the results produced. Hence, to the best of Loewe's ability to tell, the reliability of the simulators offered here far exceeds what one might expect for a product carrying a "Prototype" label.

Why then still call it a "Prototype"?

"Prototype" refers to the language syntax and hence its compiler: some syntactic features were never sufficiently cleaned up before it became clear that a more profound re-architecting of the whole Evolvix language would be required in order to enable the long-term stable extensible life-friendly syntax that beginners along with all biologists intuitively expect from a humane computer language.

Surprisingly, Evolvix research showed that Loewe as the creator and Core Language Architect of Evolvix is at the same time the greatest supporter and the worst enemy of Evolvix.

Those who have implemented computer languages know that it always takes a certain amount of work to get a language compiler to work. That amount of coding work can be surprisingly similar for well-designed languages and poorly designed languages; it rather depends on the number of rules to be implemented. Yet, language designers also know that a language is not only defined by the features it does offer, but also by the features it does not offer. One may naively claim this ratio to be about 50:50, but in Loewe's experience it's more like 1:99 or even more extreme. This implies that for every 1 best idea included in a computer language, there are 99 or more "good ideas" that must be rejected in search for that idea that best serves the common good by offering a reliable abstraction of how things work in the real world. Hence, good computer languages cannot be produced by going for "low-hanging fruit". See the various references below for more related insights into how participatory design and simultaneous real-world modeling work by the compiler architect are essential for informing the abstract work required for high-reliability languages. Refs. R2–R4, W4–W5 might be summarized by saying that a Core Language Architect needs to have "feet in the mud of real-world data" and a "head in the clouds of the crystal clear mathematical abstractions", as required for building reliable models of real-world biology under biouncertainty. Rather surprisingly, it turns out that the "ideal platonic shape" of an apple with a worm is an apple with a worm. All else would be oversimplifying or overcomplicating it.

Judging the Prototype Evolvix Compiler by those harsh long-term backwards-compatibility standards required to define a genuinely stable, extensible, humane language for beginners, the release offered here has some real strength at its core (such as the Part Action Rate concepts used to model what mass-action systems do). However, it also has major weaknesses when it comes to the naming support required for reliable biological modeling (and a number of low-level quirks that require work-arounds as specified in the manuals). As Loewe's work first focussed on the general question as to whether it is possible in principle to design a language like the Evolvix he envisions, he had to postpone some of the nitty-gritty implementation work on details required for producing a more usable real-world product.

Loewe's core discovery is the conceptual result that robustly shows: yes, it is possible in principle to define such a long-term stable extensible humane language. Loewe found a rather surprising way to make this work — albeit only if a reliable source of common goods funding can be mobilized. How to motivate such a mobilization is part of the story to be told at the https://balospe.com site.

Known limitations

This deposit is the 2015 Prototype. In addition to the general prototype warnings above, users should be aware of the following specific limitations before adopting it for new work.

The TimeSeries syntax is brittle. The parser requires the TimeSeries request's fields to appear in the exact sequence documented in the user manual (see p. 40 of the bundled PDF manual; section "trouble-shooting").

Other quirks are documented in the bundled user documentation:

  • html/troubleshooting.html
  • html/release-notes/known-issues.html

The "Prototype" label for Evolvix implies that any or all syntax may change without further notice. While conceptual work towards long-term stability has substantially progressed, this was only possible at the cost of falling behind with the practical implementation of the respective changes. There are good mechanistic reasons that cause this dilemma, which are to be documented elsewhere.

Funding and institutional context

The Prototype Evolvix Compiler was developed at the Wisconsin Institute for Discovery (WID) and the Laboratory of Genetics at the University of Wisconsin–Madison under US National Science Foundation CAREER Award 1149123 to Laurence Loewe.

This work would not have been possible without the input of countless researchers Loewe met over the years who shaped his views on what can and what cannot be done by constructing high-quality models. Please refer to references cited in links below for a sense of the size and diversity of the network of researchers that informed the development of the Prototype Evolvix Compiler and the language architecture it implements.

One of the remarkable high-level results of Evolvix research and the quest for how to fund such common goods work is the following. Repeatedly Loewe was commended for taking on the task of making simulation code easier to understand for outsiders. Interest in a language like Evolvix that can do this was remarkably widespread. However, when it came to actually supporting such work a remarkable roadblock was encountered that has so far been as invisible as it has been powerful.

It might be described in terms of the tragedy of the commons.

The roadblock should be read as a structural feature of efficiency-driven funding, not as a complaint about any individual funder. Efficient funding programmes are by definition optimized for known, well-defined cases of use, with metrics that reward predictable delivery against pre-stated goals. A long-term stable extensible humane language for biology, however, can succeed only by exploring unknown cases of use that no efficient programme would prioritize — and indeed should not prioritize, by its own efficiency criteria. The mismatch is structural, not ill-willed; the funder exchange below illustrates the structural pattern, not the judgment of any individual funder.

Clearly, a great many people would benefit from a language like Evolvix that could help solve a great many problems that have been plaguing humanity. Solutions could be found by democratizing modeling expertise in order to lift some crucial decision-making from the obscurity of expert math decision-making to a more public platform of discussing the cons and pros of various potential solutions from all sides, supported by corresponding models to explore all relevant counterfactuals.

Yet, as widespread as the agreement was that "this would be great", as reserved was the enthusiasm to actually support such work when it came to practical decisions of funding. The argument always returned to some variant of the following.

Interested Funder: "Great ideas you have there! Could you use them to solve this particular special interest problem X that we have?"

L: "Yes, and while I do that, can I also address this general problem Y that the rest of the world has?"

Critical Funder: "I don't mind, but doesn't that make you slower and less productive in solving special problem X that I care about more?"

L: "Yes, a little bit, but it will be worth it in many ways, because what we create can then also serve everyone else!"

Special-interest funder: "But that means that any of many other funders could also support your work! I know someone in area Z, surely they are worth asking ..."

And so biologists point to computer scientists, and computer scientists point to biologists, while great ideas die death by a thousand needles. The circle is not as short as that in real life, but it eventually became clear that it is systemically next to impossible to break out of special-interest prisons by only talking to others who are also obliged to serve special interests (even if those are different ones). This motivated Loewe's decision to take a road less traveled (or maybe not traveled at all) in order to pioneer a new funding model for supporting the long-term evolution of a language like Evolvix for the general common good purposes, serving all of biology.

Here is not the space to explain the Odyssey that followed (2020–2026), except to mention that Loewe thinks he accidentally found — after the conventional funding avenues didn't fit the structural pattern — a compelling framework for supporting such general-interest work. The details are to be reported at https://balospe.com and build on experiences made with the Evolvix research snapshot presented here.

Citations for references and relevant website snapshots

This archive contains the terminal 2015 UW-Madison release of the Prototype Evolvix Compiler. Cite this archive as Zenodo recommends or in this slightly extended form as:

Loewe, L., & EvoSysBio Group at UW-Madison (2015–2026). Prototype Evolvix: A Domain-Specific Language and Compiler to Simplify Accurate Mass-Action Modeling in Biology — Simulating Systems where Parts randomly meet to trigger Actions at defined Rates. (Version MMv0r3p1_c1) [Software]. Zenodo. https://doi.org/10.5281/zenodo.19679456

or in this brief form as:

Loewe et al. (2015) "Prototype Evolvix" (MMv0r3p1_c1) https://doi.org/10.5281/zenodo.19679456

For the mathematical model and the stochastic-simulation algorithm (Sorting Direct Method, Ref. R0) used by the Prototype Evolvix Compiler, cite Ref. R1.

For the broader Evolvix vision — participatory compiler design to make Evolvix a general-purpose computer language designed by biologists for biologists — cite Ref. R2.

The research in Refs. R3–R5 led Loewe to envision this unusual research programme.

Refs. W1–W5 offer various overviews of Evolvix research.

Refs. W6–W11 offer snapshots of past institutional contexts that informed Evolvix research. Evolvix research turned out to be part of a much larger context that emerged unexpectedly between 2020 and 2026; details are under development at https://balospe.com/.

Core Evolvix Research studies

R0. Original publication of the Sorting Direct Method (the stochastic-simulation algorithm used by Prototype Evolvix):
McCollum, J. M., Peterson, G. D., Cox, C. D., Simpson, M. L., and Samatova, N. F. (2006). "The sorting direct method for stochastic simulation of biochemical systems with varying reaction execution behavior." Computational Biology and Chemistry 30: 39–49.

R1. Study defining and extending the mathematical modeling underpinning Evolvix; also the implementation reference for the SDM as used in Prototype Evolvix, and the source of the Parts / Actions / Rates terminology:
Ehlert, K. & Loewe, L. (2014). "Lazy Updating of hubs can enable more realistic models by speeding up stochastic simulations." Journal of Chemical Physics 141(20): 204109. Open Access at: https://doi.org/10.1063/1.4901114

R2. Study explaining the Evolvix methodology and social contract for finding long-term stable naming solutions:
Loewe, L., et al. (2017). "Evolvix BEST Names for semantic reproducibility across code2brain interfaces."
Annals of the New York Academy of Sciences 1387(1):124-144. With 74 pages of supplementary material. Open Access at: https://doi.org/10.1111/nyas.13192

R3. Review of the deep biological motivation behind simplifying accurate modeling with Evolvix:
Loewe, L. (2016). "Systems in Evolutionary Systems Biology". Encyclopedia of Evolutionary Biology Volume 4, pages 297-318. Richard M. Kliman (Chief), Hiroshi Akashi (Section), Oxford, Academic Press (Elsevier).
https://web.archive.org/web/20221017033305/https://evolutionarysystemsbiology.org/ref/Loewe-2016F-frame-EvoSysBio-Def.pdf

R4. Long argument from biodata science for why and how Evolvix must natively support accurate computing under extreme biouncertainty:
Katherine S. Scheuer, Bret Hanlon, Jerdon W. Dresel, Erik D. Nolan, John C. Davis, & Laurence Loewe (2017).
"FlyClockbase: Importance of Biological Model Curation for Analyzing Variability in the Circadian Clock of Drosophila melanogaster by Integrating Time Series from 25 Years of Research." (Under revision; to be transformed into a series of 16 reports on a panoramic view of biodata science building on a language like the Evolvix envisioned by Loewe.)
BioRxiv.org — https://www.biorxiv.org/content/10.1101/099192

R5. Other Evolvix Research papers are scattered throughout Laurence Loewe's publications:
https://scholar.google.com/citations?user=lBchRzQAAAAJ

Website snapshots relevant for Prototype Evolvix and its growth into the full Evolvix vision

W1. Prototype Evolvix: initial website of first releases (source of the binaries archived here):
https://web.archive.org/web/20191219145023/http://evolvix.org/download/download-evolvix-release-0-3-1-rc1

W2. Initial Evolvix website with some attempts at explaining the broader vision:
https://web.archive.org/web/20191219145023/http://evolvix.org/

W3. EvoSysBio: the website explaining mechanistic evolutionary systems biology, which has been motivating Evolvix research:
https://web.archive.org/web/20250410234240/https://evolutionarysystemsbiology.org/

W4. Evolvix vision talk 2013: best broader overview so far explaining EvoSysBio motivation and resulting requirements:
https://www.birs.ca/events/2013/5-day-workshops/13w5080/videos/watch/201305280834-Loewe.html

W5. Evolvix vision talk 2017: overview explaining importance of evolving some shared standards for Evolvix computing:
https://research.cs.wisc.edu/htcondor/HTCondorWeek2017/presentations/FriLoewe_Evolvix.pdf

Overviews of Evolvix research by Loewe as core language architect through the lens of past institutional contexts

W6. Snapshot of Loewe's research interests at his former department faculty page, Laboratory of Genetics, UW-Madison, 2019:
https://web.archive.org/web/20191210094504/https://genetics.wisc.edu/staff/laurence-loewe/

W7. Snapshot of Loewe's research interests at his former research center's faculty page, Wisconsin Institute for Discovery, UW-Madison:
https://web.archive.org/web/20170215173959/http://wid.wisc.edu/profile/laurence-loewe/

W8. Snapshot of Loewe's research interests page and web portal to other websites associated with his work:
From 2019: https://web.archive.org/web/20191227000428/http://evolution.ws/loewe-lab/members/members/loewe-laurence
Much older: https://web.archive.org/web/20191114080150/http://evolutionary-research.net/people/loewe

W9. Snapshot of the former Loewe-Lab website: the EvoSysBio Group at the Wisconsin Institute for Discovery, UW-Madison:
https://web.archive.org/web/20191227000348/http://evolution.ws/loewe-lab

W10. Snapshot of 3-Credit Course using the Prototype Evolvix Compiler: Introduction to evolutionary systems biology:
https://web.archive.org/web/20191227220437/https://evosysbio-course.discovery.wisc.edu/

W11. Evolution@home, the first global computing project for evolutionary biology, informed key foundations for Evolvix:
https://web.archive.org/web/20191021123325/http://evolutionary-research.net/intro/evoho
https://web.archive.org/web/20191024114432/http://evolutionary-research.net/news
https://web.archive.org/web/20191021124041/http://evolutionary-research.net/news/highscores

Files

evolvix-cl-user-docs-browser-mmv0r3p1_rc1_2015-html.zip

Files (65.8 MB)

Name Size Download all
md5:ac5518319373723aba34449209f36d48
3.4 MB Preview Download
md5:0b8216828957db63ed3881f630b39fb4
739.4 kB Preview Download
md5:956e4b010e41fdf78a17c26bd483ca0c
14.5 MB Download
md5:e7029ff6a5a9e86774a3441d3d2689c6
6.3 MB Download
md5:0e59bc84fa5aa92ffca91675ec9389e7
14.3 MB Download
md5:c240981744b45a657af7071736d95dff
14.3 MB Download
md5:d367adbbb9b2d19a819a5ad89bc51f50
5.9 MB Preview Download
md5:c72df0382a03f6f1e76b9b8498f6b043
6.5 MB Preview Download
md5:458d753c0eb5782620cda248c8f82f5d
19.7 kB Preview Download

Additional details

Additional titles

Subtitle (English)
Simulating Systems where Parts randomly meet to trigger Actions at defined Rates

Funding

U.S. National Science Foundation
Modeling made easy: Extending systems biology modeling approaches to genetics and ecology NSF 1149123