ted wrote: ↑Mon Sep 14, 2020 1:46 pm
gladonias wrote: ↑Mon Sep 14, 2020 7:36 am
Let's say you instantiated a model of a neuron into a variable named cell
, you can get the total number of dendritic compartments with len(cell.dend)
Interesting. Can you provide a working example?
Here's a snippet of one of my scripts where preSyn
is the pre-synaptic neuron, and postSyn
is the post-synaptic one:
Code: Select all
def establishSynapses(preSyn, postSyn, thres=10, w=.04):
# Calculate the number of connections between preSyn and postSyn.
numConnections = int(round((getConnectionProbability(preSyn, postSyn) / 100) * len(postSyn.dend), 0))
for i in range(numConnections):
syn = neuron.h.ExpSyn(0.5, sec = postSyn.dend[i])
nc = neuron.h.NetCon(preSyn.soma(0.5)._ref_v, syn, sec=preSyn.soma)
nc.weight = w
nc.delay = 0
nc.threshold = thres
The Blue Brain Project's NMC Portal
also provides information on connection probabilities between different combinations of models of neurons. Because I was trying to create a network of one hundred-ish neurons, I didn't want to scrape their website to get each pair of connection probability, so I got every pair I needed and saved to a local file. Then, I use the function getConnectionProbability
only to get the specific probability value from the file.
Then I divided it by 100 because, in the website, the probability is given in percentage, and I multiple it by the number of dendritic compartments, which I round it to zero decimal places and convert it to integer so I can use it in the for
loop, one for the number of connection and other for the number of synapses per connection.
The variable numConnections
is the fraction of dendritic compartments based on the connection probability of that specific pair of neurons. Thus, my for
loop will run for numConnections
times and in each time, it is going to establish one synapse per connection. NMC Portal provides the number of synapses per connection as well, in this case I'd say the best approach would be to code a nested for
The variables for h.ExpSyn and h.NetStim follow the same nomenclature as the ones in the NEURON+Python Tutorial