Skip to content

Commit

Permalink
Merge pull request #3 from pinellolab/expand_test
Browse files Browse the repository at this point in the history
Expand testing
  • Loading branch information
huidongchen authored Oct 29, 2021
2 parents 0b6797f + ad7a85b commit 6f7cedd
Show file tree
Hide file tree
Showing 5 changed files with 121 additions and 5 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
conda config --add channels bioconda
conda config --add channels conda-forge
# conda env update --file environment.yml --name base
conda install simba_pbg=1.1
conda install simba
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
Expand Down
3 changes: 3 additions & 0 deletions simba/plotting/_plot.py
Original file line number Diff line number Diff line change
Expand Up @@ -1182,6 +1182,9 @@ def discretize(adata,

assert 'disc' in adata.uns_keys(), \
"please run `si.tl.discretize()` first"
if kde is not None:
warnings.warn("kde is no longer supported as of v1.1",
DeprecationWarning)

hist_edges = adata.uns['disc']['hist_edges']
hist_count = adata.uns['disc']['hist_count']
Expand Down
4 changes: 4 additions & 0 deletions tests/test_pbg_training.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ def test_pbg_training_rna(adata_CG, tmp_path):
dirname='graph0')
si.tl.pbg_train(auto_wd=True,
output='model')
si.pl.pbg_metrics(fig_ncol=1,
save_fig=True)


def test_pbg_training_atac(adata_CP, tmp_path):
Expand All @@ -30,3 +32,5 @@ def test_pbg_training_atac(adata_CP, tmp_path):
dirname='graph0')
si.tl.pbg_train(auto_wd=True,
output='model')
si.pl.pbg_metrics(fig_ncol=1,
save_fig=True)
44 changes: 43 additions & 1 deletion tests/test_post_training.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,54 @@ def dict_adata():
path_entity_alias='tests/data/pbg_training')


def test_embeddding_rna(dict_adata):
def test_embeddding_rna(dict_adata, tmp_path):
si.settings.set_workdir(tmp_path / "simba_rna")
adata_C = dict_adata['C']
adata_G = dict_adata['G']
adata_all_CG = si.tl.embed(
adata_ref=adata_C,
list_adata_query=[adata_G])
# add annotations of cells and genes
adata_all_CG.obs['entity_anno'] = ""
adata_all_CG.obs.loc[adata_C.obs_names, 'entity_anno'] = 'cell'
adata_all_CG.obs.loc[adata_G.obs_names, 'entity_anno'] = 'gene'

si.tl.umap(adata_all_CG,
n_neighbors=15,
n_components=2)
adata_cmp = si.tl.compare_entities(
adata_ref=adata_C,
adata_query=adata_G)
si.pl.entity_metrics(adata_cmp,
x='max',
y='gini',
show_contour=False,
texts=adata_G.obs_names[:2],
show_texts=True,
show_cutoff=True,
size=5,
text_expand=(1.3, 1.5),
cutoff_x=1.,
cutoff_y=0.3,
save_fig=True)
si.pl.entity_barcode(adata_cmp,
layer='softmax',
entities=list(adata_G.obs_names[:2]),
show_cutoff=True,
cutoff=0.001,
fig_size=(5, 2.5),
save_fig=True)
query_result = si.tl.query(adata_all_CG,
entity=list(adata_C.obs_names[:2]),
obsm='X_umap',
use_radius=False,
k=50,
anno_filter='entity_anno',
filters=['gene'])
print(query_result.head())
si.pl.query(adata_all_CG,
show_texts=False,
color=['entity_anno'],
alpha=0.9,
alpha_bg=0.1,
save_fig=True)
73 changes: 70 additions & 3 deletions tests/test_preprocessing.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,85 @@ def adata_CP():
return si.read_h5ad("tests/data/10xpbmc_atac_subset.h5ad")


def test_rna(adata_CG):
def test_rna(adata_CG, tmp_path):
si.settings.set_workdir(tmp_path / "simba_rna")
si.settings.set_figure_params(dpi=80,
style='white',
fig_size=[5, 5],
rc={'image.cmap': 'viridis'})
si.pp.filter_genes(adata_CG, min_n_cells=3)
si.pp.cal_qc_rna(adata_CG)
si.pl.violin(adata_CG,
list_obs=['n_counts', 'n_genes', 'pct_mt'],
save_fig=True,
fig_name='plot_violin.png')
si.pp.filter_cells_rna(adata_CG, min_n_genes=2)
si.pp.normalize(adata_CG, method='lib_size')
si.pp.log_transform(adata_CG)
si.pp.select_variable_genes(adata_CG, n_top_genes=2000)
si.pl.variable_genes(adata_CG,
show_texts=True,
save_fig=True,
fig_name='plot_variable_genes.png')
si.tl.discretize(adata_CG, n_bins=5)
si.pl.discretize(adata_CG,
save_fig=True,
fig_name='plot_discretize.png')


def test_atac(adata_CP):
si.pp.filter_peaks(adata_CP, min_n_cells=3)
def test_atac(adata_CP, tmp_path):
si.settings.set_workdir(tmp_path / "simba_atac")
si.pp.filter_peaks(adata_CP, min_n_cells=5)
si.pp.cal_qc_atac(adata_CP)
si.pl.hist(adata_CP,
list_obs=['n_counts', 'n_peaks', 'pct_peaks'],
log=True,
list_var=['n_cells'],
fig_size=(3, 3),
save_fig=True,
fig_name='plot_histogram.png')
si.pp.filter_cells_atac(adata_CP, min_n_peaks=5)
si.pp.pca(adata_CP, n_components=30)
si.pl.pca_variance_ratio(adata_CP,
show_cutoff=True,
save_fig=True,
fig_name='plot_variance_ratio.png')
si.pp.select_pcs(adata_CP, n_pcs=10)
si.pp.select_pcs_features(adata_CP)
si.pl.pcs_features(adata_CP,
fig_ncol=5,
save_fig=True,
fig_name='plot_pcs_features.png')


def test_genescores(adata_CP):
si.pp.filter_peaks(adata_CP, min_n_cells=5)
si.pp.cal_qc_atac(adata_CP)
si.pp.filter_cells_atac(adata_CP, min_n_peaks=5)
si.pp.pca(adata_CP, n_components=30)
si.pp.select_pcs(adata_CP, n_pcs=10)
si.pp.select_pcs_features(adata_CP)

adata_CG_atac = si.tl.gene_scores(adata_CP,
genome='hg19',
use_gene_weigt=True,
use_top_pcs=True)
print(adata_CG_atac)


def test_integration(adata_CG):
si.pp.filter_genes(adata_CG, min_n_cells=3)
si.pp.cal_qc_rna(adata_CG)
si.pp.filter_cells_rna(adata_CG, min_n_genes=2)
si.pp.normalize(adata_CG, method='lib_size')
si.pp.log_transform(adata_CG)
si.pp.select_variable_genes(adata_CG, n_top_genes=2000)
adata_C1C2 = si.tl.infer_edges(
adata_CG, adata_CG, n_components=20, k=20)
si.pl.node_similarity(adata_C1C2,
cutoff=0.5,
save_fig=True)
si.pl.svd_nodes(adata_C1C2,
cutoff=0.5,
save_fig=True)
si.tl.trim_edges(adata_C1C2, cutoff=0.5)

0 comments on commit 6f7cedd

Please sign in to comment.