Layer V pyramidal cell functions and schizophrenia genetics (Mäki-Marttunen et al 2019)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:249463
Study on how GWAS-identified risk genes of shizophrenia affect excitability and integration of inputs in thick-tufted layer V pyramidal cells
Reference:
1 . Mäki-Marttunen T, Devor A, Phillips WA, Dale AM, Andreassen OA, Einevoll GT (2019) Computational modeling of genetic contributions to excitability and neural coding in layer V pyramidal cells: applications to schizophrenia pathology Front. Comput. Neurosci. 13:66
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Neocortex;
Cell Type(s):
Channel(s): I A; I M; I h; I K,Ca; I Calcium; I A, slow; I Na,t; I Na,p; I L high threshold; I T low threshold;
Gap Junctions:
Receptor(s): AMPA; NMDA; Gaba;
Gene(s):
Transmitter(s): Glutamate; Gaba;
Simulation Environment: NEURON; Python;
Model Concept(s): Schizophrenia; Dendritic Action Potentials; Action Potential Initiation; Synaptic Integration;
Implementer(s): Maki-Marttunen, Tuomo [tuomo.maki-marttunen at tut.fi];
Search NeuronDB for information about:  AMPA; NMDA; Gaba; I Na,p; I Na,t; I L high threshold; I T low threshold; I A; I M; I h; I K,Ca; I Calcium; I A, slow; Gaba; Glutamate;
/
l5pc_scz
hay
models
morphologies
README.html
Ca_HVA.mod *
Ca_LVAst.mod *
CaDynamics_E2.mod *
epsp.mod *
Ih.mod *
Im.mod *
K_Pst.mod *
K_Tst.mod *
Nap_Et2.mod *
NaTa_t.mod *
ProbAMPANMDA2.mod *
ProbUDFsyn2.mod *
SK_E2.mod *
SKv3_1.mod *
calcapicalthresholds_control.py
calcapicalthresholds_epsp_control.py
calcifcurves.py
calcifcurves_comb.py
calcnspikesperburst2.py
calcsteadystate.py
calcupdown2responses.py
calcupdownresponses_noisydown.py
calcupdownresponses_noisyup.py
coding.py
coding_comb.py
coding_nonprop_comb_somaticI.py
coding_nonprop_somaticI.py
collectupdownresponses_noisy.py
control_cs.sav
controlamps_cs0.sav
controlamps_cs1.sav
controlamps_cs2.sav
controlamps_cs3.sav
controlamps_cs4.sav
controlamps_cs5.sav
controlamps_cs6.sav
drawfigcomb.py
drawnspikesperburst2.py
drawupdownresponses_noisy.py
findppicoeffs.py
findppicoeffs_comb.py
findppicoeffs_complement.py
findthresholdbasalamps_coding.py
findthresholddistalamps.py
findthresholddistalamps_coding.py
findthresholddistalamps_comb.py
mutation_stuff.py
mytools.py
protocol.py
runcontrols_cs.py
savebasalsynapselocations_coding.py
savesynapselocations.py
savesynapselocations_coding.py
scalemutations_cs.py
scalings_cs.sav
setparams.py
synlocs300.0.sav
                            
from neuron import h
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy
from pylab import *
import mytools
import pickle
import sys


v0 = -80
ca0 = 0.0001
proximalpoint = 400
distalpoint = 620
#distalpoint = 960
BACdt = 5.0
Is = [0.3+0.1*x for x in range(0,11)]
iIs = [2,4,6,8,10]
spTimesAllAll = []
spTimesAllAll2 = []
nSpikesAllAll = []
ISIs_allAll = []
fs = 8

gNaTa_apics = [1.0+x*0.1 for x in range(0,13)] + [2.2 for x in range(0,31)]
gCaHVA_somas = [1.0 for x in range(0,13)] + [0.975-0.025*x for x in range(0,31)]

condSuffixes = ['Ca_HVA','Ca_LVAst','Ih','K_Pst','K_Tst','NaTa_t','Nap_Et2','SK_E2','SKv3_1']
condNames = ['gCa_HVAbar_Ca_HVA', 'gCa_LVAstbar_Ca_LVAst', 'gIhbar_Ih', 'gImbar_Im', 'gK_Pstbar_K_Pst', 'gK_Tstbar_K_Tst', 'gNaTa_tbar_NaTa_t', 'gNap_Et2bar_Nap_Et2', 'gSK_E2bar_SK_E2', 'gSKv3_1bar_SKv3_1']

