新版TCGA的突变SNP数据添加临床信息

文章目录

    • 加载数据和R包
    • 读取数据

今天给大家演示下如何用自己的数据完成maftools的分析,主要是snp文件和临床信息的制作,其实很简单,但是网络上的教程都说的不清楚。

这次我们直接用之前TCGA-COAD和TCGA-READ合并后的数据演示,合并教程请看前一篇推文(公众号翻历史推文)

加载数据和R包

因为现在的TCGA数据库不能直接下载4种制作好的maf文件了,需要自己整理,如果你还不知道怎么整理,请看这篇内容(去翻推文)

load(file = "./TCGA-colrectum/colrectal_snp.rdata")library(maftools)

除此之外,我们还要给这个数据添加临床信息,也是只要先加载之前合并后的数据。

load(file = "./TCGA-colrectum/colrectal_clin.rdata")

maftools包添加临床信息的方式非常简单,只要两个文件都有Tumor_Sample_Barcode这一列且对得上就行。所以我们还要对snp文件和临床信息进行一些简单的处理。

  • 对于两个文件中的Tumor_Sample_Barcode这一列,我们只要前12个字符即可
  • 临床信息中有一些是Normal的样本,需要去除
  • 之选择在snp文件中有的样本
# 只要前12个字符
colrec_snp$Tumor_Sample_Barcode <- substr(colrec_snp$Tumor_Sample_Barcode,1,12)
head(colrec_snp$Tumor_Sample_Barcode)
## [1] "TCGA-D5-6530" "TCGA-D5-6530" "TCGA-D5-6530" "TCGA-D5-6530" "TCGA-D5-6530"
## [6] "TCGA-D5-6530"

如果你是像我这样直接用的TCGAbiolinks包下载的数据,那这个临床信息直接包含了sample_type这一列,不需要自己根据样本名确定到底是normal还是tumor,十分方便。

index <- unique(colrec_snp$Tumor_Sample_Barcode)# 只要肿瘤样本
clin_snp <- clin[!clin$sample_type == "Solid Tissue Normal", ]# 只要snp文件中有的样本
clin_snp <- clin_snp[clin_snp$patient %in% index, ]# clin中没有Tumor_Sample_Barcode这一列,直接添加一列
clin_snp$Tumor_Sample_Barcode <- clin_snp$patient

这样两个需要的文件就制作好了。

colrec_snp[1:5,1:5]
##   X1 Hugo_Symbol Entrez_Gene_Id Center NCBI_Build
## 1  1        AGRN         375790    BCM     GRCh38
## 2  1       ACAP3         116983    BCM     GRCh38
## 3  1      CALML6         163688    BCM     GRCh38
## 4  1       PRKCZ           5590    BCM     GRCh38
## 5  1      WRAP73          49856    BCM     GRCh38
clin_snp[1:5,1:5]
##                                                   barcode      patient
## TCGA-A6-5664-01A-21R-1839-07 TCGA-A6-5664-01A-21R-1839-07 TCGA-A6-5664
## TCGA-D5-6530-01A-11R-1723-07 TCGA-D5-6530-01A-11R-1723-07 TCGA-D5-6530
## TCGA-AA-3556-01A-01R-0821-07 TCGA-AA-3556-01A-01R-0821-07 TCGA-AA-3556
## TCGA-AA-3818-01A-01R-0905-07 TCGA-AA-3818-01A-01R-0905-07 TCGA-AA-3818
## TCGA-AA-3660-01A-01R-1723-07 TCGA-AA-3660-01A-01R-1723-07 TCGA-AA-3660
##                                        sample shortLetterCode
## TCGA-A6-5664-01A-21R-1839-07 TCGA-A6-5664-01A              TP
## TCGA-D5-6530-01A-11R-1723-07 TCGA-D5-6530-01A              TP
## TCGA-AA-3556-01A-01R-0821-07 TCGA-AA-3556-01A              TP
## TCGA-AA-3818-01A-01R-0905-07 TCGA-AA-3818-01A              TP
## TCGA-AA-3660-01A-01R-1723-07 TCGA-AA-3660-01A              TP
##                                       definition
## TCGA-A6-5664-01A-21R-1839-07 Primary solid Tumor
## TCGA-D5-6530-01A-11R-1723-07 Primary solid Tumor
## TCGA-AA-3556-01A-01R-0821-07 Primary solid Tumor
## TCGA-AA-3818-01A-01R-0905-07 Primary solid Tumor
## TCGA-AA-3660-01A-01R-1723-07 Primary solid Tumor

