Skip to content
Snippets Groups Projects
Commit 3e195505 authored by Toumji Abdallah's avatar Toumji Abdallah
Browse files

Added numerous tests

parent f578e283
No related branches found
No related tags found
No related merge requests found
Showing
with 19373 additions and 122 deletions
......@@ -2,6 +2,7 @@
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/BIDSHandler/tests" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.12 (pythonProject) (3)" jdkType="Python SDK" />
......
......@@ -67,12 +67,12 @@ class Form:
'The column ' + column + ' is missing.\n'
'Please add it to the table.')
return False
if 'emplacement' in self.form[1][column] and column in self.table.model.df.columns:
if self.table.model.df.columns.get_loc(column) + 1 != self.form[1][column]['emplacement']:
if 'position' in self.form[1][column] and column in self.table.model.df.columns:
if self.table.model.df.columns.get_loc(column) + 1 != self.form[1][column]['position']:
self.validation_label.config(image=self.invalid_icon)
mb.showinfo('Invalid emplacement',
'The column ' + column + ' is not at the right emplacement.\n'
'The column should be at the emplacement ' + str(self.form[1][column]['emplacement']))
mb.showinfo('Invalid position',
'The column ' + column + ' is not at the right position.\n'
'The column should be at the emplacement ' + str(self.form[1][column]['position']))
return False
if column in self.table.model.df.columns and 'valid condition' in self.form[1][column]:
for i, cell in enumerate(self.table.model.df[column]):
......
......@@ -131,7 +131,7 @@
"age" : {
"requirement level": "recommended",
"description": "Age of the participant at time of testing",
"valid condition": "len(str(value)) > 0 ; float(value) > 0 ; float(value) < 120",
"valid condition": "len(str(value)) > 0 ; float(value) > 0 ; float(value) < 120"
},
"handedness" : {
"requirement level": "recommended",
......
......@@ -364,25 +364,25 @@
"requirement level": "required",
"description": "Name of the electrode contact point. Values in name MUST be unique. This column must appear first in the file.",
"valid condition": "len(str(value)) > 0",
"emplacement": 1
"position": 1
},
"x": {
"requirement level": "required",
"description": "Recorded position along the x-axis. This column must appear second in the file.",
"valid condition": "float(value)>=0",
"emplacement": 2
"position": 2
},
"y": {
"requirement level": "required",
"description": "Recorded position along the y-axis. This column must appear third in the file.",
"valid condition": "float(value)>=0",
"emplacement": 3
"position": 3
},
"z": {
"requirement level": "required",
"description": "Recorded position along the z-axis. This column must appear fourth in the file.",
"valid condition": "value == 'n/a' or float(value)>=0",
"emplacement": 4
"position": 4
},
"type": {
"requirement level": "recommended",
......
......@@ -23,7 +23,7 @@ def get_entities(experiments_files, project_directory):
:param: list
A list of the experiments files paths.
:return: dict
A dict containing the entities of the experiments in the form {subject : {session : {entity : entity_value}, ...}, ...}.
A dict containing the entities of the experiments in the form {subject : {session : [filepath, ...]}, ...}.
Where the third level is the file, the second level is the session and the first level is the subject.
"""
entities = {}
......@@ -65,42 +65,6 @@ def get_entities_single_file(file):
return file_entities
def get_dict_from_path(path, list_files=None, path_info=False):
if list_files is None:
list_files = []
if os.path.isdir(path):
d = {}
for name in os.listdir(path):
d[name] = get_dict_from_path(os.path.join(path, name), list_files)
else:
if path_info:
d = path.replace('\\', '/')
elif path.replace('\\', '/') in list_files:
d = 1
else:
d = 0
return d
def get_experiment_files_from_directory(path):
""" Get the list of files in the directory
This function is a recursive function that is used to get the list of files in the directory and its subdirectories.
:param path: str
The path of the directory
:return: list
The list of files in the directory
"""
files = []
for p in os.listdir(path):
abspath = os.path.join(path, p)
if os.path.isdir(abspath):
files.extend(get_experiment_files_from_directory(abspath))
else:
if not search('.json', p) and not search('.tsv', p):
files.append(abspath.replace('\\', '/'))
def get_metadata_files_from_directory(path, suffix, extension):
""" Get the list of metadata files in the directory
......@@ -139,7 +103,7 @@ def clean_frame(frame):
widget.destroy()
def contain_entities(entities, file):
def contain_entities(metadata, file):
""" Check if the metadata entities are all comprised in the file
This function is used to check if the metadata entities are all comprised in the file
......@@ -147,7 +111,7 @@ def contain_entities(entities, file):
It returns False if the entities are not the same in the file and the metadata
It returns True otherwise
:param entities: dict
:param metadata: dict
The metadata entities
:param file: str
The path of the file
......@@ -157,6 +121,7 @@ def contain_entities(entities, file):
if len(file.split('/')) > 1:
file = file.split('/')[-1]
entities = get_entities_single_file(metadata)
file_entities = get_entities_single_file(file)
for entity in entities:
if entity not in file_entities:
......@@ -246,7 +211,7 @@ def search_inheritance(path, directory, suffix, extension='.tsv'):
valid_files = []
# Keep only the files which entities are all comprised in the file entities
for meta in meta_list:
if contain_entities(get_entities_single_file(meta), path):
if contain_entities(meta, path):
valid_files.append(meta)
valid_files = order_files(valid_files, path)
return valid_files
......
......@@ -10,62 +10,9 @@ class MyTestCase(unittest.TestCase):
self.app = Application.Application(root=tk.Tk())
self.app.project_directory = 'test'
def test_get_entities(self):
# Test the get_entities method of the Application class.
files = ['test/sub-01/ses-01/sub-01_ses-01_task-rest_run-01_eeg.edf',
'test/sub-01/ses-01/sub-01_ses-01_task-rest_run-02_eeg.edf',
'test/sub-01/ses-02/sub-01_ses-02_task-rest_run-01_eeg.edf',
'test/sub-01/ses-02/sub-01_ses-02_task-work_run-01_eeg.edf',
'test/sub-02/ses-01/sub-02_ses-01_task-rest_run-01_eeg.edf',
'test/sub-02/ses-01/sub-02_ses-01_task-rest_run-02_eeg.edf',
'test/sub-02/ses-02/sub-02_ses-02_task-rest_run-01_eeg.edf',
'test/sub-02/ses-02/sub-02_ses-02_task-work_run-01_eeg.edf']
entities = self.app.get_entities(files)
self.assertEqual({'sub-01': {'ses-01': ['test/sub-01/ses-01/sub-01_ses-01_task-rest_run-01_eeg.edf',
'test/sub-01/ses-01/sub-01_ses-01_task-rest_run-02_eeg.edf'],
'ses-02': ['test/sub-01/ses-02/sub-01_ses-02_task-rest_run-01_eeg.edf',
'test/sub-01/ses-02/sub-01_ses-02_task-work_run-01_eeg.edf']},
'sub-02': {'ses-01': ['test/sub-02/ses-01/sub-02_ses-01_task-rest_run-01_eeg.edf',
'test/sub-02/ses-01/sub-02_ses-01_task-rest_run-02_eeg.edf'],
'ses-02': ['test/sub-02/ses-02/sub-02_ses-02_task-rest_run-01_eeg.edf',
'test/sub-02/ses-02/sub-02_ses-02_task-work_run-01_eeg.edf']}},
entities)
def test_find_shared_entities(self):
# Test the get_entities method of the Application class.
files = ['test/sub-01/ses-01/sub-01_ses-01_task-rest_run-01_eeg.edf',
'test/sub-01/ses-01/sub-01_ses-01_task-rest_run-02_eeg.edf',
'test/sub-01/ses-02/sub-01_ses-02_task-rest_run-01_eeg.edf',
'test/sub-01/ses-02/sub-01_ses-02_task-work_run-01_eeg.edf',
'test/sub-02/ses-01/sub-02_ses-01_task-rest_run-01_eeg.edf',
'test/sub-02/ses-01/sub-02_ses-01_task-rest_run-02_eeg.edf',
'test/sub-02/ses-02/sub-02_ses-02_task-rest_run-01_eeg.edf',
'test/sub-02/ses-02/sub-02_ses-02_task-work_run-01_eeg.edf']
entities = self.app.get_entities(files)
files_entities = []
for sub in entities.keys():
for ses in entities[sub].keys():
files_entities.extend(entities[sub][ses])
shared_entities = Tools.find_shared_entities(files_entities)
self.assertEqual('', shared_entities)
sub_files = ['test/sub-01/ses-01/sub-01_ses-01_task-rest_run-01_eeg.edf',
'test/sub-01/ses-01/sub-01_ses-01_task-rest_run-02_eeg.edf',
'test/sub-01/ses-02/sub-01_ses-02_task-rest_run-01_eeg.edf']
entities = self.app.get_entities(sub_files)
files_entities = []
for sub in entities.keys():
for ses in entities[sub].keys():
files_entities.extend(entities[sub][ses])
shared_entities = Tools.find_shared_entities(files_entities)
self.assertEqual('sub-01_task-rest_', shared_entities)
......
import unittest
from BIDSHandler.CreationTool.EntryManager import create_entry_from_json, text_to_condition
import tkinter as tk
from PIL import Image, ImageTk
import os
class EntryManagerTestCase(unittest.TestCase):
def setUp(self):
self.root = tk.Toplevel()
self.frame = tk.Frame(self.root)
self.frame.pack()
self.form = ("dataset_description.json", {
"Name": {
"requirement level": "required",
"multiple": False,
"description": "Name of the dataset",
"valid condition": "len(str(value)) > 0"
}
}
)
with Image.open(os.path.join(os.path.dirname(__file__), '../CreationTool/res/help_icon.png')) as img_help:
img_help = img_help.resize((20, 20))
self.help_icon = ImageTk.PhotoImage(img_help)
self.entries = create_entry_from_json(self.form, self.frame, self.help_icon)
def test_create_entry_from_json(self):
self.assertEqual(len(self.entries), 1)
self.assertEqual('Name', self.entries[0].get_name())
self.assertEqual('', self.entries[0].get_text())
def test_text_to_condition(self):
self.assertTrue(text_to_condition('value > 0', 1))
self.assertFalse(text_to_condition('value > 0', -1))
def test_check_valid(self):
self.assertFalse(self.entries[0].check_valid())
self.entries[0].set_text('test')
self.assertTrue(self.entries[0].check_valid())
self.entries[0].set_text('')
self.assertFalse(self.entries[0].check_valid())
if __name__ == '__main__':
unittest.main()
import os
import unittest
import BIDSHandler.Tools as Tools
# To Do : replace os.path.join(os.path.dirname(__file__), 'res/directory') by self.project_directory
class MyTestCase(unittest.TestCase):
def test_verify_inheritance(self):
project_directory = 'D:/Fichiers_Abdallah/res/test_creation/bozo'
metadata_file = 'D:/Fichiers_Abdallah/res/test_creation/bozo/ses-1_task-travail_channels.tsv'
desired_impacted_files = ['D:/Fichiers_Abdallah/res/test_creation/bozo/sub-03/ses-1/eeg/sub-03_ses-1_task-travail_run-02_eeg.edf']
self.assertTrue(Tools.verify_inheritance(metadata_file, project_directory, project_directory, desired_impacted_files, 'eeg'))
def setUp(self):
self.project_directory = os.path.join(os.path.dirname(__file__), 'res', 'directory').replace('\\', '/')
def test_get_entities(self):
result = {'sub-01': {'ses-2': [
os.path.join(os.path.dirname(__file__), 'res/directory/sub-01/ses-2/eeg/sub-01_ses-2_task-travail_run-01_eeg.edf').replace('\\', '/')]}}
experiment_file = [os.path.join(self.project_directory, 'sub-01', 'ses-2', 'eeg',
'sub-01_ses-2_task-travail_run-01_eeg.edf').replace('\\', '/')]
self.assertEqual(result, Tools.get_entities(experiment_file, self.project_directory))
result = {'sub-01': {'ses-2': [
os.path.join(os.path.dirname(__file__), 'res/directory/sub-01/ses-2/eeg/sub-01_ses-2_task-travail_run-01_eeg.edf').replace('\\', '/')],},
'sub-02': {'ses-1': [
os.path.join(os.path.dirname(__file__), 'res/directory/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf').replace('\\', '/')]}}
experiment_file.append(os.path.join(self.project_directory, 'sub-02', 'ses-1', 'eeg',
'sub-02_ses-1_task-travail_run-01_eeg.edf').replace('\\', '/'))
self.assertEqual(result, Tools.get_entities(experiment_file, self.project_directory))
def test_get_entities_single_file(self):
result = {'sub': '01', 'ses': '2', 'task': 'travail', 'run': '01'}
experiment_file = [
os.path.join(self.project_directory, 'sub-01_ses-2_task-travail_run-01_eeg.edf').replace('\\', '/')]
self.assertEqual(result, Tools.get_entities_single_file(experiment_file[0]))
result = {'sub': '02', 'ses': '1', 'task': 'travail', 'run': '01'}
experiment_file = [
os.path.join(self.project_directory, 'sub-02_ses-1_task-travail_run-01_eeg.edf').replace('\\', '/')]
self.assertEqual(result, Tools.get_entities_single_file(experiment_file[0]))
def test_get_metadata_files_from_directory(self):
result = [
os.path.join(os.path.dirname(__file__), 'res/directory/ses-1_task-travail_channels.tsv').replace('\\', '/'),
os.path.join(os.path.dirname(__file__), 'res/directory/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_channels.tsv').replace('\\', '/')]
self.assertEqual(result, Tools.get_metadata_files_from_directory(
os.path.join(os.path.dirname(__file__), 'res/directory/').replace('\\', '/'), 'channels', '.tsv'))
result = [result[1]]
self.assertEqual(result, Tools.get_metadata_files_from_directory(
os.path.join(os.path.dirname(__file__), 'res/directory/sub-02').replace('\\', '/'), 'channels', '.tsv'))
def test_contain_entities(self):
metadata = 'sub-01_ses-2_task-travail_run-01_channels.tsv'
file = 'sub-01_ses-2_task-travail_run-01_eeg.edf'
self.assertTrue(Tools.contain_entities(metadata, file))
file = 'sub-01_ses-2_task-travail_run-02_eeg.edf'
self.assertFalse(Tools.contain_entities(metadata, file))
metadata = 'sub-01_ses-2_task-travail_channels.tsv'
self.assertTrue(Tools.contain_entities(metadata, file))
file = 'sub-01_task-travail_run-02_eeg.edf'
self.assertFalse(Tools.contain_entities(metadata, file))
def test_order_files(self):
files = [self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_channels.tsv',
self.project_directory + '/ses-1_task-travail_channels.tsv']
result = files
self.assertEqual(result, Tools.order_files(files, self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf'))
files = [files[1], files[0]]
self.assertEqual(result, Tools.order_files(files, self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf'))
def test_search_inheritance(self):
metadata_file = [self.project_directory + '/ses-1_task-travail_channels.tsv']
file = self.project_directory + '/sub-03/ses-1/eeg/sub-03_ses-1_task-travail_run-02_eeg.edf'
self.assertEqual(metadata_file, Tools.search_inheritance(file, self.project_directory, 'channels'))
metadata_file = [self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_channels.tsv',
self.project_directory + '/ses-1_task-travail_channels.tsv']
file = self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf'
self.assertEqual(metadata_file, Tools.search_inheritance(file, self.project_directory, 'channels'))
metadata_file = [self.project_directory + '/sub-01/ses-2/eeg/sub-01_ses-2_task-bonjour_run-01_events.tsv']
file = self.project_directory + '/sub-01/ses-2/eeg/sub-01_ses-2_task-bonjour_run-01_eeg.edf'
self.assertEqual(metadata_file, Tools.search_inheritance(file, self.project_directory, 'events'))
def test_get_type_from_extension(self):
self.assertEqual('eeg', Tools.get_type_from_extension('edf'))
def test_get_metadata_info_from_type(self):
dict = {'channels.json': ['task'],
......@@ -30,8 +109,32 @@ class MyTestCase(unittest.TestCase):
'electrodes.tsv', 'electrodes.json', 'physio.json', 'physio.tsv.gz', 'stim.json', 'stim.tsv.gz']
self.assertEqual(list, Tools.get_possible_metadata_files('eeg'))
def test_get_type_from_extension(self):
self.assertEqual('eeg', Tools.get_type_from_extension('edf'))
def test_get_possible_types(self):
list = ['eeg']
self.assertEqual(list, Tools.get_possible_types())
def test_verify_inheritance(self):
metadata_file = self.project_directory + '/ses-1_task-travail_channels.tsv'
desired_impacted_files = [
self.project_directory + '/sub-03/ses-1/eeg/sub-03_ses-1_task-travail_run-02_eeg.edf']
self.assertTrue(
Tools.verify_inheritance(metadata_file, self.project_directory, self.project_directory, desired_impacted_files,
'eeg'))
def test_find_shared_entities(self):
files = [self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf',
self.project_directory + '/sub-01/ses-2/eeg/sub-01_ses-2_task-travail_run-01_eeg.edf']
self.assertEqual('task-travail_run-01_',
Tools.find_shared_entities(files))
files = [self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf',
self.project_directory + '/sub-01/ses-2/eeg/sub-01_ses-2_task-bonjour_run-02_eeg.edf']
self.assertEqual('', Tools.find_shared_entities(files))
if __name__ == '__main__':
......
{"Name": "bonjour", "BIDSVersion": "1.0", "HEDVersion": ["1.0","5.4.2"]}
\ No newline at end of file
{"participant_id": {"test": "id du participant comme sub-??"}, "age": "age du participant", "handedness": "r pour droite et l pour gauche"}
\ No newline at end of file
participant_id age handedness
sub-01 18 r
sub-02 18 l
sub-03 25 l
name type units low_cutoff high_cutoff description sampling_frequency status status_description
FPz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
Fz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
F1 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
F2 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
FCz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
FC1 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
FC2 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
Cz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
C1 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
C2 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
CPz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
CP1 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
CP2 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
Pz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
Aux1 GSR S 0.0 256.0 Galvanic skin response (electrodermal activity, EDA) 512.0 good n/a
File added
onset duration trial_type value sample
76.59375 608.976562 Experiment Start 7 39216
77.6015625 1.0 Test Trial 14 39732
78.6015625 0.0 Fade in 9 40244
94.6015625 39.835938 Trial Stop 16 48436
134.4375 0.07031200000000126 No Vection 12 68832
134.5078125 49.179688 Forward First Start 10 68868
135.5078125 0.0 Fade in 9 69380
136.5078125 15.0 Trial Start 15 69892
139.5078125 2.0 Acceleration 0 1 71428
141.5078125 5.0 VC0 17 72452
146.5078125 1.0 Acceleration 1 2 75012
147.5078125 2.0 VC1 18 75524
149.5078125 1.0 Deceleration 2 6 76548
150.5078125 1.0 VC2 19 77060
151.5078125 32.179688 Trial Stop 16 77572
183.6875 0.07031200000000126 Strong Vection 13 94048
183.7578125 45.398438 Backward First Start 4 94084
184.7578125 0.0 Fade in 9 94596
185.7578125 15.0 Trial Start 15 95108
188.7578125 2.0 Acceleration 0 1 96644
190.7578125 5.0 VC0 17 97668
195.7578125 1.0 Deceleration 1 5 100228
196.7578125 2.0 VC1 18 100740
198.7578125 1.0 Acceleration 2 3 101764
199.7578125 1.0 VC2 19 102276
200.7578125 28.398438 Trial Stop 16 102788
229.15625 0.07031200000000126 Moderate Vection 11 117328
229.2265625 23.835938 Backward First Start 4 117364
230.2265625 0.0 Fade in 9 117876
231.2265625 15.0 Trial Start 15 118388
234.2265625 2.0 Acceleration 0 1 119924
236.2265625 3.0 VC0 17 120948
239.2265625 1.0 Deceleration 1 5 122484
240.2265625 2.0 VC1 18 122996
242.2265625 1.0 Acceleration 2 3 124020
243.2265625 3.0 VC2 19 124532
246.2265625 6.835937999999999 Trial Stop 16 126068
253.0625 0.07031200000000126 Moderate Vection 11 129568
253.1328125 23.367188 Backward First Start 4 129604
254.1328125 0.0 Fade in 9 130116
255.1328125 15.0 Trial Start 15 130628
258.1328125 2.0 Acceleration 0 1 132164
260.1328125 1.0 VC0 17 133188
261.1328125 1.0 Deceleration 1 5 133700
262.1328125 2.0 VC1 18 134212
264.1328125 1.0 Acceleration 2 3 135236
265.1328125 5.0 VC2 19 135748
270.1328125 6.367187999999999 Trial Stop 16 138308
276.5 0.10156200000000126 Strong Vection 13 141568
276.6015625 21.835938 Forward First Start 10 141620
277.6015625 0.0 Fade in 9 142132
278.6015625 15.0 Trial Start 15 142644
281.6015625 2.0 Acceleration 0 1 144180
283.6015625 3.0 VC0 17 145204
286.6015625 1.0 Acceleration 1 2 146740
287.6015625 2.0 VC1 18 147252
289.6015625 1.0 Deceleration 2 6 148276
290.6015625 3.0 VC2 19 148788
293.6015625 4.835937999999999 Trial Stop 16 150324
298.4375 0.13281200000000126 Strong Vection 13 152800
298.5703125 22.835938 Backward First Start 4 152868
299.5703125 0.0 Fade in 9 153380
300.5703125 15.0 Trial Start 15 153892
303.5703125 2.0 Acceleration 0 1 155428
305.5703125 1.0 VC0 17 156452
306.5703125 1.0 Deceleration 1 5 156964
307.5703125 2.0 VC1 18 157476
309.5703125 1.0 Acceleration 2 3 158500
310.5703125 5.0 VC2 19 159012
315.5703125 5.835937999999999 Trial Stop 16 161572
321.40625 0.07031200000000126 Strong Vection 13 164560
321.4765625 46.054688 Forward First Start 10 164596
322.4765625 0.0 Fade in 9 165108
323.4765625 15.0 Trial Start 15 165620
326.4765625 2.0 Acceleration 0 1 167156
328.4765625 3.0 VC0 17 168180
331.4765625 1.0 Acceleration 1 2 169716
332.4765625 2.0 VC1 18 170228
334.4765625 1.0 Deceleration 2 6 171252
335.4765625 3.0 VC2 19 171764
338.4765625 29.054688 Trial Stop 16 173300
367.53125 0.07031200000000126 Strong Vection 13 188176
367.6015625 41.804688 Forward First Start 10 188212
368.6015625 0.0 Fade in 9 188724
369.6015625 15.0 Trial Start 15 189236
372.6015625 2.0 Acceleration 0 1 190772
374.6015625 5.0 VC0 17 191796
379.6015625 1.0 Acceleration 1 2 194356
380.6015625 2.0 VC1 18 194868
382.6015625 1.0 Deceleration 2 6 195892
383.6015625 1.0 VC2 19 196404
384.6015625 24.804688 Trial Stop 16 196916
409.40625 0.07031200000000126 Strong Vection 13 209616
409.4765625 26.273438 Backward First Start 4 209652
410.4765625 0.0 Fade in 9 210164
411.4765625 15.0 Trial Start 15 210676
414.4765625 2.0 Acceleration 0 1 212212
416.4765625 3.0 VC0 17 213236
419.4765625 1.0 Deceleration 1 5 214772
420.4765625 2.0 VC1 18 215284
422.4765625 1.0 Acceleration 2 3 216308
423.4765625 3.0 VC2 19 216820
426.4765625 9.273437999999999 Trial Stop 16 218356
435.75 0.07031200000000126 Moderate Vection 11 223104
435.8203125 21.617188 Forward First Start 10 223140
436.8203125 0.0 Fade in 9 223652
437.8203125 15.0 Trial Start 15 224164
440.8203125 2.0 Acceleration 0 1 225700
442.8203125 5.0 VC0 17 226724
447.8203125 1.0 Acceleration 1 2 229284
448.8203125 2.0 VC1 18 229796
450.8203125 1.0 Deceleration 2 6 230820
451.8203125 1.0 VC2 19 231332
452.8203125 4.617187999999999 Trial Stop 16 231844
457.4375 0.03906200000000126 Strong Vection 13 234208
457.4765625 23.023438 Backward First Start 4 234228
458.4765625 0.0 Fade in 9 234740
459.4765625 15.0 Trial Start 15 235252
462.4765625 2.0 Acceleration 0 1 236788
464.4765625 3.0 VC0 17 237812
467.4765625 1.0 Deceleration 1 5 239348
468.4765625 2.0 VC1 18 239860
470.4765625 1.0 Acceleration 2 3 240884
471.4765625 3.0 VC2 19 241396
474.4765625 6.023437999999999 Trial Stop 16 242932
480.5 0.10156200000000126 Weak Vection 20 246016
480.6015625 22.273438 Backward First Start 4 246068
481.6015625 0.0 Fade in 9 246580
482.6015625 15.0 Trial Start 15 247092
485.6015625 2.0 Acceleration 0 1 248628
487.6015625 5.0 VC0 17 249652
492.6015625 1.0 Deceleration 1 5 252212
493.6015625 2.0 VC1 18 252724
495.6015625 1.0 Acceleration 2 3 253748
496.6015625 1.0 VC2 19 254260
497.6015625 5.273437999999999 Trial Stop 16 254772
502.875 0.10156200000000126 Moderate Vection 11 257472
502.9765625 21.242188 Forward First Start 10 257524
503.9765625 0.0 Fade in 9 258036
504.9765625 14.999999999999943 Trial Start 15 258548
507.9765625 2.0 Acceleration 0 1 260084
509.9765625 1.0 VC0 17 261108
510.9765625 1.0 Acceleration 1 2 261620
511.9765625 1.9999999999999432 VC1 18 262132
513.9765625 1.0 Deceleration 2 6 263156
514.9765625 5.0 VC2 19 263668
519.9765625 4.242188000000056 Trial Stop 16 266228
524.21875 0.10156199999994442 Strong Vection 13 268400
524.3203125 25.054688000000056 Forward First Start 10 268452
525.3203125 0.0 Fade in 9 268964
526.3203125 15.0 Trial Start 15 269476
529.3203125 2.0 Acceleration 0 1 271012
531.3203125 1.0 VC0 17 272036
532.3203125 1.0 Acceleration 1 2 272548
533.3203125 2.0 VC1 18 273060
535.3203125 1.0 Deceleration 2 6 274084
536.3203125 5.0 VC2 19 274596
541.3203125 8.054688000000056 Trial Stop 16 277156
549.375 0.10156199999994442 Moderate Vection 11 281280
549.4765625 23.554688000000056 Forward First Start 10 281332
550.4765625 0.0 Fade in 9 281844
551.4765625 15.0 Trial Start 15 282356
554.4765625 2.0 Acceleration 0 1 283892
556.4765625 3.0 VC0 17 284916
559.4765625 1.0 Acceleration 1 2 286452
560.4765625 2.0 VC1 18 286964
562.4765625 1.0 Deceleration 2 6 287988
563.4765625 3.0 VC2 19 288500
566.4765625 6.554688000000056 Trial Stop 16 290036
573.03125 0.07031199999994442 Strong Vection 13 293392
573.1015625 20.835938000000056 Forward First Start 10 293428
574.1015625 0.0 Fade in 9 293940
575.1015625 15.0 Trial Start 15 294452
578.1015625 2.0 Acceleration 0 1 295988
580.1015625 1.0 VC0 17 297012
581.1015625 1.0 Acceleration 1 2 297524
582.1015625 2.0 VC1 18 298036
584.1015625 1.0 Deceleration 2 6 299060
585.1015625 5.0 VC2 19 299572
590.1015625 3.8359380000000556 Trial Stop 16 302132
593.9375 0.10156199999994442 Strong Vection 13 304096
594.0390625 22.492188000000056 Backward First Start 4 304148
595.0390625 0.0 Fade in 9 304660
596.0390625 15.0 Trial Start 15 305172
599.0390625 2.0 Acceleration 0 1 306708
601.0390625 1.0 VC0 17 307732
602.0390625 1.0 Deceleration 1 5 308244
603.0390625 2.0 VC1 18 308756
605.0390625 1.0 Acceleration 2 3 309780
606.0390625 5.0 VC2 19 310292
611.0390625 5.492188000000056 Trial Stop 16 312852
616.53125 0.10156199999994442 Moderate Vection 11 315664
616.6328125 22.898438000000056 Backward First Start 4 315716
617.6328125 0.0 Fade in 9 316228
618.6328125 15.0 Trial Start 15 316740
621.6328125 2.0 Acceleration 0 1 318276
623.6328125 5.0 VC0 17 319300
628.6328125 1.0 Deceleration 1 5 321860
629.6328125 2.0 VC1 18 322372
631.6328125 1.0 Acceleration 2 3 323396
632.6328125 1.0 VC2 19 323908
633.6328125 5.898438000000056 Trial Stop 16 324420
639.53125 0.10156199999994442 Moderate Vection 11 327440
639.6328125 21.742188000000056 Forward First Start 10 327492
640.6328125 0.0 Fade in 9 328004
641.6328125 15.0 Trial Start 15 328516
644.6328125 2.0 Acceleration 0 1 330052
646.6328125 3.0 VC0 17 331076
649.6328125 1.0 Acceleration 1 2 332612
650.6328125 2.0 VC1 18 333124
652.6328125 1.0 Deceleration 2 6 334148
653.6328125 3.0 VC2 19 334660
656.6328125 4.742188000000056 Trial Stop 16 336196
661.375 0.07031199999994442 Strong Vection 13 338624
661.4453125 24.023438000000056 Forward First Start 10 338660
662.4453125 0.0 Fade in 9 339172
663.4453125 15.0 Trial Start 15 339684
666.4453125 2.0 Acceleration 0 1 341220
668.4453125 5.0 VC0 17 342244
673.4453125 1.0 Acceleration 1 2 344804
674.4453125 2.0 VC1 18 345316
676.4453125 1.0 Deceleration 2 6 346340
677.4453125 1.0 VC2 19 346852
678.4453125 7.023438000000056 Trial Stop 16 347364
685.46875 0.10156199999994442 Strong Vection 13 350960
685.5703125 0.0 Experiment Stop 8 351012
name type units low_cutoff high_cutoff description sampling_frequency status status_description
FPz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
Fz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
F1 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
F2 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
FCz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
FC1 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
FC2 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
Cz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
C1 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
C2 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
CPz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
CP1 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
CP2 EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
Pz EEG V 0.0 256.0 ElectroEncephaloGram 512.0 good n/a
Aux1 GSR S 0.0 256.0 Galvanic skin response (electrodermal activity, EDA) 512.0 good n/a
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment