Olfactory bulb microcircuits model with dual-layer inhibition (Gilra & Bhalla 2015)

 Download zip file 
Help downloading and running models
Accession:153574
A detailed network model of the dual-layer dendro-dendritic inhibitory microcircuits in the rat olfactory bulb comprising compartmental mitral, granule and PG cells developed by Aditya Gilra, Upinder S. Bhalla (2015). All cell morphologies and network connections are in NeuroML v1.8.0. PG and granule cell channels and synapses are also in NeuroML v1.8.0. Mitral cell channels and synapses are in native python.
Reference:
1 . Gilra A, Bhalla US (2015) Bulbar microcircuit model predicts connectivity and roles of interneurons in odor coding. PLoS One 10:e0098045 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Olfactory bulb;
Cell Type(s): Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron periglomerular GABA cell; Olfactory bulb main interneuron granule MC GABA cell;
Channel(s): I A; I h; I K,Ca; I Sodium; I Calcium; I Potassium;
Gap Junctions:
Receptor(s): AMPA; NMDA; Gaba;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: Python; MOOSE/PyMOOSE;
Model Concept(s): Sensory processing; Sensory coding; Markov-type model; Olfaction;
Implementer(s): Bhalla, Upinder S [bhalla at ncbs.res.in]; Gilra, Aditya [aditya_gilra -at- yahoo -period- com];
Search NeuronDB for information about:  Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron periglomerular GABA cell; Olfactory bulb main interneuron granule MC GABA cell; AMPA; NMDA; Gaba; I A; I h; I K,Ca; I Sodium; I Calcium; I Potassium; Gaba; Glutamate;
These instructions are quite outdated. For the paper, I have automated procedures for many of these.
 See the files in the folder that have _repeats in their names,
 those automate the tedious multiple runs with different seeds.
- Aditya Gilra, aditya_gilra@yahoo.com

--------------------------------------------------------------------

unitary granule-|mitral IPSPs:
To get unitary IPSPs due to 20 randomly located granule-|mitral synapses, each activated 300ms apart.
in cells/ folder:
python2.6 CellTest_synapses.py mitral granule_mitral Iclamp 20 300e-3 staggered
(each sim with 100:1 singles and 2:1 joint granules takes ~30 seconds)

--------------------------------------------------------------------

unitary PG-|mitral IPSPs:
To set these to be comparable to granule-|mitral unitary IPSPs:
check similar to above:
in cells/ folder:
python2.6 CellTest_synapses.py mitral PG_mitral Iclamp 20 300e-3 staggered
(each sim with 100:1 singles and 2:1 joint granules takes ~30 seconds)

--------------------------------------------------------------------

mitral->granule EPSP summation:
100Hz EPSPs for 400ms required to make granule fire:
in cell/ folder:
python2.6 CellTest_synapses.py granule mitral_granule Iclamp 100 10e-3 staggered
(each sim with 100:1 singles and 2:1 joint granules takes ~30 seconds)

--------------------------------------------------------------------

composite self vs lateral IPSPs:

Set DIRECTED=False in networkConstants.py, since we replicate random two mitrals which may not be connected.
generate the neuroml file as above.
set the seed in simset_inhibition.py
on the cluster, in simulations directory, execute:
mpiexec -machinefile ~/hostfile -n 3 ~/Python-2.6.4/bin/python2.6 inhibition_recvslat.py
(each sim with 100:1 singles and 2:1 joint granules takes ~2 minutes)

to get the recurrent IPSP after 5 spikes in 125ms (40Hz):
(comment/uncomment the relevant lines)
1) set offInject = 650e-12 in simset_inhibition.py
2) set ipulse_duration = 125e-3 in setup_stim() of inhibition_recvslat.py
then execute above command on cluster.

to get the recurrent and lateral IPSP after 9 spikes in 400ms (~23Hz):
(comment/uncomment the relevant lines)
1) set offInject = 375e-12 in simset_inhibition.py
2) set ipulse_duration = 400e-3 in setup_stim() of inhibition_recvslat.py
then execute above command on cluster.

--------------------------------------------------------------------

For odor morphs/pulses:
DIRECTED = True, frac_directed = 0.0 in networkConstants.py.
MG_CONC = 1.0 mM in synapseConstants.py.
set net seed in stimuliConstants.py and generate_neuroml.
set seed in simset_odor.py
and run from node000 of cluster in simulations/ folder.

---------------------------------------------------------------------

For testing activity dependent inhibition IN VITRO:

