Vanier piriform cortex model
This presentation is the property of its rightful owner.
Sponsored Links
1 / 36

Vanier Piriform Cortex Model PowerPoint PPT Presentation


  • 61 Views
  • Uploaded on
  • Presentation posted in: General

Vanier Piriform Cortex Model. Simon O’Connor University of Herfordshire OSB Hackathon 2013. Rat Olfactory System. O’Connor et al. (2012) Olfactory Bulb Model. Vanier (2001) Piriform Cortex Model. Model Constructed in Genesis.

Download Presentation

Vanier Piriform Cortex Model

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Vanier piriform cortex model

Vanier Piriform Cortex Model

Simon O’Connor

University of Herfordshire

OSB Hackathon 2013


Rat olfactory system

Rat Olfactory System


O connor et al 2012 olfactory bulb model

O’Connor et al. (2012)Olfactory Bulb Model


Vanier 2001 piriform cortex model

Vanier (2001) Piriform Cortex Model


Model constructed in genesis

Model Constructed in Genesis

125 interlocking GENESIS files including several different versions of the

Vanier Piriform Cortex model. The generic version initiated by piriform.g


Piriform g

piriform.g

include piriform_control.g // Top-level simulation control stuff.

include piriform_free_params.g // "Free" parameters for the model.

include piriform_setup.g // Set up simulation parameters.

include piriform_sched.g // Simulation schedule.

include piriform_params.g // Network parameters.

include piriform_utils.g // Various utility functions.

include piriform_reset.g // Reset functions.

include piriform_check.g // Check functions.

include piriform_inputs.g // Set up the inputs to the piriform cortex.

include piriform_cells.g // Create the cells.

include piriform_neuromod.g // Set up neuromodulation.

include piriform_params_conn.g // Network parameters relating to connections.

include neuron_groups.g // Define neuronal groups.

include piriform_connect.g // Wire up the network.

include piriform_weight_dump.g // Dump xview files of the synaptic weights.

include piriform_outputs.g // Record outputs.

//include piriform_test_cells.g // Calculate steady states of cells.

include piriform_field.g // Set up field potential measuring system.

include dumptables.g // Utilities for dumping channel table data.


Piriform cells g includes 3 cell types

piriform_cells.g includes 3 Cell types

// genesis

//

// piriform_cells.g: creating and positioning the cell arrays.

//

include pyramidal.g // Superficial Layer 2 pyramidal cell

include fb_inhib.g //Feedback inhibitory cell

include ff_inhib.g// Layer 1 horizontal cell: a feed forward inhibitory interneuron


Osb cortical modelling requirements

OSB Cortical Modelling Requirements

  • The ability to define a range of cells in terms of their morphology and biophysics 


Parameter optimisation caveat

Parameter Optimisation Caveat

    // Shift the inactivation curve to the left.

mod_scaletabchanpyr_Ka Y minf 1.0 1.0 -0.010 0.0

    // Slow down the inactivation kinetics.

mod_scaletabchanpyr_Ka Y tau 1.0 10.0 0.0 0.0

    // Parameter search adjustments:

mod_scaletabchanpyr_Ka X tau 1.0 1.39532 0.0 0.0

mod_scaletabchanpyr_Ka Y tau 1.0 0.538194 0.0 0.0

    call pyr_Ka INITREFCOUNT


Piriform cells g

piriform_cells.g

inti

if (!{exists /cell_library})

    create neutral /cell_library

    disable /cell_library

end

create neutral /piriform_cortex

// NOTE: The Z position of piriform cortex pyramidal cell somas is 0.0.


Piriform cells g setting up a pyramidal cell array

piriform_cells.gsetting up a Pyramidal Cell array

// ------------------------------------------------------------

// Pyramidal cells:

// ------------------------------------------------------------

echo Creating {PIRIFORM_N_PYRAMIDAL} pyramidal cells in a" " -n

echo {XSCALE} x {YSCALE} array.