def strroundhalf(x):
  if x+0.0000001-int(x) < 0.000001:
    return str(x)
  else:
    return str(int(2*x+0.0000001)*0.5)

for icell in range(0,1):
  styles = ['g-','g-','g-','g-','g-','g-','g-','g-','g-']
  cols = ['#666666','#012345','#aa00aa','#bbaa00','#ee6600','#ff0000', '#00aaaa','#772277','#00cc00']
  
  close("all")
  f,axarr = subplots(len(iIs),1)

  for iiI in range(0,len(iIs)):
    axarr[iiI].set_position([0.14,0.3+0.13*iiI,0.5,0.12])
    axarr[iiI].set_xticks([0.35+x for x in [0,6,12,22,32,42]])
    axarr[iiI].set_yticks([0,2,4,6,8])
    #axarr[iiI].grid(True, 'major', 'y', color='0.65',linestyle='-')
    axarr[iiI].set_xticklabels([])
    rect1 = matplotlib.patches.Rectangle((0.9,0), 12.05, 10, color='#ffffe4')
    rect2 = matplotlib.patches.Rectangle((12.9,0), 30.05, 10, color='#ffeeee')
    axarr[iiI].add_patch(rect1)
    axarr[iiI].add_patch(rect2)
    #if iiI != 2:
    #  axarr[iiI].set_ylabel("I = "+str(Is[iIs[iiI]]))
    axarr[iiI].text(1, 5.75, 'I = '+str(Is[iIs[iiI]])+' nA',fontsize=fs+2)
    for tick in axarr[iiI].yaxis.get_major_ticks()+axarr[iiI].xaxis.get_major_ticks():
      tick.label.set_fontsize(fs+2)
    axarr[iiI].xaxis.set_ticks_position('bottom')
    axarr[iiI].yaxis.set_ticks_position('left')


  axarr[4].text(0.2, 7.8, '*',fontsize=fs+2)
  axarr[4].text(7.2, 7.8, '*',fontsize=fs+2)
  axarr[4].text(12.2, 7.8, '*',fontsize=fs+2)
  axarr[4].text(16.2, 7.8, '*',fontsize=fs+2)
  axarr[4].text(27.2, 7.8, '*',fontsize=fs+2)
  axarr[4].text(32.2, 7.8, '*',fontsize=fs+2)
  axarr[4].text(40.2, 7.8, '*',fontsize=fs+2)

  axarr[2].set_ylabel("Number of spikes per burst\n")
  axarr[0].set_xlabel("\n\n\n\n\n\n\nHay model parameter change")
  f.savefig("test.eps")

  for ig in range(0,len(gNaTa_apics)-1):
    unpicklefile = open('spikesperburst2_'+str(ig)+'.sav', 'r')
    unpickledlist = pickle.load(unpicklefile)
    unpicklefile.close()
    spikesPerBursts = unpickledlist[0]

    for iiI in range(0,len(iIs)):
      iI = iIs[iiI]
      I = Is[iI]
      nspikehist = []
      for nspikes in range(0,21):
        nspikehist.append(sum([1 for x in spikesPerBursts[iI][2:] if x==nspikes]))
      nspikehist = [x/sum(nspikehist) for x in nspikehist]
      maxnspikes = 0
      for inspikes in range(0,21):
        if nspikehist[inspikes] > 0:
          axarr[iiI].plot([ig,ig+0.6*nspikehist[inspikes]],[inspikes, inspikes],'b-',linewidth=2)
          maxnspikes = max(maxnspikes, inspikes)
      #axarr[iiI].set_ylim([0.5, maxnspikes+0.5])
      axarr[iiI].set_ylim([0.5, 7.5])

  for itick in range(0,3):
    axarr[0].text(0.1+6*itick, -0.5, 'gCaHVA: 100%, gNat: '+strroundhalf(100*gNaTa_apics[6*itick])+'%', {},rotation=90,fontsize=fs-2)
  for itick in range(1,4):
    axarr[0].text(0.1+12+10*itick, -0.5, 'gCaHVA: '+strroundhalf(100*gCaHVA_somas[12+10*itick])+'%, gNat: 220%', {},rotation=90,fontsize=fs-2)
  f.savefig("nSpikesPerBurstsHay.eps")


Loading data, please wait...