新版TCGA的突变数据SNP下载和整理

2023-11-17

关于TCGAbiolinks包的学习前面一共介绍了5篇推文。

今天继续学习如何使TCGAbiolinks下载和整理MAF格式的突变数据。

之前的TCGA的MAF文件是可以下载的,每个癌症包含4种软件得到的突变文件:

曾经TCGA可以下载4种MAF文件

后来就改版了,不让你随便下载了。但其实还是可以下载的,只不过没有那么多选择了!

现在的情况是每个样本都是一个单独的maf文件,需要下载后自己整理,就像整理表达矩阵那样。

MAF文件的下载

但是现在我们有TCGAbiolinks,根本不需要自己动手,直接三步走即可得到我们需要的MAF文件。

library(TCGAbiolinks)

query <- GDCquery(
    project = "TCGA-COAD", 
    data.category = "Simple Nucleotide Variation",
    data.type = "Masked Somatic Mutation",
    access = "open"
)
  
GDCdownload(query)
  
GDCprepare(query, save = T,save.filename = "TCGA-COAD_SNP.Rdata")

这样得到的这个Rdata文件其实是一个数据框,不过由于内容和之前的MAF文件一模一样,所以也是可以直接用maftools读取使用的。

maftools是一个非常强大的突变数据可视化和分析的R包,这个包在bioconductor上,需要的自行安装。

无缝对接maftools

由于我们在第一步已经下载过了,所以这里就不用下载了,直接加载保存好的数据。

我们以TCGA-COAD的数据作为演示。

library(maftools)

load(file = "./TCGA-SNP/TCGA-COAD_SNP.Rdata")

maf.coad <- data

简单看一下这个数据:

class(maf.coad)
## [1] "data.frame"

dim(maf.coad)
## [1] 252664    141

maf.coad[1:10,1:10]
##    X1 Hugo_Symbol Entrez_Gene_Id Center NCBI_Build Chromosome Start_Position
## 1   1        AGRN         375790    BCM     GRCh38       chr1        1046481
## 2   1       ACAP3         116983    BCM     GRCh38       chr1        1295539
## 3   1      CALML6         163688    BCM     GRCh38       chr1        1916980
## 4   1       PRKCZ           5590    BCM     GRCh38       chr1        2150972
## 5   1      WRAP73          49856    BCM     GRCh38       chr1        3635995
## 6   1        CHD5          26038    BCM     GRCh38       chr1        6142440
## 7   1      CAMTA1          23261    BCM     GRCh38       chr1        7663513
## 8   1      ERRFI1          54206    BCM     GRCh38       chr1        8014193
## 9   1      SLC2A7         155184    BCM     GRCh38       chr1        9022922
## 10  1         PGD           5226    BCM     GRCh38       chr1       10411462
##    End_Position Strand Variant_Classification
## 1       1046481      +        Frame_Shift_Del
## 2       1295539      +      Missense_Mutation
## 3       1916980      +                 Silent
## 4       2150972      +                 Silent
## 5       3635995      +                 Silent
## 6       6142440      +      Missense_Mutation
## 7       7663513      +                 Silent
## 8       8014193      +      Missense_Mutation
## 9       9022922      +      Missense_Mutation
## 10     10411462      +                 Silent

可以看到是一个data.frame类型的文件。

这个文件一共有252664行,141列,包含了gene symbol,突变类型,突变位置,导致的氨基酸变化等信息。

下面就直接用read.maf()函数读取即可,没有任何花里胡哨的操作!

maf <- read.maf(maf.coad)
## -Validating
## -Silent variants: 63597 
## -Summarizing
## --Mutiple centers found
## BCM;WUGSC;BCM;WUGSC;BCM;BI--Possible FLAGS among top ten genes:
##   TTN
##   SYNE1
##   MUC16
## -Processing clinical data
## --Missing clinical data
## -Finished in 6.000s elapsed (5.690s cpu)

然后就是进行各种可视化操作,毫无难度:

