How to interpret a QQ-plot of p-values I am doing GWAS SNP association studies on diseases by using a software called plink (http://pngu.mgh.harvard.edu/~purcell/plink/download.shtml).
With association results I get p-values for all the SNPs that was analyzed. Now, I use a QQ-plot of those p-values to show if a very low p-value differs from the expected distribution of p-values (a uniform distribution). If a p-value deviates from the expected distribution one "may" call that p-value for statistic significant.
As you can see in the QQ-plot, at the top tail end, the last 4 points are somewhat hard to interpret. Two of the last points in the grey suggests that those p-values are in the expected distribution of p-values, whilst the other two are not.
Now, how to interpret this, the last two points have lower p-values but are not "significant" according to the QQ-plot, whilst the other two points with higher p-values are "significant"? How can this be true?

 A: This is an older question, but I found it helpful when trying to interpret QQPlots for the first time. I thought I'd add to these answers in case more people stumble across this in the future.
The thing I found a little tricky to understand is what are those points exactly? I found going to the code made it easy to figure out.
Here is some R code that I adapted from GWASTools::qqPlot that implements a QQPlot in 3 lines:
simpleQQPlot = function (observedPValues) {
  plot(-log10(1:length(observedPValues)/length(observedPValues)), 
       -log10(sort(observedPValues)))
  abline(0, 1, col = "red")
}

Here's an example. You have 5 p-values. simpleQQPlot will generate 5 corresponding pvalues from a uniform distribution between 0 and 1. These will be: .2 .4 .6 .8 and 1. So simpleQQPlot expects your lowest p-value to be around .2, and your highest to be around 1. simpleQQPlot will sort your pvalues and pair each to the corresponding generated value. So .2 will be paired with your lowest pvalue, 1 with your highest, and so on. Then, these paired values are plotted (after taking the negative logs), with X being the generated pvalue, and Y being the paired observed value. If your observed values were also pulled from a uniform distribution, then the points should roughly lie on the straight line. Because of the sorting, the points will always increase monotonically. So each subsequent point will have a greater X, and a greater than or equal Y. The jump between Y values depends on your data, but with the log transformation, you'll see a larger jump in X as you move further to the right.
So in the original example above, the 9,997th sorted p-value was around 5.2 but was expected to be around 4.1 if following a uniform distribution. (Note: I'm not actually sure how many p-values were plotted above--I just guessed 10k).
A: A good reference on the analysis of p-value plots is [1].
The result you are seeing may be driven by the fact the signal/effects exist only at some subset of tests. These are driven above the acceptance bands. Rejecting only the p-value outside the bands can indeed be justified, but perhaps more importantly, you should decide what is the error criterion you want to control when selecting your selection procedure (FWER, FDR). You can consult [2] for that choice, and references therein for choosing the appropriate multiple testing procedure. 
[1] Schweder, T., and E. Spjotvoll. “Plots of P-Values to Evaluate Many Tests Simultaneously.” Biometrika 69, no. 3 (December 1982): 493–502. doi:10.2307/2335984.
[2] Rosenblatt, Jonathan. “A Practitioner’s Guide to Multiple Testing Error Rates.” ArXiv e-print. Tel Aviv University, April 17, 2013. http://arxiv.org/abs/1304.4920.
