//genesis //SP_output.g function makeOutput(cellPath, outputName, plotDt) str cellPath str outputName float plotDt str description int index str fileBasePath = "OUTDATA/" str filenameDATA = {fileBasePath}@{outputName}@".data" // str filenameDATA = "output.data" // str outputPath = "/output/"@{outputName} str outputPath = {outputName} str filenameINFO = {fileBasePath}@{outputName}@".info" str cellSoma /* if(!{exists /output}) echo "Creating /output/" create neutral /output/ end */ // Open the file in overwrite mode and write the simulation parameters echo "Writing simulation parameters to "{filenameINFO} /* openfile {filenameINFO} w writefile {filenameINFO} "nParams 2 0" // 2 numbers, 0 strings writefile {filenameINFO} "numCells "{numCells} writefile {filenameINFO} "maxTime "{maxTime} // Add info about noise level etc closefile {filenameINFO} */ echo "Setting clock 1 (output to file) to "{plotDt}"s" setclock 1 {plotDt} // Close file and reopen it as an asc_file object (append mode) // to add simulation data. /* if(!{exists {outputPath}}) echo "Creating new asc_file object: "{outputPath} create asc_file {outputPath} end */ create asc_file {outputPath} setfield {outputPath} leave_open 1 flush 1 append 1 notime 0 filename "out.data" useclock {outputPath} 1 // addmsg {cellPath}/soma {outputPath} SAVE Vm foreach cellSoma ({el {cellPath}[]}) echo "Directing voltage of "{cellSoma}" to "{outputPath} addmsg {cellSoma}/soma {outputPath} SAVE Vm end end ////////////////////////////////////////////////////////////////////////////// function addCompartmentOutput(compartment, outputName) str compartment str outputName str outputPath = "/output/"@{outputName} echo "Directing voltage of "{compartment}" to "{getfield {outputPath} filename} addmsg {compartment} {outputPath} SAVE Vm end ////////////////////////////////////////////////////////////////////////////// function clearOutput(outputName) str outputName str outputPath = "/output/"@{outputName} int ctr int nMsg = {getmsg {outputPath} -incoming -count} echo "Clearing output "{outputName} for(ctr = 0; ctr < nMsg; ctr = ctr + 1) deletemsg {outputPath} 0 -incoming end // HERE THE asc_file should be closed!! end