improvement and stability
This commit is contained in:
parent
a7ba4360b2
commit
c274dae725
13 changed files with 16 additions and 12 deletions
|
@ -5,6 +5,9 @@ Created on Tue Nov 23 11:11:41 2021
|
||||||
|
|
||||||
@author: adamr
|
@author: adamr
|
||||||
"""
|
"""
|
||||||
|
import sys, os
|
||||||
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||||
|
|
||||||
from connection import NeurOne, RDA
|
from connection import NeurOne, RDA
|
||||||
# import RDA
|
# import RDA
|
||||||
|
|
||||||
|
@ -215,7 +218,7 @@ def acquire_data(q, size, run, speed, downsample, sleep_time, ip = '192.168.200.
|
||||||
run: Value class from multiprocessing library. That value can be changed in main process
|
run: Value class from multiprocessing library. That value can be changed in main process
|
||||||
downsample: boolean value. Says if data will be downsampled to 1000 Hz
|
downsample: boolean value. Says if data will be downsampled to 1000 Hz
|
||||||
sleep_time: int, set how often function should refresh. Usually it takes a bit more that that"""
|
sleep_time: int, set how often function should refresh. Usually it takes a bit more that that"""
|
||||||
offline = 'offline'
|
# offline = 'offline'
|
||||||
#import NeurOne_v3
|
#import NeurOne_v3
|
||||||
if offline=="offline":
|
if offline=="offline":
|
||||||
NO = NeurOneOffline()
|
NO = NeurOneOffline()
|
||||||
|
@ -247,7 +250,7 @@ class AppForm(QMainWindow):
|
||||||
def __init__(self, passed_params = None, parent=None):
|
def __init__(self, passed_params = None, parent=None):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
#self.setStyleSheet("background: whitesmoke")
|
#self.setStyleSheet("background: whitesmoke")
|
||||||
self.offline = "offline" #'NeurOne' #"BrainProducts"#False
|
self.offline = None #"offline" #'NeurOne' #"BrainProducts"#False
|
||||||
self.time_start = time.time()
|
self.time_start = time.time()
|
||||||
QMainWindow.__init__(self, parent)
|
QMainWindow.__init__(self, parent)
|
||||||
self.montage_file_path = 'montage_18ch.csv'
|
self.montage_file_path = 'montage_18ch.csv'
|
||||||
|
@ -416,12 +419,13 @@ class AppForm(QMainWindow):
|
||||||
self.remove_outliers = passed_params['remove_outliers']
|
self.remove_outliers = passed_params['remove_outliers']
|
||||||
self.ip = passed_params['ip']
|
self.ip = passed_params['ip']
|
||||||
self.port = passed_params['port']
|
self.port = passed_params['port']
|
||||||
self.offline = self.offline if not None else passed_params['offline']
|
self.offline = self.offline if not self.offline==None else passed_params['offline']
|
||||||
self.exp_trig = passed_params['exp_trig']
|
self.exp_trig = passed_params['exp_trig']
|
||||||
self.exp_time = passed_params['exp_time']
|
self.exp_time = passed_params['exp_time']
|
||||||
self.if_percentage = passed_params['percentages']
|
self.if_percentage = passed_params['percentages']
|
||||||
self.received_thr_values = passed_params['thr_values']
|
self.received_thr_values = passed_params['thr_values']
|
||||||
self.plot_len = passed_params['plot_len']
|
self.plot_len = passed_params['plot_len']
|
||||||
|
print(self.offline)
|
||||||
else:
|
else:
|
||||||
self.montage_file_path = 'montage_18ch.csv'
|
self.montage_file_path = 'montage_18ch.csv'
|
||||||
self.time_between_bursts = int(settings_file[settings_file[0]=='time_between_trains'].values[0][1])
|
self.time_between_bursts = int(settings_file[settings_file[0]=='time_between_trains'].values[0][1])
|
||||||
|
@ -445,6 +449,7 @@ class AppForm(QMainWindow):
|
||||||
self.offline = False
|
self.offline = False
|
||||||
self.plot_len = 4 #length of data to plot (last seconds of data array)
|
self.plot_len = 4 #length of data to plot (last seconds of data array)
|
||||||
|
|
||||||
|
|
||||||
self.unit_label = np.array(self.unit_label)[self.used_features]
|
self.unit_label = np.array(self.unit_label)[self.used_features]
|
||||||
self.log_file_writer.writerow(['time', 'state', self.used_features])
|
self.log_file_writer.writerow(['time', 'state', self.used_features])
|
||||||
|
|
||||||
|
@ -743,7 +748,7 @@ class AppForm(QMainWindow):
|
||||||
self.timer.setInterval(int(self.speed_general*1.03))
|
self.timer.setInterval(int(self.speed_general*1.03))
|
||||||
|
|
||||||
times = time.time()
|
times = time.time()
|
||||||
self.offline='offline' #remove this!
|
# self.offline='offline' #remove this!
|
||||||
if self.offline=="offline":
|
if self.offline=="offline":
|
||||||
incl = [0,2,6,7,8,10,13,16,18,22,25,28,31,34,41,43,-3,-2,-1] # For offline only
|
incl = [0,2,6,7,8,10,13,16,18,22,25,28,31,34,41,43,-3,-2,-1] # For offline only
|
||||||
loaded_temp = self.q.get()[incl]/10 # Load data
|
loaded_temp = self.q.get()[incl]/10 # Load data
|
||||||
|
|
2
Electrode_selection.txt
Normal file
2
Electrode_selection.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
full_cap_file_path: C:/Users/Basics/Desktop/new_super_important_study/TMS Trains/Up to date version/estimo-master (1)/estimo-master/settings/easycap-M10_63_NO.txt
|
||||||
|
cap_file_path: C:/Users/Basics/Desktop/new_super_important_study/TMS Trains/Up to date version/estimo-master (1)/estimo-master/settings/easycap-M10_16_NO.txt
|
|
@ -2,12 +2,6 @@
|
||||||
EStiMo is a sophisticated software developed for the purpose of real-time monitoring during Transcranial Magnetic Stimulation (TMS) sessions. This is accomplished by conducting a real-time analysis of Electroencephalography (EEG) signals. Its operational mechanics are contingent on a suite of features that are computed online and visually represented on the display interface. The computation of these values takes place in between the trains of TMS.
|
EStiMo is a sophisticated software developed for the purpose of real-time monitoring during Transcranial Magnetic Stimulation (TMS) sessions. This is accomplished by conducting a real-time analysis of Electroencephalography (EEG) signals. Its operational mechanics are contingent on a suite of features that are computed online and visually represented on the display interface. The computation of these values takes place in between the trains of TMS.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
To install all required library use:
|
|
||||||
|
|
||||||
```
|
|
||||||
pip install -r requirements.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
EStiMo is designed to be conveniently portable and as such, does not necessitate a typical installation procedure. However, the pre-requisite for running this software smoothly is a Python 3 environment, ideally version 3.8. Alongside Python, several other libraries are necessary for full functionality, including: time, matplotlib, mne, inspect, sys, os, random, scipy, PyQt5, multiprocessing, pandas, json, cycler, traceback, and csv.
|
EStiMo is designed to be conveniently portable and as such, does not necessitate a typical installation procedure. However, the pre-requisite for running this software smoothly is a Python 3 environment, ideally version 3.8. Alongside Python, several other libraries are necessary for full functionality, including: time, matplotlib, mne, inspect, sys, os, random, scipy, PyQt5, multiprocessing, pandas, json, cycler, traceback, and csv.
|
||||||
The EStiMo package is comprised of 6 distinct Python script files namely: FirstWindow.py, Functions.py, NeurOne.py, RDA.py, and EStiMo_GUI.py. Additionally, there are certain auxiliary files that facilitate the running of the software. The 'TMS_protocol.txt' file includes the default settings for the application. The 'electrode_selection.txt' file contains the directories for files related to electrode placement. Lastly, the package also includes a csv file that possesses a square matrix, which is integral for defining the relationships between the various channels.
|
The EStiMo package is comprised of 6 distinct Python script files namely: FirstWindow.py, Functions.py, NeurOne.py, RDA.py, and EStiMo_GUI.py. Additionally, there are certain auxiliary files that facilitate the running of the software. The 'TMS_protocol.txt' file includes the default settings for the application. The 'electrode_selection.txt' file contains the directories for files related to electrode placement. Lastly, the package also includes a csv file that possesses a square matrix, which is integral for defining the relationships between the various channels.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
import sys, os
|
||||||
|
# sys.path.append("..")
|
||||||
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,2 +1,2 @@
|
||||||
full_cap_file_path: /home/adamr/Documents/PYTHON/TMS TV/EStiMo/settings/easycap-M10_63_NO.txt
|
full_cap_file_path: settings/easycap-M10_63_NO.txt
|
||||||
cap_file_path: /home/adamr/Documents/PYTHON/TMS TV/EStiMo/settings/easycap-M10_16_NO.txt
|
cap_file_path: settings/easycap-M10_16_NO.txt
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
0
utils/features.py
Executable file → Normal file
0
utils/features.py
Executable file → Normal file
Loading…
Reference in a new issue