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 from all_signatures, fetches their GRN target genes via keep_edges, and computes Jaccard similarity of both sets against every cell-type marker set in marker_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_remap column 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 by sc.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 from marker_sets used as the reference.

  • jaccard (float): Jaccard similarity score in [0, 1].

  • ct (str): Cluster identifier from grn_adata.obs.leiden_remap.

  • type (str): Either 'Source' or 'Target', indicating which gene set was compared.

Return type:

pd.DataFrame