Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 29e089a

Browse filesBrowse files
committed
Don't use object as key, use id
1 parent bb8c8a9 commit 29e089a
Copy full SHA for 29e089a

File tree

Expand file treeCollapse file tree

1 file changed

+18
-15
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+18
-15
lines changed

‎python/moose/neuroml2/reader.py

Copy file name to clipboardExpand all lines: python/moose/neuroml2/reader.py
+18-15Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,10 @@ def __init__(self, verbose=False):
165165
self.verbose = verbose
166166
self.doc = None
167167
self.filename = None
168-
self.nml_to_moose = {} # NeuroML object to MOOSE object
168+
self.nml_cells_to_moose = {} # NeuroML object to MOOSE object
169+
self.nml_segs_to_moose = {} # NeuroML object to MOOSE object
170+
self.nml_chans_to_moose = {} # NeuroML object to MOOSE object
171+
self.nml_conc_to_moose = {} # NeuroML object to MOOSE object
169172
self.moose_to_nml = {} # Moose object to NeuroML object
170173
self.proto_cells = {} # map id to prototype cell in moose
171174
self.proto_chans = {} # map id to prototype channels in moose
@@ -252,7 +255,7 @@ def createCellPrototype(self, cell, symmetric=True):
252255
"""To be completed - create the morphology, channels in prototype"""
253256
nrn = moose.Neuron('%s/%s' % (self.lib.path, cell.id))
254257
self.proto_cells[cell.id] = nrn
255-
self.nml_to_moose[cell] = nrn
258+
self.nml_cells_to_moose[cell.id] = nrn
256259
self.moose_to_nml[nrn] = cell
257260
self.createMorphology(cell, nrn, symmetric=symmetric)
258261
self.importBiophysics(cell, nrn)
@@ -297,7 +300,7 @@ def createMorphology(self, nmlcell, moosecell, symmetric=True):
297300
except AttributeError:
298301
parent = None
299302
self.moose_to_nml[comp] = segment
300-
self.nml_to_moose[segment] = comp
303+
self.nml_segs_to_moose[segment.id] = comp
301304
p0 = segment.proximal
302305
if p0 is None:
303306
if parent:
@@ -356,15 +359,15 @@ def importCapacitances(self, nmlcell, moosecell, specificCapacitances):
356359
for specific_cm in specificCapacitances:
357360
cm = SI(specific_cm.value)
358361
for seg in sg_to_segments[specific_cm.segment_groups]:
359-
comp = self.nml_to_moose[seg]
362+
comp = self.nml_segs_to_moose[seg.id]
360363
comp.Cm = sarea(comp) * cm
361364

362365
def importInitMembPotential(self, nmlcell, moosecell, membraneProperties):
363366
sg_to_segments = self._cell_to_sg[nmlcell]
364367
for imp in membraneProperties.init_memb_potentials:
365368
initv = SI(imp.value)
366369
for seg in sg_to_segments[imp.segment_groups]:
367-
comp = self.nml_to_moose[seg]
370+
comp = self.nml_segs_to_moose[seg.id]
368371
comp.initVm = initv
369372

370373
def importIntracellularProperties(self, nmlcell, moosecell, properties):
@@ -379,7 +382,7 @@ def importSpecies(self, nmlcell, properties):
379382
continue
380383
segments = getSegments(nmlcell, species, sg_to_segments)
381384
for seg in segments:
382-
comp = self.nml_to_moose[seg]
385+
comp = self.nml_segs_to_moose[seg.id]
383386
self.copySpecies(species, comp)
384387

385388
def copySpecies(self, species, compartment):
@@ -405,7 +408,7 @@ def importAxialResistance(self, nmlcell, intracellularProperties):
405408
for r in intracellularProperties.resistivities:
406409
segments = getSegments(nmlcell, r, sg_to_segments)
407410
for seg in segments:
408-
comp = self.nml_to_moose[seg]
411+
comp = self.nml_segs_to_moose[seg.id]
409412
setRa(comp, SI(r.value))
410413

411414
def isPassiveChan(self,chan):
@@ -461,14 +464,14 @@ def importChannelsToCell(self, nmlcell, moosecell, membrane_properties):
461464

462465
if self.isPassiveChan(ionChannel):
463466
for seg in segments:
464-
comp = self.nml_to_moose[seg]
465-
setRm(self.nml_to_moose[seg], condDensity)
466-
setEk(self.nml_to_moose[seg], erev)
467+
comp = self.nml_segs_to_moose[seg.id]
468+
setRm(comp, condDensity)
469+
setEk(comp, erev)
467470
else:
468471
for seg in segments:
469-
self.copyChannel(chdens, self.nml_to_moose[seg], condDensity, erev)
470-
'''moose.le(self.nml_to_moose[seg])
471-
moose.showfield(self.nml_to_moose[seg], field="*", showtype=True)'''
472+
self.copyChannel(chdens, self.nml_segs_to_moose[seg.id], condDensity, erev)
473+
'''moose.le(self.nml_segs_to_moose[seg.id])
474+
moose.showfield(self.nml_segs_to_moose[seg.id], field="*", showtype=True)'''
472475

473476
def copyChannel(self, chdens, comp, condDensity, erev):
474477
"""Copy moose prototype for `chdens` condutcance density to `comp`
@@ -633,7 +636,7 @@ def importIonChannels(self, doc, vmin=-150e-3, vmax=100e-3, vdivs=5000):
633636
mchan = self.createHHChannel(chan)
634637

635638
self.id_to_ionChannel[chan.id] = chan
636-
self.nml_to_moose[chan] = mchan
639+
self.nml_chans_to_moose[chan.id] = mchan
637640
self.proto_chans[chan.id] = mchan
638641
if self.verbose:
639642
print(self.filename, 'Created ion channel', mchan.path, 'for', chan.type, chan.id)
@@ -658,7 +661,7 @@ def createDecayingPoolConcentrationModel(self, concModel):
658661
ca.thick = SI(concModel.shellThickness)
659662
ca.B = 5.2e-6 # B = 5.2e-6/(Ad) where A is the area of the shell and d is thickness - must divide by shell volume when copying
660663
self.proto_pools[concModel.id] = ca
661-
self.nml_to_moose[concModel.id] = ca
664+
self.nml_concs_to_moose[concModel.id] = ca
662665
self.moose_to_nml[ca] = concModel
663666
logger.debug('Created moose element: %s for nml conc %s' % (ca.path, concModel.id))
664667

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.