{"id":21455181,"url":"https://github.com/phenopolis/phenopolis","last_synced_at":"2025-07-14T23:32:43.969Z","repository":{"id":43367776,"uuid":"60914340","full_name":"phenopolis/phenopolis","owner":"phenopolis","description":"An Open Platform for Harmonisation \u0026 Analysis of Sequencing \u0026 Phenotype Data","archived":false,"fork":false,"pushed_at":"2022-07-06T19:51:53.000Z","size":29523,"stargazers_count":34,"open_issues_count":49,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-04-13T17:07:14.653Z","etag":null,"topics":["database","genetics","phenotype","server"],"latest_commit_sha":null,"homepage":"https://www.phenopolis.org","language":"JavaScript","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/phenopolis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-06-11T15:41:27.000Z","updated_at":"2023-10-07T13:07:54.000Z","dependencies_parsed_at":"2022-07-08T01:55:15.817Z","dependency_job_id":null,"html_url":"https://github.com/phenopolis/phenopolis","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phenopolis%2Fphenopolis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phenopolis%2Fphenopolis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phenopolis%2Fphenopolis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phenopolis%2Fphenopolis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phenopolis","download_url":"https://codeload.github.com/phenopolis/phenopolis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226003010,"owners_count":17558157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["database","genetics","phenotype","server"],"created_at":"2024-11-23T05:10:50.791Z","updated_at":"2024-11-23T05:10:51.556Z","avatar_url":"https://github.com/phenopolis.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/phenopolis/phenopolis.svg?branch=master)](https://travis-ci.org/phenopolis/phenopolis)\n[![Coverage Status](https://coveralls.io/repos/github/phenopolis/phenopolis/badge.svg?branch=master)](https://coveralls.io/github/phenopolis/phenopolis?branch=master)\n\n\nNote this is the original version of Phenopolis Browser, we are working on the much improved 2021 version that you can find at https://github.com/phenopolis/phenopolis_browser\n\n\n\n# Phenopolis: an open platform for harmonization and analysis of sequencing and phenotype data\n\n![alt tag](https://github.com/phenopolis/phenopolis/blob/master/static/phenopolis-pipeline.png)\n\nPreprint on [biorxiv](http://biorxiv.org/content/early/2016/10/31/084582). Published in [Bioinformatics](https://www.ncbi.nlm.nih.gov/pubmed/28334266).\n\nPhenopolis is used for research into the molecular diagnosis of rare genetic diseases by clinicians, geneticists and bioinformaticians at:\n* UCL\n* QMUL\n* University of Leeds\n* University of Manchester\n* University of Oxford\n* Keio University\n\n## The Phenopolis Website \nYou can access a demo version of the server at: https://www.phenopolis.org\n\n# Contributors\nWe are especially interested in contributions to the UI (html, css, js) which could be greatly refactored and vastly improved.\nAlso any performance improvements to the db queries would be also greatly appreciated.\nLet us know if you run into difficulties getting the code running!\nOur goal is to make it easy for you to contribute so the project continues to grow!\n​\n# Installation\nThis section includes guides to a quick install and a full installation.\n​\n## Prerequisites\n* Python 2 - you will need to use python2 as we are not python3 compatible since packages such as pygr which use the old ```print``` syntax are not compatible with python3. https://www.python.org/downloads/\n* MongoDB - https://www.mongodb.com/download-center#community\n* Neo4j - https://neo4j.com/download/\n\n## Quick Install Demo for Coders\n\nThis quick install is for people who want to get a local version up and running quickly to contribute to the codebase of the project.\n\nI have a written a shell script for quick installation, [easy_install.sh](https://github.com/phenopolis/phenopolis/blob/master/easy_install.sh), on some example data that is downloadable from our website.  This will only take ~256M of disk space. \n\nStart Neo4j and, if this is the first time you've run Neo4j, log in and change the password. Set your Neo4j uri and password in easy_install.sh.\n\nClone this repo and run easy_install.sh. This will install packages and get data. When complete, you should be able to browse to:\n[http://localhost:8000/gene/TTLL5](http://localhost:8000/gene/TTLL5)\n\nThe example dataset covers only gene TTLL5. Web pages for other genes will show no information.\n\n\n### Windows - additional steps\nPhenopolis can be developed under Windows but requires some additional steps and some lesser-used functionality will not be available.\n* pip - make sure it is up to date by running ```python -m pip install -U pip```\n* VCForPython27 - install this from http://aka.ms/vcpython27\n* scipy and biopython - get and install the .whl files below from http://www.lfd.uci.edu/~gohlke/pythonlibs/\n * pip install numpy-1.11.3+mkl-cp27-cp27m-win32.whl –user\n * pip install scipy-0.18.1-cp27-cp27m-win32.whl –user\n * pip install biopython-1.68-cp27-cp27m-win32.whl –user\n* Execute [the shell script](https://github.com/phenopolis/phenopolis/blob/master/easy_install.sh) \n* pysam and primer3 - disable the install, these packages won't install on Windows.\n* In [config.py](https://github.com/phenopolis/phenopolis/blob/master/config/config.py) set ```IMPORT_PYSAM_PRIMER3 = False```\n* Rerun [the shell script](https://github.com/phenopolis/phenopolis/blob/master/easy_install.sh) (you may disable the commands ```git clone```, ```wget```, ```mongoimport``` and ```mongo```).\n\nTo debug in Visual Studio, first turn off the Flask debug by setting ```app.run(..,..,..,debug=False)``` in ```runserver.py```.\n\n### Post-installation\nWhen this is installed you should be able to browse to:\n[http://localhost:8000/gene/TTLL5](http://localhost:8000/gene/TTLL5)\n\nThe example dataset covers only gene TTLL5. Web pages for other genes will show no information. \n\n### Full Installation\n\nPhenopolis requires:\n* a running mongo database\n* a running neo4j database\n* (optionally) a running Exomiser stand-alone server, which can be obtained on request as it being developed separately by [Julius Jacobsen](https://github.com/julesjacobsen).\n\nYou will then be able to run ```phenopolis.py```, the python Flask server.\n\nThe first step is to clone the repository.\n\n```\ngit clone git@github.com:phenopolis/phenopolis.git\n```\n\nIf you wish to download the Exomiser stand-alone server, please get in touch with [Julius Jacobsen](https://github.com/julesjacobsen).\n\n### Creating database, importing data\n\nFirst make sure mongoDB is running:\n```\nDBPATH=\u003cpath to db\u003e\nmongod --dbpath $DBPATH --port 27017 --smallfiles\n```\n\n#### Creating and importing data from JSON\n\nThe variants found in the VCF files are processed with [Variant Effect Predictor (VEP)](http://www.ensembl.org/info/docs/tools/vep/) and the output is written to JSON standard output.\nThe standard output is piped into another python script, ```VEP/postprocess_VEP_json.py```, which adds further annotation, formatting and writes output to JSON, which is then imported with mongoimport into the variants collection.\n\nThe bash command to run the VEP, assuming your variant files are in VCF format:\n```\nbash VEP/runVEP.sh --input \u003cinfile\u003e --output \u003coutfile\u003e\n```\nImporting of the variants can then be done:\n```\nmongoimport --db $DBNAME --collection variants --host $HOST \u003c \u003cinfile\u003e\n```\nLoad individual for individual page (this is currently tedious, we are going to streamline this):\n```\n python views/load_individual.py --individual $ID --auth Admin:$PASSWORD\n```\n\n#### Running pubmedScore\n\nThe pubmedscore, written by [Jing Yu](https://github.com/logust79), scores genes based on their pubmed relevance.\n\nThe scripts can be found in [pubmedScore](pubmedScore):\n\nBefore running the script, it is preferable to write patients ids in `patients.txt`, which `pubmedScore.py` takes by default.\n\n```\npython pubmedScore.py\n    -i patients.txt\n    -g ABCA4 (if specified, will ignore -i and -p)\n    -p patientID_1 (if specified, will ignore -i)\n    -k retina,retinal,retinitis,blindness,macula,macular,stargardt,pigmentosa (Keywords to search on pubmed. Displayed is default)\n```\n\n#### Running phenogenon\n\nThe phenogenon, written by [Jing Yu](https://github.com/logust79), does an enrichment test (Fisher test) per gene and HPO term.\n\nThe scripts can be found in [phenogenon](phenogenon):\n\nFirst, the user has to run `python snapshot_patient_hpo.py` to take a snapshot of patients' HPO at the time. Since the phenogenon analysis will take some time, this is to avoid any inconsistency that might be introduced by editing patients' HPO in the database when phenogenon is running.\n\nSecond, `python get_hpo_freq.py` will produce an HPO frequency file that phenogenon will use for its analysis.\n\nPhenogenon can then be run as `python gene_hpo_analysis --chrom X` per chromosome. This feature can be utilised to parallelise the jobs on chromosomes. It uses `ExAC_freq` and `CADD_phred` scores to help filter the variants. The defaults are `ExAC_freq \u003c= 0.01 and CADD_phred \u003e= 15` for _recessive_ inheritance mode, and `ExAC_freq \u003c= 0.001 and CADD_phred \u003e= 15` for _dominant_ inheritance mode. It will produce a JSON file for each gene.\n\nIf one wishes to change the cutoffs to filter the variants after phenogenon is done, one can use `python recalculate_p.py --chrom X` to do the job quickly, without having to re-extracting info using the slow `gene_hpo_analysis.py`\n\nAfter this, `python hpo_gene_anlaysis.py` will extract all genes with significant p values for each valid HPO term, and write to a JSON file for each HPO term.\n\n## Running servers\n\nRun Exomiser standalone:\n```\nEXOMISER_DATA=\ncd $EXOMISER_DATA\nwget ftp://ftp.sanger.ac.uk/pub/resources/software/exomiser/downloads/exomiser/exomiser-cli-7.2.1-data.zip\nunzip exomiser-cli-7.2.1-data.zip\njava -jar exomiser-rest-prioritiser-7.3.0-SNAPSHOT.jar --exomiser.data-directory=$EXOMISER_DATA\n```\nThere is also an online version available at the [Monarch Initiative](https://monarchinitiative.org).\n```\nhttps://monarch-exomiser-prod.monarchinitiative.org/exomiser/api/prioritise/\n```\n\nRun Phenopolis:\n```\ncd phenopolis\npython runserver.py\n```\n\n\n### Acknowledgment\n\nThis code was originally forked from the [ExAC browser](https://github.com/konradjk/exac_browser) but has since diverged considerably.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphenopolis%2Fphenopolis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphenopolis%2Fphenopolis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphenopolis%2Fphenopolis/lists"}