Friday, September 6, 2013

Spyke Viewer 0.4.0 released

We are pleased to announce the release of spykeutils and Spyke Viewer 0.4.0, available on PyPi, NeuroDebian and as binary version.

Spyke Viewer is a multi-platform GUI application for navigating, analyzing and visualizing data from electrophysiological experiments or neural simulations.  It is based on the Neo library, which enables it to load a wide variety of data formats used in electrophysiology. At its core, Spyke Viewer includes functionality for navigating Neo object hierarchies and performing operations on them. spykeutils is a Python library containing analysis functions and plots for Neo objects.

A central design goal of Spyke Viewer is flexibility. For this purpose, it includes an embedded Python console for exploratory analysis, a filtering system, and a plugin system. Filters are used to semantically define data subsets of interest. Spyke Viewer comes with a variety of plugins implementing common neuroscientific plots (e.g. rasterplot, peristimulus time histogram, correlogram, and signal plot). Custom plugins for other analyses or plots can be easily created and modified using the integrated Python editor or external editors. Documentation and installation instructions are at http://spyke-viewer.readthedocs.org/en/0.4.0/index.html

In addition, the Spyke Repository is now online. Find Spyke Viewer extensions (e.g. plugins, startup script snippets, IO plugins etc.) or share your own at http://spyke-viewer.g-node.org. Among the extensions currently hosted at the site are plugins for spike detection and spike sorting.

Some highlights from the changelogs since 0.2.0 (available for spykeutils and Spyke Viewer):
  • spykeutils & Spyke Viewer: Support for lazy loading features in current Neo development version 
  • spykeutils & Spyke Viewer: New features for spike waveform and correlogram plots 
  • Spyke Viewer: Splash screen while loading the application 
  • Spyke Viewer: Better support for starting plugins remotely: Progress bar and console output available 
  • Spyke Viewer: Additional data export formats 
  • Spyke Viewer: A startup script and an API enable more configuration and customization 
  • Spyke Viewer: Forcing a specific IO class is now possible. Graphical options for IOs with parameters 
  • Spyke Viewer: Filters are automatically deactivated on loading a selection if they prevent parts of it to be shown 
  • Spyke Viewer: Modified plugins are saved automatically before starting the plugin 
  • Spyke Viewer: Plugin configurations are now restored when saving or refreshing plugins and when restarting the program 
  • Spyke Viewer: Added context menu for navigation. Includes entries for removing objects and an annotation editor. 
  • Spyke Viewer: The editor now has search and replace functionality (access wiht Ctrl+F and Ctrl+H) 
  • spykeutils: Fast and well tested implementations for many spike train metrics (contributed by Jan Gosmann) 

The new version can be installed over older versions and will keep previous configuration, filters and plugins.

Sunday, March 10, 2013

Call for contributions: Python in Neuroscience II

CALL FOR CONTRIBUTIONS

Research Topic: "Python in Neuroscience II"
Journal:
co-hosted by Frontiers in Neuroinformatics
and Frontiers in Brain Imaging Methods

URL:
http://www.frontiersin.org/Neuroinformatics/researchtopics/Python_in_Neuroscience_II/1591

Editors:
Andrew P. Davison, CNRS, France
Markus Diesmann, Research Center Juelich, Germany
Marc-Oliver Gewaltig, Ecole Polytechnique Federale de Lausanne, Switzerland
Satrajit S. Ghosh, Massachusetts Institute of Technology, USA
Fernando Perez, University of California at Berkeley, USA
Eilif B. Muller, Blue Brain Project, EPFL, Switzerland
James A. Bednar, The University of Edinburgh, United Kingdom
Bertrand Thirion, Institut National de Recherche en informatique et automatique, France
Yaroslav O. Halchenko, Dartmouth College, USA

Important Dates:

Abstract/outline submission deadline: April 7th, 2013.
Invitations for full paper submissions sent by April 21st, 2013.
Invited full paper submission deadline: July 15, 2013.

 
Research Topic Abstract

