Table of Contents
- Supported Formats
- Keyboard & Mouse shortcuts
- Use Cases
- TO DO
- Additional Information
- Known Issues
Moogli (a sister project of MOOSE) is a simulator independent openGL based visualization tool for neural simulations. Moogli can visualize morphology of single/multiple neurons or network of neurons, and can also visualize activity in these cells.
Moogli is like VLC player for neural simulations.
- libQGLViewer-2.3.15-py & install instructions here
- PyQGLViewer0.10 (first install libQGLViewer-2.3.15-py) and untar contents
cd / PyQGLViewer0.10
>python setup.py build # to compile
>python setup.py install # to install on your system
>python setup.py bdist # to create a binary distribution
Download and unzip Moogli from git repo
In terminal, cd to location of unzipped Moogli folder (/Moogli)
You will see an white screen with axes on the bottom left.
Currently .xml (MorphML/NeuroML), .csv for visualizaing morphology of cells The .p file format is in development
The format currently employed for data visualization is hdf5. The file structure includes morphology of the cell(s) being visualized. Currently support Morphml (.xml) Neuroml(.xml) and .csv
Moogli now also supports .csv for data visualization. See /samples/timeSeries.csv for example
In future: Employ a standard format for data visualization. Also plans to include electrophys file formats.
Currently: Testing neo compatibility and auto placement of cells.
Save as formats
Save screenshot (.png) of the current display.
Save as movie (.avi) for data visualization. [Users will be able to 'direct' their movies soon]
Refer to /Moogli/defaults.py file (the file is self explanatory via comments)
- Background color of the scene.
- To draw the cells using default settings.
- To visualize the cells using default settings.
- To use default binning properties.
- Speed of visualization updation.
- FPS/height/width when saving as .avi
Keyboard & Mouse shortcuts
Keyboard - User can bring this up by hitting 'H' key
Mouse - User can bring this up by hitting 'H' key
Control + O : Open File
Control + S : Save As
Control + Q : Quit
Spacebar : Play/Pause Visualization
Inspect morphology of cell
Above prompt is only seen when DEFAULT DRAW is False
Selecting to draw all compartments (Button labeled 'A') as cylinders and click 'OK'
alternatively, if not sure
Click 'Use Defaults'
Try displaying some of the compartments in a cell as cylinders and others as capsules.
Display multiple copies of same cell
Accomplished by giving an offset position in the style selection prompt
The hdf5 file has the data only for 3 compartments. Moogli can handle partial data. Here showing default visualization.
More later …
There is also the case of visualizing large network of neurons(1000's) In which case, the morphology of individual cell is ignored, and each neuron is represented as spheres/disks which are placed according to a graphviz like algorithm depending on connectivity. (Also support for NetworkML)
In this case, the data may be only spike timing data. But the tree structure of the previous case is still adhered and the connectivity between compartments is stored as text arrays inside hdf5 file itself.
Employ a standard format for data, HDF5 format ( NeuroHDF? ) Support additionally Electrophys file formats ( neo? ) Support .p file formats
Direction of movie output - cleaner ways to do it - a possible demo?
More examples /use cases for documentation
Easy to install packaging. Specific to each OS.
New Color Maps
If one needs to add other colormaps to the existing, generate a list of color values (rgb) scaled to 1 (ie 0 to 255 = 0 to 1) and pickle this list. Ensure no name conflics when naming the file. Now add this pickled file in the /Moogli/openGLHeaders/colormaps folder. In addition use the script /Moogli/icons/makeColorMap.py to generate an icon for the colormap.
For single/multiple neurons, the data itself is stored in arrays, following a strict tree structure. For example,
corresponds to the arrayof values of that property (can be membrane potential / Ca concentration etc) over time. This is because, it gives an easy intuitive handle to the data.
- Drawing of cylinders/capsules at some times, would show up as discontinous elements.[NOW FIXED]
Issue: Drawing of cylinders in OpenGL has an issue Ref: /Moogli/openGLHeaders/objects.py
Current fix: Draw as Ball&Sticks instead [THIS IS FIXED NOW]
Q. Would Moogli support some specific file format?
A. The idea is to have as many supported formats as possible. Eventually that is.
Q. I was able to see the cell initially, I zoomed out/in, now I do not see the cell!
A. In the /Moogli folder look for ".MoogliState.xml" file and delete it. This arises because of no limitation on zooming.
More later …
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Upinder S. Bhalla, Subhasis Ray, Niraj Dudani, Aditya Gilra of NCBS for feedback and encouragment.
Developers of libQGLViewer and its python bindings by Frederic Boudon.
Harsha and punch for the website
We welcome you to collaborate on this project. Please send us your details, and how you can contribute.
Upinder S. Bhalla : bhalla[at]ncbs[dot]res[dot]in
C Hanuma Chaitanya : chaitanyah[at]ncbs[dot]res[dot]in