06、CEL文件与灰度图像
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文件与灰度图像的更多相关文章
- 05、解剖CEL文件各版本格式和读取方法(非R语言)
相比DAT文件,网络上更支持CEL级别的文件.CEL已经把DAT图像转换成数据了,而且CEL比DAT所占空间小得多.介绍一下CEL文件的格式,CEL文件有文本文件(TextCelFile,版本3).B ...
- JavaIO(06)文件复制
文件复制一般是采用两种方式进行操作: 1:将源文件中的内容全部读取到内存中,并一次性的写入到目标文件中:(不常用这种方式) 2:不将源文件中的内容全部读取进来,而是采用边读边写的方式: 实例01: ...
- Oracle基础 06 控制文件 controlfile
--查看控制文件路径 show parameter control_files; --控制文件的备份,三种方式1)使用OS命令进行拷贝:1)open状态下,使用alter database命令生成控制 ...
- GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9
GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...
- Linux FastDFS 分布式文件系统安装
Linux FastDFS 分布式文件系统安装 2013 年 3 月 11 日 – 09:21 | 930 views | 收藏 (No Ratings Yet) FastDFS是一款类Google ...
- [svc]linux文件权限
linux中,每个文件拥有三种权限 f dir权限位最佳实战 权限 对文件的影响 对文件夹的影响 r 可读取/阅读文件的内容 可以列出目录内容,无法cd,ls -l看到文件名,属性是乱码. w 可修改 ...
- FTP服务器文件上传的代码实现
方式一: @Test public void testFtpClient() throws Exception { // 1.创建一个FtpClient对象 FTPClient ftpClient = ...
- less文件的运行
例:在任意处创建一个.less文件,比如在桌面2017.06.28文件中创建了一个main.less文件,然后通过命令行编译main.less,步骤: win+R,cmd打开命令面板,切换到main. ...
- lucene倒排索引瘦身的一些实验——merge的本质是减少cfx文件 变为pos和doc;存储term vector多了tvx和tvd文件有337M
store NO 压缩后的原始数据 原始数据大小 索引大小 索引时间 单词搜索时间 266 791 594 176 0.2 文件组成见后 运行forceMerge(3)后 merge的本质是减少cfx ...
随机推荐
- python 安装-ERROR---Unable to find vcvarsall.bat
系统配置:Windows10 x64, Visual Studio 2017, Python2.7.1 报错信息:error: Unable to find vcvarsall.bat 报错原因:在生 ...
- sqli-labs(38)
0X01 ?id=' and 1=1%23 正确 ?id=1' and 1=2%23 错误 存在注入 0x1 堆叠注入讲解 (1)前言 国内有的称为堆查询注入,也有称之为堆叠注入.个人认为称之为堆叠注 ...
- Pollard-rho算法[因子分解算法]
试除法:最简单的因数分解算法,从$ 2 $到$ \sqrt n $一个一个试. 试除法(改进):从$ 2 $到$ \sqrt n $挑素数一个一个试. 然而这样复杂度是相当高的. 生日悖论:指如果一个 ...
- windows下 java使用zookeeper案例
依赖: <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeep ...
- Div内容居中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C++入门经典-例5.11-动态分配空间,堆与栈
1:在程序中定义一个变量,它的值会被放入内存中.如果没有申请动态分配,它的值将会被放在栈中.栈中的变量所属的内存大小是无法被改变的,它们的产生与消亡也与变量定义的位置和存储方式有关.堆是一种与栈相对应 ...
- 服务器被攻击后当作矿机,高WIO
__ 矿机特点: 操作系统反应慢. wio 非常高,一般轻松达到50%,甚至达到100%. 在/root/ 下存在 .ddg 隐藏路径.路径中有nnnn.db 二进制文件. /tmp ./usr ...
- 比较&关系运算符
<1> 比较(即关系)运算符 python中的比较运算符如下表 运算符 描述 示例 == 检查两个操作数的值是否相等,如果是则条件变为真. 如a=3,b=3则(a == b) 为 true ...
- java下载文件时文件名出现乱码的解决办法
转: java下载文件时文件名出现乱码的解决办法 2018年01月12日 15:43:32 橙子橙 阅读数:6249 java下载文件时文件名出现乱码的解决办法: String userAgent ...
- ProxySQL 常见表配置
ProxySQL 常见表配置 [root@mgr1 opt]# rpm -ivh proxysql-1.4.14-1.1.el6.x86_64.rpm warning: proxysql-1.4.14 ...