16
16
from builtins import range , str , bytes , int
17
17
18
18
from copy import deepcopy
19
+ import csv
19
20
import os
20
21
21
22
from nibabel import load
@@ -145,7 +146,7 @@ def scale_timings(timelist, input_units, output_units, time_repetition):
145
146
return timelist
146
147
147
148
def bids_gen_info (bids_event_files ,
148
- condition_column = 'trial_type ' ,
149
+ condition_column = '' ,
149
150
amplitude_column = None ,
150
151
time_repetition = False ,
151
152
):
@@ -173,9 +174,13 @@ def bids_gen_info(bids_event_files,
173
174
info = []
174
175
for bids_event_file in bids_event_files :
175
176
with open (bids_event_file ) as f :
176
- f_events = csv .DictReader (f , skipinitialspace = True , delimiter = '\t ' )
177
+ f_events = csv .DictReader (f , skipinitialspace = True , delimiter = str ( '\t ' ) )
177
178
events = [{k : v for k , v in row .items ()} for row in f_events ]
178
- conditions = list (set ([i [condition_column ] for i in events ]))
179
+ if not condition_column :
180
+ condition_column = '_trial_type'
181
+ for i in events :
182
+ i .update ({condition_column : 'ev0' })
183
+ conditions = sorted (set ([i [condition_column ] for i in events ]))
179
184
runinfo = Bunch (conditions = [], onsets = [], durations = [], amplitudes = [])
180
185
for condition in conditions :
181
186
selected_events = [i for i in events if i [condition_column ]== condition ]
@@ -185,10 +190,7 @@ def bids_gen_info(bids_event_files,
185
190
decimals = math .ceil (- math .log10 (time_repetition ))
186
191
onsets = [np .round (i , decimals ) for i in onsets ]
187
192
durations = [np .round (i ,decimals ) for i in durations ]
188
- if condition :
189
- runinfo .conditions .append (condition )
190
- else :
191
- runinfo .conditions .append ('e0' )
193
+ runinfo .conditions .append (condition )
192
194
runinfo .onsets .append (onsets )
193
195
runinfo .durations .append (durations )
194
196
try :
0 commit comments