plotmafSummary(maf = maf, rmOutlier = TRUE, addStat = 'median', dashboard = TRUE)

是不是非常简单,虽然没有直接提供单个癌症的MAF文件,但是使用TCGAbiolinks后,会直接帮我们整理好,没有任何难度。

如果你由于各种原因不能使用这个包下载数据,那你可以直接用网页下载,然后按照我之前的推文进行整理:

xxxxxxxxxxxxx

但是这个方法用在表达谱数据是没有问题的,理论上用在其他类型的数据都是可以的,但是我并没有尝试过,欢迎大家使用后留言。

如果你在网络上看见一个叫xxx.pl的文件,并且需要付费获取,建议你不要花这个冤枉钱,不值那个价,希望大家多多擦亮眼睛!

如果你非要用手撕代码的方式自己整理,也是非常简单的,比整理转录组数据的表达矩阵简单100倍。

自己整理成MAF格式

首先你要去GDC TCGA的官网下载某个癌症的所有的maf文件,还是以TCGA-COAD为例,下载好之后是这样的:

TCGA-COAD-MaskedSomatic-Mutation

每个样本第一个文件夹,每个文件夹下面有一个.gz结尾的压缩文件,这个文件解压缩之后就是大家熟悉的.maf文件大,但是只是一个样本的~

压缩的maf文件

把这个.maf文件用VScode打开后是这样的:

单个样本的maf文件

不妨多解压几个打开看一看,都是一样的结构,所以就很简单了,把所有的文件读取进来然后直接rbind()即可。

但是在此之前我们可以先读取一个试试看:

# 路径必须正确
tmp <- read.table("G:/tcga/GDCdata/TCGA-COAD/harmonized/Simple_Nucleotide_Variation/Masked_Somatic_Mutation/007c2ae4-bbd2-42c6-ab67-bf016fbddb51/982004b5-52e1-4a69-97d3-25bdcb77b026.wxs.aliquot_ensemble_masked.maf.gz",
                  skip = 7, # 前面7行都不要
                  sep = "\t", # 必须指定
                  header = T # 有行名
                  )

tmp[1:10,1:8]
##    Hugo_Symbol Entrez_Gene_Id Center NCBI_Build Chromosome Start_Position
## 1        NOC2L          26155    BCM     GRCh38       chr1         945088
## 2         SDF4          51150    BCM     GRCh38       chr1        1217753
## 3      B3GALT6         126792    BCM     GRCh38       chr1        1233752
## 4         MIB2         142678    BCM     GRCh38       chr1        1629520
## 5         NADK          65220    BCM     GRCh38       chr1        1765325
## 6         GNB1           2782    BCM     GRCh38       chr1        1804562
## 7        PANK4          55229    BCM     GRCh38       chr1        2510063
## 8       PRXL2B         127281    BCM     GRCh38       chr1        2588386
## 9       PRDM16          63976    BCM     GRCh38       chr1        3412316
## 10      WRAP73          49856    BCM     GRCh38       chr1        3633442
##    End_Position Strand
## 1        945088      +
## 2       1217753      +
## 3       1233752      +
## 4       1629520      +
## 5       1765325      +
## 6       1804562      +
## 7       2510063      +
## 8       2588386      +
## 9       3412316      +
## 10      3633442      +                                                                        

非常顺利,和上面那个整理好的格式一模一样,唯一不同就是这个只是一个样本的。

下面我们就批量读取并合并就好了!

# 确定文件路径!
dir.path <- "G:/tcga/GDCdata/TCGA-COAD/harmonized/Simple_Nucleotide_Variation/Masked_Somatic_Mutation"

# 获取所有maf文件路径
all.maf <- list.files(path = dir.path, pattern = ".gz", 
                      full.names = T, recursive = T)

# 看看前3个
all.maf[1:3]
## [1] "G:/tcga/GDCdata/TCGA-COAD/harmonized/Simple_Nucleotide_Variation/Masked_Somatic_Mutation/007c2ae4-bbd2-42c6-ab67-bf016fbddb51/982004b5-52e1-4a69-97d3-25bdcb77b026.wxs.aliquot_ensemble_masked.maf.gz"
## [2] "G:/tcga/GDCdata/TCGA-COAD/harmonized/Simple_Nucleotide_Variation/Masked_Somatic_Mutation/010f9040-294d-4d14-a2b4-80d7a11625dd/5083b949-1bf3-4bc2-bf4f-f668f8a13792.wxs.aliquot_ensemble_masked.maf.gz"
## [3] "G:/tcga/GDCdata/TCGA-COAD/harmonized/Simple_Nucleotide_Variation/Masked_Somatic_Mutation/0148fff1-b8af-4bf0-8bcd-de1ff9f750f3/2c16cfe2-bf6d-4a39-af3a-9dfd5ada3e17.wxs.aliquot_ensemble_masked.maf.gz"

然后直接读取就行了,觉得慢可以用data.table::fread()加快速度。

maf.list <- lapply(all.maf, read.table, 
                   skip = 7, 
                   sep = "\t", 
                   header = T)

然后直接合并即可,如果不放心可以看看列数列名是不是一样,100%一样,我们就不看了。

# lapply(maf.list, dim)

maf.merge <- do.call(rbind,maf.list)

目前为止看似一切顺利,本以为即将结束,但是没想到横生枝节!

竟然读取不了,而且我们得到的这个maf.merge竟然只有137665行!和252664行的差距实在是太大了!

# 读取失败!
maf1 <- read.maf(maf.merge)

## -Validating
## --Removed 5 duplicated variants
## --Non MAF specific values in Variant_Classification column:
##   3UTR	DEL	T	T	-	novel		TCGA-A6-6781-01A-22D-1924-10	TCGA-A6-6781-10A-01D-1924-10

果然不检查数据是不行的!

然后只能回过头去看哪里出了问题,通过仔细使用VScode直接打开maf文件和我们读取的文件对比,发现了问题。

Variant_Classification这一列中,有一些3'UTR / 5'UTR这样的类型,但是在使用read.table()读取的时候竟然识别不出来!

小丑竟是我自己!

3'UTR识别出错

这才是正确的

所以直接导致遇到这个之后的所有行都是错位的,而且少了非常多行。

生气啊!

但是找到问题之后解决就非常简单,换个函数就行了,我们直接用data.table::fread()读取!

maf.list <- lapply(all.maf, data.table::fread, 
                   sep = "\t", 
                   header = T,
                   skip = 7 
                   )

maf.merge <- do.call(rbind,maf.list)

dim(maf.merge)
## [1] 252664    140

现在就和前面的数据一模一样了,252664行,140列(少了一列是表示来自于第几个样本,没有用)。

# 读取成功!
maf1 <- read.maf(maf.merge)
## -Validating
## -Silent variants: 63597 
## -Summarizing
## --Mutiple centers found
## BCM;WUGSC;BCM;BI;BCM;WUGSC--Possible FLAGS among top ten genes:
##   TTN
##   SYNE1
##   MUC16
## -Processing clinical data
## --Missing clinical data
## -Finished in 3.970s elapsed (3.730s cpu)
plotmafSummary(maf = maf1, rmOutlier = TRUE, addStat = 'median', dashboard = TRUE)

简单!下次说说这个maftools的使用。

觉得有用请多多转发~拒绝不必要的花钱!难道免费的不如付费的香??

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

