Opal 4.2 released

Hi,

Opal 4.2 has been released. This version introduces R server clusters and DataSHIELD Profiles: Opal can now connect to different R servers (different R versions, different R packages installed).

A DataSHIELD profile:

  • links to a R server cluster
  • defines a DataSHIELD configuration (allowed functions and R options)
  • can be restricted to some users/groups.

This is a major feature addition for making reproducible science. It solves the needs of:

  • having different R server packages versions,
  • facilitating base R upgrade,
  • restricting access to packages in development.

Combined with containerized R servers, it is now easy to have several different R servers running in parallel and connected to the same Opal application. For DataSHIELD usage, the datashield/rock-base images are the recommended R servers with dsBase package installed and can be used to build even more specific images.

DataSHIELD profiles can be declared at login time. To enable the profiles feature, latest client-side R packages DSI (1.3.0), DSOpal (1.3.0) and opalr (3.0.0) are required (and are backward compatible).

Connecting to a DataSHIELD profile only requires to declare the profile name. As an example, opal-demo.obiba.org server has the profiles default, exposome, omics, geo and survival:

library(DSOpal)

# declare login data with profile info
builder <- DSI::newDSLoginBuilder()
builder$append(server = "s1", 
               user = "dsuser", password = "password", 
               url = "https://opal-demo.obiba.org", 
               profile = "omics")
# profile parameter is optional ("default" is default value)
builder$append(server = "s2", 
               user = "dsuser", password = "password", 
               url = "https://opal-demo.obiba.org")
logindata <- builder$build()

conns <- datashield.login(logindata)

# list available profiles and current ones
datashield.profiles(conns)

# list packages in the current profiles
datashield.pkg_status(conns)

# list aggregate methods in the current profiles
datashield.method_status(conns, type = "aggregate")

datashield.logout(conns)

For DataSHIELD node administrators, profiles can be managed using R: see DataSHIELD Administration documentation.

This Opal release also comes with the new version of “R parser” that forbids subsets with brackets [], contact @swheater for more details.

See the complete release note.

Regards
Yannick

1 Like