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那一列的前面很多行的数值都呈现“小大小大小大”的规律呀,而且说过数值越小颜色越偏暗,那么你们总算明白了灰度图像最外层的“花边”是什么回事了吧……

06、CEL文件与灰度图像的更多相关文章

  1. 05、解剖CEL文件各版本格式和读取方法(非R语言)

    相比DAT文件,网络上更支持CEL级别的文件.CEL已经把DAT图像转换成数据了,而且CEL比DAT所占空间小得多.介绍一下CEL文件的格式,CEL文件有文本文件(TextCelFile,版本3).B ...

  2. JavaIO(06)文件复制

    文件复制一般是采用两种方式进行操作: 1:将源文件中的内容全部读取到内存中,并一次性的写入到目标文件中:(不常用这种方式) 2:不将源文件中的内容全部读取进来,而是采用边读边写的方式:   实例01: ...

  3. Oracle基础 06 控制文件 controlfile

    --查看控制文件路径 show parameter control_files; --控制文件的备份,三种方式1)使用OS命令进行拷贝:1)open状态下,使用alter database命令生成控制 ...

  4. GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...

  5. Linux FastDFS 分布式文件系统安装

    Linux FastDFS 分布式文件系统安装 2013 年 3 月 11 日 – 09:21 | 930 views | 收藏  (No Ratings Yet) FastDFS是一款类Google ...

  6. [svc]linux文件权限

    linux中,每个文件拥有三种权限 f dir权限位最佳实战 权限 对文件的影响 对文件夹的影响 r 可读取/阅读文件的内容 可以列出目录内容,无法cd,ls -l看到文件名,属性是乱码. w 可修改 ...

  7. FTP服务器文件上传的代码实现

    方式一: @Test public void testFtpClient() throws Exception { // 1.创建一个FtpClient对象 FTPClient ftpClient = ...

  8. less文件的运行

    例:在任意处创建一个.less文件,比如在桌面2017.06.28文件中创建了一个main.less文件,然后通过命令行编译main.less,步骤: win+R,cmd打开命令面板,切换到main. ...

  9. lucene倒排索引瘦身的一些实验——merge的本质是减少cfx文件 变为pos和doc;存储term vector多了tvx和tvd文件有337M

    store NO 压缩后的原始数据 原始数据大小 索引大小 索引时间 单词搜索时间 266 791 594 176 0.2 文件组成见后 运行forceMerge(3)后 merge的本质是减少cfx ...

随机推荐

  1. Spring Boot教程(二十九)使用JdbcTemplate操作数据库

    使用JdbcTemplate操作数据库 Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用. 举例:我们在创建User表,包含属性n ...

  2. kafka监控指标项

    监控配置 ​ kafka基本分为broker.producer.consumer三个子项,每一项的启动都需要用到 $KAFKA_HOME/bin/kafka-run-class.sh 脚本,在该脚本中 ...

  3. MySQL格式化小数点为百分号并保留2为小数

    #colname为字段名字,CONCAT的作用是把小数点转成百分号,TRUNCATE的作用是保留百分号的小数点成几位 SELECT CONCAT(TRUNCATE(colname*100,2),'%' ...

  4. 一款兼容性较强的H5播放器-Mediaelementjs

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  5. TCP定时器 之 延迟确认定时器

    TCP在收到数据段但是无需马上确认时设定,如果在超时时间之内有数据要发送到对端,则确认会随着数据一起发送,即捎带ACK,如果达到超时时间则执行定时器回调立即发送ack: 启动定时器: 延迟确认定时器调 ...

  6. SpringMVC学习记录(六)--Validator验证

    一.基于Validator接口的验证. 首先创建User实例,并加入几个属性 public class User { private String username; private String p ...

  7. python之注释的分类

    <1> 单行注释 以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用 # 我是注释,可以在里写一些功能说明之类的哦 print('hello world') < ...

  8. CSS 有序或者无序列表的前面的标记 list-style-type 属性

    例子: <html> <head> <style type="text/css"> ul.none{list-style-type:none} ...

  9. springboot之RocketMq实现

    环境:win10 1.下载安装包 http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-bin-re ...

  10. linux 下载jdk 、maven、git

    jdk: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-secureback ...