Skip to content

kclhi/phenoflow

Repository files navigation

phenoflow

Standardise and share computable disease definitions.

Demo | Wiki

Cite as Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype Definitions. Chapman, Martin et al. AMIA Summits on Translational Science. 2021.


Components of the Phenoflow architecture.

StackShare

Prerequisites

GitHub

Phenoflow is designed to interact with GitHub as a storage backend. The use of a private GitHub enterprise server (development) or public GitHub (production) is assumed. Alternatively, Gitea, an open source git host, can be used. In this case, BASE_URLs and REPOSITORY_PREFIX need to be updated in the importer config. phenoflow.* URLs in cwlviewer's application.properties should also be updated. Note that regardless of VCS, the existence of an organisation called Phenoflow with at least one repository is assumed.

Note: An example reverse proxy is available to demonstrate how to front Phenoflow's services, and assumes the presence of the importer, generator and a Gitea instance.

Certificate generation

  1. Run proxy/certs/gen-ca-cert.sh.
  2. Run proxy/certs/gen-domain-cert.sh.
  3. Copy proxy/certs/phenoflow.* to importer/certs.
  4. Run importer/certs/gen-domain-cert.sh.
  5. Copy proxy/certs/phenoflow.* to generator/certs.
  6. Run generator/certs/gen-domain-cert.sh.
  7. Copy proxy/certs/phenoflow.* to parser/certs.
  8. Run parser/certs/gen-domain-cert.sh.

Install, run and deploy

  1. (Deploy only) Create the following Docker network:

docker network create hi_default

  1. Follow steps in generator, parser and importer. Set up cwlviewer. If you wish to develop new Phenoflow features, follow the development instructions. If you wish to deploy a private instance of Phenoflow, follow the deployment (staging) instructions. If you wish to interact with Phenoflow's production instance, follow the deployment (production) instructions.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

kclhi

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Acknowledgments

Contributors 5