Mapping HPO Codes with Their Corresponding Genes and Related Phenotypes

Description

This model maps HPO codes to their associated gene(s), and for each gene returns the phenotype terms associated with that gene elsewhere in the Human Phenotype Ontology (HPO). Codes linked to more than one gene return every associated gene’s phenotype list via the all_k_resolutions metadata field. Trained on the Human Phenotype Ontology (HPO) 2026-06-23 release.

Live Demo Open in Colab Copy S3 URI

How to use


document_assembler = DocumentAssembler()\
    .setInputCol("text")\
    .setOutputCol("document")

chunk_assembler = Doc2Chunk()\
    .setInputCols(["document"])\
    .setOutputCol("hpo_code")

hpo_code_gene_disease_mapper = ChunkMapperModel.pretrained("hpo_code_gene_disease_mapper", "en", "clinical/models")\
    .setInputCols(["hpo_code"])\
    .setOutputCol("mappings")\
    .setRels(["hpo_gene_disease"])

pipeline = Pipeline(stages=[document_assembler, chunk_assembler, hpo_code_gene_disease_mapper])
data = spark.createDataFrame([["HP:0000002"], ["HP:6001080"], ["HP:0009484"]]).toDF("text")
result = pipeline.fit(data).transform(data)


document_assembler = nlp.DocumentAssembler()\
    .setInputCol("text")\
    .setOutputCol("document")

chunk_assembler = nlp.Doc2Chunk()\
    .setInputCols(["document"])\
    .setOutputCol("hpo_code")

hpo_code_gene_disease_mapper = medical.ChunkMapperModel.pretrained("hpo_code_gene_disease_mapper", "en", "clinical/models")\
    .setInputCols(["hpo_code"])\
    .setOutputCol("mappings")\
    .setRels(["hpo_gene_disease"])

pipeline = nlp.Pipeline(stages=[document_assembler, chunk_assembler, hpo_code_gene_disease_mapper])
data = spark.createDataFrame([["HP:0000002"], ["HP:6001080"], ["HP:0009484"]]).toDF("text")
result = pipeline.fit(data).transform(data)


val documentAssembler = new DocumentAssembler()
    .setInputCol("text")
    .setOutputCol("document")

val chunkAssembler = new Doc2Chunk()
    .setInputCols("document")
    .setOutputCol("hpo_code")

val hpoCodeGeneDiseaseMapper = ChunkMapperModel
    .pretrained("hpo_code_gene_disease_mapper", "en", "clinical/models")
    .setInputCols(Array("hpo_code"))
    .setOutputCol("mappings")
    .setRels(Array("hpo_gene_disease"))

val pipeline = new Pipeline().setStages(Array(documentAssembler, chunkAssembler, hpoCodeGeneDiseaseMapper))
val data = Seq("HP:0000002", "HP:6001080", "HP:0009484").toDF("text")
val result = pipeline.fit(data).transform(data)

Results

| hpo_code   |   n_genes | gene_disease                                                                                                                                              | all_k_resolutions                                                                                                                                         |
|:-----------|----------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------|
| HP:0000002 |        25 | {"TBCB": ["polyneuropathy", "motor delay", "hypotonia", "intellectual disability", "spasticity", "slender finger", "interictal eeg abnormality", "abno... | {"TBCB": ["polyneuropathy", "motor delay", "hypotonia", "intellectual disability", "spasticity", "slender finger", "interictal eeg abnormality", "abno... |
| HP:6001080 |         1 | {"HSD11B1": ["abnormal circulating deoxycorticosterone level", "autosomal dominant inheritance", "elevated serum 11-deoxycortisol", "decreased circula... | {"HSD11B1": ["abnormal circulating deoxycorticosterone level", "autosomal dominant inheritance", "elevated serum 11-deoxycortisol", "decreased circula... |
| HP:0009484 |         2 | {"SHH": ["abnormal thumb morphology", "hand polydactyly", "poor speech", "expressive language delay", "limb dystonia", "oromotor apraxia", "single nar... | {"SHH": ["abnormal thumb morphology", "hand polydactyly", "poor speech", "expressive language delay", "limb dystonia", "oromotor apraxia", "single nar... |

Model Information

Model Name: hpo_code_gene_disease_mapper
Compatibility: Healthcare NLP 6.4.0+
License: Licensed
Edition: Official
Input Labels: [ner_chunk]
Output Labels: [mappings]
Language: en
Size: 122.3 MB