biomedical-kg-topological-imbalance

Code to accompany the "Implications of Topological Imbalance for Representation Learning on Biomedical Knowledge Graphs" (Briefings in Bioinformatics, 2022)

https://github.com/astrazeneca/biomedical-kg-topological-imbalance

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.4%) to scientific vocabulary

Keywords

drug-discovery drug-discovery-knowledge-graph knowledge-graph knowledge-graph-completion target-prediction
Last synced: 6 months ago · JSON representation ·

Repository

Code to accompany the "Implications of Topological Imbalance for Representation Learning on Biomedical Knowledge Graphs" (Briefings in Bioinformatics, 2022)

Basic Info
Statistics
  • Stars: 17
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 3
Topics
drug-discovery drug-discovery-knowledge-graph knowledge-graph knowledge-graph-completion target-prediction
Created about 4 years ago · Last pushed 10 months ago
Metadata Files
Readme Contributing License Citation Authors

README.md

Biomedical KG Topological Imbalance

Maturity level-1 Arxiv PyPI pyversions Code style: black License

This repository accompanies our paper Implications of Topological Imbalance for Representation Learning on Biomedical Knowledge Graphs and enables replication of the key results.

Notebooks

This repository contains four jupyter notebooks which replicate the key results and figures from the manuscript. The notebooks are:

  • target_prediction.ipynb: This notebook replicates the primary finding of the work and shows how the degree of genes in Hetionet correlates with their predicted score for association with various diseases.
  • trivial_relations.ipynb: This notebook explores how the presence of other relationship types between a given gene-disease pair can influence the score of the associates relationship.
  • other_models.ipynb: The notebook explores the entity degree to predicted score across three other models: DistMult, RotatE and TransH.
  • other_tasks.ipynb: The notebook explores the entity degree to predicted score across three other tasks: Drug Repositioning, Protein-Protein Interaction and Drug-Target Interaction.

Installation Dependencies

The dependencies required to run the notebooks can be installed as follows:

shell $ pip install -r requirements.txt

The code relies primarily on the PyKEEN package, which uses PyTorch behind the scenes for gradient computation. If you are planning to retrain the models, instead of using the pretrained weight file provided as part of this repository, it would be advisable to ensure you install a GPU enabled version of PyTorch first. Details on how to do this are provided here.

Model

A pretrained version of the TransE model is provided in the artifacts directory. This version is automatically used in the notebooks.

Due to the size of weight files for the other models used in the study, they were unable to be included in main repository. However, the files are available for download as part of the release of the repository here. Once the files have been downloaded, please place them in the artifacts directory if you wish to use them.

Note that the code is provided to retrain any of the models in the train.py file in the src directory.

Citation

Please consider citing the paper for this repo if you find it useful:

@article{bonner2022implications, author = {Bonner, Stephen and Kirik, Ufuk and Engkvist, Ola and Tang, Jian and Barrett, Ian P}, title = {Implications of topological imbalance for representation learning on biomedical knowledge graphs}, journal = {Briefings in Bioinformatics}, year = {2022}, month = {07}, doi = {10.1093/bib/bbac279}, }

License

Owner

  • Name: AstraZeneca
  • Login: AstraZeneca
  • Kind: organization
  • Location: Global

Data and AI: Unlocking new science insights

Citation (CITATION.bib)

@article{bonner2022implications,
    author = {Bonner, Stephen and Kirik, Ufuk and Engkvist, Ola and Tang, Jian and Barrett, Ian P},
    title = {Implications of topological imbalance for representation learning on biomedical knowledge graphs},
    journal = {Briefings in Bioinformatics},
    year = {2022},
    month = {07},
    doi = {10.1093/bib/bbac279},
}

GitHub Events

Total
  • Watch event: 1
  • Delete event: 7
  • Push event: 2
  • Pull request event: 12
  • Create event: 6
Last Year
  • Watch event: 1
  • Delete event: 7
  • Push event: 2
  • Pull request event: 12
  • Create event: 6

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 0
  • Total pull requests: 38
  • Average time to close issues: N/A
  • Average time to close pull requests: 7 days
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 38
  • Bot issues: 0
  • Bot pull requests: 37
