mantispy.tl.enrich_hits#
- mantispy.tl.enrich_hits(adata, net, gene_key='Metadata_Gene', hit_key='hits_qvalue', threshold=0.05, key_added='enrich_hits', copy=False)#
Test which gene sets are over-represented among the hits.
- Parameters:
adata (
AnnData) – One profile per gene, already scored byhit_calling().net (
DataFrame) – A gene-set network fromgene_sets().gene_key (
str(default:'Metadata_Gene')) –obscolumn holding the gene symbol.hit_key (
str(default:'hits_qvalue')) –obscolumn holding the q-value that defines a hit.threshold (
float(default:0.05)) – q-value below which a gene counts as a hit.key_added (
str(default:'enrich_hits')) – Name for the output table.copy (
bool(default:False)) – Return a modified copy instead of mutating in place.
- Return type:
- Returns:
None, or the modified copy. Writesuns["mantispy"][key_added]withset,odds_ratio(log, Haldane-Anscombe corrected) andqvalue, the Benjamini-Hochberg adjusted p-value of decoupler’s Fisher test.- Raises:
KeyError –
obshas nogene_keyor nohit_key.ValueError – Every gene or no gene is a hit at
threshold, so one side of the comparison is empty.
Notes
Over-representation is coarser than
pathway_coherence(). It counts hits per set and ignores whether their phenotypes resemble each other. Sets that share many genes, such as the cell-cycle programs, are reported together.The background is the set of genes measured in this screen. When almost every gene is a hit (190 of 193 on rohban2017), the result mostly reflects the library’s composition. In that case tighten
threshold, or rank by phenotype strength instead.