Phen2Gene is a real-time phenotype-based gene prioritization tool from HPO IDs or clinical notes on patients.

API Documentation

The instructions below summarize how to use Phen2Gene's RESTful API to prioritize candidate disease genes using HPO IDs. Phen2Gene can also take Phenopackets as input. Click here to check it out.

Resource URL

To access the API, make a GET request to the following URL:


The resource will return the following response object:

  results: a list of genes ranked by association to the HPO ID(s),
  errors: a list of error messages

Resource Information

Response formats: JSON
Requires authentication: No


Name Required Description Default Value Example
HPO_list Yes HPO ID(s) separated by a semicolon None HP:0002459 or HP:0002459;HP:0010522;HP:0001662
weight_model No Method to weigh gene scores sk sk (weighted by skewness), w (ontology-based information content), ic (information content by Sanchez), or u (unweighted)

Example Requests

curl -i -H "Accept: application/json" -H "Content-Type: application/json" "https://phen2gene.wglab.org/api?HPO_list=HP:0002459"

curl -i -H "Accept: application/json" -H "Content-Type: application/json" "https://phen2gene.wglab.org/api?HPO_list=HP:0002459;HP:0010522;HP:0001662"

curl -i -H "Accept: application/json" -H "Content-Type: application/json" "https://phen2gene.wglab.org/api?HPO_list=HP:0002459;HP:0010522;HP:0001662&weight_model=sk"

Example Response

The following response is for the request https://phen2gene.wglab.org/api?HPO_list=HP:0002459. Only the first three genes and the last three genes are shown to save space.

{ "results": [ { "Gene": "ALK", "Rank": "1", "Gene ID": "238", "Score": "1.0", "Status": "SeedGene" }, { "Gene": "ATP7A", "Rank": "2", "Gene ID": "538", "Score": "0.815589", "Status": "SeedGene" }, { "Gene": "TTR", "Rank": "3", "Gene ID": "7276", "Score": "0.728405", "Status": "SeedGene" }, ... { "Gene": "PNKP", "Rank": "12870", "Gene ID": "11284", "Score": "0.0", "Status": "Predicted" }, { "Gene": "TCERG1", "Rank": "12871", "Gene ID": "10915", "Score": "0.0", "Status": "Predicted" }, { "Gene": "ZHX1", "Rank": "12872", "Gene ID": "11244", "Score": "0.0", "Status": "Predicted" } ], "errors": [ "HP:0002459 (obsolete Dysautonomia) is obsolete, and replaced by HP:0012332.\nPhen2Gene gave the weight of HP:0012332 to HP:0002459 ." ] }

Working with Phenopackets

To use a Phenopacket as the input into Phen2Gene, make a POST request to one of the two endpoints below and pass in the Phenopacket binary using the --data-binary option (see example requests below).

If you want the prioritized genes returned in JSON format, use the following endpoint:


Alternatively, if you want the genes returned in tsv format, use this endpoint:


Example Requests

curl -X POST -H "Content-type: application/x-protobuf" https://phen2gene.wglab.org/phenopacket --data-binary @<(curl https://phen2gene.s3.amazonaws.com/testphenopacket)

curl -X POST -H "Content-type: application/x-protobuf" https://phen2gene.wglab.org/phenopacket/tsv --data-binary @<(curl https://phen2gene.s3.amazonaws.com/testphenopacket)


Zhao M., Havrilla J. M., Fang L., Chen Y., Peng J., Liu C., Wu C., Sarmady M., Botas P., Isla J., Lyon G., Weng C., Wang K. (2020). Phen2Gene: Rapid Phenotype-Driven Gene Prioritization for Rare Diseases. NAR Genomics and Bioinformatics, 2(2), lqaa032. doi:10.1093/nargab/lqaa032Liu C., Peres Kury F. S., Li Z., Ta C., Wang K., & Weng C. (2019). Doc2Hpo: a web application for efficient and accurate HPO concept curation. Nucleic Acids Research, 47(W1), W566–W570. doi:10.1093/nar/gkz386