R包——Mutational Pattern

介绍

背景介绍

细胞的基因组不断受到内源性和环境性dna损伤的威胁,例如紫外线和自发反应。为了维护它们的基因组完整性,细胞利用各种机制修复受损的dna。无论是在复制之前不正确地修复还是未修复,这些都会导致突变被整合到基因组中。每一个突变过程都会留下一个不同的基因组标记。例如,紫外光优先诱导cc>tt。二核苷酸替换,而5-甲基胞嘧啶的自发脱氨导致cpg位点的c>t取代,因此,突变模式可以用来推断哪些变异。

在过去的几年里,对不同人类癌症类型的肿瘤基因组数据的大规模分析揭示了30种突变模式,这些所谓的“突变信号”的特征是碱基替代类型的特定贡献。在一定的序列背景下,每个突变特征被认为反映了单一的突变机制。然而,大多数突变特征的病因目前尚不清楚。为了在功能上将突变特征与生物过程联系起来,评估这些突变特征在暴露于特定诱变剂或细胞的细胞中的贡献,Mutational Pattern的R包提供了一套易于使用的工具集,用于在肿瘤样本或DNA修复缺陷细胞的碱基替换目录中描述和可视化突变模式。软件包涵盖广泛的模式,包括:突变特征、转录链偏倚、基因组分布和与基因组特征的关联,这对于研究突变过程的活动具有共同的意义。重新提取突变特征,并推断先前识别的突变特征的贡献。

方法介绍

该软件包包涵:

(1)新突变特征的提取
(2)对用户指定的突变特征的贡献进行了量化

虽然第一种方法可以用于识别新的突变特征,但这只是有意义的。对于具有大量突变谱样本的数据集,由于它依赖于非负矩阵分解的降维方法。第二种方法可以用来研究单个样本中的突变过程,并通过评估它们在不同系统或不同条件下的贡献来进一步表征先前识别的突变特征。用于探讨其他类型的模式,如转录链不对称、基因组分布以及与染色质组织等(可公开获得的)注释的关联。这些特征对于识别活跃的突变诱导过程和参与特定的DNA修复途径。例如,基因区域存在转录链偏差,这可能意味着活性。

任何一组基本替换调用都可以从VCF文件中导入,基因组构建一个突变矩阵,计数所有96个可能的三核苷酸变化。此外,还包括转录链等其他特征,形成192个特征计数矩阵(96个三核苷酸*2个链)。为此,可以从ucsc中检索到的基因定义用于确定基因中的碱基替换是位于转录的链上还是位于未转录的链上。

下载安装

下载地址: https://github.com/CuppenResearch/MutationalPatterns

数据

要执行突变模式分析,需要加载一个或多个vcf文件,其中包含单核苷酸变异调用和相应的参考基因组。

列出参考基因组

 library(BSgenome)
 head(available.genomes())
[1] "BSgenome.Alyrata.JGI.v1" "BSgenome.Amellifera.BeeBase.assembly4"
[3] "BSgenome.Amellifera.UCSC.apiMel2" "BSgenome.Amellifera.UCSC.apiMel2.masked"
[5] "BSgenome.Athaliana.TAIR.04232008" "BSgenome.Athaliana.TAIR.TAIR9"

#Download and load your reference genome of interest
ref_genome <- "BSgenome.Hsapiens.UCSC.hg19"
library(ref_genome, character.only = TRUE)

加载样本数据

library(MutationalPatterns)
vcf_files <- list.files(path="./data",pattern = ".samtools.snp.reformated.vcf", full.names = TRUE)
sample_names <- c( "YDY019_OA","YDY019_PC","YDY022_OA","YDY022_PC","YDY069_OA","YDY069_PC","YDY106_OA", "YDY106_PC","YDY124_OA","YDY124_PC","YDY125_OA","YDY125_PC")
vcfs <- read_vcfs_as_granges(vcf_files, sample_names, ref_genome)

#定义样本上的相关元数据
tissue <- c("YDY019_OA","YDY019_PC","YDY022_OA","YDY022_PC","YDY069_OA","YDY069_PC","YDY106_OA", "YDY106_PC","YDY124_OA","YDY124_PC","YDY125_OA","YDY125_PC")

画图

突变谱显示了碱基替换目录中每个突变类型的相对贡献。图的谱函数绘制了6个碱基替换类型中的每一个在所有样品上的平均相对贡献。误差条表示所有样品的标准偏差。指示突变的总数

type_occurrences <- mut_type_occurrences(vcfs, ref_genome)

p1 <- plot_spectrum(type_occurrences)
p2 <- plot_spectrum(type_occurrences, CT = TRUE)
p3 <- plot_spectrum(type_occurrences, CT = TRUE, legend = FALSE)
library("gridExtra")
grid.arrange(p1, p2, p3, ncol=3, widths=c(3,3,1.75))

划分每个样本组,例如分别绘制每个组织的光谱

p4 <- plot _ spectrum(type _ occurrences, by = tissue, CT = TRUE, legend = TRUE)
#自定义颜色 
palette <- c("pink", "orange", "blue", "lightblue", "green", "red", "purple")
p5 <- plot _ spectrum(type _ occurrences, CT=TRUE, legend=TRUE, colors=palette)
grid.arrange(p4, p5, ncol=2, widths=c(4,2.3))

Mutational signatures

Mutational signatures突变特征被认为代表了突变过程,其特征是96种碱基替换类型对某一序列的特定贡献。突变特征可以从你的突变计数矩阵中提取出来,并使用非负矩阵因式分解(Nmf)。nmf中的一个关键参数是因式分解秩,即突变特征的数量。使用nmf包确定最优的因式分解等级。

