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

写在前边

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

数据信息检索

可以看到GSE159676是基因表达芯片数据,因此可以使用GEOquery包下载数据
在这里插入图片描述

使用GEOquery包下载数据

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

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

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

处理表型数据

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

pdata <- pData(eSet)

geo_accessionage (y):ch1diagnosis:ch1fibrosis (stage):ch1gender:ch1
GSM238572060SS0female
GSM238572152NASH4female
GSM238572260SS1female
GSM238572346SS0male
GSM238572447SS0female
GSM238572530SS0male
pdata %<>%
    dplyr::mutate(
        Sample = geo_accession,
        Group = case_when(`diagnosis:ch1` == "HC" ~ "Control", `diagnosis:ch1` == "NASH" ~ "Case", TRUE ~ NA),
        Age = `age (y):ch1`,
        Sex = str_to_title(`gender:ch1`),
        Stage = `fibrosis (stage):ch1`
    ) %>%
    dplyr::filter(!is.na(Group)) %>%
    dplyr::select(Sample, Group, Age, Sex)

处理表达谱数据

数据大小小于50可以不取log

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

探针与基因Symbol对应关系

GPL14951-11332.txt可以直接从GEO网站下载

probe2symbol <- fread("GPL14951-11332.txt") %>% 
    dplyr::rename(ProbeID = ID) %>% 
    dplyr::mutate(GeneID=as.character(Entrez_Gene_ID)) %>% 
    dplyr::select(ProbeID, GeneID) %>% drop_na()

我们从中GPL14951-11332.txt得到的是NCBI数据库中的Entrez ID,需要使用clusterProfiler包把它转换为基因Symbol

maps <- clusterProfiler::bitr(geneID = probe2symbol$GeneID,fromType = "ENTREZID",toType = "SYMBOL",OrgDb = org.Hs.eg.db)

合并数据库,最终得到了探针与基因Symbol对应关系

probe2symbol %<>% merge(maps,by.x='GeneID',by.y='ENTREZID') %>% dplyr::select(ProbeID, SYMBOL) %>% dplyr::rename(GeneID=SYMBOL)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/317805.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

物联网协议Coap之Core和NetWork简介

目录 前言 一、Coap的Core包 1、Coap对象 2、Message对象 3、Request对象 4、Response对象 二、Coap的NetWork调试 1、UDP运行模式 2、Network消息接收 3、Sender线程发送数据 三、总结 前言 在之前的博文中&#xff0c;对Californium中Coap的实现进行了简要的介绍&a…

IT从业人员如何养生?

目前&#xff0c;电脑对人体生理和心理方面的负面影响已日益受到人们的重视。为此科学使用电脑&#xff0c;减少电脑和网络的危害是十分必要的。好代码网总结了一些it从业人员的保健知识&#xff0c;分享给大家。 一是要增强自我保健意识 工作间隙注意适当休息&#xff0c;一般…

计算机体系结构----缓存一致性/多处理机

本文严禁转载&#xff0c;仅供学习使用。参考资料来自中国科学院大学计算机体系结构课程PPT以及《Digital Design and Computer Architecture》、《超标量处理器设计》、同济大学张晨曦教授资料。如有侵权&#xff0c;联系本人修改。 本文衔接上文计算机体系结构----存储系统 …

秒懂百科,C++如此简单丨第十二天:ASCLL码

目录 必看信息 Everyday English &#x1f4dd;ASCLL码是什么&#xff1f; &#x1f4dd;ASCLL码表 &#x1f4dd;利用ASCLL码实现大写转小写 &#x1f4dd;小试牛刀 总结 必看信息 ▶本篇文章由爱编程的小芒果原创&#xff0c;未经许可&#xff0c;严禁转载。 ▶本篇文…

ActiveMQ反序列化RCE漏洞复现(CVE-2023-46604)

漏洞名称 Apache ActiveMQ OpenWire 协议反序列化命令执行漏洞 漏洞描述 Apache ActiveMQ 是美国阿帕奇&#xff08;Apache&#xff09;软件基金会所研发的一套开源的消息中间件&#xff0c;它支持Java消息服务、集群、Spring Framework等。 OpenWire协议在ActiveMQ中被用于…

2024年 13款 Linux 最强视频播放器

Linux视频播放器选择多样&#xff0c;如榛名、MPlayer、VLC等&#xff0c;功能强大、支持多格式&#xff0c;满足各类用户需求 Linux有许多非常强大的播放器&#xff0c;与windows最强视频播放器相比&#xff0c;几乎丝毫不逊色&#xff01; 一、榛名视频播放器 榛名视频播放…

基于JAVA的民宿预定管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色2.2.2 房主角色2.2.3 系统管理员角色 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿4.3 新增民宿评价4.4 查询留言4.5 新增民宿订单 五、免责说明 一、摘要 1.1 项目介绍 基于…

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信

