Advertisement
Guest User

Untitled

a guest
Jul 8th, 2022
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.30 KB | None | 0 0
  1. from IPython import get_ipython
  2. get_ipython().magic('reset -sf')
  3. import matplotlib.pyplot as plt
  4. import numpy
  5. import scipy.io as sio
  6. from tvb.simulator. lab import *
  7. import pandas
  8. import tvb.datatypes.projections as projections
  9. import random
  10. import statistics
  11. import scipy.stats
  12. import os
  13. from parfor import parfor
  14. import pickle
  15. import time
  16. files = os.listdir("../Preprocessing/Preprocessed EEG CSV")
  17. for file in files:
  18. print(file)
  19. original_EEG = pandas.read_excel("../Preprocessing/Preprocessed EEG CSV/" + file, header = None)
  20. original_EEG = original_EEG.loc[:,1:20] # Remove AFz
  21. original_FC = numpy.corrcoef(original_EEG,rowvar=False)
  22. original_FC = numpy.triu(original_FC)
  23. sampling_rate = 1200
  24. t = list(range(1,16,1))
  25. G = list(range(0,62,2))
  26. for iteration_t in list(range(0,len(t))):
  27. @parfor(list(range(0,len(G))))
  28. def fun(iteration_G):
  29. result = pandas.DataFrame(columns = ['tau', 'p_value'],index=range(0,1))
  30. random.seed(99)
  31. def_conn = connectivity.Connectivity.from_file('F:\OneDrive - Kormányzati Informatikai Fejlesztési Ügynökség\Charite\EEG-EMG Parkinson\Simulations\connectivity_76.zip')
  32. def_conn.scaled_weights(mode='tract')
  33. def_conn.configure()
  34. ss = sensors.SensorsEEG.from_file('F:\OneDrive - Kormányzati Informatikai Fejlesztési Ügynökség\Charite\EEG-EMG Parkinson\Simulations\eeg_unitvector_19.txt')
  35. pr = projections.ProjectionSurfaceEEG(projection_data=sio.loadmat('projection_eeg_19_surface_16k.mat')['newProjectionMatrix'])
  36. rm = region_mapping.RegionMapping(array_data=numpy.array(numpy.loadtxt('regionMapping_16k_76.txt',dtype='int64')))
  37. mon_EEG = monitors.EEG(projection=pr, sensors=ss, region_mapping=rm, period=1000/sampling_rate)
  38. mon_tavg = monitors.TemporalAverage(period=100.)
  39. what_to_watch = (mon_tavg,mon_EEG)
  40. integrator = integrators.EulerDeterministic(dt=0.1)
  41. oscillator = models.Generic2dOscillator(tau = numpy.array([t[iteration_t]]))
  42. global_coupling = coupling.Linear(a=numpy.array(G[iteration_G]))
  43. def_conn.weights = numpy.divide(def_conn.weights, numpy.abs(numpy.max(def_conn.weights)))
  44. weights = numpy.mean(def_conn.weights)
  45. sim = simulator.Simulator(model=oscillator, connectivity=def_conn,coupling=global_coupling,integrator=integrator,
  46. monitors=what_to_watch,simulation_length=1000*(seconds+1),conduction_speed = weights/t[iteration_t])
  47. sim.configure()
  48. (ttavg, tavg),(tEEG,EEG) = sim.run(simulation_length=1000*(seconds+1))
  49. EEG = EEG[sampling_rate:EEG.shape[0]:,0,:,0] # Remove first second as Stefanovski 2019
  50. simulated_FC = numpy.corrcoef(EEG,rowvar=False)
  51. simulated_FC = numpy.triu(simulated_FC)
  52. tau, p_value = scipy.stats.kendalltau(original_FC, simulated_FC)
  53. result['tau'] = tau
  54. result['p_value'] = p_value
  55. fun = numpy.array([tau,p_value])
  56. return fun
  57. name = "Parameter Exploration Results/" + file.replace(".xlsx","_t_is_") + str(t[iteration_t]) + ".pkl"
  58. with open(name, 'wb') as f: # Python 3: open(..., 'wb')
  59. pickle.dump(fun, f)
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement