How to create MA plot of microarray data
Go to parent Analyze your own microarray data in R/Bioconductor
The code on this page works for both affy and oligo
How to plot the MA plot of each array ? |
---|
MA plots are created via the MAplot() method which can be applied directly on an AffyBatch/FeatureSet object.
for (i in 1:6) { name = paste("MAplot",i,".jpg",sep="") jpeg(name) MAplot(data,which=i) dev.off() } The which argument allows you to specify which array to compare with the median array. So if you have 6 arrays, you have to repeat this command 6 times, varying the value of the which argument from 1 to 6. |
Ideally, the cloud of data points should be centered around M=0 (blue line). This is because we assume that the majority of the genes is not DE and that the number of upregulated genes is similar to the number of downregulated genes. Additionally, the variability of the M values should be similar for different A values (average intensities). You see that the spread of the cloud increases with the average intensity: the loess curve (red line) moves further and further away from M=0 when A increases. To remove (some of) this dependency, we will normalize the data.
How to create an MA plot of the normalized intensities ? |
---|
MA plots are created via the MAplot() method which can be applied directly on an AffyBatch or ExpressionSet object.
for (i in 1:6) { name = paste("MAplotnorm",i,".jpg",sep="") jpeg(name) MAplot(data.rma,which=i) dev.off() } The which argument allows you to specify which array to compare with the median array. So in our example, we have 6 arrays, so we have to repeat this command 6 times, varying the value of the which argument from 1 to 6. |
When you compare this plot to the one created for the raw intensities, you see a much more symmetric and even spread of the data indicating that the dependence of the variability on the average expression level is not as strong as it was before normalization.