Python-based Beacon API Server¶
The Beacon project was launched in 2014 to show the willingness of researchers to enable the secure sharing of genomic data from participants of genomic studies. Beacons are web-servers that answer questions such as:
Does your dataset include a genome that has a specific nucleotide (e.g. G) at a specific genomic coordinate (e.g. Chr.1 position 111,111)?
To which the Beacon must respond with yes or no, without referring to a specific individual.
beacon-python Web Server implements the Beacon API 1.1.0+ specification
by providing an easy to use and configure web application, and also adds support for (e.g. wildcard search) and more.
In order to facilitate loading data, we provide out of the box a
*.vcf.gz data loader into
the Beacon Database, but an existing database can be utilised as well see Database Setup.
Out of the box the
- Beacon API 1.1.0+ specification compliant;
- processing and loading VCF files based on cyvcf2 ;
- asynchronous web server;
- JSON schema validation for queries and responses;
- OAuth2 JWT token validation, by default for ELIXIR AAI, with retrieving researcher’s bona fide status;
- Handling GA4GH permissions for
CONTROLLEDdatasets, additional modules can be added - see Handling Permissions;
- 1000 genome dataset loader - see 1000 Genome Loader instructions;
- deployment Docker container.
beacon-python and all it sources are released under Apache License 2.0.
Table of Contents¶
- Setup Instructions
- API Examples
- Handling Permissions
- Optional Features
- Python Modules