Tuesday, November 3, 2009

Slides from FACETS CodeJam #3

The slides from most of the talks at the 3rd FACETS CodeJam workshop are now online.

The CodeJam workshops are focused on collaborative software development in neuroscience, particularly computational neuroscience, with mornings devoted to talks on recent developments and useful tools, and afternoons to code sprints.

This year we had the pleasure of listening to talks on speeding up Python using Cython, from Stefan Behnel, parallel processing on GPUs using PyOpenCL, from Andreas Klöckner, parallel processing with mpi4py from Eilif Muller, together with sessions on neuroscience data analysis using NeuroTools, OpenElectrophy and FIND, on reproducible research in computational neuroscience, on simulator technologies including NEST, NEURON, PCSIM, PyNN and MUSIC, and on neuromorphic hardware.

Notes on the code sprints will be posted later. Comments and some discussion of the talks can be found on FriendFeed.

Thursday, September 3, 2009

FACETS CodeJam #3 Registration deadline approaching

If you haven't yet registered for the 3rd Annual FACETS CodeJam, please visit
http://neuralensemble.org/codejam3 for more information on the meeting, and instructions for registering.

In short, The 3rd FACETS CodeJam will be held Oct 7-9, 2009 in Freiburg, Germany.
The FACETS CodeJam workshop is a FACETS sponsored meeting which is open to the public, and has established itself as a productive forum where various developers in the field of Neuroscience can get together, exchange ideas, plan future directions, and write code, with a hint of Python. It is the meeting where neuralensemble.org got started, and promises to be alot of fun again this year! Looking forward to meeting you there!

Wednesday, September 2, 2009

CodeNode - interactive online programming notebook

Just came across this today (via). CodeNode is a tool that lets you program interactively in your browser using Python or Sage, with an interface something like a Mathematica notebook. You can organize your code into multiple notebooks and folders.

I don't really see this as a replacement for an IDE, but it might be a very nice tool for collaborative code writing (e.g. during code sprints), for working when travelling and away from your main development machine, and for literate programming.

The nearest equivalent I can think of is Bespin, although I think that's just an online code editor, it doesn't let you run the code.

It might be nice to run a CodeNode instance at NeuralEnsemble, although it would probably be best on a separate server: I imagine you could quickly bring a server to its knees if you have many users at once, or large data sets. What do you think?


Tuesday, August 11, 2009

NE.O Job Listings

A "Jobs" tab has just been added to the neuralensemble.org navigation side-panel, listing jobs which may be of interest to the community. Kicking it off are two excellent opportunities for budding researchers in Europe or the US, with application deadlines soon! This is a listing for third-party job adverts, so please feel free to submit to admin@neuralensemble.org.

Tuesday, June 9, 2009

PyNN 0.5.0 released

PyNN 0.5.0 is available for download from NeuralEnsemble.org, the INCF Software Center or PyPI.

Changes

There have been rather few changes to the API in this version, which has focused rather on improving the simulator interfaces and on an internal code-reorganization which aims to make PyNN easier to test, maintain and extend.

Principal API changes:
  • Removed the 'string' connection methods from the Projection constructor.
  • The method argument now must be a Connector object, not a string.
  • Can now record synaptic conductances.
  • Can now access weights and delays of individual connections one-at-a-time within a Projection through Connection objects.
  • Added an interface for injecting arbitrary time-varying currents into cells.
  • Added get_v() and get_gsyn() methods to the Population class, enabling membrane potential and synaptic conductances to be read directly into memory,rather than saved to file.
    
Improvements to simulator back-ends:
  • Implemented an interface for the Brian simulator.
  • Re-implementated the interface to NEURON, to use the new functionality in v7.0.
  • Removed support for version 1 of NEST. The module for NEST v2 is now simply called pyNN.nest.
  • The PCSIM implementation is now more complete, and more compatible with the other back-ends.
  • Behind-the-scenes refactoring to implement the API in terms of a small number of low-level, simulator-specific operations. This reduces redundancy between simulator modules, and makes it easier to extend PyNN, since if new functionality uses the low-level operations, it only needs to be written once, not once for each simulator.
What is PyNN?

PyNN (pronounced 'pine' ) is a simulator-independent language for building neuronal network models. 

In other words, you can write the code for a model once, using the PyNN API and the Python programming language, and then run it without modification on any simulator that PyNN supports (currently NEURONNESTPCSIM and Brian).

The API has two parts, a low-level, procedural API (functions create()connect()set()record()record_v()), and a high-level, object-oriented API (classes Population and Projection, which have methods like set()record()setWeights(), etc.) 

The low-level API is good for small networks, and perhaps gives more flexibility. The high-level API is good for hiding the details and the book-keeping, allowing you to concentrate on the overall structure of your model.

The other thing that is required to write a model once and run it on multiple simulators is standard cell and synapse models. PyNN translates standard cell-model names and parameter names into simulator-specific names, e.g. standard model IF_curr_alpha is iaf_neuron in NEST and StandardIF in NEURON, while SpikeSourcePoisson is a poisson_generator in NEST and a NetStim in NEURON.

Even if you don't wish to run simulations on multiple simulators, you may benefit from writing your simulation code using PyNN's powerful, high-level interface. In this case, you can use any neuron or synapse model supported by your simulator, and are not restricted to the standard models.

PyNN is a work in progress, but is already being used for several large-scale simulation projects.

The code is released under the CeCILL licence.

For full details, see the users' guide and the API reference.

Thursday, April 30, 2009

EuroScipy 2009 in Leipzig, Germany

I just noticed today the EuroScipy 2009 will be held again in Leipzig this year. The deadline for abstract submission is today, but maybe they will extend that by a week.

Wednesday, April 1, 2009

CNS workshop “Python in Neuroscience”: call for participation

We wish to announce the workshop “Python in Neuroscience”, to be held July 22nd-23rd, 2009 at the CNS’09 conference in Berlin, made possible by generous support from the European Union under the Bio-inspired Intelligent Information Systems program, project reference IST-2004-15879 (FACETS,
www.facets-project.org), and by the Bernstein Center for Computational Neuroscience (BCCN), Albert-Ludwigs-University Freiburg, Germany (www.bccn.uni-freiburg.de).

Python is rapidly becoming the de facto standard language for systems integration. Python has a large user and developer-base external to the neuroscience community, and a vast module library that facilitates rapid and maintainable development of complex and intricate systems. In this
workshop, we highlight efforts to develop Python modules for the domain of neuroscience software and neuroinformatics. Moreover, we seek to provide a representative overview of existing mature Python modules for neuroscience and neuroinformatics, to demonstrate a critical mass and show that Python is an appropriate choice of interpreter interface for future neuroscience software development.

There will be tutorial & demo sessions where visitors with laptops can install and get introduced and acquainted with Python and the various software. A preliminary program can be found on the CNS web site: http://www.cnsorg.org/2009/workshops.shtml

The workshop will include several sessions of lightning talks (http://en.wikipedia.org/wiki/Lightning_Talk), which are 5 minutes talks on any subject relevant to Python for neuroscience. Please send us an abstract proposal by email (romain.brette@ens.fr) if you are interested in giving such a talk. It could be about your own personal software contribution or about your experience with an existing Python module or tool that you think could be relevant for neuroscience. We will select a limited number of abstracts from the submissions. The deadline for
submission is April 30th.

We look forward to seeing you in Berlin.

Eilif Muller, Jens Kremkow, Andrew Davison and Romain Brette