转录组练习(6)

原贴地址:https://www.jianshu.com/p/3bfb21d24b74

                   https://www.jianshu.com/p/4910d7cec5c8

1.读取自己表达矩阵

# 构建自己的表达矩阵并读取

> control1 <- read.table("~/disk2/data/rna-seq/matrix/SRR3589959.count", sep="\t", col.names = c("gene_id","control1"))

> control2 <- read.table("~/disk2/data/rna-seq/matrix/SRR3589961.count", sep="\t", col.names = c("gene_id","control2"))

> rep1 <- read.table("~/disk2/data/rna-seq/matrix/SRR3589960.count", sep="\t", col.names = c("gene_id","akap951"))

> rep2 <- read.table("~/disk2/data/rna-seq/matrix/SRR3589962.count", sep="\t",col.names = c("gene_id","akap952"))

> raw_count <- merge(merge(control1, control2,by="gene_id"),merge(rep1,rep2, by="gene_id"))

> raw_count_filt <- raw_count[-48823:-48825,]

> raw_count_filter <- raw_count_filt[-1:-2,]

> ENSEMBL <- gsub("\\.\\d*","", raw_count_filter$gene_id)

> row.names(raw_count_filter) <- ENSEMBL

> raw_count_filter <- raw_count_filter[ ,-1]


这里有两个问题,第一个就是删除行列,自己根据情况选择,理论上把名字差别太大的删了。

矩阵数据结构

2.构建dds对象

# 这一步很关键,要明白condition这里是因子,不是样本名称;小鼠数据有对照组和处理组,各两个重复

> condition <- factor(c(rep("control",2),rep("akap95",2)), levels = c("control","akap95"))# 获取count数据

> countData <- raw_count_filter[,1:4]

> colData <- data.frame(row.names=colnames(raw_count_filter), condition)

> dds <- DESeqDataSetFromMatrix(countData, colData, design= ~ condition)# 查看一下dds的内容

> head(dds)

adds概要信息

3.DESeq标准化dds

# normalize 数据

> dds2 <- DESeq(dds)# 查看结果的名称,本次实验中是"Intercept","condition_akap95_vs_control"

> resultsNames(dds2)# 将结果用results()函数来获取,赋值给res变量

res <- results(dds2)# summary一下,看一下结果的概要信息summary(res)

result结果可以看到一些基本的信息,p值默认小于0.1,上调基因有625个,下调基因有445个。

res的概要信息

4.提取差异分析结果

# 获取padj(p值经过多重校验校正后的值)小于0.05,表达倍数取以2为对数后大于1或者小于-1的差异表达基因。

> table(res$padj<0.05)

> res <- res[order(res$padj),]

> diff_gene_deseq2 <-subset(res,padj <0.05& (log2FoldChange >1| log2FoldChange <-1))

> diff_gene_deseq2 <- row.names(diff_gene_deseq2)

resdata<-merge(as.data.frame(res),as.data.frame(counts(dds2,normalize=TRUE)),by="row.names",sort=FALSE)

# 得到csv格式的差异表达分析结果

> write.csv(resdata,file="control_vs_akap95.cvs",row.names = F)

把名字变成上图,gsub那个不会整,那就导出csv,然后手工删除在导入进行后续分析

后续就可以转换基因名 各种折腾了

require(DOSE)

require(clusterProfiler)

ekk <- enrichKEGG(gene=gene,organism="human",pvalueCutoff=0.01)

ego <- enrichGO(gene=gene,OrgDb="org.Hs.eg.db",ont="CC",pvalueCutoff=0.01,readable=TRUE)

write.csv(summary(ekk),"KEGG-enrich.csv",row.names =F)

write.csv(summary(ego),"GO-enrich.csv",row.names =F)

ego <- enrichGO(gene          = gene,

universe      = names(geneList),

OrgDb         = org.Hs.eg.db,

ont           = "CC",

pAdjustMethod = "BH",

pvalueCutoff  = 0.01,

qvalueCutoff  = 0.05)

ego2 <- enrichGO(gene         = gene.df$ENSEMBL,

OrgDb         = org.Hs.eg.db,

keytype       = 'ENSEMBL',

ont           = "CC",

pAdjustMethod = "BH",

pvalueCutoff  = 0.01,

qvalueCutoff  = 0.05)

ego3 <- enrichGO(gene         = gene.df$SYMBOL,

OrgDb         = “org.Hs.eg.db”,

keytype       = 'SYMBOL',

ont           = "CC",

pAdjustMethod = "BH",

pvalueCutoff  = 0.01,

qvalueCutoff  = 0.05)

ego <- enrichGO(gene          = DEG$,

OrgDb         = "org.Hs.eg.db",

ont           = "CC",

pAdjustMethod = "BH",

pvalueCutoff  = 0.01,

qvalueCutoff  = 0.05)

ego <- enrichGO(gene=gene,OrgDb="org.Hs.eg.db",ont="CC",pvalueCutoff=0.01,readable=TRUE)

DO<-enrichDO(gene=DEG$Gene.ID, ont = "DO", pvalueCutoff = 0.01, pAdjustMethod = "BH",qvalueCutoff = 0.05)

eg=bitr(geneID = PP$geneID, "ENTREZID", "SYMBOL", "org.Hs.eg.db")

df.id<-bitr(df$SYMBOL, fromType ="SYMBOL", toType ="ENTREZID",OrgDb ="org.Hs.eg.db")

easy.df<-merge(df,df.id,by="SYMBOL",all=F)

sortdf<-easy.df[order(easy.df$foldChange, decreasing =T),]

gene.expr = sortdf$foldChange

names(gene.expr) <- sortdf$ENTREZID

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

推荐阅读更多精彩内容

  • library(pheatmap) data<- read.table("new 1.txt",header = ...
    Weiyx阅读 636评论 0 0
  • 一、读文章获取下载数据 1、读文章 一般我都从NCBI上面下载文章,找到数据号 2、下载数据 进入NCBI的GEO...
    黄思源_3a22阅读 6,144评论 0 2
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,446评论 0 13
  • library(Biobase)library(GEOquery)library(limma)## load se...
    苏慕晨枫阅读 1,862评论 1 1
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,689评论 0 3