Frontiers in Neuroinformatics hosted the research topic “Python in Neuroscience” in 2008-2009, documenting the first wave of mature
tools to propel Python into common use in the field.  This widespread
convergence on Python as the systems integration language of choice in
neuroscience has brought with it exciting new possibilities for
cross-fertilization, collaboration, and interdisciplinary interaction. 

The Python ecosystem remains vibrant and inventive, and continues to
produce cutting edge tools for neuroscience research.  With this second
research topic on “Python in Neuroscience” we seek to showcase the most
exciting developments since 2009 that include, but are not limited to,
the following themes:

- interactive simulation and visualization
- workflows and automation
- brain-machine interfaces
- advances in neuroimaging analysis methods
- sharing, re-use, storage and databasing of models and data
- data analysis libraries and frameworks
- brain atlasing, ontologies, semantic web
- model description and abstraction languages

We invite contributions that promote innovative use of Python for
scientific work from any branch of neuroscience.

This research topic is dedicated to the memory of Prof. Dr. Rolf
Koetter, visionary, colleague and friend.


Submission Procedure

Researchers and practitioners are invited to submit on or before April
7th, 2013 a max. 1 page abstract/outline of work related to the focus
of the research topic to python.in.neuroscience@gmail.com for
consideration for inclusion as an elaborated full article in the
research topic.

Please include a provisional title, a full author list, and format the
subject of your email as follows: "[python RT] outline - Your Name".

Authors will be notified whether their contribution has been accepted
by April 21st, 2013.


Full Article Information

* Full articles will be solicited based on the abstracts/outlines we
receive by April 7th, 2013.

* The deadline for submission of full articles will be July 15, 2013. 

* Manuscripts should be clearly different from user manuals or web
pages. Rather they should focus on the underlying concepts and
innovations in architecture, algorithms, data-structures, workflows,
etc.

* The research topic is co-hosted by Frontiers in Neuroinformatics and
Frontiers in Brain Imaging Methods.  Authors choose the journal which
is named when citing their article (Front. Neuroinformatics or Front.
Brain Imaging Methods) by submitting the full article to the
respective journal.  All research topic articles will be listed in
the research topic page appearing in both journals.

* Article formatting will be as for standard Frontiers "Original
Research", “Methods” or “Review” articles.  Guidelines and instructions
for their preparation can be found here.

* Frontiers in Neuroinformatics and Frontiers in Brain Imaging Methods
are open access journals, following a pay-for-publication model.
Research Topic articles enjoy a generous discount, thanks to the
support of the Frontiers Research Foundation.  Details of the
publication fees can be found here.

* Further details will be provided to authors of accepted abstracts by
April 21st, 2013.


Confirmed Submissions

The following authors have been contacted in the preparation phase of
the research topic and have confirmed they would submit a manuscript.
Article titles and author lists are preliminary.

Henrik Lindén*, Espen Hagen*, Szymon Leski, Eivind S. Norheim, Klas H.
Pettersen, Gaute T. Einevoll (*equal contribution), "LFPy: A tool for
simulation of extracellular potentials with biophysically detailed
model neurons".

VK Jirsa, AR McIntosh, et al., "Integrating neuroinformatics tools in
TheVirtualBrain".

Andrew P. Davison, Eilif Muller, Jochen M. Eppler and Mikael Djurfeldt,
"Multisimulations in PyNN: Integrating PyNN and MUSIC".

Robert Pröpper and Klaus Obermayer, "Spyke Viewer: a flexible and
extensible electrophysiological data analysis platform".

Michael Hull and David Willshaw, "morphforge: an object-model for
simulating small networks of biologically detailed neurons in python".

Alexandre Abraham, Fabian Pedregosa, Andreas Muller, Jean Kossaifi,
Alexandre Gramfort, Bertrand Thirion, Gaël Varoquaux, “Statistical
learning for Neuroimaging with scikit-learn”.

A. Gramfort, M. Luessi, E. Larson, D. Engemann, D. Strohmeier, C.
Brodbeck, M. Hamalainen, “MNE-Python: MEG and EEG data analysis with
Python”.

