Wednesday, May 26, 2010

GvR on "Python in the Scientific World"

"Yesterday I attended a biweekly meeting of an informal a UC Berkeley group devoted to Python in science (Py4Science), organized by Fernando Perez. The format (in honor of my visit) was a series of 4-minute lightning talks about various projects using Python in the scientific world (at Berkeley and elsewhere) followed by an hourlong Q&A session. This meant I didn't have to do a presentation and still got to interact with the audience for an hour -- my ideal format.

I was blown away by the wide variety of Python use for scientific work. It looks like Python (with extensions like numpy) is becoming a standard tool for many sciences that need to process large amounts of data, from neuroimaging to astronomy. ..."

http://neopythonic.blogspot.com/2009/11/python-in-scientific-world.html

Tuesday, April 20, 2010

FACETS CodeJam #4 registration now open

Registration is now open for the 4th Annual FACETS CodeJam meeting (http://neuralensemble.org/codejam4), which will take place June 22nd-24th, 2010 in Marseille, France.

The goal of the FACETS CodeJam workshops is to catalyze open-source, collaborative software development in computational and systems neuroscience and neuroinformatics, by bringing together researchers, students and engineers to share ideas, present their work, and write code together. The general format of the workshops is to dedicate the mornings to invited and contributed talks, leaving the afternoons free for discussions and code sprints.

For the 4th FACETS CodeJam, the main theme of the meeting will be workflows: what are the best practices for combining different tools (simulators, analysis tools, visualization tools, databases etc.) to ensure the efficient and reproducible flow of data and information from experiment conception to publication and archiving? Our invited speakers include:

• Dr Juliana Freire, who will talk about scientific data management, workflows and provenance, and give a demonstration of the VisTrails system.

• Dr Hugo Cornelis, who will talk about simulation project workflows in the GENESIS 3 simulator, and give a GENESIS 3 demonstration.

• Dr Gael Varoquaux, a primary contributor to the MayaVI 3D visualization tool for Python, will talk about analysing and modelling spontaneous brain activity in neuroimaging with
Python.

We invite contributions on any topic related to software in neuroscience, but especially on topics related to the main theme - if you think you have a good system for managing your workflow, please come and share it with us. If you have ideas for organising code sprints, whether a feature that you would like to see added to an existing tool or an idea for new software, please also let us know.

The meeting is being organised by Andrew Davison, Abigail Morrison, Eilif Muller and Laurent Perrinet.

Registration & Further Information
==================================

The registration deadline in 4 June 2010, and is limited to 40 participants.

Please consult the meeting website at

http://neuralensemble.org/codejam4

for registration and further information.

Tuesday, April 6, 2010

Tracking computational experiments with Sumatra

“I thought I used the same parameters but I’m getting different results”

“I can’t remember which version of the code I used to generate figure 6”

“The new student wants to reuse that model I published three years ago but he can’t reproduce the figures”

“It worked yesterday”

“Why did I do that?”


We would like to announce the release of version 0.1 of Sumatra, a tool for tracking computational experiments and analyses so as to be able to easily replicate them at a later date.

Replication of computational experiments or analyses ought to be easy, given that computers don't suffer from the problems of inter-subject and trial-to-trial variability that make reproduction of biological experiments so challenging. In general, however, it is not easy, perhaps due to the complexity of our code and our computing environments, and the difficulty of capturing every essential piece of information needed to reproduce a computational experiment using existing tools such as spreadsheets, version control systems and paper notebooks.

The aim of Sumatra is to record as much as possible of the experimental context (software versions, parameters, dependencies, platform information, what files were produced, etc.) automatically, and make it easy to annotate the record with information that cannot be obtained automatically (why the simulation or analysis was performed, tags for later searching, etc.).

Given the large differences in the workflows of different researchers (command line, GUI, batch-jobs (e.g. in supercomputer environments), or any combination of these for different components (simulation, analysis, graphing, etc.) and phases of a project), it is difficult to provide a one-tool-fits-all solution, therefore Sumatra provides the core functionality as a Python package on top of which various different interfaces can be built.

Sumatra currently provides a command-line interface and a rudimentary web interface; we hope that people will also be interested in incorporating Sumatra's functionality within their own tools.

Sumatra 0.1 may be downloaded from the INCF Software Center or from PyPI.

For more information and documentation, check out https://neuralensemble.org/trac/sumatra/.

Sunday, February 14, 2010

PyNN 0.6.0 released

PyNN 0.6.0 is available for download from the INCF Software Center or from PyPI.

Changes


There have been three major changes to the API in this version.
  1. Spikes, membrane potential and synaptic conductances can now be saved to file in various binary formats. To do this, pass a PyNN File object to Population.print_X(), instead of a filename. There are various types of PyNN File object, defined in the recording.files module, e.g., StandardTextFile, PickleFile, NumpyBinaryFile, HDF5ArrayFile.
  2. Added a reset() function and made the behaviour of setup() consistent across simulators. reset() sets the simulation time to zero and sets membrane potentials to their initial values, but does not change the network structure. setup() destroys any previously defined network.
  3. The possibility of expressing distance-dependent weights and delays was extended to the AllToAllConnector and FixedProbabilityConnector classes. To reduce the number of arguments to the constructors, the arguments affecting the spatial topology (periodic boundary conditions, etc.) were moved to a new Space class, so that only a single Space instance need be passed to the Connector constructor.

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 NEURON, NEST, PCSIM and Brian).

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.


The code is released under the CeCILL licence (GPL-compatible).

For an in-depth explanation of the motivations behind PyNN and the guiding principles behind its design, see this article in Frontiers in Neuroinformatics. For a briefer overview, see this recent article in the Neuromorphic Engineer.

Thursday, February 4, 2010

3rd INCF Congress of Neuroinformatics

The 3rd INCF Congress of Neuroinformatics will take place in Kobe, Japan, from 30th August - 1st September 2010.

I'm particularly looking forward to the keynotes from Upi Bhalla ("Multiscale models of the synapse: a self-modifying memory machine") and Colin Ingram ("Working in the clouds: creating an e-science collaborative environment for neurophysiology"), and to the workshop on model description languages.

Abstract submission (for posters and demos) is open until 21st April. Hopefully I'll be able to present our Django-based framework for neuroscience databases.

Sunday, January 10, 2010

NE.O welcomes The Brian Simulator

We here at Neural Ensemble are proud to offer Trac/Subversion hosting to yet another excellent open-source Neuroscience project, The Brian Simulator:

"Brian is a simulator for spiking neural networks available on almost all platforms. The motivation for this project is that a simulator should not only save the time of processors, but also the time of scientists.

Brian is easy to learn and use, highly flexible and easily extensible. The Brian package itself and simulations using it are all written in the Python programming language."

The new trac page for Brian can be found here. Please join us in welcoming The Brian Simulator to our community, and making their stay with us a pleasant and fruitful one.

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.