NNQL is a high-level language for describing and manipulating
neural network simulations. Its syntax is inspired by SQL, and feels familiar to most software developers and researchers.
NNQL improves computational and cognitive neuroscience research by providing a common platform for communicating models. For examples and syntax reference information, check out the reference manual. Binary and source code will be available soon. If you are interested in beta testing, please contact us (f l o a t @ p a k l . n e t).
1. Building and Running a Network
Here is example code that sets up a small recurrent network of 4 neurons organized into 2 layers.
CREATE NUCLEUS "V1"; CREATE NUCLEUS "V2"; INSERT NEURON IZ("phasic_spiking") INTO "V1" QUANTITY 2; INSERT NEURON IZ("phasic_spiking") INTO "V2" QUANTITY 2; PROJECT FULLY FROM NUCLEUS "V1" TO "V2" N(1.0,0.5) DELAY 50; PROJECT FULLY FROM NUCLEUS "V2" TO "V1" N(1.0,0.5) DELAY 100; COMPLETE MODEL; EXECUTE MODEL 5000;There are 2 neurons first layer and 2 neurons in the second layer. The weights between the layers have random values specified by the string N(1.0,0.5) which means they follow a normal distribution with mean 1 and standard deviation 0.5. The neurons are phasic spiking neurons as described by Izhikevich (2004). The model runs for 5,000 ticks, which is equivalent to 5,000 milliseconds of time. [Back]
2. Stimulating a Network and Recording
Often one wants to stimulate a network and record its output. This can be easily done by replacing the last line of the simulation above with the following. (Place two columns of numbers reflecting the amounts of current to inject into V1 in a file called "stimtrain2.txt".) RECORD FROM "V1" INTO "ram"; RECORD FROM "V2" INTO "ram"; STIMULATE NUCLEUS "V1" FROM "stimtrain2.txt"; EXECUTE MODEL 5000; ALL_RECORDERS makePlot;This generates plots of network activity. You can also easily generate raster plots or peri-stimulus time histograms (PSTHs). [Back]
3. Try it yourself!
NNQL comes with a bunch of easy-to-use demos, including networks that solve the XOR problem, do pattern recognition/categorization, sequence learning, and much more. Try it yourself to see how easy it can be to describe complex neural networks. Please feel free to contact us for more information on NNQL or to let us know if you would like to be a beta tester. [Back] This is the about page.
|