Piriform cells g ventral anterior piriform cortex

piriform_cells.g// Ventral anterior piriform cortex:

create_element_grid /cell_library/pyramidal_cell_vAPC \

        /piriform_cortex \

        {PIRIFORM_NX_PYRAMIDAL} \

        {PIRIFORM_NY_PYRAMIDAL} \

        -newname "pyramidal_cell" \

        -delta {PIRIFORM_DX_PYRAMIDAL} \

                    {PIRIFORM_DY_PYRAMIDAL} \

        -origin {PIRIFORM_PYRAMIDAL_X_OFFSET} \

                    {PIRIFORM_PYRAMIDAL_Y_OFFSET} \

        -zposition {PIRIFORM_PYRAMIDAL_Z_OFFSET} \

        -mask ellipse 0.0 0.0 \

                    {PIRIFORM_X_CENTER} \

                    {PIRIFORM_Y_CENTER} \

        -debug 0


Piriform cells g the rest of piriform cortex

piriform_cells.g// The rest of piriform cortex:

create_element_grid /cell_library/pyramidal_cell \

        /piriform_cortex \

        {PIRIFORM_NX_PYRAMIDAL} \

        {PIRIFORM_NY_PYRAMIDAL} \

        -delta {PIRIFORM_DX_PYRAMIDAL} \

                    {PIRIFORM_DY_PYRAMIDAL} \

        -origin {PIRIFORM_PYRAMIDAL_X_OFFSET} \

                    {PIRIFORM_PYRAMIDAL_Y_OFFSET} \

        -zposition {PIRIFORM_PYRAMIDAL_Z_OFFSET} \

        -all \

        -hole ellipse 0.0 0.0 \

                    {PIRIFORM_X_CENTER} \

                    {PIRIFORM_Y_CENTER} \

        -replace \

        -check \

        -debug 0


Osb cortical modelling requirements1

OSB Cortical Modelling Requirements

  • The ability to define a range of cells in terms of their morphology and biophysics 

  • The ability to arrange the cells in arrays 

  • The ability to scale cell arrays by number of cells to allow small test set-ups to be scaled up in size for runs on large clusters computers


Piriform cells g specify solver

piriform_cells.g specify solver

// Create the hsolvers for all pyramidal cells.

// Use the Crank-Nicolson integration method (method 11).

for (i = 0; i < PIRIFORM_N_PYRAMIDAL; i = i + 1)

new_hsolve /piriform_cortex/pyramidal_cell[{i}] 11

end


Navigating to another point in the script tree

navigating to another point in the script tree

piriform_cells.g

include pyramidal.g

// genesis

//

// pyramidal.g: a reduced 15-compartment model of a layer 2

// pyramidal cell in piriform cortex.

//

include pyr_chans.g

include pyr_cell.g

make_pyramidal_cell


P yr chans g

pyr_chans.g

// genesis

//

// pyr_chans.g: Define the channel library for the

// layer 2 pyramidal cell simulation.

//

include pyr_reversal_potentials.g

include pyr_synchans.g

include pyr_vdepchans.g


Pyr synchans g

pyr_synchans.g

// genesis

//

// pyr_synchans.g

//

// This script contains the final versions of various synaptic

// objects that form part of the pyramidal cell model.

//

//

// N.B. There is no compelling experimental evidence regarding what the

// relative proportion of NMDA to non-NMDA receptors is. The Kapur

// et. al. paper (J. Neurophys. 78(5): 2546-59, 1997) implies that

// it's about 60% of the AMPA component, so that's what I'll use for

// layer 1b. For layer 1a I'll use 20%, since the LTP evidence

// (e.g. Kanter and Haberly, Brain Res. 525: 175-179 (1990)) suggests

// that there's much less NMDA current in layer 1a. Other NMDA

// parameters are also taken from Kapur et. al.

//

// The AMPA taus are from my own experimental work, but are similar

