Exemplo n.º 1
0
def test_merge_sparse_run_variables(layout1):
    dataset = load_variables(layout1, types='events', scan_length=480)
    runs = dataset.get_nodes('run')
    variables = [r.variables['RT'] for r in runs]
    n_rows = sum([len(c.values) for c in variables])
    merged = merge_variables(variables)
    assert len(merged.values) == n_rows
    assert set(merged.index.columns) == set(variables[0].index.columns)
Exemplo n.º 2
0
def test_merge_simple_variables(layout2):
    index = load_variables(layout2, types='sessions')
    subjects = index.get_nodes('subject')
    variables = [s.variables['panas_sad'] for s in subjects]
    n_rows = sum([len(c.values) for c in variables])
    merged = merge_variables(variables)
    assert len(merged.values) == n_rows
    assert set(merged.index.columns) == set(variables[0].index.columns)
    assert variables[3].values.iloc[1] == merged.values.iloc[7]
Exemplo n.º 3
0
def test_merge_densified_variables(layout1):
    SR = 10
    dataset = load_variables(layout1, types='events', scan_length=480)
    runs = dataset.get_nodes('run')
    vars_ = [r.variables['RT'].to_dense(SR) for r in runs]
    dense = merge_variables(vars_)
    assert isinstance(dense, DenseRunVariable)
    n_rows = 480 * SR
    assert dense.values.shape == (len(runs) * n_rows, 1)
    for i in range(len(runs)):
        onset = i * n_rows
        offset = onset + n_rows
        run_vals = vars_[i].values
        dense_vals = dense.values.iloc[onset:offset].reset_index(drop=True)
        assert dense_vals.equals(run_vals)
Exemplo n.º 4
0
def test_filter_simple_variable(layout2):
    dataset = load_variables(layout2, types=['scans'])
    sessions = dataset.get_nodes('session')
    variables = [s.variables['surroundings'] for s in sessions]
    merged = merge_variables(variables)
    assert merged.to_df().shape == (60, 9)
    filt = merged.filter({'acq': 'fullbrain'})
    assert filt.to_df().shape == (40, 9)
    flt1 = merged.filter({'acq': 'fullbrain', 'subject': ['01', '02']}).to_df()
    assert flt1.shape == (8, 9)
    flt2 = merged.filter(query='acq=="fullbrain" and subject in ["01", "02"]')
    flt2 = flt2.to_df()
    assert flt1.equals(flt2)
    assert merged.filter({'nonexistent': 2}, strict=True) is None
    merged.filter({'acq': 'fullbrain'}, inplace=True)
    assert merged.to_df().shape == (40, 9)
Exemplo n.º 5
0
def test_sparse_run_variable_to_dense(layout1):
    index = load_variables(layout1, types='events', scan_length=480)
    runs = index.get_nodes('run', {'subject': ['01', '02']})

    for i, run in enumerate(runs):
        var = run.variables['RT']
        dense = var.to_dense(20)

        # Check that all unique values are identical
        sparse_vals = set(np.unique(var.values.values)) | {0}
        dense_vals = set(np.unique(dense.values.values))
        assert sparse_vals == dense_vals

        assert len(dense.values) > len(var.values)
        assert isinstance(dense, DenseRunVariable)
        assert dense.values.shape == (9600, 1)
        assert len(dense.run_info) == len(var.run_info)
        assert dense.source == 'events'