{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Trials\n", "\n", "This notebook provides a tutorial on how to use the `Trials` classes in Elephant for handling neuroscience data structured in repeated trials. The `Trials` classes provide a unified API to access and manipulate trial data, regardless of whether the data is stored in `neo.Block` or as lists of lists." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "In neuroscience, trials are repeated experimental runs that help in estimating various quantities from the data. The Trials class in Elephant provides a structured way to handle and access trial data, irrespective of how it is stored. This overview will cover the basic structure and functionalities of the Trials class and its subclasses." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports and Setup\n", "\n", "First, we need to import the necessary modules and set up some example data." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import neo\n", "from neo.core import Block, Segment, SpikeTrain, AnalogSignal\n", "from quantities import ms, mV, Hz\n", "from elephant.trials import TrialsFromBlock, TrialsFromLists\n", "from elephant.datasets import download_datasets\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "# Helper function to create example spike trains and analog signals\n", "def create_example_data():\n", " spike_times = [np.array([10, 20, 30]) * ms, np.array([15, 25, 35]) * ms]\n", " spike_trains = [SpikeTrain(spike_time, t_start=0*ms, t_stop=40*ms) for spike_time in spike_times]\n", " analog_signals = [AnalogSignal(np.random.randn(1000), sampling_rate=1000 * Hz, units=mV) for _ in range(2)]\n", " return spike_trains, analog_signals\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Download example data\n", "\n", "The following code downloads a dataset from the Elephant tutorial repository and loads it into a `neo.Block` object using the Neo NixIO, see [Neo documentation](https://neo.readthedocs.io/en/latest/share_data.html#nix).\n", "The structure of the dataset is as follows:\n", "- Each `neo.Segment` in the `neo.Block` represents a trial.\n", "- each `neo.Segment` contains neo.SpikeTrains, which contain the spiking activity of the neurons." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/kern/git/inm-6/elephant/elephant/datasets.py:154: UserWarning: No corresponding version of elephant-data found.\n", "Elephant version: 1.2.0b1. Data URL:https://gin.g-node.org/NeuralEnsemble/elephant-data/raw/v1.2.0b1/README.md, error: HTTP Error 404: Not Found.\n", "Using elephant-data latest instead (This is expected for elephant development versions).\n", " warnings.warn(f\"No corresponding version of elephant-data found.\\n\"\n", "Downloading https://datasets.python-elephant.org/raw/master/tutorials/tutorial_unitary_event_analysis/data/dataset-1.nix to '/tmp/elephant/dataset-1.nix': 1.69MB [00:01, 1.29MB/s]\n" ] } ], "source": [ "# Download data\n", "repo_path='tutorials/tutorial_unitary_event_analysis/data/dataset-1.nix'\n", "filepath=download_datasets(repo_path)\n", "\n", "# Load data\n", "io = neo.io.NixIO(f\"{filepath}\",'ro')\n", "block = io.read_block()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Methods of the `Trials` class:\n", "\n", "The `Trials` class is an abstract base class that defines the common interface for handling trial data. It includes methods for accessing individual trials, getting the number of trials, and retrieving spike trains or analog signals from specific trials. \\\n", "Here we use the `TrialsFromBlock` class to access and manipulate the trial data,\n", "this subclass handles trial data stored in a `neo.Block`, where each `neo.Segment` within the block represents a trial.\n", "\n", "\n", "Use the methods provided by the `Trials` class to access and manipulate the trial data:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of trials: 36\n", "Number of spike trains in each trial: [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]\n", "Number of analog signals in each trial: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n", "Trial 1 Segment: \n", "All spike trains from trial 2: [, ]\n" ] } ], "source": [ "# Create a TrialsFromBlock instance\n", "trials_from_block = TrialsFromBlock(block)\n", "\n", "# Access trial data\n", "print(f'Number of trials: {trials_from_block.n_trials}')\n", "print(f'Number of spike trains in each trial: {trials_from_block.n_spiketrains_trial_by_trial}')\n", "print(f'Number of analog signals in each trial: {trials_from_block.n_analogsignals_trial_by_trial}')\n", "\n", "# Get a specific trial as a Segment\n", "trial_1_segment = trials_from_block.get_trial_as_segment(1)\n", "print(f'Trial 1 Segment: {trial_1_segment}')\n", "\n", "# Get all spike trains from trial\n", "all_spike_trains_trial_2 = trials_from_block.get_spiketrains_from_trial_as_list(trial_id=1)\n", "print(f'All spike trains from trial 2: {all_spike_trains_trial_2}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. Use `Trials` to create a plot\n", "The `Trials` object enables handling of experimental data in a structured and consistent way. This abstraction allows for easier implementation of various tasks. Here we will use the `Trials` object to plot the spiking activity of the neurons for a few trials." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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mhSMs7Mz5s6di/Xr16uVh4SEYOzYsfD398fChQthYmKCrKwsHDx4EImJiQAALy8vJCYmws3NDdXV1QgJCdHoJAUHByMyMhL29vZwdXVFUlISMjIy1LKWurh69SquXr2KnJwcAMCZM2dgamoKGxsbdO/evUltExEREREREVEjTK0Az9B7/7awjjTpRqFQwNvbG1KpFHv27NFqXe/GaJ2UKi4uVn1anqurKw4dOgR3d3e9BRQTE4OUlBS1MhcXFxw5cgQRERFwd3eHEAL29vZ48cUXVXUSEhLg5+cHd3d3WFtbY926dfjll18a7S8gIADFxcVYtmwZCgsL4eTkhD179qgtAqaLDRs2qC1c7uHhAQBISkqqlSklIiIiIiIiIj0ztQImhrVK1x1l0o1CocCUKVNQVlaGzz77DAqFQrXAvoWFBQwNDXVuG9AyKbVmzRrExcXBysoKX3zxRZ2P82mj5uMM72dra4uKiopa5aNGjcKBAwfqbcva2hr79+9XKysqKlJr98Hpb8C9x+QiIyMRGRlZZ7t1HWdubt7opxtERUXp7RnLtkgqlSIyMlJtHSwi4r1BVB/eG0R1471BVDfeG9QRdIRJN7/++itOnDgBALVmd+Xl5cHW1lbntgFAIhrLrtzHwMAARkZGmDRpUoPZsF27djUpKCIiIiIiIiJ6uJSXlyMvLw92dnZ6fUSMWpY211GrmVIvv/xym/wkOCIiIiIiIiIial+0SkrV9bgdERERERERERGRtgxaOwAiIiIiIiIiInr4MClFREREREREREQtjkkpIiIiIiIiImoztPg8NmqDtLl+TEoRERERERERUavr3LkzAKCsrKyVI6GmqLl+NdezIVotdE5ERERERERE1BwMDQ1hbm6OwsJCAICxsTEkEkkrR0WaEkKgrKwMhYWFMDc3h6GhYaPHSATnxRERERERERFRGyCEwNWrV1FUVNTaoZCOzM3NYWVlpVFCkUkpIiIiIiIiImpTqqurUVlZ2dphkJY6d+6s0QypGkxKERERERERERFRi+NC50RERERERERE1OKYlCIiIiIiIiIiohbHpBQREREREREREbU4JqWIiIiIiIiIiKjFMSlFREREREREREQtjkkpIiKiVpScnAyJRIKLFy+qymxtbfHUU0+1XlB6UNe4WkJ2djamTJkCMzMzSCQSpKamtmj/LcHW1ha+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jo6OauXDhw9HVlZWg48LWlhY4MqVK6rX2dnZKCsra7A/uVwOa2trHDt2DJ6enqryY8eOYfTo0TqNoYZCoYC3tzekUin27Nmj1SOGHZKpFeAZeu9ffdTTJ237bEqMLTG+B/tozv5a+np19P5aon9TK2CsPyBB84yruWJuievQUvdOa7+v6vKw3VvNqSOPTR+a6/zwvPMc6IrnjYioVUnEg9OLNHDp0qUG9/ft21ejdnx9fVFUVITU1FRV2csvv4wdO3agvLxcNfMpMzMTY8eOxfz587Fw4UKYmJggKysLBw8eRGJiIgBg9uzZOH36NLZv347q6mqEhITgxx9/xKZNm+Dr64uLFy/Czs4Ov/32G1xdXVX9rV27FpGRkdi0aRNcXV2RlJSEf/7zn6qFzus6rqioCN26dUNaWhomTJhQa1wKhQJTpkxBWVkZdu/erTY7y8LCAoaGho2eG4VCATMzM9UC6URERERERET368h/N1ZXV9f59BO1bZ07d9Yo51FDp5lSmiaddBETE4OUlBS1MhcXFxw5cgQRERFwd3eHEAL29vZ48cUXVXUSEhLg5+cHd3d3WFtbY926dfjll18a7S8gIADFxcVYtmwZCgsL4eTkhD179qh98p62fv31V5w4cQIAas3uysvLg62trc5tExEREREREXVUQghcvXoVRUVFrR0K6cjc3BxWVlYaLcCv00wpAMjNzcXatWtVC4I7OTlh6dKlsLe316U5ekBHzngTERERERFR03XEvxuvXLmCoqIiWFpawtjYmJ8s2I4IIVBWVobCwkKYm5urPiSuITrNlNq/fz+mTZsGV1dX1SfXHTt2DIMHD8Y333yDyZMn69IsERERERERET2kqqurVQmpRx55pLXDIR0YGRkBAAoLC2Fpadnoo3w6JaVCQ0Px5ptvYvXq1bXKQ0JCmJQiIiIiIiIiIq3UrCFlbGzcypFQU9Rcv8rKykaTUga6dHDu3DksWLCgVvn8+fORlZWlS5NERERERERERHxkr53T5vrplJSysLBARkZGrfKMjAxYWlrq0iQRERERERERET1EdHp875VXXsGrr76KCxcu4LHHHgNwb02puLg4vPXWW3oNkIiIiIiIiIiIOh6dklLvvPMOTE1NkZCQgLCwMACAtbU1oqKiEBAQoNcAiYiIiIiIiIio49H68b2qqips27YNc+bMweXL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rY2LFy+KJ554QhgZGYkePXqIZcuWicrKypYeClGTpKWlCQC1tnnz5gkhhFAqleKdd94Rjz76qJBKpeLxxx8X58+fV2vjxo0bYvbs2aJr165CLpcLPz8/UVJSolbn9OnTYvz48UIqlYpevXqJ1atXt9QQiXTS0L1RVlYmpkyZIiwsLETnzp1F3759xSuvvFLrP/N4b1BHVNd9AUAkJSWp6ujr96i0tDTh6uoqunTpIvr166fWBxG1XRIhhGjp2VlERERERERERPRw45pSRERERERERETU4piUIiIiIiIiIiKiFsekFBERERERERERtTgmpYiIiIiIiIiIqMUxKUVERERERERERC2OSSkiIiIiIiIiImpxTEoREREREREREVGLY1KKiIiIiIiIiIhaHJNSRERE1CwOHz4MiUSCoqKiVun/0KFDGDRoEKqrqxutu2/fPri6ukKpVLZAZEREREQEMClFREREejBhwgQEBgaqlT322GO4cuUKzMzMWiWmf/zjH3j77bdhaGjYaF0fHx907twZ27dvb4HIiIiIiAhgUoqIiIiaSZcuXWBlZQWJRNLifR89ehS5ubl47rnnND7G19cX69evb8aoiIiIiOh+TEoRERFRk/j6+uLIkSNYt24dJBIJJBIJLl68WOvxveTkZJibm+Pf//43HB0dYWxsjJkzZ6KsrAxbt26Fra0tunXrhoCAALVH7ioqKhAUFIRevXrBxMQEY8aMweHDhxuM6csvv8TkyZMhk8lUZadPn8bEiRNhamoKuVyOESNG4NSpU6r9Tz/9NE6dOoXc3Fy9nh8iIiIiqlun1g6AiIiI2rd169bhjz/+wJAhQxATEwMAsLCwwMWLF2vVLSsrw/r16/Hll1+ipKQEM2bMwPTp02Fubo5vv/0WFy5cwHPPPYdx48bhxRdfBAD4+/sjKysLX375JaytrbF79274+PjgzJkzcHBwqDOmH3/8EXPmzFErmzt3LoYNG4aPP/4YhoaGyMjIQOfOnVX7bWxs8Oijj+LHH3+Evb29ns4OEREREdWHSSkiIiJqEjMzM3Tp0gXGxsawsrJqsG5lZSU+/vhjVdJn5syZ2LZtG/7++2907doVTk5OmDhxItLS0vDiiy/izz//RFJSEv78809YW1sDAIKCgrBv3z4kJSVh1apVdfZz6dIlVf0af/75J4KDgzFw4EAAqDOhZW1tjUuXLml9DoiIiIhIe0xKERERUYsxNjZWm4X06KOPwtbWFl27dlUrKywsBACcOXMG1dXVGDBggFo7FRUVeOSRR+rt586dO2qP7gHAW2+9hYULF2Lbtm2YNGkSnn/++VozooyMjFBWVqbz+IiIiIhIc0xKERERUYu5/3E5AJBIJHWWKZVKAEBpaSkMDQ3xyy+/1PoUvfsTWQ/q0aMHbt26pVYWFRWFOXPmYO/evfjuu+8QGRmJL7/8EtOnT1fVuXnzJiwsLHQaGxERERFph0kpIiIiarIuXbqoLU6uL8OGDUN1dTUKCwvh7u6u1XFZWVm1ygcMGIABAwbgzTffxOzZs5GUlKRKSpWXlyM3NxfDhg3TW/xEREREVD9++h4RERE1ma2tLU6cOIGLFy/i+vXrqplOTTVgwADMnTsXL7/8Mnbt2oW8vDycPHkSsbGx2Lt3b73HeXt74+jRo6rXd+7cgb+/Pw4fPoxLly7h2LFj+PnnnzFo0CBVnZ9++glSqRRubm56iZ2IiIiIGsakFBERETVZUFAQDA0N4eTkBAsLC/z55596azspKQkvv/wyli1bBkdHRzz77LP4+eefYWNjU+8xc+fOxdmzZ3H+/HkAgKGhIW7cuIGXX34ZAwYMwAsvvIAnnngC0dHRqmO++OILzJ07F8bGxnqLnYiIiIjqJxFCiNYOgoiIiEjfgoODoVAosHHjxkbrXr9+HY6Ojjh16hTs7OxaIDoiIiIi4kwpIiIi6pAiIiLQt29fjR4lvHjxIj766CMmpIiIiIhaEGdKERERERERERFRi+NMKSIiIiIiIiIianFMShERERERERERUYtjUoqIiIiIiIiIiFock1JERERERERERNTimJQiIiIiIiIiIqIWx6QUERERERERERG1OCaliIiIiIiIiIioxTEpRURERERERERELY5JKSIiIiIiIiIianH/D9o7d7slNpL7AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot all spiketrains belonging to specific trials\n", "trials = (3,4,5)\n", "n_trials = len(trials)\n", "\n", "# Create a figure with subplots for each trial\n", "fig, axes = plt.subplots(n_trials, 1, figsize=(12, 1 * n_trials), sharex=True)\n", "\n", "for trial_no, _ in enumerate(trials):\n", " spiketrains = trials_from_block.get_spiketrains_from_trial_as_list(trial_no)\n", "\n", " for i, spiketrain in enumerate(spiketrains):\n", " axes[trial_no].plot(spiketrain.times, [i] * len(spiketrain), '|', markersize=5, label=f'Neuron {i+1}')\n", " \n", " # Set labels and title for each subplot\n", " axes[trial_no].set_ylabel('Neuron')\n", " axes[trial_no].set_title(f'Spike Trains from trial {trial_no}')\n", " \n", " # Set y-axis ticks to match neuron numbers\n", " axes[trial_no].set_yticks(range(len(spiketrains)))\n", " axes[trial_no].set_yticklabels([f'Neuron {i+1}' for i in range(len(spiketrains))])\n", " \n", " # Add legend to each subplot\n", " axes[trial_no].legend(bbox_to_anchor=(1.05, 1), loc='upper left')\n", "\n", "axes[-1].set_xlabel('time (s)')\n", "\n", "# Adjust layout and display the plot\n", "plt.tight_layout()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.5" } }, "nbformat": 4, "nbformat_minor": 4 }