How To Perform The Pfaffl Method For qPCR

What is the Pfaffl method?

The Pfaffl method, named after it’s curator Michael Pfaffl, is used to calculate relative gene expression data while accounting for differences in primer efficiencies. Pfaffl published his formula in the journal Nucleic Acids Research in 2001. Unlike the delta-delta Ct method, which assumes primer efficiencies are similar (usually between 90 – 110%) between the gene of interest (GOI) and the housekeeping gene (HKG), the Pfaffl method accounts for any efficiency differences to increase reproducibility.

In order to perform the Pfaffl formula, you require primer efficiencies for your GOI and HKG, as well as cycle threshold (Ct) values for your samples.

A video for this article can be found in our online course: Mastering qPCR.

What is the Pfaffl formula?

The Pfaffl formula is presented below:

Pfaffl equationThe ‘E‘ in the equation refers to the primer efficiency.

Looks scary, doesn’t it? It actually isn’t. I will use an example below and break down the equation so it is easier to understand.

How to use the Pfaffl formula

For this example, I will be using the same dataset as from the delta-delta Ct guide, where I have Ct values (performed in duplicate) for control and treated samples and an HKG and GOI for each. This could be a theoretical example of a cell culture experiment which has been repeated three times, so I have three independent sets of control and treated samples.

Delta delta Ct data example1. Calculate primer efficiencies

The first thing that is required for the Pfaffl method is the primer efficiencies for your GOI and the HKG. How to calculate primer efficiencies has been described in detail previously, so please refer to this post before continuing further.

Once you have the primer efficiencies, these will be in the format of a percentage, for example, 98%. However, this percentage is not entered directly into the Pfaffl equation, rather it needs to be converted.

A converted primer efficiency value of ‘2‘ indicates a 100% efficiency. This is the case when using the delta-delta Ct method. In other words, for every PCR cycle, the amount of DNA will multiply by 2. On the other hand, an efficiency of 90% would give a converted value of ‘1.90‘ and an efficiency of 110% would give a value of ‘2.10‘.

If you are still unsure, an easy way to convert the primer efficiency percentage is to divide the percentage by 100 and add 1.

Primer efficiency converted formula Pfaffl equation

For this example, I will pretend I have calculated the primer efficiency of my GOI as ‘1.93‘ (93%) and the HKG as ‘2.01‘ (101%).

2. Average your technical replicates

Once you have your primer efficiencies, the next step is to calculate the average Ct values from the technical replicates, in this case, I have duplicates for all the samples.

Using the sample data from above, this is what I get:

Delta delta Ct data average Ct3. Select a calibrator/reference sample or samples

The next step is to decide which sample, or group of samples, to use as a calibrator/reference when calculating the ∆Ct values for all the samples. This is the part which confuses a lot of people. Basically, this all depends on your experiment set-up.

A common way of doing this is to just match the experimental samples and determine the relative gene expression ratios separately. This is all well and true for experiments that have matched pairs, such as the case in cell culture experiments. However, this is difficult when the two experimental groups vary in n numbers and do not have matched pairs.

Another way to select a calibrator/reference sample is to pick the sample with the highest Ct value, so the sample with the lowest gene expression. This way, all the results will be relative to this sample.

I personally average the ‘Average Ct’ values of the biological replicates of the control group to create a ‘Control average’. By doing so would mean that the results are presented relative to the control average Ct values.

Whichever sample, or group of samples, you use as your calibrator/reference is fine so long as this is consistent throughout the analyses and is reported in the results so it is clear. Remember, the results produced at the end are relative gene expression values.

With this in mind, we next need to average the ‘average Ct‘ values for the control samples for the HKG and GOI. So, for the HKG this will be the average of ‘17.18‘, ‘16.96‘ and ‘17.11‘, which works out as ‘17.08‘. For the GOI this will be the average of ‘30.55‘, ‘30.55‘ and ‘30.79‘, so ‘30.63‘ will be the average value.

Pfaffl average Ct4. Calculate delta Ct values

Next, we need to calculate ∆Ct separately for each gene in each sample. To do this, simply subtract the newly created ‘Control average‘ (now acting as the calibrator/reference) value from the ‘Average Ct‘ of each sample (including all of the control samples). By using the ‘Control average‘ this will enable us to create ∆Ct values for each control sample as well as the treated samples.

Pfaffl delta CtSo, to calculate the ∆Ct for the HKG in sample ‘Control 1‘, you need to do 17.08 – 17.18, which equals ‘-0.10‘. By repeating this for all the samples, for both genes, we get the results below.

Pfaffl equation delta Ct5. Enter everything into the Pfaffl equation

We now have the ∆Ct values for both genes in all the samples. We also know our primer efficiencies (step 1).

Therefore, we can now enter everything into the Pfaffl equation to get the gene expression ratio.

Pfaffl equation finalBy doing this for all the samples in the example, this is what we get:

Pfaffl fold gene expression

Reporting the results

The relative gene expression ratio is what you will report. The best way to report this is a simple bar chart showing the control and treated groups. The graph will display the mean gene expression ratio and usually the standard deviation (or standard error) bars. I have done this below for the example dataset.

Pfaffl results graphSince there is a large difference in average values between the two groups, I have segmented the y-axis so it is easier to see the control group average value.

Analysing qPCR results with multiple reference genes

If you have more than one reference/housekeeping gene, it may be worth checking out the guide on analysing qPCR data with numerous reference genes. This approach is very similar to the Pfaffl method, with a slight difference in that it can handle two or more reference genes to normalise to.

The FREE Pfaffl Method Excel template

For those still struggling with the analysis, or just want an easy template to use to quickly calculate the gene expression ratio using the Pfaffl method, I have created a Microsoft Excel template to freely download. The file is suitable for the above example, i.e. when there are two experimental groups (control and treated, for example) with three biological replicates in each, with a GOI and HKG.

Click here to download the Pfaffl method data analysis template.


    • Hi Rupika,
      Thanks for the message and for letting me know. I don’t know what happened but the formula had disappeared. I have since re-uploaded the file so it should now work.
      Let me know if you get stuck with anything. 🙂
      Best wishes,

  1. Hi Steven,

    Is it okay to do statistics on gene expression ratios? Is there any requirement of log transformation?

    • Hi Lovepreet,

      Many thanks for your comment. Sure, you can do statistics on the gene expression ratios. Log transformation is only needed if your data is heavily skewed.

      Best wishes,


      • Hi Steven,
        Thank you for your response. I was reading the original article and found that author presented mean CP of biological reps and calculated delta CP from the mean values. I am really confused which way to go? Either calculating ratios for individual reps or ratio from mean of biological reps. In case of calculating ratio from mean of biological reps, how can I calculate the standard error or standard deviation?

        Best Regards,

        • Hi Lovepreet,
          That is correct, the original paper presented average Cp across the biological repeats. They then calculated gene expression ratios separately from each experimental pair, so using the samples from the paper this would be:

          TyrA (Sample rep 1) v TyrA (Control rep 1) = Gene expression ratio 1
          TyrA (Sample rep 2) v TyrA (Control rep 2) = Gene expression ratio 2
          TyrA (Sample rep 3) v TyrA (Control rep 3) = Gene expression ratio 3

          They would calculate the SE and SD from Gene expression ratio 1, 2 and 3 from the experimental pairs. Does that make sense?

          The reason I compare all my samples to the average delta Ct of the control group is because sometimes you may not have experimental pairs in experiments. For example, when the two groups have different n numbers e.g. in an animal study it may be common to have different number of animal in each group. Or in the case of looking at expression levels in human tissues.

          I hope that makes sense? I will amend the article to make this a bit clearer.


  2. Hi Steven,

    First of all, thanks for your explanation.

    Secondly, I would like to ask you if I could use this method when my primers efficiencies are near to 60% and 100% or I should improve the first primers efficiency.

    Best wishes,


    • Hi Lia
      I personally would try to optimise the 60% primer set. I wouldn’t use anything outside the 90 – 110 % range. Is there primer dimer present, as this can significantly reduce the efficiency. Also what is the size of the PCR product?

      If optimising the current primer set doesn’t work, it may be better and cheaper to re-design them.
      Hope that helps,

  3. Hi, thanks for the post.

    Just some clarifications:

    You should not plot the two bars separetely if you already calculated the relative expression, i.e, fold changes. The problem with this approach is that you’re creating two populations that are not independent anymore. If you want to show fold-changes, you should omit the control, since the treated values are already relative to the control. If you still prefer to show this way, just don’t perform statistics on those values. You should compare the Delta CT for the two groups in T tests and such. If you compare the fold-changes to the control in statistical procedures, you’re hugely inflating the differences as the control population has mean 1 with a very tiny variance, which is not true when you look at only the normalized expression (Delta Ct) mean and variances.

    When we say qPCR for gene expression is relative, this is relative in two possible ways: 1. Gene of interest relative to one or more Reference Genes.
    2. Relative in a sense of a sample to another. Although, a lot of designs are not paired and should not be comparing samples on a pairwise level. For these cases, the best way is to simply average group1 and divide by the considered reference group. Thus, avg_group1 / avg_group2 = fold change of Group1 relative to group2.

    Best regards,


    • Hi Thyago,

      Many thanks for your comment and the points you raised.

      I agree that it is sometimes useless to include the control group in the bar chart since the average of this fold expression will be 1 – I see others remove it and draw a horizontal line at 1 instead to represent the control/calibrator relative values.

      For the statistics – this is true. The fold expression values will not be normally distributed – in fact in this instance a one-sample test would be best since everything is compared to 1. Otherwise, delta Ct values will be normally distributed and so parametric tests would be more appropriate on these. I will go over the articles to include a sub-section on statistical analysis based on these points for clarification.

      I agree with the terminology and like to use normalise to state the normalization/standardisation to the reference/housekeeping genes and relative to refer to the group/samples relative to (e.g. calibrator, control sample). I will go over the articles and clarify these points too.

      Best wishes,


  4. Thank for your post.
    Please show me how to set up the quantitative real-time PCR in order to utilize the Pfaffl method in my situation. Here is my purpose
    I would like to compare the expression of gene Z between bacteria A and B. I use gene D as a reference gene for both A and B.

    • Hello,
      Thank you for your message. Sure. Do you also have primer efficiencies for the gene of interest and reference genes?
      Best wishes,

  5. Hi!
    Thanks for the useful articles.

    I have some (maybe dumb) questions.
    How does this Pfaffl method and the delta-delta Ct method differ other than the primer efficiency?
    Would they both give the same value for gene expression if the primer efficiency of the GOI and houskeeping gene were exactly the same? Is the value called “gene expression ratio” here the same as the “fold gene expression” in the regular ddCt method?

    And what exactly does the gene expression/fold gene expression mean? If it has a value of 30 for one sample, does that mean that the gene is being expressed 30 times higher in this sample than in the control samples?

    And at last, when you have the gene expression values for each of the samples, can you just take the arithmetic average of the values in each group to be able to compare the groups?

    I hope my questions are not too confusing.



Please enter your comment!
Please enter your name here