Skip to content

CA1 network with biophysical neuronal models with simplified morphology

Notifications You must be signed in to change notification settings

Poirazi-Lab/Turi_Neuron_2019

Repository files navigation

CA1 network with biophysical neuronal models

README file for Turi et al, 2018 Vasoactive intestinal polypeptide-expressing interneurons in the hippocampus support goal-oriented spatial learning

for more information, refer to the comments inside the scripts or contact me in: chavlis [DOT] spiros [AT] gmail [DOT] com

Scripts' author: S. Chavlis, PhD

VALIDATION OF NEURONS

Compile NEURON mod files

nrnivmodl mechanisms/

Passive properties

Go to ValidationTests

cd ValidationTests

execute for cell types

../x86_64/special -c icurrent=<current_amplitude> IinjectionAt<neuron_type>.hoc
  • <current_amplitude>: the injected at soma current in nA

  • <neuron_type> valid values

    • Axoaxonic
    • Basket
    • Bistratified
    • OLM
    • VIPCCK
    • VIPCR
    • Pyramidal

e.g.,

../x86_64/special -c icurrent=-0.1 IinjectionAtPyramidal.hoc

In order to reproduce all figures with validation results, run for multiple currents from -0.20 to 0.40.

Synaptic Properties

Go to ValidationTests

cd ValidationTests

Execute for Interneurons

../x86_64/special synaptic_validation_<neuronal_type>.hoc

Valid values for <neuronal_type>

  • Axoaxonic
  • Basket
  • Bistratified
  • OLM
  • VIPCCK
  • VIPCR

e.g.,

../x86_64/special synaptic_validation_Axoaxonic.hoc

These scripts create the folder SynapticProperties and inside the .txt files are saved.

Execute for Pyramidal (all but NMDA)

../x86_64/special synaptic_validation_Pyramidal.hoc

Execute for Pyramidal NMDA synapses

../x86_64/special synaptic_validation_Pyramidal_NMDA.hoc

To create the plots shown in Figure S7 (A-D) after executing NEURON for all cells and NMDA synapses for Pyramidal, run

python synaptic_validation_plots.py <neuronal_type>

Valid values for <neuronal_type>

  • Axoaxonic
  • Basket
  • Bistratified
  • OLM
  • VIPCCK
  • VIPCR
  • Pyramidal

Inputs from EC LIII and CA3 SC

python synaptic_validation_plots.py EC_CA3

INPUT CREATION

First you have to create the Inputs, go in make_inputs_linear_track directory

cd make_inputs_linear_track

In a command line execute

python make_grid_like_inputs_speed_prelearning.py <run_number>
python make_grid_like_inputs_speed_mod.py <run_number>

<run_number> is a specific run form one edge of the track to the other. To replicate the figures one needs 5 runs

After the simulation of all runs create the grid-like inputs by executing

python glim_v2_prelearning.py <total_number_of_runs>
python glim_v2_speed_mod.py <total_number_of_runs> <modulation_type>

<modulation_type> is 'pos' or 'neg', e.g., python glim_v2_speed_mod.py 5 pos

Then enter background_noise directory

cd ../backgroun_noise

create the background noise by executing

python poisson_input.py <total_number_of_runs> <poisson_rate>  # e.g., poisson_input.py 5 5

PRELEARNING SIMULATIONS

return to main directory

cd ../

Run the simulation

.x86_64/special -nogui -c n_runs=<run_number> -c n_trials=<virtual_mouse_id> -c n_neuron=<deletion_type> Network_prelearning.hoc

e.g., .x86_64/special -nogui -c nruns=1-c ntrials=1 -c n_neuron=No_VIPcells Network_prelearning.hoc

to replicate the results of the paper you need 5 runs/trial and 10 trials and all possible deletions (see below)

Valid deletions:

  • Control: All connections and cells, default
  • No_VIPcells: All VIP+ neurons are removed
  • No_VIPCR: All VIP+/CR+ neurons are removed
  • No_VIPCCK: All VIP+/CCK+ neurons are removed
  • No_VIPPVM: All VIP Positive Velocity Modulated cells are removed
  • No_VIPNVM: All VIP Negative Velocity Modulated cells are removed
  • No_VIPCRtoBC: All VIP/CR to Basket Cells connections are removed
  • No_VIPCRtoOLM All VIP/CR to OLM Cells connections are removed

