Skip to main content

Analyze network colocalization of gene sets

Project description

NetColoc

https://img.shields.io/pypi/v/netcoloc.svg https://app.travis-ci.com/ucsd-ccbb/NetColoc.svg?token=nGm2MDyYBLqUCSB4exJZ&branch=main Documentation Status https://zenodo.org/badge/DOI/10.5281/zenodo.6773330.svg

Description

Here we introduce NetColoc, a tool which evaluates the extent to which two gene sets are related in network space, i.e. the extent to which they are colocalized in a molecular interaction network, and interrogates the underlying biological pathways and processes using multiscale community detection.

This framework may be applied to any number of scenarios in which gene sets have been associated with a phenotype or condition, including rare and common variants within the same disease, genes associated with two comorbid diseases, genetically correlated GWAS phenotypes, GWAS across two different species, or gene expression changes after treatment with two different drugs, to name a few.

NetColoc relies on a dual network propagation approach to identify the region of network space which is significantly proximal to both input gene sets, and as such is highly effective for small to medium input gene sets.

Installation

NetColoc is available on PyPI

pip install netcoloc

Version Notes

Version 1.0.0 incorporates additional functionality developed for the publication Wright, S. N. et al., “Genome-wide association studies of human and rat BMI converge on synapse, epigenome, and hormone signaling networks.” Cell Reports (2023), as outlined at https://github.com/sarah-n-wright/CrossSpeciesBMI.

Prior version netcoloc v0.1.6 was utilized in the NetColoc publication: Rosenthal, S. B. et al., “Mapping the common gene networks that underlie related diseases.” Nature Protocols (2023). To install this version, please use the following command:

pip install netcoloc==0.1.6

And follow the additional installation instructions at https://pypi.org/project/netcoloc/0.1.6/.

The original source code and example notebooks can be acquired from Zenodo: DOI:6654561, or from GitHub:

git clone git@github.com:ucsd-ccbb/NetColoc.git
git checkout -b v0.1.6 tags/v0.1.6

Documentation

For a quick-start on NetColoc’s functionality, please see the example notebooks.

Usage Note: Please follow steps in example notebooks for correct usage of NetColoc. At this time, individual functionalities have not been tested for independent use.

Dependencies

NetColoc requires the following python packages (automatically installed via pip install netcoloc)

License

  • Free software: MIT license

Citing NetColoc

Rosenthal, Sara Brin, Sarah N. Wright, Sophie Liu, Christopher Churas, Daisy Chilin-Fuentes, Chi-Hua Chen, Kathleen M. Fisch, Dexter Pratt, Jason F. Kreisberg, and Trey Ideker. “Mapping the common gene networks that underlie related diseases.” Nature protocols (2023): 1-15. https://doi.org/10.1038/s41596-022-00797-1

Other publications utilizing NetColoc:

  • Rosenthal, S. B. et al. A convergent molecular network underlying autism and congenital heart disease. Cell Syst. 12, 1094-1107.e6 (2021). 10.1016/j.cels.2021.07.009

  • Wright, S. N. et al. Genome-wide association studies of human and rat BMI converge on synapse, epigenome, and hormone signaling networks. Cell Rep. 42, 112873 (2023). 10.1016/j.celrep.2023.112873

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

