{"id":38676520,"url":"https://github.com/wglab/phenoss","last_synced_at":"2026-01-17T10:01:12.649Z","repository":{"id":243733094,"uuid":"813272497","full_name":"WGLab/PhenoSS","owner":"WGLab","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-10T19:38:51.000Z","size":33,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T20:34:08.976Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WGLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-10T20:04:46.000Z","updated_at":"2025-02-10T19:38:54.000Z","dependencies_parsed_at":"2024-06-10T23:23:37.776Z","dependency_job_id":"d703557b-09f7-49fc-b0dc-2891e432a41c","html_url":"https://github.com/WGLab/PhenoSS","commit_stats":null,"previous_names":["wglab/phenoss"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/WGLab/PhenoSS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FPhenoSS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FPhenoSS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FPhenoSS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FPhenoSS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WGLab","download_url":"https://codeload.github.com/WGLab/PhenoSS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FPhenoSS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28505570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-17T10:01:11.952Z","updated_at":"2026-01-17T10:01:12.641Z","avatar_url":"https://github.com/WGLab.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# PhenoSS: Phenotype semantic similarity-based approach for rare disease prediction and patient clustering \n\n## Introduction\nPhenoSS is an effective algorithm that makes disease prediction and performs patient clustering based on HPO concepts. PhenoSS uses the Gaussian copula technique by modeling the marginal prevalence of each HPO term for each disease and utilizes a multivariate normal distribution to link them together to account for term correlations. We utilized the OARD (open annotations for rare diseases) API for inferring the frequency of HPO terms in a diverse range of rare diseases. PhenoSS can calculate the phenotype similarity between any two patients for finding similar patients or clustering purposes, or between one patient and any candidate diseases for diagnosis support. \n\nThe toolkit is implemented in Python. \n\n## Installation\n\n\n\n## Tutorial\n### Patient Clustering\n#### Sample HPO data\nThe file hpo_list contains the synthetic data for three randomly generated patients labeled 0_10, 1_10, 2_10. \n```\n0_10    HP_0004370;HP_0000280;HP_0002835;HP_0005274;HP_0000158;HP_0011470;HP_0001417;HP_0001270;HP_0008872;HP_0002015;HP_0000750;HP_0000157;\n1_10    HP_0000483;HP_0002307;HP_0001090;HP_0001572;HP_0002342;HP_0011343;HP_0008760;HP_0001061;HP_0001249;HP_0000574;HP_0001417;HP_0002020;HP_0012810;HP_000\n0540;HP_0001350;HP_0001270;HP_0002574;HP_0011231;HP_0000750;HP_0002155;HP_0000431;HP_0000718;\n2_10    HP_0002194;HP_0001263;HP_0001684;HP_0001417;HP_0001270;HP_0001249;HP_0001670;HP_0001667;HP_0001629;HP_0001639;HP_0002474;HP_0010863;HP_0000750;\n```\n\n#### Similairty score calculation\n\nUsing the following argument, we can calculate the similarity scores between patient 1_10 and each of the patients in the hpo_list. \nThe first input argument is the file that contains the patient IDs and the HPO terms. The second input argument is the patient ID we are interested in.\n```\npython getdiff_one_patient.py hpo_list 1_10\n```\n\nYou are recommended to submit one job for each patient to perform computing simultaneously.\n\nThe outputs of the argument can be found in the file 1_10_sim.\n```\n1_10\t0_10\t3.741497748992082\n1_10\t1_10\t8.089540938721928\n1_10\t2_10\t2.451702686307226\n```\nThe following code will summarize the scores for all the patients and form the similarity matrix.\n```\nperl get_sim_mat.pl hpo_list\n```\nWe can then perform the quality check. filter.pl automatically detects missing values in the similarity matrix and selects te largest subset of the patients such that there is no missing similarity scores for these patients and forms the similarity score matrix.\n\n```\nperl filter.pl\n```\nThe similarity score matrix will then be saved into the file `sim_mat_filter`.\n\n#### Hierarchical clustering\nTo better understand the results, we can perform the hierarchical clustering and plot the dendrograms in R.\n```\nlibrary(dplyr)\nx \u003c- read.table(\"sim_mat_filter\")\nx$V3 \u003c- 1/x$V3\nnumpat \u003c- sqrt(dim(x)[1])\npat_mat \u003c- matrix(x$V3, nrow = numpat)\npatid \u003c- x$V2[1:numpat]\ncolnames(pat_mat) \u003c- patid\nrownames(pat_mat) \u003c- patid\n\nhc \u003c- hclust(dist(pat_mat), method = \"ward.D2\")\ndend \u003c- as.dendrogram(hc)\n\n#groupCodes \u003c- c(rep(\"NA10\", 63), rep(\"NA15\", 64))\n#colorCodes \u003c- c(NA10=\"blue\", NA15=\"green\")\n#labels_colors(dend) \u003c- colorCodes[groupCodes][order.dendrogram(dend)]\n\nplot(dend)\n```\n\n### Disease prediction\nPhenoSS extracts the diseases/phenotype frequencies from the Open Annotations for Rare Diseases (OARD) Database. It takes in HPO terms of a list of patients and outputs the ranks of possible underlying diseases. \n\nBelow is a sample input file:\n\n```\nP1\tHP_0012759;HP_0000750;HP_0100022;HP_0000707;\nP2\tHP_0001270;HP_0012758;HP_0002066;HP_0011443;\nP3\tHP_0012758;HP_0002167;HP_0012638;HP_0000707;\n```\nTo run PhenoSS, use the following command:\n\n```\npython phenoSS.py inputFile outputFile\n```\nThe results consist of a list of MONDO diseases and the rankings and will be stored in 'outputFile' specified by the user. \n\n### Convert MONDO diseases to genes\nPhenoSS outputs a list of MONDO diseases and the corresponding rankings. The file 'mondo2gene.txt' maps MONDO diseases to gene symbols. Below is the first four lines of 'mondo2gene.txt':\n\n| class  | class_label | OMIM | Approved Gene Symbol (HGNC) |\n| ------------- | ------------- | ------------- | ------------- |\n| MONDO:0013138  | BRV2  | OMIM:613106  | BRV2  |\n| MONDO:0014068  | cone-rod dystrophy 17  | OMIM:615163  | CORD17  |\n| MONDO:0013151  | CACD3  | OMIM:613144  | CACD3  |\n| MONDO:0010568  | Aicardi syndrome  | OMIM:304050  | AIC  |\n\n\nTo convert the results into genes, run the following command:\n\n```\npython mondo2gene.py inputFile outputFile\n```\nThe file 'inputFile' should contain the output from PhenoSS, and the converted genes will be stored in 'outputFile'.\n## Datasets\n#### Human Phenotype Ontology (HPO): \nhttps://hpo.jax.org/\n#### Open Annotations for Rare Diseases (OARD):\nhttps://rare.cohd.io/\n\n## License\n\nPhenoSS is distributed under the [MIT License by Wang Genomics Lab](https://wglab.mit-license.org/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwglab%2Fphenoss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwglab%2Fphenoss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwglab%2Fphenoss/lists"}