读取数据

两个文件都没有问题,直接读取即可。

colrec.maf <- read.maf(colrec_snp,clinicalData = clin_snp)
## -Validating
## --Removed 41322 duplicated variants
## -Silent variants: 67679 
## -Summarizing
## --Mutiple centers found
## BCM;WUGSC;BCM;WUGSC;BCM;BI--Possible FLAGS among top ten genes:
##   TTN
##   SYNE1
##   MUC16
## -Processing clinical data
## --Annotation missing for below samples in MAF:
##   TCGA-AA-3695
##   TCGA-AA-3967
##   TCGA-AF-2689
##   TCGA-AF-3914
##   TCGA-AG-3891
##   TCGA-AG-3906
##   TCGA-AZ-4681
## -Finished in 7.170s elapsed (6.480s cpu)

画图也是没有问题的,关于这个包的使用网络上教程非常多,也很全面,大家直接百度即可,这里就简单演示下。

plotmafSummary(colrec.maf)

plot of chunk unnamed-chunk-8

最常见的额瀑布图:

oncoplot(maf = colrec.maf,clinicalFeatures = c("ajcc_pathologic_stage","vital_status"),top = 30,sortByAnnotation=T)

image-20220820183535812

这个图其实就是Complexheatmap画出来的,之前的推文里详细介绍了这个R包,感兴趣的可以看一看:

xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxx

colrec.titv = titv(maf = colrec.maf, plot = FALSE, useSyn = TRUE)
#plot titv summary
plotTiTv(res = colrec.titv)

plot of chunk unnamed-chunk-10

比较有意思的棒棒糖图,这个图可以用trackviewer包画的更好看,下次介绍。

画出来简单,但是解释过程挺复杂的,涉及到下游氨基酸的变化,需要了解碱基变化命名规则和氨基酸变化命名规则才能知道具体意思。

lollipopPlot(colrec.maf,gene = "TP53",AACol = "HGVSp_Short" # 需要注意这一列)
## 8 transcripts available. Use arguments refSeqID or proteinID to manually specify tx name.
##    HGNC    refseq.ID   protein.ID aa.length
## 1: TP53    NM_000546    NP_000537       393
## 2: TP53 NM_001126112 NP_001119584       393
## 3: TP53 NM_001126118 NP_001119590       354
## 4: TP53 NM_001126115 NP_001119587       261
## 5: TP53 NM_001126113 NP_001119585       346
## 6: TP53 NM_001126117 NP_001119589       214
## 7: TP53 NM_001126114 NP_001119586       341
## 8: TP53 NM_001126116 NP_001119588       209
## Using longer transcript NM_000546 for now.

plot of chunk unnamed-chunk-11

拷贝数变异肯定也是没有问题的,也是用的之前合并后的数据,然后经过gistic处理,就得到了我们需要的文件,关于gistic这个软件的使用,大家百度即可~

all.lesions <- "./TCGA-colrectum/TCGA_COREAD_results/all_lesions.conf_90.txt"
amp.genes <- "./TCGA-colrectum/TCGA_COREAD_results/amp_genes.conf_90.txt"
del.genes <- "./TCGA-colrectum/TCGA_COREAD_results/del_genes.conf_90.txt"
scores.gis <- "./TCGA-colrectum/TCGA_COREAD_results/scores.gistic"colrec.gistic = readGistic(gisticAllLesionsFile = all.lesions, gisticAmpGenesFile = amp.genes, gisticDelGenesFile = del.genes, gisticScoresFile = scores.gis, isTCGA = TRUE)
## -Processing Gistic files..
## --Processing amp_genes.conf_90.txt
## --Processing del_genes.conf_90.txt
## --Processing scores.gistic
## --Summarizing by samplescolrec.gistic
## An object of class  GISTIC 
##           ID summary
## 1:   Samples     611
## 2:    nGenes    2791
## 3: cytoBands      88
## 4:       Amp   97455
## 5:       Del  313297
## 6:     total  410752

结果也是毫无问题!

准备自己的数据,就是如此的简单。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git专题:历史记录清理:保留代码并删除一年前的提交记录

29.1 克隆最后一个版本 我们在克隆一个使用了很久的 Git 仓库时候可能会发现耗费的时间非常长&#xff0c;这是因为 Git 会拉取所有的历史版本导致&#xff0c;如果我们想让 Git 在克隆代码的时候快一些&#xff0c;可以在git clone命令行后面加--depth1参数&#xff0c;这样 …

清除 input 的历史记录

问题描述 当input框输入数据时&#xff0c;会显示之前的输入的数据 原因 input的属性autocomplete默认为on&#xff0c;其含义代表让浏览器自动记录之前输入的值 解决办法 在input标签添加autocomplete"off"属性 <input type"text" autocomplete&qu…

git 清除所有历史记录

git 清除所有历史记录 有些时候&#xff0c;git 仓库累积了太多无用的历史更改&#xff0c;导致 clone 文件过大。如果确定历史更改没有意义&#xff0c;可以采用下述方法清空历史 先 clone 项目到本地目录 (以名为 mylearning 的仓库为例) $ git clone gitgitee.com:badboyco…

清除微信登录历史、自定义默认文件保存位置以及聊天记录还原

这篇文章的本意呢&#xff0c;其实对个人用户意义不大&#xff0c;因为桌面端微信本身提供了自定义用户数据文件存放路径的设置项&#xff0c;那么为什么要写出来这么一篇看似无用的教程来呢&#xff1f;是因为微信本身的特殊性&#xff0c;需要用户登录以后才可以修改设置&…

如何清除Git历史变更记录

以前公司的一个项目代码&#xff0c;从2014年一直存活到了2021年&#xff0c;目前应该还在被使用。整个代码将近2G&#xff0c;git文件极大&#xff0c;其中很大的一个原因是代码里存放过apk文件。如此大的项目&#xff0c;导致下载、发布很困难。 最初打算创建一个新的远程仓…

LLM时代NLP研究何去何从?一个博士生的角度出发

深度学习自然语言处理 原创作者&#xff1a;Winni 前言 最近&#xff0c;大语言模型&#xff08;LLMs&#xff09;在许多任务上表现出接近人类水平的性能&#xff0c;这引发了行业兴趣和资金投入的激增&#xff0c;有关LLMs的论文最近也层出不穷。 看起来&#xff0c;NLP领域似…

AIhelp智能问答

前言 2023年,科技圈里,持续爆火的科技应用,毫无疑问是生成式AI,chatGPT了的,之所以令人惊叹,正是因为它的强大 可以这么认为,chatGPT能够解决很多问题,尤其是问答,问题答案的搜索,远比百度,google要精准,方便得多 如何提出高质量的问题,写好一个promot提示词,尤为重要,提出问题…

RLHF-基于人类反馈的强化学习

RLHF 文章目录 RLHF强化学习基础回顾为什么要使用基于人类反馈的强化学习大纲RLHF的起源大预言模型中的RLHF案例 ChatGPT RLHF中的技术细节预训练语言模型训练奖励模型基于RL进行微调 RLHF 的未来 强化学习基础回顾 智能体通过采取行动与环境进行交互&#xff0c;并返回状态和奖…

GPT-4 API 接口调用及价格分析

GPT-4 API 接口调用及价格分析 15日凌晨&#xff0c;OpenAI发布了万众期待的GPT-4&#xff01;新模型支持多模态&#xff0c;具备强大的识图能力&#xff0c;并且推理能力和回答准确性显著提高。在各种专业和学术基准测试上的表现都媲美甚至超过人类。难怪OpenAI CEO Sam Altm…

穷人应该先买房还是先创业?

我个人建议先买房。既然是穷人&#xff0c;那么肯定资金不宽裕&#xff0c;这种情况下不应该是先买房来保障自己的生活&#xff0c;让自己过的安稳吗&#xff1f; 可能大家会问&#xff0c;为什么不能先创业呢&#xff1f;功成名就&#xff0c;买车买房不香吗&#xff1f;但是我…

穷人的新年红包系统,单节点 12W TPS

每年春节都是红包漫天飞&#xff0c;今年百度红包成为了最耀眼的明星。本届春晚红包活动&#xff0c;百度APP 最终累计互动量达到 208 亿次&#xff0c;百度 DAU 峰值突破 3 亿。面对这些数字&#xff0c;我不由感叹大厂技术的强大&#xff0c;机器资源的海量。作为一个穷人&am…

世界上到处都是有才华的穷人

我们每个人都自认为自己很有才华&#xff0c;不觉得自己哪方面比别人差什么&#xff0c;但为什么我们没有变更富有&#xff1f;是我们根本没有才华吗&#xff1f;如果有才华&#xff0c;我们自己真正出众的才华是什么&#xff1f;有几个人真正的清楚了解自己的才华是什么&#…

穷人实现阶级跨越有多难

经常看我们的读者应该知道&#xff0c;周末一般会发一些个人感悟或者分享一些我个人认为比较的文章或者观点&#xff0c;这样看起来公众号内容不是很冰冷&#xff0c;有温度&#xff0c;毕竟我们的生活中除了学习还有更多其他的思考。 周末在起点财经看到一篇文章&#xff0c;跟…

为什么穷人不敢创业?

对于“穷人大多不敢创业”的观点&#xff0c;持中性看法&#xff0c;不认为是对的&#xff0c;也不认为是错的。因为从身边的情况来讲&#xff0c;有钱人往往更加不敢创业&#xff0c;没钱的朋友也有很多喜欢“折腾”的。 创业&#xff0c;最重要的是看创业者的性格、行动&…

Numpy练习小例题(1)--穷人借钱

一个穷人到富人那里去借钱&#xff0c;原以为富人不愿意&#xff0c;哪知富人一口答应了下来&#xff0c;但提出了如下条件: 在30天中&#xff0c;富人第一天借给穷人1万元&#xff0c;第二天借给2万&#xff0c;以后每天所借的钱数都比上一天的多一万; 但借钱…

穷孩子就活该这样吗?10幅漫画扎破穷人真相

文/北妈、刘娜 阅读本文需要 3.0分钟 作者丨刘娜 来源 | 闲时花开&#xff08;ID&#xff1a;xsha369&#xff09; 最近看到一组漫画&#xff0c;真实到震撼人心。 它来自新西兰漫画家Toby Morris&#xff0c;这个漫画叫On a Plate——《盘子上》。 漫画描述了两个在不同环境中…

★为什么不要和“穷人”做朋友?

不要和“穷人”做朋友&#xff08;深度好文&#xff09; 他穷的&#xff0c;不仅仅是物质条件&#xff0c;他穷的&#xff0c;更是视野和格局。 01 我工作在三里屯&#xff0c;那里人多车多&#xff0c;所以停车是一个特别麻烦的事情。 我很少开车&#xff0c;但凡开车&#xf…

EleutherAI GPT-Neo: 穷人的希望

前面一篇blog finetune一个GPT3&#xff0c;借助openai的api finetune了一个GPT3&#xff0c;使用下来确实太贵&#xff0c;生成了1w条数据&#xff0c;花掉了60多美刀。肉痛&#xff0c;所以穷人只能想想穷人的办法&#xff0c;脑子就浮现出好朋友EleutherAI的GPT-Neo来。gith…

路径依赖:穷人很难逆袭突破的科学道理

路径依赖 为什么要了解路径依赖原理 马云说&#xff1a;“晚上想想千条路&#xff0c;早上醒走原路。“我们会看到一些社会现象&#xff0c;为什么穷人最终大部分还是穷人&#xff0c;即使告诉他方法&#xff0c;提供给他资金&#xff0c;最终还是穷人&#xff1f;为什么很多…

穷人跨越阶层有多难?

— 1 — 最难突破的就是父母 父母是每个人的起点&#xff0c;也是绝大部分人的天花板。 中国最近这代人大部分都比父母混的强&#xff0c;是因为父母被耽搁了&#xff0c;再往后几代&#xff0c;大家就能看出来我这句话的威力了。 美国英国德国那边的成熟型社会这一点非常明显&…