Skip to content

Instantly share code, notes, and snippets.

@danibene
Last active May 13, 2023 20:45
Show Gist options
  • Save danibene/240bc929d5593a3ccc8541889939abbf to your computer and use it in GitHub Desktop.
Save danibene/240bc929d5593a3ccc8541889939abbf to your computer and use it in GitHub Desktop.
nk_issue_824_a.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyPvqBnks5JmJuvNDsKyAjBI",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/danibene/240bc929d5593a3ccc8541889939abbf/nk_issue_824_a.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"source": [
"!pip install numpy==1.24\n",
"!pip install biosppy==0.6.1\n",
"!pip install neurokit2==0.2.4"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ALWWASrMiC9n",
"outputId": "0e4a4aff-7cd7-419c-83aa-aaed06084906"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
"Requirement already satisfied: numpy==1.24 in /usr/local/lib/python3.10/dist-packages (1.24.0)\n",
"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
"Requirement already satisfied: biosppy==0.6.1 in /usr/local/lib/python3.10/dist-packages (0.6.1)\n",
"Requirement already satisfied: bidict in /usr/local/lib/python3.10/dist-packages (from biosppy==0.6.1) (0.22.1)\n",
"Requirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from biosppy==0.6.1) (3.8.0)\n",
"Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from biosppy==0.6.1) (3.7.1)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from biosppy==0.6.1) (1.24.0)\n",
"Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (from biosppy==0.6.1) (1.2.2)\n",
"Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from biosppy==0.6.1) (1.10.1)\n",
"Requirement already satisfied: shortuuid in /usr/local/lib/python3.10/dist-packages (from biosppy==0.6.1) (1.0.11)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from biosppy==0.6.1) (1.16.0)\n",
"Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->biosppy==0.6.1) (1.0.7)\n",
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->biosppy==0.6.1) (0.11.0)\n",
"Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->biosppy==0.6.1) (4.39.3)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->biosppy==0.6.1) (1.4.4)\n",
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->biosppy==0.6.1) (23.1)\n",
"Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->biosppy==0.6.1) (8.4.0)\n",
"Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->biosppy==0.6.1) (3.0.9)\n",
"Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->biosppy==0.6.1) (2.8.2)\n",
"Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->biosppy==0.6.1) (1.2.0)\n",
"Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->biosppy==0.6.1) (3.1.0)\n",
"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
"Requirement already satisfied: neurokit2==0.2.4 in /usr/local/lib/python3.10/dist-packages (0.2.4)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from neurokit2==0.2.4) (1.24.0)\n",
"Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from neurokit2==0.2.4) (1.5.3)\n",
"Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from neurokit2==0.2.4) (1.10.1)\n",
"Requirement already satisfied: scikit-learn>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from neurokit2==0.2.4) (1.2.2)\n",
"Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from neurokit2==0.2.4) (3.7.1)\n",
"Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=1.0.0->neurokit2==0.2.4) (1.2.0)\n",
"Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=1.0.0->neurokit2==0.2.4) (3.1.0)\n",
"Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->neurokit2==0.2.4) (1.0.7)\n",
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->neurokit2==0.2.4) (0.11.0)\n",
"Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->neurokit2==0.2.4) (4.39.3)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->neurokit2==0.2.4) (1.4.4)\n",
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->neurokit2==0.2.4) (23.1)\n",
"Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->neurokit2==0.2.4) (8.4.0)\n",
"Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->neurokit2==0.2.4) (3.0.9)\n",
"Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->neurokit2==0.2.4) (2.8.2)\n",
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->neurokit2==0.2.4) (2022.7.1)\n",
"Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib->neurokit2==0.2.4) (1.16.0)\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import neurokit2 as nk\n",
"import biosppy\n",
"import numpy as np"
],
"metadata": {
"id": "cRYIjMO1iLm1"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 347
},
"id": "yqpAXjFliCbU",
"outputId": "988f4e65-0f73-485a-b2e4-6cc5aba900ec"
},
"outputs": [
{
"output_type": "error",
"ename": "ValueError",
"evalue": "ignored",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-3-e533f4a48e5c>\u001b[0m in \u001b[0;36m<cell line: 17>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0msignals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minfo\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meda_peaks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0meda_phasic\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"kim2004\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0monsets\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpeaks\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mamplitudes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbiosppy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meda\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkbk_scr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0meda_phasic\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msampling_rate\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/biosppy/signals/eda.py\u001b[0m in \u001b[0;36mkbk_scr\u001b[0;34m(signal, sampling_rate, min_amplitude)\u001b[0m\n\u001b[1;32m 237\u001b[0m \u001b[0mpks\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 238\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 239\u001b[0;31m \u001b[0mscrs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mscrs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 240\u001b[0m \u001b[0mamps\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mamps\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 241\u001b[0m \u001b[0mZC\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mZC\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mValueError\u001b[0m: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (119,) + inhomogeneous part."
]
}
],
"source": [
"sampling_rate = 1000\n",
"eda = nk.eda_simulate(\n",
" duration=30 * 20,\n",
" sampling_rate=sampling_rate,\n",
" scr_number=6 * 20,\n",
" noise=0,\n",
" drift=0.01,\n",
" random_state=42,\n",
")\n",
"eda_phasic = nk.eda_phasic(nk.standardize(eda), method=\"highpass\")[\"EDA_Phasic\"].values\n",
"\n",
"signals, info = nk.eda_peaks(eda_phasic, method=\"gamboa2008\")\n",
"onsets, peaks, amplitudes = biosppy.eda.basic_scr(eda_phasic, sampling_rate=1000)\n",
"assert np.allclose((info[\"SCR_Peaks\"] - peaks).mean(), 0, atol=1e-5)\n",
"\n",
"signals, info = nk.eda_peaks(eda_phasic, method=\"kim2004\")\n",
"onsets, peaks, amplitudes = biosppy.eda.kbk_scr(eda_phasic, sampling_rate=1000)"
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment