Filtering - Flooring - Variance stabilising transformation
The solution printed onto the array has some degree of transparency. This causes many problems. Background intensity that shines through is added to the intensity measured from the spot. If we knew exactly how much background came through in each spot, it would be easy to just subtract the background from the foreground intensity.
Both global and local background intensity exist. The global background intensity is affecting all spots to the same extent. Local background intensity on the other hand, can affect spots to different degrees. Some of this background is additive, while some is not. Additive background means that the intensity of the background shines through and is added to the intensity of the spot itself. Areas with additive background normally have brighter spots. Since this local background may vary a lot between different areas on the array, it should be corrected for.
Some local background is not additive. This is background intensity that does not shine through. If the foreground intensity is corrected by subtracting the local background intensity, too much could be subtracted from each spot. Spots that have very low or no intensity will then get negative values. This is a problem when doing log transformation, which does not handle negative values.
A solution to this problem is to filter all spots that have intensity close to background intensity. Depending on what type of data you have and the questions you are trying to answer, the information you loose by filtering these spots are have varying impact. If the intensity is close to background in one channel while being very high in the other channel, you loose information by filtering this spot. If the intensity is low in both channels, you are probably not loosing much by filtering this spot, or you need to use a more sensitive type of microarray.
If for instance you have hybridised treated vs. non-treated, and one of these get very high expression while the expression of the other is non-existent, you could loose valuable information by removing this spot. We therefore need to consider other ways of dealing with this problem.
Flooring is a technique that can be used to prevent information from beeing lost during filtering. It basically means that if the intensity is below a certain value in only one of the channels, we set it to a fixed, minimum value. This way we get a positiv value that can be log transformed.
However, you should be aware that when using floor values you may add artifacts to the data. This could have an impact on e.g. clustering results. Flooring works well if you want to identify differentially expressed genes, where treated vs non-treated have been hybridised on the same array, but you may want to filter these spots for doing other types of analysis.
Another solution could be to use a data transformation procedure which handles negative values. Variance stabilising transformation does this. It is currently not possible to do variance stabilising transformation in J-Express.
Efforts are being put into finding a better solution. There is no correct way of dealing with this problem.