Browse Source

Merge branch 'enh/neo09-2' of INT/multielectrode_grasp into master

I think we can do this all in a single PR. I just tested the code using the new requirements.txt, and all worked fine.
Michael Denker 1 year ago
parent
commit
ada4464b28
100 changed files with 40 additions and 128 deletions
  1. 16 0
      .gitignore
  2. 3 3
      README.md
  3. 9 12
      code/data_overview_1.py
  4. 12 18
      code/data_overview_2.py
  5. 0 1
      code/elephant/CITATION.txt
  6. 0 1
      code/elephant/LICENSE.txt
  7. 0 1
      code/elephant/MANIFEST.in
  8. 0 1
      code/elephant/PKG-INFO
  9. 0 1
      code/elephant/README.md
  10. 0 1
      code/elephant/doc/Makefile
  11. 0 1
      code/elephant/doc/_templates/autosummary/class.rst
  12. 0 1
      code/elephant/doc/acknowledgments.rst
  13. 0 1
      code/elephant/doc/authors.rst
  14. 0 1
      code/elephant/doc/bib/elephant.bib
  15. 0 1
      code/elephant/doc/citation.rst
  16. 0 1
      code/elephant/doc/conf.py
  17. 0 1
      code/elephant/doc/developers_guide.rst
  18. 0 1
      code/elephant/doc/documentation_guide.rst
  19. 0 1
      code/elephant/doc/get_in_touch.rst
  20. 0 1
      code/elephant/doc/images/elephant_favicon.ico
  21. 0 1
      code/elephant/doc/images/elephant_logo.png
  22. 0 1
      code/elephant/doc/images/elephant_logo_sidebar.png
  23. 0 1
      code/elephant/doc/index.rst
  24. 0 1
      code/elephant/doc/install.rst
  25. 0 1
      code/elephant/doc/maintainers_guide.rst
  26. 0 1
      code/elephant/doc/make.bat
  27. 0 1
      code/elephant/doc/modules.rst
  28. 0 1
      code/elephant/doc/reference/_spike_train_processing.rst
  29. 0 1
      code/elephant/doc/reference/asset.rst
  30. 0 1
      code/elephant/doc/reference/causality.rst
  31. 0 1
      code/elephant/doc/reference/cell_assembly_detection.rst
  32. 0 1
      code/elephant/doc/reference/change_point_detection.rst
  33. 0 1
      code/elephant/doc/reference/conversion.rst
  34. 0 1
      code/elephant/doc/reference/cubic.rst
  35. 0 1
      code/elephant/doc/reference/current_source_density.rst
  36. 0 1
      code/elephant/doc/reference/gpfa.rst
  37. 0 1
      code/elephant/doc/reference/kernels.rst
  38. 0 1
      code/elephant/doc/reference/neo_tools.rst
  39. 0 1
      code/elephant/doc/reference/pandas_bridge.rst
  40. 0 1
      code/elephant/doc/reference/parallel.rst
  41. 0 1
      code/elephant/doc/reference/phase_analysis.rst
  42. 0 1
      code/elephant/doc/reference/signal_processing.rst
  43. 0 1
      code/elephant/doc/reference/spade.rst
  44. 0 1
      code/elephant/doc/reference/spectral.rst
  45. 0 1
      code/elephant/doc/reference/spike_train_correlation.rst
  46. 0 1
      code/elephant/doc/reference/spike_train_dissimilarity.rst
  47. 0 1
      code/elephant/doc/reference/spike_train_generation.rst
  48. 0 1
      code/elephant/doc/reference/spike_train_surrogates.rst
  49. 0 1
      code/elephant/doc/reference/spike_train_synchrony.rst
  50. 0 1
      code/elephant/doc/reference/sta.rst
  51. 0 1
      code/elephant/doc/reference/statistics.rst
  52. 0 1
      code/elephant/doc/reference/toctree/kernels/elephant.kernels.AlphaKernel.rst
  53. 0 1
      code/elephant/doc/reference/toctree/kernels/elephant.kernels.EpanechnikovLikeKernel.rst
  54. 0 1
      code/elephant/doc/reference/toctree/kernels/elephant.kernels.ExponentialKernel.rst
  55. 0 1
      code/elephant/doc/reference/toctree/kernels/elephant.kernels.GaussianKernel.rst
  56. 0 1
      code/elephant/doc/reference/toctree/kernels/elephant.kernels.LaplacianKernel.rst
  57. 0 1
      code/elephant/doc/reference/toctree/kernels/elephant.kernels.RectangularKernel.rst
  58. 0 1
      code/elephant/doc/reference/toctree/kernels/elephant.kernels.TriangularKernel.rst
  59. 0 1
      code/elephant/doc/reference/unitary_event_analysis.rst
  60. 0 1
      code/elephant/doc/reference/waveform_features.rst
  61. 0 1
      code/elephant/doc/release_notes.rst
  62. 0 1
      code/elephant/doc/style_guide.rst
  63. 0 1
      code/elephant/doc/tutorials.rst
  64. 0 1
      code/elephant/doc/tutorials/asset.ipynb
  65. 0 1
      code/elephant/doc/tutorials/asset_showcase_500.nix
  66. 0 1
      code/elephant/doc/tutorials/gpfa.ipynb
  67. 0 1
      code/elephant/doc/tutorials/parallel.ipynb
  68. 0 1
      code/elephant/doc/tutorials/statistics.ipynb
  69. 0 1
      code/elephant/doc/tutorials/unitary_event_analysis.ipynb
  70. 0 1
      code/elephant/elephant/VERSION
  71. 0 1
      code/elephant/elephant/__init__.py
  72. 0 1
      code/elephant/elephant/asset.py
  73. 0 1
      code/elephant/elephant/causality/__init__.py
  74. 0 1
      code/elephant/elephant/causality/granger.py
  75. 0 1
      code/elephant/elephant/cell_assembly_detection.py
  76. 0 1
      code/elephant/elephant/change_point_detection.py
  77. 0 1
      code/elephant/elephant/conversion.py
  78. 0 1
      code/elephant/elephant/cubic.py
  79. 0 1
      code/elephant/elephant/current_source_density.py
  80. 0 1
      code/elephant/elephant/current_source_density_src/KCSD.py
  81. 0 1
      code/elephant/elephant/current_source_density_src/README.md
  82. 0 1
      code/elephant/elephant/current_source_density_src/__init__.py
  83. 0 1
      code/elephant/elephant/current_source_density_src/basis_functions.py
  84. 0 1
      code/elephant/elephant/current_source_density_src/icsd.py
  85. 0 1
      code/elephant/elephant/current_source_density_src/test_data.mat
  86. 0 1
      code/elephant/elephant/current_source_density_src/utility_functions.py
  87. 0 1
      code/elephant/elephant/gpfa/__init__.py
  88. 0 1
      code/elephant/elephant/gpfa/gpfa.py
  89. 0 1
      code/elephant/elephant/gpfa/gpfa_core.py
  90. 0 1
      code/elephant/elephant/gpfa/gpfa_util.py
  91. 0 1
      code/elephant/elephant/kernels.py
  92. 0 1
      code/elephant/elephant/neo_tools.py
  93. 0 1
      code/elephant/elephant/pandas_bridge.py
  94. 0 1
      code/elephant/elephant/parallel/__init__.py
  95. 0 1
      code/elephant/elephant/parallel/mpi.py
  96. 0 1
      code/elephant/elephant/parallel/parallel.py
  97. 0 1
      code/elephant/elephant/phase_analysis.py
  98. 0 1
      code/elephant/elephant/signal_processing.py
  99. 0 1
      code/elephant/elephant/spade.py
  100. 0 0
      code/elephant/elephant/spade_src/LICENSE