MG_CONC must be 1.0mM in synapseConstants.py.
--> Create the baseline firing files for the granule cells by executing in generators/ folder:
    (creates constant baseline for invitro, invivo. also creates respiration tuned baseline in vivo)
    python generate_firefiles_gran_baseline.py invitro
--> Ensure that settings in simset_activinhibition.py are default.
    --> Set mitdistancestr = "_mitdist75.0"
    --> IN_VIVO = False
--> If simulating for random connectivity:
    --> Set DIRECTED=False in networkConstants.py.
    --> Set granule_mitral_GABA_Gbar = 5e-9 # Siemens
        self_mitral_GABA_Gbar = 50e-12 # Siemens
        in synapseConstants.py
    else if simulating for directed connectivity:
    --> Set DIRECTED=True in networkConstants.py.
    --> Set granule_mitral_GABA_Gbar = 2e-9 # Siemens
        self_mitral_GABA_Gbar = 50e-12 # Siemens
        in synapseConstants.py

Repeat below steps for network seeds 100.0 to 1000.0 in steps of 100.0
{
    --> Set the network seed in stimuliConstants.py,
        MIT_DISTANCE for the TWOGLOMS if part as set above,
        and in generators folder, execute:
    python generate_neuroml.py 2GLOMS INVITRO
    --> Set the network seed in simset_activinhibition.py
    --> On a cluster, in the simulations directory, execute:
    nohup mpiexec -machinefile ~/hostfile -n 61 ~/Python-2.6.4/bin/python2.6 activdep_inhibition.py < /dev/null &
    (each sim with 20:1 singles and 2:1 joint granules takes ~5 minutes)
    --> Figure should come up at end of the simulation and a results file will be saved in results/ADI folder.
    --> Change REVERSED_ADI=True in simset_activinhibition.py
    --> Run above simulation again to generate reversed ADI results for all the seeds.
    rm nohup.out
}

--------------------------------------------------------------------

For testing activity dependent inhibition IN VIVO:

--> Create the baseline firing files for the granule cells by executing in generators/ folder:
    (creates constant baseline for invitro, invivo. also creates respiration tuned baseline in vivo)
    python generate_firefiles_gran_baseline.py noresp
--> Settings in simset_activinhibition.py should be default; except that IN_VIVO=True
Rest of the steps are same as above, except while generating the network in the loop, execute:
python generate_neuroml.py 2GLOMS

--------------------------------------------------------------------

For testing asymmetry in lateral inhibition / activity dependent inhibition:

set MG_CONC = 0.2 # mM instead of 1mM to replicate Giridhar et al's experimental conditions.
Set DIRECTED=False in networkConstants.py, since we replicate random two mitrals which may not be connected.
Repeat below steps for network seeds 100.0 to 1000.0 in steps of 100.0
{
    --> Set the network seed in stimuliConstants.py and in generators folder, execute:
    python generate_neuroml.py 2GLOMS INVITRO
    --> Set the network seed in simset_activinhibition.py
    --> Set ASYM_TEST = True (inject same current in mits A and B) and REVERSED_ADI = False
    --> On a cluster, in the simulations directory, execute:
    nohup mpiexec -machinefile ~/hostfile -n 61 ~/Python-2.6.4/bin/python2.6 activdep_inhibition.py < /dev/null &
    (each sim with 100:1 singles and 2:1 joint granules takes ~2 minutes)
    --> Figure should come up at end of the simulation and a results file will be saved in results/ADI folder.
    --> Change REVERSED_ADI=True in simset_activinhibition.py
    --> Run above simulation again to generate reversed ADI results for all the seeds.
    rm nohup.out
}

--------------------------------------------------------------------

For activity dependent inhibition with constant spiking input in tuft:

## generate neuroml
Set directed=True / False with frac_directed in ../networks/networkConstantsMinimal.py
Set stim_net_seed=100.0 and mit_distance=50.0 in stimuliConstantsMinimal.py
from generators/ folder run:
python2.6 generate_neuroml 2GLOMS <INVITRO>
## generate firefiles with constant input
already present
## run the tuft-input simulations
Set netseedstr, mitdistance, mitdistancestr and IN_VIVO in simset_activinhibition_minimal.py
Also set singles, joints, PGs etc on/off in simset_activinhibition.py
in simulations folder from node000:
nohup mpiexec -machinefile ~/hostfile -n 41 ~/Python-2.6.4/bin/python2.6 inhibition_tuftinput.py < /dev/null &

---------------------------------------------------------------------