2022-TCGA数据库重大更新后RNASeq的STAR-Counts数据的下载与整理

2023-11-19

34c5446b2f209ab0761462e87bf0cd1a.gif

TCGA | GEO | 文献阅读 | 数据库 理论知识

R语言 | Bioconductor | 服务器与Linux

cba8bbe4cbb3381171fbcde5cadf51fa.png


最近有粉丝留言,TCGA数据库发生更新,下载的数据和之前的不一样。比如转录组,之前是HTSeq流程的数据,现在是STAR-Counts的数据。具体的数据信息参考:
https://docs.gdc.cancer.gov/Data/Release_Notes/Data_Release_Notes/#data-release-320

6a2a605d0f935816b5a460409a7fdf5b.png

下载后的数据,打开是这样的。都放在了一个文件中。

ee1c954f113094283b169577ebab5fd1.png

这里分享一下怎么提取数据。

数据的下载和之前的教程一样【14-TCGA数据库下载整理】。只不过这里选择的是STAR-Counts了。加入购物车后下载下面的文件。

2a8606c40f572fcf74162e88e61add51.png

我先写2个函数,一个是处理读入json文件的函数,该文件包括文件信息和样本barcode的关系。

processingJsonFiles <- function(jsonFile){
  library(rjson)
  metadata_json_File <- fromJSON(file=jsonFile)
  json_File_Info <- data.frame(filesName = c(),TCGA_Barcode = c())
  for(i in 1:length(metadata_json_File)){
    TCGA_Barcode <- metadata_json_File[[i]][["associated_entities"]][[1]][["entity_submitter_id"]]
    file_name <- metadata_json_File[[i]][["file_name"]]
    json_File_Info <- rbind(json_File_Info,data.frame(filesName = file_name,TCGA_Barcode = TCGA_Barcode))
  }
  
  rownames(json_File_Info) <- json_File_Info[,1]
  json_File_Info <-json_File_Info[-1]
  return(json_File_Info)
}

jsonFile是下载的json文件的完整路径。

下面的函数是提取数据的函数。

getTCGA_RNAseq_data = function(filepath,jsonFileInfo,data_type){
  datamatrix = data.frame()
  for(wd in filepath){
    #每一个循环读取一个文件
    tempPath <- unlist(strsplit(wd,"/"))
    filename <- tempPath[length(unlist(strsplit(wd,"/")))]
    message(paste0("微信公众号:MedBioInfoCloud提示:正在读入文件:\n",filename))
    oneSampExp <- read.table(wd,comment.char = "#",header = T,sep = "\t")
    oneSampExp = oneSampExp[-c(1:4),]
    
    # 根据jsonFileInfo文件中文件名称与barcode对应关系,命名列名
    
    if(wd == filepath[1]){
      oneSampExp = oneSampExp[,c("gene_id","gene_name","gene_type",data_type)]
      colnames(oneSampExp) <- c("gene_id","gene_name","gene_type",jsonFileInfo[filename,"TCGA_Barcode"])
      datamatrix = oneSampExp
    }else{
      oneSampExp = oneSampExp[,c("gene_id",data_type)]
      colnames(oneSampExp) <- c("gene_id",jsonFileInfo[filename,"TCGA_Barcode"])
      datamatrix = merge(datamatrix,oneSampExp,by = "gene_id")
    }
  }
  return(datamatrix)
}

filepath 是下载的数据路径。通过dir等类似的函数获取的路径向量。比如,我们下载的数据是一个压缩包,解压后,将文件名重新命名为data。

filepath = dir(path = "./data",
               pattern = "counts.tsv$",
               full.names = T,
               recursive = T)

0f3cc163f92724d08afd018192e928af.png

jsonFileInfo是processingJsonFiles函数获取的结果。

data_type是下面中的一种。

  • "unstranded";

  • "stranded_first";

  • "stranded_second";

  • "tpm_unstranded";

  • "fpkm_unstranded";

  • "fpkm_uq_unstranded"

对应文件中的信息

8644fe6e720cdc1d7de08ad008d6e73f.png

下面就可以获取数据了,想要什么就获取什么。一般就是TPM和FPKM。

jsonFileInfo <- processingJsonFiles(jsonFile = "metadata.cart.2022-04-05.json ")
filepath = dir(path = "./data",
               pattern = "counts.tsv$",
               full.names = T,
               recursive = T)
dat = getTCGA_RNAseq_data(filepath =filepath,
                          jsonFileInfo = jsonFileInfo,
                          data_type = "fpkm_unstranded")
head(dat)[,1:5]

83463dfa820ade02637bdd7c6e9ebc1c.png

原来TCGA数据库的下载,使用TCGAbiolinks包是否还可以处理数据,我还没有试,但下载数据应该是没有问题的。

dbe3f022ebedcf612b1f8a3f3b02cceb.png


对于之前版本的数据。我之前文章【数据库数据 | TCGA数据库33种癌症的 transcriptome profiling (RNA-Seq) 数据】有已经处理好的数据,大家可以下载。

最后,有用的给个赞赏!

经    典    栏    目

ffe5bbb57c6879e94fd60e2053a75899.png 79cfdc28659d858d864a1b86aa114db3.png
5fa50036f5c8bc6b9b16b5380e7a53f7.png bdca5961b9c358efb97b52255e7d5b19.png
125862da012eabffd5a90b9dae1b89d2.png e082c26a037bb3be52585dc044b66c76.png
4f3c499ac516f7233ca4f8fa030c67eb.png ef993b3192e6a6d9657841f09f19579c.png
e38e6ca1cfd491543db1160a2e1b7c07.png cd02387d1dfc2100dc0f331f3367abb0.png
f2220d830008905a93298cc04f17272d.png a6f10c77b25be9e4124291eff7e52b77.png
27f38c9a19340e7b95075d5c0e72d08c.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022-TCGA数据库重大更新后RNASeq的STAR-Counts数据的下载与整理 的相关文章

  • 如何向 RetrievalQA.from_chain_type 添加内存?或者,如何向 ConversationalRetrievalChain 添加自定义提示?

    如何向 RetrievalQA from chain type 添加内存 或者 如何向 ConversationalRetrievalChain 添加自定义提示 在过去的两周里 我一直在尝试制作一个可以通过文档聊天的聊天机器人 因此不仅仅是
  • 在 Java 类型参数中, 仅意味着严格的子类型?或者 E 也足够了吗?

    在 Java 类型参数中 是否仅意味着严格的子类型 或者 E 也足够了吗 这并不严格 E就足够了
  • 是否可以使用 Javascript 读取 PHP 会话?

    我正在使用 cakePHP 1 26 在控制器中 我得到了一个包含以下代码行的函数 this gt Session gt write testing user this gt Session gt read testing 现在系统编写了一
  • Python itertools groupby 中令人不安的奇怪行为/错误?

    我在用itertools groupby解析一个短的制表符分隔的文本文件 文本文件有几列 我想做的就是对具有特定值的所有条目进行分组x在特定的列中 下面的代码对名为的列执行此操作name2 寻找变量中的值x 我尝试使用以下方法来做到这一点c
  • PHP 和 ADODB 连接失败

    我的任务是迁移服务器 这包括移动我没有构建的应用程序 其中一些具有 ADODB connection 我似乎无法在新服务器上修复它 我只得到空白屏幕 我已经对 ADODB connection 与 PHP 进行了相当广泛的研究 但找不到明确
  • 通过命令行参数更改默认的 ant 目标

    最近我被分配了一个任务 让ant能够为不同的环境构建war包 除了一项功能外 我几乎完成了 蚂蚁接受一个env参数类似 Denv DEV 并使用不同的配置文件来制作war包 但默认目标是start它将构建 部署并启动 tomcat 我不希望
  • ElasticSearch - 定义自定义字母顺序进行排序

    我正在使用 ElasticSearch 2 4 2 通过 Java 的 HibernateSearch 5 7 1 Final 我在字符串排序方面遇到问题 我的应用程序的语言有变音符号 它们有特定的字母顺序 订购 例如 直接在之后L 追随O
  • 使用 PHP 5.3 ?: 运算符

    有了这个测试页 page int GET page 1 echo page 我不明白页面未定义时得到的输出 Request Result page 2 2 page 3 3 page 1 error Undefined index page
  • Python 包安装:pip 与 yum,还是两者一起安装?

    我刚刚开始管理 Hadoop 集群 我们使用 Bright Cluster Manager 直至操作系统级别 CentOS 7 1 然后使用 Ambari 以及适用于 Hadoop 的 Hortonworks HDP 2 3 我不断收到安装
  • IntelliJ IDEA 中的项目语言级别是多少?

    我正在使用 Java 7 SDK 和 IntelliJ IDEA IDE java version 1 7 0 11 Java TM SE Runtime Environment build 1 7 0 11 b21 Java HotSpo
  • java.lang.Object#getClass() 的 Eclipse 外部空注释

    我正在使用 Eclipse Mars 中提供的外部空注释工具 我正在尝试添加外部注释java lang Object getClass 但似乎无法正确签名 我尝试过以下变体 NonNull Class getClass L1java lan
  • 为 SimpleXMLElements 数组编写 foreach 循环

    我正在使用 PHP 5 中的 XPath 来解析 XML 文档 我遇到的问题是写一个foreach正确显示以下数组 XML 文档示例 值1 值2 xmlfile link to file xml xmlRaw file get conten
  • 从 CodeIgniter 中的 URL 捕获哈希值 (#)

    我有一个看起来像的网址 mysite com transactions view 123456 效果很好 但是我的客户现在希望在 url 中包含 hashbang mysite com transactions view 123456 现在
  • 从命令行运行 PHP 脚本

    如何使用用于解析 Web 脚本的 PHP 解释器从命令行运行 PHP 脚本 我有一个phpinfo php从网络访问的文件显示German已安装 但是 如果我运行phpinfo php从命令行使用 php phpinfo php and g
  • PHP 与 .= 相反

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 有谁知道是
  • PHP邮件功能有时可以工作

    我正在编写一个脚本 需要通过PHP邮件功能发送电子邮件 如下所示 它在向 gmail 帐户发送电子邮件时有效 但在我的域中的帐户却无效 我们正在运行 Exchange 服务器 截至目前 电子邮件是从 www server 发送的 有谁知道
  • 混合两个列表的Pythonic方法[重复]

    这个问题在这里已经有答案了 我有两个长度为 n 和 n 1 的列表 a 1 a 2 a n b 1 b 2 b n 1 我想要一个函数作为结果给出一个列表 其中包含两个中的替代元素 即 b 1 a 1 b n a n b n 1 以下方法有
  • Python Pandas:向类 pandas.core.series.Series 添加方法

    我想在 Python 中处理时间序列 因此 Pandas 的 Series 类非常完美 并且有很多有用的方法 现在我想添加一些我需要但未实现的方法 例如 假设我有兴趣添加一个方法 该方法将两次一值附加到时间序列中 让我们调用该方法appen
  • php 崩溃后 mysql 表被锁定

    我有一个 MySQL DB 和一个 innoDB 表 我有一个 php 页面 用于连接 锁定表 进行一些更新 然后解锁表 PHP 页面通过 wamp 与 apache 一起提供 php页面将文件上传到数据库 我决定通过上传一个大小大于分配给
  • 所有语言中特殊字符的 Java 正则表达式

    在我的用户输入字段中 我想允许某些特殊字符 字母和数字的组合 我应该确保正则表达式模式在输入时允许此设置任何语言 基本上我构建的这个正则表达式也应该支持 unicode 表示 如何使用 Java 中的 Pattern 类来实现这一点 这里给

随机推荐

  • IO流介绍和异常处理

    IO流 1 1IO的分类 根据数据的流向分为 输入流和输出流 输入流 把数据从其他设备上读取到内存中的流 输出流 把数据从内存中写到其他设备上的流 根据功能类型分为 字节流和字符流 字节流 以字节为单位 读写数据的流 字符流 以字符为单位
  • tomcat无法启动,也没找到错误日志

    最近做项目的时候 遇到一个问题 项目启动不了 并且没有任何错误日志 1 bug描述 在做项目的时候 启动Tomcat时报错 2 bug信息 Connected to server 2017 11 16 09 28 36 551 Artifa
  • Python:用tkinter制做一个音乐下载小软件

    人生苦短 我用Python 平常我们下载的歌曲 都是各种妖魔鬼怪的格式横行 想下载下来用一下都不行 还只能在它的播放器内听 这谁受得了 学Python是用来干嘛的 当然是解决问题咯 于是我直接写了一手音乐下载软件 强制全部保存mp3 这样就
  • netty服务端的代码

    client code 客户端的ChannelHandler集合 由子类实现 这样做的好处 继承这个接口的所有子类可以很方便地获取ChannelPipeline中的Handlers 获取到handlers之后方便ChannelPipelin
  • Android应用开发(35)SufaceView基本用法

    Android应用开发学习笔记 目录索引 参考Android官网 https developer android com reference android view SurfaceView 一 SurfaceView简介 SurfaceV
  • c语言答案计算鸡兔同笼,鸡兔同笼-题解(C语言代码,思路清晰,简单易懂)

    解题思路 设鸡和兔子的数量为x y 则有x y n 2x 4y m 即可得x 4n m 2 y m 2n 2 只有x y为分数 或者为负数时 即为无解情况 详细代码如下 include int main double n m chicken
  • solc安装指定版本

    1 系统linux ubuntu20 04 2 solc安装指定版本 在编译的时候报错 Error Data location must be storage or memory for constructor parameter but
  • 残差神经网络(ResNet)

    残差神经网络的主要贡献是发现了退化现象 并针对退化现象发明了快捷连接 shortcut connection 极大的消除了深度过大的神经网络训练困难问题 1 神经网络越深准确率越高 假设一个层数较少的神经网络已经达到了较高准确率 可以在这个
  • TB-RK3399pro(Fedora28)图形界面与字符界面的切换

    TB RK3399pro Fedora28 使用的是LXDE图形界面 使用时默认打开7个屏幕 分别是tty1到tty6 加上一个没名字的tty7 LXDE为tty1号屏幕 若要切换至字符界面 使用快捷键 Ctrl Alt F2 F2也可以为
  • Wps ppt中无法打开超链接外部文件的解决办法。

    今天突然发现 在原来的Wps ppt中的所有超链接视频或照片都无法打开了 以下是解决办法 供参考 主要原因是Windows10系统升级出现的冲突问题 请卸载这两个补丁 KB5015807和KB5016066 或者卸载其中之一即可打开
  • Oracle 设定允许访问的IP地址

    开启按ip地址访问 修改 oracle10 app db network admin sqlnet ora 在文件最后加下列2行 vim sqlnet ora tcp validnode checking yes tcp invited n
  • 滑雪(记忆化搜索)

    题目 题解 记忆化搜索模板题 记忆化搜索的核心 本质是带剪枝的深搜 当某点的dp已赋值时 返回该值 其他情况进行深度搜索 模板 dfs u点 if u点的 dp 已经有值了 return u点的 dp 值 else 说明第一次到达u 则为u
  • Flume之:二、企业开发案例

    Flume之 二 企业开发案例 文章目录 Flume之 二 企业开发案例 三 企业开发案例 1 监控端口数据官方案例 2 实时读取本地文件到HDFS案例 3 实时读取目录文件到HDFS案例 4 flume监控Kafka gt Spark知识
  • QCC300x笔记(3) -- QCC3007开发调试经验

    哈喽大家好 这是该系列博文的第三篇 篇 lt lt 系列博文索引 快速通道 gt gt 写在前面 这篇博客主要记录 在使用QCC300x平台中所遇到的问题以及解决方法 会不定时更新 1 使用的堆栈空间大小超出或者全局变量超出 会报以下错误
  • R语言回归分析

    R语言回归分析 回归分析可以说是统计学的核心 它其实是一个广义的概念 通指那些用一个或多个预测变量 也称自变量或解释变量 来预测响应变量 也称因变量 效标变量或结果变量 的方法 通常 回归分析可以用来挑选与响应变量相关的解释变量 可以描述两
  • ChatGPT国产平替出现了:APP商店就能下载,还可给AI加人设,背后公司刚成立3个月...

    明敏 发自 凹非寺量子位 公众号 QbitAI ChatGPT太火爆谁不想上手试试 但注册复杂 服务器拥挤 着实有点麻烦 不过很快就有极客网友指路 说国内其实已经有类似的APP上线了 也是上知天文下知地理的那种 比如聊聊 三体 还会说自己喜
  • 股票与债券的区别与联系

    1 股票与债券的联系 2 股票与债券的区别
  • C# Debug.WriteLine 参数显示不对{0}

    最近使用这个函数调试 原始代码 StackTrace st new StackTrace new StackFrame true Debug WriteLine Stack trace for current level 0 st ToSt
  • PgAdmin中的数据库查询功能

    参考博客 https blog csdn net qq 28289405 article details 80249509 utm medium distribute pc relevant none task blog BlogComme
  • 2022-TCGA数据库重大更新后RNASeq的STAR-Counts数据的下载与整理

    TCGA GEO 文献阅读 数据库 理论知识 R语言 Bioconductor 服务器与Linux 最近有粉丝留言 TCGA数据库发生更新 下载的数据和之前的不一样 比如转录组 之前是HTSeq流程的数据 现在是STAR Counts的数据