geo矩阵的获取有两种方式:

  1. library(DESeq2)
library(DESeq2)
getwd()
dir.create("G:/r/duqiang_IPF/GSE150910_IPF_Donors_subsets_using_getGEO/")
setwd("G:/r/duqiang_IPF/GSE150910_IPF_Donors_subsets_using_getGEO/")
if(1==!1){getwd()Sys.setenv("VROOM_CONNECTION_SIZE"=999999999)f='GSE150910_eSet.Rdata'if(!file.exists(f)){gset <- getGEO('GSE150910', destdir=".",AnnotGPL = F,     ## 注释文件getGPL = F)       ## 平台文件save(gset,file=f)   ## 保存到本地}}
load("G:/r/duqiang_IPF/GSE150910_IPF_Donors_subsets/GSE150910_eSet.Rdata")
head(pData(gset[[1]])$"status")
head(pData(gset[[1]])$"age:ch1")#提取meta信息
meta_all=pData(gset[[1]])

2.在geo官网把文件下载下来,然后读取

expr.150910<-read.table(file="G:/r/duqiang_IPF/GSE150910_IPF_Donors_subsets/GSE150910_gene-level_count_file.csv/GSE150910_gene-level_count_file.csv",header=TRUE,sep=",", #Error in scan(file = file, what = what, sep = sep, quote = quote, dec = deccomment.char="!")expr.150910=expr.df %>% column_to_rownames(var = "symbol") #列名变成行名
head(expr.150910)[1:6,1:12]
length(rownames(expr.150910))

#提取meta信息

meta_all=pData(gset[[1]])
head(meta_all)
meta.150910=meta_all[,c("race (hispanic;1, black;3,asian;4, white;5, other;6):ch1","Sex:ch1","age:ch1","diagnosis:ch1","ever_smoked:ch1","plate:ch1","institution:ch1","sample type:ch1","title")]
colnames(meta.150910)=c("race","Sex","age","diagnosis","ever_smoked",'plate','institution','sample',"title")
meta.150910=meta.150910 %>% rownames_to_column(var = "GSM_acc")
rownames(meta.150910)=meta.150910$title
head(meta.150910)


#表达矩阵样本顺序和meta信息是否一致

rownames(meta.150910)
colnames(expr.150910)
match(c(1,3,2,6),c(6,2,3,1))
c(6,2,3,1)[match(c(1,3,2,6),c(6,2,3,1))]
length(match(rownames(meta.150910),colnames(expr.150910)))
expr.150910[,match(rownames(meta.150910),colnames(expr.150910))]
expr.150910=expr.150910[,match(rownames(meta.150910),colnames(expr.150910))]
head(expr.150910)
identical(colnames(expr.150910),rownames(meta.150910))

##deseq2 素材准备 包括矩阵和meta信息

table(meta.150910$sample,meta.150910$diagnosis)my_coldata_explant=meta.150910[meta.150910$sample=="explant" &meta.150910$diagnosis %in% c("control",'ipf'),]
head(my_coldata_explant)

my_rawcout_explant=expr.150910[,match(rownames(my_coldata_explant),colnames(expr.150910))]
head(my_rawcout_explant)identical(rownames(my_coldata_explant),colnames(my_rawcout_explant))

开始deseq2

library(DESeq2)
dds <- DESeqDataSetFromMatrix(countData = my_rawcout_explant,#生成deseq对象结构colData = my_coldata_explant,design= ~Sex+age+race+plate+institution + diagnosis)
dds <- DESeq(dds)
#设置好 到底是谁比谁
dds@design
table(my_coldata_explant$diagnosis)
dds$diagnosis <- relevel(dds$diagnosis, ref = "control") #dds$group <- factor(dds$group, levels = c("control","ipf"))
resultsNames(dds)
#save(dds,file = "G:/r/duqiang_IPF/GSE150910_IPF_Donors_subsets_using_getGEO/dds_for_explants_ipf_control.rds")
load("G:/r/duqiang_IPF/GSE150910_IPF_Donors_subsets_using_getGEO/dds_for_explants_ipf_control.rds")res=results(dds,name = "diagnosis_ipf_vs_control")
head(res)
res$genename=rownames(res)
getwd()openxlsx::write.xlsx(res,file ="G:/r/duqiang_IPF/GSE150910_IPF_Donors_subsets_using_getGEO/degs_explants_for_ipf vs control.xlsx" )


收缩

# or to shrink log fold changes association with condition:
#BiocManager::install('apeglm')
res <- lfcShrink(dds, coef="diagnosis_ipf_vs_control", type="apeglm")
head(res)
length(rownames(res)) #18838res$genename=rownames(res)res=as_tibble(res)
res=res %>% filter(abs(log2FoldChange)>1 & pvalue<0.05 )
length(rownames(res)) #1595
openxlsx::write.xlsx(res,file ="G:/r/duqiang_IPF/GSE150910_IPF_Donors_subsets_using_getGEO/degs_explants_for_ipf vs control_filtered.xlsx" )

geo下载表达矩阵 多因素差异分析 deseq2 duqiang_1分析GEO数据库差异基因(GSE150910)将差异基因与泛素化酶取交集相关推荐

  1. geo读取表达矩阵 RNA-seq R语言部分(表达矩阵合并及id转换)

    geo读取表达矩阵 RNA-seq R语言 方法一:1.从geo页面直接下载表达矩阵,然后通过r读取表达矩阵 2.利用getgeo函数读取表达矩阵 3.利用geo自带的geo2r,调整p值为1,获取探 ...

  2. seurat提取表达矩阵_什么,你一定要基于FPKM标准化表达矩阵做单细胞差异分析...

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了!下面是<生信入门第7期>学员的分享最近看到有一个简单的数据挖掘文章,就做了一个单细胞表达矩阵的差异分析,然后强行解释一波.而且使 ...

  3. c++ 合并2个txt_多个表达矩阵文件合并

    前些天群主给了我们学徒一个任务,下载数据集:GSE84073 做一些批量分析! 群主想看到,HCC,CHC,CC这3组,跟healthy的分开比较,然后3个火山图,3个热图. 那么首先需要下载coun ...

  4. seurat提取表达矩阵_GPL17586、GPL19251和GPL16686平台芯片ID转换

    芯片分析中经常会遇到Affymetrix Human Transcriptome Array 2.0芯片,由于目前还没有现成的R包可以用,因此分析方法也不统一.见生信技能树Jimmy老师HTA2.0芯 ...

  5. 生物信息学入门 根据表达矩阵和差异表达基因列表制作差异表达矩阵

    根据表达矩阵做完差异分析之后,就要将差异表达基因的表达情况从表达矩阵中提取出来,制作差异表达矩阵.这个过程非常简单,但是也有一些人问到,就整理了这个教程. 1. 数据准备:原始表达矩阵和差异表达基因 ...

  6. R语言 | GEO数据库下载GSE基因芯片 以及表达矩阵和临床信息的提取

    目录 1.载入R包 2.利用AnnoProbe下载GEO数据库中的数据 3.提取表达矩阵和临床信息 4.输出文件 1.获得GEO数据库中的数据 下面以GSE14520数据系为例: 获得GEO数据库中的 ...

  7. GEO学习笔记-P3 表达矩阵过滤

    学习材料:[生信技能树]公共数据库挖掘实例(基于R语言) bilibili版本以及后续更新课程中的github材料为基础. 本章节是以:[生信技能树]公共数据库挖掘实例(基于R语言)为基础,进行的代码 ...

  8. TCGA下载和表达矩阵整理:最适合初学者的教程

    本文首发于公众号:医学和生信笔记 " 医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化.主要分享R语言做医学统计学.meta分析.网络药理学.临床预测模型.机器学习.生物 ...

  9. GEO数据库学习三(了解表达矩阵)

    上一节已经成功进行了id转换,这一节主要是了解表达矩阵,通过绘图等参数判断表达矩阵是否正确.首先需要根据上一节过滤的探针,我们需要把exprSet表达矩阵的行名(探针id)换成基因名,处理完之后表达矩 ...

最新文章

  1. 将xscj指定为当前数据库_(2)连接登陆数据库
  2. css实现提示信息,单纯使用CSS实现动态提示信息
  3. 【中文情感分析】SO-PMI算法(HarvestText库的修正以及解析)
  4. Linux系统灾难恢复技术和方法-[3]
  5. SpringBoot配置Druid
  6. 当视频恋爱 App 用上了 Serverless
  7. c++正则表达式_Python正则表达式教程-常用文本处理技巧
  8. 实现查询所有商品功能
  9. hash算法在日常活动中的应用
  10. secure CRT连接华三、华为模拟器
  11. 解决fiexd和transform一起用导致的失效问题
  12. AMOS分析技术:路径分析;用SPSS做路径分析麻烦?那就用AMOS分析吧
  13. Outlook和Foxmail里设置Gmail(Google)谷歌企业邮箱
  14. Python 读取5张Excel的Sheet自动生成3张Sheet分析结果(减轻同事的工作量,让原本大约2个小时的工作量缩减到1分钟内)
  15. c语言模拟开关题目,8x16 模拟开关阵列芯片 CH446Q.PDF
  16. [VOT14](2022CVPR)CSWinTT: Transformer Tracking with Cyclic Shifting Window Attention
  17. KVC基本原理和用法
  18. [UE4]Steam联机设置
  19. 拓嘉启远电商:拼多多店铺怎样才具有竞争力
  20. win7 64位右键添加显示隐藏系统文件和文件扩展名

热门文章

  1. 乐盟互动申请纳斯达克IPO上市,募资2000万美元
  2. python 键盘记录器
  3. 电子工程师必须懂得如何规划自己的人生
  4. 多国语言翻译-多国翻译语言软件免费
  5. CVTE硬件岗面试经历
  6. ArcGIS Pro 2.7 新特性(部分)
  7. 新库上线 | CnOpenData制造业工商注册企业数量统计数据
  8. 作为软件开发经理要避免的10个错误
  9. 老友记第一季自学笔记10
  10. myo学习(1):安装入门