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``

.. code:: shell

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
-----------------

.. code:: python

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

.. code:: shell

dot -Tpdf test.dot > test.pdf

.. figure:: https://cloud.githubusercontent.com/assets/2606663/8106301/ab9ec4e8-1048-11e5-8ea0-63eb77db08d9.png
:alt: Example output

Example output
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.2.2.tar.gz (4.5 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