Tool for extracting dependency graphs from gotran ODE models
Project description
modelgraph
A tool for visualizing dependencies between different components of your model.
Motivation
Assume you have some model, represented as a system of ODEs with potentially several intermediation expression. For example in the classical Hodgkin Huxley model of the squid axon from 1952 we have the following expressions
dV_dt = (i_Stim + i_Na + i_K + i_L)/Cm
i_Na = g_Na*m**3*h*(V  E_Na)
From this we can deduce that i_Na
depends on the parameter g_Na
, and since dV_dt
depends on i_Na
it also depends (indirectly) on the parameter g_Na
.
In modelgraph
we can visualize this dependency using the following code snippet
from modelgraph import DependencyGraph
import gotran
# Load ode using gotran
ode = gotran.load_ode("hodgkin_huxley_squid_axon_model_1952_original.ode")
# Build dependency graph
graph = DependencyGraph(ode)
# Get the components that depends on g_Na (we call this inverse dependents)
G = graph.inv_dependency_graph("g_Na")
# Visualize using matplotlib (python m pip install matplotlib)
import matplotlib.pyplot as plt
nx.draw(G, with_labels=True, font_size=10, node_size=2000)
plt.savefig("g_Na_mpl.png")
# Or using pydot (python m pip install pydot)
P = nx.nx_pydot.to_pydot(G)
P.write_png("g_Na_pydot.png")
It is also possible to go the other way around, i.e if you want to look at e.g dV_dt
and see that it depends on
# Visualize what dV_dt depdens on
G_dV_dt = graph.dependency_graph("dV_dt")
nx.draw(G_dV_dt, with_labels=True, font_size=10, node_size=2000)
plt.savefig("dV_dt_mpl.png")
P_dV_dt = nx.nx_pydot.to_pydot(G_dV_dt)
P_dV_dt.write_png("dV_dt_pydot.png")
Here we only display the graph pydot
since the matplotlib
version seems to be a bit messy if the graph becomes too large
Installation
Install with pip
python3 m pip install modelgraph
GUI
There is also a graphical user interface. To use this you need to install streamlit
python m pip install streamlit
You can run the the gui by passing in the .ode
file as a command line argument e.g
python m modelgraph demo/hodgkin_huxley_squid_axon_model_1952_original.ode
This will start a streamlit
server, and the GUI is now hosted on http://localhost:8501
Documentation
Documentation is hosted at http://computationalphysiology.github.io/modelgraph.
Automated test
Tests are provided in the folder tests. You can run the tests with pytest
python3 m pytest tests vv
Contributing
Authors
 Henrik Finsberg (henriknf@simula.no)
License
MIT
Project details
Release history Release notifications  RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for modelgraph1.0.1py3noneany.whl
Algorithm  Hash digest  

SHA256  fad2c396a2085626c98b5acb87dcf83269585d327ef173101fa7f3180620bef7 

MD5  75f6a3e4c47dfc04ab9fb73be5c83bf2 

BLAKE2b256  1faef544cb06d6f6fa47110202602c768d7bb5d70cbf01c636314183e8d16432 