HIPPO: 🦛 Hit Interaction Profiling for Progression Optimisation
HIPPO is in active development and feedback is appreciated.
Please see the documentation to get started
HIPPO is pip-installable, but use of a conda environment is recommended for the
rdkit and chemicalite dependencies:
pip install --upgrade hippo-db
conda install -c conda-forge chemicalite=2024.05.1For more information see the installation guide
You can verify the installation:
python -m hippo verifyOr by running the full suite of tests (see Developer information)
Repository structure
- HIPPO/main: latest stable version
- HIPPO/dev: Dvelopment branch
- HIPPO/postgres: PostgreSQL development branch
- HIPPO/django_lean: An experimental branch implementing HIPPO as a Django web-app
Information for HIPPO developers
To develop on HIPPO please fork this repository and then install locally:
git clone https://github.com/YOUR_USER/HIPPO
cd HIPPO
pip install -e .HIPPO is automatically released to PyPI as
xchem-hippo via a Github Action off the using the
release workflow.
When you want to make an official release go to the Releases page and then click the Draft a new release button. Remember to familiarise yourself with the xchem release process on the trunk-based-development Wiki Creating releases page.
HIPPO is linted using black and commits are automatically linted using the lint workflow. The use of pre-commit is encouraged for local development to automatically run the linting at git commit time:
pip install pre-commit
pre-commit installDocumentation is automatically built off the HIPPO/main branch using readthedocs. For local building using sphinx:
cd docs
make htmlTo check API reference coverage use docstr-coverage
pip install docstr-coverage
docstr-coverage hippoSome tests are provided in the tests directory, which can be run with pytest:
cd tests
pytestN.B. the numbered tests, e.g. test_00_cleanup.py need to run in sequential order to set up the database. Other tests can run in arbitrary order thereafter. The tests will fail if https://fragalysis.diamond.ac.uk can not provide the protein target's data, as specified in tests/config.py.
Postgres specific instructions
Install via homebrew
brew install postgresql@18Initialise database
/opt/homebrew/opt/postgresql@18/bin/initdb -D /opt/homebrew/var/postgresql@18 -U postgres -WRun in foreground
/opt/homebrew/opt/postgresql@18/bin/postgres -D /opt/homebrew/var/postgresql@18 -p 5432Install psycopg
pip install psycopg[binary]See images/postgres for a container including the RDKit cartridge
Check port availability:
nc -zv IP_ADDRESS 5432Success will look something like this:
Ncat: Version 7.92 ( https://nmap.org/ncat )
Ncat: Connected to IP_ADDRESS:5432.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
To ssh tunnel to a host which has the correct exposed port and forward the correct port:
ssh -L 5432:IP_ADDRESS:5432 USER@GATEWAY_HOSTTo test your connection (from your local machine)
pg_isready -h localhost -p 5432
To list available databases with psql
psql -h localhost -U USER -p 5432 -lTo connect to a specific database with psql
psql -h localhost -U USER -p 5432 -n DATABASETo run the unit tests, uncomment and configure tests/config.py to the desired postgres deployment. N.B. currently not all tests will succeed.
