Giter Club home page Giter Club logo

biological-computation / crn-engine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from microsoft/crn-engine

6.0 6.0 4.0 17.14 MB

Tools for programming chemical reaction networks (CRN), DNA strand-displacement circuits (DSD) and genetically engineered circuits (GEC).

License: MIT License

F# 57.62% TypeScript 18.69% HTML 2.81% CSS 0.44% Batchfile 0.02% JavaScript 6.00% Shell 0.05% CMake 0.01% C 13.23% C++ 0.35% Cuda 0.34% Mathematica 0.32% Makefile 0.02% C# 0.06% MATLAB 0.04%

crn-engine's People

Contributors

cgravill avatar microsoft-github-operations[bot] avatar microsoftopensource avatar ndalchau avatar ph1ll1ps avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

crn-engine's Issues

Problem: ClassicDSD simulation needs more precision

I think the simulation of ClassicDSD has rounding / precision issues.

When does the issue arise?
When simulation CRN in ClassicDSD where the rate constants are numbers with very different magnitudes.

How can one produce the problem?
Simulate the following CRN

directive simulation { final=20; points=1000}
directive simulator stochastic

| On + A->{1} On + A + A
| On + A + A+ A->{1E-15} 

| 200 A
| 1 On

What happens?
The A population grows and the second reaction never occurs. The grows continues way beyond 10^6 x A.
Screenshot 2022-03-11 at 18-06-49 Classic DSD Tool

What should happen?
Once the A populiton is large enough, the second reaction should be
come very likely. This should disable the system. Other tools predict that this happens around 10^5 x A. But basically always before 10^6 x A.

Question: How would one deploy a Server build?

If I just run the .exe that was build, the server only listens to ports from the local machine (127.0.0.1:8084).
How can I run the server so that it listens to external requests (0.0.0.0:8084)?

For that matter: What if I want to deploy the HTML5 version? Is that easier?

Problem: VisualDSD internal toehold reaction

I am not sure if VisualDSD can simulate strand displacement when an internal toehold is used to initiate the reaction. The invading strand did not pair with the toehold in this case. This is shown below, where no reaction takes place.
Pasted File

The second picture below shows what I would expect to happen, the only difference being that it is external now. Am I missing a possible directive or is this a bug?

image

I also have Nupack simulations which show that the structure of the complex to the left of the toehold shouldn't affect how the toehold is attached. Below is the code I used in VisualDSD to generate the reactions, where the commented line is the external toehold.

directive simulation {
  final=600; 
  plots=[Backbone();Access()];
}
directive simulator deterministic
directive parameters [k=0.003;u=0.1]
directive compilation detailed
directive polymers

directive rendering {mode = nucleotides}
directive unproductive

dom tag = {bind=k;unbind=u;colour="red"}
dom val0 = {bind=k;unbind=u;colour="green"}
dom val1 = {bind=k;unbind=u;colour="blue"}
//def Backbone() = {cap}<tag^>[reg1]
def Backbone() = [reg0]:<tag^>[reg1]
def Access() = {tag^* reg1*}
( 1 Backbone()
| 1 Access()
)

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.