Skip to contents

EDP supports programmatic access via R. To get started, users will need to authenticate their session using a Personal Access Token.

Pre-Requisites

The EDP supports the use of R for both Unix (Linux, Mac) and Windows environments. Instructions vary for authentication depending on environment - see below sections for more detail.

Regardless of environment, all users should first insure that they have installed the EDP R package as shown below:

remotes::install_github("quartzbio/quartzbio.edp", dependencies = TRUE, ref = "main")

quartzbio.edp uses the RcppSimdJson R package for speed. But on some older systems, RcppSimdJson requires a CXX17 compatible C++ compiler, even when installed from a pre-compiled binary package.

In this case, you can manually install a CXX17 compiler. Here are some resources:

https://www.geeksforgeeks.org/complete-guide-to-install-c17-in-windows/

https://gasparri.org/2020/07/30/installing-c17-and-c20-on-ubuntu-and-amazon-linux/

In any case, RcppSimdJson is optional. If not installed, quartzbio.edp will work seamlessly in degraded mode.

R Authentication

After installing the package, users will next create the relevant credential storage files. In a the environment, the EDP R package will, by default, look for the $EDP_API_SECRET and $EDP_API_HOST or $QUARTZBIO_ACCESS_TOKEN and $QUARTZBIO_API_HOST environment variables.

Sys.setenv(EDP_API_SECRET = "TOKEN")
Sys.setenv(EDP_API_HOST = "https://DOMAIN.api.edp.aws.quartz.bio")

Testing your credentials

When writing R scripts, users can confirm that their token and domain are loaded appropriately by loading the package and then using the connect() function:

library(quartzbio.edp)

# Load your token from the environment variable

quartzbio.edp::connect()

After which, the user credentials should be retrievable within a block of R code as follows:

# Load your credentials from $EDP_API_SECRET

quartzbio.edp::connect()

# Get current User

User.retrieve()$email

Connect using QuartzBio EDP configuration profile

Create a EDP configuration profile file ~/.qb/edp.json as the default EDP configuration profile. Create a connection profile using save_connection_profile function. This is an example of how your ~/.qb/edp.json should look like:

{
  "default": {
    "secret": "PUT_HERE_YOUR_AUTHENTICATION_TOKEN",
    "host": "https://DOMAIN.api.edp.aws.quartz.bio"
  }
}

Create and save a connection profile using save_connection_profile function. This creates and saves the default connection profile to ~/.qb/edp.json

conn <- quartzbio.edp::connect()
quartzbio.edp::save_connection_profile(conn)

Connect to the QuartzBio EDP API using a saved profile in ~/.qb/edp.json using connect_with_profile function:

quartzbio.edp::connect_with_profile()

The package functions will use this default profile by default if you do not use an explicit configuration. For example: