|
13 | 13 | 'input_spatial_with_cell_types': 'resources_test/task_ist_preprocessing/mouse_brain_combined/spatial_with_cell_types.h5ad', |
14 | 14 | 'celltype_key': 'cell_type', |
15 | 15 | 'output': '../resolvi_spatial_corrected.h5ad', |
| 16 | + 'n_hidden': 32, |
| 17 | + 'encode_covariates': False, |
| 18 | + 'downsample_counts': True |
16 | 19 | } |
17 | 20 | meta = { |
18 | 21 | 'name': 'gene_efficiency_correction', |
|
26 | 29 | adata_sp = ad.read_h5ad(par['input_spatial_with_cell_types']) |
27 | 30 | adata_sp.layers["normalized_uncorrected"] = adata_sp.layers["normalized"] |
28 | 31 |
|
29 | | - |
30 | | -#TODO add resolvi here |
31 | | - |
32 | 32 | print("Filter cells with <5 counts") |
33 | 33 | sc.pp.filter_cells(adata_sp, min_genes=5) |
34 | 34 |
|
|
40 | 40 |
|
41 | 41 | scvi.external.RESOLVI.setup_anndata(adata_sp, labels_key=par['celltype_key'], layer="counts") |
42 | 42 |
|
43 | | -supervised_resolvi = scvi.external.RESOLVI(adata_sp, semisupervised=True) |
44 | | - |
| 43 | +supervised_resolvi = scvi.external.RESOLVI(adata_sp, semisupervised=True, |
| 44 | + n_hidden = par['n_hidden'], |
| 45 | + encode_covariates = par['encode_covariates'], |
| 46 | + downsample_counts = par['downsample_counts']) |
45 | 47 | supervised_resolvi.train(max_epochs=50) |
46 | 48 |
|
47 | 49 | samples_corr = supervised_resolvi.sample_posterior( |
48 | 50 | model=supervised_resolvi.module.model_corrected, |
49 | | - return_sites=['px_rate', 'obs'], |
| 51 | + return_sites=['px_rate'], |
| 52 | + summary_fun={"post_sample_q50": np.median}, |
50 | 53 | num_samples=20, return_samples=False, batch_size=4000) #batch_steps was not a parameter |
51 | 54 | samples_corr = pd.DataFrame(samples_corr).T |
52 | 55 |
|
|
66 | 69 | # adata_sp.layers["generated_expression"] = scipy.sparse.csr_matrix(samples_corr.loc['post_sample_q25', 'obs']) |
67 | 70 | # adata_sp.layers["generated_expression_mean"] = scipy.sparse.csr_matrix(samples_corr.loc['post_sample_means', 'obs']) |
68 | 71 |
|
69 | | -adata_sp.layers["corrected_counts"] = adata_sp.layers['counts'].multiply((samples_corr.loc['post_sample_q05', 'px_rate'] / ( |
70 | | - 1.0 + samples_corr.loc['post_sample_q05', 'px_rate'] + samples.loc['post_sample_means', 'mean_poisson']))).tocsr() |
| 72 | +adata_sp.layers["corrected_counts"] = adata_sp.layers['counts'].multiply((samples_corr.loc['post_sample_q50', 'px_rate'] / ( |
| 73 | + 1.0 + samples_corr.loc['post_sample_q50', 'px_rate'] + samples.loc['post_sample_means', 'mean_poisson']))).tocsr() |
71 | 74 |
|
72 | 75 | # Write output |
73 | 76 | print('Writing output', flush=True) |
|
0 commit comments