This project is part of the CHARM toolset being developed for the ARPA-H grant. CHARMomics provides RESTful variant/gene intake and gathers relevant annotations via an automated and configurable service that uses publicly available data sources.
The following prerequsities are required to be installed in the target *NIX environment for deploying and testing CHARMomics. Install the envrionment dependencies below using their respective installation instructions for your target envrionemnt.
- Python 3.11+ - Install
pip3to install the required packages for development within a virtual environment.python venvSome system installations of Python 3+ do not include python virtual environments that were added in Python 3.3+. Additional installation and setup may be necessary if using Python packaged with an OS (such as Ubuntu).
- Git
- Setup with your favorite git client. Here is a GitHub Guide for different platforms.
- Docker 17.12.0+ with
docker-composeCLI ordocker composefrom Docker Desktop - Install- Docker Compose is used for local deployments of the application. The
docker-composetool is fully integrated within the Docker Desktop suite now. For new users of Docker it is easier to get started with Docker Desktop. From the official Docker documentation, "[docker compose] is expected to be a drop-in replacement fordocker-compose". - Installing and running Docker requires sudo/admin privileges in the target environment
- Docker Compose is used for local deployments of the application. The
| Chrome | Firefox |
|---|---|
| 64+ | 86+ |
Clone the Git repository from GitHub locally.
git clone https://github.com/uab-cgds-worthey/charmomics
cd charmomicssetup.sh provisions your local environment for developing CHARMomics.
The script will:
- Updates your local
/etc/hoststo support the local DNS redirect of localhost to 'local.charmomics.cgds'. - Creates a Python virtual environment for called "charmomics_env" within the backend directory
- Installs Python dependencies within the virtual environment
- Checks if
mkcertis installed, if so generates self-signed certificates in./etc/certificates- Generates two files, one .pem key file and one .pem cert file
./setup.shDeploy CHARMomics from the project's root directory using docker compose in your terminal. Be sure that./setup.sh
has been run recently for any recent dependency updates to be installed in all of the subdirectories.
After following one the deployment commands in the below in the terminal,
- Visit http://local.charmomics.cgds/api/docs for accessing the CHARMomics annotation API.
# deploy CHARMomics services within this session
docker compose up
# deploy services in the background using the `-d` option
docker compose up --build -d
# force docker images to re-build using the `--build` option
docker compose up --buildTo access the locally deployed CHARMomics application after running docker compose up,
visit the https://local.charmomics.cgds/charmomics/api/heart-beat
URL in your browser to ensure the endpoints are working properly.
We use linting tools for JavaScript, Python, Docker, Markdown, and Shell scripts for static analysis.
To see the commands and how to run linting, refer to Linting and Static Analysis in the Contributing Guidelines.
We welcome contributions! See the docs for guidelines.