Convergence regulates synchronization-dependent AP transfer in feedforward NNs (Sailamul et al 2017)

 Download zip file 
Help downloading and running models
Accession:241979
We study how synchronization-dependent spike transfer can be affected by the structure of convergent feedforward wiring. We implemented computer simulations of model neural networks: a source and a target layer connected with different types of convergent wiring rules. In the Gaussian-Gaussian (GG) model, both the connection probability and the strength are given as Gaussian distribution as a function of spatial distance. In the Uniform-Constant (UC) and Uniform-Exponential (UE) models, the connection probability density is a uniform constant within a certain range, but the connection strength is set as a constant value or an exponentially decaying function, respectively. Then we examined how the spike transfer function is modulated under these conditions, while static or synchronized input patterns were introduced to simulate different levels of feedforward spike synchronization. We observed that the synchronization-dependent modulation of the transfer function appeared noticeably different for each convergence condition. The modulation of the spike transfer function was largest in the UC model, and smallest in the UE model. Our analysis showed that this difference was induced by the different spike weight distributions that was generated from convergent synapses in each model. Our results suggest that the structure of the feedforward convergence is a crucial factor for correlation-dependent spike control, thus must be considered important to understand the mechanism of information transfer in the brain.
Reference:
1 . Sailamul P, Jang J, Paik SB (2017) Synaptic convergence regulates synchronization-dependent spike transfer in feedforward neural networks. J Comput Neurosci 43:189-202 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Synapse;
Brain Region(s)/Organism:
Cell Type(s): Hodgkin-Huxley neuron;
Channel(s): I Sodium; I Potassium; I T low threshold; I Cl, leak;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; MATLAB;
Model Concept(s): Synchronization; Oscillations; Action Potentials; Activity Patterns; Information transfer; Synaptic Convergence;
Implementer(s): Sailamul, Pachaya [pachaya_sailamul at brown.edu]; Jang, Jaeson ; Paik, Se-Bum ;
Search NeuronDB for information about:  I T low threshold; I Sodium; I Potassium; I Cl, leak;
//////////////////* Cells Template *//////////////////

//Parameters Setting 
SOMA_SIZE_L = 28
SOMA_SIZE_diam = 28 // assume spherical shape for soma
SOMA_Ra = 200 // Ra, [ohm-cm] Cell resistance
SOMA_cm = 1 //cm,  [uF/cm2] Membrane capacitance
//For Hodgkin-Huxley model
GNaBAR_HH = 0.12 //gnabar_hh, [mho/cm2](mho = ohm^-1)  Maximum specific sodium channel conductance
GKBAR_HH = 0.036 //gkbar_hh, [mho/cm2]   Maximum potassium channel conductance
GL_HH_ZERO = 0 //gl_hh, [mho/cm2]  Leakage conductance in HH model -> set to zero because the mechanism "pas" is used
EL_HH = -65 //el_hh , [mV]       Leakage reversal potential
GL_PAS = 0.0004 //gl_hh, [mho/cm2]  Leakage conductance 
EL_PAS = -65 //el_hh , [mV]       Leakage reversal potential
ENa_HH = 55 //ena, [mV]  Na reversal potential
EK_HH = -80 //ek, [mV]   K reversal potential
//Calcium T-Type
ECa_CaT = 126.1 //eca, [mV]   Ca reversal potential
GCaMAX_CaT = 0.002 //gmax_CaT [mho/cm2]  Maximum specific calcium channel conductance
//netcon
NETCON_THRESHOLD = 0 //nc.threshold --> When the source variable passes threshold in the positive direction at time t-delay, the target will receive an event at time t along with weight information. 
//synapses
EPSP_TAU1 = 1 //[ms]
EPSP_TAU2 = 3 //[ms]
EPSP_E_REVERSE = 0 //[mV]
IPSP_TAU1 = 1 //[ms]
IPSP_TAU2 = 7 //[ms]
IPSP_I_REVERSE = -80 //[mV]

///////////// Templates

begintemplate Target_Cell //////////////////////////////////////////////////////////Begin Target_Cell template 
public is_art
public init, topol, basic_shape, subsets, geom, biophys, geom_nseg, biophys_inhomo
public synlist, cID, tID, cType, x, y, z, position, connect2target, setID   //cID = cell ID (numbering of all cells) , tID = type ID 

public soma
public all

