GEO的表达矩阵的探针ID转换成基因名称教程

前情回顾

OmicsTools的安装使用和R语言分析环境的配置教程

教程地址:OmicsTools的R语言分析环境配置教程效果示意图-CSDN博客文章浏览阅读2.1k次,点赞25次,收藏37次。我开发了一款本地电脑无限使用的零代码生信数据分析作软图神器电脑软件OmicsTools,欢迎大家使用OmicsTools进行生物医学科研数据分析和作图,该软件件能让大家在不需要任何编程和代码编写的基础上,分析次数没有限制,可以无限使用,让您在自己的电脑上快速进行大量的生信分析和加速大家的科学研究。软件下载。_omicstoolshttps://blog.csdn.net/qq_40073899/article/details/139143993  

根据GSE id自动下载处理GEO数据(必须要运行的模块)

该模块的运行窗口截图

358d1b3daf0a151a738ac67a3d7b9062.jpeg

该模块的教程

  1. 知乎地址:根据GEO的GSE数据集编号自动下载和处理GEO数据教程: https://zhuanlan.zhihu.com/p/708053447

该根据GSE id自动下载处理GEO数据的GEO下载模块的常见问题答疑详解

GEO的数据集格式多种多样,使用该模块下载GEO数据集最好的情况下得到的结果是什么样的?

最好的结果就是下图这样,直接通过该模块点击下载后,会得到下面这些下载提取整理好的文件:

  1. 一次性得到注释好基因名称的表达矩阵文件,如GSE61763_exp_matrix.csv,GSE61763_exp_matrix.rds
  2. 得到样本的注释信息文件: 如GSE61763_sample_info.csv,
  3. 得到从GPL soft注释文件中提取到的基因探针跟基因名称的对应关系的两列数据文件,如GPL191197.soft.gz.gene_anno_sub.tsv文件
  4. 得到了使用表达矩阵,基因注释信息,样本注释信息等数据构建的ExpressionSet对象格式文件,如GSE61763_eset.rds 文件

8def3ae824a86208b2d3fc63fdff974e.jpeg

结果文件列表

GEO的数据集格式多种多样,使用该模块下载GEO数据集第二好的情况下得到的结果是什么样的?遇到这种情况该怎么处理?

00726ff2a9a7ccf742a9fbe17499a6bf.jpeg

  1. 提取到了GEO数据集的表达矩阵文件,如GSE20842_exp_matrix0.csv,GSE20842_exp_matrix0.rds
  2. 得到样本的注释信息文件: 如GSE20842_sample_info.csv,
  3. 得到了使用表达矩阵,探针信息,样本注释信息等数据构建的ExpressionSet对象格式文件,如GSE20842_eset.rds文件

但是这个表达矩阵有个问题就是,行名不是基因名称,而是探针名称,所以我对这个文件名称做了一些修饰,如果文件名后缀是exp_matrix0.csv,那么这样的表达矩阵里面基本上是没有注释好基因名称,需要在手动下载一下GEO的GPL文件从GPL文件中提取出基因的注释信息再跟表达矩阵合并,这样的处理作为我也有详细的处理教程来教大家怎么做

18dd1011a6968284e4b60acd77e53747.jpeg

如果文件后缀就是exp_matrix.csv,那么就是已经成功把基因名称提取出来并整合到表达矩阵中了。对于没有基因名称只有基因探针的表达矩阵,可以用下面这两个模块进行处理:

d9a3e00e0640ff826afb5e35ef50363b.jpeg

69ea04b08920b92497491813ed0d549f.jpeg

基因探针soft.gz注释文件下载

GPL背景知识介绍

在基因表达数据分析中,了解特定的基因探针平台(GPL)的注释信息是非常重要的。`GEO`,或者称为`Gene Expression Omnibus`,是一个存储高通量基因表达数据(如微阵列和次世代测序数据)的公共数据库,由美国国立生物技术信息中心(NCBI)管理。每个数据集通常与一个或多个探针平台相关联,这些平台在GEO中被指定为GPL(Gene Expression Omnibus Platform)。

GEO的GPL(Gene Expression Omnibus Platform)

在GEO中,每个基因探针平台被赋予一个唯一的GPL编号。GPL描述了用于测量基因表达的技术和方法,包括探针的设计、制造信息以及探针与基因(或转录本)之间的对应关系。这些信息对于正确解释基因表达数据至关重要。

主要内容包括:

1. **平台描述**:

- **制造商**:如Affymetrix, Illumina, Agilent等。

- **技术类型**:如微阵列芯片、次世代测序。

- **探针特征**:探针数量、探针覆盖的生物体(如人类、小鼠等)。

2. **探针注释**:

- **探针ID**:每个探针在平台上的唯一标识。

- **探针位置信息**:探针在基因组或转录组上的具体位置。

- **靶标基因**:每个探针旨在检测的基因或转录本。

- **相关序列**:探针的核苷酸序列。

3. **访问和使用**:

- **GPL访问编号**:如GPL570。

- **数据集示例**:与该平台相关的GEO数据集编号(如GSE号)。

- **下载和查询**:用户可以通过NCBI的GEO查询界面查询特定平台的注释数据。

为什么探针注释重要?

- **精确的生物学解释**:正确的探针到基因的映射确保了实验结果的生物学解释的准确性。

- **数据比较**:统一的探针注释允许不同实验数据间的有效比较。

- **研究复现**:详细的平台注释信息帮助其他研究者复现和验证实验结果。

理解GEO的GPL信息有助于研究人员有效利用公共基因表达数据

基因探针soft.gz注释文件的自动下载

根据GSE id自动下载处理GEO数据(必须要运行的模块)

该模块的运行窗口截图

259bf165e17b2a327a21177183ef1694.jpeg

该模块运行的结果文件

1c0460ac42e6e06f33f51d2d067b5e99.jpeg

GSE61763数据集的GPL平台编号是GPL19197,在运行该模块执行完成后,会自动下载出GPL191197.soft.gz或GSE61763_family.soft.gz这样的探针注释文件。

GPL探针soft.gz注释文件的手动下载

如果有的时候使用上面的自动下载模块没有下载到GPLXXX.soft.gz或GSEXXX_family.soft.gz注释文件,我们也可以使用手动下载模块来下载GPL的注释文件

a68501e008f448a6f18353b065ed4906.jpeg

16b6fda01e5afeceacf0d103d55de594.jpeg

从gpl注释文件中提取出基因注释

教学教程视频

从gpl注释文件中提取出基因注释:https://www.bilibili.com/video/BV15w4m1q7Dw/

运行窗口

da233c23c40fa256a1e8cdc7804517dd.jpeg

运行完成提取到的注释结果

627881615d1d909d60a663ab194c5e43.jpegffa0313cacc0f8469ca2a29dcf67457c.jpeg

将提取的基因注释信息跟表达矩阵合并

该部分的教学视频

将提取的基因注释信息跟表达矩阵合并:https://www.bilibili.com/video/BV12f421Q7nK/

窗口截图展示

e69913f05807c2a7c3beb0adce739ff8.jpeg

参数注释信息解释

func_anno__file: 提取出的基因注释信息文件

func_anno__id__col:基因注释文件中基因id的列名

func_anno__gene__col:基因注释文件中gene_symbol所在的列名

func_exp__id__col:表达文件中的索引列

nested_function:是否嵌套函数

run_file_path:表达数据文件所在的路径

run_read_file:是否要读取文件

run_add_save_file_prefix:是否要添加结果保存文件的前缀

提交

参数给出的默认值

func_anno__file:D:/omics_tools/demo_data/res_dir/renal_cancer/GSE61763/GPL19197.soft.gz.total_gene_anno_sub.tsv ;

func_anno__id__col: ID ;

func_anno__gene__col: gene_symbol ;

func_exp__id__col: V1 ;

nested_function: TRUE ;

run_file_path: D:/omics_tools/demo_data/res_dir/renal_cancer/GSE61763/GSE61763_gsm_tar_after_norm_exp_matrix.csv ;

run_read_file: FALSE ;

run_add_save_file_prefix: FALSE

运行中的信息展示

分析正在执行中,请稍后, 运行结果保存的目录位置为: D:/omics_tools/demo_data/res_dir/renal_cancer/GSE61763\res_dir; 运行结果日志保存的路径为: D:/omics_tools/demo_data/res_dir/renal_cancer/GSE61763\res_dir\GSE61763_gsm_tar_after_norm_exp_matrix_last_final_run_res_log.csv

表达数据集的内容展示

D:/omics_tools/demo_data/res_dir/renal_cancer/GSE61763/GSE61763_gsm_tar_after_norm_exp_matrix.csv

