Parsing, validation, and analysis of BEL graphs
Project description
PyBEL
is a Python software package that parses BEL statements, validates their semantics, applies common graph
algorithms, and allows for data interchange between common formats like Neo4J, JSON, CSV, Excel, and SQL.
Stable |
||||
Development |
Biological Expression Language (BEL) is a domain specific language that enables the expression of complex molecular relationships and their context in a machine-readable form. Its simple grammar and expressive power have led to its successful use in the IMI project, AETIONOMY, to describe complex disease networks with several thousands of relationships.
PyBEL provides a simple API so bioinformaticians and scientists with limited programming knowledge can easily use it to interface with BEL graphs, but is built on a rich framework that can be extended to develop new algorithms.
>>> import pybel, networkx
>>> g = pybel.from_url('http://resource.belframework.org/belframework/1.0/knowledge/small_corpus.bel')
>>> networkx.draw(g)
Command Line Interface
PyBEL also installs a command line interface with the command pybel
for simple utilities such as data
conversion. Need help? All logs go to ~/.pybel
or add -v
for verbose output to the standard error
stream
Export for Cytoscape
This example retrieves a BEL file from a path and exports to a GraphML file for use in Cytoscape.
$ pybel convert --path ~/Desktop/example.bel --graphml ~/Desktop/example.graphml
In Cytoscape, open with Import > Network > From File
.
Export to Neo4j
This example retrieves a BEL file from a URL, and exports to Neo4j
$ URL="http://resource.belframework.org/belframework/1.0/knowledge/small_corpus.bel"
$ NEO="neo4j:neo4j@localhost:7474"
$
$ pybel convert --url $URL --neo $NEO
Multiple Export
This example gets a file from stdin and exports to multiple locations, with logging
$ URL="http://resource.belframework.org/belframework/1.0/knowledge/small_corpus.bel"
$ NEO="neo4j:neo4j@localhost:7474"
$
$ curl $URL | pybel convert --path - --neo $NEO --json ~/Desktop/example.json --log-file ~/Desktop/log.txt
Installation
Installation is as easy as running from your favorite terminal:
pip install pybel
Currently, PyBEL
officially supports Python 2.7 and Python 3.5. Builds also pass on Python 3.4, and there
are some problems that can be solved with the installation of pandas
for Python 3.3 usage.
Contributing
Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See
CONTRIBUTING.rst
for more information on getting involved.
Acknowledgements
PyBEL is proudly built with Paul McGuire’s PyParsing package.
Scott Colby designed our logo and provided sage advice
PyBEL Core Team: Charles Tapley Hoyt, Andrej Konotopez, Christian Ebeling
Find Us
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file PyBEL-0.2.4.tar.gz
.
File metadata
- Download URL: PyBEL-0.2.4.tar.gz
- Upload date:
- Size: 180.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9ea2d9b31366168de1b38be6d6369629c3d96bdde8c51561c07ee510d52c882 |
|
MD5 | 0ad4a719aabfdb9011ac9ae41f757e11 |
|
BLAKE2b-256 | bab3286a0538c91fe438344a3be6384fcb73f848d06eae8be83c3ef9d7184264 |