jcrozum / pystablemotifs

Python library for attractor identification and control in Boolean networks
MIT License
28 stars 7 forks source link

DOI analysis #83

Closed priyambial123 closed 2 years ago

priyambial123 commented 2 years ago

I need some help in understanding the domain of influence analysis. For example, when I give a self regulatory node A as 1, the script computes the nodes which will be in OFF (0) and ON (1) states (when node A is ON (1)). Is this right?. Then, script also computes how these nodes in ON and OFF state reach an attractor state. Any node in the network can given as source set or self regulatory nodes are given as source set?.

Thanks

jcrozum commented 2 years ago

The domain of influence code requires you to specify a set of node values to hold fixed. It then tells you which other node values will eventually become fixed as a result. The node values that you specify as being held fixed can be for any nodes, not just autoregulatory nodes.

priyambial123 commented 2 years ago

Thank you. Is there way to identify the stable motifs in these network. Sorry, if I have missed it, but, I couldn't find it in the Python notebook

jcrozum commented 2 years ago

Once you compute the attractor repertoire, e.g., using

ar = sm.AttractorRepertoire.from_primes(primes)

You can get a list of the stable motifs that appear in the succession diagram using

motifs = ar.succession_diagram.get_motifs()
priyambial123 commented 2 years ago

I have three different networks and in none of these networks, I could find stable motifs. In one of the network, there were 1024 attractors with three source nodes, but, there were no stable motifs. Is this something wrong, I am doing here?

This is the network with 1024 attractor states


DIDO1*= not (X1 or miR4801 or X2 or miR582 or miR198 or miR101 or miR6504 or miR93 or miR98) and (MYCN or MYC or KDM2B or TFAP2C)
RGS12*= not (miR149 or miR1915) and (KDM2B or TFAP2C)
X1*= MYCN or MYC or KDM2B
miR4801*= MYCN
X2*= MYC
miR582*= MYC or TFAP2C
miR198*= KDM2B
miR149*= KDM2B or TFAP2C
miR1915*= TFAP2C
miR98*= MYC
miR6504*= miR6504
miR93*= miR93
MYCN*= not (miR101 or miR6504 or miR582 or miR144 or miR93)
MYC*= not (miR98 or miR744 or miR92a or miR3157 or let7a)
KDM2B*= KDM2B
TFAP2C*= TFAP2C
jcrozum commented 2 years ago

In this model, you have 4 explicit source nodes:

miR6504*= miR6504
miR93*= miR93
KDM2B*= KDM2B
TFAP2C*= TFAP2C

Also, you have 6 variables that do not have update rules specified; these will be treated as source nodes as well.

let7a
miR101
miR144
miR744
miR92a
miR3157

That gives 10 source nodes, not 3. For 10 source nodes, there are 2^10=1024 possible inputs. As far as I can tell, there are no positive feedback loops in the network. There is only one feedback loop, and it's a negative feedback loop between MYC and miR98. This will create an oscillation, not a stable motif.

In other words, this network has no stable motifs, and the attractor is determined entirely by the values of the input signals. You have exactly one attractor for each combination of source node values.

jcrozum commented 2 years ago

(I should clarify that technically, each source node has two associated "trivial" stable motifs corresponding to each of its two possible values, but these trivial stable motifs are not counted)

priyambial123 commented 2 years ago

Thank you for detailed explanation about stable motifs.