123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- # -*- coding: utf-8 -*-
- """
- Created on Wed Oct 9 17:29:15 2019
- @author: kleisp
- """
- import os
- os.chdir('C:\EAfiles\EAdetection')
- import core.ea_management as eam
- from core.helpers import open_hdf5
- from glob import glob
- #import phases_ictalInter as pii
- #import core.ea_analysis as eana
- import pandas as pd
- import numpy as np
- os.chdir('C:\EAfiles\EAdetection')
- reload(eam)
- #%% function for getting line length directly from resampled raw data
- def get_linelength(filename,ll_dict_controls, recID):
- excelpath = 'C:\EAfiles\Excel\\startstop_PK_HCc.xlsx' #insert the directory for an excel file containing the start and stop times for each recording (first column: recID, second column: start time, third column stop time)
- df = pd.read_excel(excelpath) #reading an excel file with start and stop times (s) of a recording
- df.set_index('recID', inplace=True) #recID
- ll_dict_controls[recID]['start'] = int(df.start[recID]) #start time
- ll_dict_controls[recID]['stop'] = int(df.stop[recID]) #stop time
- sr=500 #sampling rate of downsampled data
- data_dict=open_hdf5(filename,group=None,read_maskedarr=False)
- data=data_dict['data']['trace']
- reccut=data[int(ll_dict_controls[recID]['start']*sr):int(ll_dict_controls[recID]['stop']*sr)] #cut data according to start and stop times
- N_datapoints=len(reccut)
- duration=N_datapoints/sr
- linelength = np.sum(np.abs(np.diff(reccut))) #line length is the sum of subsequent datapoints -->derivative
- linelength_s=linelength/duration
- ll_dict_controls[recID]['linelength/second']=linelength_s
- ll_dict_controls[recID]['linelength']=linelength
-
- #%% get linelength directly from h5 (downsampled data)
- os.chdir(r'C:\EAfiles\DATA\h5files') #enter directory, where all the needed h5 files are
- files = glob(r'C:\EAfiles\DATA\h5files\*.h5') #takes all h5 files from this folder
- hfile = files
- lines = np.arange(0, len(hfile)) #as many lines as there are h5 files
- ll_dict_controls={}
- ll_dict_controls_d={}
- for i in lines:
- recID = os.path.basename(hfile[i]).split('__')[0] #getting the IDs
- print (i)
- print (recID)
-
- filename=os.path.basename(hfile[i])
- ll_dict_controls[recID]= {}
- get_linelength(filename,ll_dict_controls, recID)
- #%% creating arrays with data
- recIDs = np.array(ll_dict_controls.keys())
- flavour = 'linelength/second'
- ii_linelengths = np.array([ll_dict_controls[recID][flavour] for recID in ll_dict_controls.keys()])
- #%% create excel file
- os.chdir('C:\EAfiles\RESULTS')
- df_sr=pd.DataFrame(columns=
- ['recID',
- 'linelength/s'])
- df_sr['recID'] = recIDs
- df_sr['linelength/s'] = ii_linelengths
- df_sr.to_excel('test_linelengths.xlsx') #name the file
|