create gradient of conditions. We an use the environment to achieve this for now (although this could apply to other properties).
- have multiple “cells”
- molecules can move from one cell to the other ones
- Implementation: Choose beween:
- implementing molecule move as a reaction -> would prevent parallel execution in the cells
- degrading the reaction, e.g. running it at a fixed interval (allow to parallelize)
- We have to implement the logic anyway, probably based on something like osmosis barrier Also possible to do things like filter based on mol length -> not at start
- Implementation: Choose beween:
- store in django
- button to generate random state seed
- use factor instead of rate
- [ ] add name to bactery
- [ ] use reference to bactery instead of env in reac_mgr
- [X] add custom log config - probably use a dedicated table to store them
- [X] take care not to explode memory
- output logs to stderr (without capturing stderr) ? or custom handling in python
- [X] store logs ?
- [ ] Log viewing: https://github.com/aurc/loggo ?
-> would compromise interaction between bacteries
- should be ok for now
- [X] Switch to equal operator for set comparison (with custom Set module)
- [X] Improve doc of implem, especially about circular references
- [X] Ensure that equality checks do not miss anything - e.g. reactions associated with
- [X] Check if switching to https://github.com/janestreet/ppx_yojson_conv is worth it -> probably not right now, as ppx_deriving is still maintained
- [X] Add way to setup reactions when creating bactery from json
- because of reverse
- reverse seems like intended behaviour, but state is not updated
between ribosome : AAABAAAADDFCBAAADDFBAAABDDFCBAABDDFBAAACDDFCBAACDDFBAAADDDFCBAADDDFBAAAFDDFCBAAFDDFBAAAAADDFCAABBBDDFAAABAAAADDFABAFAFDDFAAABAAABDDFABAFBFDDFAAABAAACDDFABAFCFDDFAAABAAADDDFABAFDFDDFAAABAAAFDDFABAFFFDDFAAABCAAADDFCCAAADDFBCBABDDFCCAABDDFBCCACDDFCCAACDDFBCDADDDFCCAADDDFBCFAFDDFCCAAFDDFBABAAADDFCAABBBDDFAAACAAAAADDFABBAAACAAAAADDFABBAAABAABBBDDFCAACCCDDFAAABAABBBDDFABADFDFFFDDFAAABBACCCDDFCAACCCDDFABC that should grab any mol starting with DD and DDBBAFDDCCCAACFDDCCCABBAAAFDDFFFDFDABAFDDBBBAABAAAFDDCCCAACFDDBBBAABAAABBAFDDAAAAACAAABBAFDDAAAAACAAAFDDBBBAACFDDAAABABFDDFAACCFDDFAFCBFDDDAACCFDDDADCBFDDCAACCFDDCACCBFDDBAACCFDDBABCBFDDAAACCFDDAAACBAAAFDDFFFABAFDDFAAABAAAFDDFDFABAFDDDAAABAAAFDDFCFABAFDDCAAABAAAFDDFBFABAFDDBAAABAAAFDDFAFABAFDDAAAABAAAFDDBBBAACFDDAAAAABFDDFAABCFDDFAAABFDDDAABCFDDDAAABFDDCAABCFDDCAAABFDDBAABCFDDBAAABFDDAAABCFDDAAAABAAA (reversed ribosome)
- ok for imol, this needs testing for amols
- [ ] update all molecules after transition (if needs be)
- [ ] modify ambient
- [ ] clear button
- [X] examples load
- [X] error with refresh when pnet is removed
- [X] commit env fails
- [X] refresh after loading
- [X] display reactions
numeric implementation. Only mol quantities are still integers; Random need some rework, and performance might be an issue with exact calculations
- seems ok with imol, but not with amol
- when requesting pnet_from_mol, pnet_id is sometimes missing
- when deleting pnet, id is not provided -> en standby jusqu’à avoir une interface bien définie.
- [X] log folder
- [ ] better logs
- [X] use logs as a backend for reporter
- [X] cli reporter works
we will modify ARMgr to be a wrapper over PnetSet.t Map, and same thing with IRMgr
Pour rendre les choses propres, toute action qui modifie un état interne renvoie la liste des actions à effectuer à plus haut niveau
the first time display works, but the next ones fail -> the problem was with cytoscape : empty_filter was not rcognised and caused a bug
in the molbuilder tab, and change behaviour accordingly
grabs happen between the same pnet (same id), and are added six times ! -> problem solved, there was an error whan adding reactions to IRMap
- reactants do not use ref anymore
describe bacteria where only one kind of reaction can happen to be able to predict results
-> find a way to restrict fractions to decimal ones so as to avoid too much cost -> functorize to compare performance
- use dune to copy files to the build directory
- put external libs in an archive to clean git repo
The idea is to put these parameters in an environment module, that could be subject to dynamic changes. This would also allow changes set by user input. There still lies the tradeoff between having reactions use this coefficient directly, or using it later in reac_mgr. A better abstraction in reac_mgr would allow to avoid too much boilerplate.
- [X] feature
- [X] interface to modify coefficients dynamically (is it possible ?)
- [X] web interface
-> problem with references
- [X] Implement reaction in framework
- [ ] Implement reaction effects :
- the two molecules break
- the two molecules mix
- grab by a place not designed to do so
- release some grabed molecules
- … -> the important point is to implement a minimal set of features and enable evolution.
- [ ] Test reactions
- launch a transition that is not launchable
- release a grabed molecule
- [X] switch with C-c C-c
- [ ]
(setq org-todo-keywords ‘((sequence “TODO” “STARTED” “CURRENT” “|” “DONE” “CANCELED”)))
(setq org-todo-keyword-faces ‘((“TODO” . “yellow”) (“STARTED” . “orange”) (“CURRENT” . (:foreground “red” :weight bold)) (“DONE” . “lime green”) (“CANCELED” . “deep blue sky”)))
- Duplicator FDFDFF
- original: AAABAAAADDBABAFAFDDBAAABAAABDDBABAFBFDDBAAABAAACDDBABAFCFDDBAAABAAADDDBABAFDFDDBAAABAAAFDDBABAFFFDDBAAABAAAADDBCBAAADDBBAAABDDBCBAABDDBBAAACDDBCBAACDDBBAAADDDBCBAADDDBBAAAFDDBCBAAFDDBBAAAAADDBCAABBBDDBAAABCAAADDBCCAAADDBBCBABDDBCCAABDDBBCCACDDBCCAACDDBBCDADDDBCCAADDDBBCFAFDDBCCAAFDDBBABAAADDBCAABBBDDBAAACAAAAADDBABBAAACAAAAADDBABBAAABAABBBDDBCAACCCDDBAAABAABBBDDBABAFDFDFFDDBAAABBACCCDDBCAACCCDDBABC
- reverted + DD: DDCBABDDCCCAACBDDCCCABBAAABDDFFDFDFABABDDBBBAABAAABDDCCCAACBDDBBBAABAAABBABDDAAAAACAAABBABDDAAAAACAAABDDBBBAACBDDAAABABBDDFAACCBDDFAFCBBDDDAACCBDDDADCBBDDCAACCBDDCACCBBDDBAACCBDDBABCBBDDAAACCBDDAAACBAAABDDBBBAACBDDAAAAABBDDFAABCBDDFAAABBDDDAABCBDDDAAABBDDCAABCBDDCAAABBDDBAABCBDDBAAABBDDAAABCBDDAAAABAAABDDFFFABABDDFAAABAAABDDFDFABABDDDAAABAAABDDFCFABABDDCAAABAAABDDFBFABABDDBAAABAAABDDFAFABABDDAAAABAAA
- Reverter imparfait FDFDFF
- original: AAAABAFDFDFFDDBBAAADDBAAAABCBAAADDBCAACADDBAAABAAABDDBCBAADDBCCAABDDBBABACDDBAAACAAACDDBBBABADDBCAABBADDBAAACAABADDBBAABBDDBBAABBCDDBAAABAABBADDBCCBBADDBBABCADDBAAACAABBDDBBAABBCDDBCBABBCDDBBAACADDBAAACAACADDBABB
- reverted + DD: DDBBABDDACAACAAABDDACAABBDDCBBABCBDDCBBAABBDDBBAACAAABDDACBABBDDABBCCBDDABBAABAAABDDCBBAABBDDBBAABBDDABAACAAABDDABBAACBDDABABBBDDCAAACAAABDDCABABBDDBAACCBDDAABCBDDBAAABAAABDDACAACBDDAAABCBAAAABDDAAABBDDFFDFDFABAAAA
- Reverter parfait FDFFF
- original! AAAABAFDFDFFDDBBAAADDBAAAABCBAAADDBCAACADDBAAABAAABDDBCBAADDBCCAABDDBBABACDDBAAACAAACDDBBBABADDBCAABBADDBAAACAABADDBBAABBDDBBAABBCDDBBACCADDBAAABAABBADDBCCBBADDBBABCADDBAAACAABBDDBBAABBCDDBCBABBCDDBBAACADDBAAACAACADDBABB
- reverted + DD: DDABDDACAACAAABDDACAABBDDCBBABCBDDCBBAABBDDBBAACAAABDDACBABBDDABBCCBDDABBAABAAABDDACCABBDDCBBAABBDDBBAABBDDABAACAAABDDABBAACBDDABABBBDDCAAACAAABDDCABABBDDBAACCBDDAABCBDDBAAABAAABDDACAACBDDAAABCBAAAABDDAAABBDDFFDFDFABAAAA