和生信技能树GEO转录组“GSE150392“分析类似,唯一区别就是在数据处理和ID转换这一环节略微有区别

1.数据下载

最方便的是xena。可以网页下载,也可以用代码下载。

proj = "DHA"

2.生存信息与临床信息

这里仅仅是查看一下,到生存信息部分再整理。

library(GEOquery)
eSet = getGEO("GSE162550",destdir = ".",getGPL = F)
eSet = eSet[[1]]
exp = exprs(eSet)
pd = pData(eSet)

3.表达矩阵行名ID转换

dat = data.table::fread("GSE162550_gene_sample_count_with_symbol (3).xls.gz",data.table = F)k = dat$Symbol!="---";table(k)
dat = dat[k,]k2 = !duplicated(dat$Symbol);table(k2)
dat = dat[k2,]exp = dat[,-(1:3)]
rownames(exp) = dat$Symbol
exp = as.matrix(exp)

4.基因过滤

需要过滤一下那些在很多样本里表达量都为0或者表达量很低的基因。过滤标准不唯一。

过滤之前基因数量:

nrow(exp)

常用过滤标准1:

仅去除在所有样本里表达量都为零的基因

exp1 = exp[rowSums(exp)>0,]
nrow(exp1)

常用过滤标准2(推荐):

仅保留在一半以上样本里表达的基因

exp = exp[apply(exp, 1, function(x) sum(x > 0) >= 0.5*ncol(exp)), ]
nrow(exp)

5.分组信息获取

根据样本ID的第14-15位,给样本分组(tumor和normal)

Group = rep(c("DMSO","DHA"),each = 3)
Group = factor(Group,levels = c("DMSO","DHA"))
table(Group)

6.保存数据

TCGA以外的数据没有clinical,surv,从下面代码里去掉。

save(exp,Group,proj,file = paste0(proj,".Rdata"))

7.三大R包差异分析

rm(list = ls())
load("DHA.Rdata")
table(Group)
#deseq2----
library(DESeq2)
colData <- data.frame(row.names =colnames(exp), condition=Group)
if(!file.exists(paste0(proj,"_dd.Rdata"))){dds <- DESeqDataSetFromMatrix(countData = exp,colData = colData,design = ~ condition)dds <- DESeq(dds)save(dds,file = paste0(proj,"_dd.Rdata"))
}
load(file = paste0(proj,"_dd.Rdata"))
class(dds)
res <- results(dds, contrast = c("condition",rev(levels(Group))))
#constrast
c("condition",rev(levels(Group)))
class(res)
DEG1 <- as.data.frame(res)
DEG1 <- DEG1[order(DEG1$pvalue),]
DEG1 = na.omit(DEG1)
head(DEG1)#添加change列标记基因上调下调
logFC_t = 2
pvalue_t = 0.05k1 = (DEG1$pvalue < pvalue_t)&(DEG1$log2FoldChange < -logFC_t);table(k1)
k2 = (DEG1$pvalue < pvalue_t)&(DEG1$log2FoldChange > logFC_t);table(k2)
DEG1$change = ifelse(k1,"DOWN",ifelse(k2,"UP","NOT"))
table(DEG1$change)
head(DEG1)#edgeR----
library(edgeR)dge <- DGEList(counts=exp,group=Group)
dge$samples$lib.size <- colSums(dge$counts)
dge <- calcNormFactors(dge) design <- model.matrix(~Group)dge <- estimateGLMCommonDisp(dge, design)
dge <- estimateGLMTrendedDisp(dge, design)
dge <- estimateGLMTagwiseDisp(dge, design)fit <- glmFit(dge, design)
fit <- glmLRT(fit) DEG2=topTags(fit, n=Inf)
class(DEG2)
DEG2=as.data.frame(DEG2)
head(DEG2)k1 = (DEG2$PValue < pvalue_t)&(DEG2$logFC < -logFC_t);table(k1)
k2 = (DEG2$PValue < pvalue_t)&(DEG2$logFC > logFC_t);table(k2)
DEG2$change = ifelse(k1,"DOWN",ifelse(k2,"UP","NOT"))head(DEG2)
table(DEG2$change)
###limma----
library(limma)
dge <- edgeR::DGEList(counts=exp)
dge <- edgeR::calcNormFactors(dge)
design <- model.matrix(~Group)
v <- voom(dge,design, normalize="quantile")design <- model.matrix(~Group)
fit <- lmFit(v, design)
fit= eBayes(fit)DEG3 = topTable(fit, coef=2, n=Inf)
DEG3 = na.omit(DEG3)k1 = (DEG3$P.Value < pvalue_t)&(DEG3$logFC < -logFC_t);table(k1)
k2 = (DEG3$P.Value < pvalue_t)&(DEG3$logFC > logFC_t);table(k2)
DEG3$change = ifelse(k1,"DOWN",ifelse(k2,"UP","NOT"))
table(DEG3$change)
head(DEG3)tj = data.frame(deseq2 = as.integer(table(DEG1$change)),edgeR = as.integer(table(DEG2$change)),limma_voom = as.integer(table(DEG3$change)),row.names = c("down","not","up"));tj
save(DEG1,DEG2,DEG3,Group,tj,file = paste0(proj,"_DEG.Rdata"))

