//Record and save data
// Object declarations
//Record
total=100
objref PCv, Bv[total], Av[total], CBv[total], CAv[total], CPCv
//Save
objref vsoma, vapical[total], vbasal[total], ca_soma, ca_apical[total], ca_basal[total], save_tags_basal[7], save_tags_apical[43]
strdef temp_save
pt=0.5 //the point where the recording electrode touches the segment (0 - 1)
n=tstop/dt
// Record somatic voltage
proc rec_soma(){
PCv=new Vector(n)
if (curr_rec){
soma PCv.record(&ina(0.5))
}else{
soma PCv.record(&v(0.5))
}
}
// Record dendritic voltage
proc rec_dend () {
for i=0, basal.count()-1 {
Bv[i]=new Vector(n)
if (curr_rec){
basal.o(i).sec Bv[i].record(&ina(pt))
}else{
basal.o(i).sec Bv[i].record(&v(pt))
}
}
if (!ablated) {
for i=0, apical.count()-1 {
Av[i]=new Vector(n)
if (curr_rec){
apical.o(i).sec Av[i].record(&ina(pt))
}else{
apical.o(i).sec Av[i].record(&v(pt))
}
}
}
}
// Record calcium current (unused)
proc rec_calcium(){
for i=0, basal.count()-1 {
CBv[i]=new Vector(n)
basal.o(i).sec CBv[i].record(&cai(pt))
}
if (!ablated) {
for i=0, apical.count()-1 {
CAv[i]=new Vector(n)
apical.o(i).sec CAv[i].record(&cai(pt))
}
}
CPCv=new Vector(n)
soma CPCv.record(&cai(pt))
}
// Save somatic trace
proc save_soma () {
vsoma = new File()
sprint(temp_save,"%s/soma.dat", temp_dir)
vsoma.wopen(temp_save)
for j=0, PCv.size()-1 { vsoma.printf ("%f\n",PCv.x[j])}
vsoma.close()
}
// Save synaptic orientation preferences per dendritic segment, for the basal tree only (deprecated)
proc save_tags() {
save_tags_apical = new File()
save_tags_apical.wopen(temp_save)
for j=0, tags_apical_syns.size()-1 { save_tags_apical.printf ("%d\n",tags_apical_syns.x[j])}
save_tags_apical.close()
for pd=0, 4 {
save_tags_basal[pd] = new File()
//sprint(temp_save,"%s/tag_basal%d_%d.dat", temp_dir, pd, n_run+1)
sprint(temp_save,"%s/tags/tag_basal%d.dat",temp_dir,pd)
save_tags_basal[pd].wopen(temp_save)
save_tags_basal[pd].printf ("%d\n",tag_dend_vec.x[pd])
for j=0, tags_basal_syns[pd].size()-1 {save_tags_basal[pd].printf ("%d\n",tags_basal_syns[pd].x[j])}
save_tags_basal[pd].close()
}
}
// Save synaptic orientation preferences per dendritic segment
proc save_tags2() {
for pd=0, 42 {
save_tags_apical[pd] = new File()
sprint(temp_save,"%s/tag_apical%d.dat", temp_dir,pd)
save_tags_apical[pd].wopen(temp_save)
for j=0, apicaltags[pd].size()-1 {
save_tags_apical[pd].printf ("%d\n",apicaltags[pd].x[j])
}
save_tags_apical[pd].close()
//print "Apical",pd
}
for pd=0, 6 {
save_tags_basal[pd] = new File()
sprint(temp_save,"%s/tag_basal%d.dat",temp_dir,pd)
save_tags_basal[pd].wopen(temp_save)
//save_tags_basal[pd].printf ("%d\n",tag_dend_vec.x[pd])
for j=0, basaltags[pd].size()-1 {
save_tags_basal[pd].printf ("%d\n",basaltags[pd].x[j])
}
save_tags_basal[pd].close()
//print "Basal",pd
}
}
// Save dendritic voltage traces
proc save_dend () {
if (!ablated) {
for i=0,apical.count()-1 {
vapical[i] = new File()
sprint(temp_save,"%s/apical%d.dat", temp_dir,i)
vapical[i].wopen(temp_save)
for j=0, Av[i].size()-1 {vapical[i].printf ("%f\n",Av[i].x[j])} //Changed Av.x[j] to Av[i].x[j]
vapical[i].close()
}
}
for i=0,basal.count()-1 {
vbasal[i] = new File()
sprint(temp_save,"%s/basal%d.dat", temp_dir,i) //Used to not take runs into account. Fixed (20/6)
vbasal[i].wopen(temp_save)
for j=0, Bv[i].size()-1 {vbasal[i].printf ("%f\n",Bv[i].x[j])} //Changed Bv.x[j] to Bv[i].x[j]
vbasal[i].close()
}
}
// Save calcium current traces
proc save_calcium() {
ca_soma = new File()
sprint(temp_save,"%s/ca_soma.dat", temp_dir)
ca_soma.wopen(temp_save)
for j=0, CPCv.size()-1 {ca_soma.printf ("%f\n",CPCv.x[j])}
ca_soma.close()
if (!ablated) {
for i=0,apical.count()-1 {
ca_apical[i] = new File()
sprint(temp_save,"%s/ca_apical%d.dat", temp_dir,i)
ca_apical[i].wopen(temp_save)
for j=0, CAv.size()-1 {ca_apical[i].printf ("%f\n",CAv.x[j])}
ca_apical[i].close()
}
}
for i=0,basal.count()-1 {
ca_basal[i] = new File()
sprint(temp_save,"%s/ca_basal%d.dat", temp_dir,i)
ca_basal[i].wopen(temp_save)
for j=0, CBv.size()-1 {ca_basal[i].printf ("%f\n",CBv.x[j])}
ca_basal[i].close()
}
}