// to what Kapur et. al. use (actually slightly slower).

//


Pyr synchans g1

pyr_synchans.g

// ----------------------------------------------------------------------

//

// EXCITATORY SYNAPSES ONTO PYRAMIDAL CELLS.

//

// ----------------------------------------------------------------------

// The synaptic tau values for layer 1a and 1b synapses were taken from my

// extracellular experiments. The facilitation/depression parameters were

// taken from a parameter search; that's why there are so many decimal

// places of "accuracy".

//

// 1) Afferent (layer 1a) synapses.

//


Pyr synchans g mod facsynchan wnmda

pyr_synchans.gmod_facsynchan_wNMDA

function make_pyr_aff_exc_syn

    if ({exists pyr_aff_exc_syn})

        return

    end

    create mod_facsynchan_wNMDApyr_aff_exc_syn

    // N.B. Gbar is set by the cellreader.

setfield ^ \

Gbar 0.0 \

Ek {PYR_AMPA_EREV} \

        tau1 0.001 \

        tau2 0.0016 \

mod_index 3 \

fac_depr_on 1 \

max_fac 2.0 \

fac_per_spike 3.64462 \

fac_tau 0.162229 \

        depr1_per_spike 0.786772 \

        depr1_tau 0.1262774 \

        depr2_per_spike 0.640371 \

        depr2_tau 0.321689 \

NMDA_Ek {PYR_NMDA_EREV} \

        NMDA_tau1 0.060 \

        NMDA_tau2 0.066 \

NMDA_pGbar {FP_PYR_AFF_NMDA_PGBAR} \

NMDA_Mg 1.0 \ // mM

NMDA_eta {FP_NMDA_ETA} \ // mM^(-1)

NMDA_gamma {FP_NMDA_GAMMA} \ // V^(-1)

NMDA_mod_index 3

End


Osb cortical modelling requirements2

OSB Cortical Modelling Requirements

  • The ability to define a range of cells in terms of their morphology and biophysics 

  • The ability to arrange the cells in arrays 

  • The ability to scale cell arrays by number of cells to allow small test set-ups to be scaled up in size for runs on large clusters computers

  • The ability to handle synapse objects such as GENESIS facsynchan


P yr cell g

pyr_cell.g

// genesis

//

// pyr_cell.g: defines a layer 2 pyramidal cell in piriform cortex.

//

if (no_pyr_Kahp)

strpyramidal_cell_parameter_file = "pyramidal_no_Kahp.p"

str pyramidal_cell_parameter_file2 = "pyramidal_no_Kahp.p"

else

strpyramidal_cell_parameter_file = "pyramidal.p"

str pyramidal_cell_parameter_file2 = "pyramidal.p"

end


Pyramidal p

pyramidal.p

//

// pyramidal.p: superficial layer 2 pyramidal cell in piriform cortex.

//

// N.B. the high "accuracy" of some numbers is because these numbers

// were derived from a parameter search.

//

// The conductance values used are:

//

// excitatory AMPA: 0.5 nS

// inhibitory fast GABA-A: 1.15 nS

//

// Note that excitatory NMDA is implemented as a proportion of the total

// AMPA conductance, so we don't need it here. This is also true for

// inhibitory slow GABA-A and inhibitory slow GABA-B conductances.

// For the ratios used see pyr_synchans.g.

//


Pyramidal p1

pyramidal.p

*compt /library/pyr_compartment

*set_compt_param RA 0.5829

*set_compt_param CM 0.0436

*set_compt_paramEm -0.0746751

*set_compt_paraminitVm -0.0746751

*set_compt_param RM 0.451628

//*lambda_unwarn


Pyramidal p2

pyramidal.p

soma none 0.0 0.0 21.3487 10.4300 \

pyr_Na 2006.63 \

pyr_Na_pers 64.8558 \

pyr_Kdr 241.793 \ // 251.793

pyr_Ka 440.684 \

pyr_KM 57.1509 \

