@@ -1280,23 +1280,7 @@ def _write_raw_brainvision(raw, bids_fname, events, overwrite):
12801280 )
12811281
12821282
1283- def _write_raw_bdf (raw , bids_fname , overwrite ):
1284- """Store data as BDF.
1285-
1286- Parameters
1287- ----------
1288- raw : mne.io.Raw
1289- Raw data to save.
1290- bids_fname : str
1291- The output filename.
1292- overwrite : bool
1293- Whether to overwrite an existing file or not.
1294- """
1295- assert str (bids_fname ).endswith (".bdf" )
1296- raw .export (bids_fname , overwrite = overwrite )
1297-
1298-
1299- def _write_raw_edf (raw , bids_fname , overwrite ):
1283+ def _write_raw_edf_bdf (raw , bids_fname , overwrite ):
13001284 """Store data as EDF.
13011285
13021286 Parameters
@@ -1308,7 +1292,7 @@ def _write_raw_edf(raw, bids_fname, overwrite):
13081292 overwrite : bool
13091293 Whether to overwrite an existing file or not.
13101294 """
1311- assert str ( bids_fname ). endswith (".edf" )
1295+ assert bids_fname . suffix in (".edf" , ".bdf " )
13121296 raw .export (bids_fname , overwrite = overwrite )
13131297
13141298
@@ -1657,14 +1641,14 @@ def write_raw_bids(
16571641 ``source`` column of ``scans.tsv``. By default, this information
16581642 is not stored.
16591643
1660- format : 'auto' | 'BrainVision' | 'EDF' | 'FIF' | 'EEGLAB'
1644+ format : 'auto' | 'BrainVision' | 'BDF' | ' EDF' | 'FIF' | 'EEGLAB'
16611645 Controls the file format of the data after BIDS conversion. If
16621646 ``'auto'``, MNE-BIDS will attempt to convert the input data to BIDS
16631647 without a change of the original file format. A conversion to a
16641648 different file format will then only take place if the original file
16651649 format lacks some necessary features.
16661650 Conversion may be forced to BrainVision, EDF, or EEGLAB for (i)EEG,
1667- and to FIF for MEG data.
1651+ to BDF or EDF for EMG, and to FIF for MEG data.
16681652 symlink : bool
16691653 Instead of copying the source files, only create symbolic links to
16701654 preserve storage space. This is only allowed when not anonymizing the
@@ -1905,6 +1889,8 @@ def write_raw_bids(
19051889 else :
19061890 if format == "BrainVision" :
19071891 ext = ".vhdr"
1892+ elif format == "BDF" :
1893+ ext = ".bdf"
19081894 elif format == "EDF" :
19091895 ext = ".edf"
19101896 elif format == "EEGLAB" :
@@ -1914,7 +1900,7 @@ def write_raw_bids(
19141900 else :
19151901 msg = (
19161902 'For preloaded data, you must set the "format" parameter '
1917- "to one of: BrainVision, EDF, EEGLAB, or FIF"
1903+ "to one of: BrainVision, BDF, EDF, EEGLAB, or FIF"
19181904 )
19191905 if format != "auto" : # the default was changed
19201906 msg += f', but got: "{ format } "'
@@ -2108,6 +2094,12 @@ def write_raw_bids(
21082094 warn ("Converting data files to BrainVision format for anonymization" )
21092095 convert = True
21102096 bids_path .update (extension = ".vhdr" )
2097+ elif bids_path .datatype == "emg" :
2098+ if ext not in [".edf" , ".bdf" , ".EDF" , ".BDF" ]:
2099+ warn ("Converting data files to BDF format for anonymization" )
2100+ convert = True
2101+ bids_path .update (extension = ".bdf" )
2102+
21112103 # Read in Raw object and extract metadata from Raw object if needed
21122104 orient = ORIENTATION .get (ext , "n/a" )
21132105 unit = EXT_TO_UNIT_MAP .get (ext , "n/a" )
@@ -2263,9 +2255,12 @@ def write_raw_bids(
22632255 if format == "BrainVision" and bids_path .datatype in ["ieeg" , "eeg" ]:
22642256 convert = True
22652257 bids_path .update (extension = ".vhdr" )
2266- elif format == "EDF" and bids_path .datatype in ["ieeg" , "eeg" ]:
2258+ elif format == "EDF" and bids_path .datatype in ["ieeg" , "eeg" , "emg" ]:
22672259 convert = True
22682260 bids_path .update (extension = ".edf" )
2261+ elif format == "BDF" and bids_path .datatype in ["emg" ]:
2262+ convert = True
2263+ bids_path .update (extension = ".bdf" )
22692264 elif format == "EEGLAB" and bids_path .datatype in ["ieeg" , "eeg" ]:
22702265 convert = True
22712266 bids_path .update (extension = ".set" )
@@ -2326,20 +2321,20 @@ def write_raw_bids(
23262321 else bids_path .fpath
23272322 ),
23282323 )
2324+ elif bids_path .datatype in ["emg" ] and format == "BDF" :
2325+ bids_path .update (extension = ".bdf" )
2326+ _write_raw_edf_bdf (raw , bids_path .fpath , overwrite = overwrite )
23292327 elif bids_path .datatype in ["eeg" , "emg" , "ieeg" ] and format == "EDF" :
23302328 warn ("Converting data files to EDF format" )
23312329 bids_path .update (extension = ".edf" )
2332- _write_raw_edf (raw , bids_path .fpath , overwrite = overwrite )
2333- elif bids_path .datatype in ["emg" ] and format == "BDF" :
2334- bids_path .update (extension = ".bdf" )
2335- _write_raw_bdf (raw , bids_path .fpath , overwrite = overwrite )
2330+ _write_raw_edf_bdf (raw , bids_path .fpath , overwrite = overwrite )
23362331 elif bids_path .datatype in ["eeg" , "ieeg" ] and format == "EEGLAB" :
23372332 warn ("Converting data files to EEGLAB format" )
23382333 _write_raw_eeglab (raw , bids_path .fpath , overwrite = overwrite )
23392334 elif bids_path .datatype in ["emg" ]:
23402335 bids_path .update (extension = ".bdf" )
23412336 warn ("Converting data files to BDF format" )
2342- _write_raw_edf (raw , bids_path .fpath , overwrite = overwrite )
2337+ _write_raw_edf_bdf (raw , bids_path .fpath , overwrite = overwrite )
23432338 else :
23442339 warn ("Converting data files to BrainVision format" )
23452340 bids_path .update (suffix = bids_path .datatype , extension = ".vhdr" )
0 commit comments