R语言里的image方法可以绘制CEL文件的灰度图像。我们先来讨论image这个的函数:

如:x <- c(0:2)

y <- c(0:2)

m <- matrix(c(1,5,10,17,20,25,15,30,22),3,3)

image(x,y,m)

得到:

 这里定义了一个3*3的矩阵,X坐标和Y坐标都从1变化到3,image函数就给这9个函数分配颜色,数越小颜色越偏深。默认的颜色是橘色。我们也可以设置为其他的颜色如黑灰:

image(x,y,m,col=gray(c(0:9)/9))。当然,这里的(0,0)坐标在左下角。

R语言绘制CEL文件的灰度图像和上例的原理是一样的,m*n的阵列,每个位置有一个对应的探针强度,颜色是gray(c(0:64)/64)(这里共有64个灰度,这是源码的设置),探针强度的数值被分配到到这64个灰度,数值越小颜色越深。下图是HG-U133_Plus_2阵列某样品的灰度图像(R语言作图):

library(affy)

rawData <- ReadAffy()

image(rawData)

一直纳闷的是,为什么这张图是矩形的,不是说好了行数和列数相等吗?而且图像的质量也不高,放大左上角根本就看不清芯片的型号。假如我想获得高清图片呢?也许是有解决办法的,但是目前我还不清楚用R语言怎么得到质量更高的灰度图像。

于是尝试着用Java作灰度图像。其实我也没深究过image函数的源码,不清楚它具体是怎么给数值分配颜色的,那就暂且自己“发明”一些方法吧。我们知道,一个颜色有着对应的RGB值,黑色是(0,0,0),白色是(255,255,255),当R=G=B且在都在0~255的范围时就是灰色调。假设某个探针的原始强度为intensity,计算int R=(int)(log2(intensity)*255/10-120),那么它对应的颜色就是new Color(R,R,R),当然要写上一些限制:R<0则R=0,R>0则R=255,这样就不会超出范围了。这样每个探针都有着对应的灰度了。以左上角为坐标(0,0),给每个探针绘制一个像素,得出了以下这张图:

这张图的质量高很多。放大这张图的左上角:

“GeneChip HG-U133A Plus2”的字样是不是就清晰可见了呀?不知你们可曾发现,在讨论版本3的CEL文件格式时,会看到MEAN那一列的前面很多行的数值都呈现“小大小大小大”的规律呀,而且说过数值越小颜色越偏暗,那么你们总算明白了灰度图像最外层的“花边”是什么回事了吧……

最新文章

  1. scrollview 图片放大 捏合 瓦片地图 相关注意事项
  2. Addressing Complex and Subjective Product-Related Queries with Customer Reviews-www2016-20160505
  3. SpringMVC实现Restful风格的WebService
  4. ZOJ 3606 Lazy Salesgirl 浙江省第九届省赛
  5. IOS设计模式之二(门面模式,装饰器模式)
  6. PHPcms 摘要
  7. wait(...) notify() notifyAll()
  8. 解决IE浏览器IFrame对象内存不释放问题
  9. css居中技巧
  10. c#搭建服务端 准备工作(1)
  11. JDK下载API文档
  12. Game HDU - 3389 (博弈论)
  13. Redis实战(九)Redis的典型应用场景
  14. 201621123075 week5 继承、多态、抽象类和接口
  15. [visual studio]visual studio 2017激活码
  16. LeetCode_7.Reverse Integer
  17. genimage.cfg.template hacking
  18. spket插件安装并设置JQuery自动提示(转)
  19. vlookup返回多个结果
  20. emacs 图解

热门文章

  1. HDU 5793 A Boring Question (找规律 : 快速幂+逆元)
  2. jpa hibernate mybatis
  3. 20175215 2018-2019-2 第七周java课程学习总结
  4. 套接字之send系统调用
  5. CentOS 7,使用yum安装Nginx
  6. MongoDB中的_id和ObjectId
  7. Postman下载与安装
  8. Git:本地项目与远程仓库的git/clone
  9. centos7 php5.5 mongodb安装
  10. leetcode-easy-string-242. Valid Anagram