Sign up ×
Biology Stack Exchange is a question and answer site for biology researchers, academics, and students. It's 100% free, no registration required.

Logistic regression is a common analysis tool used for GWAS when your response variable of interested is qualitative. It comes as one of the standard tools in most GWAS packages (e.g. PLINK).

Most logistic regression models for GWAS would be setup as:

$\log{\frac{P(Y=1)}{1-P(Y=1)}} = \beta_0 + \beta_1*X$

Where $X$ is number of copies of the minor allele for a particular SNP of interest and $Y$ is disease stuatus. However, suppose that my case-control data is matched (In my case matched by age, BMI, reported ethnicity, and distance to procurement site). I don't think standard logistic regression (as I have outlined above) is valid. What does everybody do? I don't see options for this in packages like PLINK.

I also posted this question on ( before I realized they were no longer part of stackexchange.

share|improve this question

1 Answer 1

up vote 1 down vote accepted

My first thought was to suggest a mixed effects model, so I will describe that first. But having had a Google there are models known as "Conditional logistic regression" models in which you can include any data structure as a covariate, which may be more appropriate, but I cannot vouch for them as I haven't used them. I would suggest reading the documentation.

Mixed effects models

I only know how to do this in R (stats language -, but if you're using PLINK (so presumably also UNIX) R is pretty straightforward.

There are a couple of packages available for mixed effects models, my personal preference is function lme in package nlme (CRAN link). This type of model allows you to specify 2 types of independent variable (e.g. age, BMI, ethnicity... in your case);

  1. Fixed effects - such as age, sex (something that is a phenotype of the samples),
  2. Random effects - such as batch or other "technical" consideration,

This means you can format a model as you would before, but include an additional "random effects" term for your "matched" variable;

model = lme( fixed= outcome ~ exposure + covariate1, random= 1|matched )


Conditional logistic regression models

In the survival package for R there is a function called clogit (CRAN link) which seems to do exactly what you want. Although I have never used it myself.

From what I can gather this allows you to run a logistic regression with an additional covariate strata(matched), so your model may look like

model = clogit( outcome ~ exposure + covariate1 + strata(matched) )



This may not be exactly what you are after, as I'm not familiar with your data, so I would suggest heading over to as well, and searching for questions about regression analysis and paired observations - if none answer your question then ask a fresh one.

share|improve this answer
Thank you Luke. I'm quite familiar with R, and I figured either a mixed effects model or conditional logistic regression would be needed. I was just not seeing those in the basic GWAS I was wondering if I was missing something. Thank you! – bdeonovic Sep 19 '13 at 14:13
@Benjamin I find that the published packages are only so useful - they're great for performing simple analyses via an established pipeline - but there is no substitute for creating an analysis that actually fits your data. Unless there truly is an established, published method, it is better to adapt one to your specific situation - all experiments are different and have their own considerations! – Luke Sep 20 '13 at 13:56

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.