pyr_Ca 11.1791 \

pyr_Ca_conc 1.26684e+19 \

pyr_Kahp 15.3955 \

pyr_layer2_3_inh_syn 0.5e-9 \

pyr_ext_exc_syn 0.2e-9 \

pyr_spikegen 0.0


P iriform params g

piriform_params.g

// ------------------------------------------------------------------------

// Cortical dimensions

// ------------------------------------------------------------------------

float PIRIFORM_X_EXTENT = 8.0e-3 // 8 mm

float PIRIFORM_Y_EXTENT = 3.0e-3 // 3 mm


Piriform params g

piriform_params.g

// ------------------------------------------------------------------------

// Cell numbers.

// ------------------------------------------------------------------------

int XSCALE, YSCALE, XSCALE2, YSCALE2, XSCALE3, YSCALE3

  • // For pyramidal cells.

  • if (scale == "large")

  •     XSCALE = 50

  •     YSCALE = 20

  • elif (scale == "medium")

  •     XSCALE = 32

  •     YSCALE = 12

  • elif (scale == "medium-small")

  •     XSCALE = 20

  •     YSCALE = 10

  • else // small

  •     XSCALE = 16

  •     YSCALE = 6

  • end


Piriform params g1

piriform_params.g

// Pyramidal cells.

int PIRIFORM_NX_PYRAMIDAL = {XSCALE}

int PIRIFORM_NY_PYRAMIDAL = {YSCALE}

int PIRIFORM_N_PYRAMIDAL = \

PIRIFORM_NX_PYRAMIDAL * PIRIFORM_NY_PYRAMIDAL


Piriform params g2

piriform_params.g

// ------------------------------------------------------------------------

// Cell spacings.

// ------------------------------------------------------------------------

float PIRIFORM_DX_PYRAMIDAL = {PIRIFORM_X_EXTENT / XSCALE}

float PIRIFORM_DY_PYRAMIDAL = {PIRIFORM_Y_EXTENT / YSCALE}


Piriform params g3

piriform_params.g

// ------------------------------------------------------------------------

// Relative cell positionings.

// ------------------------------------------------------------------------

// Pyramidal cells.

float PIRIFORM_PYRAMIDAL_X_START = 0.0

float PIRIFORM_PYRAMIDAL_X_OFFSET = PIRIFORM_DX_PYRAMIDAL / 2.0

float PIRIFORM_PYRAMIDAL_X_QUARTER = \

      PIRIFORM_PYRAMIDAL_X_OFFSET + NXQUARTER * PIRIFORM_DX_PYRAMIDAL

float PIRIFORM_PYRAMIDAL_X_MIDDLE = \

      PIRIFORM_PYRAMIDAL_X_OFFSET + NXMIDDLE * PIRIFORM_DX_PYRAMIDAL

float PIRIFORM_PYRAMIDAL_X_LAST = \

      PIRIFORM_PYRAMIDAL_X_OFFSET + \

      (PIRIFORM_NX_PYRAMIDAL - 1) * PIRIFORM_DX_PYRAMIDAL

float PIRIFORM_PYRAMIDAL_X_END = \

      PIRIFORM_PYRAMIDAL_X_LAST + PIRIFORM_PYRAMIDAL_X_OFFSET

float PIRIFORM_PYRAMIDAL_X_LENGTH = \

      PIRIFORM_PYRAMIDAL_X_END - PIRIFORM_PYRAMIDAL_X_START


Piriform params g4

piriform_params.g

float PIRIFORM_PYRAMIDAL_Y_START = 0.0

float PIRIFORM_PYRAMIDAL_Y_OFFSET = PIRIFORM_DY_PYRAMIDAL / 2.0

float PIRIFORM_PYRAMIDAL_Y_MIDDLE = \

      PIRIFORM_PYRAMIDAL_Y_OFFSET + NYMIDDLE * PIRIFORM_DY_PYRAMIDAL

