Skip to main content

GO enrichment with python -- pandas meets networkx

Project description

goenrich

Convenient GO enrichments from python. For use in python projects.

  1. Builds the GO-ontology graph

  2. Propagates GO-annotations up the graph

  3. Performs enrichment test for all categories

  4. Performs multiple testing correction

  5. Allows for export to graphviz for visualization

Installation

Install package from pypi and download annotations from geneontology.org

pip install goenrich
mkdir db
wget http://purl.obolibrary.org/obo/go/go-basic.obo -O db/go-basic.obo
wget http://geneontology.org/gene-associations/gene_association.goa_ref_human.gz -O db/gene_association.goa_ref_human.gz

Run GO enrichment

import goenrich

# use all associations as background
background = goenrich.goa.read('db/gene_association.goa_ref_human.gz')
# extract some list of UniprotACC as query
query = set(background['db_object_id'].unique()[:20])

# build the ontology and apply background
G = goenrich.obo.graph('db/go-basic.obo')
goenrich.enrich.set_background(G, background)

# run enrichment analysis, correct for multiple testing
# and export to graphviz
pvalues = goenrich.enrich.calculate_pvalues(G, query)
goenrich.enrich.multiple_testing_correction(G, pvalues)
sig = goenrich.enrich.filter_significant(G)
R = goenrich.export.to_graphviz(G, sig, 'test.dot')

Generate pdf using graphviz

dot -Tpdf test.dot > test.pdf

Example output

Parameters

enrich.calculate_pvalues: min_category_size = 2

Licence

This work is licenced under the MIT licence

Contributions are welcome!

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

goenrich-0.3.tar.gz (4.9 kB view hashes)

Uploaded Source

Supported by

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