/BioClients

Python package for access to online biomedical resources, usually via REST APIs.

Primary LanguagePythonCreative Commons Zero v1.0 UniversalCC0-1.0

BioClients BioClients logo

Python package for access to online biomedical resources, usually via REST APIs. Modules generally include Client.py for command-line use and Utils.py for integration into other code. With the advent of HTTP web services, first SOAP/XML and then mostly REST/JSON, many online APIs require very similar methods for data search, requests and transforms into usable formats, often TSV.

Availability and installation

Source at https://github.com/jeremyjyang/BioClients; releases available via pypi.org: https://pypi.org/project/BioClients/ (pip3 install BioClients).

However, current development snapshot may included additional functionality.

(First download or clone.)

$ cd BioClients
$ python3 setup.py install

Dependencies

Modules

AllenAMP-T2DBindingDbBioGridBioregistryBRENDACASCDCCFDEChem2Bio2RDFChEBIChEMBLChemIdPlusClinicalTrials.govDisease OntologyDisGeNetDNormDrugCentralEMBL-EBIEnsEMBLFDAGene OntologyGTExGWAS CatalogHUGOHumanBaseiCiteIDGJensenLabLINCSMaayanLabMedlineMeSHMONARCHMyGeneNCBONCATSOMIMOncoTreeOpen TargetsPantherPDBPubChemPubMedPubTatorReactomeRXNormSTRINGDBTCGAUBKGUMLSUniProtWikidataWikiPathways

Miscellaneous utilities: UTIL

Usage Example

$ python3 -m BioClients.pubchem.Client -h

Design pattern

Generally each module includes command-line app Client.py which calls functions in a corresponding Utils.py, providing all capabilities by import of the module. Command-line apps not API clients are generally named App.py. Functions can write to an output file or return a Pandas dataframe (if output file unspecified).

Data structures and formats, XML, JSON, and TSV

BioClients is designed to be simple and practical, and XML, JSON and TSV are likewise simple in many respects, yet a great deal of conceptual and technological progress is reflected. XML and JSON can represent arbitrarily complex data objects, comprised of nested lists, dictionaries, and trees of primary types. TSV represents tables of rows and columns, related by common keys, reflecting the development of SQL and relational databases. Transforming JSON to TSV, as these clients generally do, projects data objects to tables useful for many applications (e.g. machine learning).