Past Year
  • Issues: 0
  • Pull requests: 9
  • Average time to close issues: N/A
  • Average time to close pull requests: 12 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 9
Top Authors
Issue Authors
Pull Request Authors
  • dependabot[bot] (53)
  • sbonner0 (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (53) python (7)

Dependencies

requirements.txt pypi
  • Jinja2 ==3.0.3
  • Mako ==1.1.6
  • MarkupSafe ==2.0.1
  • Pillow ==9.0.1
  • PyYAML ==6.0
  • Pygments ==2.11.2
  • SQLAlchemy ==1.4.31
  • Send2Trash ==1.8.0
  • alembic ==1.7.6
  • appnope ==0.1.2
  • argon2-cffi ==21.3.0
  • argon2-cffi-bindings ==21.2.0
  • asttokens ==2.0.5
  • attrs ==21.4.0
  • autopage ==0.5.0
  • backcall ==0.2.0
  • black ==22.1.0
  • bleach ==4.1.0
  • certifi ==2021.10.8
  • cffi ==1.15.0
  • charset-normalizer ==2.0.12
  • class-resolver ==0.3.3
  • click ==8.0.3
  • click-default-group ==1.2.2
  • cliff ==3.10.0
  • cmaes ==0.8.2
  • cmd2 ==2.3.3
  • colorlog ==6.6.0
  • cycler ==0.11.0
  • dataclasses-json ==0.5.6
  • debugpy ==1.5.1
  • decorator ==5.1.1
  • defusedxml ==0.7.1
  • docdata ==0.0.3
  • entrypoints ==0.4
  • executing ==0.8.2
  • fonttools ==4.29.1
  • greenlet ==1.1.2
  • idna ==3.3
  • ipykernel ==6.9.1
  • ipython ==8.0.1
  • ipython-genutils ==0.2.0
  • jedi ==0.18.1
  • joblib ==1.1.0
  • jsonschema ==4.4.0
  • jupyter-client ==7.1.2
  • jupyter-core ==4.9.2
  • jupyterlab-pygments ==0.1.2
  • kiwisolver ==1.3.2
  • marshmallow ==3.14.1
  • marshmallow-enum ==1.5.1
  • matplotlib ==3.5.1
  • matplotlib-inline ==0.1.3
  • mistune ==0.8.4
  • more-click ==0.0.6
  • more-itertools ==8.12.0
  • mypy-extensions ==0.4.3
  • nbclient ==0.5.11
  • nbconvert ==6.4.2
  • nbformat ==5.1.3
  • nest-asyncio ==1.5.4
  • networkx ==2.6.3
  • notebook ==6.4.12
  • numpy ==1.22.2
  • optuna ==2.10.0
  • packaging ==21.3
  • pandas ==1.3.5
  • pandocfilters ==1.5.0
  • parso ==0.8.3
  • pathspec ==0.9.0
  • pbr ==5.8.1
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • platformdirs ==2.5.0
  • prettytable ==3.1.1
  • prometheus-client ==0.13.1
  • prompt-toolkit ==3.0.28
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.2
  • pycparser ==2.21
  • pyparsing ==3.0.7
  • pyperclip ==1.8.2
  • pyrsistent ==0.18.1
  • pystow ==0.4.0
  • python-dateutil ==2.8.2
  • pytz ==2021.3
  • pyzmq ==22.3.0
  • requests ==2.27.1
  • rexmex ==0.1.0
  • scikit-learn ==1.0.2
  • scipy ==1.8.0
  • seaborn ==0.11.2
  • six ==1.16.0
  • sklearn ==0.0
  • stack-data ==0.2.0
  • stevedore ==3.5.0
  • tabulate ==0.8.9
  • terminado ==0.13.1
  • testpath ==0.5.0
  • threadpoolctl ==3.1.0
  • tokenize-rt ==4.2.1
  • tomli ==2.0.1
  • torch ==1.10.2
  • tornado ==6.1
  • tqdm ==4.62.3
  • traitlets ==5.1.1
  • typing-inspect ==0.7.1
  • typing_extensions ==4.1.1
  • urllib3 ==1.26.8
  • wcwidth ==0.2.5
  • webencodings ==0.5.1