def get_bayes_factor_scvi(cset_a, cset_b, sampling_n, cells_sampled, use_is, force_batch=None): subset_a = np.random.choice(cset_a, cells_sampled) subset_b = np.random.choice(cset_b, cells_sampled) posterior_a = trainer.create_posterior(trainer.model, gene_dataset, indices=subset_a) posterior_b = trainer.create_posterior(trainer.model, gene_dataset, indices=subset_b) px_scale_a, log_ratios_a, labels_a = posterior_a.differential_expression_stats( M_sampling=sampling_n, force_batch=force_batch) px_scale_b, log_ratios_b, labels_b = posterior_b.differential_expression_stats( M_sampling=sampling_n, force_batch=force_batch) px_scale = np.concatenate((px_scale_a, px_scale_b), axis=1) log_ratios = np.concatenate((log_ratios_a, log_ratios_b), axis=1) labels_de = np.concatenate((0 * labels_a, 0 * labels_b + 1), axis=0) return get_IS_bayes_factors(px_scale, log_ratios, labels_de, 0, other_cell_idx=1, importance_sampling=use_is, permutation=False)
cell_type[1], batch, nsamples).cpu()) px_scale_b = px_scale_b[np.newaxis, :] return px_scale_a, px_scale_b px_scale_a0, px_scale_b0 = scanvi_generate_scale(trainer_scanvi, scanvi_labels, use_agg_post, couple_celltypes, 0, n_cells, n_samples) labels_de = np.concatenate((np.zeros( (px_scale_a0.shape[1], )), np.ones((px_scale_b0.shape[1], )))) px_scale_0 = np.concatenate((px_scale_a0, px_scale_b0), axis=1) bayes_scanviAB1 = get_IS_bayes_factors(px_scale_0, None, labels_de, 0, other_cell_idx=1, importance_sampling=False, permutation=False) px_scale_a1, px_scale_b1 = scanvi_generate_scale(trainer_scanvi, scanvi_labels, use_agg_post, couple_celltypes, 1, n_cells, n_samples) labels_de = np.concatenate((np.zeros( (px_scale_a0.shape[1], )), np.ones((px_scale_b0.shape[1], )))) px_scale_1 = np.concatenate((px_scale_a1, px_scale_b1), axis=1) bayes_scanviAB2 = get_IS_bayes_factors(px_scale_1, None, labels_de,