objref synlist
external  SOMA_SIZE_L, SOMA_SIZE_diam, SOMA_Ra,SOMA_cm, GNaBAR_HH, GKBAR_HH, GL_HH_ZERO, EL_HH, ENa_HH , EK_HH, NETCON_THRESHOLD 
external EPSP_TAU1,EPSP_TAU2,EPSP_E_REVERSE ,IPSP_TAU1,IPSP_TAU2, IPSP_I_REVERSE, EL_PAS, GL_PAS
external ECa_CaT, GCaMAX_CaT 

proc init() {
  topol()
  subsets()
  geom()
  biophys()
  geom_nseg()
  synlist = new List()
  synapses()
  x = y = z = 0 // only change via position
}

create soma

proc topol() { local i
  basic_shape()
}
proc basic_shape() {
  soma {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(15, 0, 0, 1)}
}

objref all
proc subsets() { local i
  objref all
  all = new SectionList()
    soma all.append()

}
proc geom() {
  forsec all {  L = SOMA_SIZE_L diam = SOMA_SIZE_diam  } //{  L =  SOMA_SIZE  diam =  SOMA_SIZE  } //um  
}
external lambda_f
proc geom_nseg() {
  forsec all { nseg = int((L/(0.1*lambda_f(100))+.999)/2)*2 + 1  }
}
proc biophys() {
  forsec all {
	Ra = SOMA_Ra //ohm-cm
	cm = SOMA_cm //uF/cm2
    insert hh
      gnabar_hh = GNaBAR_HH  //GNaBAR_HH //0.12
      gkbar_hh = GKBAR_HH  //GKBAR_HH //0.036 
      gl_hh = GL_HH_ZERO  //GL_HH_ZERO //0.0001
      el_hh = EL_HH //EL_HH //-60
	  ena = ENa_HH
	  ek = EK_HH
	insert pas
		e_pas = EL_PAS
		g_pas = GL_PAS
	insert CaT
		gmax_CaT = GCaMAX_CaT
		eca = ECa_CaT
  }
}
proc biophys_inhomo(){}
proc position() { local i
  soma for i = 0, n3d()-1 {
    pt3dchange(i, $1-x+x3d(i), $2-y+y3d(i), $3-z+z3d(i), diam3d(i))
  }
  x = $1  y = $2  z = $3
}
obfunc connect2target() { localobj nc //$o1 target point process, optional $o2 returned NetCon
  soma nc = new NetCon(&v(0.5), $o1)
  nc.threshold = NETCON_THRESHOLD
  if (numarg() == 2) { $o2 = nc } // for backward compatibility
  return nc
}
proc setID(){ //$1 = cell ID , $2 = type ID, $3 = cType 0=Input, E=1, I =2
	 cID = $1  tID = $2 cType = $3 }
objref syn_

proc synapses() {
  /* E0 */   soma syn_ = new Exp2Syn(0.5)  synlist.append(syn_)
    syn_.tau1 = EPSP_TAU1 //EPSP_TAU1 //1
    syn_.tau2 = EPSP_TAU2 //EPSP_TAU2 //3
	syn_.e = EPSP_E_REVERSE //EPSP_E_REVERSE//0
  /* I1 */   soma syn_ = new Exp2Syn(0.5)  synlist.append(syn_)
    syn_.tau1 = IPSP_TAU1 //IPSP_TAU1 //1
    syn_.tau2 = IPSP_TAU2 //IPSP_TAU2 //7
    syn_.e = IPSP_I_REVERSE //IPSP_I_REVERSE //-80 
}
func is_art() { return 0 }

endtemplate Target_Cell //////////////////////////////////////////////////////////End Target_Cell template  

begintemplate In_spk_VecStim ////////////////////////////////////////////////////////////////Begin In_spk_VecStim
public pp, connect2target, x, y, z, cID,tID,cType, position, is_art, setID
external NETCON_THRESHOLD  
objref pp
proc init() {  
  pp = new VecStim() 

}
func is_art() { return 1 } //artificial
obfunc connect2target() { localobj nc
  nc = new NetCon(pp, $o1)
  if (numarg() == 2) { $o2 = nc }
  nc.threshold = NETCON_THRESHOLD  
  return nc
}
proc position(){x=$1  y=$2  z=$3}
proc setID(){ cID = $1 tID = $2  cType = $3 }

endtemplate In_spk_VecStim  //////////////////////////////////////////////////////////////// End In_spk_VecStim 




printf("Done Downloading Cells Template")