Epilepsy may be caused by very small functional changes in ion channels (Thomas et al. 2009)

 Download zip file 
Help downloading and running models
Accession:124392
We used a previously published model of the dentate gyrus with varying degrees of mossy fibre sprouting.We preformed a sensitivity analysis where we systematically varied individual properties of ion channels. The results predict that genetic variations in the properties of sodium channels are likely to have the biggest impact on network excitability. Furthermore, these changes may be as small as 1mV, which is currently undetectable using standard experimental practices.
Reference:
1 . Thomas EA, Reid CA, Berkovic SF, Petrou S (2009) Prediction by modeling that epilepsy may be caused by very small functional changes in ion channels. Arch Neurol 66:1225-32 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Dentate gyrus granule GLU cell; Dentate gyrus mossy cell; Dentate gyrus basket cell; Dentate gyrus hilar cell;
Channel(s): I A; I K; I K,leak; I Sodium; I Calcium;
Gap Junctions:
Receptor(s): GabaA; AMPA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: parplex;
Model Concept(s): Epilepsy;
Implementer(s): Thomas, Evan [evan at evan-thomas.net];
Search NeuronDB for information about:  Dentate gyrus granule GLU cell; GabaA; AMPA; I A; I K; I K,leak; I Sodium; I Calcium; Gaba; Glutamate;
"""
 * Copyright (C) 2004 Evan Thomas
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or (at
 * your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
"""

"""
Reproduces Fig 6 from Thomas, et al Mossy fiber sprouting interacts with 
sodium channel mutations to increase dentate gyrus excitability, 
Epilepsia (2009)
"""

import sys, os

from p3 import *
from time import clock
from granule import *
from support import *

comment = ''
for c in sys.argv[1:]:
    if c=='' or c==' ': continue
    comment = comment + ' %s' % c
apfn   = 'ap%s' % comment
setAPfilename(apfn)

#// define network size
ngcell = 500
nbcell = 6
nmcell = 15
nhcell = 6

#####################################
#// NETWORK SPECIFICATION INTERFACE #
#####################################
Nstate = 0
Ncmpt  = 0
Gcell  = []
for i in range(ngcell):
    c = Granule(useSlow=True)
    c.makesynapses()
    Nstate = Nstate + len(c.Y)
    Ncmpt  = Ncmpt  + len(c.compartments)
    Gcell.append(c)
Bcell = []
for i in range(nbcell):
    c = Basket(useSlow=True)
    c.makesynapses()
    Nstate = Nstate + len(c.Y)
    Ncmpt  = Ncmpt  + len(c.compartments)
    Bcell.append(c)
Mcell = []
for i in range(nmcell):
    c = Mossy(useSlow=True)
    c.makesynapses()
    Nstate = Nstate + len(c.Y)
    Ncmpt  = Ncmpt  + len(c.compartments)
    Mcell.append(c)
Hcell = []
for i in range(nhcell):
    c = Hipp(useSlow=True)
    c.makesynapses()
    Nstate = Nstate + len(c.Y)
    Ncmpt  = Ncmpt  + len(c.compartments)
    Hcell.append(c)

duration = 400
Vhalfm  = 0
Vhalfnf = 0
Vhalfhf = 0
Vhalfhs = 0
Vhalfns = 0
Vhalfha = 0
Vhalfma = 0
Vhalfmt = 0
Vhalfmn = 0
Vhalfml = 0
Am = 1
Ah = 1
sprout = 0
Ggaba = 1
for s in sys.argv[1:]:
    exec(s)
    
Network = Gcell+Bcell+Mcell+Hcell
s = 'Network with %d cells, %d compartments and %d state variables\n'
message_print(info, s % (len(Network), Ncmpt, Nstate))

modifyAll(Network=Network, Vhalfm=Vhalfm, Am=Am, Ah=Ah, \
    Vhalfns=Vhalfns, Vhalfnf=Vhalfnf, \
    Vhalfmt=Vhalfmt, \
    Vhalfml=Vhalfml, \
    Vhalfmn=Vhalfmn, \
    Vhalfhf=Vhalfhf, \
    Vhalfhs=Vhalfhs, \
    Ggaba=Ggaba, \
    Vhalfma=Vhalfma, Vhalfha=Vhalfha, \
    )

message_print(info, 'Making connections.\n')
execfile('conx_sprout.py')
            
###############
# Run options #
###############
gd = GD()
gd.duration   = duration
gd.tolerance  = 1e-3
gd.minStep    = 0.05
gd.network    = Network
gd.ap_handler = ap_print
gd.trace_handler     = trace_print
gd.endWindow_handler = TimeTicker
gd.stepTrace_handler = None
gd.dumpCell_handler  = dumpcell

#######
# Run #
#######
try:
    start = clock()
    message_print(info, 'Starting run.\n')
    parplex(gd)
    message_print(info, 'made it in %fs\n' % (clock()-start))
except ParplexRuntimeError:
    (e, v) = sys.exc_info()[:2]
    message_print(fatal, 'Caught ParplexRuntimeError: %s\n' % v)
    dumpcell(e.currentCell, fatal)
    message_print(fatal, 'Didn\'t make it\n')
    sys.exit(0)

#try:
#    from py2mat import Matwrap
#    m = Matwrap()
#    m.closeOnDel = False
#    m.write('cd \'' + os.getcwd() + '\'')
#    m.write('figure;traceplot(\'%s.dat\');\n' % trfn)
#    m.write("legend('Granule', 'Basket', 'Mossy', 'HIPP');\n")
#    m.write('title(\'%s\')\n' % comment)
#    m.write('figure;raster(\'%s.dat\');\n' % apfn)
#    m.write('title(\'%s\')\n' % comment)
#except:
#    pass

Loading data, please wait...