// \$Id: run.hoc,v 1.111 2002/07/27 04:12:39 billl Exp \$ proc showconn () { mechlist(tmplist,"TC","gabaa") connmat(tmplist,"pre",3,"inc",0,6,0,0,"TC.gabaa") connmat(tmplist,"pre",4,"inc",0,6,0,0,"TC.gabaa") connmat(tmplist,"pre",3,"post",3,6,0,0.2,"TC.gabaa") mechlist(tmplist,"RE","ampa") connmat(tmplist,"pre",3,"inc",0,6,1,0,"RE.ampa") mechlist(tmplist,"RE","gabaa") connmat(tmplist,"pre",2,"inc",0,6,1,0,"RE.gabaa") } proc initMisc1 () { fseed(seed) forsec "TC" { v = vrestTC + vrange*(2*u_rand() - 1) } forsec "RE" { v = vrestRE + vrange*(2*u_rand() - 1) } for ii=0,i0;ii=ii-1) { if (ii%\$2 != 0) {\$o1.remove(ii)} } } proc finishMisc () { // put out final newline } printlist.remove_all() // clear it out printStep=0.2 // print out the spikes this often byte_store = 1 tmplist = new List("RE") record(tmplist,"soma.v(0.5)") tmplist = new List("TC") record(tmplist,"soma.v(0.5)") proc printInit() {} print_flag = 0 access col[0].tc[0].soma proc clearsec () { forall { delete_section() } } // \$s1 - the name of the syn // \$2 - the number proc setdelays () { tmplist = new List(\$s1) for ii=0,tmplist.count-1 { for jj=0,tmplist.object(ii).nsyn-1 { tmplist.object(ii).delay(jj,\$2) } } } // to be used after changing DELAY for a particular syn // \$s1 - the name of the syn proc resetdelays () { tmplist = new List(\$s1) for ii=0,tmplist.count-1 { for jj=0,tmplist.object(ii).nsyn-1 { tmplist.object(ii).delay(jj,tmplist.object(ii).delay(jj)) } } } objref autolist mechlist(autolist,"RE","gabaa") proc write_comment () { sfunc.tail(output_file,"/",temp_string2_) // strip 'data/' if (strcmp(simname,"neuron") != 0) { sprint(temp_string2_,"%s/%s",simname,temp_string2_) } else { sprint(temp_string2_,"./%s",temp_string2_) } sprint(\$s1,"%s %s",temp_string2_,\$s1) nrn_write_index(\$s1) } strdef codestr codestr = "CTL" codestr = "CZP" glpnum = 5 double glp[glpnum] {glp[0]=20e-6 glp[1]=70e-6 glp[2]=140e-6 glp[3]=500e-6 glp[4]=5000-6 } proc rczp() { run1("CZP") } proc rctl() { run1("CTL") } proc run1() { sprint(temp_string_,"%s.%02d",datestr,runnum-1) if (sfunc.substr(comment,temp_string_) == -1) {comment=temp_string_} if (sfunc.substr(comment,\$s1) == -1) {sprint(comment,"%s (%s)",comment,\$s1)} if (strcmp(\$s1,"CZP")==0) { Alpha_GABAA = 1/0.52 Beta_GABAA = 1/16.31 } else if (strcmp(\$s1,"CTL")==0) { Alpha_GABAA = 1/0.38 Beta_GABAA = 1/8.28 } else { printf("%s not recognized.\n",\$s1) return } run() } proc auto_run() { local ii,jj,kk printf("begin auto_run\n") for ii=0,glpnum-1 { fseed(3454345) for jj = 0,autolist.count-1 { for kk = 0,autolist.object(jj).nsyn-1 { if (strcmp(codestr,"CZP")==0) { autolist.object(jj).gmax(kk,1.1*plmin(glp[ii],glp[ii]/5)) // 10% increment } else { autolist.object(jj).gmax(kk,plmin(glp[ii],glp[ii]/5)) } } } run1(codestr) sprint(temp_string_,"%s:%g (%s Alpha_GABAA=1/%g)",autolist.object(jj-1),glp[ii],codestr,1/Alpha_GABAA) pvall(temp_string_) write_comment(temp_string_) printf("%s %g\n",output_file,glp[ii]) runnum = runnum + 1 } printf("end auto_run\n") update_emacs() }