{ "cells": [ { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "from scipy.io import loadmat\n", "import pathlib\n", "from scipy.interpolate import interp1d" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "m = loadmat('sargolini2006/all_data/10073-17010302_eeg.mat')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "data_path = pathlib.Path('sargolini2006/all_data/')" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "data = {}\n", "for fname in data_path.iterdir():\n", " if not fname.is_file():\n", " continue\n", " try:\n", " action, ftype = fname.stem.split('_')\n", " except Exception as e:\n", " print(fname)\n", " raise e\n", " if ftype == 'EGF':\n", " continue\n", " if action not in data:\n", " data[action] = {}\n", " data[action][ftype] = loadmat(fname)\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "action = data['10704-08070402']\n", "x, y, t = map(action['POS'].get, ['posx', 'posy', 'post'])" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "analog, cells = [], []\n", "for k, v in data.items():\n", " if 'POS' not in v:\n", " continue\n", " if set(['EEG', 'EG2']).intersection(set(v.keys())) == set():\n", " continue\n", " analog.append({\n", " 'action': k, \n", " 'eeg': None if 'EEG' not in v else v['EEG']['EEG'], \n", " 'eeg2': None if 'EG2' not in v else v['EG2']['EEG'],\n", " 'x': v['POS']['posx'],\n", " 'y': v['POS']['posy'],\n", " 't': v['POS']['post']\n", " })\n", " for kk, vv in v.items():\n", " if kk.startswith('T'):\n", " cells.append({\n", " 'action': k,\n", " 'channel': kk[1],\n", " 'unit': kk[3:],\n", " 'spikes': vv['cellTS']\n", " })" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [], "source": [ "analog = pd.DataFrame(analog)\n", "cells = pd.DataFrame(cells)" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | action | \n", "channel | \n", "unit | \n", "spikes | \n", "
---|---|---|---|---|
0 | \n", "10704-08070402 | \n", "1 | \n", "3 | \n", "[[1.9145208333333332], [2.144375], [2.22252083... | \n", "
1 | \n", "10704-08070402 | \n", "1 | \n", "2 | \n", "[[0.4719583333333333], [1.0331770833333334], [... | \n", "
2 | \n", "10704-08070402 | \n", "4 | \n", "5 | \n", "[[0.23117708333333334], [0.2521979166666667], ... | \n", "
3 | \n", "10704-08070402 | \n", "4 | \n", "2 | \n", "[[2.9638541666666667], [4.54359375], [5.202333... | \n", "
4 | \n", "10704-08070402 | \n", "2 | \n", "1 | \n", "[[4.531625], [4.648020833333334], [5.679010416... | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
453 | \n", "11084-09030503 | \n", "2 | \n", "2 | \n", "[[0.98903125], [1.9578645833333332], [2.223593... | \n", "
454 | \n", "10884-08070405 | \n", "4 | \n", "2 | \n", "[[2.1585], [2.2601458333333335], [2.3705625], ... | \n", "
455 | \n", "11138-08040501 | \n", "7 | \n", "1 | \n", "[[3.645072916666667], [3.6803020833333333], [3... | \n", "
456 | \n", "11016-02020502 | \n", "5 | \n", "1 | \n", "[[3.2897708333333333], [3.314229166666667], [3... | \n", "
457 | \n", "11016-02020502 | \n", "7 | \n", "1 | \n", "[[0.44884375], [0.53609375], [0.56032291666666... | \n", "
458 rows × 4 columns
\n", "