+ 16 - 0
.gitignore

@@ -70,3 +70,19 @@ Thumbs.db
 
 # Things specific to this project #
 ###################################
+code/example_plot.eps
+code/example_plot.pdf
+code/example_plot.png
+code/data_overview_1_Nikos2.eps
+code/data_overview_1_Nikos2.pdf
+code/data_overview_1_Nikos2.png
+code/data_overview_2_Nikos2.eps
+code/data_overview_2_Nikos2.pdf
+code/data_overview_2_Nikos2.png
+code/data_overview_1_Lilou.eps
+code/data_overview_1_Lilou.pdf
+code/data_overview_1_Lilou.png
+code/data_overview_2_Lilou.eps
+code/data_overview_2_Lilou.pdf
+code/data_overview_2_Lilou.png
+

+ 3 - 3
README.md

@@ -88,8 +88,8 @@ The script produces a figure saved in three different graphics file formats.
 ### Directory code/reachgraspio
 Contains the file `reachgraspio.py`, which contains the loading routine specific to the Reach-to-Grasp experiments in this repository. This loading routine merges the recorded data with metadata information from the odML files into a common Neo object. It is recommended that this loading routine is used in combination with the odML and Neo libraries (see below) to work on the data.
 
-### Further subdirectories of code
-The subdirectories `python-neo`, `python-odml`, and `elephant` contain snapshots of the Neo[1], odML[2], and Elephant[3] libraries, respectively, that are required by the example scripts and the reachgraspio loading routine. In short, Neo provides the data model, generic Blackrock loading routines, and APIs used to load the data; odML provides an API to handle the metadata files; and Elephant is a library for the analysis of neuronal data based on the Neo data model that is used by the example script for filtering raw signals to obtain offline filtered LFPs. By modifying the file `load_local_neo_odml_elephant.py` in the code directory it is possible to instruct the example scripts to use system-wide installed versions of these libraries instead of the static snapshots. Note however, that future versions of these libraries may requires adapted versions of the `reachgraspio.py` loading routine (see Updates below).
+### Python dependencies
+The provided code is based on the Python libraries Neo[1], odML[2], and Elephant[3], that are required by the example scripts and the reachgraspio loading routine. In short, Neo provides the data model, generic Blackrock loading routines, and APIs used to load the data; odML provides an API to handle the metadata files; and Elephant is a library for the analysis of neuronal data based on the Neo data model that is used by the example script for filtering raw signals to obtain offline filtered LFPs. To run the provided code install the Python dependencies listed in `code/requirements.txt`. Note however, that the versions specified in the `code/requirements.txt` are fixed to match the provided version of the`reachgraspio.py` loading routine (see Updates below) and more recent versions might exist.
 * [1] https://github.com/NeuralEnsemble/python-neo
 * [2] https://github.com/G-Node/python-odml
 * [3] https://github.com/NeuralEnsemble/elephant
@@ -110,5 +110,5 @@ This includes, in particular, the loading routine reachgraspio.py, which may nee
 ## Licensing
 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">Massively parallel multi-electrode recordings of macaque motor cortex during an instructed delayed reach-to-grasp task</span> in the directories `datasets` and `datasets_matlab` by <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Institut de Neurosciences de la Timone (INT), UMR 7289, CNRS – Aix Marseille Université, Marseille, France and Institute of Neuroscience and Medicine (INM-6), Forschungszentrum Jülich, Jülich, Germany</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
 