Thomas Vincent, Solveig Badillo, Lotfi Chaari, Christine Bakhous,
Florence Forbes, Philippe Ciuciu, "Flexible multivariate hemodynamics fMRI
data analyses and simulations with PyHRF"

Wiecki, Thomas V. and Sofer, Imri and Frank, Michael J. "HDDM:
Hierarchical Bayesian estimation of the Drift-Diffusion Model in Python”.

M. Djurfeldt, A.P. Davison, J.M. Eppler: "Modeling connectivity: Connection-set Algebra in NEST and PyNN"

Friday, February 22, 2013

Sumatra 0.5 released

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

Interfaces to documentation systems

The big addition to Sumatra in this version is a set of tools to include figures and other results generated by Sumatra-tracked computations in documents, with links to full provenance information: i.e. the full details of the code, input data and computational environment used to generate the figure/result.

The following tools are available:

  • for reStructuredText/Sphinx: an “smtlink” role and “smtimage” directive.
  • for LaTeX, a “sumatra” package, which provides the “\smtincludegraphics” command.

see Reproducible publications: including and linking to provenance information in documents for more details.

Other changes

Sumatra 0.5 development has mostly been devoted to polishing. There were a bunch of small improvements, with contributions from several new contributors. The Bitbucket pull request workflow seemed to work well for this. The main changes are:

  • working directory now captured (as a parameter of LaunchMode);
  • data differences are now based on content, not name, i.e. henceforth two files with identical content but different names (e.g. because the name contains a timestamp) will evaluate as being the same;
  • improved error messages when a required version control wrapper is not installed;
  • dependencies now capture the source from which the version was obtained (e.g. repository url);
  • YAML-format parameter files are now supported (thanks to Tristan Webb);
  • added "upstream" attribute to the Repository class, which may contain the URL of the repository from which your local repository was cloned;
  • added MirroredFileSystemDataStore, which supports the case where files exist both on the local filesystem and on some web server (e.g. DropBox);
  • the name/e-mail of the user who launched the computation is now captured (first trying ~/.smtrc, then the version control system);
  • there is now a choice of methods for auto-generating labels when they are not supplied by the user: timestamp-based (the default and previously the only option) and uuid-based. Use the "-g" option to smt configure;
  • you can also specify the timestamp format to use (thanks to Yoav Ram);
  • improved API reference documentation.

Bug fixes

A handful of bugs have been fixed.

Download, support and documentation

The easiest way to get the latest version of Sumatra is

  $ pip install sumatra

Alternatively, Sumatra 0.5.0 may be downloaded from PyPI or from the INCF Software Center. Support is available from the sumatra-users Google Group. Full documentation is available on pythonhosted.org.

Thursday, January 31, 2013

The Human Brain Project Wins Top European Science Funding

"The European Commission has officially announced the selection of the Human Brain Project (HBP) as one of its two FET Flagship projects. The new project will federate European efforts to address one of the greatest challenges of modern science: understanding the human brain."

 http://actu.epfl.ch/news/the-human-brain-project-wins-top-european-science/

Summer School "Advanced Scientific Programming in Python" in Zürich, Switzerland

Advanced Scientific Programming in Python
=========================================
a Summer School by the G-Node and the Physik-Institut, University of Zurich

Scientists spend more and more time writing, maintaining, and
debugging software. While techniques for doing this efficiently have
evolved, only few scientists actually use them. As a result, instead
of doing their research, they spend far too much time writing
deficient code and reinventing the wheel. In this course we will
present a selection of advanced programming techniques,
incorporating theoretical lectures and practical exercises tailored
to the needs of a programming scientist. New skills will be tested
in a real programming project: we will team up to develop an
entertaining scientific computer game.

We use the Python programming language for the entire course. Python
works as a simple programming language for beginners, but more
importantly, it also works great in scientific simulations and data
analysis. We show how clean language design, ease of extensibility,
and the great wealth of open source libraries for scientific
computing and data visualization are driving Python to become a
standard tool for the programming scientist.

