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 |