首页 > 其他分享 >100个GEO基因表达芯片或转录组数据处理之GSE26899(008)

100个GEO基因表达芯片或转录组数据处理之GSE26899(008)

时间:2024-01-25 10:12:54浏览次数:32  
标签:Gastric dplyr 芯片 基因 ch1 tissue 100 008 GEO

写在前边

虽然现在是高通量测序的时代,但是GEO、ArrayExpress等数据库储存并公开大量的基因表达芯片数据,还是会有大量的需求去处理芯片数据,并且建模或验证自己所研究基因的表达情况,芯片数据的处理也可能是大部分刚学生信的道友入门R语言数据处理的第一次实战,因此准备更新100个基因表达芯片或转录组高通量数据的处理。

数据信息检索

可以看到GSE26899是基因表达芯片数据,因此可以使用GEOquery包下载数据

使用GEOquery包下载数据

using(tidyverse, GEOquery, magrittr, data.table, AnnoProbe, clusterProfiler, org.Hs.eg.db, org.Mm.eg.db)

注:using是我写的函数,作用是一次性加载多个R包,不用写双引号,并且不在屏幕上打印包的加载信息,可以参考之前的推文《如何优雅地管理R包》using的定义;函数名字using是在模仿Julia语言中的包加载函数

因为文件太大,在R内下载失败,可通过图片中的方法下载文件,并且把下载后的文件放在destdir = "./"即当前工作目录,GEOquery::getGEO便能跳过下载,直接使用本地的文件。

geo_accession <- "GSE26899"
gset <- GEOquery::getGEO(geo_accession, destdir = "./", AnnotGPL = F, getGPL = F)
eSet <- gset[[1]]
gpl <- eSet@annotation

处理表型数据

这部分是很关键的,可以筛选一下分组表型信息,只保留自己需要的样本,在这里只保留tissue:ch1中 normal gastric tissue和gastric cancer tissue的样本,作为后续分析的样本(根据自己的研究目的筛选符合要求的样本)

