Skip to content

Commit

Permalink
Add OncoTree (#20)
Browse files Browse the repository at this point in the history
* Add initial OncoTree getter

* Add oncotree homepage

* linting fixes

Co-authored-by: Charles Tapley Hoyt <cthoyt@gmail.com>
  • Loading branch information
jsstevenson and cthoyt authored Oct 3, 2021
1 parent a119202 commit 3a9c486
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/bioversions/sources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
from .npass import NPASSGetter
from .obo import iter_obo_getters
from .ols import extend_ols_getters
from .oncotree import OncoTreeGetter
from .pathbank import PathBankGetter
from .pfam import PfamGetter
from .pombase import PombaseGetter
Expand Down Expand Up @@ -94,6 +95,7 @@ def get_getters() -> List[Type[Getter]]:
NCItGetter,
RxNormGetter,
ChemIDplusGetter,
OncoTreeGetter,
MOAlmanacGetter,
]
getters.extend(iter_obo_getters())
Expand Down
40 changes: 40 additions & 0 deletions src/bioversions/sources/oncotree.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-

"""A getter for OncoTree."""

import requests

from ..utils import Getter, VersionType


__all__ = [
"OncoTreeGetter",
]


class OncoTreeGetter(Getter):
"""A getter for OncoTree."""

bioregistry_id = "oncotree"
name = "OncoTree"
homepage_fmt = "http://oncotree.mskcc.org/api/tumorTypes?version=oncotree_{version}"
version_type = VersionType.date
date_version_fmt = "%Y-%m-%d"

def get(self) -> str:
"""Get the latest OncoTree version number."""
res = requests.get("http://oncotree.mskcc.org/api/versions", params={"format": "json"})
res_json = res.json()
version = next(
(r["release_date"] for r in res_json if r["api_identifier"] == "oncotree_latest_stable")
)
return version

@staticmethod
def homepage_version_transform(version: str) -> str:
"""Reformat version value for OncoTree data URL."""
return version.replace("-", "_")


if __name__ == "__main__":
OncoTreeGetter.print()

0 comments on commit 3a9c486

Please sign in to comment.