Custom analysis of hdf5 files

In this notebook we add features to the h5 files we converted the previous notebook 1.

In [ ]:
ndf_folderpath = '/media/jonathan/DATA/seizure_data/test_ndf'

ndf_filepaths = [os.path.join(ndf_folderpath,f) for f in os.listdir(ndf_folderpath)]

test_ndf = ndf_filepaths[0]
test_ndf

ndf_file = pg.NdfFile(test_ndf, fs = 'auto', verbose=True)
ndf_file.get_valid_tids_and_fs()
ndf_file.tid_set

ndf_file.tid_to_fs_dict

ndf_file.load(read_ids=[88])

ndf_file[88]
In [ ]:
### Optional: Loading the h5 files:

At this point you can load the h5 files in the gui and manually inspect them for seizures or activity of interest.

You can also load them in python notebooks for further analysis. Here you have two main options, either use the H5File class from pyecog, or work directly with the h5 file with the h5py module.
In [ ]:
h5_filepaths = [os.path.join(h5_folderpath,f) for f in os.listdir(h5_folderpath)]
h5_filepaths[0]

Loading the pyecog module

The easiest place to place and run this notebook is from the pyecog directory downloaded from github, e.g. “pyecog-Development” as the pyecog module will be found in this folder. However, if you want to run the notebook from else where on your computer you first need to make sure that python can find the pyecog module using sys.path.append(). To do this modify and copy the following code into a cell and run it (shift+enter).

import sys
pyecog_path = 'home/jonathan/git_repos/pyecog' # replace this with the pyecog location
sys.path.append(pyecog_path)

If you are on windows you have to deal with the problem that backslashes in your paths are treated escape characters by python. Prefixing the string with ‘r’ prevents this.

pyecog_path_windows = r'home\jonathan\git_repos\pyecog' # replace this with the pyecog location
In [1]:
import sys
import os
In [2]:
# if you are in the directory downloaded from github you do not have to run this cell

pyecog_path = '/home/jonathan/git_repos/pyecog' # replace this with the Pyecog-Master location
sys.path.append(pyecog_path)
In [3]:
import pyecog as pg

pg # check the module is imported from where you expect
Out[3]:
<module 'pyecog' from '/home/jonathan/git_repos/pyecog/pyecog/__init__.py'>

The h5 folder is where we stored the h5 files that we converted in notebook 1.

In [4]:
h5_folderpath  = '/media/jonathan/DATA/seizure_data/test_h5'

Optional: Loading the h5 file features:

At this point you can load the h5 files in the gui and manually inspect them for seizures or activity of interest.

You can also load them in python notebooks for further analysis. Here you have two main options, either use the H5File class from pyecog, or work directly with the h5 file with the h5py module.

In [11]:
h5_filepaths = [os.path.join(h5_folderpath,f) for f in os.listdir(h5_folderpath)]
h5_filepaths[0]
Out[11]:
'/media/jonathan/DATA/seizure_data/test_convert_h5/M1518706020_2018-02-15-14-47-00_tids_[88, 89, 90, 91, 92, 94, 104].h5'
In [12]:
h5_file = pg.H5File(h5_filepaths[0])
In [13]:
h5_file.attributes
Out[13]:
{'Mcode': 'M1518706020',
 'fs_dict': '{104: 256, 88: 256, 89: 256, 90: 256, 91: 256, 92: 256, 94: 256}',
 'num_channels': 7,
 't_ids': array([ 88,  89,  90,  91,  92,  94, 104])}

h5 file objects can be indexed by their transmitter id number, this will return a dictionary for that transmitter.

