Amyloid beta (IA block) effects on a model CA1 pyramidal cell (Morse et al. 2010)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:87284
The model simulations provide evidence oblique dendrites in CA1 pyramidal neurons are susceptible to hyper-excitability by amyloid beta block of the transient K+ channel, IA. See paper for details.
Reference:
1 . Morse TM, Carnevale NT, Mutalik PG, Migliore M, Shepherd GM (2010) Abnormal excitability of oblique dendrites implicated in early Alzheimer's: a computational study Front. Neural Circuits 4:16 [PubMed]
Citations  Citation Browser
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:
Cell Type(s): Hippocampus CA1 pyramidal cell;
Channel(s): I Na,t; I L high threshold; I N; I T low threshold; I A; I K; I h; I K,Ca;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Dendritic Action Potentials; Active Dendrites; Detailed Neuronal Models; Pathophysiology; Aging/Alzheimer`s;
Implementer(s): Carnevale, Ted [Ted.Carnevale at Yale.edu]; Morse, Tom [Tom.Morse at Yale.edu];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal cell; I Na,t; I L high threshold; I N; I T low threshold; I A; I K; I h; I K,Ca;
/
CA1_abeta
translate
readme.html
cacumm.mod
cagk.mod *
cal2.mod *
can2.mod *
cat.mod *
distr.mod *
h.mod
ipulse2.mod *
kadist.mod
kaprox.mod
kdrca1.mod
na3n.mod
naxn.mod *
zcaquant.mod
aBeta.hoc
add_ca.hoc
bAP_peak_vecs.hoc
c91662.ses
C91662_Link.txt
cond_report.hoc
control_boxes.hoc
distribute_currents.hoc
fig1.jpg
fig2.jpg
fig2A_c91662.hoc
fig3.jpg
fig3.ses
fig4.jpg
fig4.ses
fig5.jpg
fig6b.jpg
figs.hoc
find_averages.hoc
fixnseg.hoc
GaspiriniEtAl2007Fig1Stimulation.ses
generate_conc_graph.hoc
gka_averager.hoc
graph_na3_kinetics.hoc
init_and_run_and_graph.hoc
leaky_distal.hoc
maxica.hoc
maxica.ses.20100525
mosinit.hoc
na3_shifter.hoc
ntc_additions.hoc
oblique_application.hoc
oblique_scaled_ka.hoc
obliques_primary_tuft.hoc
paper_fig_buttons.hoc
sectiontest.hoc
shrink_obliques.hoc
SubBranch.hoc
trigger_and_start.hoc
wait_for_go.hoc
                            
// bAP_peak_vecs.hoc
// All that needs to be done to prepare the vecs for graphs
// of bAP peak vs distance is to store the x=0 to 1 vectors
// for each section
// The general strategy is to create as many vector pairs as
// are required to store the bAP peaks in the oblique subtrees
// For continuity these vectors contain as their first point the
// connecting point on previous dend.

num_obliques=128-53+1 // number of obliques in 91662
objref ob_dist_vec[num_obliques],ob_peak_vec[num_obliques]
objref ob_peak_ca_vec[num_obliques], ob_peak_optical_vec[num_obliques]
// the above two vec arrays store the peak calcium and the peak
// optical which is defined as the peak (F(t)-F_rest)/F_rest which in the linear
// aproximation of the flourescent molecule Ca binding is proportional to [Ca2+]i
// so peak optical= ([Ca2+]i,peak - [Ca2+]i,resting)/[Ca2+]i,resting

/*for i=0, num_obliques-1 {
  ob_dist_vec[i] = new Vector()
  ob_peak_vec[i] = new Vector()
}
*/
objref sect_list_2getparent

proc assign_dist_peak_vecs() {
  for i=0, num_obliques-1 {
    ob_dist_vec[i] = new Vector()
    ob_peak_vec[i] = new Vector()
    ob_peak_ca_vec[i] = new Vector()
    ob_peak_optical_vec[i] = new Vector()
    // the following adds the distance and peak bAP from
    // the last point of the parent 
    apic[i+53] sect_list_2getparent = new SectionRef()
    sect_list_2getparent.parent {
      x=0.5*((nseg-1)/nseg+1) // finds last relative (0-1) point on parent
      xdist=distance(x)
      ob_dist_vec[i].append(xdist)
      ob_peak_vec[i].append(vmax_ds(x)-Vrest)
      ob_peak_ca_vec[i].append(cmax_cacum(x))
      ob_peak_optical_vec[i].append((cmax_cacum(x)-cai0_cacum(x))/cai0_cacum(x))
    }
    // now add all the distance and bAP peaks from the oblique section
    apic[i+53] for (x,0) {
      xdist = distance(x)
      ob_dist_vec[i].append(xdist)
      ob_peak_vec[i].append(vmax_ds(x)-Vrest)
      ob_peak_ca_vec[i].append(cmax_cacum(x))
      ob_peak_optical_vec[i].append((cmax_cacum(x)-cai0_cacum(x))/cai0_cacum(x))
      }
  }
}


proc graph_dist_peak_vecs() {
      if (marker_graph) {
       for i=0, num_obliques-1 {
         ob_peak_vec[i].mark(d,ob_dist_vec[i],current_marker_style,current_marker_size+1,current_marker_color-alzheimers_flag,2)
         ob_peak_ca_vec[i].mark(peak_ca_graph,ob_dist_vec[i],current_marker_style,current_marker_size+1,current_marker_color-alzheimers_flag,2)
         ob_peak_optical_vec[i].mark(peak_optical_graph,ob_dist_vec[i],current_marker_style,current_marker_size+1,current_marker_color-alzheimers_flag,2)
       }
       primaryy.mark(d,primaryx,"s",current_marker_size+1,7+alzheimers_flag,2)
       primaryca.mark(peak_ca_graph,primaryx,"s",current_marker_size+1,7+alzheimers_flag,2)
       primaryoptical.mark(peak_optical_graph,primaryx,"s",current_marker_size+1,7+alzheimers_flag,2)
       tufty.mark(d,tuftx,"t",current_marker_size+1,4+alzheimers_flag,2)
       tuftca.mark(peak_ca_graph,tuftx,"t",current_marker_size+1,4+alzheimers_flag,2)
       tuftoptical.mark(peak_optical_graph,tuftx,"t",current_marker_size+1,4+alzheimers_flag,2)
      }
      if (line_graph) {
         // if line graph then make line graphs for bAPs if abeta (alzheimers_flag) shift color
         for i=0, num_obliques-1 {
            color_choice=1+alzheimers_flag // black or red if abeta present
            ob_peak_vec[i].line(d,ob_dist_vec[i], color_choice,1)
            ob_peak_ca_vec[i].line(peak_ca_graph,ob_dist_vec[i], color_choice,1)
            ob_peak_optical_vec[i].line(peak_optical_graph,ob_dist_vec[i], color_choice,1)
         }
         // the primary is a special case where there are no branches and
         // only apic[25] has nseg different than 1
         tmp_vecx=new Vector()
         tmp_vecy=new Vector()
         forsec primary {
            color_choice=7+alzheimers_flag // purple or yellow if abeta present
		for (x) if (x>0 && x<1) {
			if (diam>=0.) {
			tmp_vecx.append(distance(x)) 
			tmp_vecy.append(vmax_ds(x)-Vrest)
			}
		}
         }
         tmp_vecy.line(d,tmp_vecx, color_choice,4)
         forsec tuft {
            color_choice=4+alzheimers_flag //  if abeta present
            tmp_vecx=new Vector()
            tmp_vecy=new Vector()
		for (x) if (x>0 && x<1) {
			if (diam>=0.) {
			tmp_vecx.append(distance(x)) 
			tmp_vecy.append(vmax_ds(x)-Vrest)
			}
		}
            tmp_vecy.line(d,tmp_vecx, color_choice,1)
         }
      }
      // for model to Chen statistics comparison:
      chen_c_bpAP_peaks=new Vector() // apic[15] through 19 have middles

	// within Chen C 2005 range of 240-300 ums.  It was found by hand that these
	// compartments apic[15 through 19] correspond to the primary dendrite, the likely
	// source of Chen C's electrical recordings.
	/* oc>for i=14,19 {apic[i] print secname(),.5,distance(.5),v }
	apic[14]0.5 233.72056 -46.048939
	apic[15]0.5 253.83815 -41.003093
	apic[16]0.5 264.45777 -38.230327
	apic[17]0.5 276.62687 -34.690309
	apic[18]0.5 284.63212 -32.181721
	apic[19]0.5 295.92992 -28.539688
	oc>
	*/

	for i=15,19 {
		apic[i] chen_c_bpAP_peaks.append(vmax_ds(0.5)-Vrest)
	}
	soma chen_c_bpAP_soma_peak=vmax_ds(0.5)-Vrest
//	c.flush()
	doNotify()
}