Skip to content

Implementation

Mr.Robb edited this page Feb 21, 2022 · 2 revisions

How to implement a Beacon

Framework & Model

Types of beacon

You should decide which type of beacon you want:

Granularity Description
boolean Only returns exists: true ('Yes') or exists: false ('No') to a given query.
count Returns exists: true or exists: false and the total number of positive results found (numTotalResults).
record Returns all of the previous information and adds details for every row.

We recommend starting with a boolean beacon and the upgrading its capabilities.

Endpoints

Configuration endpoints

/info and also the root (/)

It MUST return information (metadata) about the Beacon service and the organization supporting it.

Response schema: beaconInfoResponse.json

Example:

/service-info

It returns the Beacon metadata in the GA4GH Service Info schema.

Response schema: ga4gh-service-info-1-0-0-schema.json

Example:

/configuration

It returns some configuration aspects and the definition of the entry types (e.g. genomic variants, biosamples, cohorts) implemented in that specific Beacon server or instance.

Response schema: beaconConfigurationSchema.json

Example:

/entry_types

It returns only the property entryTypes of the /configuration endpoint.

Response schema: beaconConfigurationSchema.json -> EntryTypes

Example:

/map

It returns a map (like a web sitemap) of the different endpoints implemented in that Beacon instance.

Response schema: beaconMapSchema.json

Example:

/filtering_terms

It returns a list of the filtering terms accepted by that Beacon instance.

Response schema: filteringTermsSchema.json

Example:


For more examples, visit: https://github.com/ga4gh-beacon/beacon-framework-v2

Entities

Entity Default Schemas Endpoints
Analyses defaultSchema.json analyses
analyses/{id}
analyses/{id}/g_variants
Biosamples defaultSchema.json biosamples
biosamples/{id}
biosamples/{id}/g_variants
biosamples/{id}/analyses
biosamples/{id}/runs
Cohorts defaultSchema.json cohorts
cohorts/{id}
cohorts/{id}/individuals
cohorts/{id}/filtering_terms
cohorts/{id}/runs
cohorts/{id}/analyses
Datasets defaultSchema.json datasets
datasets/{id}
datasets/{id}/g_variants
datasets/{id}/biosamples
datasets/{id}/individuals
datasets/{id}/filtering_terms
datasets/{id}/runs
datasets/{id}/analyses
Genomic Variations defaultSchema.json g_variants
g_variants/{id}
g_variants/{id}/biosamples
g_variants/{id}/individuals
g_variants/{id}/runs
g_variants/{id}/analyses
Individuals defaultSchema.json individuals
individuals/{id}
individuals/{id}/g_variants
individuals/{id}/biosamples
individuals/{id}/filtering_terms
individuals/{id}/runs
individuals/{id}/analysis
Runs defaultSchema.json runs
runs/{id}
runs/{id}/g_variants
runs/{id}/analyses
Clone this wiki locally