.. Braviz documentation master file, created by
sphinx-quickstart2 on Fri Dec 26 10:02:29 2014.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Braviz library
========================================
Introduction
-------------
The braviz library aims to simplify the creation of visual analysis tools for brain data. It abstracts common tasks
required in such tools so that developers can focus on providing appropriate interfaces and visualizations for a
given task.
The library is organized into the following modules
.. toctree::
:includehidden:
:maxdepth: 2
read_and_filter
visualization
interaction
applications
The :doc:`read_and_filter` module simplifies reading and manipulating geometric and tabular data.
The :doc:`visualization` module provides common geometric and spatial data visualization.
Finally the :doc:`interaction` module contains tools for creating user interfaces, and common functions found in
visual analysis tasks.
Using braviz it is possible to create graphical applications targeted at domain experts, which can be easily extended
to new data. In order to adapt the system to a new data-set a new :class:`~braviz.readAndFilter.base_reader.BaseReader`
subclass should be created. This class will be the only one that deals with the underlying file-system which contains
the project's geometric data. Once this class is ready, all of the already built applications will work with the new
data-set.
.. image:: images/architecture.svg
:alt: Braviz architecture
:width: 50%
:align: center
Geometric and Tabular Data
---------------------------
Geometric data is what is usually found in *scientific visualization*. It has coordinates which maps places in the real
world. In brain studies it usually captured with an MRI machine and processed using several tools. Specifically
the current version deals with
- Structural MRI images
- DWI Images
- Tractography
- fMRI
- Segmentations and reconstructions
- Affine transforms
- Nonlinear warps
The :class:`~braviz.readAndFilter.base_reader.BaseReader` class provides a convenient way of accessing this data for
the different subjects in the study, automatically applying the necessary geometrical transformations.
Tabular data is commonly found in statistics and *infoviz*. It can be easily stored in tables and databases. In brain
studies it can be demographic and clinical information as well as results in neuro-psychological tests or other
performance indicators.
Usually both kinds of data are analyzed and manipulated with different tools. Braviz attempts to integrate them so that
patterns and relationships involving function and structure of the brain can be found.
Code Samples
------------
.. literalinclude:: examples/vtk_minimal.py
The code above displays the fibers that cross the anterior part of the corpus-callosum of subject `119` together with its structural
MRI Image, in the Talairach coordinate systems. It produces the following output in a vtkWindow
.. image:: images/vtk_minimal.png
:alt: example output
:width: 80%
:align: center
.. literalinclude:: examples/tabular_minimal.py
The code above reads two variables from the database, creates a scatter plot and highlights the position of subject `119`.
.. image:: images/tab_minimal.png
:alt: example output
:width: 80%
:align: center
This two pieces of code provide the most simple way of combining tabular and geometrical data. For more advanced
examples look at gui user manual.
Guides
--------
The following guides are meant to help you find your way around the API and see how the different components can
be connected.
Adapting to a new project
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configuring braviz to work with a new dataset.
:doc:`new_data_set`
Interactive work and simple scripts
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Using braviz from a python terminal and creating simple scripts.
[Not yet available]
Creating a new Qt Application
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Building a new Qt Application and integrating it with the rest of the system.
[Not yet available]
Creating a new Web Application
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Implementing a web visualization based on D3.
[Not yet available]
Dependencies
--------------
The focus of Braviz is providing useful interactive visualizations for domain experts. As such it can be considered
a high level library, focusing on the end user. For calculations, processing, data access and visualization;
it relies in the following projects
- `matplotlib `_
- `nibabel `_
- `numpy `_
- `pandas `_
- `psutil `_
- `PyQt4 `_
- `rpy2 `_
- `scipy `_
- `seaborn `_
- `tornado `_
- `vtk `_
Thanks a lot to all for making braviz possible.
Contributing
--------------
Issues
^^^^^^^^^
Please report bugs, issues and ideas for improvements in the
`issue tracker `_
Repository
^^^^^^^^^^
You may find the source code and propose improvements at the
`mercurial repository `_
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`