float PIRIFORM_PYRAMIDAL_Y_LAST = \

      PIRIFORM_PYRAMIDAL_Y_OFFSET + \

      (PIRIFORM_NY_PYRAMIDAL - 1) * PIRIFORM_DY_PYRAMIDAL

float PIRIFORM_PYRAMIDAL_Y_END = \

      PIRIFORM_PYRAMIDAL_Y_LAST + PIRIFORM_PYRAMIDAL_X_OFFSET

float PIRIFORM_PYRAMIDAL_Y_LENGTH = \

      PIRIFORM_PYRAMIDAL_Y_END - PIRIFORM_PYRAMIDAL_Y_START


Piriform params g5

piriform_params.g

float PIRIFORM_PYRAMIDAL_Z_START = -5.0e-6 // Nominal value.

float PIRIFORM_PYRAMIDAL_Z_OFFSET = 0.0 // By definition.

float PIRIFORM_PYRAMIDAL_Z_LAST = 0.0

float PIRIFORM_PYRAMIDAL_Z_END = 5.0e-6 // Nominal value.

float PIRIFORM_PYRAMIDAL_Z_LENGTH = \

      PIRIFORM_PYRAMIDAL_Z_END - PIRIFORM_PYRAMIDAL_Z_START


Piriform params g6

piriform_params.g

// ------------------------------------------------------------------------

// Other useful values.

// ------------------------------------------------------------------------

float PIRIFORM_X_CENTER = PIRIFORM_X_EXTENT * 0.5

float PIRIFORM_Y_CENTER = PIRIFORM_Y_EXTENT * 0.5

float PYRAMIDAL_SOMA_Z = 0.0

float PYRAMIDAL_BASAL_1_Z = -79.6812e-6

float PYRAMIDAL_BASAL_2_Z = -79.6812e-6 * 2.0

float PYRAMIDAL_BASAL_3_Z = -79.6812e-6 * 3.0

float PYRAMIDAL_BASAL_4_Z = -79.6812e-6 * 4.0

float PYRAMIDAL_BASAL_5_Z = -79.6812e-6 * 5.0

float PYRAMIDAL_BASAL_6_Z = -79.6812e-6 * 6.0

float PYRAMIDAL_DEEPIB_1_Z = 57.8940e-6

float PYRAMIDAL_DEEPIB_2_Z = 57.8940e-6 * 2.0

float PYRAMIDAL_DEEPIB_3_Z = 57.8940e-6 * 3.0

float PYRAMIDAL_SUPIB_1_Z = 57.8940e-6 * 4.0

float PYRAMIDAL_SUPIB_2_Z = 57.8940e-6 * 5.0

float PYRAMIDAL_SUPIB_3_Z = 57.8940e-6 * 6.0

float PYRAMIDAL_IA_1_Z = 57.8940e-6 * 7.0

float PYRAMIDAL_IA_2_Z = 57.8940e-6 * 8.0


Piriform params conn g

piriform_params_conn.g

// ========================================================================

// Connection extents.

// ========================================================================

float PYR_FB_CONNECTION_X_EXTENT = {FP_PYR_FB_CONNECTION_EXTENT}

float PYR_FB_CONNECTION_Y_EXTENT = {FP_PYR_FB_CONNECTION_EXTENT}

float PYR_FB_CONNECTION_Z_EXTENT = {FP_PYR_FB_CONNECTION_EXTENT}

float FB_PYR_CONNECTION_X_EXTENT = {FP_FB_PYR_CONNECTION_EXTENT}

float FB_PYR_CONNECTION_Y_EXTENT = {FP_FB_PYR_CONNECTION_EXTENT}

float FB_PYR_CONNECTION_Z_EXTENT = {FP_FB_PYR_CONNECTION_EXTENT}

float FF_PYR_CONNECTION_X_EXTENT = {FP_FF_PYR_CONNECTION_EXTENT}