-All code in the directories `code`, `code/python-odml`, `code/python-neo`, `code/elephant`, and `code/reachgraspio` are each published under the BSD 3 clause licenses. See the `LICENSE.txt` or `LICENSE` files in the corresponding directories for the full license.
+All code in the directories `code` and `code/reachgraspio` are each published under the BSD 3 clause licenses. See the `LICENSE.txt` or `LICENSE` files in the corresponding directories for the full license.
 

+ 9 - 12
code/data_overview_1.py

@@ -33,10 +33,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 """
 
-# This loads the Neo and odML libraries shipped with this code. For production
-# use, please use the newest releases of odML and Neo.
-import load_local_neo_odml_elephant
-
 import os
 
 import numpy as np
@@ -114,7 +110,7 @@ def get_arraygrid(signals, chosen_el):
         connector_aligned_id = signals.array_annotations['connector_aligned_ids'][sig_idx]
         x, y = int((connector_aligned_id -1)// 10), int((connector_aligned_id - 1) % 10)
 
-        if signals.array_annotations['channel_ids'][sig_idx] == chosen_el:
+        if np.asarray(signals.array_annotations['channel_ids'][sig_idx], dtype=int) == chosen_el:
             array_grid[x, y] = -0.7
         elif rejections[sig_idx]:
             array_grid[x, y] = -0.35
@@ -533,7 +529,8 @@ assert len(el_raw_sig) == 1
 el_raw_sig = el_raw_sig[0]
 
 # plotting raw signal trace of chosen electrode
-chosen_el_idx = np.where(el_raw_sig.array_annotations['channel_ids'] == chosen_el[monkey])[0][0]
+chids = np.asarray(el_raw_sig.array_annotations['channel_ids'], dtype=int)
+chosen_el_idx = np.where(chids == chosen_el[monkey])[0][0]
 ax4.plot(el_raw_sig.times.rescale(plotting_time_unit),
          el_raw_sig[:, chosen_el_idx].squeeze().rescale(raw_signal_unit),
          color='k')
@@ -595,8 +592,8 @@ ax4.text(timebar_xmin + 0.25 * pq.s, timebar_ypos + timebar_labeloffset,
 # =============================================================================
 # get behavioral signals
 ainp_signals = [nsig for nsig in trial_segment.analogsignals if not nsig.annotations['neural_signal']][0]
-
-force_channel_idx = np.where(ainp_signals.array_annotations['channel_ids'] == 141)[0][0]
+chids = np.asarray(ainp_signals.array_annotations['channel_ids'], dtype=int)
+force_channel_idx = np.where(chids == 141)[0][0]
 ainp_trialz_signals = [a for a in trialz_seg.analogsignals if not a.annotations['neural_signal']]
 assert len(ainp_trialz_signals)
 ainp_trialz = ainp_trialz_signals[0][:, force_channel_idx]
@@ -635,14 +632,14 @@ fploff_trz = eventz[stopidx].rescale(plotting_time_unit)
 # plotting grip force and object displacement
 ai_legend = []
 ai_legend_txt = []
-for chidx, chid in enumerate(ainp_signals.array_annotations['channel_ids']):
+for chidx, chid in enumerate(np.asarray(ainp_signals.array_annotations['channel_ids'], dtype=int)):
     ainp = ainp_signals[:, chidx]
-    if ainp.array_annotations['channel_ids'][0] in trialx_chids:
+    if int(ainp.array_annotations['channel_ids'][0]) in trialx_chids:
         ainp_times = ainp.times.rescale(plotting_time_unit)
         mask = (ainp_times > sr) & (ainp_times < stop)
         ainp_ampli = stats.zscore(ainp.magnitude[mask])
 
-        if ainp.array_annotations['channel_ids'][0] != 143:
+        if int(ainp.array_annotations['channel_ids'][0]) != 143:
             color = 'gray'
             ai_legend_txt.append('grip force')
         else:
@@ -652,7 +649,7 @@ for chidx, chid in enumerate(ainp_signals.array_annotations['channel_ids']):
             ax5a.plot(ainp_times[mask], ainp_ampli, color=color)[0])
 
     # get force load of this trial for next plot
-    elif ainp.array_annotations['channel_ids'][0] == 141:
+    elif int(ainp.array_annotations['channel_ids'][0]) == 141:
         ainp_times = ainp.times.rescale(plotting_time_unit)
         mask = (ainp_times > fplon) & (ainp_times < fploff)
         force_av_01 = np.mean(ainp.rescale(behav_signal_unit).magnitude[mask])

+ 12 - 18
code/data_overview_2.py

@@ -33,19 +33,15 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 """
 
-# This loads the Neo and odML libraries shipped with this code. For production
-# use, please use the newest releases of odML and Neo.
-import load_local_neo_odml_elephant
-
 import os
 
 import matplotlib.pyplot as plt
 from matplotlib import gridspec, transforms
 
-import quantities as pq
 import numpy as np
+import quantities as pq
 
-from neo import (AnalogSignal, SpikeTrain)
+from neo import SpikeTrain
 from neo.utils import *
 from reachgraspio import reachgraspio
 
