CASCI-lab / CANA

CANAlization: Control & Redundancy in Boolean Networks
https://casci-lab.github.io/CANA/
MIT License
22 stars 15 forks source link

Different ways you can control a Boolean Network #7

Closed rionbr closed 1 year ago

rionbr commented 5 years ago

Dear @ajgates42, @xuan-w, and @tjparmer,

Here are some thoughts that I believe we need to think about moving forward with BN control. BNs can be controlled in several different ways, for example:

All of these for single and multiple nodes. We need to figure it out a clever way to best incorporate all these different types of control into one (or little as possible) functions into CANA. One way is to redesign the self.step() function to pass on commands to individual nodes and to keep track of the schedules.

Please add here comments and things you believe might break or need to be considered.

tjparmer commented 5 years ago

One thing we discussed is that in general schedules would need to be time-relative since the number of iterations may be unbounded. So instead of update_schedule={t0: (node1), t1: (node1, node2), t2: (node1)}, something that captures time differences relative to last update, update_schedule={node1: t+1, node2: t+2}, or uses a generic update function update_schedule=f(node). But at the same time this needs to be usable by general researchers.