Skip to contents

The ToxCast database flags concentration-response curves that may be unreliable or inconsistent based on several criteria; however, it is still good practice for the toxEval user to examine the concentration-response curves pertinent their data to assure that results are understood and to gain confidence in the underlying data. At times, the user will find that concentration-response curves for particular chemical-endpoints or for an entire endpoint will need to be excluded from analysis. For chemicals with an extremely large EAR value, concentration-response curves should be examined. Two ways to obtain concentration-response curves are described below (the Comptox Dashboard and the tcpl pipeline).

Comptox Dashboard

There is a web-based tool, the Comptox Dashboard that allows you to search for a chemical by systematic name, synonym, CAS number, DTXSID, or InChIKey. Since we focus on CAS in the toxEval inputs, let’s explore Atrazine (CAS = 1912-24-9):

Enering the CAS will take you to a page describing properties of the specific chemical. There is a TON of great information there.

  1. Click the “Bioactivity” sidebar option, and then the ToxCast/ToxCast21 option.
  2. Click the “Active” check box to see all of the concentration-response curves that would be included in toxEval.

To get to a specific concentration-response curve:

  1. Click the “Bioactivity” sidebar option, and then the ToxCast/ToxCast21 option.
  2. Enter the specific endpoint of interest in the search box
  3. Click the endpoint’s check box

R-package: tcpl

There is another way to locally produce the concentration-response curves using the tcpl package. The advantage to this approach is that you can customize the plots and order of plots. The drawback is that you need to download a very large MySQL database and have it running locally.

If the database has been downloaded, and MySQL is up-and-running, the following code would produce a single concentration-response curve. Let’s look at Atrazine with the “NVS_ENZ_hPDE4A1” endpoint:


tcplConf(drvr = "MySQL", 
         user = "my_awesome_username",
         pass = "my_awesome_password",
         host = "localhost", 
         db = "database_name")

ep <- "NVS_ENZ_hPDE4A1"
cas <- "1912-24-9"

chem_info <- tcplLoadChem(field = 'casn', val = cas)
assay_info <- tcplLoadAeid(fld = "acnm", val = ep)

mc5 <- tcplLoadData(lvl = 5, type = "mc",
                    fld = c("aeid","spid"),
                    val = list(assay_info$aeid,

plot_out <- tcplPlot(lvl = 5,
         fld = c("spid","aeid"), # fields to query on
         val = list(mc5$spid, # sample id's
                    mc5$aeid # assay endpoint id's
         by = "aeid", # parameter to divide files
         multi = FALSE, # multiple plots per page - output 6 per page if TRUE
        verbose = TRUE, # output all details if TRUE
        output = "console") # prefix of the filename


The values passed to the tcplConf function will depend on how you set up the MySQL database.