@@ -83,8 +79,8 @@ chosen_events = ['TS-ON', 'WS-ON', 'CUE-ON', 'CUE-OFF', 'GO-ON', 'SR-ON',
 # Load data and metadata for a monkey
 # =============================================================================
 # CHANGE this parameter to load data of the different monkeys
-# monkey = 'Nikos2'
-monkey = 'Lilou'
+monkey = 'Nikos2'
+# monkey = 'Lilou'
 
 datafile = get_monkey_datafile(monkey)
 
@@ -94,11 +90,6 @@ session = reachgraspio.ReachGraspIO(
     verbose=False)
 
 bl = session.read_block(lazy=True)
-    # channels=chosen_els[monkey],
-    # units=[1],  # loading only unit_id 1
-    # load_waveforms=False,
-    # load_events=True,
-    # scaling='voltage')
 
 seg = bl.segments[0]
 
@@ -138,10 +129,10 @@ seg.spiketrains = seg.filter(targdict={'unit_id': chosen_unit},
 seg.analogsignals = seg.filter(targdict={'neural_signal': True},
                                objects='AnalogSignalProxy')
 
-# use most raw data if multiple versions are present
+# use prefiltered data if multiple versions are present
 raw_signal = seg.analogsignals[0]
 for sig in seg.analogsignals:
-    if sig.sampling_rate > raw_signal.sampling_rate:
+    if sig.sampling_rate < raw_signal.sampling_rate:
         raw_signal = sig
 seg.analogsignals = [raw_signal]
 
@@ -150,7 +141,8 @@ seg.analogsignals = [raw_signal]
 seg = load_segment(seg, load_wavefroms=True)
 
 # only keep the chosen electrode signal in the AnalogSignal object
-mask = np.isin(seg.analogsignals[0].array_annotations['channel_ids'], chosen_els[monkey])
+mask = np.isin(np.asarray(seg.analogsignals[0].array_annotations['channel_ids'], dtype=int),
+               chosen_els[monkey])
 
 seg.analogsignals[0] = seg.analogsignals[0][:, mask]
 
@@ -256,7 +248,8 @@ selected_trial = cut_segments[trial_index]
 for el_idx, electrode_id in enumerate(chosen_els[monkey]):
 
     # PLOT ANALOGSIGNALS in upper plot
-    chosen_el_idx = np.where(cut_segments[0].analogsignals[0].array_annotations['channel_ids'] == electrode_id)[0][0]
+    chids = np.asarray(cut_segments[0].analogsignals[0].array_annotations['channel_ids'], dtype=int)
+    chosen_el_idx = np.where(chids == electrode_id)[0][0]
     anasig = selected_trial.analogsignals[0][:, chosen_el_idx]
     ax1.plot(anasig.times.rescale(time_unit),
              np.asarray(anasig.rescale(lfp_unit))
@@ -309,7 +302,8 @@ ax3.set_xlabel('time [%s]' % time_unit, fontdict=fontdict_axis)
 
 
 # plot data for each chosen trial
-chosen_el_idx = np.where(cut_segments[0].analogsignals[0].array_annotations['channel_ids'] == chosen_el[monkey])[0][0]
+chids = np.asarray(cut_segments[0].analogsignals[0].array_annotations['channel_ids'], dtype=int)
+chosen_el_idx = np.where(chids == chosen_el[monkey])[0][0]
 for trial_idx, trial_id in enumerate(trial_indexes):
     trial_spikes = cut_segments[trial_id].filter(channel_id=chosen_el[monkey], objects='SpikeTrain')
     trial_type = cut_segments[trial_id].annotations['trialtype']

+ 0 - 1
code/elephant/CITATION.txt

@@ -1 +0,0 @@
-../../.git/annex/objects/pM/QK/MD5-s150--406acd3d4c454eafea04e056a70e14b8/MD5-s150--406acd3d4c454eafea04e056a70e14b8

+ 0 - 1
code/elephant/LICENSE.txt

@@ -1 +0,0 @@
-../../.git/annex/objects/4K/GQ/MD5-s1506--7a9d8755791957b707aa0a9e26faf593/MD5-s1506--7a9d8755791957b707aa0a9e26faf593

+ 0 - 1
code/elephant/MANIFEST.in

@@ -1 +0,0 @@
-../../.git/annex/objects/K6/Xf/MD5-s583--52fb473cd423b20363501db96b01d042/MD5-s583--52fb473cd423b20363501db96b01d042

+ 0 - 1
code/elephant/PKG-INFO

@@ -1 +0,0 @@
-../../.git/annex/objects/Q1/WX/MD5-s2925--ab354f6fa0ea8caa0a76b6107c79f03e/MD5-s2925--ab354f6fa0ea8caa0a76b6107c79f03e

+ 0 - 1
code/elephant/README.md

@@ -1 +0,0 @@
-../../.git/annex/objects/mM/WG/MD5-s1770--357e859d4bb2713c06ddf80b40373d35/MD5-s1770--357e859d4bb2713c06ddf80b40373d35

+ 0 - 1
code/elephant/doc/Makefile

@@ -1 +0,0 @@
-../../../.git/annex/objects/8k/Ww/MD5-s5572--c4a12f8b6ba74cceea47e8a9fd972340/MD5-s5572--c4a12f8b6ba74cceea47e8a9fd972340

+ 0 - 1
code/elephant/doc/_templates/autosummary/class.rst

@@ -1 +0,0 @@
-../../../../../.git/annex/objects/1Z/Pp/MD5-s590--725730472bef3c901ac3d2766d3f7945/MD5-s590--725730472bef3c901ac3d2766d3f7945

+ 0 - 1
code/elephant/doc/acknowledgments.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/mj/MM/MD5-s351--ebfb71a1bf24b00d2557d0159673b6a4/MD5-s351--ebfb71a1bf24b00d2557d0159673b6a4

+ 0 - 1
code/elephant/doc/authors.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/G1/p6/MD5-s2541--2d51cc6845fad7510f6ed8b7d8146b21/MD5-s2541--2d51cc6845fad7510f6ed8b7d8146b21

+ 0 - 1
code/elephant/doc/bib/elephant.bib

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Qx/KP/MD5-s4032--9b892b5b2c865d8cfb12d21017b9f7ad/MD5-s4032--9b892b5b2c865d8cfb12d21017b9f7ad

+ 0 - 1
code/elephant/doc/citation.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/7J/x2/MD5-s1197--32bed887c47c0d826c404f45f7572698/MD5-s1197--32bed887c47c0d826c404f45f7572698

+ 0 - 1
code/elephant/doc/conf.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/54/xG/MD5-s11529--919894abd745a96e9811f70e42bfd109/MD5-s11529--919894abd745a96e9811f70e42bfd109

+ 0 - 1
code/elephant/doc/developers_guide.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/Vx/36/MD5-s2966--7c744f8573f853f259e70b75e6fddee8/MD5-s2966--7c744f8573f853f259e70b75e6fddee8

+ 0 - 1
code/elephant/doc/documentation_guide.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/WW/00/MD5-s1248--8f148a9e475a7a821d013cbb10970501/MD5-s1248--8f148a9e475a7a821d013cbb10970501

+ 0 - 1
code/elephant/doc/get_in_touch.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/j5/kJ/MD5-s1075--5462185ac556605e4e053b5d0165db73/MD5-s1075--5462185ac556605e4e053b5d0165db73

+ 0 - 1
code/elephant/doc/images/elephant_favicon.ico

@@ -1 +0,0 @@
-../../../../.git/annex/objects/fX/2G/MD5-s2238--b91262d48f8d89cb772d15e49c434510/MD5-s2238--b91262d48f8d89cb772d15e49c434510

+ 0 - 1
code/elephant/doc/images/elephant_logo.png

@@ -1 +0,0 @@
-../../../../.git/annex/objects/W6/q5/MD5-s116686--fec6da7c3a787da51745adc4cfd5f278/MD5-s116686--fec6da7c3a787da51745adc4cfd5f278

+ 0 - 1
code/elephant/doc/images/elephant_logo_sidebar.png

@@ -1 +0,0 @@
-../../../../.git/annex/objects/QW/9J/MD5-s12239--074f907bad4daea7d2998cfe8fb73760/MD5-s12239--074f907bad4daea7d2998cfe8fb73760

+ 0 - 1
code/elephant/doc/index.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/fg/fG/MD5-s2195--f3ef8b961d5a06b3c54e8612816918ed/MD5-s2195--f3ef8b961d5a06b3c54e8612816918ed

+ 0 - 1
code/elephant/doc/install.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/WW/P3/MD5-s3780--24de5e0d1dc3d2d73488afab86f3418f/MD5-s3780--24de5e0d1dc3d2d73488afab86f3418f

+ 0 - 1
code/elephant/doc/maintainers_guide.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/Z4/GG/MD5-s4780--ba87736b2da033c21f9461c2c58a7dc3/MD5-s4780--ba87736b2da033c21f9461c2c58a7dc3

+ 0 - 1
code/elephant/doc/make.bat

@@ -1 +0,0 @@
-../../../.git/annex/objects/3M/52/MD5-s5100--997eccc0d9764057341b3b340918e6f7/MD5-s5100--997eccc0d9764057341b3b340918e6f7

+ 0 - 1
code/elephant/doc/modules.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/36/3k/MD5-s772--1580ace450f6439c202125e85cd7da07/MD5-s772--1580ace450f6439c202125e85cd7da07

+ 0 - 1
code/elephant/doc/reference/_spike_train_processing.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/MZ/3z/MD5-s182--82fa15302738cb8482ee11d3fcaae07c/MD5-s182--82fa15302738cb8482ee11d3fcaae07c

+ 0 - 1
code/elephant/doc/reference/asset.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/qv/Qv/MD5-s310--9be984cbafd3118658fcdd3e73742294/MD5-s310--9be984cbafd3118658fcdd3e73742294

+ 0 - 1
code/elephant/doc/reference/causality.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/38/0W/MD5-s101--f0d20b4a0b246574e3636b87c855b57b/MD5-s101--f0d20b4a0b246574e3636b87c855b57b

+ 0 - 1
code/elephant/doc/reference/cell_assembly_detection.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Gk/jp/MD5-s159--5951921a7287b8c1860214cf5069e94d/MD5-s159--5951921a7287b8c1860214cf5069e94d

+ 0 - 1
code/elephant/doc/reference/change_point_detection.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Jk/78/MD5-s176--d3d09a2d47c3c04c20082638f68c14b9/MD5-s176--d3d09a2d47c3c04c20082638f68c14b9

+ 0 - 1
code/elephant/doc/reference/conversion.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/kk/KG/MD5-s127--8e466ef50d52a4e24dca9f83ce28d6de/MD5-s127--8e466ef50d52a4e24dca9f83ce28d6de

+ 0 - 1
code/elephant/doc/reference/cubic.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/2p/jQ/MD5-s228--df0773b1559944480bc51f06348c3d91/MD5-s228--df0773b1559944480bc51f06348c3d91

+ 0 - 1
code/elephant/doc/reference/current_source_density.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/wz/K5/MD5-s158--8da51976bd0dad9aef5f4dfd893b5723/MD5-s158--8da51976bd0dad9aef5f4dfd893b5723

+ 0 - 1
code/elephant/doc/reference/gpfa.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Kf/9V/MD5-s156--e1108114fac15e82227346f86b7fa85a/MD5-s156--e1108114fac15e82227346f86b7fa85a

+ 0 - 1
code/elephant/doc/reference/kernels.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/11/4f/MD5-s58--9f6c75995fa82e8959bf80f91b3fe9f7/MD5-s58--9f6c75995fa82e8959bf80f91b3fe9f7

+ 0 - 1
code/elephant/doc/reference/neo_tools.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/63/3m/MD5-s115--838c933f8336e8466b20d0e085564c66/MD5-s115--838c933f8336e8466b20d0e085564c66

+ 0 - 1
code/elephant/doc/reference/pandas_bridge.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/gV/09/MD5-s140--b41b0dbfc4236d9bac78443367c48f68/MD5-s140--b41b0dbfc4236d9bac78443367c48f68

+ 0 - 1
code/elephant/doc/reference/parallel.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/0p/x6/MD5-s62--1c6368f16636e8e23b6c86ded8ef1d73/MD5-s62--1c6368f16636e8e23b6c86ded8ef1d73

+ 0 - 1
code/elephant/doc/reference/phase_analysis.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/8p/z9/MD5-s132--b82728acc4c9f495d14691c99c3ab3f1/MD5-s132--b82728acc4c9f495d14691c99c3ab3f1

+ 0 - 1
code/elephant/doc/reference/signal_processing.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/MM/Jf/MD5-s249--c65b01e17907309b6aae8ff4866afa94/MD5-s249--c65b01e17907309b6aae8ff4866afa94

+ 0 - 1
code/elephant/doc/reference/spade.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/x3/F2/MD5-s173--3483035bed5ceafaf6d2a7a8ec4d377f/MD5-s173--3483035bed5ceafaf6d2a7a8ec4d377f

+ 0 - 1
code/elephant/doc/reference/spectral.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/xF/6Q/MD5-s102--d66cc3efdef18856eb59bcbf78fcf50e/MD5-s102--d66cc3efdef18856eb59bcbf78fcf50e

+ 0 - 1
code/elephant/doc/reference/spike_train_correlation.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Wx/v4/MD5-s233--5310d034effd9b19f213699c5751d780/MD5-s233--5310d034effd9b19f213699c5751d780

+ 0 - 1
code/elephant/doc/reference/spike_train_dissimilarity.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/gg/Fx/MD5-s131--dbd61fc54190a2661643c6658747ee3e/MD5-s131--dbd61fc54190a2661643c6658747ee3e

+ 0 - 1
code/elephant/doc/reference/spike_train_generation.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/GF/4J/MD5-s284--70fbd440defb172755b4b2f26a1768b6/MD5-s284--70fbd440defb172755b4b2f26a1768b6

+ 0 - 1
code/elephant/doc/reference/spike_train_surrogates.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/49/WK/MD5-s278--bc3adc9949200f937d49eeff3f08706d/MD5-s278--bc3adc9949200f937d49eeff3f08706d

+ 0 - 1
code/elephant/doc/reference/spike_train_synchrony.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Qv/kK/MD5-s241--6581d04418081afc61056f10ebdd43c7/MD5-s241--6581d04418081afc61056f10ebdd43c7

+ 0 - 1
code/elephant/doc/reference/sta.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/9G/9p/MD5-s115--8e271c5e745eb4910886aee12a3c0d92/MD5-s115--8e271c5e745eb4910886aee12a3c0d92

+ 0 - 1
code/elephant/doc/reference/statistics.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/MM/4q/MD5-s118--bc119628f8fe31386c28337e35c28abe/MD5-s118--bc119628f8fe31386c28337e35c28abe

+ 0 - 1
code/elephant/doc/reference/toctree/kernels/elephant.kernels.AlphaKernel.rst

@@ -1 +0,0 @@
-../../../../../../.git/annex/objects/Fw/7w/MD5-s546--1563997a97f7d13b3b104ed64f5c9612/MD5-s546--1563997a97f7d13b3b104ed64f5c9612

+ 0 - 1
code/elephant/doc/reference/toctree/kernels/elephant.kernels.EpanechnikovLikeKernel.rst

@@ -1 +0,0 @@
-../../../../../../.git/annex/objects/33/W7/MD5-s656--0a39e567ef299963b1eace0558b5e74d/MD5-s656--0a39e567ef299963b1eace0558b5e74d

+ 0 - 1
code/elephant/doc/reference/toctree/kernels/elephant.kernels.ExponentialKernel.rst

@@ -1 +0,0 @@
-../../../../../../.git/annex/objects/m3/9v/MD5-s606--6d8a488e110e81c2349e0dd5a53d63df/MD5-s606--6d8a488e110e81c2349e0dd5a53d63df

+ 0 - 1
code/elephant/doc/reference/toctree/kernels/elephant.kernels.GaussianKernel.rst

@@ -1 +0,0 @@
-../../../../../../.git/annex/objects/kZ/6q/MD5-s576--c4f09b2c11979379f06d79493e0f73af/MD5-s576--c4f09b2c11979379f06d79493e0f73af

+ 0 - 1
code/elephant/doc/reference/toctree/kernels/elephant.kernels.LaplacianKernel.rst

@@ -1 +0,0 @@
-../../../../../../.git/annex/objects/Q0/mg/MD5-s586--03a46e98341569c6c60496e2516a9a37/MD5-s586--03a46e98341569c6c60496e2516a9a37

+ 0 - 1
code/elephant/doc/reference/toctree/kernels/elephant.kernels.RectangularKernel.rst

@@ -1 +0,0 @@
-../../../../../../.git/annex/objects/Z4/pv/MD5-s606--7213680e4fecb342f30ab09f8a88114b/MD5-s606--7213680e4fecb342f30ab09f8a88114b

+ 0 - 1
code/elephant/doc/reference/toctree/kernels/elephant.kernels.TriangularKernel.rst

@@ -1 +0,0 @@
-../../../../../../.git/annex/objects/kV/zz/MD5-s596--a4e75caa26a81f172bac1d86a3a8ca28/MD5-s596--a4e75caa26a81f172bac1d86a3a8ca28

+ 0 - 1
code/elephant/doc/reference/unitary_event_analysis.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/KK/XJ/MD5-s421--cb6d20ada4cab45c8f3941e9e0b620bb/MD5-s421--cb6d20ada4cab45c8f3941e9e0b620bb

+ 0 - 1
code/elephant/doc/reference/waveform_features.rst

@@ -1 +0,0 @@
-../../../../.git/annex/objects/JM/GF/MD5-s111--8f6d3a09a9132e3d5a09493b67d8057b/MD5-s111--8f6d3a09a9132e3d5a09493b67d8057b

+ 0 - 1
code/elephant/doc/release_notes.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/PG/F1/MD5-s22657--4d7f8371dca1bb747283f7b205e9fee6/MD5-s22657--4d7f8371dca1bb747283f7b205e9fee6

+ 0 - 1
code/elephant/doc/style_guide.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/4z/84/MD5-s29332--dd8912d63c59e90212c433fe6ee3c28b/MD5-s29332--dd8912d63c59e90212c433fe6ee3c28b

+ 0 - 1
code/elephant/doc/tutorials.rst

@@ -1 +0,0 @@
-../../../.git/annex/objects/2v/ff/MD5-s2256--9af9607f4e68c6574fda5aaf9d48057e/MD5-s2256--9af9607f4e68c6574fda5aaf9d48057e

+ 0 - 1
code/elephant/doc/tutorials/asset.ipynb

@@ -1 +0,0 @@
-../../../../.git/annex/objects/0p/6g/MD5-s334296--893412a7f36e61d3f13140a63ec5ec32/MD5-s334296--893412a7f36e61d3f13140a63ec5ec32

+ 0 - 1
code/elephant/doc/tutorials/asset_showcase_500.nix

@@ -1 +0,0 @@
-../../../../.git/annex/objects/9V/V7/MD5-s44142233--516ad7e890890253fe20c2602679a9d5/MD5-s44142233--516ad7e890890253fe20c2602679a9d5

+ 0 - 1
code/elephant/doc/tutorials/gpfa.ipynb

@@ -1 +0,0 @@
-../../../../.git/annex/objects/8G/4q/MD5-s1578043--ead1eaa613b19c816fd610c59b19b5b6/MD5-s1578043--ead1eaa613b19c816fd610c59b19b5b6

+ 0 - 1
code/elephant/doc/tutorials/parallel.ipynb

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Wk/8p/MD5-s13125--733cf87061223d4bd1cea852179d6067/MD5-s13125--733cf87061223d4bd1cea852179d6067

+ 0 - 1
code/elephant/doc/tutorials/statistics.ipynb

@@ -1 +0,0 @@
-../../../../.git/annex/objects/31/MG/MD5-s19838--121780ca78da46fb7041e9185583bdb4/MD5-s19838--121780ca78da46fb7041e9185583bdb4

+ 0 - 1
code/elephant/doc/tutorials/unitary_event_analysis.ipynb

@@ -1 +0,0 @@
-../../../../.git/annex/objects/X0/0J/MD5-s15368--6237d07e0ac46dfa81410e432db5592c/MD5-s15368--6237d07e0ac46dfa81410e432db5592c

+ 0 - 1
code/elephant/elephant/VERSION

@@ -1 +0,0 @@
-../../../.git/annex/objects/vj/v0/MD5-s5--778cf622c50bfcd4ed0298c65159386a/MD5-s5--778cf622c50bfcd4ed0298c65159386a

+ 0 - 1
code/elephant/elephant/__init__.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/M8/Xv/MD5-s1394--567d96d6324a475c7fb7da4ce2aca6d3/MD5-s1394--567d96d6324a475c7fb7da4ce2aca6d3

+ 0 - 1
code/elephant/elephant/asset.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/z8/x2/MD5-s72742--76d034a2166df06c894805f917f6dd1a/MD5-s72742--76d034a2166df06c894805f917f6dd1a

+ 0 - 1
code/elephant/elephant/causality/__init__.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/pv/Kg/MD5-s0--d41d8cd98f00b204e9800998ecf8427e/MD5-s0--d41d8cd98f00b204e9800998ecf8427e

+ 0 - 1
code/elephant/elephant/causality/granger.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/m2/qX/MD5-s19241--8670cea75564edf66bd899320932d383/MD5-s19241--8670cea75564edf66bd899320932d383

+ 0 - 1
code/elephant/elephant/cell_assembly_detection.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/1G/J1/MD5-s49247--83890521d53d6c809ddf1eb8786a046c/MD5-s49247--83890521d53d6c809ddf1eb8786a046c

+ 0 - 1
code/elephant/elephant/change_point_detection.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/JZ/Q4/MD5-s18575--c4e2d371e6c4c6c842bc0fba0021063e/MD5-s18575--c4e2d371e6c4c6c842bc0fba0021063e

+ 0 - 1
code/elephant/elephant/conversion.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/gq/82/MD5-s33551--9662d09ff51976cb2506d105b544f495/MD5-s33551--9662d09ff51976cb2506d105b544f495

+ 0 - 1
code/elephant/elephant/cubic.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/3F/74/MD5-s6977--a4e7b3d770f7cecf20d91a17f5d15c55/MD5-s6977--a4e7b3d770f7cecf20d91a17f5d15c55

+ 0 - 1
code/elephant/elephant/current_source_density.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/1v/4P/MD5-s13697--d824f130e37baf11e140e7cdcb41e752/MD5-s13697--d824f130e37baf11e140e7cdcb41e752

+ 0 - 1
code/elephant/elephant/current_source_density_src/KCSD.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/zG/5z/MD5-s42718--554c15eb160d726b70091b4b3a606866/MD5-s42718--554c15eb160d726b70091b4b3a606866

+ 0 - 1
code/elephant/elephant/current_source_density_src/README.md

@@ -1 +0,0 @@
-../../../../.git/annex/objects/wZ/P9/MD5-s4060--5550b79ec5549010ebe03e1750e4e4ec/MD5-s4060--5550b79ec5549010ebe03e1750e4e4ec

+ 0 - 1
code/elephant/elephant/current_source_density_src/__init__.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Qk/xW/MD5-s62--ef426c2eb493ca9c45dd0e434f664de8/MD5-s62--ef426c2eb493ca9c45dd0e434f664de8

+ 0 - 1
code/elephant/elephant/current_source_density_src/basis_functions.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/fP/Qk/MD5-s4939--11d151489698c2d59088922754e83cd1/MD5-s4939--11d151489698c2d59088922754e83cd1

+ 0 - 1
code/elephant/elephant/current_source_density_src/icsd.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/wv/vF/MD5-s35175--13d5e113e82873e1579cb3ae927fa634/MD5-s35175--13d5e113e82873e1579cb3ae927fa634

+ 0 - 1
code/elephant/elephant/current_source_density_src/test_data.mat

@@ -1 +0,0 @@
-../../../../.git/annex/objects/5M/ZX/MD5-s65926--0700c1fa52f10906c62a6acf98be1827/MD5-s65926--0700c1fa52f10906c62a6acf98be1827

+ 0 - 1
code/elephant/elephant/current_source_density_src/utility_functions.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/wk/fj/MD5-s11986--94ce0292b45fc44a83cbb3b0b7543cc4/MD5-s11986--94ce0292b45fc44a83cbb3b0b7543cc4

+ 0 - 1
code/elephant/elephant/gpfa/__init__.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/kp/GF/MD5-s153--8ff76fe9e21629f576fb004117f6c6ff/MD5-s153--8ff76fe9e21629f576fb004117f6c6ff

+ 0 - 1
code/elephant/elephant/gpfa/gpfa.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/KJ/kG/MD5-s19498--0cee6d29fe905426d7a13f46670d73cd/MD5-s19498--0cee6d29fe905426d7a13f46670d73cd

+ 0 - 1
code/elephant/elephant/gpfa/gpfa_core.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/xp/7W/MD5-s20892--8a650e60f9932330c60821dfe16ac1cf/MD5-s20892--8a650e60f9932330c60821dfe16ac1cf

+ 0 - 1
code/elephant/elephant/gpfa/gpfa_util.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Vw/Fm/MD5-s17915--dd5fbf7888cd08cb3ecfdcdadbee861c/MD5-s17915--dd5fbf7888cd08cb3ecfdcdadbee861c

+ 0 - 1
code/elephant/elephant/kernels.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/2q/kW/MD5-s27594--acc566c03d2508653284e2b0c1d51c47/MD5-s27594--acc566c03d2508653284e2b0c1d51c47

+ 0 - 1
code/elephant/elephant/neo_tools.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/5p/MM/MD5-s7271--5aa8b45ef7c83cf1c429055009b32bb2/MD5-s7271--5aa8b45ef7c83cf1c429055009b32bb2

+ 0 - 1
code/elephant/elephant/pandas_bridge.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/43/z9/MD5-s21991--8a8b1fef6d06c767a08e36656d36afb7/MD5-s21991--8a8b1fef6d06c767a08e36656d36afb7

+ 0 - 1
code/elephant/elephant/parallel/__init__.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Fk/Qf/MD5-s1342--b1a524cfb6d8aa1e0fa745d3ed0f35f9/MD5-s1342--b1a524cfb6d8aa1e0fa745d3ed0f35f9

+ 0 - 1
code/elephant/elephant/parallel/mpi.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/83/7g/MD5-s2050--ab4110bfb1506fd6d7d3f27f6785172c/MD5-s2050--ab4110bfb1506fd6d7d3f27f6785172c

+ 0 - 1
code/elephant/elephant/parallel/parallel.py

@@ -1 +0,0 @@
-../../../../.git/annex/objects/Q1/4V/MD5-s3668--675558ccafd1e446a4bce17eb3b563c1/MD5-s3668--675558ccafd1e446a4bce17eb3b563c1

+ 0 - 1
code/elephant/elephant/phase_analysis.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/V9/7G/MD5-s7111--105ad22cd3c565551d7c23d0c16a9e3d/MD5-s7111--105ad22cd3c565551d7c23d0c16a9e3d

+ 0 - 1
code/elephant/elephant/signal_processing.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/9W/vJ/MD5-s36918--87c70ad694ded981c47b37d27ab56f14/MD5-s36918--87c70ad694ded981c47b37d27ab56f14

+ 0 - 1
code/elephant/elephant/spade.py

@@ -1 +0,0 @@
-../../../.git/annex/objects/Vm/WW/MD5-s94492--2a2ccbe0b2a8cee74a26abb3a497d90f/MD5-s94492--2a2ccbe0b2a8cee74a26abb3a497d90f

+ 0 - 0
code/elephant/elephant/spade_src/LICENSE


Some files were not shown because too many files changed in this diff