{"id":51608496,"url":"https://github.com/saeyslab/nichenetpy","last_synced_at":"2026-07-12T04:02:03.146Z","repository":{"id":361123069,"uuid":"892503504","full_name":"saeyslab/nichenetpy","owner":"saeyslab","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-23T12:45:15.000Z","size":95573,"stargazers_count":9,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-06-23T14:23:09.668Z","etag":null,"topics":["cell-cell-communication","data-integration","gene-expression","intercellular-communication","ligand-receptor","ligand-target","network-inference","rna-seq","single-cell-omics","single-cell-rna-seq"],"latest_commit_sha":null,"homepage":"https://saeyslab.github.io/nichenetpy/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saeyslab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-22T08:33:28.000Z","updated_at":"2026-06-18T11:15:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/saeyslab/nichenetpy","commit_stats":null,"previous_names":["saeyslab/nichenetpy"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/saeyslab/nichenetpy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saeyslab%2Fnichenetpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saeyslab%2Fnichenetpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saeyslab%2Fnichenetpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saeyslab%2Fnichenetpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saeyslab","download_url":"https://codeload.github.com/saeyslab/nichenetpy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saeyslab%2Fnichenetpy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35381310,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-12T02:00:06.386Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cell-cell-communication","data-integration","gene-expression","intercellular-communication","ligand-receptor","ligand-target","network-inference","rna-seq","single-cell-omics","single-cell-rna-seq"],"created_at":"2026-07-12T04:02:02.284Z","updated_at":"2026-07-12T04:02:03.138Z","avatar_url":"https://github.com/saeyslab.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- badges: start --\u003e\n[![pytest](https://github.com/saeyslab/nichenetpy/actions/workflows/python-package.yml/badge.svg?branch=main)](https://github.com/saeyslab/nichenetpy/actions/workflows/python-package.yml)\n[![pdoc](https://github.com/saeyslab/nichenetpy/actions/workflows/pdoc.yml/badge.svg?event=release)](https://github.com/saeyslab/nichenetpy/actions/workflows/pdoc.yml)\n[![pypi](https://github.com/saeyslab/nichenetpy/actions/workflows/deploy-pypi.yml/badge.svg?event=release)](https://github.com/saeyslab/nichenetpy/actions/workflows/deploy-pypi.yml)\n\u003c!-- badges: end --\u003e\n\n**NicheNetPy: the python implementation of the NicheNet method. (ported from [NicheNetR](https://github.com/saeyslab/nichenetr/tree/master))** The goal of\nNicheNet is to study intercellular communication from a computational\nperspective. NicheNet uses human or mouse gene expression data of\ninteracting cells as input and combines this with a prior model that\nintegrates existing knowledge on ligand-to-target signaling paths. This\nallows to predict ligand-receptor interactions that might drive gene\nexpression changes in cells of interest.\n\nWe describe the NicheNet algorithm in the following paper: [NicheNet:\nmodeling intercellular communication by linking ligands to target\ngenes](https://www.nature.com/articles/s41592-019-0667-5).\n\n## Installation of nichenetpy\n\n```\npip install nichenetpy\n```\n\n## Overview of NicheNet\n\n### Background\n\nNicheNet strongly differs from most computational approaches to study\ncell-cell communication (CCC), as summarized conceptually by the figure\nbelow (**top panel:** current ligand-receptor inference approaches;\n**bottom panel:** NicheNet). Many approaches to study CCC from\nexpression data involve linking ligands expressed by sender cells to\ntheir corresponding receptors expressed by receiver cells. However,\nfunctional understanding of a CCC process also requires knowing how\nthese inferred ligand-receptor interactions result in changes in the\nexpression of downstream target genes within the receiver cells.\nTherefore, we developed NicheNet to consider the gene regulatory effects\nof ligands. \u003cbr\u003e\u003cbr\u003e\n\u003cimg src=\"images/comparison_other_approaches_2.jpg\" width=\"450\" /\u003e \u003cbr\u003e\u003cbr\u003e\n\nAt the core of NicheNet is a prior knowledge model, created by\nintegrating three types of databases—ligand-receptor interactions,\nsignaling pathways, and transcription factor (TF) regulation—to form a\ncomplete communication network spanning from ligands to their downstream\ntarget genes (see figure below). Therefore, this model goes beyond\nligand-receptor interactions and incorporates intracellular signaling\nand transcriptional regulation as well. As a result, NicheNet is able to\npredict which ligands influence the expression in another cell, which\ntarget genes are affected by each ligand, and which signaling mediators\nmay be involved. By generating these novel types of hypotheses, NicheNet\ncan drive an improved functional understanding of a CCC process of\ninterest. We provide a pre-built prior model, it is\nalso possible to construct your own model (see notebooks below).\n\n\u003cimg src=\"images/nichenet_prior_model.png\"\nstyle=\"width:70.0%\" /\u003e\n\n### Main functionalities of nichenetpy\n\n-   Assessing how well ligands expressed by a sender cell can predict\n    changes in gene expression in the receiver cell\n-   Prioritizing ligands based on their effect on gene expression\n-   Inferring putative ligand-target links active in the system under\n    study\n-   Inferring potential signaling paths between ligands and target genes\n    of interest: to generate causal hypotheses and check which data\n    sources support the predictions\n-   Construction of user-defined prior ligand-target models\n\nMoreover, we provide instructions on how to make intuitive\nvisualizations of the main predictions (e.g., via circos plots as shown\nhere below).\n\n\u003cbr\u003e\u003cbr\u003e\n\u003cimg src=\"images/circos.png\" width=\"600\" /\u003e\n\nAs input to NicheNet, users must provide cell type-annotated expression\ndata that reflects a cell-cell communication (CCC) event. The input can\nbe single-cell or sorted bulk data from human or mouse. As output,\nNicheNet returns the ranking of ligands that best explain the CCC event\nof interest, as well as candidate target genes with high potential to be\nregulated by these ligands. As an intermediate step, we extract the\nthree features required for the analysis: a list of potential ligands, a\ngene set that captures the downstream effects of the CCC event of\ninterest, and a background set of genes. Further explanation on each\nfeature can be found in the introductory notebooks.\n\n![](images/figure1.svg) \u003cbr\u003e\u003cbr\u003e\n\n## Learning to use nichenetpy\n\nA very basic tutorial for people who are unfamiliar with python can be found here. \n\n-   [Basic Tutorial](notebooks/basic_tutorial.ipynb)\n\nThe following notebooks contain the explanation on how to perform a\nbasic NicheNet analysis on an AnnData object. This includes prioritizing\nligands and predicting target genes of prioritized ligands. We recommend\nstarting with the step-by-step analysis, but we also demonstrate the use\nof a single wrapper function. \n\n-   [Perform NicheNet analysis starting from an AnnData object: step-by-step analysis](notebooks/steps.ipynb)\n-   [Perform NicheNet analysis starting from an AnnData object: wrapper](notebooks/wrapper.ipynb)\n\nCase study on HNSCC tumor which demonstrates the flexibility of\nNicheNet. Here, the gene set of interest was determined by the original\nauthors, and the expression data is a matrix rather than an AnnData\nobject.\n\n-   [NicheNet’s ligand activity analysis on a gene set of interest](notebooks/ligand_activity_geneset.ipynb)\n\nThe following notebooks explain how to do some follow-up\nanalyses:\n\n-   [Prioritization of ligands based on expression values](notebooks/steps_prioritization.ipynb)\n-   [Inferring ligand-to-target signaling paths](notebooks/ligand_target_signaling_path.ipynb)\n-   [Assess how well top-ranked ligands can predict a gene set of interest](notebooks/target_prediction_evaluation_geneset.ipynb)\n-   [Single-cell NicheNet’s ligand activity analysis](notebooks/ligand_activity_single_cell.ipynb)\n\nIf you want to make a circos plot visualization of the NicheNet output\nto show active ligand-target links between interacting cells, you can\ncheck following notebooks:\n\n-   [circos visualization](notebooks/circos.ipynb)\n\nPeople interested in building their own models or benchmarking their own\nmodels against NicheNet can read the following notebooks:\n\n-   [Model construction](notebooks/model_construction.ipynb)\n-   [Parameter optimization](notebooks/parameter_optimization.ipynb)\n-   [Using LIANA ligand-receptor databases to construct the ligand-target model](notebooks/model_construction_with_liana.ipynb)\n-   [Model evaluation: target gene and ligand activity prediction](notebooks/model_evaluation.ipynb)\n\nFor a comparison between Seurat's FindAllMarkers (which is ported into nichenetpy) and Scanpy's rank_genes_groups, see the following notebook:\n\n-   [Comparison: Seurat vs Scanpy](notebooks/seuratVSscanpy.ipynb)\n\n## Documentation\n\nDocumentation is available at [NicheNetPy docs](https://saeyslab.github.io/nichenetpy/nichenetpy.html)\n\n## FAQ\n\n-   Check the FAQ pages at [FAQ NicheNetPy](faq.md) and [FAQ Nichenet](https://github.com/saeyslab/nichenetr/blob/master/vignettes/faq.md)\n\n## References\n\nBrowaeys, R., Saelens, W. \u0026 Saeys, Y. NicheNet: modeling intercellular\ncommunication by linking ligands to target genes. Nat Methods (2019)\n\u003cdoi:10.1038/s41592-019-0667-5\u003e\n\nBonnardel et al. Stellate Cells, Hepatocytes, and Endothelial Cells\nImprint the Kupffer Cell Identity on Monocytes Colonizing the Liver\nMacrophage Niche. Immunity (2019) \u003cdoi:10.1016/j.immuni.2019.08.017\u003e\n\nGuilliams et al. Spatial proteogenomics reveals distinct and\nevolutionarily conserved hepatic macrophage niches. Cell (2022)\n\u003cdoi:10.1016/j.cell.2021.12.018\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaeyslab%2Fnichenetpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaeyslab%2Fnichenetpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaeyslab%2Fnichenetpy/lists"}