Prostate cancer topics, links and more. Now at 200+ posts!

News: Health Day, Medical News Today, ScienceDaily, Urol Times, Urotoday, Zero Cancer Papers: Pubmed (all), Pubmed (Free only), Amedeo
Journals: Eur Urol, J Urol, JCO, The Prostate Others Pubmed Central Journals (Free): Adv Urol, BMC Urol, J Endourol, Kor J Urol, Rev Urol, Ther Adv Urol, Urol Ann
Reviews: Cochrane Summaries, PC Infolink Newsletters: PCRI, US Too General Medical Reviews: f1000, Health News Review

Wednesday, March 14, 2007

PSA Doubling Time (PSADT) - Part 2. Calculating PSADT with Graphics

[Updated page November 8, 2009]

This is Part 2 of a 4 part series on PSA Doubling Time (PSADT):

Methods of Calculation

There are two main methods of calculating doubling time. (1) The first method is to base it only on the first and last points ignoring all intervening data. (2) The second is to graph log2(PSA) vs. time and fit (either mathematically or by eye) a straight line to that data.

Importance of Graphics

It is important to ensure that the log2(PSA) does, in fact, roughly rise in a straight line with time over the portion of the data fitted in order to get reasonable results from the these procedures. Presumably searching for a completely automatic procedure, Svatek et al (2006) [PMID: 16456812] [Full article] attempted to fit such straight lines to each of 122 androgen independent patients and found such fitting actually gave worse prediction of disease progression than the simpler scheme of just using the first and last points. We interpret this as showing what can happen if one does not take the precaution of assessing the data as one conforming to geometric increase first. That is, one should plot log2(PSA) vs. time (or similarly plot PSA vs. time on a semilog chart) and ensure that the fitting procedure is only applied to that portion of the data, if any, that forms a relatively straight line. Because of this it is important to not only have a method of calculating doubling times but also a facility to display the associated graph.

Calculators with Semilog Graphics
  • Doubling time spreadsheet. Jon Nowlin has developed an Excel spreadsheet which calculates PSA doubling time and displays an attractive semilog graph. It also has capabilities to simultaneously show % Free PSA and Complexed PSA and to calculate the doubling time not only of Total PSA but also Complexed PSA. (More info on Total, Free and Complexed PSA is available on the PCRI site here.) The spreadsheet also ability to exclude selected points. It can be obtained from either of these locations: [spreadsheet on prostatecancerwatchfulwaiting] or [spreadsheet on Yahoo groups]. The prostatecancerwatchfulwaiting site is easier to access whereas the yahoo groups site requires you to sign in (although such sign in is free). On the other hand, the one on yahoo groups, while otherwise identical, is filled in with sample data that might be helpful in terms of illustrating how to use it whereas the other one does nothave this sample data.

  • Doubling time log2 sheet. Not a calculator but a simple way to calculate it by hand using graph paper. The first page discusses how to do it and the second page is blank sheet you can print off to plot your PSA values.

  • Formula for multiple PSA values. With multiple PSA values the slope of the regression line of log2(PSA) vs. time is the number of doublings per unit time and the 1/slope is the doubling time. Using this fact you can use any calculator or spreadsheet (such as Microsoft Excel or the free Open Office Calc) that supports regression. We show how to implement this in two different systems: Excel and R.

    • Excel Code. Suppose we have 4 PSA values. Place their dates in A1, A2, A3 and A4. Place the values themselves in B1, B2, B3 and B4. Now place their log2 values in C1 through C4 by placing =log(B1,2) in C1 and copying that to C2 through C4 which should cause C2 through C4 to contain =log(B2,2), =log(B3,2) and =log(B4,2), respectively. In an empty cell place =1/slope(C1:C4,A1:A4) . That will be the doubling time in days. To get it in months multiply it by 12/365.25 or to get it in years divide it by 365.25. To create a semilog graph first create an ordinary graph by selecting the values in columns A and B, clicking on the graph wizard at top and selecting scatterplot. Once the graph is drawn double click the Y axis and on the Scale tab choose Logarithmic. Now right click any of the data points and choose Add Trendline and in the popup that follows choose Exponential as the type. (Actually an exponential fit to the original data displayed on semilog axes is not 100% identical to a linear regression fit of the logarithm of the data but its probably close enough for practical use.) You can add gridlines to the chart by right clicking any blank area on the chart, choosing Chart Options, clicking the Gridlines tab and checking off which gridlines you like.

    • R Code. R is a free statistical package and language that can be run right from the Rweb web page so there is nothing to buy, download or install. For short calculations such as this one that should be sufficient; however, for longer calculations it is also available and free as a download for Windows, Mac and Linux. It is often used in biostatistics. Suppose we have PSA of 4, 5, 6 and 7 at Jan 23 of 2000, Feb 15th of 2001, June 13th of 2002 and August 22nd of 2003. Then we can implement the log2 regression with the following R code (where the first two statements are to enter the data, the next three statements perform the regression and calculate the doubling time in days and in months and the last two statements produce a graph of log2(psa) vs. date drawing the regression line through it). Just paste the code below (with your data substituted) into the Rweb web site.

      psa <- c(4, 5, 6, 7)
      dates <- as.Date(c("2000-01-23", "2001-02-15", "2002-06-13",

      psa.lm <- lm(log2(psa) ~ dates)
      1 / coef(psa.lm)[2] # PSADT in days
      (12 / 365.25) / coef(psa.lm)[2] # PSADT in months
      (1 / 365.25) / coef(psa.lm)[2] # PSADT in years

      plot(log2(psa) ~ dates)
      abline(psa.lm, col = "red")

      (Alternately, instructions on installing R on your own computer as well as more sophisticated R code for this is in this post).

    (Note that if you are using different software not supporting a log2 function then use the fact that log2(x) = log(x) / log(2) for log in any base as long as the base of the log in the numerator is the same as the one in denominator.)

No comments: