Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement geNorm reference gene selection method #17

Open
ewallace opened this issue Dec 22, 2019 · 2 comments
Open

Implement geNorm reference gene selection method #17

ewallace opened this issue Dec 22, 2019 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@ewallace
Copy link
Collaborator

Check the MIQE-recommended GeNorm method, and compare in detail to tidyqpcr's normalizeqPCR function, which is geometric (Ct/log-scale) and uses median.

Method is described in Vandesompele et al., Genome Biology, 2002, 'Accurate normalization of real-time quantitative RT-PCR data by geometric averaging of multiple internal control genes'.

According to the geNorm website, this method is implemented in commercial software qbase+.

Fixing this will likely require adding an "efficiency" argument to normalizeqPCR.

@ewallace
Copy link
Collaborator Author

See also relative quantification framework paper, including taking a mean of efficiencies for normalizing acorss multiple reference genes.

That 2007 paper refers to qbase as an open-source software, but I could not find any evidence that the source was still available.

@ewallace
Copy link
Collaborator Author

Clarification: as it says on the genorm website:

geNorm is a popular algorithm to determine the most stable reference (housekeeping) genes from a set of tested candidate reference genes in a given sample panel. From this, a gene expression normalization factor can be calculated for each sample based on the geometric mean of a user-defined number of reference genes.

In tidyqpcr, normalizeqPCR already does the expression normalization factor for each sample/ SampleID based on geometric median or mean of user-defined reference genes.

Implementation of geNorm would be a separate function to select reference genes from a dataset, as described in this paper:

Vandesompele, J., De Preter, K., Pattyn, F. et al. Accurate normalization of real-time quantitative RT-PCR data by geometric averaging of multiple internal control genes. Genome Biol 3, research0034.1 (2002)..

For every control gene we determined the pairwise variation with all other control genes as the standard deviation of the logarithmically transformed expression ratios, and defined the internal control gene-stability measure M as the average pairwise variation of a particular gene with all other control genes. Genes with the lowest M values have the most stable expression. Assuming that the control genes are not co-regulated, stepwise exclusion of the gene with the highest M value results in a combination of two constitutively expressed housekeeping genes that have the most stable expression in the tested samples.

Materials and methods says:

For every combination of two internal control genes j and k, an array A jk of m elements is calculated which consist of log2-transformed expression ratios a_ij /a_ik (Equation 2). We define the pairwise variation V jk for the control genes j and k as the standard deviation of the A jk elements (Equation 3). The gene-stability measure M_j for control gene j is the arithmetic mean of all pairwise variations V_jk (Equation 4).

Then:

Taking all this into consideration, we recommend the minimal use of the three most stable internal control genes for calculation of an RT-PCR normalization factor (NF_n , n = 3), and stepwise inclusion of more control genes until the (n + 1)th gene has no significant contribution to the newly calculated normalization factor (NF_{n + 1}).

Implementing that in tidyqpcr would involve:

  • a function to calculate gene stability measure M_j
  • a function to loop over gene subsets in decreasing order of M_j, and get the normalization factor for each subset.

This is feasible, and we should ask users if the feature is a priority.

@ewallace ewallace changed the title compare normalizeqPCR with geNorm method Implement geNorm reference gene selection method May 13, 2020
@ewallace ewallace added the enhancement New feature or request label Aug 18, 2020
@ewallace ewallace added this to the rOpenSci submission milestone Sep 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants