Page 1 of 1

Adding uniform Synapses on 3D structure Cell

Posted: Thu Jul 13, 2017 5:43 pm
by Mohamed_Hisham
Hello

I am trying to put uniform synapses on a 3D structure of a motoneuron , the motoneuron consist of 731 section.
I want to spread the synapses uniformly on the 3D structure of the cell. so that if a section consist of 3 nseg , we should Have 3 synapses on that section.

Code: Select all


SysIVibrationFreq 	= 180
SysITimeofVibration = 1e9
STARTTIME			= 1
INTERVAL			= 1

R_SysISyn_Erev 	= 0					#...FR...
R_SysISyn_tau1 	= 0.2
R_SysISyn_tau2 	= 0.2				# deactivation

netParams.popParams['FR'] = {'cellType': 'FR', 'numCells': 2, 'cellModel': 'HH3D'}
cellRule0 = netParams.importCellParams(label = 'FR',conds={'cellType': 'FR', 'cellModel': 'HH3D'}, fileName= 'FRcellTemplate.hoc', cellName='FR_Cell',importSynMechs=False)
netParams.cellParams['FRrule'] = cellRule0 		

netParams.synMechParams['FR_syn'] = {'mod': 'Exp2Syn', 'tau1': R_SysISyn_tau1, 'tau2': R_SysISyn_tau2, 'e': R_SysISyn_Erev}


netParams.stimSourceParams['stim1'] = {'type': 'NetStim', 'interval': 1000/SysIVibrationFreq , 'number': SysITimeofVibration*SysIVibrationFreq/1000, 'start': STARTTIME	, 'noise': 0}

netParams.stimTargetParams['stim1->FR'] = {'source': 'stim1', 'conds': {'cellType': 'FR'} ,'weight': 1,'sec':'all','synPerConn':??? , 'delay': 1, 'synMech': 'FR_syn'}
for the "stimTargetParams" i am not sure how to mention the 731 sections for the "sec" attribute , and how to set the "sysPerConn" attribute , as the number of synapses for each section should be the same as nseg at the same section.

I want to ask also if there is a way i can set the total conductance of these synapses.


Thanks

Re: Adding uniform Synapses on 3D structure Cell

Posted: Fri Jul 14, 2017 10:21 pm
by ted
uniform synapses
Does your definition of "uniform" have any relationship to what anatomists call "synaptic density"? Two different definitions of synaptic density have been proposed. One is
# synapses/dendritic length in um
and the other is
# synapses/dendritic surface area in um2.
The last time I looked at the literature on synaptic density, there was some evidence that the second definition made more sense in terms of how cells are actually innervated, but most modelers were using the first definition. Then there's the question of whether synaptic density is uniform over the surface of a cell, or whether there is systematic variation, e.g. with radial or path distance from the soma or, in the case of neurons in layered cortex, with distance (depth) from the cortical surface or with vertical distance from the cortical layer where the cell bodies are located. There was some evidence that, in pyramidal neurons, density of excitatory varied with path distance from the soma, reaching a maximum somewhere around 100-200 um from the soma as I recall.

If you want each segment to have just 1 instance of a particular synaptic mechanism, do you plan to adjust synaptic weight according to segment length to reflect the fact that, in a real cell, the number of synapses attached to a particular part of a neurite depends on the length of that piece of neurite? Or, if your afferent spike streams have negexp statistics, and each synaptic mechanism is driven by a single NetCon, will the mean event rate delivered by each NetCon be proportional to the anatomical length (or surface area) of the segment to which the synaptic mechanism is attached?

Re: Adding uniform Synapses on 3D structure Cell

Posted: Mon Jul 17, 2017 1:57 pm
by Mohamed_Hisham
ted wrote:
uniform synapses
Does your definition of "uniform" have any relationship to what anatomists call "synaptic density"? Two different definitions of synaptic density have been proposed. One is
# synapses/dendritic length in um
and the other is
# synapses/dendritic surface area in um2.
The last time I looked at the literature on synaptic density, there was some evidence that the second definition made more sense in terms of how cells are actually innervated, but most modelers were using the first definition.
Yes , my definition of uniform synaptic density is per unit area , I used to calculate each section area in "hoc" and divide it with the total dendrites area to calculate the section share from the total conductance of the synapses.

Code: Select all

Gsynapse = (Total_synapses_Conductance*$o1.SectionArea)/($o1.TotalArea*$o1.NumSysISynapsesPerSection)
and number of synapses per section used to be the same as nseg per section

Then there's the question of whether synaptic density is uniform over the surface of a cell, or whether there is systematic variation,
for now, the density is uniform over the surface of the cell ,no systemic variation needed yet.
do you plan to adjust synaptic weight according to segment length to reflect the fact that, in a real cell, the number of synapses attached to a particular part of a neurite depends on the length of that piece of neurite
in my project design the number of synapses should also be function in the section length , so I thought setting the number of synapses equal to nseg per section would be reasonable and practical. but I don't have an idea how to do it using NetPyNE package ,also i am not sure what it is meant by uniform density in the NetPyNE documentation , it is written that it should depend on each section length , but how about the conductance ? is it related to each section area.

Thank you very much ted , looking forward for your reply

Re: Adding uniform Synapses on 3D structure Cell

Posted: Mon Jul 17, 2017 10:56 pm
by ted
Unfortunately I know almost nothing about NetPyNE--Salvador Dura will have to tell you how to do what you want with NetPyNE.

Re: Adding uniform Synapses on 3D structure Cell

Posted: Wed Jul 19, 2017 9:22 am
by salvadord
Hi Mohamed, thanks for your message. By default, when synsPerConn > 1, netpyne distributes synapses uniformly based on dendritic length in um (sums up all dend lengths and places syns at equally spaced intervals). However, it does not take into account section area. However, if you want to place 1 syn / seg thats also possible by creating individual stimTargetParams rules in a for loop.

In the code below I provide examples of both cases (uniform distribution based on dend length and 1 syn/seg):

Code: Select all

netParams = specs.NetParams()   # object of class NetParams to store the network parameters

SysIVibrationFreq    = 180
SysITimeofVibration = 1e9
STARTTIME         = 1
INTERVAL         = 1

R_SysISyn_Erev    = 0               #...FR...
R_SysISyn_tau1    = 0.2
R_SysISyn_tau2    = 0.2            # deactivation

# populations
netParams.popParams['FR'] = {'cellType': 'FR', 'numCells': 2, 'cellModel': 'HH3D'}

# cell rules
#cellRule0 = netParams.importCellParams(label = 'FR',conds={'cellType': 'FR', 'cellModel': 'HH3D'}, fileName= 'FRcellTemplate.hoc', cellName='FR_Cell',importSynMechs=False)
cellRule = {'conds': {'cellModel': 'HH3D', 'cellType': 'FR'},  'secs': {}}   # cell rule dict
nsec = 10
nseg = 5
for isec in range(nsec):
    cellRule['secs']['sec_'+str(isec)] = {'geom': {'nseg': nseg}, 'mechs':{}}
netParams.cellParams['FRrule'] = cellRule

# synapses
netParams.synMechParams['FR_syn'] = {'mod': 'Exp2Syn', 'tau1': R_SysISyn_tau1, 'tau2': R_SysISyn_tau2, 'e': R_SysISyn_Erev}

# stimulation
netParams.stimSourceParams['stim1'] = {'type': 'NetStim', 'interval': 1000/SysIVibrationFreq , 'number': SysITimeofVibration*SysIVibrationFreq/1000, 'start': STARTTIME, 'noise': 0}

# OPTION 1: syns distributed uniformly across sec length (in um)
netParams.stimTargetParams['stim1->FR'] = {'source': 'stim1', 'conds': {'cellType': 'FR'} ,'weight': 1, 'sec':'all', 'synsPerConn': nsec*nseg , 'delay': 1, 'synMech': 'FR_syn'}

# OPTION 2: 1 syn per segment
for secName,sec in netParams.cellParams['FRrule']['secs'].iteritems():
    for iseg in range(sec['geom']['nseg']):
        netParams.stimTargetParams['stim1->FR_'+secName+'_'+str(iseg)] = \
        {'source': 'stim1', 'conds': {'cellType': 'FR'} ,'weight': 1, 'sec': secName, 'loc': (iseg+1)*(1.0/nseg)-(0.5/nseg), 'synPerConn':1 , 'delay': 1, 'synMech': 'FR_syn'}