From 619e49bf497124b77a549989aeacab8a2defed3d Mon Sep 17 00:00:00 2001 From: Stefan Appelhoff Date: Fri, 21 Jun 2019 13:13:48 +0200 Subject: [PATCH 1/7] gitignore yarn error log --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9cd1965ec..00f09db3a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +yarn-error.log node_modules/ .DS_Store bids-validator/tests/data/bids-examples-* @@ -16,4 +17,4 @@ bids-validator-web/.next/ # Only use global yarn.lock bids-validator/yarn.lock -bids-validator-web/yarn.lock \ No newline at end of file +bids-validator-web/yarn.lock From dadf1b0d1f9582629a8bd04e9951f501066ac636 Mon Sep 17 00:00:00 2001 From: Stefan Appelhoff Date: Fri, 21 Jun 2019 13:14:10 +0200 Subject: [PATCH 2/7] add hed validator to yarn lock --- yarn.lock | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/yarn.lock b/yarn.lock index 563e664ea..eeec1e657 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3697,6 +3697,11 @@ hasha@^3.0.0: dependencies: is-stream "^1.0.1" +hed-validator@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/hed-validator/-/hed-validator-0.3.0.tgz#53e80420c3e24209e5fbcd45156b29be429b6a99" + integrity sha512-yQLR+S2HPtb9dMQQISBamdcYa+0ShJl2vf/0D5xDqjFM6QrAmtXZYBsBwnPRy1HR0RCiBubRoBUG92veqRl54w== + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" From 561fb2c434fcd21863fc8e8558a43f8d044d556b Mon Sep 17 00:00:00 2001 From: Stefan Appelhoff Date: Fri, 21 Jun 2019 13:53:53 +0200 Subject: [PATCH 3/7] allow KIT markers for MEG regexp --- .../rules/file_level_rules.json | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/bids-validator/bids_validator/rules/file_level_rules.json b/bids-validator/bids_validator/rules/file_level_rules.json index 6545c12fe..9b8604c76 100644 --- a/bids-validator/bids_validator/rules/file_level_rules.json +++ b/bids-validator/bids_validator/rules/file_level_rules.json @@ -85,24 +85,6 @@ } }, - "eeg": { - "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?eeg\\/\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(_eeg\\.(@@@_eeg_type_@@@)|(@@@_eeg_ext_@@@))$", - "tokens": { - "@@@_eeg_type_@@@": ["vhdr", "vmrk", "eeg", "edf", "bdf", "set", "fdt"], - "@@@_eeg_ext_@@@": [ - "_events\\.json", - "_events\\.tsv", - "_electrodes\\.json", - "_electrodes\\.tsv", - "_channels\\.json", - "_channels\\.tsv", - "_eeg\\.json", - "_coordsystem\\.json", - "_photo\\.jpg" - ] - } - }, - "field_map": { "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?fmap\\/\\1(_\\2)?(?:_acq-[a-zA-Z0-9]+)?(?:_rec-[a-zA-Z0-9]+)?(?:_dir-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?_(?:@@@_field_map_type_@@@)\\.(@@@_field_map_ext_@@@)$", "tokens": { @@ -170,6 +152,24 @@ } }, + "eeg": { + "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?eeg\\/\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(_eeg\\.(@@@_eeg_type_@@@)|(@@@_eeg_ext_@@@))$", + "tokens": { + "@@@_eeg_type_@@@": ["vhdr", "vmrk", "eeg", "edf", "bdf", "set", "fdt"], + "@@@_eeg_ext_@@@": [ + "_events\\.json", + "_events\\.tsv", + "_electrodes\\.json", + "_electrodes\\.tsv", + "_channels\\.json", + "_channels\\.tsv", + "_eeg\\.json", + "_coordsystem\\.json", + "_photo\\.jpg" + ] + } + }, + "ieeg": { "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?ieeg\\/\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(?:_space-[a-zA-Z0-9]+)?(_ieeg\\.(@@@_ieeg_type_@@@)|(@@@_ieeg_ext_@@@))$", "tokens": { @@ -200,7 +200,7 @@ "meg": { "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?meg\\/\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(_meg(@@@_meg_type_@@@\\/.*|\\/.*)|(@@@_meg_ext_@@@))$", "tokens": { - "@@@_meg_type_@@@": ["\\.fif", "\\.ds"], + "@@@_meg_type_@@@": ["\\.fif", "\\.(?:sqd|con)", "\\.ds"], "@@@_meg_ext_@@@": [ "_events\\.json", "_events\\.tsv", @@ -209,7 +209,8 @@ "_meg\\.json", "_coordsystem\\.json", "_photo\\.jpg", - "_headshape\\.pos" + "_headshape\\.pos", + "_markers\\.(?:con|sqd)" ] } }, From 801491f0b1d2def10e3567c9d3541b817b6a2e82 Mon Sep 17 00:00:00 2001 From: Stefan Appelhoff Date: Fri, 21 Jun 2019 17:21:41 +0200 Subject: [PATCH 4/7] add tests --- bids-validator/bids_validator/rules/file_level_rules.json | 4 ++-- bids-validator/tests/type.spec.js | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bids-validator/bids_validator/rules/file_level_rules.json b/bids-validator/bids_validator/rules/file_level_rules.json index 9b8604c76..ccc50fc10 100644 --- a/bids-validator/bids_validator/rules/file_level_rules.json +++ b/bids-validator/bids_validator/rules/file_level_rules.json @@ -200,7 +200,7 @@ "meg": { "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?meg\\/\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(_meg(@@@_meg_type_@@@\\/.*|\\/.*)|(@@@_meg_ext_@@@))$", "tokens": { - "@@@_meg_type_@@@": ["\\.fif", "\\.(?:sqd|con)", "\\.ds"], + "@@@_meg_type_@@@": ["\\.fif", "\\.(?:con|sqd)", "\\.ds"], "@@@_meg_ext_@@@": [ "_events\\.json", "_events\\.tsv", @@ -210,7 +210,7 @@ "_coordsystem\\.json", "_photo\\.jpg", "_headshape\\.pos", - "_markers\\.(?:con|sqd)" + "_markers\\.(?:mrk|sqd)" ] } }, diff --git a/bids-validator/tests/type.spec.js b/bids-validator/tests/type.spec.js index 5ad455e2e..020ed7d2c 100644 --- a/bids-validator/tests/type.spec.js +++ b/bids-validator/tests/type.spec.js @@ -176,6 +176,10 @@ describe('utils.type.file.isMEG', function() { '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.raw.mhd', '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/xyz', // for e.g., BTi files '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_markers.sqd', + '/sub-01/ses-001/meg/sub-01_ses-001_markers.sqd', // KIT with removed father level directory + '/sub-01/ses-001/meg/sub-01_ses-001_markers.mrk', // KIT with removed father level directory + '/sub-01/ses-001/meg/sub-01_ses-001_meg.sqd', // KIT with removed father level directory + '/sub-01/ses-001/meg/sub-01_ses-001_meg.con', // KIT with removed father level directory '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.json', '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_part-01_meg.fif', '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_channels.tsv', From 5b6e9f4316cae5d4609d54d286fcf1f84e8ebf91 Mon Sep 17 00:00:00 2001 From: Stefan Appelhoff Date: Mon, 24 Jun 2019 19:08:09 +0200 Subject: [PATCH 5/7] add big test suite --- .../rules/file_level_rules.json | 4 +- bids-validator/tests/type.spec.js | 55 +++++++++++++++---- 2 files changed, 46 insertions(+), 13 deletions(-) diff --git a/bids-validator/bids_validator/rules/file_level_rules.json b/bids-validator/bids_validator/rules/file_level_rules.json index ccc50fc10..9426a01fd 100644 --- a/bids-validator/bids_validator/rules/file_level_rules.json +++ b/bids-validator/bids_validator/rules/file_level_rules.json @@ -198,9 +198,9 @@ }, "meg": { - "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?meg\\/\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(_meg(@@@_meg_type_@@@\\/.*|\\/.*)|(@@@_meg_ext_@@@))$", + "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?meg\\/\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(_meg(@@@_meg_type_@@@\\/(.(?!\\.(sqd|con|fif|raw|raw\\.mhd|trg|kdf|chn)$))*|\\/(.(?!\\.(sqd|con|fif|raw|raw\\.mhd|trg|kdf|chn)$))*)|(@@@_meg_ext_@@@))$", "tokens": { - "@@@_meg_type_@@@": ["\\.fif", "\\.(?:con|sqd)", "\\.ds"], + "@@@_meg_type_@@@": ["\\.ds", "\\.(?:chn|kdf|trg)", "\\.(?:raw|raw\\.mhd)", "\\.fif", "\\.(?:con|sqd)", "\\.(?:kdf|chn|trg)"], "@@@_meg_ext_@@@": [ "_events\\.json", "_events\\.tsv", diff --git a/bids-validator/tests/type.spec.js b/bids-validator/tests/type.spec.js index 020ed7d2c..1ad2e2da8 100644 --- a/bids-validator/tests/type.spec.js +++ b/bids-validator/tests/type.spec.js @@ -172,17 +172,32 @@ describe('utils.type.file.isDWI', function() { describe('utils.type.file.isMEG', function() { const goodFilenames = [ - '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.sqd', - '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.raw.mhd', - '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/xyz', // for e.g., BTi files - '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_markers.sqd', - '/sub-01/ses-001/meg/sub-01_ses-001_markers.sqd', // KIT with removed father level directory - '/sub-01/ses-001/meg/sub-01_ses-001_markers.mrk', // KIT with removed father level directory - '/sub-01/ses-001/meg/sub-01_ses-001_meg.sqd', // KIT with removed father level directory - '/sub-01/ses-001/meg/sub-01_ses-001_meg.con', // KIT with removed father level directory + // Metadata MEG files '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.json', - '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_part-01_meg.fif', '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_channels.tsv', + // Father directory files are fine for some file formats: + // Father dir: CTF data with a .ds ... the contents within .ds are not checked + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.ds/catch-alp-good-f.meg4', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.ds/xyz', + // Father dir: BTi/4D ... again: within contents not checked + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/config', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/hs_file', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/e,rfhp1.0Hz.COH', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/c,rfDC', + // NO father dir: KRISS data + '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.chn', + '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.kdf', + '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.trg', + // NO father dir: KIT data + '/sub-01/ses-001/meg/sub-01_ses-001_markers.sqd', + '/sub-01/ses-001/meg/sub-01_ses-001_markers.mrk', + '/sub-01/ses-001/meg/sub-01_ses-001_meg.sqd', + '/sub-01/ses-001/meg/sub-01_ses-001_meg.con', + // NO father dir: ITAB data + '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.raw', + '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.raw.mhd', + // NO father dir: fif data + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_part-01_meg.fif', ] goodFilenames.forEach(function(path) { @@ -193,11 +208,29 @@ describe('utils.type.file.isMEG', function() { }) const badFilenames = [ - // only parent directory name matters for KIT/BTi systems - '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_megggg/sub-01_ses-001_task-rest_run-01_meg.sqd', + // missing session directory '/sub-01/meg/sub-01_ses-001_task-rest_run-01_meg.json', + // subject not matching '/sub-01/ses-001/meg/sub-12_ses-001_task-rest_run-01_part-01_meg.fif', + // invalid file endings '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.tsv', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.bogus', + // only parent directory name matters for BTi and CTF systems + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meggg/config', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg.dd/xyz', + // KIT with a father dir ... should not have a father dir + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_markers.sqd', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_markers.con', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.sqd', + // fif with a father dir ... should not have a father dir + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_meg.fif', + // ITAB with a father dir ... should not have a father dir + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.raw', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.raw.mhd', + // KRISS with a father dir ... should not have a father dir + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.kdf', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.trg', + '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.chn', ] badFilenames.forEach(function(path) { From 4a65be7e6b04c7b442f95e67548e857f297d7e5d Mon Sep 17 00:00:00 2001 From: Stefan Appelhoff Date: Mon, 24 Jun 2019 19:15:54 +0200 Subject: [PATCH 6/7] fix CTF regexp --- bids-validator/bids_validator/rules/file_level_rules.json | 2 +- bids-validator/tests/type.spec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bids-validator/bids_validator/rules/file_level_rules.json b/bids-validator/bids_validator/rules/file_level_rules.json index 9426a01fd..39d464421 100644 --- a/bids-validator/bids_validator/rules/file_level_rules.json +++ b/bids-validator/bids_validator/rules/file_level_rules.json @@ -200,7 +200,7 @@ "meg": { "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?meg\\/\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(_meg(@@@_meg_type_@@@\\/(.(?!\\.(sqd|con|fif|raw|raw\\.mhd|trg|kdf|chn)$))*|\\/(.(?!\\.(sqd|con|fif|raw|raw\\.mhd|trg|kdf|chn)$))*)|(@@@_meg_ext_@@@))$", "tokens": { - "@@@_meg_type_@@@": ["\\.ds", "\\.(?:chn|kdf|trg)", "\\.(?:raw|raw\\.mhd)", "\\.fif", "\\.(?:con|sqd)", "\\.(?:kdf|chn|trg)"], + "@@@_meg_type_@@@": ["\\.ds/.*", "\\.(?:chn|kdf|trg)", "\\.(?:raw|raw\\.mhd)", "\\.fif", "\\.(?:con|sqd)", "\\.(?:kdf|chn|trg)"], "@@@_meg_ext_@@@": [ "_events\\.json", "_events\\.tsv", diff --git a/bids-validator/tests/type.spec.js b/bids-validator/tests/type.spec.js index 1ad2e2da8..3dcd370c5 100644 --- a/bids-validator/tests/type.spec.js +++ b/bids-validator/tests/type.spec.js @@ -222,7 +222,7 @@ describe('utils.type.file.isMEG', function() { '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_markers.sqd', '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_markers.con', '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.sqd', - // fif with a father dir ... should not have a father dir + // FIF with a father dir ... should not have a father dir '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_meg.fif', // ITAB with a father dir ... should not have a father dir '/sub-01/ses-001/meg/sub-01_ses-001_task-rest_run-01_meg/sub-01_ses-001_task-rest_run-01_meg.raw', From 8cd2462e6d1d6f20e92200af490c0b724c9d9af6 Mon Sep 17 00:00:00 2001 From: Stefan Appelhoff Date: Tue, 25 Jun 2019 10:38:53 +0200 Subject: [PATCH 7/7] add _digitizer.txt --- bids-validator/bids_validator/rules/file_level_rules.json | 2 +- bids-validator/tests/type.spec.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bids-validator/bids_validator/rules/file_level_rules.json b/bids-validator/bids_validator/rules/file_level_rules.json index 39d464421..5d9b690e9 100644 --- a/bids-validator/bids_validator/rules/file_level_rules.json +++ b/bids-validator/bids_validator/rules/file_level_rules.json @@ -198,7 +198,7 @@ }, "meg": { - "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?meg\\/\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(_meg(@@@_meg_type_@@@\\/(.(?!\\.(sqd|con|fif|raw|raw\\.mhd|trg|kdf|chn)$))*|\\/(.(?!\\.(sqd|con|fif|raw|raw\\.mhd|trg|kdf|chn)$))*)|(@@@_meg_ext_@@@))$", + "regexp": "^\\/(sub-[a-zA-Z0-9]+)\\/(?:(ses-[a-zA-Z0-9]+)\\/)?meg\\/\\1(_\\2)?(?:_task-[a-zA-Z0-9]+)?(?:_acq-[a-zA-Z0-9]+)?(?:_run-[0-9]+)?(?:_proc-[a-zA-Z0-9]+)?(?:_part-[0-9]+)?(_digitizer.txt|_meg(@@@_meg_type_@@@\\/(.(?!\\.(sqd|con|fif|raw|raw\\.mhd|trg|kdf|chn)$))*|\\/(.(?!\\.(sqd|con|fif|raw|raw\\.mhd|trg|kdf|chn)$))*)|(@@@_meg_ext_@@@))$", "tokens": { "@@@_meg_type_@@@": ["\\.ds/.*", "\\.(?:chn|kdf|trg)", "\\.(?:raw|raw\\.mhd)", "\\.fif", "\\.(?:con|sqd)", "\\.(?:kdf|chn|trg)"], "@@@_meg_ext_@@@": [ diff --git a/bids-validator/tests/type.spec.js b/bids-validator/tests/type.spec.js index 3dcd370c5..c498665f8 100644 --- a/bids-validator/tests/type.spec.js +++ b/bids-validator/tests/type.spec.js @@ -188,6 +188,7 @@ describe('utils.type.file.isMEG', function() { '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.chn', '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.kdf', '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_run-01_meg.trg', + '/sub-control01/ses-001/meg/sub-control01_ses-001_task-rest_digitizer.txt', // NO father dir: KIT data '/sub-01/ses-001/meg/sub-01_ses-001_markers.sqd', '/sub-01/ses-001/meg/sub-01_ses-001_markers.mrk',