新版TCGA的突变数据SNP下载和整理 的相关文章

  • 【生信原理】初探芯片表达谱分析

    初探芯片表达谱分析 文章目录 初探芯片表达谱分析 实验目的 实验内容 实验题目 实验过程 数据的获取 解压与读取 数据预处理 背景纠正 标准化和探针信号汇总等 数据过滤 探针过滤 探针注释 添加基因注释信息 limma差异分析 差异表达基因
  • R语言 数据处理(一)

    数据合并 提取及降维处理 install packages dplyr 数据处理包dplyr library dplyr name1 lt c Bob Mary Jane Kim name2 lt c Bob Mary Kim Jane w
  • R语言——数据排序

    R语言中涉及排序的基本函数有order sort和rank三个 下面看看它们的基本用法 x表示需要排序的数据 decreasing表示是否按降序排序数据 method表示所使用的排序算法 na last表示如何处理NA值 缺失值 若为FAL
  • R语言数据拆分

    博主的话 大家好 这里是bio 先赞后看养成习惯 还没关注的小伙伴点点关注不迷路 今天是南方的小年 祝福大家小年快乐 目录 博主的话 前言 一 split 函数 二 subset 函数 总结 前言 今天继续学习R语言 我们之前已经介绍过了数
  • r语言写九九乘法表并保存为txt文件

    r语言写九九乘法表并保存为txt文件 代码 for i in 1 9 for j in 1 i cat j x i i j t file 九九乘法表 txt append TRUE cat n file 九九乘法表 txt append T
  • R语言 Scale函数

    在我们做数据的时候 一个数据会有很多特征 比如在描述影响房价的因素 有房子面积 房间数量等 而不同的特征存在不同的量纲 为了消除量纲 数值差异等 我们就需要对数据进行中心化和标准化 那什么是中心化 什么是标准化呢 所谓中心化就是将数据减去均
  • R手册(Visualise)--GGally(ggplot2 extensions)

    本站已停止更新 查看最新内容请移至本人博客 Wilen s Blog 文章目录 GGally ggmatrix ggplot2矩阵 ggpairs ggplot2广义配对图 ggscatmat 纯粹定量变量的传统散点图矩阵 返回ggplot
  • 生信技能树R语言学习

    一 数据类型和向量 1 数据类型 1 1 判断数据类型class 1 2 按Tab键自动补全 1 3 数据类型的判断和转换 1 is 族函数 判断 返回值为TRUE或FALSE is numeric 123 is character a i
  • 如何编写R函数

    转载自http blog sciencenet cn blog 255662 501317 html R语言实际上是函数的集合 用户可以使用base stats等包中的基本函数 也可以自己编写函数完成一定的功能 但是初学者往往认为编写R函数
  • SQL中去掉字符串中最后一个字符(小技巧)

    长度减一就可以了 select left 字段名 len 字段名 1 from 表名
  • R语言绘图:实现数据点的线性拟合,进行显著性分析(R-squared、p-value)、添加公式到图像

    最近在做关于数据点线性拟合相关的研究 感觉R语言在这方面很方便 而且生成的图片很漂亮 所以在这里和大家分享一下代码 这是别人所绘制的拟合图像 很漂亮 自己也用iris鸢尾花数据集进行一个线性拟合看看 拟合线性模型最基本的函数就是lm 格式为
  • 【报错解决办法】bad restore file magic number (file may be corrupted) -- no data loaded

    今天在服务器上load一个Rdata的时候出现了这个报错 这还是第一次 之前load的都没问题 重装过一次R 上网一搜 发现是r的版本不对 检查之后发现确实如此 windows的R是4 1 2的版本 而linux上是3 6 于是我就重新在l
  • R语言实现文本情感分析

    在本博客中 我们将介绍如何使用R语言进行文本情感分析 我们将介绍如何处理文本数据 构建模型 训练模型并进行情感预测 这里我们将使用IMDb电影评论数据集进行示例分析 数据准备 首先 我们需要下载并加载IMDb电影评论数据集 可以从这里下载数
  • R语言【数据集的导入导出】

    目录 一 从键盘输入数据 二 函数方法读取 1 读取数据文件 2 从屏幕读取数据 1 scan 2 readline 3 读取固定宽度数据文件 三 读取csv文件 四 读取表格数据文件 五 从网络中读取表格或者CSV数据文件 一 从键盘输入
  • 使用R语言构建泊松回归模型

    使用R语言构建泊松回归模型 泊松回归是一种广泛应用于计数数据分析的回归模型 它是基于泊松分布的概率模型 用于描述事件在一定时间或空间范围内发生的次数 在本文中 我们将学习如何使用R语言构建泊松回归模型 并提供相应的源代码示例 1 数据准备
  • 统计学三大分布(卡方、t、F)即相应概率密度图的R语言实现

    三大统计分布 1 2 chi 2 2分布 设随机变量 X 1
  • R----stringr包介绍学习

    1 stringr介绍 stringr包被定义为一致的 简单易用的字符串工具集 所有的函数和参数定义都具有一致性 比如 用相同的方法进行NA处理和0长度的向量处理 字符串处理虽然不是R语言中最主要的功能 却也是必不可少的 数据清洗 可视化等
  • [R语言] R语言PCA分析教程 Principal Component Methods in R

    R语言PCA分析教程 Principal Component Methods in R 代码下载 主成分分析Principal Component Methods PCA 允许我们总结和可视化包含由多个相互关联的定量变量描述的个体 观察的数
  • R语言实现RMF模型

    RMF模型说明 RMF模型是客户管理中 常被用来衡量客户价值和客户创利能力的重要方法 它主要考量三个指标 最近一次消费 Recency 近期购买的客户倾向于再度购买 消费频率 Frequency 经常购买的客户再次购买概率高 消费金额 Mo
  • R语言与多元线性回归方程及各种检验

    R语言与多元线性回归方程及各种检验 文章目录 R语言与多元线性回归方程及各种检验 一 模型建立 二 多重共线性 1 产生的背景 2 多重共线性的检验 1 简单相关系数法 2 方差膨胀因子 vif 法 3 矩阵 X T X