float FF_PYR_CONNECTION_Y_EXTENT = {FP_FF_PYR_CONNECTION_EXTENT}

float FF_PYR_CONNECTION_Z_EXTENT = {FP_FF_PYR_CONNECTION_EXTENT}

float PYR_FF_FB_CONNECTION_X_EXTENT = {FP_PYR_FF_FB_CONNECTION_EXTENT}

float PYR_FF_FB_CONNECTION_Y_EXTENT = {FP_PYR_FF_FB_CONNECTION_EXTENT}

float PYR_FF_FB_CONNECTION_Z_EXTENT = {FP_PYR_FF_FB_CONNECTION_EXTENT}

float FF_FB_PYR_CONNECTION_X_EXTENT = {FP_FF_FB_PYR_CONNECTION_EXTENT}

float FF_FB_PYR_CONNECTION_Y_EXTENT = {FP_FF_FB_PYR_CONNECTION_EXTENT}

float FF_FB_PYR_CONNECTION_Z_EXTENT = {FP_FF_FB_PYR_CONNECTION_EXTENT}

float FF_FB_FF_FB_CONNECTION_X_EXTENT = {FP_FF_FB_FF_FB_CONNECTION_EXTENT}

float FF_FB_FF_FB_CONNECTION_Y_EXTENT = {FP_FF_FB_FF_FB_CONNECTION_EXTENT}

float FF_FB_FF_FB_CONNECTION_Z_EXTENT = {FP_FF_FB_FF_FB_CONNECTION_EXTENT}

float FB_FB_CONNECTION_X_EXTENT = {FP_FB_FB_CONNECTION_EXTENT}

float FB_FB_CONNECTION_Y_EXTENT = {FP_FB_FB_CONNECTION_EXTENT}

float FB_FB_CONNECTION_Z_EXTENT = {FP_FB_FB_CONNECTION_EXTENT}


Piriform params conn g1

piriform_params_conn.g

float PYR_PYR_LOCAL_CONNECTION_X_EXTENT = \

      {FP_PYR_PYR_LOCAL_CONNECTION_EXTENT}

float PYR_PYR_LOCAL_CONNECTION_Y_EXTENT = \

      {FP_PYR_PYR_LOCAL_CONNECTION_EXTENT}

float PYR_PYR_LOCAL_CONNECTION_Z_EXTENT = \

      {FP_PYR_PYR_LOCAL_CONNECTION_EXTENT}

float PYR_PYR_VAPC_CONNECTION_X_HOLE = {FP_PYR_PYR_LR_VAPC_CONNECTION_HOLE}

float PYR_PYR_VAPC_CONNECTION_Y_HOLE = {FP_PYR_PYR_LR_VAPC_CONNECTION_HOLE}

float PYR_PYR_VAPC_CONNECTION_HOLE = {FP_PYR_PYR_LR_VAPC_CONNECTION_HOLE}

float PYR_PYR_DAPC_CONNECTION_X_HOLE = {FP_PYR_PYR_LR_DAPC_CONNECTION_HOLE}

float PYR_PYR_DAPC_CONNECTION_Y_HOLE = {FP_PYR_PYR_LR_DAPC_CONNECTION_HOLE}

float PYR_PYR_DAPC_CONNECTION_HOLE = {FP_PYR_PYR_LR_DAPC_CONNECTION_HOLE}

float PYR_PYR_PPC_CONNECTION_X_HOLE = {FP_PYR_PYR_LR_PPC_CONNECTION_HOLE}

float PYR_PYR_PPC_CONNECTION_Y_HOLE = {FP_PYR_PYR_LR_PPC_CONNECTION_HOLE}

float PYR_PYR_PPC_CONNECTION_HOLE = {FP_PYR_PYR_LR_PPC_CONNECTION_HOLE}

// DELTA is a small nominal value used to prevent cells from

// projecting to themselves. It should be at most half as large

// as the smallest DX or DY parameter.

float DELTA = 1.0e-5


  • Login