TCGA相关分析之数据筛选 | python从TCGA-GBM的RNA-seq表达数据count中筛选出各genes对应的案例cases的表达量count矩阵

该博客讲述了如何使用Python代替R语言,从多个count数据文件中筛选出gene_name、gene_type为lncRNA的FPKM表达量。作者首先整理count文件到新文件夹,然后将tsv文件转换为xls以便进行行列操作,最后提取所需列并整合到单一文件。虽然过程中因模块限制进行了文件格式转换,但最终实现了数据预处理的目标,为后续的GBM患者RNA-seq数据分析做准备。
摘要由CSDN通过智能技术生成

接上一篇文章,现在开始筛选数据组成count矩阵。
上一篇:TCGA下载GBM患者的RNA-seq数据

上一篇结束,下载到初始数据(图一图二是下载之后的文件夹以及每一个文件夹中的count数据文件)
在这里插入图片描述
在这里插入图片描述
需要从每一个count数据文件中筛选出gene_name、gene_type为lncRNA、FPKM表达量,效果图如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

由于不会R语言,就用python来实现

步骤:

  • 从每一个文件夹中提取出来count数据文件,整理到一个新文件夹中
  • 将所有count数据文件中需要的列提取出来,整合到一个文件中
  • 在整合文件中手动复制粘贴添加 gene_id、gene_name、gene_type 列数据即可(手动更快,因为这些都是一样的,不需要筛选)

1、从每一个文件夹中提取出来count数据文件,整理到一个新文件夹中

参照:python | 从指定文件夹中筛选出xml文件,复制到新的指定路径

2、将所有count数据文件中需要的列提取出来,整合到一个文件中

由于不方便对 tsv 文件操作行列,所以 tsv 转成 xls 来操作,这里就比较繁琐,需要来回转换。

2.1 tsv 转成 xls

最初由于 xlrd 模块不好用,比如更新带来的报错等,所以采用了 xlsx 格式。但是后面提取列的时候,openpyxl 模块又不支持行列操作,只能针对单元格,不得已又从 xlsx 转成 xls,绕了一圈,工作量加倍 (ˉ▽ˉ;)…

这里给出转 xls 和 xlsx 都能用的代码:
参照:python | 批量将 tsv 文件转成 xls 文件,保存到新路径

不过需要注意,不久pandas将不再支持xls,也就是说不能使用 pandas 保存为 xls 格式了,但是 xlsx 依旧能用。之后可能需要寻找其他方法,或者 tsv-xlsx-xls 间接转换。

2.2 提取出每一个 xls 文件中的所需列

这里说一下,因为使用 xlrd 模块,可直接通过 sheet.row[i] 和 sheet.col[i] 获取行和列的内容,所以使用 xls 格式。由于 openpyxl 模块只能对单元格操作,不合适,所以不用 xlsx 格式。

参照:python | 批量提取出每一个 xls 文件中的所需列,并重命名列名,保存到同一个新的 xls 文件中


这一篇就写到这里,下一篇继续前文工作,实现Person相关分析,后续实现共表达网络构建

要在R分析TCGA-COAD数据某个基因的高低表达组,首先需要完成几个步骤:数据获取、数据整合、过滤目标基因、计算表达值、分组和统计分析。这里是一个简化版的示例代码,假定你已经有了TCGA-COAD的RNA-seq数据(例如使用`TCGAbiolinks`包下载)和基因表达矩阵。 ```R # 首先,安装必要的库 if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install(c("TCGAbiolinks", "DESeq2", "dplyr", "ggplot2")) # 导入必要的库 library(TCGAbiolinks) library(DESeq2) library(dplyr) library(tidyr) library(ggplot2) # 加载TCGA-COAD数据(这里假设你已下载并存储在"data.dir"路径下) coad_data_dir <- "data.dir/TCGA_COAD_RSEM_genes_normalized" coad_project <- TCGAquery(project = "COAD", use的历史版本 = "release_2018_08_28") # 更换为实际版本 expression_matrix <- getTumorDataFromTCGAQuery(coad_project, "Gene Expression Quantification (HTSeq - Counts)") # 定义你要分析的基因ID target_gene_id <- "EGFR" # 替换为你感兴趣的基因ID # 过滤数据得到只包含目标基因的子集 gene_subset <- expression_matrix %>% select(contains(target_gene_id)) # 将DataFrame转为long format gene_subset_long <- gene_subset %>% pivot_wider(names_from = row.names, values_from = value, names_prefix = "gene_") # 对样本进行生物学分型,如高表达和低表达,这里简单地设置阈值,可以根据实际情况调整 expression_threshold <- mean(gene_subset_long$gene_{{target_gene_id}}) + 2 * sd(gene_subset_long$gene_{{target_gene_id}}) gene_subset_long$expression_group <- ifelse(gene_subset_long$gene_{{target_gene_id}} > expression_threshold, "High", "Low") # 对高低表达组进行DESeq2分析 dds <- DESeqDataSetFromMatrix(countData = gene_subset_long, colData = gene_subset_long$expression_group, design = ~ expression_group) dds <- DESeq(dds) # 查看结果 results <- results(dds) top_genes <- head(results[order(results$log2FoldChange, decreasing = TRUE), ], n = 10) # 可视化前10个显著差异的基因 # 可视化结果 ggplot(top_genes, aes(x = log2FoldChange, y = padj, fill = qval < 0.05)) + geom_point(size = 4) + scale_fill_manual(values = c("red", "gray")) + labs(title = paste0("Top differential expressed genes for ", target_gene_id), x = "Log2 Fold Change", y = "Adjusted P-value", fill = "Significant at p < 0.05") + theme_minimal() #
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值