thorns and waves
================

*Spike analysis software*

::

  __|________|_____|_|_|___|_____|____||_____|_____|_____|____|_____|___||______
  _|_______________________|______|_________|_______|_____|____|__|________|_|__
  _____|___|__|_____|_______|____|_________________________|__|_________|_______
  ___|_______|_____|______|_____|_______|__|___|________|______|___|____________
  __|__|_______|_____|__|___|______|________|______|______|_____|_______THORNS__



:Name: thorns
:Author: Marek Rudnicki
:Email: marek.rudnicki@tum.de
:URL: https://github.com/mrkrd/thorns
:Documentation: https://pythonhosted.org/thorns/
:License: GNU General Public License v3 or later (GPLv3+)



Description
-----------


With *thorns* you can analyze and display `spike trains`_ generated by
neurons.  It can be useful for both experimental and simulation data
using Python.  For example, you can easily calculate peristimulus time
histogram (PSTH), interspike time histogram (ISIH), vector strength
(VS), entrainment and visualize action potentials with raster plot.

*waves* is a submodule with some useful signal processing and
generation functions, e.g. generate ramped tone, amplitude modulation
tone, FFT filter, set level (dB_SPL).

I developed the package during my PhD in the group of `Werner
Hemmert`_ at the TUM.  It is oriented towards auditory research, but
it could be easily extended.


.. _`spike trains`: https://en.wikipedia.org/wiki/Spike_train
.. _`Werner Hemmert`: http://www.imetum.tum.de/research/bai/home/?L=1


Usage
-----

Check our IPython Notebook DEMO_!

Initialize and load spike trains::

  import thorns as th
  from thorns.datasets import load_anf_zilany2014

  spike_trains = load_anf_zilany2014()



Calculate vector strength::

  th.vector_strength(spike_trains, freq=1000)



Raster plot::

  th.plot_raster(spike_trains)
  th.show()



Generate and plot AM tone::

  import thorns.waves as wv

  sound = wv.amplitude_modulated_tone(
      fs=48e3,
      fm=100,
      fc=1e3,
      m=0.7,
      duration=0.1,
  )

  wv.plot_signal(sound, fs=48e3)

  wv.show()



.. _DEMO: http://nbviewer.ipython.org/github/mrkrd/thorns/blob/master/examples/thorns_demo.ipynb


Requirements
------------

- Python (2.7)
- Numpy
- Scipy
- Pandas
- Matplotlib


Installation
------------

::

   pip install thorns



Contributors
------------

- Joerg Encke
