Ejemplo n.º 1
0
def _addExtracellularRegion(self, label, param):

    try:
        rxd.options.enable.extracellular = True
    except:
        print('Error enabling extracellular rxd')
        return -1

    # (xlo, ylo, zlo, xhi, yhi, zhi, dx, volume_fraction=1, tortuosity=1)

    requiredArgs = ['xlo', 'ylo', 'zlo', 'xhi', 'yhi', 'zhi', 'dx']
    for arg in requiredArgs:
        if arg not in param:
            print('  Error creating Extracellular object %s: %s parameter was missing'%(label, arg))

    if 'volume_fraction' not in param:
        param['volume_fraction'] = 1

    if 'tortuosity' not in param:
        param['tortuosity'] = 1

    # call rxd method to create Region
    if 'extracellular' in self.rxd:
        self.rxd['extracellular']['hObj'] = rxd.Extracellular(**{k:v for k,v in param.items() if k != 'extracellular'})
    else:
        self.rxd['regions'][label]['hObj'] = rxd.Extracellular(**{k:v for k,v in param.items() if k != 'extracellular'})

    print('  Created Extracellular Region %s'%(label))
Ejemplo n.º 2
0
org = rxd.Region(h.allsec(), name="org", geometry=rxd.FractionalVolume(0.1))

cyt_org_membrane = rxd.Region(h.allsec(),
                              name="mem",
                              geometry=rxd.ScalableBorder(
                                  pi / 2.0, on_cell_surface=False))
cyt_ecs_membrane = rxd.Region(h.allsec(),
                              name="cell_mem",
                              geometry=rxd.membrane())

# the extracellular space
ecs = rxd.Extracellular(-55,
                        -55,
                        -55,
                        55,
                        55,
                        55,
                        dx=10,
                        volume_fraction=0.2,
                        tortuosity=1.6)

# Who?
x = rxd.Species(
    [cyt, org, cyt_org_membrane, cyt_ecs_membrane, ecs],
    name="x",
    d=1.0,
    charge=1,
    initial=0,
)
Xcyt = x[cyt]
Xorg = x[org]
Ejemplo n.º 3
0
Archivo: hh.py Proyecto: vogdb/nrn
somaB.nseg = 11

# mod version
somaB.insert('hh')

# rxd version

# Where?
# intracellular
cyt = rxd.Region(h.allsec(), name='cyt', nrn_region='i')

# membrane
mem = rxd.Region(h.allsec(), name='cell_mem', geometry=rxd.membrane())

# extracellular
ecs = rxd.Extracellular(-100, -100, -100, 100, 100, 100, dx=100)


# Who?
def init(ics, ecs):
    return lambda nd: ecs if isinstance(nd, rxd.node.NodeExtracellular
                                        ) else ics


# ions
k = rxd.Species([cyt, mem, ecs],
                name='k',
                d=1e3,
                charge=1,
                initial=init(54.4, 2.5),
                ecs_boundary_conditions=2.5)
Ejemplo n.º 4
0
for sec in h.allsec():
    sec.nai = 4.297

#Create cell
cell = Neuron()
'''
stim = h.IClamp(cell.soma(0.5))
stim.delay = 50
stim.dur = 50
stim.amp = 1
'''
time = h.Vector().record(h._ref_t)
print(5)
ecs = rxd.Extracellular(-Lx/2.0, -Ly/2.0,
                        -Lz/2.0, Lx/2.0, Ly/2.0, Lz/2.0, dx=1,
                        volume_fraction=alpha, tortuosity=tort) 
print(6)
k = rxd.Species(ecs, name='k', d=2.62, charge=1, initial=lambda nd: 50 
                if nd.x3d**2 + nd.y3d**2 + nd.z3d**2 < r0**2 else 3,
                ecs_boundary_conditions=3)

na = rxd.Species(ecs, name='na', d=1.78, charge=1, initial=148,
                 ecs_boundary_conditions=148)

pc.set_maxstep(100)
h.finitialize()

sys.stdout.write('\ninit')
sys.stdout.flush()
Ejemplo n.º 5
0
# mod version
for sec in mycellB.all:
    sec.insert("hh")

# rxd version

# Where?
# intracellular
cyt = rxd.Region(h.allsec(), name="cyt", nrn_region="i")

# membrane
mem = rxd.Region(h.allsec(), name="cell_mem", geometry=rxd.membrane())

# extracellular
ecs = rxd.Extracellular(xl, yl, zl, xh, yh, zh, dx=50)

# Who?


def init(ics, ecs):
    return lambda nd: ecs if isinstance(nd, rxd.node.NodeExtracellular) else ics


# ions
k = rxd.Species([cyt, mem, ecs], name="k", d=1, charge=1, initial=init(54.4, 2.5))

na = rxd.Species([cyt, mem, ecs], name="na", d=1, charge=1, initial=init(10.0, 140.0))
x = rxd.Species([cyt, mem, ecs], name="x", charge=1)

ki, ko, nai, nao, xi, xo = k[cyt], k[ecs], na[cyt], na[ecs], x[cyt], x[ecs]
Ejemplo n.º 6
0
from scipy.special import erf
h.load_file('stdrun.hoc')

sec = h.Section() #NEURON requires at least 1 section

# enable extracellular RxD
rxd.options.enable.extracellular = True

# simulation parameters
dx = 1.0    # voxel size
L = 9.0     # length of initial cube
Lecs = 21.0 # lengths of ECS

# define the extracellular region
extracellular = rxd.Extracellular(-Lecs/2., -Lecs/2., -Lecs/2.,
                                  Lecs/2., Lecs/2., Lecs/2., dx=dx,
                                  volume_fraction=0.2, tortuosity=lambda x,y,z: 1.6)

# define the extracellular species
k_rxd = rxd.Species(extracellular, name='k', d=2.62, charge=1,
                    initial=lambda nd: 1.0 if abs(nd.x3d) <= L/2. and
                    abs(nd.y3d) <= L/2. and abs(nd.z3d) <= L/2. else 0.0)

# copy of the initial state to plot (figure 4a upper panel)
states_init = k_rxd[extracellular].states3d.copy()

# record the concentration at (0,0,0)
ecs_vec = h.Vector()
ecs_vec.record(k_rxd[extracellular].node_by_location(0, 0, 0)._ref_value)
# record the time
t_vec = h.Vector()
    i.connect(rec_neurons4[random.randint(0,Nspinstel4-1)])
    count_syn+=7
    count_cells+=1






alpha = alpha1
tort = tort1


time = h.Vector().record(h._ref_t)
ecs = rxd.Extracellular(-Lx / 2.0, -Ly / 2.0,
                        -Lz / 2.0, Lx / 2.0, Ly / 2.0, Lz / 2.0, dx=(20, 20, 50),  # dx - скорость распространнения в разные стороны - различны по осям
                        volume_fraction=alpha, tortuosity=tort)


k = rxd.Species(ecs, name='k', d=2.62, charge=1, initial=lambda nd: 100
if nd.x3d ** 2 + nd.y3d ** 2 + nd.z3d ** 2 < r0 ** 2 else 3.5,
                ecs_boundary_conditions=3.5)

na = rxd.Species(ecs, name='na', d=1.78, charge=1, initial=142,
                 ecs_boundary_conditions=142)



kecs = h.Vector()
kecs.record(k[ecs].node_by_location(0, 0, 0)._ref_value)
pc.set_maxstep(100)