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
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;
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Thu Apr 27 11:01:48 2017

@author: spiros
"""
import pickle
import os
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['pdf.fonttype'] = 42
matplotlib.rcParams['ps.fonttype'] = 42
import numpy as np
from mpl_toolkits.axes_grid1 import make_axes_locatable

npath_x,npath_y = 200, 1
Nbins   = 100

nTrials = 10
for icell in ['aacell', 'bcell', 'bscell', 'olm', 'vipcck', 'vipcr', 'vipcrnvm']:
    numbers_ALL         = {}
    numbers_rwd_ALL     = {}
    for learning in ['prelearning','locomotion', 'reward']:
        print "\nLEARNING: ", learning
        print
        print
        spec='data_analysis'
        
        os.system('mkdir -p '+spec+'/figures_final_interneurons/'+learning)
        
        back = '0'
        path_figs = spec+'/figures_final_interneurons/'
        file_load = spec+'/metrics_interneurons/'+learning
        trials = [str(i) for i in range(1,nTrials+1)]
        maindir=os.getcwd()
        
        my_list = ['Control']
        rateMaps = {}
        for case in my_list:
        
            for ntrial in trials:
                with open(file_load+'/pickled_sn_'+icell+'_'+case+'_'+ntrial+'.pkl', 'rb') as f:
                    loaded_data=pickle.load(f)    
                        
                if ntrial=='1':
                    rateMaps[case] = loaded_data['maps']
                else:
                    rateMaps[case] = np.concatenate((rateMaps[case], loaded_data['maps']), axis=0)
        
        nCells = rateMaps['Control'].shape[0]      
        
        for case in my_list:
            
            idx        = np.argmax(rateMaps[case].squeeze(), axis=1)
            new_idx    = np.lexsort((range(nCells), idx))
            rtMaps     = rateMaps[case][new_idx,:,:].squeeze()
            
            Max        = np.max(rtMaps, axis=1).reshape(-1,1)
            for i in xrange(Max.shape[0]):
                if Max[i,0]==0:
                   Max[i,0]=1e-12 
                  
            rtMaps     = rtMaps / np.repeat(Max, Nbins, axis=1)
              
            fig, axes = plt.subplots(nrows=1, ncols=1)
            
            im0 = axes.imshow(rtMaps, cmap='jet', aspect='equal')
            divider = make_axes_locatable(axes)
            cax = divider.append_axes("right", size="5%", pad=0.05)
            axes.set_xlim((0, 100))
            axes.set_xticks(range(0,100+1,25))
            axes.set_xticklabels(['-0.5', '-0.25', '0', '0.25', '0.5'], fontsize = 11)    
            axes.set_title(case+'_'+ icell, fontsize=14)
            axes.set_ylabel('# cell index', fontsize = 12)
            axes.set_xlabel('position', fontsize = 12)
            axes.tick_params(direction='out', width=1.5)
            # Hide the right and top spines
            axes.spines['right'].set_visible(False)
            axes.spines['top'].set_visible(False)
            
            # Only show ticks on the left and bottom spines
            axes.yaxis.set_ticks_position('left')
            axes.xaxis.set_ticks_position('bottom')            
            plt.colorbar(im0, cax=cax)                    
            ax = plt.gca()
            plt.tight_layout()
            plt.savefig(path_figs+learning+'/'+case+'_'+icell+'_heatmap.pdf',format='pdf',dpi=300)
            plt.cla()
            plt.clf()
            plt.close()

Loading data, please wait...