Tools for programming chemical reaction networks (CRN), DNA strand-displacement circuits (DSD) and genetically engineered circuits (GEC).
Перейти к файлу
Neil Dalchau 2d470206e8
Update run_all_examples.yml
2021-09-24 13:38:19 +01:00
.azure Set up static analysis with Azure Pipelines (#9) 2021-09-10 09:25:56 +01:00
.config Initial commit of CRNEngine and dependencies 2021-08-19 10:20:04 +01:00
.github/workflows Update run_all_examples.yml 2021-09-24 13:38:19 +01:00
.paket Initial commit of CRNEngine and dependencies 2021-08-19 10:20:04 +01:00
Builds Create build pipeline for server tools (#2) 2021-08-24 23:35:43 +01:00
CRNEngine Set up static analysis with Azure Pipelines (#9) 2021-09-10 09:25:56 +01:00
Checks Adding notices for files with C-style comments 2021-08-24 15:42:32 +01:00
ClassicDSD Run examples (#13) 2021-09-24 13:00:10 +01:00
ClassicGEC Simplifying GitHub builds, upgrading some packages and adding documentation (#12) 2021-09-15 23:00:35 +01:00
Data Adding fake data 2021-08-19 12:04:52 +01:00
Docs Update PDF link 2021-09-15 23:03:47 +01:00
FSBOLWrapper Set up static analysis with Azure Pipelines (#9) 2021-09-10 09:25:56 +01:00
Filzbach.FSharp Adding notices for files with C-style comments 2021-08-24 15:42:32 +01:00
Filzbach.FSharp.JS Initial commit of CRNEngine and dependencies 2021-08-19 10:20:04 +01:00
HTML5SharedGUI Resolve security vulnerabilities (#11) 2021-09-14 22:27:40 +01:00
HTML5StrandGraphs Adding Strand Graphs code (#6) 2021-09-01 10:17:08 +01:00
Lib Replacing Oslo DLL with code/projects (#8) 2021-09-06 08:59:39 +01:00
MomentClosure Replacing Oslo DLL with code/projects (#8) 2021-09-06 08:59:39 +01:00
Oslo Set up static analysis with Azure Pipelines (#9) 2021-09-10 09:25:56 +01:00
PDESolvers Replacing Oslo DLL with code/projects (#8) 2021-09-06 08:59:39 +01:00
ParserCombinators Adding notices for files with C-style comments 2021-08-24 15:42:32 +01:00
ReactComponents Run examples (#13) 2021-09-24 13:00:10 +01:00
RulesDSD Resolve security vulnerabilities (#11) 2021-09-14 22:27:40 +01:00
Scripts Adding StabilityZ3 back into server and CLI tools (#7) 2021-09-01 20:11:29 +01:00
SiteGraphReactor Replacing Oslo DLL with code/projects (#8) 2021-09-06 08:59:39 +01:00
StabilityZ3 Simplifying GitHub builds, upgrading some packages and adding documentation (#12) 2021-09-15 23:00:35 +01:00
SundialsSolver Adding notices for files with C-style comments 2021-08-24 15:42:32 +01:00
.gitignore Replacing Oslo DLL with code/projects (#8) 2021-09-06 08:59:39 +01:00
CODE_OF_CONDUCT.md CODE_OF_CONDUCT.md committed 2021-08-18 09:36:54 -07:00
LICENSE LICENSE committed 2021-08-18 09:36:54 -07:00
NOTICE Adding third-party notice 2021-08-24 13:23:13 +01:00
README.md Adding contributors to README 2021-09-15 22:58:16 +01:00
SECURITY.md SECURITY.md committed 2021-08-18 09:36:56 -07:00
SUPPORT.md Run examples (#13) 2021-09-24 13:00:10 +01:00
Settings.FSharpLint Initial commit of CRNEngine and dependencies 2021-08-19 10:20:04 +01:00
package.json Run examples (#13) 2021-09-24 13:00:10 +01:00
paket.dependencies Simplifying GitHub builds, upgrading some packages and adding documentation (#12) 2021-09-15 23:00:35 +01:00
paket.lock Simplifying GitHub builds, upgrading some packages and adding documentation (#12) 2021-09-15 23:00:35 +01:00
tsconfig.common.json Initial commit of CRNEngine and dependencies 2021-08-19 10:20:04 +01:00
tslint.json Initial commit of CRNEngine and dependencies 2021-08-19 10:20:04 +01:00
yarn.lock Run examples (#13) 2021-09-24 13:00:10 +01:00

README.md

Windows-CLI Windows-Server Windows-HTML

Project

Chemical Reaction Networks Engine (CRN-Engine) is an open source repository that enables programming and analysis of (bio)chemical systems. The implementation for several domain-specific programming languages (DSLs) are included, and have been published previously in web tools (Visual DSD, Visual GEC, Visual CRN) and the scientific literature. The languages compile to chemical reaction networks, which is a mathematical object that defines parameterised chemical systems. The included analysis methods on CRNs include stochastic simulation, approximate simulation of stochastic dynamics using moment closure techniques, integration of the chemical master equation, as well as satisfiability analysis for stable systems. Finally, the parameters of CRNs can be inferred from observation data, using Markov chain Monte Carlo (MCMC).

Getting Started

The main tools are located in the folders \CRNEngine, \ClassicGEC and \ClassicDSD. For each tool, there are solutions for a command-line interface (CLI), or with a visual front-end, either deployed as server-client (run-on-localhost) or fully HTML. To build these solutions, you will need to configure Visual Studio with the necessary add-ins, and also install a few more dependencies.

The instructions for building on Windows are as follows:

  1. Install Visual Studio 2019

    The components required are:

    • Workloads tab:
      • .NET desktop development
      • Desktop development with C++
      • Azure development
    • Individual Components tab, ".NET" section:
      • .NET Framework 4.7.2 SDK
      • .NET Framework 4.7.2 targeting pack
    • Individual Components tab, "Compilers, build tools, and runtimes" section:
      • MSVC (XYZ) - VS 2019; Libs for Spectre (x86 and x64) [where XYZ is the highest version corresponding to the VC++ 2019 version (XYZ) latest v142 tools, which might have been selected already]
    • Individual Components tab, "Development activities" section:
      • F# desktop language support
      • F# language support
      • F# language support for web projects
    • Individual Components tab, "SDKs, libraries, and frameworks" section:
      • Windows 10 SDK (10.0.17763.0)
  2. Install .NET Core SDKs. These are available here. The required versions are 2.1 and 3.1.

  3. Install NodeJS. N.B. This may involve restarting your computer several times.

  4. Install Yarn. The instructions (for Windows) are here.

Contributions

There have been several contributors to this codebase, prior to its migration to this location on GitHub. Significant contributions have come from:

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.