Analyzing Dose-Response Data
A dose-response curve is a plot of response to drug treatment vs. drug concentration. Sensitivity to a drug acting at a specific, saturable receptor typically spans a large concentration range, so dose-response curves are usually semi-logarithmic, i.e., the amount of drug is plotted as the log of drug concentration. This example will show you (1) how to use Prism to fit a sigmoidal (also known as “logistic”) curve to your dose-response data and (2) one way to compare two dose-response curves statistically.
Suppose we want to plot two dose-response curves, showing the average in vitro response to an agonist, in the presence and in the absence of an antagonist, measured in triplicate.
Enter the Data
In the Welcome dialog box, choose to Create an XY data table. Under the X category, select Numbers, and under the Y Columns category, choose enter 3 replicate values in side-by-side subcolumns.

Enter the data as shown below. The X values (agonist dose) are given as molar concentration, expressed in exponential notation. The Y values (response, in arbitrary units) go in subcolumns Y1 to Y3.

Several points about this data are worth noting:
- The dosage increment (10 nM, 30 nM, 100 nM, etc) shown in the X column is typical. These values will be log-transformed, giving roughly equal horizontal spacing of data points on the dose-response curve.
- These data are a good illustration of Prism’s use of only one X column. Although the X values for data sets A and B are not the same, we can combine all the X values into a single column and leave Y-value cells empty where appropriate.
- The values in row 1 represent the zero-concentration (no agonist) data. Since our X coordinates will be plotted as logarithms, and since the log of 0 is undefined, we approximate this point with an X coordinate of 1.0e-010, about 2 log units below the lowest “real” X value.
- For this example, we’re assuming that the Y values do not require correction by subtraction of a baseline—the minimum Y values are already zeroes. If you wish to subtract a baseline value from each Y value in a data set, read about automatic baseline corrections using Prism here. Later in this example, we’ll demonstrate normalization of the Y values, which can also serve as a means of “baseline correction”.
- You can enter the Y values in any convenient units, then transform to other units if you wish. We’ll use Prism to normalize (i.e., transform to percent of maximal response) our Y values later.
- Particularly when dosing with an impure preparation, you may wish to enter X values in terms of “dilution factor” or in mass/volume (e.g., mg/mL) units. The Quick Answers Database has more information about working with dilution factors.
Log-transform the X values
Note: The relationship between dose and response in a system following mass-action kinetics is hyperbolic, not sigmoidal. The dose-response curve becomes sigmoidal only when response is plotted against the logarithm of dose, and some of Prism's built-in sigmoidal dose-response curve-fit models presuppose that your X values are in that form. Users occasionally find that their dose-response relationships are sigmoidal before log transformation, and Prism has a built-in equation for that situation as well.
To convert the values in the X column to their respective logarithms, click Analyze. From the Transform, Normalize... category, select Transform concentrations (X).

In the Parameters: Transform concentrations (X) dialog, you can leave most options as they are. By default, Prism will replace any zero X values with an approximate (1e-010), and transform to logarithms base 10 (common logarithm, in other words).
Note: At the bottom of this dialog, there is an option to Create a new graph of the results. But we're not ready to do that; we have one more manipulation, namely normalization, to do before making the final graph.
Prism displays a new Results sheet (partly illustrated below) with the log-transformed X values. In this example, we relabeled the X column to log[Agonist] for clarity.

Normalize the Y Values
In this section, we’ll convert the Y values in groups A and B to a common scale. This is useful when you want to compare the shape or position (EC50) of two or more curves and don’t want to be distracted by different maximum and minimum values.
With the log-transformed Results sheet in view, click Analyze.

In the Analyze Data dialog, select the Transform, Normalize... category, then choose Normalize.
In the Parameters: Normalize, specify how Prism will normalize the Y values. For this exercise, we’ll accept the default settings, which will define 0% and 100% as the smallest and the highest values, respectively, for each of the data sets. The settings are shown here:

The Results sheet (below) is displayed. Because we have replicate Y values, 0% and 100% are defined by the mean of the replicates. It is neither possible nor desirable to normalize each subcolumn separately. This is why none of the upper Y values in the table is exactly 100.