1.0.0 (2025-07-09)

  • obonet added as a dependency, replacing DDOT dependency

  • cdapsutil added as a dependency

  • network_colocalization updated for compatability with pandas>=2.0

  • validation updated for compatability with obonet. Added validation.focus_ontology() to replace ddot.Ontology.focus() functionality, and validation.find_related_terms() and validation.get_MP_description() for analyzing Mammalian Phenotype Ontology terms.

  • example_notebooks updated for compatibility with pandas>=2.0 and obonet

  • validation.load_MGI_mouseKO_data() and validation.load_MPO() updated to allow re-use of previously downloaded files

  • Added ability to map genes via the MGI database in validation.load_MGI_mouse_KO_data()

  • Added functions to map genes to the ontology and restrict to a subset of genes (validation.map_genes_to_MPO())

  • Stabilized network_colocalization to accept pd.Series, pd.DataFrame and np.ndarray inputs

  • Added support for overlapping sets of seed genes in network_colocalization.calculate_expected_overlap(), with option to remove the overlapping genes from the analysis, or randomize within the overlapping seed genes.

  • Added function network_colocalization.get_p_from_permutation_results() to calculate P-value from Z-test of observed vs permuted results.

  • Added function network_colocalization.calculate_mean_z_score_distribution() to analyze mean netcoloc z-scores in addition to the size of the colocalized network.

  • requirements_dev.txt updated for python=3.13

  • Expanded unit tests for netcoloc_utils, netprop, netprop_zscore, network_colocalization and validation modules

0.1.7 (2022-06-28)

  • Removed unused network_localization.py module

0.1.6 (2022-06-16)

  • ipycytoscape added as a dependency

  • ipywidgets added as a dependency

  • Added network_colocalization.sweep_input_pvals() to sweep p-values and scores

  • Added network_colocalization.calculate_network_enrichment() to sweep over z-score thresholds

  • netprop.get_individual_heats_matrix() can take a networkx Graph object and internally call netprop.get_normalized_adjancency_matrix(). Documentation updated in both methods to note that the resulting matrices can be saved via numpy.save() and retrieved via numpy.load()

  • example_notebooks/ASD_CHD_NetColoc_analysis.ipynb now visualizes hierarchy using ipycytoscape

  • example_notebooks/ASD_CHD_NetColoc_analysis.ipynb updated with a note about using numpy.save() and numpy.load() to save and retrieve result from netprop.get_individual_heats_matrix()

0.1.5 (2022-03-09)

  • Fixed divide by zero error seen when calculating cosine distance by updating netprop.get_normalized_adjancency_matrix() to properly normalize an adjacency matrix that is asymetric (UD-1863)

0.1.4 (2021-08-31)

  • If import of DDOT package fails, only a warning message will be displayed unless user invokes netcoloc.validation.load_MPO() in which case an ImportError is raised

  • Fixed bug where z1_threshold parameter was being passed to z2_threshold parameter in netcoloc.network_cololcalization.calcualte_network_overlap method called by netcoloc.network_colocalization.calculate_network_overlap_subgraph method

0.1.3 (2021-08-18)

  • Added dependency gprofiler-official to setup.py and requirements.txt because this is used by network_colocalization.py

0.1.2 (2021-08-17)

  • Added new validation.py module containing mouse knockout database functionality

0.1.1 (2021-08-06)

  • Fixed netcoloc imports in netprop_zcore.py

0.1.0 (2021-03-10)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netcoloc-1.0.0.tar.gz (358.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netcoloc-1.0.0-py3-none-any.whl (29.2 kB view details)

Uploaded Python 3

File details

Details for the file netcoloc-1.0.0.tar.gz.

File metadata

  • Download URL: netcoloc-1.0.0.tar.gz
  • Upload date:
  • Size: 358.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for netcoloc-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8d5de996e954f82066544d52a219dc850d0fd2ae047f30d8d5d215420a93ff1a
MD5 576d5c18e0d0c132bb4ccde0a78d0809
BLAKE2b-256 cb50b4519758c80a5b47933091f0fa6e88222cf39bc4198a050eef997c9d47a0

See more details on using hashes here.

File details

Details for the file netcoloc-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: netcoloc-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 29.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for netcoloc-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cb17396bad717c90cf859beab67508325b08e9fac561362864bf084eda57e354
MD5 40b5fcd35bd7a7d339032f36e4039c1a
BLAKE2b-256 e49437f27456ed4ecc98a18b6b1141a0b90cd4d8c600c2437a07580ffec3d803

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page