mut_mat <- mut_mat + 0.0001
estimate <- nmf(mut_mat, rank=2:5, method="brunet", nrun=10, seed=123456)
plot(estimate)

使用extract _ signatures从具有ExtractSignals的突变计数矩阵中提取2个突变特征

#rank值指定特征数量
#对于较大的数据集,通过更改nrun参数以实现稳定性和避免局部极小值来执行更多的迭代是明智的
nmf_res <- extract_signatures(mut_mat, rank = 2, nrun = 10)
colnames(nmf_res$signatures) <- c("Signature A", "Signature B")
rownames(nmf_res$contribution) <- c("Signature A", "Signature B")
plot_96_profile(nmf_res$signatures, condensed = TRUE)
pc1 <- plot_contribution(nmf_res$contribution, nmf_res$signature,mode = "relative")
pc2 <- plot_contribution(nmf_res$contribution, nmf_res$signature,mode = "absolute")
grid.arrange(pc1, pc2)

#X和Y轴翻转
plot_contribution(nmf_res$contribution, nmf_res$signature,mode = "absolute", coord_flip = TRUE)

每个样本的每一个特征的相对贡献也可以被绘制为一个热图,它可能比堆叠的树刺图更容易解释和比较。这些样本可以根据它们的欧几里得dis-tance进行分层聚类。这些特征可以按照用户指定的顺序绘制。

#将特征贡献绘制为具有样本聚类树状图和指定特征顺序的热图
pch1 <-plot_contribution_heatmap(nmf_res$contribution,sig_order = c("Signature B", "Signature A"))
pch2 <- plot_contribution_heatmap(nmf_res$contribution, cluster_samples=FALSE)
grid.arrange(pch1, pch2, ncol = 2, widths = c(2,1.6))

将重构的突变剖面与原始突变剖面进行比较

plot_compare_profiles(mut_mat[,1],nmf_res$reconstructed[,1],profile_names = c("Original", "Reconstructed"),condensed = TRUE)

根据COSMIC特征与平均链接的相似性对COSMIC特征进行分级聚类

sp_url <- paste("http://cancer.sanger.ac.uk/cancergenome/assets/","signatures_probabilities.txt", sep = "")
cancer_signatures = read.table(sp_url, sep = "\t", header = TRUE)
#将突变类型的顺序与变异模式标准相匹配
new_order = match(row.names(mut_mat), cancer_signatures$Somatic.Mutation.Type)
# Reorder cancer signatures dataframe
cancer_signatures = cancer_signatures[as.vector(new_order),]
# Add trinucletiode changes names as row.names
row.names(cancer_signatures) = cancer_signatures$Somatic.Mutation.Type
# Keep only 96 contributions of the signatures in matrix
cancer_signatures = as.matrix(cancer_signatures[,4:33])
hclust_cosmic = cluster_signatures(cancer_signatures, method = "average")
# store signatures in new order
cosmic_order = colnames(cancer_signatures)[hclust_cosmic$order]
plot(hclust_cosmic)

计算突变剖面与 COSMIC特征之间的成对余弦相似性

cos_sim_samples_signatures = cos_sim_matrix(mut_mat, cancer_signatures)
# Plot heatmap with specified signature order
plot_cosine_heatmap(cos_sim_samples_signatures,col_order = cosmic_order,cluster_rows = TRUE)

除了重新提取特征外,还可以量化任何一组特征对样本突变轮廓的贡献。这种独特的特性特别适用于小群体或单个样本的突变特征分析,但也可以将自己的发现与已知的签名和已发表的发现联系起来。FIT_to_Signals函数可以找到突变签名的最佳线性组合,这是大多数突变签名的最佳线性组合。通过求解一个非负最小二乘约束问题来构造变异矩阵。

fit_res <-fit_to_signatures(mut_mat, cancer_signatures)

# Select signatures with some contribution
select <- which(rowSums(fit_res$contribution) > 10)
# Plot contribution barplot
plot_contribution(fit_res$contribution[select,],cancer_signatures[,select],coord_flip = FALSE,mode = "absolute")

用样本聚类绘制样本中癌症特征的相对贡献图

plot_contribution_heatmap(fit_res$contribution,cluster_samples = TRUE,method = "complete")

参考

http://bioconductor.org/packages/release/bioc/vignettes/MutationalPatterns/inst/doc/Introduction_to_MutationalPatterns.pdf
https://www.biorxiv.org/content/biorxiv/early/2016/08/30/071761.full.pdf

转载请注明出处
简书作者:ODDXIX

微信公众号:oddxix

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容

  • 8种特殊建库测序 8种特殊建库测序 1. RNA-seq 2. 外显子测序 3. small RNA-seq 4....
    wangchuang2017阅读 13,035评论 2 92
  • 非常优秀的研究总结,值得学习领会和思考。因为字数太多,可以去作者的博文地址http://www.huangshuj...
    王诗翔阅读 4,157评论 1 24
  • 花香似妻美笑颜,倾城倾国瑞繁景。 春华怡果熟将临,一生爱你聚真情。
    春城怡景阅读 255评论 0 2
  • 洗澡总是我灵感迸发的时刻… 今天突然想到一个词:职业交易手, 我想成为这样的人
    文露婷阅读 271评论 0 0
  • 国庆完成了几张少女(狐狸)怀春图插画手绘 除第一张外,其他均为原创 1 和心上人一起看日出 图修改自权游插画 2 ...
    蘅春水生阅读 293评论 3 6