This school is targeted at Master or PhD students and Post-docs from
all areas of science. Competence in Python or in another language
such as Java, C/C++, MATLAB, or Mathematica is absolutely required.
Basic knowledge of Python is assumed. Participants without any prior
experience with Python should work through the proposed introductory
materials before the course.

Date and Location
=================
September 1—6, 2013. Zürich, Switzerland.

Preliminary Program
===================
Day 0 (Sun Sept 1) — Best Programming Practices
  - Best Practices, Development Methodologies and the Zen of Python
  - Version control with git
  - Object-oriented programming & design patterns
Day 1 (Mon Sept 2) — Software Carpentry
  - Test-driven development, unit testing & quality assurance
  - Debugging, profiling and benchmarking techniques
  - Best practices in data visualization
  - Programming in teams
Day 2 (Tue Sept 3) — Scientific Tools for Python
  - Advanced NumPy
  - The Quest for Speed (intro): Interfacing to C with Cython
  - Advanced Python I: idioms, useful built-in data structures, generators
Day 3 (Wed Sept 4) — The Quest for Speed
  - Writing parallel applications in Python
  - Programming project
Day 4 (Thu Sept 5) — Efficient Memory Management
  - When parallelization does not help:
the starving CPUs problem
  - Advanced Python II: decorators and context managers
  - Programming project
Day 5 (Fri Sept 6) — Practical Software Development
  - Programming project
  - The Pelita Tournament

Every evening we will have the tutors' consultation hour : Tutors will
answer your questions and give suggestions for your own projects.

Applications
============
You can apply on-line at http://python.g-node.org

Applications must be submitted before 23:59 CEST, May 1, 2013.
Notifications of acceptance will be sent by June 1, 2013.

No fee is charged but participants should take care of travel,
living, and accommodation expenses.  Candidates will be selected on
the basis of their profile. Places are limited: acceptance rate is
usually around 20%.  Prerequisites: You are supposed to know the
basics of Python to participate in the lectures. You are encouraged
to go through the introductory material available on the website.

Faculty
=======
  - Francesc Alted, Continuum Analytics Inc., USA
  - Pietro Berkes, Enthought Inc., UK
  - Valentin Haenel, freelance developer and consultant, Berlin, Germany
  - Zbigniew Jędrzejewski-Szmek, Krasnow Institute,
    George Mason University, USA
  - Eilif Muller, Blue Brain Project, École Polytechnique Fédérale de
    Lausanne, Switzerland
  - Emanuele Olivetti, NeuroInformatics Laboratory, Fondazione Bruno
    Kessler and University of Trento, Italy
  - Rike-Benjamin Schuppner, Technologit GbR, Germany
  - Bartosz Teleńczuk, Unité de Neurosciences Information et Complexité,
    CNRS, France
  - Stéfan van der Walt, Applied Mathematics, Stellenbosch University,
    South Africa
  - Bastian Venthur, Berlin Institute of Technology and Bernstein Focus
    Neurotechnology, Germany
  - Niko Wilbert, TNG Technology Consulting GmbH, Germany
  - Tiziano Zito, Institute for Theoretical Biology, Humboldt-Universität
    zu Berlin, Germany

Organized by Nicola Chiapolini and colleagues of the Physik-Institut,
University of Zurich, and by Zbigniew Jędrzejewski-Szmek and Tiziano Zito for
the German Neuroinformatics Node of the INCF.

Website:  http://python.g-node.org
Contact:  python-info@g-node.org

Wednesday, November 28, 2012

Spyke Viewer 0.2.0 released

We are pleased to announce the first public release of Spyke Viewer: A multi-platform, open source GUI application for navigating, analyzing and visualizing electrophysiological datasets (obtained from experiments or simulations). It is designed to be user friendly, flexible and easily extensible.

Spyke Viewer is based on Neo and supports more than a dozen data formats. It includes functionality for  loading, saving, navigating and filtering Neo object hierarchies and performing operations on selected data. Spyke Viewer uses the most recent version of Neo (0.2.1) which was released last week and includes a number of bug fixes and improvements.