随机推荐

  • 用顺序表实现图书信息管理(增删改查)---c语言版

    顺序表 概念 用一组地址连续的存储单元依次存储线性表的数据元素 这种存储结构的线性表称为顺序表 特点 逻辑上相邻的数据元素 物理次序也是相邻的 实现 用结构体定义一本图书 typedef struct int id char name 20
  • zotero+坚果云同步

    在使用Zotero整理文献的时候 软件自带的云同步有300M的上限 但软件还提供了Webdav同步的设置选项 在国内的众多云盘中 坚果云是为数不多甚至说唯一的支持Webdav的云盘 设置同步的流程如下 在网页端的坚果云登录之后 点击右上角的
  • 微信小程序常用表单控件

    感谢慕课网七月老师课程 如何一次性获取所有表单控件的值并且提交到服务器上去呢 from表单提交 使用form把所有子元素包含进去
  • Vue.js 学习笔记

    vue基础 显示js界面传过来的数据 v bind 绑定提示信息 v if 条件语句 v for 绑定数组数据 v on 添加一个事件监听器 通过它可以调用Vue实例中定义的方法 v model 表单输入和应用状态之间的双向绑定 Vue c
  • torch.nn.Module模块简单介绍

    torch nn是专门为神经网络设计的模块化接口 nn Module是nn中十分重要的类 在介绍该模块前 我们先看下pytorch官方对该模块的注释 根据官方注释我们了解到Module类是所有神经网络模块的基类 Module可以以树形结构包
  • 项目失败的思考

    1 鲁莽的追求新的开发框架 2 没有让组员提前学习必要的知识 3 低估项目难度 没有想到潜在的需求和技术难点 4 项目没有时间性的计划 5 任务没有很好的分割 1 项目争取阶段 做好demo 2 项目准备阶段 选择开发框架 让组员了解相关知
  • 【Python】快速处理:ModuleNotFoundError: No module named 'pygame'

    一 问题 在安装Python3 7之后 再安装Pygame却不能导入该包 报错如下 ModuleNotFoundError No module named pygame 尝试了好多方法 都不行 最后找到解决办法了 主要原因是安装的版本或者路
  • RabbitMq 报错An unexpected connection driver error occured ....Socket Closed

    An unexpected connection driver error occured java net SocketException Socket Closed at java net SocketInputStream socke
  • 自动zksync刷账户交互(附代码)

    自动化任务的 Python 代码 它使用 Selenium 库来控制浏览器 解锁小狐狸 task unlock metamask ads zk主网连接钱包 初始化 ZK主网任务1 转账 print 选择ZK主网任务1 转账 task zk
  • 微信到 Obsidian 2.0

    注意 新项目已发布 Obsidian 从本地到云端 obcsapi v3 0 下面文章属于 2 0 版本 新项目是 3 0 版本 请读者根据自身实际情况酌情选择 本文原文 https www ftls xyz posts wechat2s3
  • 基于改进YOLOv7和CRNN的管道裂缝检测系统(源码&教程)

    1 研究背景 随着现代城市的发展 城市规模不断扩大 居民越来越多 早期深埋于城市地下的排水管道己不堪重负 越来越引起人们的广泛关注 目前在工程应用领域 排水管道缺陷主要靠人工的肉眼识别 费时费力 主观误差大 因此开展排水管道缺陷智能识别研究
  • 常用运放电路分析

    1 运算放大器电路分析方法 由于运放的电压放大倍数很大 一般通用型运算放大器的开环电压放大倍数都在80 dB以上 而运放的输出电压是有限的 一般在 10 V 14 V 因此运放的差模输入电压不足1 mV 两输入端近似等电位 相当于 短路 开
  • 亚马逊云科技云技能学习

    文章目录 前言 一 云技能学习的优势 二 云技能学习的学习路径 三 云技能学习的未来前景 总结 前言 亚马逊云科技 Amazon Web Services AWS 作为全球领先的云计算服务提供商 提供了众多创新的云技术解决方案 在这些方案中
  • [转载]一分钟讲明白区块链数据不可篡改和51%攻击原理

    转载 一分钟讲明白区块链数据不可篡改和51 攻击原理 如果你回家过年需要向亲戚朋友讲区块链 这篇文章能让你一分钟讲明白区块链最大的优点 数据不可篡改 图片发自简书App 第1章 不可篡改的数据库其实并不新鲜 我们都有微信群 微信群的聊天记录
  • Swing组件中面板(JPanel)的使用

    JPanel组件定义面板实际上是一种容器组件 用来容纳各种其他轻量级组件 此外 用户还可以用这种面板容器绘制图形 JPanel的构造方法如下 JPanel 创建具有双缓冲和流布局 FlowLayout 的面板 JPanel LayoutMa
  • SadTalker 让图片说话

    参考 https github com OpenTalker SadTalker 其他类似参考 https www d id com 输入图片加音频产生2d视频 安装使用 1 拉取github 下载对应安装库 2 下载对应模型baidu网盘
  • Windows如何开机自动全屏打开chrome浏览器

    创建一个bat文件 C Program Files Google Chrome Application chrome exe explicitly allowed ports 10080 18080 start fullscreen url
  • 【嵌入式】用STM32F103c8t6芯片完成对SD卡的数据读写

    目录 一 SD卡协议 1 SD卡的体系架构 2 SD卡寄存器列表 3 SD卡初始化 SPI模式 4 SD卡读写 SPI模式 二 STM32CubeMX 三 Keil代码修改 四 电路连接 五 烧录运行结果 六 心得体会 七 参考链接 一 S
  • Linux tcpdump抓包命令

    1 tcpdump抓包命令 c 指定抓取包的数量 即最后显示的数量 i 指定tcpdump监听的端口 未指定 选择系统中最小的以配置端口 i any 监听所有网络端口 i lo 监听lookback接口 nn 对监听地址以数字方式呈现 且对
  • 新版TCGA的突变数据SNP下载和整理

    关于TCGAbiolinks包的学习前面一共介绍了5篇推文 今天继续学习如何使用TCGAbiolinks下载和整理MAF格式的突变数据 之前的TCGA的MAF文件是可以下载的 每个癌症包含4种软件得到的突变文件 后来就改版了 不让你随便下载