Normalizing the data in this way converts it to "Percent of maximum response". Note two points: (a) Normalization will cause the dose-response curve to extend vertically from 0 to 100 by definition, and we'll constrain the curve fit later to ensure this. Therefore, you should be fairly confident of the accuracy of your minimum and maximum values. (b) In this example, the minimum Y values were already zeroes, so no alteration of the minimum values will be made. Note, however, that had these values been greater than 0, the normalization would effectively have produced a "baseline correction".
Now click the Graphs section on the Navigator (left) panel to switch to the graph of the log-transformed and normalized data:

Note that, unless you specify otherwise, Prism plots the averages of replicate data and adds error bars automatically.
Fit the Curve
With the graph displayed, click on the Analyze button. From the XY analyses category, select Nonlinear regression (curve fit).

In the Parameters: Nonlinear regression dialog box, choose Dose-response - Stimulation. Select log(agonist) vs. response - variable slope (four parameters). Note that Prism offers many varieties of this equation, including raw concentrations or log transformed, raw response or normalized response, and variable or fixed slope (four vs three parameters). Choose the equation that best fits your situation. Take a look at the yellow box at the bottom for details, and click Learn about this equation to be directed to the Statistics Guide for more detailed explanations.

This is normally all you need do to prepare Prism to fit the curves, and if you were to click OK at this point, Prism would perform a four-parameter (bottom, top, log EC50, and Hill slope) sigmoidal curve fit and add the curves to the graph. But let’s instead choose two options:
(1) Since we normalized the original data such that the vertical range extends by definition from 0 to 100, it doesn’t make sense to fit the “bottom” and the “top” of the curves. We will therefore constrain those parameters, leaving only the midpoint (log EC50) and slope (Hill slope) of each curve to be fitted by Prism. Click on the Constrain tab click on the dropdown box next to the Bottom parameter and select Constant equal to then enter the value “0”. Repeat for Top, setting that value to “100”. The settings are shown below. Alternatively, you could select the normalized response equation on the Model tab.

(2) Instruct Prism to compare the two curves statistically — that is, compare the fitted values log EC50 and Hill slope — using an F test. In the Parameters: Nonlinear regression dialog box, navigate to the Compare tab and select the options highlighted below.

As mentioned earlier, if the units for your original X values are such that their logs are greater than zero (e.g., units of ?g/mL), Prism may produce an “error” message at this point. Read the explanation here.
When you click OK to exit the Parameters: Nonlinear regression dialog, Prism fits the curves and automatically places them on the graph.

Click the Results section of the Navigator panel to display the numerical results (reproduced partially below).

Since we fixed the values for Bottom and Top, Prism reports those as = 0.000 or = 100.0, depending on the parameter. Best-fit values for the remaining two parameters, LogEC50 and HillSlope, are reported along with their 95% Confidence Intervals (CI). EC50 is also reported, but it is not a fitted value.
Here is a partial reproduction of the F test results:

Format the Axes
Click on the Graphs section to return to the graph. If you’d like a frame around your graph, double-click one of the axes to open the Format Axes dialog. Under Frame and Origin, choose Plain Frame in the drop-down box next to Frame style.

We can also increase readability by adjusting the range and tick intervals for the Y axis: at the top of the Format Axes dialog box, select the Left Y axis tab. Deselect the Automatically determine the range and interval option. Set the Range and Tick intervals as follows:

Now we’ll format the X axis. If necessary, double click on the X axis to reopen the Format Axes dialog box. Choose the X Axis tab. Adjust the options as shown below.

Complete the Graph
We’ll now transfer some information about the best-fit parameters from the Results page directly to the graph. The simplest technique is to return to the nonlinear regression results sheet and drag your cursor to select the results of interest:

Choose Edit...Copy, switch to the graph, and choose Edit...Paste Table. You can now select the embedded table and drag it to a convenient open spot (in the illustration below, we removed the frame around the plot area).

The beauty of pasting results from the Results sheet to your graph is that, since all related steps in your project are linked, changing your data will result in all corrections being made on the graph automatically — including the pasted values for EC50.Try it! This saves effort not only when you need to correct data errors, but every time you need to construct a new dose-response curve. In face, once you’ve settled on the design of your dose-response curve, consider saving your entire project, for use with new data, as a template.
Keywords: analyzing dose response data