Exemple #1
0
def test_fetch_localizer_contrasts(tmp_path, request_mocker, localizer_mocker):
    # 2 subjects
    dataset = func.fetch_localizer_contrasts(
        ['checkerboard'],
        n_subjects=2,
        data_dir=str(tmp_path),
        verbose=1)
    assert not hasattr(dataset, 'anats')
    assert not hasattr(dataset, 'tmaps')
    assert not hasattr(dataset, 'masks')
    assert isinstance(dataset.cmaps[0], _basestring)
    assert isinstance(dataset.ext_vars, np.recarray)
    assert len(dataset.cmaps) == 2
    assert dataset.ext_vars.size == 2

    # Multiple contrasts
    dataset = func.fetch_localizer_contrasts(
        ['checkerboard', 'horizontal checkerboard'],
        n_subjects=2,
        data_dir=str(tmp_path),
        verbose=1)
    assert isinstance(dataset.ext_vars, np.recarray)
    assert isinstance(dataset.cmaps[0], _basestring)
    assert len(dataset.cmaps) == 2 * 2  # two contrasts are fetched
    assert dataset.ext_vars.size == 2

    # all get_*=True
    dataset = func.fetch_localizer_contrasts(
        ['checkerboard'],
        n_subjects=1,
        data_dir=str(tmp_path),
        get_anats=True,
        get_masks=True,
        get_tmaps=True,
        verbose=1)
    assert isinstance(dataset.ext_vars, np.recarray)
    assert isinstance(dataset.anats[0], _basestring)
    assert isinstance(dataset.cmaps[0], _basestring)
    assert isinstance(dataset.masks[0], _basestring)
    assert isinstance(dataset.tmaps[0], _basestring)
    assert dataset.ext_vars.size == 1
    assert len(dataset.anats) == 1
    assert len(dataset.cmaps) == 1
    assert len(dataset.masks) == 1
    assert len(dataset.tmaps) == 1
    assert dataset.description != ''

    # grab a given list of subjects
    dataset2 = func.fetch_localizer_contrasts(
        ['checkerboard'],
        n_subjects=[2, 3, 5],
        data_dir=str(tmp_path),
        verbose=1)
    assert dataset2.ext_vars.size == 3
    assert len(dataset2.cmaps) == 3
    assert ([row[0] for row in dataset2.ext_vars] ==
                 [b'S02', b'S03', b'S05'])
Exemple #2
0
def test_fetch_localizer_contrasts():
    # 2 subjects
    dataset = func.fetch_localizer_contrasts(
        ['checkerboard'],
        n_subjects=2,
        data_dir=tst.tmpdir,
        verbose=1)
    assert_false(hasattr(dataset, 'anats'))
    assert_false(hasattr(dataset, 'tmaps'))
    assert_false(hasattr(dataset, 'masks'))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_equal(len(dataset.cmaps), 2)
    assert_equal(dataset.ext_vars.size, 2)

    # Multiple contrasts
    dataset = func.fetch_localizer_contrasts(
        ['checkerboard', 'horizontal checkerboard'],
        n_subjects=2,
        data_dir=tst.tmpdir,
        verbose=1)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_equal(len(dataset.cmaps), 2 * 2)  # two contrasts are fetched
    assert_equal(dataset.ext_vars.size, 2)

    # all get_*=True
    dataset = func.fetch_localizer_contrasts(
        ['checkerboard'],
        n_subjects=1,
        data_dir=tst.tmpdir,
        get_anats=True,
        get_masks=True,
        get_tmaps=True,
        verbose=1)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.anats[0], _basestring))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_true(isinstance(dataset.masks[0], _basestring))
    assert_true(isinstance(dataset.tmaps[0], _basestring))
    assert_equal(dataset.ext_vars.size, 1)
    assert_equal(len(dataset.anats), 1)
    assert_equal(len(dataset.cmaps), 1)
    assert_equal(len(dataset.masks), 1)
    assert_equal(len(dataset.tmaps), 1)
    assert_not_equal(dataset.description, '')

    # grab a given list of subjects
    dataset2 = func.fetch_localizer_contrasts(
        ['checkerboard'],
        n_subjects=[2, 3, 5],
        data_dir=tst.tmpdir,
        verbose=1)
    assert_equal(dataset2.ext_vars.size, 3)
    assert_equal(len(dataset2.cmaps), 3)
    assert_equal([row[0] for row in dataset2.ext_vars],
                 [b'S02', b'S03', b'S05'])
Exemple #3
0
def test_fetch_localizer_contrasts():
    local_url = "file://" + datadir
    ids = np.asarray([('S%2d' % i).encode() for i in range(94)])
    ids = ids.view(dtype=[('subject_id', 'S3')])
    mock_fetch_files.add_csv('cubicwebexport.csv', ids)
    mock_fetch_files.add_csv('cubicwebexport2.csv', ids)

    # Disabled: cannot be tested without actually fetching covariates CSV file
    # All subjects
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             data_dir=tmpdir,
                                             url=local_url,
                                             verbose=0)
    assert_true(dataset.anats is None)
    assert_true(dataset.tmaps is None)
    assert_true(dataset.masks is None)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_equal(dataset.ext_vars.size, 94)
    assert_equal(len(dataset.cmaps), 94)

    # 20 subjects
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             n_subjects=20,
                                             data_dir=tmpdir,
                                             url=local_url,
                                             verbose=0)
    assert_true(dataset.anats is None)
    assert_true(dataset.tmaps is None)
    assert_true(dataset.masks is None)
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_equal(len(dataset.cmaps), 20)
    assert_equal(dataset.ext_vars.size, 20)

    # Multiple contrasts
    dataset = func.fetch_localizer_contrasts(
        ["checkerboard", "horizontal checkerboard"],
        n_subjects=20, data_dir=tmpdir,
        verbose=0)
    assert_true(dataset.anats is None)
    assert_true(dataset.tmaps is None)
    assert_true(dataset.masks is None)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_equal(len(dataset.cmaps), 20 * 2)  # two contrasts are fetched
    assert_equal(dataset.ext_vars.size, 20)

    # get_anats=True
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             data_dir=tmpdir,
                                             url=local_url,
                                             get_anats=True,
                                             verbose=0)
    assert_true(dataset.masks is None)
    assert_true(dataset.tmaps is None)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.anats[0], _basestring))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_equal(dataset.ext_vars.size, 94)
    assert_equal(len(dataset.anats), 94)
    assert_equal(len(dataset.cmaps), 94)

    # get_masks=True
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             data_dir=tmpdir,
                                             url=local_url,
                                             get_masks=True,
                                             verbose=0)
    assert_true(dataset.anats is None)
    assert_true(dataset.tmaps is None)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_true(isinstance(dataset.masks[0], _basestring))
    assert_equal(dataset.ext_vars.size, 94)
    assert_equal(len(dataset.cmaps), 94)
    assert_equal(len(dataset.masks), 94)

    # get_tmaps=True
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             data_dir=tmpdir,
                                             url=local_url,
                                             get_tmaps=True,
                                             verbose=0)
    assert_true(dataset.anats is None)
    assert_true(dataset.masks is None)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_true(isinstance(dataset.tmaps[0], _basestring))
    assert_equal(dataset.ext_vars.size, 94)
    assert_equal(len(dataset.cmaps), 94)
    assert_equal(len(dataset.tmaps), 94)

    # all get_*=True
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             data_dir=tmpdir,
                                             url=local_url,
                                             get_anats=True,
                                             get_masks=True,
                                             get_tmaps=True,
                                             verbose=0)

    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.anats[0], _basestring))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_true(isinstance(dataset.masks[0], _basestring))
    assert_true(isinstance(dataset.tmaps[0], _basestring))
    assert_equal(dataset.ext_vars.size, 94)
    assert_equal(len(dataset.anats), 94)
    assert_equal(len(dataset.cmaps), 94)
    assert_equal(len(dataset.masks), 94)
    assert_equal(len(dataset.tmaps), 94)
Exemple #4
0
def test_fetch_localizer_contrasts(tmp_path, request_mocker, localizer_mocker):
    # 2 subjects
    dataset = func.fetch_localizer_contrasts(['checkerboard'],
                                             n_subjects=2,
                                             data_dir=tmp_path,
                                             verbose=1,
                                             legacy_format=True)
    assert not hasattr(dataset, 'anats')
    assert not hasattr(dataset, 'tmaps')
    assert not hasattr(dataset, 'masks')
    assert isinstance(dataset.cmaps[0], str)
    assert isinstance(dataset.ext_vars, np.recarray)
    assert len(dataset.cmaps) == 2
    assert dataset.ext_vars.size == 2

    dataset = func.fetch_localizer_contrasts(['checkerboard'],
                                             n_subjects=2,
                                             data_dir=tmp_path,
                                             verbose=1,
                                             legacy_format=False)
    assert not hasattr(dataset, 'anats')
    assert not hasattr(dataset, 'tmaps')
    assert not hasattr(dataset, 'masks')
    assert isinstance(dataset.cmaps[0], str)
    assert isinstance(dataset.ext_vars, pd.DataFrame)
    assert len(dataset.cmaps) == 2
    assert len(dataset['ext_vars']) == 2

    # Multiple contrasts
    dataset = func.fetch_localizer_contrasts(
        ['checkerboard', 'horizontal checkerboard'],
        n_subjects=2,
        data_dir=tmp_path,
        verbose=1,
        legacy_format=False)
    assert isinstance(dataset.ext_vars, pd.DataFrame)
    assert isinstance(dataset.cmaps[0], str)
    assert len(dataset.cmaps) == 2 * 2  # two contrasts are fetched
    assert len(dataset['ext_vars']) == 2

    # all get_*=True
    dataset = func.fetch_localizer_contrasts(['checkerboard'],
                                             n_subjects=1,
                                             data_dir=tmp_path,
                                             get_anats=True,
                                             get_masks=True,
                                             get_tmaps=True,
                                             verbose=1,
                                             legacy_format=False)
    assert isinstance(dataset.ext_vars, pd.DataFrame)
    assert isinstance(dataset.anats[0], str)
    assert isinstance(dataset.cmaps[0], str)
    assert isinstance(dataset.masks[0], str)
    assert isinstance(dataset.tmaps[0], str)
    assert len(dataset['ext_vars']) == 1
    assert len(dataset.anats) == 1
    assert len(dataset.cmaps) == 1
    assert len(dataset.masks) == 1
    assert len(dataset.tmaps) == 1
    assert dataset.description != ''

    # grab a given list of subjects
    dataset2 = func.fetch_localizer_contrasts(['checkerboard'],
                                              n_subjects=[2, 3, 5],
                                              data_dir=tmp_path,
                                              verbose=1,
                                              legacy_format=False)
    assert len(dataset2['ext_vars']) == 3
    assert len(dataset2.cmaps) == 3
    assert (list(dataset2['ext_vars']['participant_id'].values) == [
        'S02', 'S03', 'S05'
    ])
Exemple #5
0
def test_fetch_localizer_contrasts():
    # All subjects
    n_subjects = 2  # 94
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             data_dir=tst.tmpdir,
                                             verbose=0)
    assert_true(dataset.anats is None)
    assert_true(dataset.tmaps is None)
    assert_true(dataset.masks is None)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_equal(dataset.ext_vars.size, n_subjects)
    assert_equal(len(dataset.cmaps), n_subjects)

    # 20 subjects
    n_subjects = 1  # 20
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             n_subjects=n_subjects,
                                             data_dir=tst.tmpdir,
                                             verbose=0)
    assert_true(dataset.anats is None)
    assert_true(dataset.tmaps is None)
    assert_true(dataset.masks is None)
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_equal(len(dataset.cmaps), n_subjects)
    assert_equal(dataset.ext_vars.size, n_subjects)

    # Multiple contrasts
    n_subjects = 1  # 20
    dataset = func.fetch_localizer_contrasts(
        ["checkerboard", "horizontal checkerboard"],
        n_subjects=n_subjects,
        data_dir=tst.tmpdir,
        verbose=0)
    assert_true(dataset.anats is None)
    assert_true(dataset.tmaps is None)
    assert_true(dataset.masks is None)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_equal(len(dataset.cmaps),
                 n_subjects * 2)  # two contrasts are fetched
    assert_equal(dataset.ext_vars.size, n_subjects)

    # get_anats=True
    n_subjects = 2  # 94
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             data_dir=tst.tmpdir,
                                             get_anats=True,
                                             verbose=0)
    assert_true(dataset.masks is None)
    assert_true(dataset.tmaps is None)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.anats[0], _basestring))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_equal(dataset.ext_vars.size, n_subjects)
    assert_equal(len(dataset.anats), n_subjects)
    assert_equal(len(dataset.cmaps), n_subjects)

    # get_masks=True
    n_subjects = 2  # 94
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             data_dir=tst.tmpdir,
                                             get_masks=True,
                                             verbose=0)
    assert_true(dataset.anats is None)
    assert_true(dataset.tmaps is None)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_true(isinstance(dataset.masks[0], _basestring))
    assert_equal(dataset.ext_vars.size, n_subjects)
    assert_equal(len(dataset.cmaps), n_subjects)
    assert_equal(len(dataset.masks), n_subjects)

    # get_tmaps=True
    n_subjects = 2  # 94
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             data_dir=tst.tmpdir,
                                             get_tmaps=True,
                                             verbose=0)
    assert_true(dataset.anats is None)
    assert_true(dataset.masks is None)
    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_true(isinstance(dataset.tmaps[0], _basestring))
    assert_equal(dataset.ext_vars.size, n_subjects)
    assert_equal(len(dataset.cmaps), n_subjects)
    assert_equal(len(dataset.tmaps), n_subjects)

    # all get_*=True
    n_subjects = 2  # 94
    dataset = func.fetch_localizer_contrasts(["checkerboard"],
                                             data_dir=tst.tmpdir,
                                             get_anats=True,
                                             get_masks=True,
                                             get_tmaps=True,
                                             verbose=0)

    assert_true(isinstance(dataset.ext_vars, np.recarray))
    assert_true(isinstance(dataset.anats[0], _basestring))
    assert_true(isinstance(dataset.cmaps[0], _basestring))
    assert_true(isinstance(dataset.masks[0], _basestring))
    assert_true(isinstance(dataset.tmaps[0], _basestring))
    assert_equal(dataset.ext_vars.size, n_subjects)
    assert_equal(len(dataset.anats), n_subjects)
    assert_equal(len(dataset.cmaps), n_subjects)
    assert_equal(len(dataset.masks), n_subjects)
    assert_equal(len(dataset.tmaps), n_subjects)
    assert_not_equal(dataset.description, '')

    # grab a given list of subjects
    n_subjects = [2]  # [2, 3, 5]
    positions = [1]  # [1, 2, 4]
    dataset2 = func.fetch_localizer_contrasts(["checkerboard"],
                                              n_subjects=[2, 3, 5],
                                              data_dir=tst.tmpdir,
                                              get_anats=True,
                                              get_masks=True,
                                              get_tmaps=True,
                                              verbose=0)

    # Check that we are getting only 3 subjects
    assert_equal(dataset2.ext_vars.size, len(n_subjects))
    assert_equal(len(dataset2.anats), len(n_subjects))
    assert_equal(len(dataset2.cmaps), len(n_subjects))
    assert_equal(len(dataset2.masks), len(n_subjects))
    assert_equal(len(dataset2.tmaps), len(n_subjects))
    np.testing.assert_array_equal(dataset2.ext_vars,
                                  dataset.ext_vars[positions])
    np.testing.assert_array_equal(dataset2.anats,
                                  np.array(dataset.anats)[positions])
    np.testing.assert_array_equal(dataset2.cmaps,
                                  np.array(dataset.cmaps)[positions])
    np.testing.assert_array_equal(dataset2.masks,
                                  np.array(dataset.masks)[positions])
    np.testing.assert_array_equal(dataset2.tmaps,
                                  np.array(dataset.tmaps)[positions])