8.可视化

library(ggplot2)
library(tinyarray)
exp[1:4,1:4]
# cpm 去除文库大小的影响
dat = log2(cpm(exp)+1)
pca.plot = draw_pca(dat,Group);pca.plot
save(pca.plot,file = paste0(proj,"_pcaplot.Rdata"))cg1 = rownames(DEG1)[DEG1$change !="NOT"]
cg2 = rownames(DEG2)[DEG2$change !="NOT"]
cg3 = rownames(DEG3)[DEG3$change !="NOT"]h1 = draw_heatmap(dat[cg1,],Group,n_cutoff = 2)
h2 = draw_heatmap(dat[cg2,],Group,n_cutoff = 2)
h3 = draw_heatmap(dat[cg3,],Group,n_cutoff = 2)v1 = draw_volcano(DEG1,pkg = 1,logFC_cutoff = logFC_t)
v2 = draw_volcano(DEG2,pkg = 2,logFC_cutoff = logFC_t)
v3 = draw_volcano(DEG3,pkg = 3,logFC_cutoff = logFC_t)library(patchwork)
(h1 + h2 + h3) / (v1 + v2 + v3) +plot_layout(guides = 'collect') &theme(legend.position = "none")ggsave(paste0(proj,"_heat_vo.png"),width = 15,height = 10)


