01_1_差异表达分析

本文代码在mac环境下运行


常用的表达谱分析软件:

1.ArrayTools ;

2.DNA-Chip Analyzer ;

3.SAM ;

4.R(“affy”,“Limma”,“marray”);

5.Matlab(Bioinformatics Toolbox)


安装Bioconductor Packages:

source("http://bioconductor.org/biocLite.R")  

bioLite()    ##安装Bioconductor


安装Limma包

bioLite("limma")  ##安装limma包

bioLite(c("GenomicFeatures","AnnotationDbi")) ##同时安装两个包


数据预处理:

不同波长的荧光特异性涉及到前景值和背景值,因此要进行背景矫正;之后剔除不可信的点且对确实值进行估计;之后将数据归一化(样本之间归一化使得样本之间可以对比,基因之间标准化使得基因之间可以对比)以后有利于后续下游分析

数据标准化是为了消除系统偏差引起的高相关性,保留真正的生物学引起的基因表达的高相关性


数据预处理(Affy包,limma包):

1.Affymetrix芯片都属于单通道芯片(Oligonucleotide Arrays),使用affy包

library("Affy")

ReadAffy();  ##输入数据

expresson(); ##背景矫正;标准化;归一化

justRMA();  ##more efficient

exprs();

library(simpleaffy)

ampli.eset <- call.exprs(cel,"mas5",sc=target)

qcs <- qc(cel.ampli.eset)


2.双通道芯片(Two-Color Spotted Arrays),可以使用limma包

library(limma)

read.maimages(); ##输入数据

backgroundCorrect(); ##背景矫正

normalizeWithinArrays(); ##芯片标准化

normalizeBetweenArrays(): ##芯片之间标准化

exprs.MA(); ##抽取表达值

avereps(); ##归一化

plotMA(); ##绘图


差异表达基因筛选(主流)

library(limma)

lmFit(); ##芯片数据的线性模型

eBayes(); ##贝叶斯统计方法

                 ##差异表达基因



实操代码(修改版)

##设置工作路径

setwd("/Users/apple/Desktop/生信学习材料/生信入门之路/代码数据挖掘_淘宝/实用数据挖掘/学习记录 /01_差异基因分析/实操/") 

##安装affy和limma包

if (!requireNamespace("BiocManager", quietly = TRUE))install.packages("BiocManager") 

BiocManager::install(version = "3.12")

BiocManager::install("affy") 

BiocManager::install("limma")

BiocManager::install("impute") 

install.packages("openxlsx")


 ##加载R包 

library("Biobase")

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用RMA读取原始数据 

#eset.rma = RMA(Data) 

eset.rma <- justRMA(filenames=paste(rownames(pheno),'.CEL',sep=''), celfile.path='./GSE12251')  ##文件路径

datExpr = exprs(eset.rma) 


#安装impute包计算缺失值 

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") 


 #######

#样本分组

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

design = model.matrix(~0+Group) 

colnames(design) <- c('Responder','Nonresponder') 

design


#线性模型拟合 

fit <- lmFit(datExpr2, design) 


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

contrast.matrix <- makeContrasts(Responder-Nonresponder, levels=design)  ##正值代表R对比NR高表达,负代表低表达 

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

library(openxlsx)

library(futile.logger) 

#比对模型进行差值计算 

fit2 <- contrasts.fit(fit, contrast.matrix)


#贝叶斯检验 

fit2 <- eBayes(fit2) 

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

diff = topTable(fit2,adjust.method="fdr",coef=1,p.value=0.05, lfc=log(2,2),number=5000,sort.by = 'logFC')                                                                                                                   ##P值和LogFC调整阈值 


#diff ID转换,基因注释 

diff$Gene = anno$Gene.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.xlsx(diff,'DEG.xlsx',sheetName=colnames(contrast.matrix)[1],col.names=T,row.names=F,append=T) 


记录2021.4.17

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容