基因芯片信号检测与数据处理(详细版)

如题所述

第1个回答  2022-07-28
来回顾一下基因芯片分析的步骤,首先在布满探针的玻璃平板上加入不同荧光标记(Cy3和Cy5)的对照组和实验组mRNA样品,与芯片上探针杂交后,再用计算机扫描荧光信号,最后进行数据处理,分析。

•生物芯片在荧光标记的样本和探针结合后, 必须用扫读装置将芯片测定结果转变成可供分析处理的图像数据。

1.图像分析

2.数据预处理

具体过程:

1.激光激发使含荧光标记的DNA片段发射荧光

2.激光扫描仪或激光共聚焦显微镜采集各杂交点的信号

3.软件进行图象分析和数据处理

•生物芯片检测的目的是将不可见的生物分子的微弱变化通过生物、化学、光学、电子和软件等多学科交叉技术的综合处理,转换成可见的数字图像信号,实现信号的放大、增强和可视化,以便进行科学研究。

扫描仪组成:包括硬件系统和软件系统

信号 (signal) : 通过检测一 起获得的数字量 输出 ,对应于真实的实验分析数据。

噪声 (noise) : 通过检测仪器的数字量输出, 对应于背景荧光、暗电流、冲击噪声以及其他非实验分析数据。

信噪比(signal-to-noise ratio) : 微阵列检测过程中信号和噪声的比值 。

1.数据的提取

2.对数化

3.探针过滤

4.补缺失值

5.标准化

6.探针注释

7.基因过滤

芯片的荧光扫描图像信号

一般来说,实验组一般为疾病样本,对照组为正常样本

CH1I  实验组信号值

CH1B  实验组背景值

CH2I  对照组信号值

CH2B  对照组背景值

表达谱矩阵表达量计算:

Ratio=(CH1I-CH1B)/(CH2I-CH2B)

芯片数据格式

下列为表达谱矩阵的一般格式:每一列为一个样本(sample)的所有基因表达值,每一行为某个基因在所有样本的表达值

原始数据呈偏态分布对数转化后呈近似正态分布

去除表达水平是负值或很小的数据或明显的噪音数据过闪耀现象物理因素导致的信号污染(划伤,指纹等)

原因:杂交效能低,点样问题 ……

实际问题:彗星尾 背景高 粘点问题等

非随机缺失(丰度过高或过低)

随机缺失(与表达水平高低无关)

1.删除相应的行,列

2.简单补缺法 0/1

3.均值 样本均值 基因均值

4.k近邻法

由于会存在系统误差,需要对芯片进行标准化

感兴趣的变异

真正的生物学变异

差异表达基因

混杂变异

实验过程中引入的变异

在样本的染色、芯片的制作、芯片的扫描过程中引入的系统误差

系统误差来源

染料的物理属性

染料的结合效率

探针的制备

探针和样本的杂交过程

数据收集时的扫描过程

不同芯片间的差异

不同芯片杂交条件

标准化过程的参照物稳定表达的基因

持家基因(housekeeping genes)

外源性的或人工合成的控制基因(controls)

芯片上大部分稳定表达的基因(所有基因)

相对稳定基因子集( invariant set)

不存在染料偏倚

不存在不同grid带来的系统误差

主要为不同芯片间的差异

类似于cDNA芯片

Z-score

MAS 5

RMA

Probe ID 第一列

Gene Symbol 第二列

ENTREZ_GENE ID 第三列

删除探针对应不到基因表达谱里的行

多个探针对一个基因,表达值取均值或中值

一个探针对多个基因,删除行

r语言实现

probe_name<rownames(probe_exp)#提取probeid

loc<match(probeid_geneid[,1],probe_name)#probeid进行匹配,30000多个

probe_exp<-probe_exp[loc,]#能匹配上的probe的对应表达值

raw_geneid<-as.numeric(as.matrix(probeid_geneid[,3]))#每个probeid对应的geneid

index<-which(!is.na(raw_geneid))#找出有geneid的probeid并建立索引

geneid<-raw_geneid[index]#提取与geneid匹配的probeid

exp_matrix<-probe_exp[index,]#找到每个geneid的表达值(这里探针对应不到基因的行就删除了)

geneidfactor<-factor(geneid)

gene_exp_matrix<-apply(exp_matrix,2,function(x) tapply(x,geneidfactor,mean))#多个探针对应1个基因的情况,取平均值

rownames(gene_exp_matrix)<-levels(geneidfactor)#geneid作为行名

gene_exp_matrix2<-cbind(geneid,gene_exp_matrix)

write.table(gene_exp_matrix2,file="geneid_exp.txt",sep="\t",row.names=F)#写出geneid表达谱矩阵

#把gene id转化成gene symbol

loc<match(rownames(gene_exp_matrix),probeid_geneid[,3])#geneid表达谱矩阵和geneid匹配,建立索引

row.names(gene_exp_matrix)<-probeid_geneid[loc,2] #行名换成gene symbol

genesymbol<-rownames(gene_exp_matrix)

gene_exp_matrix3<-cbind(genesymbol,gene_exp_matrix#Gene_symbol这列为表达谱的行名,并与表达谱合并

write.table(gene_exp_matrix3,file="genesymbol_exp.txt",sep="\t",row.names=F,quote=F)#写出genesymbol表达谱矩阵

基因过滤

波动筛选方差

最小倍数变化筛选(Minimumfold-change filter) 差异性较小的基因可用该方法去除

此处筛选的标准基于以下条件:满足表达量距其在所有芯片上表达量中位数相差指定倍数的基因的个数,占总基因个数的比例(故在此需要用户指定两个值,比例和倍数)。

少于x%中的表达水平大于等于中值的y倍(20%,1.5)

内容大部分来源于老师PPT和生物信息学第二版,在这里做总结归纳
相似回答