py-grimm allows graph based family, EM and matching.
It is based on py-graph-imputation
How to develop on the project locally:
- Make sure the following pre-requites are installed.
gitpython >= 3.8- build tools eg
make
- Clone the repository locally
git clone git@github.com:nmdp-bioinformatics/py-grimm.git cd py-grimm - Make a virtual environment and activate it, run
make venv> make venv python3 -m venv venv --prompt urban-potato-venv ===================================================================== To activate the new virtual environment, execute the following from your shell source venv/bin/activate
- Source the virtual environment
source venv/bin/activate - Development workflow is driven through
Makefile. Usemaketo list show all targets.> make clean remove all build, test, coverage and Python artifacts clean-build remove build artifacts clean-pyc remove Python file artifacts clean-test remove test and coverage artifacts lint check style with flake8 behave run the behave tests, generate and serve report pytest run tests quickly with the default Python test run all(BDD and unit) tests coverage check code coverage quickly with the default Python dist builds source and wheel package docker-build build a docker image for the service docker build a docker image for the service install install the package to the active Python's site-packages venv creates a Python3 virtualenv environment in venv activate activate a virtual environment. Run `make venv` before activating. - Install all the development dependencies. Will install packages from all
requirements-*.txtfiles.make install
- The Gherkin Feature files, step files and pytest files go in
testsdirectory:tests |-- features | |-- algorithm | | `-- SLUG\ Match.feature | `-- definition | `-- Class\ I\ HLA\ Alleles.feature |-- steps | |-- HLA_alleles.py | `-- SLUG_match.py `-- unit `-- test_gram.py - Package Module files go in the
gramdirectory.gram |-- __init__.py |-- algorithm | `-- match.py |-- model | |-- allele.py | `-- slug.py `-- gram.py - Run all tests with
make testor different tests withmake behaveormake pytest.make behavewill generate report files and open the browser to the report. - Use
python app.pyto run the Flask service app in debug mode. Service will be available at http://localhost:8080/ - Use
make docker-buildto build a docker image using the currentDockerfile. make dockerwill build and run the docker image with the service. Service will be available at http://localhost:8080/
