netmap.downstream.markers.prepare_jaccard_analysis_df¶
- netmap.downstream.markers.prepare_jaccard_analysis_df(grn_adata, all_signatures, keep_edges, marker_sets, cluster_mapper)[source]¶
Process all clusters and return a unified DataFrame for plotting.
For each Leiden cluster in
grn_adata, retrieves the top differentially expressed source genes fromall_signatures, fetches their GRN target genes viakeep_edges, and computes Jaccard similarity of both sets against every cell-type marker set inmarker_sets. Clusters that raise an exception are skipped with a printed warning.- Parameters:
grn_adata (anndata.AnnData) – GRN AnnData object (obs = cells, var = edges) whose
obs.leiden_remapcolumn lists the cluster label for every cell.all_signatures (anndata.AnnData) – AnnData object containing a Wilcoxon rank_genes_groups result stored under the key
'wilcoxon'(produced bysc.tl.rank_genes_groups). Gene names are expected in the format<celltype>_<gene>so they can be split on the last underscore.keep_edges (dict) – Nested dict returned by
select_top_edges(), structured as{'unique': {cluster: {'edges': pd.DataFrame, ...}}, 'all': ...}.marker_sets (dict) – Mapping of
{celltype: set(genes)}mapping cell-type labels to their canonical marker gene sets used as Jaccard references.cluster_mapper (dict or pd.Series) – Mapping from raw cluster identifiers to human-readable labels. Currently passed through but not applied internally; reserved for downstream label remapping.
- Returns:
One row per (cluster, marker-set, gene-set-type) combination with the following columns:
celltype(str): Key frommarker_setsused as the reference.jaccard(float): Jaccard similarity score in [0, 1].ct(str): Cluster identifier fromgrn_adata.obs.leiden_remap.type(str): Either'Source'or'Target', indicating which gene set was compared.
- Return type:
pd.DataFrame