5. 生信技能树——GEO转录组RNA_seq_GSE162550相关推荐

  1. 易生信九天的转录组分析培训班总结

    易生信九天的转录组分析培训班第一期伴随着5个小时的考试在紧张中结束了.说是培训,倒不如研讨更确切些.在一个个问题的交流中学会转录组分析,效果远大于一人讲,自己练. 先分享两张现场的照片 前两天以集中讲 ...

  2. CancerSubtypes包的介绍(根据生信技能树Jimmy老师分享的乳腺癌分子分型包资料整理)

    CancerSubtypes包的介绍(根据生信技能树Jimmy老师分享的乳腺癌分子分型包资料整理,感谢Jimmy老师!) 1. 引言 2. 数据处理 2.1 基本处理 2.1.1 通过检查数据分布来分 ...

  3. ProTICS包的介绍(根据生信技能树Jimmy老师分享的乳腺癌分子分型包资料整理)

    ProTICS包的介绍(根据生信技能树Jimmy老师分享的乳腺癌分子分型包资料整理,感谢Jimmy老师!) 1.设置环境 2.Part1的结果 3.Part2的结果 4.Part3的结果 5.相关函数 ...

  4. R:生信技能树学习笔记一

    生信技能树小破站:R应该这样学1-4 1.查看已经安装的包的地址 .libPaths() 2.怎么查看函数用法 #在RStudio的右下角窗口的help可以看到 ?函数名 3.三个有用的函数 1.he ...

  5. R:生信技能树学习笔记二

    生信技能树小破站:R应该这样学5-7 1.热图 rm(list=ls()) library(pheatmap) a1=rnorm(100) dim(a1)=c(5,20) #设置维度 pheatmap ...

  6. 生信技能树【代码大全搜录】

    生信技能术代码大全: rm(list = ls()) options()$repos options()$BioC_mirror #options(BioC_mirror="https:// ...

  7. 生信技能树linux虚拟机,科学网—Windows10安装Linux子系统Ubuntu 20.04LTS,轻松使用生信软件,效率秒杀虚拟机 - 刘永鑫的博文...

    很多优秀的生物信息学软件,如QIIME.QIIME 2.LEfSe等没有Windows版,而使用VirutalBox虚拟机不仅效率低,而且挂载外部硬盘和使用中也经常遇到各种问题,配置和使用详见 - 扩 ...

  8. TCGA学习笔记一(生信技能树概述版)

    1.背景介绍 重要数据 外显子数据 表达数据 小RNA测序数据 拷贝数芯片 甲基化数据 蛋白质组学数据 临床信息 癌症背景知识 网页工具大全 GDC cbioportal:按照paper来分类的 UC ...

  9. 生信技能树课程记录笔记(七)20220531

    一.数据框排序 法一:sort函数 默认升序. 例:sort(test$Sepal.Length) 法二:order函数 默认升序,返回数据下标组成的数组. 可以给向量排序,也可以给数据框排序 例:t ...

  10. 生信技能树课程记录笔记(三)20220526

    matrix 矩阵--只允许一种数据 data.frame 数据框--每列只允许一种数据类型 list 列表--各种都可 依据生成函数判断/用class 或i函数判断一下数据类型 一.数据框 新建数据 ...

最新文章

  1. 怎么解决哈希冲突_从生日悖论谈哈希碰撞
  2. python画直方图成绩分析-Python数据分析:直方图及子图的绘制
  3. 9个tcpdump使用实例
  4. matlab 数字识别_在MATLAB中利用神经网络进行分类
  5. UPS不间断电源放电时间计算方法
  6. PHP使用fpdf生成pdf文件(含中文类)
  7. ASP.NET Core 3.0中支持AI的生物识别安全
  8. Python机器学习:决策树003使用信息熵寻找最优划分
  9. mysql timestamp 当前_技术分享 | MySQL 复制那点事 - Seconds_behind_Master 参数调查笔记
  10. 小程序php上传图片到服务器,关于微信小程序上传图片到服务器的代码
  11. QListView text动态显示
  12. 常用的向量矩阵求导公式
  13. 详细分析推荐系统和搜索引擎的差异陈运文
  14. 一条语句完成微信、支付宝支付,生成支付二维码
  15. 融云发送图片消息_融云开发者文档
  16. 三角形黑盒测试-Java Swing
  17. 从零开始的RISCV架构CPU设计(2)-CISC与RISC
  18. 牛客练习赛91A~D
  19. 崇州 鸡冠山 白塔湖 九龙沟 罨画池 陆游祠{组图及介绍}
  20. 华为路由器AR2200与部分交换机的密码破解

热门文章

  1. 团队项目-Recycle需求规格说明书
  2. [转]计算机四级网络工程师思维导图--常考重点
  3. python实现猜数字游戏
  4. 诗词才女武亦姝将入读清华理科试验班类,学霸是如何炼成的?
  5. 服务器显示A40故障码,求助大神,车子出现故障码,5053无法消除
  6. Android WideVine
  7. Scrum板与Kanban如何抉择?ecusiqoiw板与按照eqymgy
  8. 中国34个省级行政区2000年-2021年逐月1km植被指数NDVI栅格数据处理及下载
  9. vscode设置好看的编程字体
  10. 苹果手机5s无需越狱免流_苹果越狱手机端自签名插件