NI提供了 SPI and I2C Driver API&#xff1a;下载SPI and I2C Driver API - NI 该API使用FPGA数字I / O线与SPI或I2C设备进行通信。 选择数字硬件时&#xff0c;要考虑三个选项&#xff1a; NI Single-Board RIO硬件可同时使用SPI和I2C驱动程序。NI 9401 C系列模块与SPI驱动程…

NODE笔记 1 http模块

简单的http模块使用 文章目录 前言 node 提供了 http 模块&#xff0c;首先需要简单的介绍http http协议&#xff08;超文本传输协议&#xff09;&#xff0c;在web和网络领域都十分重要。在客户-服务通讯的请求响应中&#xff0c;报文大都是基于http。 可以先新建一个简单的…

美力AI变革:生成式AI在美妆和时尚领域的巨大改变

美妆AI技术解决方案提供商—玩美移动于今日发布最新全球趋势报告&#xff1a;《生成式AI在美妆和时尚领域的巨大改变》&#xff0c;就生成式AI在美妆和时尚行业的崛起&#xff0c;为品牌商提供了富有洞见的深入分析。该报告分析了来自玩美移动屡获殊荣的玩美系列APP应用套件的大…

imx6ull基于yocto工程的l汇编点亮ed

通过汇编点亮led 在裸机状态下通过汇编点亮led&#xff0c;即没有操作系统&#xff0c;(uboot kernel rootfs 都不需要实现&#xff09;。 led点亮原理 1.GPIO复用 根据原理图&#xff0c;找到led对应的引脚&#xff08;pin)&#xff0c;复用为GPIO&#xff08;只有GPIO才能…

力扣热题100

排序 快速排序 #include <iostream> #include <vector> using namespace std;// 快速排序函数&#xff0c;传入引用&#xff0c;以便修改原始数组 void quick_sort(vector<int>& q, int l, int r) {// 边界条件&#xff1a;如果左边界大于等于右边界&am…

胶囊-药品广告数据库-解锁药品营销市场

随着医药技术的不断进步&#xff0c;药品市场的竞争也日益激烈&#xff0c;而「广告营销」一直以来都是医药企业发展过程中的重要环节&#xff0c;越来越多的药企意识到药品广告在品牌传播和营销方面的巨大潜力。 而一个好的药品广告投放方案往往需要进行全方位的市场调研&…

Linux Debian12使用VSCode和Python搭建flask开发环境

一、安装VSCode 在Linux Debian12系统上安装VSCode教程可以参考网上相关教程。 二、安装Python 打开VSCode&#xff0c;安装python和python扩展包&#xff0c;如下图所示&#xff1a; 三、创建Python虚拟环境 1.新建文件夹testFlask 2.用vscode打开文件夹testFlask&#xf…

Java副本的概念

在Java中&#xff0c;"副本"&#xff08;copy&#xff09;一词可以用于描述不同的概念&#xff0c;具体取决于上下文。以下是两个常见的用法&#xff1a; 对象的副本&#xff1a;在Java中&#xff0c;当你创建一个对象并将其赋值给另一个变量时&#xff0c;实际上是创…

Jetpack Compose -> 声明式UI Modifier

前言 本章主要介绍下 Compose 的声明式 UI 以及初级写法&#xff1b; 什么是声明式UI 传统UI 传统 UI 方式来声明UI <androidx.appcompat.widget.LinearLayoutCompat android:layout_width"match_parent" android:layout_height"match_parent&quo…

大数据调度框架Oozie,这个学习网站让你事半功倍!

Oozie是一个基于工作流引擎的开源框架&#xff0c;由Cloudera公司贡献给Apache。它主要用于管理和调度Apache Hadoop作业&#xff0c;支持的任务类型包括Hadoop MapReduce、Pig Jobs等。 Oozie的核心概念包括workflow jobs和coordinator jobs。Workflow jobs是由多个动作&#…

快递平台长期最低价格收费,需要寄快递享折扣优惠的请看这里 !

除了我们平时去菜鸟驿站寄快递或者在快递公司的官网上下单等方式外&#xff0c;我们还可以在我们平日使用的微信小程序中选择快递平台享受快递物流折扣。不用像其他主流快递公司想用优惠券一样下载官方APP。您还可以享受无忧特派送监管服务。今天给大家介绍一下我最常用的一款&…

鸿蒙开发已解决-Failed to connect to gitee.com port 443: Time out 连接超时提示

文章目录 项目场景:问题描述原因分析:解决方案:解决方案1解决方案2:解决方案3:此Bug解决方案总结解决方案总结**心得体会:解决连接超时问题的三种方案**项目场景: 导入Sample时遇到导入失败的情况,并提示“Failed to connect to gitee.com port 443: Time out”连接超…

用通俗易懂的方式讲解:大模型微调方法总结

大家好&#xff0c;今天给大家分享大模型微调方法&#xff1a;LoRA,Adapter,Prefix-tuning&#xff0c;P-tuning&#xff0c;Prompt-tuning。 文末有大模型一系列文章及技术交流方式&#xff0c;传统美德不要忘了&#xff0c;喜欢本文记得收藏、关注、点赞。 文章目录 1、LoRA…