Htsget API implementation that is based on the Htsget retrieval API specifications.
Access to the underlying data objects is mediated through a "baby DRS" server which runs as a separate REST API. The OpenAPI file specifies a suggested format for DRS-compliant genomic variant, read, and index objects. Hopefully a compatible, separate DRS server will be able to implement this API as-is.
Thank you to gel-htsget for being a good starting point to this project
- Connexion for implementing the API
- PostgreSQL
- ga4gh Data-Repository-Service(DRS)
- minio-py
- Flask
- Python 3
- Pysam
- Pytest
- Travis-CI
The server software can be installed in a virtual environment:
python setup.py install
This application can be configured by way of the config.ini file in the root of the project. The server can be run with:
python htsget_server/server.py
This application can also be set up in a docker container. A docker-compose file and Dockerfile are provided.
The default MinIO location specified in the config.ini file is the sandbox at MinIO, but a different location can be specified there as well. Be sure to update the access key and secret key values in config.ini.
For testing, a small test suite under tests/test_htsget_server.py can be run by starting the server and running:
pytest
For automated testing, activate the repo with Travis-CI