Advertisement

差异表达基因变化倍数_差异表达基因

阅读量:

1. 什么是差异表达基因

在不同组织中表达发生明显变化的基因

是导致细胞状态发生变化的关键基因

是表达谱分析的主要对象

2. 寻找差异表达基因的两种方法

倍数变化阀值(一般设置为2倍)

具体方法:

找出所有基因的表达变化率

按照表达变化率排序

上调两倍或者下调两倍算作差异表达基因

适合条件:实验重复数极少

差异基因数目比例(top5%, 即最上调的2.5%,最下调的2.5%)

用假设检验来做

3. R 语言实现

该研究者试图通过Infliximab治疗溃疡性结肠炎来比较有应答与无应答组间的基因表达变化情况

3.1 材料准备

1.下载“GSE12251” 23个项目

image.png

制作一个target.txt 文件

相当于记录临床信息,12 个为应答组,11个为无应答组

image.png

下载“anonotation.csv”

去 affy 官网下载,下载下来的是"HG-U133_Plus_2.na36.annot.csv", 需要整理如下

image.png

3.2 R 代码

library(affy)

library(limma)

##import phenotype data

phenoData = read.AnnotatedDataFrame('target.txt')

pheno = pData(phenoData)

View(pheno)

#import Annotaion

anno = read.csv("Annotation.csv",head=T)

View(head(anno))

##RMA normalization

#eset.rma = RMA(Data)

eset.rma

datExpr = exprs(eset.rma)

#补充缺失值

library(impute)

#KNN法计算缺失值

imputed_gene_exp = impute.knn(datExpr,k=10,rowmax = 0.5,

colmax=0.8,maxp =3000, rng.seed=362436069)

datExpr2 = imputed_gene_exp$data

write.table(datExpr2,file="Expdata.txt",sep="\t")

获得一个校正过后的差异表达数据

image.png

#######

#样本分组

Group = factor(pheno$group,levels=c('Responder','Nonresponder'))

design = model.matrix(~0+Group)

colnames(design)

design

#线性模型拟合

fit

#构建比对模型,比较两个条件下的表达数据

contrast.matrix

levels=design)

#####################

####################

library(xlsx)

library(futile.logger)

#比对模型进行差值计算

fit2

#贝叶斯检验

fit2

#找出差异基因检验结果并输出符合条件的结果

用responser - Nonresponder 看正表达和负表达

diff = topTable(fit2,adjust.method="fdr",coef=1,p.value=0.05,

lfc=log(2,2),number=5000,sort.by = 'logFC')

#diff

diffGene = annoGene.Symbol[match(rownames(diff),anno$ID_REF)]

diff$ID_REF = rownames(diff)

diff = diff[,c(8,7,1:6)]

diff = diff[diff$Gene != '---',]

#output

write_xlsx2(diff, 'DEG.xlsx', sheetName=colnames(contrast.matrix)[1], colNames=True, rowNames=False, append=True)

最后找到差异表达基因列表,供后续分析

image.png

4. 整合数据分析

上面的实例是从一个批次的样本,只需要归一化和背景校正即可。

如果在公共数据库中获取多个批次的数据样本,并希望消除这些批次间的差异(即 batch effects),那么应该采取哪些方法来实现这一目标?

批间差一般由不同人员,不同环境,不同时间,不同机器,不同批次引起的

##sva--combat

library(sva) # 神奇,这个包竟然是实验室的师兄写的

library(pamr)

batch = pheno[,c('batch')]

batch

modcombat = model.matrix(~1,data=pheno)

combat_edata = ComBat(dat=datExpr2,batch=batch,

mod=modcombat,par.prior=T,

prior.plot=T)

write.table(combat_edata,file="Expdata.txt",sep="\t")

image.png

全部评论 (0)

还没有任何评论哟~