liana.rs.generate_lr_geneset

liana.rs.generate_lr_geneset#

liana.rs.generate_lr_geneset(resource, net, ligand_key='ligand', receptor_key='receptor', lr_sep='^', source='source', target='target', weight='weight')#

Generate a ligand-receptor gene set from a resource and a network.

Specifically, it works with weighted bipartite networks, where the weight represents the importance of the genes to a given geneset. The function will assign a weight to each ligand-receptor interaction, based on the mean. It does so by first assigning a weight to each ligand-receptor subunit, checking for sign coherence and completeness of the ligand-receptor complex.

Parameters:
resource DataFrame

A pandas dataframe with [ligand, receptor] columns.

net DataFrame

Prior knowledge network in bipartite or decoupler format.

ligand

Name of the ligand column in the resource

receptor

Name of the receptor column in the resource

lr_sep str (default: '^')

Separator to use when joining ligand and receptor names into interactions.

source str (default: 'source')

Name of the source column in the network.

weight str | None (default: 'weight')

Name of the weight column in the network. If None, all weights are set to 1.

Return type:

DataFrame

Returns:

Returns ligand-receptor geneset resource as a pandas.DataFrame with the following columns: - interaction: ligand-receptor interaction - weight: mean weight of the interaction - source: source of the interaction

Examples

net is a bipartite gene set (e.g. pathways, transcription-factor regulons) in decoupler format. Only ligand-receptor pairs whose both partners are in the same gene set, with coherent signs, are kept:

>>> import pandas as pd
>>> import liana as li
>>> resource = li.rs.select_resource("consensus")
>>> net = pd.DataFrame(
...     {
...         "source": ["pathA", "pathA", "pathB", "pathB"],
...         "target": ["LGALS9", "PTPRC", "THY1", "ITGB2"],
...         "weight": [1.0, 1.0, -1.0, -1.0],
...     }
... )
>>> geneset = li.rs.generate_lr_geneset(resource, net)
>>> geneset
  source   interaction  weight
0  pathA  LGALS9^PTPRC     1.0
1  pathB    ITGB2^THY1    -1.0

The result can then be handed to an enrichment method (e.g. decoupler) with the interaction names as features.