Example: interface (interface)ΒΆ
Interface example Install cherrypy for this example Then run the script and go to http://localhost:8080 on your web browser You can use cherrypy to write html interfaces to your code.
from brian import *
import cherrypy
import os.path
# The server is defined here
class MyInterface(object):
@cherrypy.expose
def index(self): # redirect to the html page we wrote
return '<meta HTTP-EQUIV="Refresh" content="0;URL=index.html">'
@cherrypy.expose
def runscript(self, we="1.62", wi="-9", **kwd): # 'runscript' is the script name
# we and wi are the names of form fields
we = float(we)
wi = float(wi)
# From minimalexample
reinit_default_clock()
eqs = '''
dv/dt = (ge+gi-(v+49*mV))/(20*ms) : volt
dge/dt = -ge/(5*ms) : volt
dgi/dt = -gi/(10*ms) : volt
'''
P = NeuronGroup(4000, model=eqs, threshold= -50 * mV, reset= -60 * mV)
P.v = -60 * mV + 10 * mV * rand(len(P))
Pe = P.subgroup(3200)
Pi = P.subgroup(800)
Ce = Connection(Pe, P, 'ge')
Ci = Connection(Pi, P, 'gi')
Ce.connect_random(Pe, P, 0.02, weight=we * mV)
Ci.connect_random(Pi, P, 0.02, weight=wi * mV)
M = SpikeMonitor(P)
run(.5 * second)
clf()
raster_plot(M)
savefig('image.png')
# Redirect to the html page we wrote
return '<meta HTTP-EQUIV="Refresh" content="0;URL=results.html">'
# Set the directory for static files
current_dir = os.path.dirname(os.path.abspath(__file__))
conf = {'/': {'tools.staticdir.on':True,
'tools.staticdir.dir':current_dir}}
# Start the server
cherrypy.quickstart(MyInterface(), config=conf)