From Molecular Measurements to a Defensible QTL Report
A molecular QTL result is not just the smallest p-value in a table. It depends on how the molecular phenotype was processed, which covariates were included, what variants counted as cis, and how many hypotheses were tested. A concise report should make those choices visible and connect them to an interpretable effect estimate.
The worked analysis below is entirely hypothetical. It follows one gene measured in 120 unrelated donors and tests variants in a prespecified cis window around that gene. The aim is to estimate and test an association, not to establish that a variant causes a change in expression.
Process and Inspect the Phenotype
Start by defining the phenotype and its scale. For an expression analysis, a typical workflow filters genes with insufficient counts, normalizes for library size and other assay features, and transforms the normalized measurements if a Gaussian linear model is planned. The transformation, normalization method, and any filtering thresholds should be fixed and recorded rather than chosen to make a particular association appear stronger.
For illustration, suppose a hypothetical sample has 240 reads assigned to a gene and a library size of 20 million reads. Its count per million (CPM) is \(240/(20{,}000{,}000)\times 1{,}000{,}000=12\). With a prespecified pseudocount of 0.5, the transformed value is \(\log_2(12+0.5)\), approximately 3.644. The pseudocount keeps the logarithm defined at zero; it also means the transformed scale is not an exact log of unadjusted abundance, especially for very small values.
Worked Example: Transforming a Hypothetical Expression Measurement
A second hypothetical donor has 60 reads assigned to the same gene and a library size of 15 million reads. Use CPM followed by \(\log_2(\mathrm{CPM}+0.5)\).
First calculate CPM:
Then apply the stated transformation:
The value 2.170 is a transformed, normalized expression measurement, not a read count. This arithmetic illustrates the specified transformation only; a real analysis must also use a normalization approach appropriate to its assay and data structure.
Before fitting a model, check that the phenotype has enough usable observations and that the processing did not introduce obvious artifacts. A transformation does not guarantee normally distributed residuals, and no transformation can repair sample swaps, a confounded batch design, or a poorly defined phenotype. Earlier material on diagnosing molecular QTL results and technical artifacts is relevant to these checks.
Specify the Association Model Before Testing
For the hypothetical analysis, let \(Y_i\) be the transformed expression measurement for donor \(i\), and let \(G_i\in\{0,1,2\}\) be the number of copies of the tested effect allele. The model uses an additive genotype dosage and adjusts for prespecified age, sex, assay batch, and three ancestry principal components. Age and the principal components are centered; categorical variables are represented by indicator variables. These choices must be supported by the study design and data, not selected only because they produce a small p-value.
Here \(\beta_G\) is the conditional mean difference in transformed expression per additional effect allele, holding the included covariates fixed. The usual linear-model test and confidence interval rely on a correctly specified conditional mean, independent observations, no perfect collinearity, and errors with constant variance; exact small-sample t-based inference additionally assumes normally distributed errors conditional on the predictors. Genotype dosage should be coded consistently, and the tested variants and phenotype must be aligned to the same samples. If donors are related or measurements are repeated, the independence assumption may fail and an appropriate mixed model is needed.
Worked Example: Interpreting the Fitted Genotype Effect
Suppose the hypothetical fit uses 120 donors and returns \(\hat{\beta}_G=0.42\) transformed expression units per effect allele, with \(SE=0.10\). There are seven slope parameters (genotype, age, sex, batch, and three principal components), plus an intercept, so \(df=120-8=112\).
The test of no conditional linear association is \(H_0:\beta_G=0\), against the two-sided alternative \(H_a:\beta_G\ne 0\). The statistic is:
For \(t=4.20\) with 112 degrees of freedom, the two-sided p-value is approximately \(5.4\times10^{-5}\). The estimate is therefore inconsistent with a zero genotype coefficient under this model at conventional significance levels; the p-value is not the probability that \(H_0\) is true.
Using the 95% t critical value of approximately 1.981, the confidence interval is:
In this hypothetical sample and model, each additional effect allele is associated with an estimated increase of 0.42 units on the transformed expression scale, with a 95% confidence interval from 0.222 to 0.618 units. The interval describes uncertainty under the model; it is not a 95% probability statement about the fixed coefficient.
Test a Defined Family and Adjust for Multiplicity
A cis analysis typically tests many variants for a molecular trait. A small unadjusted p-value must therefore be interpreted in relation to the full family of hypotheses. Define that family before examining results. In this example, the family is 100 prespecified variants in the gene’s cis window, all tested for association with this one expression phenotype in the same 120 donors. If a study tests many genes as well, that broader family needs to be addressed separately or included in the stated correction.
For the Benjamini–Hochberg procedure, sort the \(m\) p-values from smallest to largest, \(p_{(1)}\le\cdots\le p_{(m)}\). At target false discovery rate \(q\), find the largest rank \(i\) satisfying \(p_{(i)}\le(i/m)q\); discoveries through that rank are declared. The adjusted p-value for rank \(i\) is the minimum, over ranks \(j\ge i\), of \(m p_{(j)}/j\), capped at 1. The procedure controls the expected false discovery proportion under independence and certain positive-dependence conditions; arbitrary dependence requires additional care.
Worked Example: Adjusting the Lead Variant’s P-Value
Suppose the 100 p-values are ordered with \(p_{(1)}=0.000054\), \(p_{(2)}=0.0012\), and \(p_{(3)}=0.0040\), and the minimum adjusted value across ranks is attained at rank 1. The lead variant is rank 1, so its adjusted value is:
For example, the rank-2 candidate gives \(100(0.0012)/2=0.060\), which is larger than 0.0054. With the stated ordered results, the lead variant has an adjusted p-value of 0.0054 and meets a 0.05 threshold for this 100-test family. This is an adjusted measure of evidence for multiple testing, not the probability that the association is false.
Check Diagnostics Before Writing the Result
A significant test does not establish that a model fits adequately. Examine residuals against fitted values and covariates for nonlinearity, unequal spread, or systematic patterns; inspect a residual quantile plot for substantial departures from normality when using t-based inference; and check for influential observations. Also verify genotype counts, missingness, allele coding, and the covariate design. Diagnostics can identify concerns, but a clean-looking plot cannot prove that every assumption is true.
In the hypothetical analysis, genotype counts are 48 donors with dosage 0, 54 with dosage 1, and 18 with dosage 2. Suppose residual plots show no marked curvature or funnel shape, the quantile plot has only mild tail departure, and no single donor is highly influential. Suppose also that the maximum variance inflation factor among the model predictors is 1.8 and the design matrix is full rank. These checks support proceeding with the stated model, but the modest number of dosage-2 donors and the observational design remain relevant limitations. A serious failure of assumptions should prompt a justified alternative model or a qualified report, not simply a different test chosen to obtain significance.
A Short Justification for the Test and Interval
The genotype coefficient is estimated after accounting for the other model predictors. In ordinary least squares, the same coefficient can be understood by first removing the linear contributions of the covariates from both the phenotype and genotype, then regressing the residualized phenotype on residualized genotype. This makes clear why covariate specification affects the genotype estimate: the test uses the variation in genotype not explained by those covariates.
Under the stated linear-model assumptions, the estimated coefficient has standard error \(SE(\hat{\beta}_G)\). Under \(H_0\), the standardized estimate follows a t distribution with residual degrees of freedom, giving the statistic and p-value used above. Inverting the same two-sided test yields the confidence interval:
Thus the interval and test are consistent: a two-sided test at level \(\alpha=0.05\) rejects a zero coefficient exactly when the corresponding 95% interval excludes zero, subject to using the same model and standard-error method.
Report the Analysis, Not Just the Smallest P-Value
A concise association report should identify the phenotype and its scale, sample size, tested region and variant, genotype coding, covariates, effect estimate with units, standard error or interval, raw and adjusted p-values, and key diagnostics or limitations. State the correction family so readers can tell what the adjusted result means. Report the genome build and variant identifier, effect and other allele, and cis-window definition when those details are available.
Worked Example: Concise Hypothetical Association Report
“In 120 unrelated hypothetical donors, normalized expression for gene G was analyzed on the \(\log_2(\mathrm{CPM}+0.5)\) scale. Additive dosage of the effect allele at variant rsExample1 was tested by linear regression adjusted for centered age, sex, assay batch, and three ancestry principal components. The estimated effect was 0.42 transformed expression units per allele (\(SE=0.10\); 95% CI, 0.222 to 0.618; \(t_{112}=4.20\); two-sided \(p=5.4\times10^{-5}\)). This was the lead result among 100 prespecified cis variants for this gene; its Benjamini–Hochberg adjusted p-value was 0.0054. Residual and influence checks showed no major departure from the fitted model, although the dosage-2 group was small. The association is conditional on the specified model and does not by itself establish a causal variant or mechanism.”
The report gives the magnitude and uncertainty, explains the adjustment family, and distinguishes association from causation. In an actual analysis, “rsExample1” and “gene G” would be replaced with the correct identifiers and the genomic build and region would be stated.
Common Pitfalls
- Reporting only the smallest raw p-value. This omits how many hypotheses were tested. Define the family and report the relevant adjusted result.
- Treating transformation as a cosmetic choice. The coefficient’s units depend on the phenotype scale. Name the normalization and transformation so the effect is interpretable.
- Calling a lead variant causal. The lead is the strongest observed association in the tested set; linkage disequilibrium and untested variants can prevent identification of the causal variant.
- Assuming adjustment removes every confounder. Covariates address specified sources of variation under the model. Unmeasured confounding, misspecification, and technical artifacts may remain.
- Reading an adjusted p-value as a probability that the finding is false. It is a multiple-testing-adjusted measure used for decision-making, not a posterior probability about an individual result.
Check Your Understanding
Use the workflow and hypothetical results above to answer these questions.
- Why should a report name both the normalization and transformation used for the molecular phenotype?
- In the fitted model, what does the genotype coefficient represent, and which covariates does its interpretation hold fixed?
- Why is the lead variant’s adjusted p-value tied to a clearly specified family of tests?
- What assumptions support the ordinary least-squares t-test and confidence interval, and which diagnostics can reveal potential problems?
- Why does a significant lead cis-QTL result not, by itself, identify a causal variant?