descope.inference

class BaseInference(test_csv_template_fp: str, adata: str | AnnData, pretrained_model_name_or_path: str, pert_col: str = 'perturbation', ctrl_name: str = 'control')[source]

Bases: CellEvalMixin, ABC

inference(gene_embs_file: str, device: device, batch_size: int = 128, use_generated_control_cells: bool = False, seed: int = 42)[source]
abstract load_model(pretrained_model_name_or_path: str) PreTrainedModel[source]
abstract preprocess_adata(adata: AnnData) AnnData[source]
static write_h5ad(adata: AnnData, save_path: str)[source]
class CellEvalMixin[source]

Bases: object

A mixin class designed to extend evaluation capabilities for single-cell perturbation prediction tasks. This class provides methods to compute various metrics on predicted and real AnnData objects, including differential expression (DE) analysis etc.

Example:

>>> from descope.inference import CellEvalMixin
>>> evalmixin = CellEvalMixin()
>>> print(evalmixin.all_metrics)  # list all metrics in cell-eval
>>> results, agg_results, evaluator = evalmixin.compute_metrics(...)
>>> # Compute extra metrics
>>> evalmixin.extra_metrics_func.pearson(evaluator.anndata_pair, ...)  # pearson
>>> evalmixin.extra_metrics_func.pearson_delta_on_topk_de(evaluator.anndata_pair, ...)  # pearson_delta_on_topk_de
>>> evalmixin.extra_metrics_func.direction_match_on_topk_de(evaluator.anndata_pair, ...)  # direction_match_on_topk_de
>>> evalmixin.extra_metrics_func.edistance(...)  # edistance
property all_anndata_pair_metrics: list
property all_de_metrics: list
property all_metrics: list
check_whether_skip_de_metrics(metrics_to_calculate: list) bool[source]
compute_metrics(adata_pred: str | AnnData, adata_real: str | AnnData, metrics_to_calculate: list, de_pred: str | None = None, de_real: str | None = None, control_pert: str = 'non-targeting', pert_col: str = 'target_gene', de_method: str = 'wilcoxon', num_threads: int = -1, outdir: str = './cell-eval-outdir') tuple[DataFrame, DataFrame, MetricsEvaluator][source]
property extra_metrics: list
class InferenceForATAC(test_csv_template_fp: str, adata: str | AnnData, pretrained_model_name_or_path: str, pert_col: str = 'perturbation', ctrl_name: str = 'control')[source]

Bases: BaseInference

load_model(pretrained_model_name_or_path: str) PreTrainedModel[source]
preprocess_adata(adata: AnnData) AnnData[source]
class InferenceForRNA(test_csv_template_fp: str, adata: str | AnnData, pretrained_model_name_or_path: str, pert_col: str = 'target_gene', ctrl_name: str = 'non-targeting', target_sum: float = 10000.0, skip_raw_counts_check: bool = False)[source]

Bases: BaseInference

load_model(pretrained_model_name_or_path: str) PreTrainedModel[source]
preprocess_adata(adata: AnnData) AnnData[source]