Please enable JavaScript to view this site.

When you transform data with Prism, the data table isn't changed. Instead, Prism creates a new results table with the transformed values.

Standard functions

Choose a function

Choose from one of these functions for transforming Y values (analogous functions are available for X):



Y= Y * K

Enter K into the box provided

Y = Y + K

Enter K into the box provided

Y = Y – K

Enter K into the box provided

Y = Y / K

Enter K into the box provided

Y = Y squared

Y = Y ^ K

Enter K into the box provided

Y = log(Y)

Logarithm (base 10) of Y

Y = -1*log(Y)

Y = ln(Y)

Natural logarithm (base e) of Y

Y = 10 ^ Y

Ten to the power of Y (inverse of log base 10)

Y = exp(Y)

eY (inverse of natural logarithm)

Y = 1 / Y

Y = sqrt(Y)

Square root of Y

Y = logit(y)

ln(Y / 1 – Y)

Y = probit(Y)

Y must be between 0.0 and 1.0. See notes below.

Y = rank(Y)

Column rank. Smallest Y value assigned a rank of 1

Y = zscore(Y)

Number of SDs from the column mean

Y = sin(Y)

Y is in radians

Y = cos(Y)

Y is in radians

Y = tan(Y)

Y is in radians

Y = arcsin(Y)

Y is in radians

Y = ABS(Y)

Absolute value of Y

Y = Y + Random

Random value selected from a Gaussian (Normal) distribution with a mean of zero and a SD = K (entered into the box provided)

Y = X / Y

Y = Y / X

Y = Y – X

Y = Y + X

Y = Y * X

Y = X – Y

Y = K – Y

Enter K into the box provided

Y = K / Y

Enter K into the box provided

Y = log2(Y)

Logarithm (base 2) of Y

Y = 2^Y

2.0 to the power of Y (inverse of log base 2)

Y = Y rounded to K digits after decimal

Enter K into the box provided


Many of the functions include the variable “K”. Enter a value for K on the dialog. When transforming Y values, you can enter one value of K for all data sets or a separate value of K for each data set. To enter different K values for each data set, choose a data set, enter K, choose another data set, enter its K, and so on. Rather than entering the value of K, you can hook an analysis or info constant.

Notes about the probit() function. Prism uses an older definition of probit that adds 5 to all results, to avoid use of negative numbers. No, it doesn't really make sense, but this was once a common standard. So probit(0.025) = 3.04 (which is -1.96 + 5.00),  probit (.975) = 6.96 (1.96 + 5.00), and probit(0.5) = 5.00 (0.00 + 5.00).


Interchanging X and Y

When you choose a standard function, you can choose to interchange X and Y values and also choose transforms of X or Y or both.

Some notes on swapping X and Y values:

Prism can interchange data on tables with more than one data set (more than one Y column), even though the results sheet has only a single X column. It does this by creating additional rows. The results will be staggered down the page with only one data set in any particular row.

If you entered replicate Y values (or mean with SD or SEM) Prism interchanges X and Y by putting the mean Y value into the X column. Information about the scatter of Y is ignored.

If you selected X or Y transforms (in addition to interchanging), Prism applies the transform to the data after interchanging X and Y. This means that the X transform is applied to data that were originally in the Y column, and the Y transform is applied to data originally in the X column.


Transforming error values

If you entered replicate Y values, Prism can transform each replicate or the mean of the replicates.

If you entered data as mean, SD (or SEM), and N, Prism tries to transform the error bar as well as the mean. When a transform is intrinsically asymmetrical (i. e. logarithms), it is mathematically impossible to transform a SD and end up with a SD. You have two choices. You may either transform the mean only or erase the error bars. Or you may convert the error bars to 95% confidence intervals, and then transform both ends of the confidence interval. The resulting 95% CI will be asymmetrical.



Transforms for pharmacology and biochemistry

Eadie-Hofstee, Hanes-Woolf, and Lineweaver-Burk transforms are used to plot enzyme-kinetic results. Scatchard transforms are used to display radioligand binding, and Hill plots are used to plot dose-response data.

Important:. Use these transforms only as a way to display data, not as a first step in analyzing data. You'll get better results by using nonlinear regression on the actual data.

Here is the mathematical definition of each transform:


X becomes

Y becomes



No change


No change



No change if you entered your data as log(conc.). Log10(X) if you entered your data as concentration.


(Prism prompts for Ymax)











Prism can also create Bland-Altman plots, which require a simple transform of the data. However, this is not done via a transform, but rather via a separate analysis.

User-defined transforms

When writing your transform, you may use any of these functions when writing your equation. Mostly functions are pretty standard.  Beware of the sqr() function, which has different meanings in different environments. In Prism, sqr() squares the value, and the sqrt() function takes the square root.

If you are transforming X values, you may use Y in the function. If the data table contains several data sets (so has several Y values for a single X value), Prism will stagger the results down the page, repeating X values as needed. The results for column A will appear on top of the results table. Below that Prism will place the results for column B. For these rows, column A will be empty.

Usually, the same function is applied to all data sets. But you can write a transform to apply different transforms to different data sets. To do  this, precede the lines that apply to only some data sets with column designators. For example, put <B> in front of a line in your transform that only applies to data set B. Put <~A> in front of a line that applies to all data sets except data set A.

Prism allows you to introduce some branching logic through use of the IF function. The syntax is:

IF (conditional expression, value if true, value if false)

You can precede a conditional expression with NOT, and can connect two conditional expressions with AND or OR. Examples of conditional expressions:



(A<B or A<C)



X<=A and X>=B 

Note: “<>” means not equal to, “<=” means less than or equal to, and “>=” means greater than or equal to. Here is an example:

Y= IF (Y<Y0, Y, Y*Y)

If Y is less than Y0, then Y is unchanged. Otherwise Y is transformed to Y squared.

Y = IF (Y<0, Y/0, Y)

This function  returns Y if Y is positive or zero, but otherwise leaves the results blank. In other words, it removes all negative values. The way to leave a result blank is to do an impossible mathematical transform such as dividing by zero.

© 1995-2019 GraphPad Software, LLC. All rights reserved.