In [16]:
h5_file[88]['features_df']
Out[16]:
min max mean std-dev kurtosis skew sum(abs(d bl_len 1-4 Hz 4-8 Hz 8-12 Hz 12-30 Hz 30-50 Hz 50-70 Hz 70-120 Hz
0 -2.745696 3.921481 0.001907 0.951816 0.562453 0.154258 507.375421 1280.0 0.276522 0.282955 0.058782 0.137594 0.073938 0.037437 0.023082
1 -2.538420 2.875458 -0.011958 0.918251 -0.055107 0.012742 484.469184 1280.0 0.297290 0.160897 0.037914 0.177929 0.056228 0.041208 0.021928
2 -3.369785 4.830944 -0.005697 1.057422 1.490759 0.513808 497.692428 1127.0 0.326884 0.306726 0.120561 0.212007 0.057005 0.036853 0.020290
3 -4.484467 3.005027 0.018585 1.049311 0.416406 -0.244072 518.875038 1265.0 0.441402 0.255402 0.077621 0.211842 0.080629 0.035725 0.020244
4 -9.822171 3.620097 0.002888 1.051635 5.856197 -0.600460 560.345812 1256.0 0.258222 0.304614 0.085988 0.262057 0.107011 0.050286 0.075028
5 -5.016475 3.796506 -0.010853 1.094132 1.413410 0.009865 528.680387 1195.0 0.466390 0.289356 0.083845 0.208914 0.092203 0.040994 0.028764
6 -2.360754 3.465912 -0.014044 0.972277 0.316050 0.405794 493.823822 1211.0 0.470302 0.165675 0.060854 0.185965 0.055256 0.038203 0.021816
7 -3.784373 3.380679 0.018908 1.188957 -0.070337 -0.157187 510.652488 1224.0 0.527945 0.429023 0.124392 0.208431 0.072418 0.040214 0.019761
8 -7.965405 5.122307 -0.006857 1.294961 4.149093 -0.262928 544.083040 1047.0 0.711421 0.348831 0.158709 0.280185 0.097763 0.040309 0.020178
9 -5.229404 6.754734 -0.009964 1.275355 1.278787 0.221219 513.431716 1111.0 0.711461 0.334720 0.143933 0.369128 0.101415 0.038544 0.021516
10 -3.854198 5.586577 -0.005269 1.284305 0.921093 0.305607 482.475379 1104.0 0.800779 0.268881 0.173424 0.293042 0.060466 0.029142 0.014935
11 -3.525886 3.773122 0.017021 1.297012 -0.131703 0.134103 472.318159 1121.0 0.802087 0.324443 0.114645 0.210437 0.074116 0.033903 0.016987
12 -5.649103 15.035132 -0.019014 1.549661 11.755122 1.285502 530.833004 978.0 0.531510 0.745433 0.400011 0.441124 0.093635 0.056163 0.018926
13 -4.956014 3.414950 0.044344 1.316174 0.474763 -0.407176 481.310986 1114.0 0.864683 0.297260 0.150904 0.275476 0.065509 0.032104 0.013759
14 -3.954851 4.646735 -0.008864 1.398841 0.419287 0.133754 515.690621 1073.0 0.830538 0.298522 0.187436 0.304622 0.082487 0.029620 0.016897
15 -3.486569 4.004167 -0.002922 1.193170 0.449053 0.017427 450.833731 1128.0 0.533526 0.447185 0.164795 0.230173 0.066359 0.027804 0.012576
16 -9.185851 4.745833 -0.020753 1.404140 1.645688 -0.104998 501.452628 833.0 0.650680 0.489238 0.168410 0.285406 0.082329 0.038631 0.023186
17 -5.260774 6.324856 0.022187 1.306987 1.604539 -0.008105 451.570608 1140.0 0.816545 0.372041 0.151846 0.312183 0.060156 0.023657 0.009984
18 -2.457274 3.264696 -0.014664 0.901966 0.426506 0.300696 421.600059 1280.0 0.224136 0.201921 0.153110 0.201433 0.064692 0.026570 0.009348
19 -3.295339 5.413536 -0.007183 1.243465 0.742899 0.733430 422.116302 1052.0 0.850298 0.197062 0.089558 0.323254 0.052151 0.020226 0.007090
20 -2.664857 3.321672 -0.004571 0.840505 0.425044 0.112048 416.961986 1280.0 0.246920 0.103103 0.058986 0.151078 0.063307 0.026897 0.012600
21 -2.877755 3.820785 0.014660 0.908444 0.463671 0.087917 388.812314 1280.0 0.309512 0.146225 0.063018 0.154775 0.051886 0.023127 0.006976
22 -2.306637 4.432575 -0.004770 1.087817 1.173868 0.669565 429.693485 1199.0 0.517649 0.232056 0.115126 0.190860 0.070079 0.020856 0.008823
23 -4.008120 3.701702 0.002494 1.112408 0.482239 0.230278 450.061029 1189.0 0.493985 0.333859 0.048737 0.215048 0.076206 0.028147 0.010693
24 -3.377793 4.059548 0.044629 1.265754 0.072259 0.265524 444.619697 1067.0 0.612792 0.497030 0.201418 0.242031 0.080960 0.027148 0.005646
25 -4.503251 5.351383 -0.045337 1.375659 0.533906 0.262147 426.677626 902.0 0.785479 0.487603 0.226601 0.264577 0.049743 0.021211 0.006866
26 -3.568531 4.336241 -0.015334 1.379952 -0.251292 0.161377 434.372402 922.0 0.928004 0.380891 0.146578 0.222205 0.058511 0.025594 0.007110
27 -4.892261 4.199362 0.025549 1.379633 0.635587 -0.130585 427.890061 857.0 0.779472 0.608448 0.116563 0.246202 0.062507 0.026885 0.006059
28 -5.911869 4.847576 -0.014171 1.496278 0.525630 0.137111 452.850210 883.0 0.910086 0.609288 0.282872 0.325669 0.064047 0.030313 0.007209
29 -4.214667 3.577526 -0.026826 1.170126 0.026517 0.048512 439.250432 1154.0 0.470861 0.355157 0.296465 0.245023 0.065580 0.020623 0.007572
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
690 -5.757212 14.496787 -0.012677 1.471006 23.335535 2.749804 440.605153 1052.0 0.779282 0.525149 0.322763 0.601284 0.085317 0.030744 0.010619
691 -4.702798 4.127438 0.015693 1.214199 0.946584 -0.211986 463.535408 1050.0 0.732721 0.360134 0.142084 0.235886 0.064723 0.030105 0.012696
692 -4.276248 6.411844 -0.014816 1.307440 1.869722 0.725547 470.026684 1084.0 0.668813 0.477376 0.184708 0.334354 0.061518 0.031714 0.010888
693 -4.342320 3.785950 -0.001922 1.335172 0.075070 0.099501 501.047427 970.0 0.747869 0.246368 0.199893 0.304325 0.069427 0.034202 0.016603
694 -3.999692 4.905349 -0.002278 1.279467 0.573413 0.380584 454.667219 1095.0 0.627531 0.425904 0.164660 0.304105 0.065938 0.025006 0.012333
695 -4.370572 5.235374 0.019616 1.646325 0.183652 0.335276 511.442734 704.0 1.302879 0.506967 0.239064 0.319867 0.067544 0.034969 0.015418
696 -4.143962 3.496515 -0.019012 1.310633 -0.307614 0.002483 478.246595 996.0 0.947350 0.505394 0.119981 0.212160 0.078751 0.026191 0.014225
697 -2.939468 3.645246 0.002312 0.989951 0.199146 0.149408 486.805228 1280.0 0.377750 0.322209 0.061835 0.138720 0.067689 0.037093 0.021757
698 -3.330699 4.829200 -0.004158 1.013271 1.775634 0.333971 469.286519 1138.0 0.357334 0.206490 0.085539 0.186886 0.059271 0.031302 0.017955
699 -4.279370 5.720537 0.001136 1.226381 1.751687 0.412864 499.944392 1049.0 0.637580 0.388617 0.133865 0.240075 0.061437 0.037101 0.019387
700 -4.073154 4.808202 0.016762 1.225125 0.120327 0.112915 517.026428 1163.0 0.701984 0.322741 0.121541 0.165357 0.078646 0.041100 0.026292
701 -4.593632 4.674571 -0.012404 1.327265 0.105494 0.184291 504.381454 1024.0 0.795026 0.384167 0.132930 0.220840 0.069287 0.038949 0.022405
702 -4.167829 4.319712 0.005672 1.308253 0.299642 0.194562 535.966277 1009.0 0.773908 0.393674 0.104382 0.237424 0.068482 0.046995 0.026336
703 -4.196323 6.620794 0.010787 1.504828 0.727306 0.311355 554.941830 871.0 1.261631 0.548588 0.151882 0.256520 0.075753 0.051780 0.023556
704 -3.955023 4.914947 -0.008554 1.320213 0.371810 0.390918 495.560486 981.0 0.857747 0.376863 0.119071 0.182949 0.063222 0.033984 0.018896
705 -3.608728 3.661762 -0.024912 1.268253 -0.194817 -0.013589 528.876712 1201.0 0.671145 0.378833 0.146457 0.234801 0.073901 0.043383 0.020795
706 -4.629775 5.489401 0.016969 1.392876 0.406126 0.138684 521.157776 962.0 0.863635 0.447052 0.223284 0.265719 0.084475 0.036293 0.020991
707 -3.569970 9.013496 0.000711 1.289536 1.906456 0.471651 523.800450 991.0 0.543882 0.469144 0.240843 0.286008 0.086718 0.045509 0.050148
708 -3.707065 4.581943 -0.002083 1.357154 -0.033649 0.194637 522.551612 1044.0 0.672098 0.350869 0.211379 0.355743 0.078794 0.033485 0.018762
709 -4.190712 5.519274 0.001844 1.299737 0.757940 0.498762 510.930416 1089.0 0.595124 0.366942 0.157764 0.326363 0.081769 0.033800 0.016922
710 -3.386481 5.271014 0.030382 1.547091 0.022169 0.513613 497.314751 735.0 1.187509 0.477200 0.255087 0.325033 0.076742 0.027689 0.013524
711 -3.699453 4.898075 -0.027988 1.364191 0.206366 0.477663 459.457768 952.0 0.926517 0.437916 0.117424 0.274607 0.059559 0.027609 0.013117
712 -4.624734 9.595704 0.001354 1.504431 2.872975 0.436785 434.575862 897.0 1.384712 0.485641 0.141521 0.240223 0.101878 0.027615 0.009540
713 -4.335477 5.717319 0.002326 1.413635 0.537906 0.344380 472.618872 905.0 1.017626 0.456291 0.135159 0.235540 0.077904 0.026629 0.012351
714 -4.467684 5.695909 -0.005388 1.511456 0.339366 0.136025 467.201641 810.0 1.299472 0.464950 0.220517 0.207499 0.065736 0.029378 0.012627
715 -3.093008 4.777498 0.024668 1.339723 0.055912 0.373936 452.100753 1035.0 0.887479 0.372953 0.147838 0.251702 0.071332 0.024734 0.008532
716 -4.280185 3.764713 -0.027456 1.212568 0.178199 -0.156122 481.772357 1060.0 0.482698 0.413855 0.255187 0.313109 0.065660 0.029568 0.009617
717 -5.789287 4.444491 -0.014628 1.302015 1.276640 -0.076348 409.601379 951.0 0.705501 0.542924 0.147105 0.234677 0.053697 0.019287 0.007973
718 -3.463968 4.674178 0.017524 1.240515 0.485109 0.291203 388.131007 1114.0 0.711683 0.480209 0.132861 0.134867 0.043589 0.021719 0.007139
719 -3.712615 6.296349 0.005182 1.360754 0.935015 0.647082 421.855224 1016.0 1.024474 0.350026 0.128241 0.222323 0.053141 0.025245 0.007555

720 rows × 15 columns