3b73d26333e255c74c061a51c71c2cc3.jpeg

基因注释文件信息

e658aab13811236c03d4e62ac491ffb1.jpeg

运行完成的信息显示

执行已完成,运行结果保存的目录位置为: D:/omics_tools/demo_data/res_dir/renal_cancer/GSE61763\res_dir; 分析结果日志保存的路径为: D:/omics_tools/demo_data/res_dir/renal_cancer/GSE61763\res_dir\GSE61763_gsm_tar_after_norm_exp_matrix_last_final_run_res_log.csv

运行完成的结果展示

0c8fde4e0096476f4e336fafe7ebd005.jpeg

### 将 GEO 数据库中的 Count 数据转换为 TPM #### 工作流程概述 为了将 GEO 数据库中的 Count 数据转换为 TPM (Transcripts Per Million),需要完成以下几个核心操作:获取基因长度信息、合并计数数据与基因长度矩阵以及应用标准化公式。 --- #### 1. 准备阶段 在开始之前,需设置工作环境并加载必要的 R 包。以下是常用工具包及其功能说明: - `edgeR` 或 `DESeq2`: 处理 RNA-seq 计数数据。 - `tximport`: 提供从文件导入转录本级别的表达量的功能。 - `dplyr`: 方便处理和整理数据框。 代码如下: ```r library(edgeR) library(tximport) library(dplyr) ``` --- #### 2. 获取 Counts 数据 假设已经下载了 GEO 数据库中的 counts 文件(通常是一个表格),可以使用以下命令将其读入内存中: ```r counts <- read.table("GSEXXXXXX_counts.txt", header=TRUE, row.names=1, sep="\t") ``` 此步骤会创建一个为 `counts` 的对象,其中每一行为基因 ID,每列为样本对应的 reads count 值[^3]。 --- #### 3. 下载基因长度信息 TPM 的计算依赖于基因的长度信息。可以通过外部资源(如 GENCODE 或 RefSeq)或者直接利用 GEO 中附带的相关元数据来提取这些值。如果已知基因长度存储在一个单独的 CSV/TXT 文件里,则可通过下面的方式加载它: ```r gene_lengths <- read.table("gene_length_info.txt", header=TRUE, row.names=1, sep="\t") ``` 确保该表的第一列包含唯一的基因标识符,并且第二列表达的是对应基因的实际碱基对数目。 --- #### 4. 合并 Counts 和 Gene Lengths 为了让后续计算更加简便,应先将上述两部分结合起来形成一个新的数据结构——即扩展后的矩阵形式,在这里我们采用 dplyr 来实现这一目标: ```r merged_data <- inner_join(as.data.frame(t(counts)), gene_lengths, by="row.names") rownames(merged_data) <- merged_data$Row.names merged_data$Row.names <- NULL ``` 此时得到的新变量 `merged_data` 应当具有这样的布局:行代表各个基因;除了最后的一列记录着它们各自的物理尺寸外,其余各列则分别表示不同样品下的原始测序覆盖度统计结果。 --- #### 5. 定义 TPM 转换函数 基于定义好的数学模型,编写一段简单的脚本来执行批量转化过程: ```r convert_to_tpm <- function(count_matrix){ effective_count_per_kb <- sweep(count_matrix[, -ncol(count_matrix)], MARGIN=1, FUN="/", STATS=count_matrix[, ncol(count_matrix)] / 1e3) tpm_values <- sweep(effective_count_per_kb , MARGIN=2 , FUN="/",STATS=(apply(effective_count_per_kb ,2,sum)/1e6)) return(tpm_values) } tpms <- convert_to_tpm(merged_data) ``` 这段逻辑首先调整每个基因单位千碱基数目的相对丰度比例关系,接着再除以整个实验体系内的总有效映射片段数量从而获得最终标准化后的 TPM 数组。 --- #### 6. 输出结果至文件 一旦完成了全部数值变换之后,就可以把所得成果导出到本地磁盘上以便进一步分析或分享给其他研究者们查看啦! ```r write.csv(as.data.frame(t(tpms)), file="GSEXXXXXX_TPM_expression.csv", quote=FALSE) ``` 这样就成功实现了从 raw counts 到 TPM 表达谱之间的转变全过程[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邢博士谈科教

你的支持是我创作最大动力谢谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值