Skip to content

Latest commit

 

History

History
230 lines (196 loc) · 10.4 KB

todolist.org

File metadata and controls

230 lines (196 loc) · 10.4 KB

Todo

Create “gradient” of conditions: in order to generate more interesting features,

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

grafana export to django

bacterie random state initialization:

  • store in django
  • button to generate random state seed

Rename environment fields

  • use factor instead of rate

Improve observability

  • [ ] add name to bactery
  • [ ] use reference to bactery instead of env in reac_mgr

Add UI helpers for snaphots

Parse mol from url in UI

Denser full repr - we only need to store tokens

Done

capture logs when running experimens

  • [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 ?

CANCELED Instead of overriding equality checks, have uid generator per bactery

-> would compromise interaction between bacteries

possible collision of equality operator used in tests with other stuff

  • should be ok for now

Comparison (from ppx.ord) used for reac sets - without taking reac rate into account

  • [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

Bug after loading a snapshot: problems with missing reactions or something

Fix json import / export

Old TODO

bugfixes/improvements

Collision: not selecting from all possible couples

collision reaction -> reversing molecules ?

“endless_duplication”, reaction 3307 => exception “not found”

  • because of reverse
  • reverse seems like intended behaviour, but state is not updated

seems like triggering transition bugs when mol release

Debug pnet grab

between ribosome : AAABAAAADDFCBAAADDFBAAABDDFCBAABDDFBAAACDDFCBAACDDFBAAADDDFCBAADDDFBAAAFDDFCBAAFDDFBAAAAADDFCAABBBDDFAAABAAAADDFABAFAFDDFAAABAAABDDFABAFBFDDFAAABAAACDDFABAFCFDDFAAABAAADDDFABAFDFDDFAAABAAAFDDFABAFFFDDFAAABCAAADDFCCAAADDFBCBABDDFCCAABDDFBCCACDDFCCAACDDFBCDADDDFCCAADDDFBCFAFDDFCCAAFDDFBABAAADDFCAABBBDDFAAACAAAAADDFABBAAACAAAAADDFABBAAABAABBBDDFCAACCCDDFAAABAABBBDDFABADFDFFFDDFAAABBACCCDDFCAACCCDDFABC that should grab any mol starting with DD and DDBBAFDDCCCAACFDDCCCABBAAAFDDFFFDFDABAFDDBBBAABAAAFDDCCCAACFDDBBBAABAAABBAFDDAAAAACAAABBAFDDAAAAACAAAFDDBBBAACFDDAAABABFDDFAACCFDDFAFCBFDDDAACCFDDDADCBFDDCAACCFDDCACCBFDDBAACCFDDBABCBFDDAAACCFDDAAACBAAAFDDFFFABAFDDFAAABAAAFDDFDFABAFDDDAAABAAAFDDFCFABAFDDCAAABAAAFDDFBFABAFDDBAAABAAAFDDFAFABAFDDAAAABAAAFDDBBBAACFDDAAAAABFDDFAABCFDDFAAABFDDDAABCFDDDAAABFDDCAABCFDDCAAABFDDBAABCFDDBAAABFDDAAABCFDDAAAABAAA (reversed ribosome)

Fix removing empty reactants

  • ok for imol, this needs testing for amols

Rework pnet creation, introduce variants (cyclic pnet)?

Config generator

explicit exceptions

gui:

  • [ ] 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

STARTED Numeric module, that provides a swith to select

numeric implementation. Only mol quantities are still integers; Random need some rework, and performance might be an issue with exact calculations

stacktrace

Pnet creation : negative place_id in transitions

reactions not removed when removing molecule

break reaction

  • seems ok with imol, but not with amol

repair missing execute actions

fix remove/change mol quantity from interface

display ambiant mols

sandbox pnet id

  • 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.

links to other pages in web interface

fix environment in gui

reporter service

  • [X] log folder
  • [ ] better logs
  • [X] use logs as a backend for reporter
  • [X] cli reporter works

revert amolset to a simpler state

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

petri net display inconsistencies

the first time display works, but the next ones fail -> the problem was with cytoscape : empty_filter was not rcognised and caused a bug

change « send to bact » to « send to sandbox »

in the molbuilder tab, and change behaviour accordingly

reactions initialisation seems broken :

grabs happen between the same pnet (same id), and are added six times ! -> problem solved, there was an error whan adding reactions to IRMap

improvements

Reorganise/rename reaction files so that they are easily accessible

Use custom (binary?) trees to hold reactions in Reac_sets so as to speed up next reaction search.

use Pnet Set as reactants

use uniqueID lib

collisions

STARTED sanitize the use mutable/immutable and refs in structures

  • reactants do not use ref anymore

STARTED implement tests

describe bacteria where only one kind of reaction can happen to be able to predict results

use Zarith module for reaction rates

-> find a way to restrict fractions to decimal ones so as to avoid too much cost -> functorize to compare performance

sanitize server files :

  • use dune to copy files to the build directory
  • put external libs in an archive to clean git repo

split the web client in multiple pages

global reaction coefficient (in environment) :

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

switch to a rest API for the webserver

mol quantity go under 0

-> problem with references

features

STARTED random collisions

  • [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

Random single mol effects

  • launch a transition that is not launchable
  • release a grabed molecule

extended pnets (as graphs)

optional

simple reactions to test against

org mode cheat sheet

checklist :

  • [X] switch with C-c C-c
  • [ ]

STATES

STARTED

CURRENT

CANCELED

(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”)))

temp

  • Duplicator FDFDFF
    • original: AAABAAAADDBABAFAFDDBAAABAAABDDBABAFBFDDBAAABAAACDDBABAFCFDDBAAABAAADDDBABAFDFDDBAAABAAAFDDBABAFFFDDBAAABAAAADDBCBAAADDBBAAABDDBCBAABDDBBAAACDDBCBAACDDBBAAADDDBCBAADDDBBAAAFDDBCBAAFDDBBAAAAADDBCAABBBDDBAAABCAAADDBCCAAADDBBCBABDDBCCAABDDBBCCACDDBCCAACDDBBCDADDDBCCAADDDBBCFAFDDBCCAAFDDBBABAAADDBCAABBBDDBAAACAAAAADDBABBAAACAAAAADDBABBAAABAABBBDDBCAACCCDDBAAABAABBBDDBABAFDFDFFDDBAAABBACCCDDBCAACCCDDBABC
    • reverted + DD: DDCBABDDCCCAACBDDCCCABBAAABDDFFDFDFABABDDBBBAABAAABDDCCCAACBDDBBBAABAAABBABDDAAAAACAAABBABDDAAAAACAAABDDBBBAACBDDAAABABBDDFAACCBDDFAFCBBDDDAACCBDDDADCBBDDCAACCBDDCACCBBDDBAACCBDDBABCBBDDAAACCBDDAAACBAAABDDBBBAACBDDAAAAABBDDFAABCBDDFAAABBDDDAABCBDDDAAABBDDCAABCBDDCAAABBDDBAABCBDDBAAABBDDAAABCBDDAAAABAAABDDFFFABABDDFAAABAAABDDFDFABABDDDAAABAAABDDFCFABABDDCAAABAAABDDFBFABABDDBAAABAAABDDFAFABABDDAAAABAAA
  • Reverter imparfait FDFDFF
    • original: AAAABAFDFDFFDDBBAAADDBAAAABCBAAADDBCAACADDBAAABAAABDDBCBAADDBCCAABDDBBABACDDBAAACAAACDDBBBABADDBCAABBADDBAAACAABADDBBAABBDDBBAABBCDDBAAABAABBADDBCCBBADDBBABCADDBAAACAABBDDBBAABBCDDBCBABBCDDBBAACADDBAAACAACADDBABB
    • reverted + DD: DDBBABDDACAACAAABDDACAABBDDCBBABCBDDCBBAABBDDBBAACAAABDDACBABBDDABBCCBDDABBAABAAABDDCBBAABBDDBBAABBDDABAACAAABDDABBAACBDDABABBBDDCAAACAAABDDCABABBDDBAACCBDDAABCBDDBAAABAAABDDACAACBDDAAABCBAAAABDDAAABBDDFFDFDFABAAAA
  • Reverter parfait FDFFF
    • original! AAAABAFDFDFFDDBBAAADDBAAAABCBAAADDBCAACADDBAAABAAABDDBCBAADDBCCAABDDBBABACDDBAAACAAACDDBBBABADDBCAABBADDBAAACAABADDBBAABBDDBBAABBCDDBBACCADDBAAABAABBADDBCCBBADDBBABCADDBAAACAABBDDBBAABBCDDBCBABBCDDBBAACADDBAAACAACADDBABB
    • reverted + DD: DDABDDACAACAAABDDACAABBDDCBBABCBDDCBBAABBDDBBAACAAABDDACBABBDDABBCCBDDABBAABAAABDDACCABBDDCBBAABBDDBBAABBDDABAACAAABDDABBAACBDDABABBBDDCAAACAAABDDCABABBDDBAACCBDDAABCBDDBAAABAAABDDACAACBDDAAABCBAAAABDDAAABBDDFFDFDFABAAAA