Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parse MetaCyc SBML file into graph database #4

Merged
merged 42 commits into from
Jan 20, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
8ba4a00
feat(metacyc): read metacyc SBML file and setup graph database
y1zhou Dec 14, 2021
7a83081
feat(metacyc): parse compartments and species
y1zhou Dec 16, 2021
639e6bb
feat(metacyc): prepare for parsing RDFs in annotation
y1zhou Dec 17, 2021
b0f2f84
fix(metacyc): arguments should be passed within lambda function
y1zhou Dec 17, 2021
0352323
feat(metacyc): add RDF nodes in the Annotation section
y1zhou Dec 17, 2021
8656b00
refactor(metacyc): extract function for adding RDF nodes
y1zhou Dec 17, 2021
009f366
fix(metacyc): always use metacyc ID for consistency
y1zhou Dec 17, 2021
84a58c4
feat(metacyc): parse gene products and add to graph
y1zhou Dec 17, 2021
a10f367
feat(metacyc): add reaction node basic properties and RDF links
y1zhou Dec 18, 2021
cd5a07f
feat(metacyc): add reactant and product links to reaction nodes
y1zhou Dec 18, 2021
9d21df3
feat(metacyc): add associated gene products to the reactions
y1zhou Dec 19, 2021
bb1ce55
fix(metacyc): arg passed into add_gene_product_association_node shoul…
y1zhou Dec 19, 2021
ba4989b
fix(metacyc): normalize URI before splitting
y1zhou Dec 19, 2021
6750be5
feat(metacyc): prepare for parsing pathways.dat file
y1zhou Dec 21, 2021
bc84361
test(metacyc): glycolysis pathway test files
y1zhou Dec 21, 2021
190d5f1
refactor(metacyc): make it clear which files should be parsed
y1zhou Jan 14, 2022
c8d0382
test(metacyc): reaction.dat file containing glycolysis reactions
y1zhou Jan 16, 2022
d20348c
feat(metacyc): concatenate continuation lines in .dat files
y1zhou Jan 16, 2022
a353292
feat(metacyc): read .dat file as key-attribute pairs
y1zhou Jan 16, 2022
d6b8a53
feat(metacyc): extract canonical reaction ID from the full form in gr…
y1zhou Jan 18, 2022
edfe1a2
feat(metacyc): parse additional information in reactions.dat
y1zhou Jan 18, 2022
662cdac
refactor(metacyc): extract function for adding link to citation nodes
y1zhou Jan 18, 2022
7d5a428
refactor(metacyc): change sbml reader to staticmethod
y1zhou Jan 18, 2022
af89bbf
feat(metacyc): add pathway.dat information to Pathway node properties
y1zhou Jan 18, 2022
0fd3175
feat(metacyc): link pathway nodes to super-pathways and citations
y1zhou Jan 18, 2022
5721188
refactor(metacyc): extract helper functions for converting camelcase …
y1zhou Jan 18, 2022
834b99e
fix(metacyc): ensure " - " in attribute value doesn't get split
y1zhou Jan 18, 2022
266b364
refactor(metacyc): use helper functions for adding properties to nodes
y1zhou Jan 18, 2022
f09c811
fix(metacyc): use match to skip nodes that are already created
y1zhou Jan 18, 2022
0a1afc2
feat(metacyc): parse species and taxon-range info from pathways.dat
y1zhou Jan 18, 2022
0214bee
fix(metacyc): avoid creating duplicated reaction nodes
y1zhou Jan 18, 2022
e4f608f
feat(metacyc): links between reactions, i.e. preceding events
y1zhou Jan 18, 2022
4a37e4e
fix(metacyc): change reactant/product to left/right to reflect direct…
y1zhou Jan 19, 2022
e1531ab
fix(metacyc): only replace dash in resource ID, not in ID value
y1zhou Jan 19, 2022
8a6f231
feat(metacyc): rate limiting step of pathways
y1zhou Jan 19, 2022
bead30c
feat(metacyc): primary reactants and products of pathways
y1zhou Jan 19, 2022
56d813c
feat(metacyc): parse reaction layout and add primary metabolites in p…
y1zhou Jan 19, 2022
e4c7339
feat(metacyc): parse pubs.dat and add citation annotations
y1zhou Jan 19, 2022
e01222f
refactor(metacyc): use shared session for all neo4j operations
y1zhou Jan 20, 2022
3eaf68b
refactor(metacyc): move reaction attributes inline to be consistent w…
y1zhou Jan 20, 2022
ec76534
feat(metacyc): parse classes.dat and add information on Compartment a…
y1zhou Jan 20, 2022
fc7c749
feat(metacyc): add annotation of compounds
y1zhou Jan 20, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
Metabolic reprogramming Knowledgebase
========================

A Python package that aggregates the data from BRENDA_, BioCyc_ and Reactome_ into one unified `graph database`_.
A Python package that aggregates the data from BRENDA_ and BioCyc_ into one unified `graph database`_.

.. _BRENDA: https://brenda-enzymes.org/
.. _BioCyc: https://biocyc.org/
.. _Reactome: https://reactome.org/
.. _graph database: https://neo4j.com/
4 changes: 4 additions & 0 deletions docs/_static/metacyc_schema.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@
Welcome to metabolike's documentation!
======================================

The MetaCyc (BioCyc) database is imported to a graph database using the provided SBML file.

.. image:: _static/metacyc_schema.svg
:alt: Schema of the MetaCyc database
:align: center


.. toctree::
:maxdepth: 2
:caption: Contents:
Expand Down
8 changes: 8 additions & 0 deletions docs/source/metabolike.parser.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ metabolike.parser.brenda\_transformer module
:undoc-members:
:show-inheritance:

metabolike.parser.metacyc module
--------------------------------

.. automodule:: metabolike.parser.metacyc
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

Expand Down
2 changes: 1 addition & 1 deletion metabolike/db.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from neo4j import GraphDatabase, Neo4jDriver, Transaction
from neo4j import GraphDatabase, Neo4jDriver, Session, Transaction
from neo4j.work.result import Result


Expand Down
Loading