H-currents effect on the fluctuation of gamma/beta oscillations (Avella-Gonzalez et al., 2015)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:186977
This model was designed to study the impact of H-currents on the dynamics of cortical oscillations, and in paticular on the occurrence of high and low amplitude episodes (HAE, LAE) in network oscillations. The H-current is a slow, hyperpolarization-activated, depolarizing current that contributes to neuronal resonance and membrane potential. We characterized amplitude fluctuations in network oscillations by measuring the average durations of HAEs and LAEs, and explored how these were modulated by trains of external spikes, both in the presence and absence of H-channels. We looked at HAE duration, the frequency and power of network oscillations, and the effect of H-channels on the temporal voltage profile in single cells. We found that H-currents increased the oscillation frequency and, in combination with external spikes, representing input from areas outside the network, strongly decreased the synchrony of firing. As a consequence, the oscillation power and the duration of episodes during which the network exhibited high-amplitude oscillations were greatly reduced in the presence of H-channels.
Reference:
1 . Avella Gonzalez OJ, Mansvelder HD, van Pelt J, van Ooyen A (2015) H-Channels Affect Frequency, Power and Amplitude Fluctuations of Neuronal Network Oscillations. Front Comput Neurosci 9:141 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Prefrontal cortex (PFC);
Cell Type(s): Abstract single compartment conductance based cell;
Channel(s): I Na,t; I K; I h;
Gap Junctions:
Receptor(s): GabaA; AMPA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Action Potentials;
Implementer(s): Avella G. Oscar Javier [oscarjavella at gmail dot com];
Search NeuronDB for information about:  GabaA; AMPA; I Na,t; I K; I h; Gaba; Glutamate;
//Control crated by Oscar Javier Avella from modifications on Ronald vn Elburg 
//Neuron-files
                               
                                

// --------------------------------------------------------------                                                               
// Loading Standard Menus
// --------------------------------------------------------------

	UseGui=1   
	if(UseGui==1){
    	load_file("nrngui.hoc")	
		nrnmainmenu()
		runStopAt=tstop
		runStopIn = 100
		nrncontrolmenu()
	}

// --------------------------------------------------------------
// --------------------------------------------------------------
if(UseGui==1){
		load_file("../Instrum_Visualize/spikeplot2.hoc")
	}else{
		load_file("emptyGUIClasses.hoc")      
	}

        create cvode_init_dummy			// CVode needs an accessed section for some of the settings to take effect
	access cvode_init_dummy
	Ra=150	
	load_file("../MRC/cvode_init.hoc")
	
	// Set a few Global Flags
	useprtmymes=0			// Setting this flag to one will make the template cells produce basic debugging info
	screen_update_invl=0.05	// Screen Update Interval of GUI
 
// General simulation related settings
	dt = 0.025           //time step
	//tstop = 1200         //1 second simulation
	steps_per_ms = 40    
//celsius   = 37       // temperature scales kinetics of active currents
  	
//load_file("./in_process/functions_net_bgk_multitest_sparse_onboard.hoc")
load_file("functions_net_bgk_multitest_sparse.hoc")

//load_file("functions_net_bgk_multitest.hoc") //Load the network's  builder-administrator
//load_file("functions_net_bgk_testING.hoc") //Load the network's  builder-administrator	
	strdef win_title,win_title1
	objref SP_FS[n_layerFS],SP_pyr[n_layerP] //,SP_NS[fs_popul+pyram_popul] references to spikeplots
	objref SP_NS[n_layerP+n_layerFS] //references to spikeplots
	
	       
//creating layers  
//==================================================================================
//==================================================================================
        if(n_layerP && n_P>0){
        for i=0, n_layerP-1{
        if(layerP[i].count()>0){
        sprint(win_title1, "Pyramidal Cells Population # %d", i)
        SP_pyr[i]= new SpikePlot2(layerP[i],0,win_title1)
          }
        } 
      }     
        if(n_layerFS>0 && n_FS>0){
        for i=0, n_layerFS-1{
        if(layerFS[i].count()>0){
        sprint(win_title, "Fast Spiking Cells Population # %d", i)
        SP_FS[i] = new SpikePlot2(layerFS[i],0,win_title)
        }
    }
  }
//==================================================================================
//==================================================================================
        
//creating vectors to save the data
	
	objref yvec1[n_layerFS], tvec1[n_layerFS], yvec3[n_layerP], tvec3[n_layerP]
	objref yvec2[n_layerFS], tvec2[n_layerFS], yvec4[n_layerP], tvec4[n_layerP]
	objref TracePlot
	strdef buttontext, buttoncomand
	
	if(UseGui==1){ 
	}
             

if(n_P>0&&n_FS>0&&n_layerP==1&&n_layerFS==1){
    load_file("sessions/DrivePower_run_mono_no_spk.ses")
    flag_p=1    
    }else{
        if(n_layerP==2&&n_layerFS==2){
       load_file("sessions/DrivePower_run_multi.ses")	
	   flag_p=2
       }
	}
	
    load_file("./sessions/parameters.hoc")
    print_parameters(flag_p,nme)	
	

      //creating vectors to save single cells voltage trace data
	
	objref yvec1[n_layerFS], tvec1[n_layerFS], yvec3[n_layerP], tvec3[n_layerP]
	objref yvec2[n_layerFS], tvec2[n_layerFS], yvec4[n_layerP], tvec4[n_layerP]
	objref TracePlot
	strdef buttontext, buttoncomand
	
	if(UseGui==1){                                   
		newPlot(0,tstop,-100,60)
		TracePlot = graphItem
		if(n_layerFS>0 && n_FS>0){
		for i=0,n_layerFS-1{
		  	yvec1[i]= new Vector()
			tvec1[i]= new Vector()
			if(layerFS[i].count()>0){
              layerFS[i].object(int(n_FS/2)).soma cvode.record(&v(0.5), yvec1[i], tvec1[i])
		      yvec2[i] = new Vector()
	          tvec2[i] = new Vector()
       		  layerFS[i].object(0).soma cvode.record(&v(0.5), yvec2[i], tvec2[i])
		      }
        }
      }
if(n_layerP>0 && n_P>0){
		for i=0,n_layerP-1{	
		    yvec3[i] = new Vector()
			tvec3[i] = new Vector()
			if(layerP[i].count()>0){
			layerP[i].object(int(n_P/2)).soma cvode.record(&v(0.5), yvec3[i], tvec3[i])
			//layerP[i].object(87).soma cvode.record(&v(0.5), yvec3[i], tvec3[i])
            yvec4[i] = new Vector()
			tvec4[i] = new Vector()
			layerP[i].object(0).soma cvode.record(&v(0.5), yvec4[i], tvec4[i])
           }
        }
    }
  
		xpanel("Plot Traces")
			if(n_layerFS>0 && n_FS>0){
      for i=0,n_layerFS-1{
			 if(layerFS[i].count()>0){
				sprint(buttontext,"Center FS Cell from Population %d",i)
				sprint(buttoncomand,"yvec1[%d].plot(TracePlot,tvec1[%d],3.3,2.5)",i,i)
                xbutton(buttontext,buttoncomand)
                sprint(buttontext,"Boundary FS Cell from Population %d",i)			
			 	sprint(buttoncomand,"yvec2[%d].plot(TracePlot,tvec2[%d],3.3,2.8)",i,i)		 	
                xbutton(buttontext,buttoncomand)
                }
			 }
		}
    if(n_layerP>0 && n_P>0){
	   for i=0,n_layerP-1{
	    if(layerP[i].count()>0){
			    sprint(buttontext,"Boundary Pyramidal from Population %d",i)
			    sprint(buttoncomand,"yvec4[%d].plot(TracePlot,tvec4[%d],2,0.9)",i,i)
                xbutton(buttontext,buttoncomand)	
				sprint(buttontext,"Center Pyramidal from Population %d",i)               
			 	sprint(buttoncomand,"yvec3[%d].plot(TracePlot,tvec3[%d],2,0.7)",i,i)                
                xbutton(buttontext,buttoncomand)
                }
			 }
		}
		xpanel()
	}
             

if(n_P>0&&n_FS>0&&n_layerP==1&&n_layerFS==1){
    load_file("sessions/DrivePower_run_mono_no_spk.ses")
    flag_p=1    
    }else{
        if(n_layerP>=2||n_layerFS>=2){
       load_file("sessions/DrivePower_run_multi.ses")	
	   flag_p=2
       }
	}
	
    load_file("./sessions/parameters.hoc")
    print_parameters(flag_p,nme)	
	
//==================================================================================================================
//==================================================================================================================
load_file("./sessions/Spk_rec_pre.hoc")
load_file("./sessions/Spk_rec_post.hoc")

//run() 
//prt2file(word,wrd2)