pdata <- pData(eSet)
geo_accessionpatient:ch1tissue:ch1age:ch1ajcc stage:ch1gender:ch1lauren classification:ch1location:ch1
GSM662374 KG004C Gastric tumor tissue 41 4 M Diffuse Body
GSM662375 KG008N Gastric Surrounding normal tissue          
GSM662376 KG009C Gastric tumor tissue 55 1 M Intestinal Fundus
GSM662377 KG012C Gastric tumor tissue 54   M    
GSM662378 KG013C Gastric tumor tissue 45 3 F Intestinal Antrum
GSM662379 KG014N Gastric Surrounding normal tissue          
pdata %<>%
    dplyr::mutate(
        Sample = geo_accession,
        Patient=`patient:ch1`,
        Age=`age:ch1`,
        Stage=`ajcc stage:ch1`,
        Sex=`gender:ch1`,
        Histology=`lauren classification:ch1`,
        Location=`location:ch1`,
        Group = dplyr::case_when(
        stringr::str_detect(`tissue:ch1`, "normal") ~ "Nomal", 
        stringr::str_detect(`tissue:ch1`, "tumor tissue") ~ "Cancer",
        TRUE ~ NA),
    ) %>%
    dplyr::filter(!is.na(Group) %>%
    dplyr::select(Sample,Patient, Group,Histology, Age,Stage, Location, Sex)


处理表达谱数据

数据大小不大于50不需要取log

exprs_mtx <- exprs(eSet)
range(exprs_mtx, na.rm = TRUE)
# 5.11 15.227
probe_exprs <- as.data.table(exprs_mtx, keep.rownames = "ProbeID")

探针与基因Symbol对应关系

从AnnoProbe包中获取探针与GeneID对应关系

probe2symbol <- AnnoProbe::idmap(gpl = gpl, type = "soft", mirror = "tencent", destdir = od) %>%
    dplyr::rename(ProbeID = ID, GeneID = symbol) # pipe", "bioc", "soft"

ID转换

把表达矩阵中的探针名转换为基因名;transid是我写的一个R函数,有需要可以联系我的公众号@恩喜玛生物,加入交流群

fdata <- transid(probe2symbol, probe_exprs)

保存数据

common_samples <- base::intersect(colnames(fdata),pdata$Sample)
fdata %<>% select(all_of(c("GeneID",common_samples)))
fwrite(fdata, file = stringr::str_glue("{geo_accession}_{gpl}_fdata.csv.gz"))
pdata %<>% dplyr::filter(Sample %in% common_samples)
fwrite(pdata, file = stringr::str_glue("{geo_accession}_{gpl}_pdata.csv"))

 

标签:Gastric,dplyr,芯片,基因,ch1,tissue,100,008,GEO
From: https://www.cnblogs.com/BioQuest/p/17986413

相关文章

  • 100 DP
    NO临时剪贴板-1.23P1103书本整理题目简化给定一个数列,和一个数字k,有k次机会将数列中的数字减一。求相邻差值之和最少。其实如果考虑扔掉k本书,操作起来感觉非常的麻烦。如果考虑留下(n-k)书,再求差值是否会更简便呢?f[i][j]=min(f[i][j],f[k][j-1]+abs(a[i]-a[k]));考虑如何排......
  • 初中英语优秀范文100篇-068I've Learned a lot from Reading Books-我从阅读书籍中学
    PDF格式公众号回复关键字:SHCZFW068记忆树1Booksplayanimportantroleinourlives.翻译书籍在我们的生活中扮演着重要的角色简化记忆角色句子结构"Books"是主语,表示事物"play"是谓语动词,表示主语的行为"animportantrole"是宾语,表示主语的行为结果"inou......
  • CF467C George and Job 题解 DP 前缀和
    DP前缀和题目链接题意:给你一个长度为\(n\)的序列,让你从这个序列中挑选出\(k\)个长度为\(m\)的区间,并且任意区间不相交。使得选出的数之和最大,求出这个数。解法:很经典的DP模型,我们定义\(f_{i,j}\)表示从前\(i\)个数选出了\(j\)个区间可以取得的最大值,那么答案为:\(f_{n,k}\)。......
  • 重写SpringCloudGateway路由查找算法,性能提升100倍!
    如果你也在做SpringCloudGateway网关开发,希望这篇文章能给你带来一些启发背景先说背景,某油项目,通过SpringCloudGateway配置了1.6万个路由规则,实际接口调用过程中,会偶现部分接口从发起请求到业务应用处理间隔了大概5秒的时间,经排查后发现是SpringCloudGateway底层在查找对应的R......
  • 退役前要做的 100 件事
    给自己起个ID\(✓\)@Creeper_l@YellowRose爆零一场模拟赛\(✓\)2023/07/31AK一场模拟赛\(✓\)2023/8/12记下第一次提交的日期\(✓\)2020-12-0720:19:43向大佬请教问题\(✓\)@World_Ender对自己的板子越看越满意\(✓\)有源汇上下界最大流......
  • 初中英语优秀范文100篇-067I'm Proud of Myself-我为自己感到骄傲
    PDF格式公众号回复关键字:SHCZFW067记忆树1I'mproudofmyselfbecauseofawonderfulexperience.翻译我很骄傲,因为我有一段美好的经历。简化记忆骄傲句子结构"I"是主语,表示句子的行动者。"amproudof"是谓语,表示主语的状态或动作。"myself"是宾语,表示动作......
  • 看起不起眼,却能一天加100人的引流方法
    如果正在创业的你因为缺客源而导致生意停滞不前那么接下来,我分享的你要认真听了,这五种引流方法一定能帮到你。——❶截流法就是去别的博主下面截取他的流量,从而将他的粉丝吸引到你的私域。这个方法看似不起眼,做的人却很多不仅能吸引大量人群,还很精-准。比如你吸引创业粉,就去搜索创......
  • P1125 [NOIP2008 提高组] 笨小猴
    1.题目介绍[NOIP2008提高组]笨小猴题目描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设\(\text{maxn}\)是单词中出现次数最多的字母的出现次数,\(\text{......
  • 初中英语优秀范文100篇-066I Dream to Be a Doctor-我梦想成为一名医生
    PDF格式公众号回复关键字:SHCZFW066记忆树1SinceIwasalittlechild,IhadadreamthatIwantedtobeadoctor.翻译从小,我就一直梦想成为一名医生简化记忆梦想句子结构SinceIwasalittlechild是一个时间状语从句,指明了主句中的动作或状态开始的时间Iha......
  • Failed to create CoreCLR, HRESULT: 0x80070008--.net core 8 run in docker
    这几天计划打算上传微服务网关和微服务注册中心的docker镜像:Taurus.Gateway、Taurus.RegistryCenter却发现dockerhub在国内无法使用了。目前使用阿里云个人免费版来上传镜像。用.netcore8打包本地测试正常后,上传阿里云,再从虚拟机测试下载运行时出现以下问题:Failedtocre......