deconstructSigs-mutation signature看一下你的数据是什么“气质”的?

本文首发于“生信补给站” https://mp.weixin.qq.com/s/k7yzk9hPX3Bi-ohAo83ZYw

还有其他 R统计 绘图 生信的干货,也许有需要的呢?

Mutational Signatures 首次出现在2013年的nature文章Signatures of mutational processes in human cancer中(https://www.nature.com/articles/nature12477)。**将mutation位置加上前后一个碱基,构成三碱基模式,然后统计96(6 * 4 * 4)种突变组合的情况。

好奇为什么是96种的,可以查一下文献。

本文介绍如何利用deconstructSigs-R包进行mutation signature分析。

一 准备R包,数据

#install.packages("deconstructSigs") 
library(deconstructSigs)
#读入数据
head(sample.mut.ref)
Sample  chr      pos ref alt
1      1 chr1   905907   A   T
2      1 chr1  1192480   C   A
3      1 chr1  1854885   G   C
4      1 chr1  9713992   G   A
5      1 chr1 12908093   C   A
6      1 chr1 17257855   C   T

class(sample.mut.ref)
## [1] "data.frame"

只需要将自己的数据整理成以上五列(ID,chr,pos,ref,alt )信息即可,如果是TCGA中的MAF文件也是很好提取的。

二 mut.to.sigs.input构建输入文件

使用 mut.to.sigs.input 函数,构建计算signature的输入文件,得到每个样本的96种三碱基类型。

# Convert to deconstructSigs input
sigs.input <- mut.to.sigs.input(mut.ref = sample.mut.ref,
                               sample.id = "Sample",
                               chr = "chr",
                               pos = "pos",
                               ref = "ref",
                               alt = "alt")

注:这一步也许会提示没有XX包,按照要求下载指定R包即可(也许是数据库,耐心安装)。

#查看结果信息
dim(sigs.input)
#[1] 2 96  
head(t(sigs.input)) #只有两个sample:“1”和“2”
        1 2
A[C>A]A  9 1
A[C>A]C  7 1
A[C>A]G  5 0
A[C>A]T  7 0
C[C>A]A 10 3
C[C>A]C 18 2

以上就得到了sample.mut.ref文件中的每一个sample的96种三碱基类型的结果了。

三 推断signature的组成

# Determine the signatures contributing to the two example samples
sample_1 = whichSignatures(tumor.ref = sigs.input,
                          signatures.ref = signatures.cosmic,
                          sample.id = 1,
                          contexts.needed = TRUE,
                          tri.counts.method = 'default')

其中:

tumor.ref:每个sample的96种三碱基突变序列 signatures.ref:已知的signatures参考文件,可选signatures.nature2013和signatures.cosmic sample.id:对应tumor.ref文件中的样本名 contexts.needed :是否需要突变上下文 tri.counts.method:三核酸序列标准化方式,默认“default” 不进行标准化 ;或者选择exome,genome,exome2genome,genome2exome 来限定区域。

3.2 查看返回结果

#查看结果
class(sample_1)
#查看权重结果
sample_1$weights

#输出tumor的三碱基序列百分比
sample_1$tumor

#三碱基序列百分比 * 权重
sample_1$product

whichSignatures会输出5个元素的list文件:

  • weights -- data frame containing the weights assigned to each of the k signatures of the input signatures matrix

  • tumor -- matrix of the trinucleotide contexts for the tumor sample used as input

  • product -- matrix obtained when the tumor matrix is multiplied by the assigned weights

  • diff -- matrix representing the difference between the tumor matrix and product matrix

  • unknown -- numeric weight not assigned to any of the input signatures

3.3 指定signature权重

通过associated参数指定参与计算的signature

sample_1.associate = whichSignatures(tumor.ref = sigs.input, 
                          signatures.ref = signatures.cosmic,
                          sample.id = 1,
                          associated = c("Signature.1","Signature.22"),
                          contexts.needed = TRUE,
                          tri.counts.method = 'default')
sample_1.associate$weights

3.4 设定signature的阈值

通过signature.cutoff设定阈值,小于此值的为0

sample_1.cutoff = whichSignatures(tumor.ref = sigs.input, 
                          signatures.ref = signatures.cosmic,
                          sample.id = 1,
                          contexts.needed = TRUE,
                          signature.cutoff = 0.08 ,
                          tri.counts.method = 'default')

sample_1.cutoff$weights

四 plotSignatures 可视化

# Plot example
plot_example <- whichSignatures(tumor.ref = sigs.input,
                     signatures.ref = signatures.cosmic,
                     sample.id = 1)

# Plot output
plotSignatures(plot_example, sub = 'example')

查看sample1的signature的组成情况,就是上面plot_example$weight , plot_example$tumor , plot_example$product 的结果可视化。

参考资料:

https://github.com/raerose01/deconstructSigs

◆ ◆ ◆ ◆ ◆

精心整理(含图版)|你要的全拿走!有备无患 (R统计,ggplot2绘图,生信图形可视化汇总)

【觉得不错,右下角点个“在看”,期待您的转发,谢谢!】

deconstructSigs|探寻cosmic的独特“气质”-mutation signature !的更多相关文章

  1. 侣行APP

    本次要做的是团队共同完成一个项目.由队长组织,全体队员一起讨论分析并完成一款APP的需求调研,分析等工作. 1.团队介绍 队长:杨晓帅 队员                               ...

  2. 第5件事 做一个有taste的产品人

    1.taste的意思是品位,也就是说产品经理应该是一个有品位的产品人.什么叫品位呢?品位指的是对事物有分辨与鉴赏的能力.品位是形象的展示,品位是内在气质的复出,品位是人生价值的体验,品位是道德修养的内 ...

  3. Microbit蓝芽配对

    Microbit蓝芽配对 (Bluetooth Pairing) Microbit 可以像手机或平板与其他蓝芽装置一样,一旦做完第一次配对完就可以使用”蓝芽服务” paired with the mi ...

  4. CDN混战何去何从,史上最全分析

        近日,CDN市场风起云涌,十几年平稳的市场格局瞬时战火纷飞.一路从传统CDN即蓝汛.网宿为主的 "双雄争霸".演变为多家云CDN厂商阿里云.腾讯云.百度云等的降价大战.更有 ...

  5. 像艺术家一样思考 Think Like an Artist

    艺术家是如何获得灵感,如何找到自己的独特风格和主题的? 艺术家在绘画.写作.表演或歌唱前不会去征求谁的允许,而是随心而行 要想在数字时代获得满足感,我们需要变得有创造性 1.艺术家富有事业心 艺术家是 ...

  6. JavaScript 实现:输出斐波那契数列

    问渠那得清如许,为有源头活水来. 想要保持自己的技术活力,最有效的手段就是通过不断地输入来提供足够的养分.我们也不必刻意追求高深的或者新鲜的知识点,通过对一个基础问题的全方位多维度解析,同样也会收获不 ...

  7. Detailed Information for Outputted Files from Somatic Mutation Annotators(annovar 注释文件条目详细解释)

    CONTENTS *_annoTable.txt (ANNOVAR) *_annoTable.txt (SnpEff) *_genelist.txt (ANNOVAR & SnpEff) db ...

  8. somatic mutation体细胞变异检测文献分享--转载

    转载 :http://blog.sina.com.cn/s/blog_83f77c940102xuro.html Kalatskaya I, Trinh Q M, Spears M, et al. I ...

  9. 探寻 JavaScript 逻辑运算符(与、或)的真谛

    十二月已经过半,冬季是一个美妙的季节,寒冷的空气逼得人们不得不躲在安逸舒适的环境里生活.冬季会给人一种安静祥和的氛围,让人沉浸在其中,仿佛是一个旧的阶段的结束,同时也是一个新的阶段的开始.这么说来,西 ...

随机推荐

  1. Andorid开发中遇到的问题

    最近开始学习开发Android App,找了本教程,学了一些基本知识后,就开始着手做一个例子. 我始终觉得在做中学,可能会稍微快一点.很快,一个具有初步功能的App被我撸出来了. 在模拟器上运行,我发 ...

  2. 解放双手,在PC端进行Android真机调试

    scrcpy简介(拼写是scrcpy,非Python爬虫框架Scrapy) 简单地来说,scrcpy就是通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备.它可以通过 ...

  3. HashMap的源码学习以及性能分析

    HashMap的源码学习以及性能分析 一).Map接口的实现类 HashTable.HashMap.LinkedHashMap.TreeMap 二).HashMap和HashTable的区别 1).H ...

  4. linux 正确的关机流程

    查看系统的使用状态 1.使用who命令查看在线用户. 2.使用netstat -a或ss -tnl查看网络状态: 3.使用ps -aux 查看后台运行的程序. 通过上述操作可以了解系统目前使用状态,从 ...

  5. mybatis精讲(四)--ObjectFactory

    目录 前言 mybatis的ObjectFactory 源码 setProperties create instantiateClass 使用场景 # 加入战队 微信公众号 前言 ObjectFact ...

  6. mui开发:苹果手机自动全屏解决方案

    前一段时间,使用mui写app时,出现了苹果手机播放视频时,自动全屏的情况,并且无法点击控件,只能等到播放完毕后点击控件. 那么怎么解决这个问题呢,弟弟们请看我的下面. 1.在页面的video标签中, ...

  7. 程序员的算法课(19)-常用的图算法:最短路径(Shortest Path)

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...

  8. SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”

    1.问题描述: 我的项目是tcServer,在运行的之后出现如下错误: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBin ...

  9. EFK教程(4) - ElasticSearch集群TLS加密通讯

    基于TLS实现ElasticSearch集群加密通讯 作者:"发颠的小狼",欢迎转载 目录 ▪ 用途 ▪ ES节点信息 ▪ Step1. 关闭服务 ▪ Step2. 创建CA证书 ...

  10. 【JZOJ2019.10.07】模拟赛C组

    \(T1\) 题目描述&大意 贝西牛在每个点左右撞来撞去,不能出去 的情况下能活动(达到)的空间总共有多少? 思路 部分过程为: 反正就是能撞的撞 代码: