.. Falcon documentation master file, created by
sphinx-quickstart on Fri May 5 15:12:39 2017.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
.. raw:: html
************************
Documentation for Falcon
************************
Falcon is a software for real-time processing of neural signals to enable
short-latency closed-loop feedback in experiments that try to causally link
neural activity to behavior. Example use cases are the detection of hippocampal
ripple oscillations or online decoding and detection of hippocampal replay
patterns.
*******************
High-Level overview
*******************
At its core, Falcon executes a user-defined data flow graph that consists of
multiple connected nodes (processors) that perform computations on one or more
streams of input data and produce one or more streams of output data. Some
types of processors produce output data without accepting input data
(sources), whereas other types of processors consume input data without
produce output data (sinks).
The data flow graph is specified in YAML text format and defines all the
processor nodes and their interconnections. Falcon ships with a number of
built-in processors that can be used to construct custom applications. Falcon can be
easily extended with new kinds of processors, although this requires modern C++
programming skills (see :ref:`overview_extensions`).
By design, Falcon software is only concerned with the execution of data flow
graphs and it does not include a graphical user interface. Rather, separate
client applications interact with a running Falcon instance through network
communication. In this way, dedicated user interfaces may be built in any
programming language for particular user applications (as determined by the
data flow graph). A generic Python control client is shipped with Falcon (see
:ref:`generic_client`) and serves as an example for how to build a user interface.
.. image:: images/falcon_environment.png
:width: 660
:alt: Description of the falcon environment. Communication of the Falcon server with the different acquisition system
(Neuralynx, Open-Ephys, datafile, Camera) in input and the output (arduino, digital hardware) while being controlled by a falcon client.
.. rst-class:: clearfix row
Work with Falcon
................
.. rst-class:: clearfix row
.. rst-class:: column column3
`Install Falcon `_
-------------------------------------
Installation guides for a `user `_ , a `docker installation `_
or for a `developer `_ of Falcon.
.. rst-class:: column column3
`User Guide `_
-------------------------------
Practical step-by-step to `run Falcon `_,
`setup a graph `_ and `configure the server `_ for the first time.
.. rst-class:: column column3
`Falcon Client `_
-------------------------------
Install and use the `Fklab Falcon Client `_ or `create `_ your own client.
.. rst-class:: clearfix row
Develop Falcon
..............
.. rst-class:: clearfix row
.. rst-class:: column column3
`Developer's guide `_
-------------------------------------
Overview of every components of Falcon-core:
- `command `_ and `logging system `_
- `configuration system `_
- `graph system `_
- `utilities `_
.. rst-class:: column column3
`Extending Falcon `_
--------------------------------------------
Falcon can be extended with new set of processors and datatype. See how you can `create your own `_.
.. table:: Existing extensions
:widths: auto
=============================================================== ==================================================================================== ============
Name (readthedoc documentation) Repository Public
=============================================================== ==================================================================================== ============
`fklab `_ `source code `_ True
`behavior `_ `source code `_ False
`decoding `_ `source code `_ False (soon)
=============================================================== ==================================================================================== ============
.. rst-class:: column column3
`Reference API `_
---------------------------------------------------
Doxygen documentation automatically generated from the code.
.. rst-class:: clearfix row
Indices and tables
..................
.. rst-class:: clearfix row
.. rst-class:: column column3
`Complete table of contents `_
.. rst-class:: column column3
:ref:`search`
.. rst-class:: column column3
`Reporting bugs or Enhancement proposals `_
.. rst-class:: clearfix row
.. _`Kloosterman Lab`: http://kloostermanlab.org
.. _NERF: http://www.nerf.be
.. toctree::
:maxdepth: 1
:hidden:
content_table
installation
user_guide
client
dev_guide
extending_falcon
api/library_root