netmap.downstream.final_downstream.filter_grn_by_top_signatures

netmap.downstream.final_downstream.filter_grn_by_top_signatures(data_ucell: DataFrame, grn_adata: AnnData, keep_top_ranked: int = 100, filter_by: str = 'z_score') Tuple[AnnData | None, List[str]]

Filters a GRN (Gene Regulatory Network) AnnData object to keep only the edges corresponding to the top-ranked signatures per cluster based on UCell scores.

Parameters:
  • data_ucell (pd.DataFrame) – DataFrame containing UCell scores for each signature across cells, with a ‘spectral’ column indicating cluster assignments.

  • grn_adata (AnnData) – The GRN AnnData object to filter, containing edge metadata in .var.

  • keep_top_ranked (int, optional) – Number of top signatures to retain per cluster (default is 100).

  • filter_by (str, optional) – Metric used to rank signatures. Options include “P_Value”, “Adjusted_P_Value”, or “z_score” (default is “P_Value”).

Returns:

  • Filtered AnnData object containing only edges corresponding to top-ranked signatures.

  • List of unique top source names used to filter the GRN.

Return type:

Tuple[Optional[AnnData], List[str]]

Notes

  • For each cluster, signatures are ranked using the chosen metric.

  • When filter_by=’z_score’, a combined score of -log10(P_Value) and z_score is used.

  • The function returns None and an empty list if the input GRN has no variables.