コード例 #1
0
Xorg = x[org]
Xecs = x[ecs]

# What? - produce X in cell 1
# parameter to limit production to cell 1
cell1_param = rxd.Parameter(org,
                            initial=lambda node: 1.0
                            if node.segment.sec == cell1 else 0)

# production with a rate following Michaels Menton kinetics
createX = rxd.Rate(Xorg, cell1_param[org] * 1.0 / (10.0 + Xorg))

# leak between organelles and cytosol
cyt_org_leak = rxd.MultiCompartmentReaction(Xcyt,
                                            Xorg,
                                            1e4,
                                            1e4,
                                            membrane=cyt_org_membrane,
                                            membrane_flux=False)
from math import pi

e = 1.60217662e-19
scale = 1e-14 / e
cyt_ecs_pump1 = rxd.MultiCompartmentReaction(
    Xcyt,
    Xecs,
    0.1 * scale * Xcyt / (1.0 + Xcyt),
    -0.3 * scale * Xecs / (1.0 + Xecs),
    mass_action=False,
    membrane_flux=True,
    membrane=cyt_ecs_membrane,
)
コード例 #2
0
ファイル: hh.py プロジェクト: vogdb/nrn
#What
# gates
m_gate = rxd.Rate(mgate, (minf - mgate) / mtau)
h_gate = rxd.Rate(hgate, (hinf - hgate) / htau)
n_gate = rxd.Rate(ngate, (ninf - ngate) / ntau)

# Nernst potentials
ena = 1e3 * h.R * (h.celsius + 273.15) * log(nao / nai) / h.FARADAY
ek = 1e3 * h.R * (h.celsius + 273.15) * log(ko / ki) / h.FARADAY

gna = pA * gnabar * mgate**3 * hgate
gk = pA * gkbar * ngate**4

na_current = rxd.MultiCompartmentReaction(nai,
                                          nao,
                                          gna * (v - ena),
                                          mass_action=False,
                                          membrane=mem,
                                          membrane_flux=True)
k_current = rxd.MultiCompartmentReaction(ki,
                                         ko,
                                         gk * (v - ek),
                                         mass_action=False,
                                         membrane=mem,
                                         membrane_flux=True)
leak_current = rxd.MultiCompartmentReaction(xi,
                                            xo,
                                            pA * gl * (v - el),
                                            mass_action=False,
                                            membrane=mem,
                                            membrane_flux=True)
コード例 #3
0
ファイル: wave1d_125_1.py プロジェクト: vogdb/nrn
# define the regions for the rxd
cyt = rxd.Region(h.allsec(), nrn_region='i', geometry=rxd.FractionalVolume(fc, surface_fraction=1))
er = rxd.Region(h.allsec(), geometry=rxd.FractionalVolume(fe))
cyt_er_membrane = rxd.Region(h.allsec(), geometry=rxd.FixedPerimeter(1))

# the species and other states
ca = rxd.Species([cyt, er], d=caDiff, name='ca', charge=2, initial=cac_init)
ip3 = rxd.Species(cyt, d=ip3Diff, initial=ip3_init)
ip3r_gate_state = rxd.State(cyt_er_membrane, initial=0.8)
h_gate = ip3r_gate_state[cyt_er_membrane]


# pumps and channels between ER and Cytosol

serca = rxd.MultiCompartmentReaction(ca[cyt]>ca[er], gserca/((kserca / (1000. * ca[cyt])) ** 2 + 1), membrane=cyt_er_membrane, custom_dynamics=True)
leak = rxd.MultiCompartmentReaction(ca[er]!=ca[cyt], gleak, gleak, membrane=cyt_er_membrane)

minf = ip3[cyt] * 1000. * ca[cyt] / (ip3[cyt] + kip3) / (1000. * ca[cyt] + kact)
k = gip3r * (minf * h_gate) ** 3 
ip3r = rxd.MultiCompartmentReaction(ca[er]!=ca[cyt], k, k, membrane=cyt_er_membrane)
ip3rg = rxd.Rate(h_gate, (1. / (1 + 1000. * ca[cyt] / (0.3)) - h_gate) / ip3rtau)




cae_init = (0.0017 - cac_init * fc) / fe
ca[er].concentration = cae_init

#ip3.nodes.concentration = 2
for node in ip3.nodes:
コード例 #4
0
Xcyt = x[cyt]
Xorg = x[org]


# What? - produce X in cell 1
# parameter to limit production to cell 1
cell1_param = rxd.Parameter(
    org, initial=lambda node: 1.0 if node.segment.sec == cell1 else 0
)

# production with a rate following Michaels Menton kinetics
createX = rxd.Rate(Xorg, cell1_param[org] * 1.0 / (10.0 + Xorg))

# leak between organelles and cytosol
cyt_org_leak = rxd.MultiCompartmentReaction(
    Xcyt, Xorg, 1e4, 1e4, membrane=cyt_org_membrane
)


# record the concentrations in the cells
t_vec = h.Vector()
t_vec.record(h._ref_t)
cell1_X = h.Vector()
cell1_X.record(cell1(0.5)._ref_xi)
cell1_Xorg = h.Vector()
cell1_Xorg.record(Xorg.nodes(cell1)(0.5)[0]._ref_concentration)
cell1V = h.Vector()
cell1V.record(cell1(0.5)._ref_v)


cell2_X = h.Vector()