Output of the simulation is saved into Simulation_Results/prelearning

LOCOMOTION SIMULATIONS

Run the locomotion

.x86_64/special -nogui -c nruns=<run_number> -c ntrials=<virtual_mouse_id> -c n_neuron=<deletion_type> Network_locomotion.hoc

e.g., .x86_64/special -nogui -c nruns=1-c ntrials=1 -c n_neuron=No_VIPcells Network_locomotion.hoc

Output of the simulation is saved into Simulation_Results/locomotion

ANALYSIS OF LOCOMOTION DATA BEFORE PROCEEDING

First, one needs to extract the spiketimes for neurons in order to analyze them Go to AnalysisRawData directory

cd AnalysisRawData

Exctract spike times

python spiketimes_analysis.py <neuron_type> <deletion> <learning_mode> <number_of_trial> <number_of_run>

Valid <neuron_type> values:

  • _pvsoma_ : Pyramidal cells
  • _aacell_ : Axoaxonic cells
  • _bcell_ : Basket cells
  • _bscell_ : Bistratified cells
  • _olmcell_ : OLM cells
  • _vipcck_ : VIP/CCK cells
  • _vipcr_ : VIP/CR PVM cells
  • _vipcrnvm_ : VIP/CR NVM cells

Valid <learning_mode> values:

  • prelearning
  • locomotion
  • reward

After the analysis for all trials, runs and deletions execute:

python all_path_all_spiketimes.py <learning_mode> # e.g., python all_path_all_spiketimes.py locomotion

This will create the subfolder data_analysis/locomotion/metrics_permutations or data_analysis/prelearning/metrics_permutations where the spiketimes and the path for all cases is stored (for better handling)

Then execute the command below to calculate whose cell firing rate is above the threshold in the reward zone

python plasticity_indices.py

This command will create a .txt file in Simulation_Results/<learning_mode>/<deletion_type>/Trial_<trial_number> with the indices of the cells undergo plasticity

REWARD+LOCOMOTION SIMULATIONS

Run the locomotion+reward Go to main directory

cd ../
.x86_64/special -nogui -c nruns=<run_number> -c ntrials=<virtual_mouse_id> -c n_neuron=<deletion_type> Network_reward.hoc

e.g., .x86_64/special -nogui -c nruns=1-c ntrials=1 -c n_neuron=No_VIPcells Network_reward.hoc

Output of the simulation is saved into Simulation_Results/reward

ANALYSIS OF FINAL DATA

Go to AnalysisRawData directory

cd AnalysisRawData
python spiketimes_analysis.py <neuron_type> <learning_mode> <deletion_type> <number_of_trial> <number_of_run> # for all runs, trials, neuronal_types etc.
python all_path_all_spiketimes.py <learning_mode> # for all learning modes, except for locomotion (see above)
python heatmaps.py <number_of_trial> <deletion_type> <learning_mode> # this produces heatmps and all metrics per deletion and per trial
python heatmaps_interneurons.py <number_of_trial> <deletion_type> <learning_mode> <interneuronal_type> # same as the above, but now for interneurons

valid <interneuronal_type>:

  • aacell : Axoaxonic cells
  • bcell : Basket cells
  • bscell : Bistratified cells
  • olm : OLM cells
  • vipcck : VIP/CCK cells
  • vipcr : VIP/CR PVM cells
  • vipcrnvm : VIP/CR NVM cells
python all_trials_paper_all.py # produces the altogether heatmaps
python all_trials_paper_all_interneurons.py # produces the altogether heatmaps
python all_trials_enrichment.py # produces the barplot with the enrichment for all deletion types and learning modes

for more information, refer to the comments inside the scripts or contact me in: chavlis [DOT] spiros [AT] gmail [DOT] com

About

CA1 network with biophysical neuronal models with simplified morphology

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published