Opal stores data and meta-data in projects that are accessible through web services. See the Variables and Data documentation page that explains the data model of Opal. The Opal R package exposes projects related functions:

Note that these functions do not create a R session on the server side: it is only accessing the content of the Opal server (permission checks apply).

Setup the connection with Opal:

o <- opal.login("administrator", "password", "https://opal-demo.obiba.org")

List the projects:


List the datasources (there is one per project) to get the details about how the data are persisted and what are the tables:


List the tables in a datasource, with their count of variables and entities:

opal.tables(o, datasource = "CPTP", counts = TRUE)

List the variables of a table and get the details of the variable annotations (one column per variable attribute with namespace):

opal.variables(o, datasource = "CPTP", table = "Coreqx_final")

Get the values in a table for a specific entity:

opal.valueset(o, datasource = "FNAC", table = "FNAC", identifier = "1000502517535681229")

Variable attributes can be described by taxonomies. List the taxonomies:


List the vocabularies of a taxonomy:

opal.vocabularies(o, taxonomy = "Mlstr_area")

List the terms of a vocabulary:

opal.terms(o, taxonomy = "Mlstr_area", vocabulary = "Lifestyle_behaviours")

Good practice is to free server resources by sending a logout request: