Skip to main content

Parse OBO formatted ontologies into networkx

Project description

Build Status

Read OBO-formatted ontologies in Python. obonet is

This Python 3.4+ package loads OBO serialized ontologies into networks. The function obonet.read_obo() takes an .obo file and returns a `networkx.MultiDiGraph <http://networkx.readthedocs.io/en/stable/reference/classes.multidigraph.html>`__ representation of the ontology. The parser was designed for the OBO specification version 1.2 & 1.4.

Usage

This package is designed and tested on python ≥ 3.4. OBO files can be read from a path, URL, or open file handle. Compression is inferred from the path’s extension. See example usage below:

import networkx
import obonet

# Read the taxrank ontology
url = 'https://github.com/dhimmel/obonet/raw/master/tests/data/taxrank.obo'
graph = obonet.read_obo(url)

# Or read the xz-compressed taxrank ontology
url = 'https://github.com/dhimmel/obonet/raw/master/tests/data/taxrank.obo.xz'
graph = obonet.read_obo(url)

# Number of nodes
len(graph)

# Number of edges
graph.number_of_edges()

# Check if the ontology is a DAG
networkx.is_directed_acyclic_graph(graph)

# Mapping from term ID to name
id_to_name = {id_: data['name'] for id_, data in graph.nodes(data=True)}
id_to_name['TAXRANK:0000006']  # TAXRANK:0000006 is species

# Find all superterms of species. Note that networkx.descendants gets
# superterms, while networkx.ancestors returns subterms.
networkx.descendants(graph, 'TAXRANK:0000006')

For a more detailed tutorial, see the **Gene Ontology example notebook**.

Installation

PyPI

The recommended approach is to install the latest release from PyPI using:

pip install obonet

However, if you’d like to install the most recent version from GitHub, use:

pip install git+https://github.com/dhimmel/obonet.git#egg=obonet

Contributing

GitHub issues

We welcome feature suggestions and community contributions. Currently, only reading OBO files is supported. Please open an issue if you’re interested in writing OBO files in Python.

Release instructions

This section is only relevant for project maintainers. Travis CI deployments are used to upload releases to PyPI. To create a new release, do the following:

  1. Bump the __version__ in `obonet/__init__.py <obonet/__init__.py>`__.

  2. Run the following commands:

sh TAG=v`python setup.py --version` git add obonet/__init__.py git commit --message="Upgrade to $TAG" git push git tag --annotate $TAG --message="Upgrade to $TAG" git push --tags

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

obonet-0.2.1.tar.gz (5.4 kB view details)

Uploaded Source

Built Distributions

obonet-0.2.1-py3.6.egg (9.7 kB view details)

Uploaded Source

obonet-0.2.1-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file obonet-0.2.1.tar.gz.

File metadata

  • Download URL: obonet-0.2.1.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for obonet-0.2.1.tar.gz
Algorithm Hash digest
SHA256 e566b6694c6ad008738eba54745c4145e639c1bcaa9ddfc2600de648496a7c69
MD5 aee088b15144ab49662c4c5b829f6f17
BLAKE2b-256 97f691bb5fd8eab322a73c1a1efd6bf1d3a33b70f5499a466d483604133f1844

See more details on using hashes here.

File details

Details for the file obonet-0.2.1-py3.6.egg.

File metadata

  • Download URL: obonet-0.2.1-py3.6.egg
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for obonet-0.2.1-py3.6.egg
Algorithm Hash digest
SHA256 5f77ff6e1e66a6ed1f4782a014d21536230d5ab5fb54370594407a4ab2e4df4b
MD5 569ec1cee9d059bd85dd8995df246224
BLAKE2b-256 535258ead98ce5fe48eb8eb5730a4be8323f4a91a2b7af9a2194fc9306dc7352

See more details on using hashes here.

File details

Details for the file obonet-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for obonet-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aeca8a617d0a3eb96ad8ed338669d8408a87de5fe9fe449487e308778ede022c
MD5 13dae743a8460d8cf3cff5586280b796
BLAKE2b-256 03cc720970a1beb1db1b59417ea76fe6469ab2c197f300bee3cec2a12e0b5df5

See more details on using hashes here.

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