def test_combine_labels5(): in1 = [ OrderedDict(index=1, name='T1', abbr='blah'), OrderedDict(index=2, name='T2') ] in2 = [OrderedDict(index=1, name='T3'), OrderedDict(index=2, name='T4')] with pytest.raises(ValueError): utils.combine_labels(in1, in2)
def _update_args(args): args.plugin_args = _get_plugin_args(args) if args.analysis_level == 'participant': if args.subcortical: for req in [ 'subcortical_model', 'subcortical_model_brain_mask', 'subcortical_atlas', 'subcortical_model_space' ]: if getattr(args, req) is None: raise ValueError( 'If "--subcortical" is set then {req} must be specified' ) if args.intracranial_volume: if args.intracranial_mask is None: raise ValueError( 'If "--intracranial_volume" is set then "intracranial_mask" must be specified' ) for label_name in ['atlas', 'tissue', 'subcortical']: setattr(args, f'{label_name}_labels', Labels.from_args(args, label_name)) setattr( args, 'tissue_and_atlas_labels', Labels.from_labels( utils.combine_labels(args.tissue_labels.labels, args.atlas_labels.labels))) bids_filter = {} for filter_par in [ 'filter_session', 'filter_acquisition', 'filter_reconstruction', 'filter_run' ]: if filter_par in args: bids_filter[filter_par.split('_')[1]] = getattr( args, filter_par) args.bids_filter = bids_filter
def test_combine_labels(): in1 = [OrderedDict(index=1, name='T1'), OrderedDict(index=2, name='T2')] in2 = [OrderedDict(index=1, name='T3'), OrderedDict(index=2, name='T4')] out = utils.combine_labels(in1, in2) indices = [1, 2, 3, 4] names = ['T1+T3', 'T2+T3', 'T1+T4', 'T2+T4'] for outtmp, index, name in zip(out, indices, names): assert outtmp['index'] == index assert outtmp['name'] == name
def test_combine_labels2(): in1 = [ OrderedDict(index=1, name='T1'), OrderedDict(index=2, name='T2'), OrderedDict(index=3, name='T3') ] in2 = [OrderedDict(index=1, name='T4'), OrderedDict(index=2, name='T5')] out = utils.combine_labels(in1, in2) indices = list(range(1, 7)) names = ['T1+T4', 'T2+T4', 'T3+T4', 'T1+T5', 'T2+T5', 'T3+T5'] for outtmp, index, name in zip(out, indices, names): assert outtmp['index'] == index assert outtmp['name'] == name
def test_combine_labels3(): in1 = [ OrderedDict(index=1, name='A1'), OrderedDict(index=2, name='A2'), OrderedDict(index=3, name='A3') ] in2 = [OrderedDict(index=1, name='B1'), OrderedDict(index=2, name='B2')] in3 = [OrderedDict(index=4, name='C4'), OrderedDict(index=5, name='C5')] out = utils.combine_labels(in1, in2, in3) indices = [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30] names = [ 'A1+B1+C4', 'A2+B1+C4', 'A3+B1+C4', 'A1+B2+C4', 'A2+B2+C4', 'A3+B2+C4', 'A1+B1+C5', 'A2+B1+C5', 'A3+B1+C5', 'A1+B2+C5', 'A2+B2+C5', 'A3+B2+C5' ] for outtmp, index, name in zip(out, indices, names): assert outtmp['index'] == index assert outtmp['name'] == name
def test_combine_labels6(): in1 = [OrderedDict(index=1, name='T1'), OrderedDict(index=2, name='T2')] in2 = [OrderedDict(index=1), OrderedDict(index=2)] with pytest.raises(ValueError): utils.combine_labels(in1, in2)