溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用R包SomaticSignatures進(jìn)行denovo的signature推斷

發(fā)布時(shí)間:2021-07-12 12:03:17 來源:億速云 閱讀:476 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“如何使用R包SomaticSignatures進(jìn)行denovo的signature推斷”,在日常操作中,相信很多人在如何使用R包SomaticSignatures進(jìn)行denovo的signature推斷問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用R包SomaticSignatures進(jìn)行denovo的signature推斷”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!



 

首先閱讀 SomaticSignatures 包的文檔

原文在:http://bioconductor.org/packages/release/bioc/vignettes/SomaticSignatures/inst/doc/SomaticSignatures-vignette.html

library(SomaticSignatures)
library(SomaticCancerAlterations)
library(BSgenome.Hsapiens.1000genomes.hs37d5)
sca_metadata = scaMetadata()

sca_metadata
sca_data = unlist(scaLoadDatasets())
sca_data$study = factor(gsub("(.*)_(.*)", "\\1", toupper(names(sca_data))))
sca_data = unname(subset(sca_data, Variant_Type %in% "SNP"))
sca_data = keepSeqlevels(sca_data, hsAutosomes(), pruning.mode = "coarse")

sca_vr = VRanges(
  seqnames = seqnames(sca_data),
  ranges = ranges(sca_data), 
  ref = sca_data$Reference_Allele,
  alt = sca_data$Tumor_Seq_Allele2, 
  sampleNames = sca_data$Patient_ID,
  seqinfo = seqinfo(sca_data), 
  study = sca_data$study)

sca_vr

 

可以看到,這個(gè)包,需要的是sca_data這個(gè)變量里面各個(gè)列,用到了的就是 c( "Sample","chr", "pos","ref",  "alt")  這些列。所以我們自己的somatic突變信息,也需要制作成為這5列。

 

把508個(gè)ESCC的WGS數(shù)據(jù)的somatic突變制作成為 SomaticSignatures 包的輸入數(shù)據(jù)

在文章主頁下載;https://static-content.springer.com/esm/art%3A10.1038%2Fs41422-020-0333-6/MediaObjects/41422_2020_333_MOESM23_ESM.csv

這個(gè)是大于500M的CSV文件,下載后修改名字,然后讀入R,并且制作成為 SomaticSignatures 包的輸入數(shù)據(jù)的代碼如下:

library(data.table)
b=fread('../maf.csv',data.table = F)
b[1:4,1:3]
colnames(b)
mut=b
table(mut$Variant_Type)
mut=mut[mut$Variant_Type=='SNP',]
a=mut[,c(10,2,3,8,9)]
colnames(a)=c( "Sample","chr", "pos","ref",  "alt") 
alls=as.character(unique( a$Sample)) 
a$study=a$Sample
head(a)
 

雖然我們使用了 data.table 包的 fread函數(shù),可以超級快的讀入大于500M的CSV文件,但是也需要一點(diǎn)時(shí)間啦。

制作的a這個(gè)變量,如下:

> head(a)
           Sample  chr     pos ref alt            study
2 FP1705100059DN01 chr1 4870770   G   T FP1705100059DN01
3 FP1705100059DN01 chr1 5111686   C   T FP1705100059DN01
4 FP1705100059DN01 chr1 5116099   C   T FP1705100059DN01
5 FP1705100059DN01 chr1 5151401   C   T FP1705100059DN01
6 FP1705100059DN01 chr1 5151403   G   C FP1705100059DN01
7 FP1705100059DN01 chr1 5217189   G   A FP1705100059DN01
 

一個(gè)很普通的數(shù)據(jù)框而已,并不是SomaticSignatures 包的文檔介紹sca_data這個(gè)變量的類型,但是該有的5列信息是有的。

sca_vr = VRanges(
  seqnames =  a$chr ,
  ranges = IRanges(start = a$pos,end = a$pos+1),
  ref = a$ref,
  alt = a$alt,
  sampleNames = as.character(a$Sample),
  study=as.character(a$study))
sca_vr
     

提取突變上下文已經(jīng)計(jì)算96突變形式的比例

在SomaticSignatures 包已經(jīng)是封裝好的函數(shù),很容易就可以獲取,而且速度超級快哦,代碼如下:


# 突變位點(diǎn)坐標(biāo)基于hg19,從基因組根據(jù)坐標(biāo)獲取堿基上下文
sca_motifs = mutationContext(sca_vr, BSgenome.Hsapiens.UCSC.hg19)
head(sca_motifs)
# 對每個(gè)樣本,計(jì)算 96 突變可能性的 比例分布情況
escc_sca_mm = motifMatrix(sca_motifs, group = "study", normalize = TRUE)
dim( escc_sca_mm )
table(colSums(escc_sca_mm))
head(escc_sca_mm[,1:4])
     

使用NMF確定denovo的signature數(shù)量

我們都知道,sanger研究所科學(xué)家【1】提出來了腫瘤somatic突變的signature概念 ,把96突變頻譜的非負(fù)矩陣分解后的30個(gè)特征,在cosmic數(shù)據(jù)庫可以學(xué)習(xí)它。不同的特征有不同的生物學(xué)含義【2】,比如文章【3】 就是使用了 這些signature區(qū)分生存!主要是R包deconstructSigs可以把自己的96突變頻譜對應(yīng)到cosmic數(shù)據(jù)庫的30個(gè)突變特征。

  • 【1】https://software.broadinstitute.org/cancer/cga/msp
  • 【2】https://en.wikipedia.org/wiki/Mutational_signatures
  • 【3】https://www.nature.com/articles/s41586-019-1056-z

但是我們現(xiàn)在要自己推斷denovo的signature,所以使用SomaticSignatures 包的identifySignatures函數(shù)哦,代碼如下:

# 預(yù)先設(shè)定待探索的 signature 數(shù)量范圍,文章最后選定11個(gè)
if(F){
  n_sigs = 5:15
  gof_nmf = assessNumberSignatures(escc_sca_mm , n_sigs, nReplicates = 5) 
  save(gof_nmf,file = 'gof_nmf.Rdata')
}
load(file = 'gof_nmf.Rdata')
# 這個(gè) assessNumberSignatures 步驟耗時(shí)很嚴(yán)重。
plotNumberSignatures(gof_nmf)
# 根據(jù)這個(gè)圖表,選擇11個(gè) signature 
sigs_nmf = identifySignatures(escc_sca_mm  ,
                             11, nmfDecomposition)
save(escc_sca_mm,sigs_nmf,file = 'escc_denovo_results.Rata')
     

繪制自己NMF確定denovo的11個(gè)signatures的96突變頻譜

代碼如下:

load(file = 'escc_denovo_results.Rata')
str(sigs_nmf)  
library(ggplot2)
plotSignatureMap(sigs_nmf) + ggtitle("Somatic Signatures: NMF - Heatmap")
plotSignatures(sigs_nmf, normalize =T) + 
  ggtitle("Somatic Signatures: NMF - Barchart")  +
  facet_grid(signature ~ alteration,scales = "free_y") 
 

出圖如下:

如何使用R包SomaticSignatures進(jìn)行denovo的signature推斷

到此,關(guān)于“如何使用R包SomaticSignatures進(jìn)行denovo的signature推斷”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI