def test_vanilla_get_expression_data(testfiles): out = allen.get_expression_data(testfiles, ATLAS.image) assert isinstance(out, pd.DataFrame) assert out.index.name == 'label' assert out.columns.name == 'gene_symbol' with pytest.raises(KeyError): allen.get_expression_data({'microarray': [1, 2, 3]}, ATLAS.image)
def test_get_expression_data_errors(testfiles, atlas): # invalid probe_selection method with pytest.raises(ValueError): allen.get_expression_data(atlas['image'], donors=['12876', '15496'], probe_selection='nonsense') # cannot use diff_stability with only one donor with pytest.raises(ValueError): allen.get_expression_data(atlas['image'], donors=['12876'], probe_selection='diff_stability')
def test_get_expression_data_errors(testfiles, atlas): # invalid probe_selection method with pytest.raises(ValueError): allen.get_expression_data(atlas['image'], donors=testfiles.keys(), probe_selection='nonsense') # cannot use diff_stability with only one donor with pytest.raises(ValueError): donor = list(testfiles.keys())[0] allen.get_expression_data(atlas['image'], donors=[donor], probe_selection='diff_stability')
def test_missing_labels(testfiles, atlas): # remove some labels from atlas image so numbers are non-sequential remove = [10, 20, 60] # subset atlas image img = check_img(atlas['image']) img_data = np.asarray(img.dataobj) for i in remove: img_data[img_data == i] = 0 img = img.__class__(img_data, img.affine) # subset atlas info info = pd.read_csv(atlas['info']) info = info[~info['id'].isin(remove)] # test get expression out, counts = allen.get_expression_data(img, info, exact=False, return_counts=True, donors=['12876', '15496']) assert out.index.name == 'label' assert out.columns.name == 'gene_symbol' assert len(out) == len(info) assert isinstance(counts, pd.DataFrame) assert counts.shape == (len(info), len(testfiles))
def donor_expression(testdir, testfiles): return allen.get_expression_data(ATLAS.image, ATLAS.info, exact=False, return_donors=True, data_dir=testdir, donors=['12876', '15496'])
def test_extra_get_expression_data(testfiles, atlas, opts): if opts.get('atlas_info'): opts['atlas_info'] = atlas['info'] out = allen.get_expression_data(atlas['image'], donors=['12876', '15496'], **opts) assert out.index.name == 'label' assert out.columns.name == 'gene_symbol'
def test_extra_get_expression_data(testfiles): for opts in [{'atlas_info': ATLAS.info}, {'exact': False}, {'reannotated': False}, {'atlas_info': ATLAS.info, 'exact': False}]: out = allen.get_expression_data(testfiles, ATLAS.image, **opts) assert isinstance(out, pd.DataFrame) assert out.index.name == 'label' assert out.columns.name == 'gene_symbol'
def test_extra_get_expression_data(testfiles, atlas, opts): if opts.get('atlas_info', False): opts['atlas_info'] = atlas['info'] out = allen.get_expression_data(atlas['image'], donors=testfiles.keys(), **opts) assert out.index.name == 'label' assert out.columns.name == 'gene_symbol' if 'missing' in opts and 'atlas_info' not in opts: assert not np.any(out.isna()) elif 'missing' in opts and 'atlas_info' in opts: assert np.any(out.isna())
def test_missing_labels(testfiles): # remove some labels from atlas image so numbers are non-sequential remove = [10, 20, 60] # subset atlas image atlas = check_niimg(ATLAS.image).get_data() for i in remove: atlas[atlas == i] = 0 atlas = new_img_like(ATLAS.image, atlas) # subset atlas info atlas_info = pd.read_csv(ATLAS.info) atlas_info = atlas_info[~atlas_info.id.isin(remove)] # test get expression out, counts = allen.get_expression_data(testfiles, atlas, atlas_info, exact=False, return_counts=True) assert isinstance(out, pd.DataFrame) assert out.index.name == 'label' assert out.columns.name == 'gene_symbol' assert len(out) == len(atlas_info) assert isinstance(counts, pd.DataFrame) assert counts.shape == (len(atlas_info), len(testfiles.probes))
def test_vanilla_get_expression_data(testfiles, atlas): out = allen.get_expression_data(atlas['image'], donors=['12876', '15496']) assert np.allclose(out.index, range(1, 84)) assert out.index.name == 'label' assert out.columns.name == 'gene_symbol'
def test_individualized_surface_expression_data(testfiles): atlas = allen.datasets.fetch_desikan_killiany(native=True, surface=True) out = allen.get_expression_data(atlas['image'], donors=testfiles.keys()) assert out.index.name == 'label' assert out.columns.name == 'gene_symbol'
def test_vanilla_surface_expression_data(testfiles, surface): out = allen.get_expression_data(surface['image'], donors=testfiles.keys()) assert out.index.name == 'label' assert out.columns.name == 'gene_symbol'
def test_vanilla_get_expression_data(testdir, testfiles): out = allen.get_expression_data(ATLAS.image, data_dir=testdir, donors=['12876', '15496']) assert isinstance(out, pd.DataFrame) assert out.index.name == 'label' assert out.columns.name == 'gene_symbol'
def donor_expression(testfiles): return allen.get_expression_data(testfiles, ATLAS.image, ATLAS.info, exact=False, return_donors=True)
def donor_expression(testfiles, atlas): return list( allen.get_expression_data(atlas['image'], missing='centroids', return_donors=True, donors=['12876', '15496']).values())
def donor_expression(testfiles, atlas): return allen.get_expression_data(atlas['image'], atlas['info'], exact=False, return_donors=True, donors=['12876', '15496'])