{"id":13994256,"url":"https://github.com/pybel/pybel","last_synced_at":"2025-07-22T19:31:31.706Z","repository":{"id":44165559,"uuid":"68376693","full_name":"pybel/pybel","owner":"pybel","description":"🌶️ An ecosystem in Python for working with the Biological Expression Language (BEL)","archived":false,"fork":false,"pushed_at":"2024-06-26T12:15:31.000Z","size":12913,"stargazers_count":137,"open_issues_count":34,"forks_count":33,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-14T23:36:36.206Z","etag":null,"topics":["bioinformatics","biological-expression-language","bioregistry","domain-specific-language","networks","networks-biology","pybel","systems-biology"],"latest_commit_sha":null,"homepage":"http://pybel.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pybel.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-16T12:09:49.000Z","updated_at":"2025-07-08T05:23:03.000Z","dependencies_parsed_at":"2022-08-26T20:23:49.157Z","dependency_job_id":null,"html_url":"https://github.com/pybel/pybel","commit_stats":null,"previous_names":[],"tags_count":99,"template":false,"template_full_name":null,"purl":"pkg:github/pybel/pybel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybel%2Fpybel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybel%2Fpybel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybel%2Fpybel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybel%2Fpybel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pybel","download_url":"https://codeload.github.com/pybel/pybel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybel%2Fpybel/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266561212,"owners_count":23948619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["bioinformatics","biological-expression-language","bioregistry","domain-specific-language","networks","networks-biology","pybel","systems-biology"],"created_at":"2024-08-09T14:02:47.516Z","updated_at":"2025-07-22T19:31:30.219Z","avatar_url":"https://github.com/pybel.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"PyBEL |zenodo| |build| |coverage| |documentation| |bioregistry| |black|\n=======================================================================\n`PyBEL \u003chttp://pybel.readthedocs.io\u003e`_ is a pure Python package for parsing and handling biological networks encoded in\nthe `Biological Expression Language \u003chttps://biological-expression-language.github.io/\u003e`_\n(BEL).\n\nIt facilitates data interchange between data formats like `NetworkX \u003chttp://networkx.github.io/\u003e`_,\nNode-Link JSON, `JGIF \u003chttps://github.com/jsongraph/json-graph-specification\u003e`_, CSV, SIF,\n`Cytoscape \u003chttp://www.cytoscape.org/\u003e`_, `CX \u003chttp://www.home.ndexbio.org/data-model/\u003e`_,\n`INDRA \u003chttps://github.com/sorgerlab/indra\u003e`_, and `GraphDati \u003chttps://github.com/graphdati/schemas\u003e`_; database systems\nlike SQL and `Neo4J \u003chttps://neo4j.com\u003e`_; and web services like `NDEx \u003chttps://github.com/pybel/pybel2cx\u003e`_,\n`BioDati Studio \u003chttps://biodati.com/\u003e`_, and `BEL Commons \u003chttps://bel-commons-dev.scai.fraunhofer.de\u003e`_. It also\nprovides exports for analytical tools like `HiPathia \u003chttp://hipathia.babelomics.org/\u003e`_,\n`Drug2ways \u003chttps://github.com/drug2ways/\u003e`_ and `SPIA \u003chttps://bioconductor.org/packages/release/bioc/html/SPIA.html\u003e`_;\nmachine learning tools like `PyKEEN \u003chttps://github.com/smartdataanalytics/biokeen\u003e`_ and\n`OpenBioLink \u003chttps://github.com/OpenBioLink/OpenBioLink#biological-expression-language-bel-writer\u003e`_; and others.\n\nIts companion package, `PyBEL Tools \u003chttp://pybel-tools.readthedocs.io/\u003e`_, contains a\nsuite of functions and pipelines for analyzing the resulting biological networks.\n\nWe realize that we have a name conflict with the python wrapper for the cheminformatics package, OpenBabel. If you're\nlooking for their python wrapper, see `here \u003chttps://github.com/openbabel/openbabel/tree/master/scripts/python\u003e`_.\n\nCitation\n--------\nIf you find PyBEL useful for your work, please consider citing:\n\n.. [1] Hoyt, C. T., *et al.* (2017). `PyBEL: a Computational Framework for Biological Expression Language\n       \u003chttps://doi.org/10.1093/bioinformatics/btx660\u003e`_. *Bioinformatics*, 34(December), 1–2.\n\nInstallation |pypi_version| |python_versions| |pypi_license|\n------------------------------------------------------------\nPyBEL can be installed easily from `PyPI \u003chttps://pypi.python.org/pypi/pybel\u003e`_ with the following code in\nyour favorite shell:\n\n.. code-block:: sh\n\n    $ pip install pybel\n\nor from the latest code on `GitHub \u003chttps://github.com/pybel/pybel\u003e`_ with:\n\n.. code-block:: sh\n\n    $ pip install git+https://github.com/pybel/pybel.git\n\nSee the `installation documentation \u003chttps://pybel.readthedocs.io/en/latest/introduction/installation.html\u003e`_ for more advanced\ninstructions. Also, check the change log at `CHANGELOG.rst \u003chttps://github.com/pybel/pybel/blob/master/CHANGELOG.rst\u003e`_.\n\nGetting Started\n---------------\nMore examples can be found in the `documentation \u003chttp://pybel.readthedocs.io\u003e`_ and in the\n`PyBEL Notebooks \u003chttps://github.com/pybel/pybel-notebooks\u003e`_ repository.\n\nCompiling and Saving a BEL Graph\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nThis example illustrates how the a BEL document from the `Human Brain Pharmacome\n\u003chttps://raw.githubusercontent.com/pharmacome/conib\u003e`_ project can be loaded and compiled directly from GitHub.\n\n.. code-block:: python\n\n   \u003e\u003e\u003e import pybel\n   \u003e\u003e\u003e url = 'https://raw.githubusercontent.com/pharmacome/conib/master/hbp_knowledge/proteostasis/kim2013.bel'\n   \u003e\u003e\u003e graph = pybel.from_bel_script_url(url)\n\nOther functions for loading BEL content from many formats can be found in the\n`I/O documentation \u003chttps://pybel.readthedocs.io/en/latest/reference/io.html\u003e`_.\nNote that PyBEL can handle `BEL 1.0 \u003chttps://github.com/OpenBEL/language/raw/master/docs/version_1.0/bel_specification_version_1.0.pdf\u003e`_\nand `BEL 2.0+ \u003chttps://github.com/OpenBEL/language/raw/master/docs/version_2.0/bel_specification_version_2.0.pdf\u003e`_\nsimultaneously.\n\nAfter you have a BEL graph, there are numerous ways to save it. The ``pybel.dump`` function knows\nhow to output it in many formats based on the file extension you give. For all of the possibilities,\ncheck the `I/O documentation \u003chttps://pybel.readthedocs.io/en/latest/reference/io.html\u003e`_.\n\n.. code-block:: python\n\n   \u003e\u003e\u003e import pybel\n   \u003e\u003e\u003e graph = ...\n   \u003e\u003e\u003e # write as BEL\n   \u003e\u003e\u003e pybel.dump(graph, 'my_graph.bel')\n   \u003e\u003e\u003e # write as Node-Link JSON for network viewers like D3\n   \u003e\u003e\u003e pybel.dump(graph, 'my_graph.bel.nodelink.json')\n   \u003e\u003e\u003e # write as GraphDati JSON for BioDati\n   \u003e\u003e\u003e pybel.dump(graph, 'my_graph.bel.graphdati.json')\n   \u003e\u003e\u003e # write as CX JSON for NDEx\n   \u003e\u003e\u003e pybel.dump(graph, 'my_graph.bel.cx.json')\n   \u003e\u003e\u003e # write as INDRA JSON for INDRA\n   \u003e\u003e\u003e pybel.dump(graph, 'my_graph.indra.json')\n\nSummarizing the Contents of the Graph\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nThe ``BELGraph`` object has several \"dispatches\" which are properties that organize its various functionalities.\nOne is the ``BELGraph.summarize`` dispatch, which allows for printing summaries to the console.\n\nThese examples will use the `RAS Model \u003chttps://emmaa.indra.bio/dashboard/rasmodel?tab=model\u003e`_  from EMMAA,\nso you'll have to be sure to ``pip install indra`` first. The graph can be acquired and summarized with\n``BELGraph.summarize.statistics()`` as in:\n\n.. code-block:: python\n\n    \u003e\u003e\u003e import pybel\n    \u003e\u003e\u003e graph = pybel.from_emmaa('rasmodel', date='2020-05-29-17-31-58')  # Needs\n    \u003e\u003e\u003e graph.summarize.statistics()\n    ---------------------  -------------------\n    Name                   rasmodel\n    Version                2020-05-29-17-31-58\n    Number of Nodes        126\n    Number of Namespaces   5\n    Number of Edges        206\n    Number of Annotations  4\n    Number of Citations    1\n    Number of Authors      0\n    Network Density        1.31E-02\n    Number of Components   1\n    Number of Warnings     0\n    ---------------------  -------------------\n\nThe number of nodes of each type can be summarized with ``BELGraph.summarize.nodes()`` as in:\n\n.. code-block:: python\n\n    \u003e\u003e\u003e graph.summarize.nodes(examples=False)\n    Type (3)        Count\n    ------------  -------\n    Protein            97\n    Complex            27\n    Abundance           2\n\n\nThe number of nodes with each namespace can be summarized with ``BELGraph.summarize.namespaces()`` as in:\n\n.. code-block:: python\n\n    \u003e\u003e\u003e graph.summarize.namespaces(examples=False)\n    Namespace (4)      Count\n    ---------------  -------\n    HGNC                  94\n    FPLX                   3\n    CHEBI                  1\n    TEXT                   1\n\nThe edges can be summarized with ``BELGraph.summarize.edges()`` as in:\n\n.. code-block:: python\n\n    \u003e\u003e\u003e graph.summarize.edges(examples=False)\n    Edge Type (12)                       Count\n    ---------------------------------  -------\n    Protein increases Protein               64\n    Protein hasVariant Protein              48\n    Protein partOf Complex                  47\n    Complex increases Protein               20\n    Protein decreases Protein                9\n    Complex directlyIncreases Protein        8\n    Protein increases Complex                3\n    Abundance partOf Complex                 3\n    Protein increases Abundance              1\n    Complex partOf Complex                   1\n    Protein decreases Abundance              1\n    Abundance decreases Protein              1\n\nGrounding the Graph\n~~~~~~~~~~~~~~~~~~~\nNot all BEL graphs contain both the name and identifier for each entity. Some even use non-standard prefixes\n(also called **namespaces** in BEL). Usually, BEL graphs are validated against controlled vocabularies,\nso the following demo shows how to add the corresponding identifiers to all nodes.\n\n.. code-block:: python\n\n    from urllib.request import urlretrieve\n\n    url = 'https://github.com/cthoyt/selventa-knowledge/blob/master/selventa_knowledge/large_corpus.bel.nodelink.json.gz'\n    urlretrieve(url, 'large_corpus.bel.nodelink.json.gz')\n\n    import pybel\n    graph = pybel.load('large_corpus.bel.nodelink.json.gz')\n\n    import pybel.grounding\n    grounded_graph = pybel.grounding.ground(graph)\n\nNote: you have to install ``pyobo`` for this to work and be running Python 3.7+.\n\nDisplaying a BEL Graph in Jupyter\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nAfter installing ``jinja2`` and ``ipython``, BEL graphs can be displayed in Jupyter notebooks.\n\n.. code-block:: python\n\n   \u003e\u003e\u003e from pybel.examples import sialic_acid_graph\n   \u003e\u003e\u003e from pybel.io.jupyter import to_jupyter\n   \u003e\u003e\u003e to_jupyter(sialic_acid_graph)\n\nUsing the Parser\n~~~~~~~~~~~~~~~~\nIf you don't want to use the ``pybel.BELGraph`` data structure and just want to turn BEL statements into JSON\nfor your own purposes, you can directly use the ``pybel.parse()`` function.\n\n.. code-block:: python\n\n    \u003e\u003e\u003e import pybel\n    \u003e\u003e\u003e pybel.parse('p(hgnc:4617 ! GSK3B) regulates p(hgnc:6893 ! MAPT)')\n    {'source': {'function': 'Protein', 'concept': {'namespace': 'hgnc', 'identifier': '4617', 'name': 'GSK3B'}}, 'relation': 'regulates', 'target': {'function': 'Protein', 'concept': {'namespace': 'hgnc', 'identifier': '6893', 'name': 'MAPT'}}}\n\nThis functionality can also be exposed through a Flask-based web application with ``python -m pybel.apps.parser`` after\ninstalling ``flask`` with ``pip install flask``. Note that the first run requires about a ~2 second delay to generate\nthe parser, after which each parse is very fast.\n\nUsing the CLI\n~~~~~~~~~~~~~\nPyBEL also installs a command line interface with the command :code:`pybel` for simple utilities such as data\nconversion. In this example, a BEL document is compiled then exported to `GraphML \u003chttp://graphml.graphdrawing.org/\u003e`_\nfor viewing in Cytoscape.\n\n.. code-block:: sh\n\n    $ pybel compile ~/Desktop/example.bel\n    $ pybel serialize ~/Desktop/example.bel --graphml ~/Desktop/example.graphml\n\nIn Cytoscape, open with :code:`Import \u003e Network \u003e From File`.\n\nContributing\n------------\nContributions, whether filing an issue, making a pull request, or forking, are appreciated. See\n`CONTRIBUTING.rst \u003chttps://github.com/pybel/pybel/blob/master/CONTRIBUTING.rst\u003e`_ for more information on getting\ninvolved.\n\nAcknowledgements\n----------------\nSupport\n~~~~~~~\nThe development of PyBEL has been supported by several projects/organizations (in alphabetical order):\n\n- `The Cytoscape Consortium \u003chttps://cytoscape.org/\u003e`_\n- `Enveda Biosciences \u003chttps://envedabio.com/\u003e`_\n- `Fraunhofer Center for Machine Learning \u003chttps://www.cit.fraunhofer.de/de/zentren/maschinelles-lernen.html\u003e`_\n- `Fraunhofer Institute for Algorithms and Scientific Computing (SCAI) \u003chttps://www.scai.fraunhofer.de\u003e`_\n- `Harvard Program in Therapeutic Science - Laboratory of Systems Pharmacology \u003chttps://hits.harvard.edu/the-program/laboratory-of-systems-pharmacology\u003e`_\n- `University of Bonn \u003chttps://www.uni-bonn.de\u003e`_\n\nFunding\n~~~~~~~\n- DARPA Young Faculty Award W911NF2010255 (PI: Benjamin M. Gyori).\n- The `European Union \u003chttps://europa.eu\u003e`_, `European Federation of Pharmaceutical Industries and Associations\n  (EFPIA) \u003chttps://www.efpia.eu/\u003e`_, and `Innovative Medicines Initiative \u003chttps://www.imi.europa.eu\u003e`_ Joint\n  Undertaking under `AETIONOMY \u003chttps://www.aetionomy.eu/\u003e`_ [grant number 115568], resources of which\n  are composed of financial contribution from the European Union's Seventh Framework Programme (FP7/2007-2013) and\n  EFPIA companies in kind contribution.\n\nLogo\n~~~~\nThe PyBEL `logo \u003chttps://github.com/pybel/pybel-art\u003e`_ was designed by `Scott Colby \u003chttps://github.com/scolby33\u003e`_.\n\n.. |build| image:: https://github.com/pybel/pybel/workflows/Tests/badge.svg\n    :target: https://github.com/pybel/pybel/actions\n    :alt: Build Status\n\n.. |coverage| image:: https://codecov.io/gh/pybel/pybel/coverage.svg?branch=develop\n    :target: https://codecov.io/gh/pybel/pybel/branch/develop\n    :alt: Development Coverage Status\n\n.. |documentation| image:: https://readthedocs.org/projects/pybel/badge/?version=latest\n    :target: http://pybel.readthedocs.io/en/latest/\n    :alt: Development Documentation Status\n\n.. |climate| image:: https://codeclimate.com/github/pybel/pybel/badges/gpa.svg\n    :target: https://codeclimate.com/github/pybel/pybel\n    :alt: Code Climate\n\n.. |python_versions| image:: https://img.shields.io/pypi/pyversions/PyBEL.svg\n    :target: https://pypi.python.org/pypi/pybel\n    :alt: Stable Supported Python Versions\n\n.. |pypi_version| image:: https://img.shields.io/pypi/v/PyBEL.svg\n    :target: https://pypi.python.org/pypi/pybel\n    :alt: Current version on PyPI\n\n.. |pypi_license| image:: https://img.shields.io/pypi/l/PyBEL.svg\n    :target: https://github.com/pybel/pybel/blob/master/LICENSE\n    :alt: MIT License\n\n.. |zenodo| image:: https://zenodo.org/badge/68376693.svg\n    :target: https://zenodo.org/badge/latestdoi/68376693\n\n.. |bioregistry| image:: https://img.shields.io/static/v1?label=Powered%20by\u0026message=Bioregistry\u0026color=BA274A\u0026style=flat\u0026logo=image/png;base64,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\n    :target: https://github.com/biopragmatics/bioregistry\n    :alt: Powered by the Bioregistry\n\n.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/psf/black\n    :alt: Code style: black\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpybel%2Fpybel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpybel%2Fpybel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpybel%2Fpybel/lists"}