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/*.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-python offers:

  • 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 CONTROLLED datasets, 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.

Indices and tables