CA1 network model for place cell dynamics (Turi et al 2019)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:246546
Biophysical model of CA1 hippocampal region. The model simulates place cells/fields and explores the place cell dynamics as function of VIP+ interneurons.
Reference:
1 . Turi GF, Li W, Chavlis S, Pandi I, O’Hare J, Priestley JB, Grosmark AD, Liao Z, Ladow M, Zhang JF, Zemelman BV, Poirazi P, Losonczy A (2019) Vasoactive Intestinal Polypeptide-Expressing Interneurons in the Hippocampus Support Goal-Oriented Spatial Learning Neuron
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Hippocampus; Mouse;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell; Hippocampus CA1 basket cell; Hippocampus CA1 basket cell - CCK/VIP; Hippocampus CA1 bistratified cell; Hippocampus CA1 axo-axonic cell; Hippocampus CA1 stratum oriens lacunosum-moleculare interneuron ; Hippocampal CA1 CR/VIP cell;
Channel(s): I A; I h; I K,Ca; I Calcium; I Na, leak; I K,leak; I M;
Gap Junctions:
Receptor(s): GabaA; GabaB; NMDA; AMPA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; Brian;
Model Concept(s): Place cell/field;
Implementer(s): Chavlis, Spyridon [schavlis at imbb.forth.gr]; Pandi, Ioanna ;
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; GabaA; GabaB; AMPA; NMDA; I A; I K,leak; I M; I h; I K,Ca; I Calcium; I Na, leak;
import os
import random
import shutil
import sys


Nruns = int(sys.argv[1])
file1 = sys.argv[2]

time_delay_ca3 = 95  # ms
time_delay = 400  # ms, for NEURON to reach a steady state

n_place_fields = 41
for nrun in range(1, Nruns+1):
    print('RUN '+str(nrun)+' ...\n')

    random.seed(nrun)
    p = 'run_' + str(nrun) + '/'
    source = 'runs_produced_by_python_speed_'+file1+'/' + p
    dest = 'Inputs_linear_speed_'+file1+'/' + p

    if not os.path.exists(dest):
        os.makedirs(dest)

    listdirs = []
    for pl in range(1, n_place_fields+1):
        listdirs.append('place_field_'+str(pl))

    counter = 0
    for mydir in listdirs:
        L = len(os.listdir(source+mydir))
        for i in range(L):
            # complete target filename given
            shutil.copy2(source+mydir+'/s'+str(i)+'.txt',
                         dest+'g'+str(counter)+'_EC.txt')
            # complete target filename given
            shutil.copy2(source+mydir+'/s'+str(i)+'.txt',
                         dest+'g'+str(counter)+'_CA3.txt')

            # Input form EC
            with open(dest+'g'+str(counter)+'_EC.txt', 'r') as f:
                lines = f.readlines()
                lines = [str(int(x.strip())+time_delay) for x in lines]
            with open(dest+'g'+str(counter)+'_EC.txt', 'w') as f:
                for line in lines:
                    nline = str(int(line))
                    f.write(nline + '\n')

            # Input form CA3 + delay 95ms
            rn = time_delay_ca3
            with open(dest+'g'+str(counter)+'_CA3.txt', 'r') as f:
                lines = f.readlines()
                lines = [str(int(x.strip())+time_delay+rn) for x in lines]
            with open(dest+'g'+str(counter)+'_CA3.txt', 'w') as f:
                for line in lines:
                    nline = str(int(line))
                    f.write(nline + '\n')

            counter += 1

    Ncells = counter
    # Check all files!
    for cnt in range(Ncells):
        with open(dest+'g'+str(cnt)+'_CA3.txt', 'r') as f:
            lines = f.readlines()
            lines = [int(x.strip()) for x in lines]
            for j in range(len(lines)-1):
                if lines[j] == lines[j+1]:
                    print(cnt, lines[j], lines[j+1])