Skip to content

Commit 45881ff

Browse files
authored
Merge pull request #386 from effigies/fix/split_info
FIX: Pass new variable args as kwargs in split()
2 parents 13c857f + 687407a commit 45881ff

File tree

6 files changed

+33
-20
lines changed

6 files changed

+33
-20
lines changed

bids/analysis/tests/test_transformations.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def sparse_run_variable_with_missing_values():
2929
'amplitude': [1, 1, np.nan, 1]
3030
})
3131
run_info = [RunInfo({'subject': '01'}, 20, 2, 'dummy.nii.gz')]
32-
var = SparseRunVariable('var', data, run_info, 'events')
32+
var = SparseRunVariable(name='var', data=data, run_info=run_info, source='events')
3333
return BIDSRunVariableCollection([var])
3434

3535

bids/analysis/transformations/compute.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,8 @@ def _transform(self, var, model='spm', derivative=False, dispersion=False,
5252
convolved = hrf.compute_regressor(vals, model, onsets,
5353
fir_delays=fir_delays, min_onset=0)
5454

55-
return DenseRunVariable(var.name, convolved[0],
56-
var.run_info, var.source,
57-
var.sampling_rate)
55+
return DenseRunVariable(name=var.name, values=convolved[0], run_info=var.run_info,
56+
source=var.source, sampling_rate=var.sampling_rate)
5857

5958

6059
class Demean(Transformation):

bids/variables/io.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,8 @@ def _load_time_variables(layout, dataset=None, columns=None, scan_length=None,
210210
if df.empty:
211211
continue
212212

213-
var = SparseRunVariable(col, df, run_info, 'events')
213+
var = SparseRunVariable(name=col, data=df, run_info=run_info,
214+
source='events')
214215
run.add_variable(var)
215216

216217
# Process confound files
@@ -225,8 +226,9 @@ def _load_time_variables(layout, dataset=None, columns=None, scan_length=None,
225226
_data = _data.loc[:, conf_cols]
226227
for col in _data.columns:
227228
sr = 1. / run.repetition_time
228-
var = DenseRunVariable(col, _data[[col]], run_info,
229-
'regressors', sr)
229+
var = DenseRunVariable(name=col, values=_data[[col]],
230+
run_info=run_info, source='regressors',
231+
sampling_rate=sr)
230232
run.add_variable(var)
231233

232234
# Process recordinging files
@@ -279,8 +281,8 @@ def _load_time_variables(layout, dataset=None, columns=None, scan_length=None,
279281
df = pd.DataFrame(values, columns=rf_cols)
280282
source = 'physio' if '_physio.tsv' in rf else 'stim'
281283
for col in df.columns:
282-
var = DenseRunVariable(col, df[[col]], run_info, source,
283-
freq)
284+
var = DenseRunVariable(name=col, values=df[[col]], run_info=run_info,
285+
source=source, sampling_rate=freq)
284286
run.add_variable(var)
285287
return dataset
286288

@@ -400,6 +402,6 @@ def make_patt(x, regex_search=False):
400402
if prepend_type:
401403
col_name = '%s.%s' % (suffix, col_name)
402404

403-
node.add_variable(SimpleVariable(col_name, df, suffix))
405+
node.add_variable(SimpleVariable(name=col_name, data=df, source=suffix))
404406

405407
return dataset

bids/variables/kollekshuns.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ def from_df(cls, data, entities=None, source='contrast'):
146146
_data = pd.DataFrame(data[col].values, columns=['amplitude'])
147147
if entities is not None:
148148
_data = pd.concat([_data, entities], axis=1, sort=True)
149-
variables.append(SimpleVariable(col, _data, source))
149+
variables.append(SimpleVariable(name=col, data=_data, source=source))
150150
return BIDSVariableCollection(variables)
151151

152152
def clone(self):

bids/variables/tests/test_variables.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ def generate_DEV(name='test', sr=20, duration=480):
2020
entities = {e: uuid.uuid4().hex for e in ent_names}
2121
image = uuid.uuid4().hex + '.nii.gz'
2222
run_info = RunInfo(entities, duration, 2, image)
23-
return DenseRunVariable('test', values, run_info, 'dummy', sr)
23+
return DenseRunVariable(name='test', values=values, run_info=run_info,
24+
source='dummy', sampling_rate=sr)
2425

2526

2627
@pytest.fixture

bids/variables/variables.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,8 @@ def split(self, grouper):
253253
subsets = []
254254
for i, (name, g) in enumerate(data.groupby(grouper)):
255255
name = '%s.%s' % (self.name, name)
256-
args = [name, g, getattr(self, 'run_info', None), self.source]
257-
col = self.__class__(*args)
256+
col = self.__class__(name=name, data=g, source=self.source,
257+
run_info=getattr(self, 'run_info', None))
258258
subsets.append(col)
259259
return subsets
260260

@@ -340,8 +340,12 @@ def to_dense(self, sampling_rate):
340340
last_ind = onsets[i]
341341

342342
run_info = list(self.run_info)
343-
return DenseRunVariable(self.name, ts, run_info, self.source,
344-
sampling_rate)
343+
return DenseRunVariable(
344+
name=self.name,
345+
values=ts,
346+
run_info=run_info,
347+
source=self.source,
348+
sampling_rate=sampling_rate)
345349

346350
@classmethod
347351
def _merge(cls, variables, name, **kwargs):
@@ -398,9 +402,11 @@ def split(self, grouper):
398402
'''
399403
values = grouper.values * self.values.values
400404
df = pd.DataFrame(values, columns=grouper.columns)
401-
return [DenseRunVariable('%s.%s' % (self.name, name), df[name].values,
402-
self.run_info, self.source,
403-
self.sampling_rate)
405+
return [DenseRunVariable(name='%s.%s' % (self.name, name),
406+
values=df[name].values,
407+
run_info=self.run_info,
408+
source=self.source,
409+
sampling_rate=self.sampling_rate)
404410
for i, name in enumerate(df.columns)]
405411

406412
def _build_entity_index(self, run_info, sampling_rate):
@@ -506,7 +512,12 @@ def _merge(cls, variables, name, sampling_rate=None, **kwargs):
506512
values = pd.concat([v.values for v in variables], axis=0, sort=True)
507513
run_info = list(chain(*[v.run_info for v in variables]))
508514
source = variables[0].source
509-
return DenseRunVariable(name, values, run_info, source, sampling_rate)
515+
return DenseRunVariable(
516+
name=name,
517+
values=values,
518+
run_info=run_info,
519+
source=source,
520+
sampling_rate=sampling_rate)
510521

511522

512523
def merge_variables(variables, name=None, **kwargs):

0 commit comments

Comments
 (0)