API for the moalmanac-db and moalmanac-browser. Available at https://api.moalmanac.org.
This repository can be downloaded through GitHub by either using the website or terminal. To download on the website, navigate to the top of this page, click the green Clone or download button, and select Download ZIP to download this repository in a compressed format. To install using GitHub on terminal, type:
git clone https://github.com/vanallenlab/moalmanac-api.git --recursive-submodules
cd moalmanac-apiThis repository includes moalmanac-db as a submodule. You can update moalmanac-db to the latest commit:
git submodule update --init --recursiveTo update moalmanac-db to the latest commit, use update_submodule_to_commit.sh:
bash update_submodule_to_commit Alternatively, to update moalmanac-db to a specific commit:
bash update_submodule_to_commit <commit hash>This repository uses Python 3.12. We recommend using a virtual environment and running Python with either Anaconda or Miniconda.
Run the following from this repository's directory to create a virtual environment and install dependencies with Anaconda or Miniconda:
conda create -y -n moalmanac-api python=3.12
conda activate moalmanac-api
pip install -r requirements.txtOr, if using base Python:
virtualenv venv
source activate venv/bin/activate
pip install -r requirements.txtTo make the virtual environment available to jupyter notebooks, execute the following code while the virtual environment is activated:
pip install jupyter
ipython kernel install --user --name=moalmanac-apiTo update the database content from moalmanac-db:
rm data/moalmanac.sqlite3; python -m app.populate_database -i moalmanac-db/referenced/ -c config.iniFlask configuration variables are managed using environment files:
- .env - used for local development
- .env.production - used for production, loaded with systemd
To launch the application for development, using variables from .env:
python run.pyThis repository uses Gunicorn to serve the Flask application for production. The service is configured using a systemd unit file, service/moalmanac-api.service, which sets environment variables from .env.production via the EnvironmentFile variable:
EnvironmentFile=/home/breardon/moalmanac-api/.env.productionGunicorn is launched using the provided ExecStart command:
/home/breardon/mambaforge-pypy3/envs/moalmanac-api/bin/gunicorn --workers 5 --bind unix:moalmanac-api.sock -m 007 run:appSystemd and Gunicorn manage launching the application for production using the service/moalmanac-api.service file, so there is no need to run python run.py for production use.
If you find this tool or any code herein useful, please cite:
DIAGNOSTIC AND CLINICAL USE PROHIBITED. DANA-FARBER CANCER INSTITUTE (DFCI) and THE BROAD INSTITUTE (Broad) MAKE NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT OR VALIDITY OF ANY INTELLECTUAL PROPERTY RIGHTS OR CLAIMS, WHETHER ISSUED OR PENDING, AND THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.
In no event shall DFCI or Broad or their Trustees, Directors, Officers, Employees, Students, Affiliates, Core Faculty, Associate Faculty and Contractors, be liable for incidental, punitive, consequential or special damages, including economic damages or injury to persons or property or lost profits, regardless of whether the party was advised, had other reason to know or in fact knew of the possibility of the foregoing, regardless of fault, and regardless of legal theory or basis. You may not download or use any portion of this program for any non-research use not expressly authorized by DFCI or Broad. You further agree that the program shall not be used as the basis of a commercial product and that the program shall not be rewritten or otherwise adapted to circumvent the need for obtaining permission for use of the program other than as specified herein.