diff --git a/.gitignore b/.gitignore index 7838213bed..39edbc4a85 100644 --- a/.gitignore +++ b/.gitignore @@ -38,15 +38,6 @@ spikeinterface/sorters/tests/*/* spikeinterface/widgets/tests/mearec_test/* - -examples/modules_gallery/**/*.raw -examples/modules_gallery/**/*.npy -examples/modules_gallery/**/*.json -examples/modules_gallery/**/*.pkl -examples/modules_gallery/**/*.npz -examples/modules_gallery/**/*.csv - - .vscode/* # MauroToro: My absolute mess of envs @@ -166,8 +157,19 @@ venv.bak/ # mypy .mypy_cache/ +# documentation files + +examples/tutorials/**/*.raw +examples/tutorials/**/*.npy +examples/tutorials/**/*.json +examples/tutorials/**/*.pkl +examples/tutorials/**/*.npz +examples/tutorials/**/*.csv +examples/tutorials/*.png +examples/tutorials/*.svg + doc/_build/* -doc/modules_gallery/* +doc/tutorials/* doc/sources/* examples/getting_started/tmp_* diff --git a/doc/conf.py b/doc/conf.py index 5a71b8f612..1a5dfb3ec7 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -29,17 +29,17 @@ # clean some folder folders = [ - '../examples/modules_gallery/core/my_recording', - '../examples/modules_gallery/core/my_sorting', - '../examples/modules_gallery/core/waveform_folder', - '../examples/modules_gallery/core/waveform_folder_parallel', - '../examples/modules_gallery/core/waveform_folder_sparse', - '../examples/modules_gallery/core/waveform_folder_sparse_direct', - '../examples/modules_gallery/core/waveform_folder2', - '../examples/modules_gallery/core/waveform_folder', - '../examples/modules_gallery/qualitymetrics/waveforms_mearec', - '../examples/modules_gallery/qualitymetrics/wfs_mearec', - '../examples/modules_gallery/widgets/waveforms_mearec', + '../examples/tutorials/core/my_recording', + '../examples/tutorials/core/my_sorting', + '../examples/tutorials/core/waveform_folder', + '../examples/tutorials/core/waveform_folder_parallel', + '../examples/tutorials/core/waveform_folder_sparse', + '../examples/tutorials/core/waveform_folder_sparse_direct', + '../examples/tutorials/core/waveform_folder2', + '../examples/tutorials/core/waveform_folder', + '../examples/tutorials/qualitymetrics/waveforms_mearec', + '../examples/tutorials/qualitymetrics/wfs_mearec', + '../examples/tutorials/widgets/waveforms_mearec', ] @@ -63,9 +63,9 @@ extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.autosummary', - 'sphinx.ext.autosectionlabel', 'sphinx_gallery.gen_gallery', 'numpydoc', + 'sphinx.ext.autosectionlabel', 'sphinx_design', "sphinx.ext.intersphinx", "sphinx.ext.extlinks", @@ -117,18 +117,19 @@ # for sphinx gallery plugin sphinx_gallery_conf = { 'only_warn_on_example_error': True, - 'examples_dirs': ['../examples/modules_gallery'], - 'gallery_dirs': ['modules_gallery', ], # path where to save gallery generated examples + 'examples_dirs': ['../examples/tutorials'], + 'gallery_dirs': ['tutorials' ], # path where to save gallery generated examples 'subsection_order': ExplicitOrder([ - '../examples/modules_gallery/core', - '../examples/modules_gallery/extractors', - '../examples/modules_gallery/qualitymetrics', - '../examples/modules_gallery/comparison', - '../examples/modules_gallery/widgets', + '../examples/tutorials/core', + '../examples/tutorials/extractors', + '../examples/tutorials/qualitymetrics', + '../examples/tutorials/comparison', + '../examples/tutorials/widgets', ]), 'within_subsection_order': FileNameSortKey, 'ignore_pattern': '/generate_', 'nested_sections': False, + 'copyfile_regex': r'.*\.rst|.*\.png|.*\.svg' } intersphinx_mapping = { diff --git a/doc/import.rst b/doc/get_started/import.rst similarity index 100% rename from doc/import.rst rename to doc/get_started/import.rst diff --git a/doc/get_started/index.rst b/doc/get_started/index.rst new file mode 100644 index 0000000000..287988f316 --- /dev/null +++ b/doc/get_started/index.rst @@ -0,0 +1,12 @@ +Getting started +=============== + +How to get started using spikeinterface. Also check out spike tutorials! + +.. toctree:: + :maxdepth: 1 + + installation + quickstart + import + install_sorters diff --git a/doc/install_sorters.rst b/doc/get_started/install_sorters.rst similarity index 99% rename from doc/install_sorters.rst rename to doc/get_started/install_sorters.rst index 51fa94d7e6..c1666352b1 100644 --- a/doc/install_sorters.rst +++ b/doc/get_started/install_sorters.rst @@ -1,5 +1,3 @@ -.. _installsorters: - Installing Spike Sorters ======================== @@ -29,7 +27,7 @@ sorters to retrieve installation instructions for other operating systems. We use **pip** to install packages, but **conda** should also work in many cases. Some novel spike sorting algorithms are implemented directly in SpikeInterface using the -:py:mod:`spikeinterface.sortingcomponents` module. Checkout the :ref:`si_based` section of this page +:py:mod:`spikeinterface.sortingcomponents` module. Checkout the :ref:`SpikeInterface-based spike sorters` section of this page for more information! If you experience installation problems please directly contact the authors of these tools or write on the @@ -262,11 +260,6 @@ Combinato # provide installation path by setting the COMBINATO_PATH environment variable # or using CombinatoSorter.set_combinato_path() - - - -.. _si_based: - SpikeInterface-based spike sorters ---------------------------------- diff --git a/doc/installation.rst b/doc/get_started/installation.rst similarity index 97% rename from doc/installation.rst rename to doc/get_started/installation.rst index 08f9077a1d..aae9cdf63c 100644 --- a/doc/installation.rst +++ b/doc/get_started/installation.rst @@ -102,4 +102,4 @@ Sub-modules have more dependencies, so you should also install: All external spike sorters can be either run inside containers (Docker or Singularity - see :ref:`containerizedsorters`) -or must be installed independently (see :ref:`installsorters`). +or must be installed independently (see :ref:`Installing Spike Sorters`). diff --git a/doc/how_to/get_started.rst b/doc/get_started/quickstart.rst similarity index 94% rename from doc/how_to/get_started.rst rename to doc/get_started/quickstart.rst index 96fad54b28..3d45606a78 100644 --- a/doc/how_to/get_started.rst +++ b/doc/get_started/quickstart.rst @@ -2,8 +2,8 @@ %matplotlib inline -How to “get started” -==================== +Quickstart tutorial +=================== In this introductory example, you will see how to use SpikeInterface to perform a full electrophysiology analysis. We will download a simulated @@ -113,11 +113,11 @@ and the raster plots. -.. image:: get_started_files/get_started_16_0.png +.. image:: quickstart_files/quickstart_16_0.png -.. image:: get_started_files/get_started_16_1.png +.. image:: quickstart_files/quickstart_16_1.png This is how you retrieve info from a ``BaseRecording``\ … @@ -194,7 +194,7 @@ to set it *manually*. -.. image:: get_started_files/get_started_22_1.png +.. image:: quickstart_files/quickstart_22_1.png If your recording does not have a ``Probe``, you can set it using @@ -230,7 +230,7 @@ object to disk. float32 dtype - 39.06 MiB CommonReferenceRecording: 32 channels - 32.0kHz - 1 segments - 320,000 samples - 10.00s float32 dtype - 39.06 MiB - Use cache_folder=/tmp/spikeinterface_cache/tmpxozot7du/PS8C5MPU + Use cache_folder=/tmp/spikeinterface_cache/tmpru22r5_r/GW132ZJO write_binary_recording with n_jobs = 4 and chunk_size = 32000 @@ -262,7 +262,7 @@ installed .. parsed-literal:: Available sorters ['combinato', 'hdsort', 'herdingspikes', 'ironclust', 'kilosort', 'kilosort2', 'kilosort2_5', 'kilosort3', 'kilosort4', 'klusta', 'mountainsort4', 'mountainsort5', 'pykilosort', 'simple', 'spykingcircus', 'spykingcircus2', 'tridesclous', 'tridesclous2', 'waveclus', 'waveclus_snippets', 'yass'] - Installed sorters ['herdingspikes', 'simple', 'spykingcircus2', 'tridesclous', 'tridesclous2'] + Installed sorters ['mountainsort4', 'simple', 'spykingcircus2', 'tridesclous', 'tridesclous2'] The ``ss.installed_sorters()`` will list the sorters installed on the @@ -445,7 +445,7 @@ and then to compute, for example, quality metrics. Computations with the .. parsed-literal:: - + @@ -485,7 +485,7 @@ There are many more properties we can calculate .. parsed-literal:: - + @@ -509,14 +509,11 @@ Many of the extensions have parameters you can tune .. parsed-literal:: - + - - -As you can see, it becomes a bit overwhelming if you’re computing lots -of extensions. Luckily, there’s some nice syntax for this very -situation. We can redo the last nine compute statements in one command -as follows: +As you can see, it becomes a bit overwhelming if you’re computing lots of extensions. +Luckily, there’s some nice syntax for this very situation. We can redo the last +nine compute statements in one command as follows .. code:: ipython3 @@ -541,21 +538,8 @@ as follows: analyzer_TDC.compute(extensions_to_compute, extension_params=extension_params) - - -.. parsed-literal:: - - compute_waveforms: 0%| | 0/10 [00:00`__. @@ -573,7 +557,7 @@ a historgram of spike amplitudes -.. image:: get_started_files/get_started_55_0.png +.. image:: quickstart_files/quickstart_52_0.png You can check which extensions have been saved (in your local folder) @@ -588,7 +572,7 @@ and which have been loaded (in your enviroment)… .. parsed-literal:: ['noise_levels', 'spike_locations', 'template_similarity', 'waveforms', 'spike_amplitudes', 'templates', 'correlograms', 'unit_locations', 'random_spikes'] - ['random_spikes', 'noise_levels', 'correlograms', 'waveforms', 'templates', 'unit_locations', 'template_similarity', 'spike_amplitudes', 'spike_locations'] + ['random_spikes', 'waveforms', 'noise_levels', 'templates', 'spike_amplitudes', 'unit_locations', 'spike_locations', 'correlograms', 'template_similarity'] …or delete an extension… @@ -597,6 +581,7 @@ and which have been loaded (in your enviroment)… analyzer_TDC.delete_extension("spike_amplitudes") + This deletes the extension’s data in the ``SortingAnalyzer`` folder. Importantly, ``SortingAnalyzers`` (and all extensions) can be reloaded @@ -632,7 +617,7 @@ And any deleted extensions are easily recomputed .. parsed-literal:: - + @@ -712,9 +697,9 @@ in the same way as earlier .. parsed-literal:: - /home/nolanlab/Chris/Developing/spikeinterface/src/spikeinterface/qualitymetrics/misc_metrics.py:846: UserWarning: Some units have too few spikes : amplitude_cutoff is set to NaN + /home/nolanlab/Chris/Developing/spikeinterface/src/spikeinterface/qualitymetrics/misc_metrics.py:880: UserWarning: Some units have too few spikes : amplitude_cutoff is set to NaN warnings.warn(f"Some units have too few spikes : amplitude_cutoff is set to NaN") - /home/nolanlab/Chris/Developing/spikeinterface/src/spikeinterface/qualitymetrics/misc_metrics.py:999: UserWarning: The recording is too short given the specified 'interval_s' and 'min_num_bins'. Drift metrics will be set to NaN + /home/nolanlab/Chris/Developing/spikeinterface/src/spikeinterface/qualitymetrics/misc_metrics.py:1033: UserWarning: The recording is too short given the specified 'interval_s' and 'min_num_bins'. Drift metrics will be set to NaN warnings.warn( /home/nolanlab/Chris/Developing/spikeinterface/src/spikeinterface/qualitymetrics/misc_metrics.py:147: UserWarning: Bin duration of 60s is larger than recording duration. Presence ratios are set to NaN. warnings.warn( @@ -785,7 +770,7 @@ in the same way as earlier 0.0 1.536918 NaN - 27.449127 + 26.995409 0.0 0.0 0.0 @@ -809,7 +794,7 @@ in the same way as earlier 0.0 1.311148 NaN - 24.363658 + 24.007496 0.0 0.0 0.0 @@ -833,7 +818,7 @@ in the same way as earlier 0.0 2.016703 NaN - 24.339651 + 24.002202 0.0 0.0 0.0 @@ -857,7 +842,7 @@ in the same way as earlier 0.0 2.011083 NaN - 26.662774 + 26.794354 0.0 0.0 0.0 @@ -881,7 +866,7 @@ in the same way as earlier 0.0 0.680199 NaN - 9.632134 + 9.588057 0.0 0.0 0.0 @@ -905,7 +890,7 @@ in the same way as earlier 0.0 0.965515 NaN - 13.269441 + 13.057643 0.0 0.0 0.0 @@ -929,7 +914,7 @@ in the same way as earlier 0.0 1.177009 NaN - 8.206179 + 8.210516 0.0 0.0 0.0 @@ -953,7 +938,7 @@ in the same way as earlier 0.0 0.974259 0.155 - 8.791409 + 8.785389 0.0 0.0 0.0 @@ -977,7 +962,7 @@ in the same way as earlier 0.0 0.949695 0.310 - 11.190016 + 11.064464 0.0 0.0 0.0 @@ -1001,7 +986,7 @@ in the same way as earlier 0.0 1.027925 0.270 - 8.340747 + 8.229249 0.0 0.0 0.0 @@ -1029,15 +1014,13 @@ web-based visualization. For this to work you need to install w1 = sw.plot_quality_metrics(analyzer_TDC, display=False, backend="sortingview") - -https://figurl.org/f?v=npm://@fi-sci/figurl-sortingview@12/dist&d=sha1://25075d7e8810c6239e2be02f288285091283c283 +https://figurl.org/f?v=npm://@fi-sci/figurl-sortingview@12/dist&d=sha1://dee4b56654e411ddd15e7cc8af763d5796c5140a .. code:: ipython3 w2 = sw.plot_sorting_summary(analyzer_TDC, display=False, curation=True, backend="sortingview") - https://figurl.org/f?v=npm://@fi-sci/figurl-sortingview@12/dist&d=sha1://588f5c77f7f1f445addcc219c648213d5324b123 @@ -1097,7 +1080,7 @@ of the spike sorting output. To export to phy you can run: .. parsed-literal:: Run: - phy template-gui /home/nolanlab/Chris/Developing/TestingDoc/phy_folder_for_TDC/params.py + phy template-gui /home/nolanlab/Dropbox/Spike/testing_docs/phy_folder_for_TDC/params.py Then you can run the template-gui with: @@ -1179,11 +1162,11 @@ performance and plot a confusion matrix -.. image:: get_started_files/get_started_87_1.png +.. image:: quickstart_files/quickstart_84_1.png -.. image:: get_started_files/get_started_87_2.png +.. image:: quickstart_files/quickstart_84_2.png When comparing two sorters (2.), we can see the matching of units @@ -1255,11 +1238,11 @@ graph showing how the units are matched between the sorters. -.. image:: get_started_files/get_started_93_1.png +.. image:: quickstart_files/quickstart_90_1.png -.. image:: get_started_files/get_started_93_2.png +.. image:: quickstart_files/quickstart_90_2.png We see that 10 unit were found by all sorters (note that this simulated diff --git a/doc/how_to/get_started_files/get_started_16_0.png b/doc/get_started/quickstart_files/quickstart_16_0.png similarity index 100% rename from doc/how_to/get_started_files/get_started_16_0.png rename to doc/get_started/quickstart_files/quickstart_16_0.png diff --git a/doc/how_to/get_started_files/get_started_16_1.png b/doc/get_started/quickstart_files/quickstart_16_1.png similarity index 100% rename from doc/how_to/get_started_files/get_started_16_1.png rename to doc/get_started/quickstart_files/quickstart_16_1.png diff --git a/doc/how_to/get_started_files/get_started_22_1.png b/doc/get_started/quickstart_files/quickstart_22_1.png similarity index 100% rename from doc/how_to/get_started_files/get_started_22_1.png rename to doc/get_started/quickstart_files/quickstart_22_1.png diff --git a/doc/how_to/get_started_files/get_started_55_0.png b/doc/get_started/quickstart_files/quickstart_52_0.png similarity index 100% rename from doc/how_to/get_started_files/get_started_55_0.png rename to doc/get_started/quickstart_files/quickstart_52_0.png diff --git a/doc/how_to/get_started_files/get_started_87_1.png b/doc/get_started/quickstart_files/quickstart_84_1.png similarity index 100% rename from doc/how_to/get_started_files/get_started_87_1.png rename to doc/get_started/quickstart_files/quickstart_84_1.png diff --git a/doc/how_to/get_started_files/get_started_87_2.png b/doc/get_started/quickstart_files/quickstart_84_2.png similarity index 100% rename from doc/how_to/get_started_files/get_started_87_2.png rename to doc/get_started/quickstart_files/quickstart_84_2.png diff --git a/doc/how_to/get_started_files/get_started_93_1.png b/doc/get_started/quickstart_files/quickstart_90_1.png similarity index 100% rename from doc/how_to/get_started_files/get_started_93_1.png rename to doc/get_started/quickstart_files/quickstart_90_1.png diff --git a/doc/how_to/get_started_files/get_started_93_2.png b/doc/get_started/quickstart_files/quickstart_90_2.png similarity index 100% rename from doc/how_to/get_started_files/get_started_93_2.png rename to doc/get_started/quickstart_files/quickstart_90_2.png diff --git a/doc/how_to/combine_recordings.rst b/doc/how_to/combine_recordings.rst index e86cbf00f2..db37e28382 100644 --- a/doc/how_to/combine_recordings.rst +++ b/doc/how_to/combine_recordings.rst @@ -1,5 +1,5 @@ -How to Combine Recordings in SpikeInterface -=========================================== +Combine Recordings in SpikeInterface +==================================== In this tutorial we will walk through combining multiple recording objects. Sometimes this occurs due to hardware settings (e.g. Intan software has a default setting of new files every 1 minute) or the experimenter decides to diff --git a/doc/how_to/index.rst b/doc/how_to/index.rst index 1e0270c795..79156e2690 100644 --- a/doc/how_to/index.rst +++ b/doc/how_to/index.rst @@ -1,13 +1,14 @@ -How to guides -============= +How to Guides +========= + +Guides on how to solve specific, short problems in SpikeInterface. Learn how to... .. toctree:: :maxdepth: 1 - get_started - analyse_neuropixels + viewers handle_drift + analyse_neuropixels load_matlab_data combine_recordings process_by_channel_group - waveform_extractor_to_sorting_analyzer diff --git a/doc/how_to/load_matlab_data.rst b/doc/how_to/load_matlab_data.rst index 54a66c0890..1f24fb66d3 100644 --- a/doc/how_to/load_matlab_data.rst +++ b/doc/how_to/load_matlab_data.rst @@ -1,5 +1,5 @@ -Exporting MATLAB Data to Binary & Loading in SpikeInterface -=========================================================== +Export MATLAB Data to Binary & Load in SpikeInterface +======================================================== In this tutorial, we will walk through the process of exporting data from MATLAB in a binary format and subsequently loading it using SpikeInterface in Python. diff --git a/doc/how_to/process_by_channel_group.rst b/doc/how_to/process_by_channel_group.rst index 439e757e59..bac0de4d0c 100644 --- a/doc/how_to/process_by_channel_group.rst +++ b/doc/how_to/process_by_channel_group.rst @@ -1,5 +1,5 @@ -Processing a Recording by Channel Group -======================================= +Process a Recording by Channel Group +==================================== In this tutorial, we will walk through how to preprocess and sort a recording separately for *channel groups*. A channel group is a subset of channels grouped by some @@ -83,6 +83,7 @@ Splitting a recording by channel group returns a dictionary containing separate 10.99 MiB, 3: ChannelSliceRecording: 96 channels - 30.0kHz - 1 segments - 30,000 samples - 1.00s - float32 dtype 10.99 MiB} """ + Preprocessing a Recording by Channel Group ------------------------------------------ diff --git a/doc/viewers.rst b/doc/how_to/viewers.rst similarity index 98% rename from doc/viewers.rst rename to doc/how_to/viewers.rst index c3ada31b55..47fd281144 100644 --- a/doc/viewers.rst +++ b/doc/how_to/viewers.rst @@ -1,5 +1,5 @@ -Viewers -======= +Visualise Data +============== There are several ways to plot signals (raw, preprocessed) and spikes. diff --git a/doc/index.rst b/doc/index.rst index 33f1da6d67..080a6ba8ac 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -19,7 +19,7 @@ state-of-the-art spike sorters, post-process and curate the output, compute qual a major API improvement: the :code:`SortingAnalyzer`. To read more about this, checkout the `enhancement proposal `_. Please refer to the stable documentation `here `_. - Learn how to update your code `here `_ and read more about the + Learn how to update your code `here `_ and read more about the :code:`SortingAnalyzer` `here `_. @@ -50,15 +50,12 @@ SpikeInterface is made of several modules to deal with different aspects of the :caption: Contents: overview - installation - import - modules/index + get_started/index + tutorials/index how_to/index - modules_gallery/index - install_sorters - viewers - development/development + modules/index api + development/development whatisnew authors diff --git a/examples/how_to/get_started.py b/examples/get_started/quickstart.py similarity index 94% rename from examples/how_to/get_started.py rename to examples/get_started/quickstart.py index 7278afc720..a58f422436 100644 --- a/examples/how_to/get_started.py +++ b/examples/get_started/quickstart.py @@ -18,8 +18,8 @@ # + [markdown] """ -How to "get started" -==================== +Quickstart tutorial +=================== In this introductory example, you will see how to use SpikeInterface to perform a full electrophysiology analysis. We will download a simulated dataset, and we will then perform some pre-processing, run a spike sorting @@ -254,6 +254,36 @@ analyzer_TDC.compute("template_similarity", method="cosine_similarity") # - +# As you can see, it becomes a bit overwhelming if you’re computing lots of extensions. +# Luckily, there’s some nice syntax for this very situation. We can redo the last +# nine compute statements in one command as follows + +# + +extensions_to_compute = [ + "random_spikes", + "waveforms", + "noise_levels", + "templates", + "spike_amplitudes", + "unit_locations", + "spike_locations", + "correlograms", + "template_similarity" +] + +extension_params = { + "unit_locations": {"method": "center_of_mass"}, + "spike_locations": {"ms_before": 0.1}, + "correlograms": {"bin_ms": 0.1}, + "template_similarity": {"method": "cosine_similarity"} +} + +analyzer_TDC.compute(extensions_to_compute, extension_params=extension_params) +# - + +# Which you might find easier. Note that if we pass no extension parameters, the +# computation simply uses the default parameters. + # Find out more about the available parameters and extensions [here](https://spikeinterface.readthedocs.io/en/latest/modules/postprocessing.html). # The calculations are saved in the `extensions` subfolder of the `SortingAnalyzer` folder. diff --git a/examples/how_to/README.md b/examples/how_to/README.md index 134063bfe0..af17859ca7 100644 --- a/examples/how_to/README.md +++ b/examples/how_to/README.md @@ -2,7 +2,7 @@ In this examples folder, we only keep the light-weight .py files that will appear in the docs. -The `modules_gallery` folder will be built with `sphinx-gallery` (all examples starting with `plot_`) will be run in +The `tutorials` folder will be built with `sphinx-gallery` (all examples starting with `plot_`) will be run in Read The Docs and added to the documentation at run-time. The `how_to` examples, instead, are manually run and added to the documentation. diff --git a/examples/modules_gallery/README.rst b/examples/modules_gallery/README.rst deleted file mode 100644 index eb2e0c7759..0000000000 --- a/examples/modules_gallery/README.rst +++ /dev/null @@ -1,6 +0,0 @@ -Modules example gallery -======================= - -Here some generated examples. - -They are downloadable as notebooks or python scripts. diff --git a/examples/modules_gallery/core/README.rst b/examples/modules_gallery/core/README.rst deleted file mode 100644 index 4da8f529ae..0000000000 --- a/examples/modules_gallery/core/README.rst +++ /dev/null @@ -1,8 +0,0 @@ -Core tutorials ---------------- - -The :py:mod:`spikeinterface.core` module - -- RecordingExtractors -- SortingExtractors -- Handling probe information diff --git a/examples/tutorials/README.rst b/examples/tutorials/README.rst new file mode 100644 index 0000000000..0697f0ee60 --- /dev/null +++ b/examples/tutorials/README.rst @@ -0,0 +1,14 @@ +Tutorials +========= + +Longer form tutorials about using spikeinterface. Many of these are downloadable as notebooks or python scripts so that you can "code along" to the tutorials. + +If you're new to SpikeInterface, we recommend trying out the :ref:`Quickstart tutorial` first. + +Updating from legacy +-------------------- + +.. toctree:: + :maxdepth: 1 + + waveform_extractor_to_sorting_analyzer diff --git a/examples/modules_gallery/comparison/README.rst b/examples/tutorials/comparison/README.rst similarity index 100% rename from examples/modules_gallery/comparison/README.rst rename to examples/tutorials/comparison/README.rst diff --git a/examples/modules_gallery/comparison/generate_erroneous_sorting.py b/examples/tutorials/comparison/generate_erroneous_sorting.py similarity index 100% rename from examples/modules_gallery/comparison/generate_erroneous_sorting.py rename to examples/tutorials/comparison/generate_erroneous_sorting.py diff --git a/examples/modules_gallery/comparison/plot_5_comparison_sorter_weaknesses.py b/examples/tutorials/comparison/plot_5_comparison_sorter_weaknesses.py similarity index 100% rename from examples/modules_gallery/comparison/plot_5_comparison_sorter_weaknesses.py rename to examples/tutorials/comparison/plot_5_comparison_sorter_weaknesses.py diff --git a/examples/tutorials/core/README.rst b/examples/tutorials/core/README.rst new file mode 100644 index 0000000000..79afdd57a5 --- /dev/null +++ b/examples/tutorials/core/README.rst @@ -0,0 +1,4 @@ +Core tutorials +--------------- + +These tutorials focus on the :py:mod:`spikeinterface.core` module diff --git a/examples/modules_gallery/core/eight_tetrodes.prb b/examples/tutorials/core/eight_tetrodes.prb similarity index 100% rename from examples/modules_gallery/core/eight_tetrodes.prb rename to examples/tutorials/core/eight_tetrodes.prb diff --git a/examples/modules_gallery/core/plot_1_recording_extractor.py b/examples/tutorials/core/plot_1_recording_extractor.py similarity index 100% rename from examples/modules_gallery/core/plot_1_recording_extractor.py rename to examples/tutorials/core/plot_1_recording_extractor.py diff --git a/examples/modules_gallery/core/plot_2_sorting_extractor.py b/examples/tutorials/core/plot_2_sorting_extractor.py similarity index 100% rename from examples/modules_gallery/core/plot_2_sorting_extractor.py rename to examples/tutorials/core/plot_2_sorting_extractor.py diff --git a/examples/modules_gallery/core/plot_3_handle_probe_info.py b/examples/tutorials/core/plot_3_handle_probe_info.py similarity index 100% rename from examples/modules_gallery/core/plot_3_handle_probe_info.py rename to examples/tutorials/core/plot_3_handle_probe_info.py diff --git a/examples/modules_gallery/core/plot_4_sorting_analyzer.py b/examples/tutorials/core/plot_4_sorting_analyzer.py similarity index 100% rename from examples/modules_gallery/core/plot_4_sorting_analyzer.py rename to examples/tutorials/core/plot_4_sorting_analyzer.py diff --git a/examples/modules_gallery/core/plot_5_append_concatenate_segments.py b/examples/tutorials/core/plot_5_append_concatenate_segments.py similarity index 100% rename from examples/modules_gallery/core/plot_5_append_concatenate_segments.py rename to examples/tutorials/core/plot_5_append_concatenate_segments.py diff --git a/examples/modules_gallery/core/plot_6_handle_times.py b/examples/tutorials/core/plot_6_handle_times.py similarity index 100% rename from examples/modules_gallery/core/plot_6_handle_times.py rename to examples/tutorials/core/plot_6_handle_times.py diff --git a/examples/modules_gallery/extractors/README.rst b/examples/tutorials/extractors/README.rst similarity index 100% rename from examples/modules_gallery/extractors/README.rst rename to examples/tutorials/extractors/README.rst diff --git a/examples/modules_gallery/extractors/plot_1_read_various_formats.py b/examples/tutorials/extractors/plot_1_read_various_formats.py similarity index 100% rename from examples/modules_gallery/extractors/plot_1_read_various_formats.py rename to examples/tutorials/extractors/plot_1_read_various_formats.py diff --git a/examples/modules_gallery/extractors/plot_2_working_with_unscaled_traces.py b/examples/tutorials/extractors/plot_2_working_with_unscaled_traces.py similarity index 100% rename from examples/modules_gallery/extractors/plot_2_working_with_unscaled_traces.py rename to examples/tutorials/extractors/plot_2_working_with_unscaled_traces.py diff --git a/examples/modules_gallery/qualitymetrics/README.rst b/examples/tutorials/qualitymetrics/README.rst similarity index 100% rename from examples/modules_gallery/qualitymetrics/README.rst rename to examples/tutorials/qualitymetrics/README.rst diff --git a/examples/modules_gallery/qualitymetrics/plot_3_quality_mertics.py b/examples/tutorials/qualitymetrics/plot_3_quality_mertics.py similarity index 100% rename from examples/modules_gallery/qualitymetrics/plot_3_quality_mertics.py rename to examples/tutorials/qualitymetrics/plot_3_quality_mertics.py diff --git a/examples/modules_gallery/qualitymetrics/plot_4_curation.py b/examples/tutorials/qualitymetrics/plot_4_curation.py similarity index 100% rename from examples/modules_gallery/qualitymetrics/plot_4_curation.py rename to examples/tutorials/qualitymetrics/plot_4_curation.py diff --git a/doc/how_to/waveform_extractor_to_sorting_analyzer.rst b/examples/tutorials/waveform_extractor_to_sorting_analyzer.rst similarity index 100% rename from doc/how_to/waveform_extractor_to_sorting_analyzer.rst rename to examples/tutorials/waveform_extractor_to_sorting_analyzer.rst diff --git a/examples/modules_gallery/widgets/README.rst b/examples/tutorials/widgets/README.rst similarity index 100% rename from examples/modules_gallery/widgets/README.rst rename to examples/tutorials/widgets/README.rst diff --git a/examples/modules_gallery/widgets/plot_1_rec_gallery.py b/examples/tutorials/widgets/plot_1_rec_gallery.py similarity index 100% rename from examples/modules_gallery/widgets/plot_1_rec_gallery.py rename to examples/tutorials/widgets/plot_1_rec_gallery.py diff --git a/examples/modules_gallery/widgets/plot_2_sort_gallery.py b/examples/tutorials/widgets/plot_2_sort_gallery.py similarity index 100% rename from examples/modules_gallery/widgets/plot_2_sort_gallery.py rename to examples/tutorials/widgets/plot_2_sort_gallery.py diff --git a/examples/modules_gallery/widgets/plot_3_waveforms_gallery.py b/examples/tutorials/widgets/plot_3_waveforms_gallery.py similarity index 100% rename from examples/modules_gallery/widgets/plot_3_waveforms_gallery.py rename to examples/tutorials/widgets/plot_3_waveforms_gallery.py diff --git a/examples/modules_gallery/widgets/plot_4_peaks_gallery.py b/examples/tutorials/widgets/plot_4_peaks_gallery.py similarity index 100% rename from examples/modules_gallery/widgets/plot_4_peaks_gallery.py rename to examples/tutorials/widgets/plot_4_peaks_gallery.py