Germinate Example

Khaled Al-Shamaa

2025-07-31

QBMS

This R package assists breeders in linking data systems with their analytic pipelines, a crucial step in digitizing breeding processes. It supports querying and retrieving phenotypic and genotypic data from systems like EBS, BMS, BreedBase, Germinate and GIGWA (using BrAPI calls). Extra helper functions support environmental data sources, including TerraClimate and FAO HWSDv2 soil database.

Germinate

Germinate is an open source plant database infrastructure and application programming platform on which complex data from genetic resource collections can be stored, queried and visualized using common, reusable, programming components. Germinate utilises modern web and database standards to provide a common architecture and high performance web-based user interface and analytics functionality across a wide variety of data types including: passport, phenotypic, field trial, pedigree, genetic, climatic, geographic location data as well as user-submitted annotations. In addition, it provides links to an expanding variety of external visualization and analysis tools such as Helium for pedigree visualization, Flapjack for graphical genotyping and CurlyWhirly for 3D coordinate data.

BrAPI

The Breeding API (BrAPI) project is an effort to enable interoperability among plant breeding databases. BrAPI is a standardized RESTful web service API specification for communicating plant breeding data. This community driven standard is free to be used by anyone interested in plant breeding data management.

Connect to a Germinate server

# load the QBMS library
library(QBMS)

# configure your Germinate server connection
set_qbms_config(url = "https://germinate.hutton.ac.uk/demo/#/home", 
                engine = "germinate", 
                no_auth = TRUE, 
                page_size = 9999)

# login using your account (interactive mode)
# login()
# or pass your username and password as parameters (batch mode)
# login("username", "password")

# list existing crops on the current server
list_crops()

# select a crop by name
set_crop("Cactuar")

# list all breeding programs in the selected crop
list_programs()

# select a breeding program by name
set_program("Germinate")

# list all trials in the selected program
list_trials()

# select a specific trial by name
set_trial("GWAS data")

# list all studies (environments/locations) in the selected trial
list_studies()

Work with Phenotypic Data

# select a specific study by name
set_study("Sample Phenotype Data")

# retrieve general information and metadata for the selected study
info <- get_study_info()

# retrieve the germplasm list for the selected study
geno <- get_germplasm_list()

# retrieve attributes for a specified germplasm
attr <- get_germplasm_attributes("CACTUAR-3")

# retrieve study data
data <- get_study_data()

# get observation variable ontology in the selected study/trial
ontology <- get_trial_obs_ontology()

Work with Genotypic Data

# select a specific study by name
set_study("Sample Genotype Data Subset 2")

# list all variant sets in the selected study
list_variantsets()

# select a specific active variant set by name
set_variantset("Sample Genotype Data Subset 2")

# retrieve the selected variant set marker matrix
snps <- get_variantset()

# get marker position information
map <- get_marker_map()

Work with Pedigree Data

# select a specific study by name
set_trial("Default pedigree experiment")

# get the pedigree table for the selected trial
ped <- get_trial_pedigree()