/*******Cerebellar Golgi Cell Model **********

Developers:    Sergio Solinas & Egidio D'Angelo
Code contributors:  Thierry Neius, Shyam Diwakar, Lia Forti
Data Analysis: Sergio Solinas

Work Progress: April 2004 - May 2007

Developed At:  Università Degli Studi Di Pavia
	       Dipartimento Di Scienze Fisiologiche
	       Pavia - Italia
	       
Model Published in: 
             Sergio M. Solinas, Lia Forti, Elisabetta Cesana, 
             Jonathan Mapelli, Erik De Schutter and Egidio D`Angelo (2008)
             Computational reconstruction of pacemaking and intrinsic 
             electroresponsiveness in cerebellar golgi cells
             Frontiers in Cellular Neuroscience 2:2


********************************************/

objref trace, filename
strdef sys_comm

// Append a string to a text file
proc name2file() {
    filename = new File()
    filename.aopen($s1)
    filename.printf("%s\n",$s2)
    filename.close()
}

// Write a two column matrix to file
proc tr2file() { 
    filename = new File()
    filename.wopen($s1)
    trace = new Matrix($o2.size(),2)
    trace.setcol(0,$o2)
    trace.setcol(1,$o3)
    trace.fprint(filename,"%g\t")
    filename.close()
    sprint(sys_comm,"~/bin/flrm.sh %s",$s1)
    system(sys_comm)
}

// Write a spike train vector to file
proc spt2file() { 
    filename = new File()
    filename.wopen($s1)
    $o2.printf(filename)
    filename.close()
    sprint(sys_comm,"~/bin/flrm.sh %s",$s1)
    system(sys_comm)
}

// Write a matrix to file
proc SaveRates() {
    filename = new File()
    filename.wopen($s1)
    trace = new Matrix(3,$o2.getcol(1).size())
    trace.setrow(0,$o2.getcol(1))
    trace.setrow(1,$o2.getcol(1).div($o2.getcol(1).get(0)/100).sub(100))
    trace.setrow(2,$o2.getcol(9))
    trace.fprint(filename,"%-4.1f\t")
    filename.close($s1)
    sprint(sys_comm,"~/bin/flrm.sh %s",$s1)
    system(sys_comm)
}

// Read from file Golgi_count.txt the simulation index
// and write the index+1
func cplus() { local cnt
    
    filename = new File()
    strdef countfile
    countfile = "Golgi_count.txt"
    filename.ropen(countfile)
    if (!filename.isopen()) {
	system("echo 0 > Golgi_count.txt")
	filename.ropen(countfile)
    }
    cnt = filename.scanvar()
    filename.ropen(countfile)
    filename.close()
    filename.wopen(countfile)
    cnt =cnt+1
    filename.printf("%f",cnt)
    filename.close()    
    print "Simulation number : ",cnt
    return cnt
    }