An integrated Python console allows for interactive exploration of the data. Various plugins for common neuroscientific plots (e.g. raster plot, PSTH, correlogram) are included. Creating or modifying analysis plugins is a very simple process. Using the integrated editor and command history, useful plugins can be created in minutes. For data formats not supported by Neo, IO extensions can be implemented.

Documentation and installation instructions:
    http://spyke-viewer.readthedocs.org

License:
    Modified BSD

Thursday, October 18, 2012

Sumatra 0.4 released

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

Overview

The biggest change in Sumatra 0.4 is the redesign of the browser-based interface, launched with smtweb. Thanks to the Google Summer of Code program, Dmitry Samarkanov was able to spend his summer working on improving Sumatra, with the results being a much improved web interface, better support for running Sumatra on Windows, and better support for running Matlab scripts with Sumatra. Many thanks to Google and to the INCF as mentoring organisation. In addition to Dmitry's improvements, handling of input and output data files is much improved, and Sumatra now captures and stores standard output (stdout) and standard error (stderr) streams. More details on all of these, plus a bunch of minor improvements and bug fixes, is given below. Finally, Sumatra no longer supports Python 2.5 - the minimum requirement is Python 2.6.

Web interface

The Sumatra browser-based interface runs a local webserver on your computer, and allows you to browse the information that Sumatra captures about your analyses, simulations or other computations, including code versions, input and output data files, parameter/configuration files, the operating system and processor architecture.

The interface has been completely redesigned for Sumatra 0.4, and includes dozens of large and small improvements, including:

  • a more modern, attractive design
  • the ability to select which columns to display in the record list view
  • the ability to search all of your records based on date, tags or full-text
  • side-by-side comparison of records
  • sorting of records based on any column
  • selection of multiple records by clicking or dragging for deletion, comparison and tagging

Furthermore, it is now possible to launch computations from the browser interface.

For more information, see Using the web interface.

Data file handling

In earlier versions of Sumatra, the filename (or rather, the file path relative to a user-defined root) was used as the identifier for input and output data files. The problem with this, of course, is that it is possible to overwrite a given file with new data. For this reason, Sumatra 0.4 now calculates and stores the SHA1 hash of the file contents. If the file contents change, the hash will also change, so that Sumatra can alert you if a file is accidentally overwritten, for example.

Sumatra 0.4 also adds a new data store which automatically archives a copy of the output data from your computations in a user-selected location. This data store is accessible through the API as the ArchivingFileSystemDataStore class, or through the smt command-line interface with the "archive" option to the "init" and "configure" commands.

Finally, Sumatra now allows the user the choice of whether to use an absolute or relative path for the data store root directory. Using a relative path makes projects easier to move and easier to access from other locations (e.g. with symbolic links or NFS).

Matlab support

Sumatra can capture certain information for any command-line tool: input and output data, version of the main codebase, operating system and processor architecture, etc. For dependency information, however (i.e. which libraries, modules or packages are imported/included by your main script), a separate plugin is required for each language. Sumatra already has a dependency tracking plugin for Python and for two computational neuroscience simulation environments, NEURON and GENESIS. Sumatra 0.4 adds dependency tracking for Matlab scripts.

Recording of stdout and stderr

Sumatra 0.4 now supports recording and storage of the standard output and standard error streams from your scripts.

Other new features

  • added support for JSON-format parameter files;
  • added smt export command, which allows the contents of a Sumatra record store to be exported in JSON format;
  • more information is now printed by smt list --long;
  • the Python dependency finder now supports scripts run with Python 3 (although Sumatra itself still needs Python 2);
  • can now specify HttpRecordStore username and password as part of the URL passed to smt init;
  • added support for markup using reStructuredText in the project description
  • it is no longer required to have a script file, which makes it possible to use Sumatra with your own compiled executables. Further support for compiled languages is planned for the next release.

Download, support and documentation

The easiest way to get the latest version of Sumatra is

  $ pip install sumatra

Alternatively, Sumatra 0.4.0 may be downloaded from PyPI or from the INCF Software Center. Support is available from the sumatra-users Google Group. Full documentation is available on PyPI.