# -*- 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