-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于sig fit 和 sig denovo的问题 #396
Comments
应该是你这里的数据不一致导致的,Xena 的数据只包含 coding 区域,要少很多的。
如果你想要进一步验证的话,可以下载原始的文件 https://dcc.icgc.org/api/v1/download?fn=/PCAWG/consensus_snv_indel/final_consensus_passonly.snv_mnv_indel.icgc.public.maf.gz 然后选择对应的样本进行查看。 另外可以使用模拟数据确定这个函数的有效性: library(sigminer)
data("simulated_catalogs")
mat = t(simulated_catalogs$set1) # 由10个COSMIC signature随机组合模拟生成的矩阵
sig = sig_extract(mat, n_sig = 10, nrun = 30, cores = 4)
sig$Exposure
fit_expo = sig_fit(t(mat), sig = sig$Signature)
fit_expo
for (i in 1:ncol(fit_expo)) {
print(cor(sig$Exposure[, i], fit_expo[, i]))
}
输出:
|
@KirsieMin 有重复和解决吗? |
我关闭了。如果有问题请重新开启。 |
@KirsieMin 你能否尝试一部分少量数据是否会报错? 这个如果输入数据没有问题的话,原因可能是基因组版本不完全匹配。例如,有一个突变是chr1:100,而基因组chr1是从200开始的。 我猜测可能是下面这段代码哪里出问题了 sigminer/R/generate_matrices.R Lines 21 to 33 in d401688
你能否具体看下是哪一行报错,内部用for循环找出一个具体报错的变异?这样我这边再看看能否调试和解决下。 |
目前尝试了随机取了十个样本的突变数据以及之前报错样本的突变数据进行了重新tally,发现成功运行。==说明不是报错数据的问题,这还需要进行基因组版本的测试嘛?或许可以尝试将基因组版本换成非UCSC的版本进行尝试? |
@KirsieMin 最细致地处理是使用icgc/文献使用的参考基因组文件。 |
目前找到icgc参考基因组信息网页如下: |
@KirsieMin 目前是不行,只能尝试自建有一个BSGenome对象(包)看看。
后面我有空看看能不能直接支持fasta文件作为输入。 |
大神好!目前进行了两方面的尝试: 2.我将之前的报错样本突变单独tally(并无报错),与其他样本tally数据合并,继续进行fit。对比denovo sigs和使用三种不同方法(SA还在处理)的fit sigs ,使用了包中cosine进行了重构矩阵相似性比较: |
关于第1点,我目前稍微有点糊涂。如果你报错的样本sig_tally成功的话,但全部数据又报错,那很可能报错的样本找错了。
关于第2点我看到的是本身跟这个问题没有关系。这里你说明的是不同的方法结果不太一样,我不清楚你的操作,但这种对比方法发现结果不一样是合理的。而这里的问题最核心的关注点在于你最开始说的:
我还不清楚你是否确定该问题存在,还是说可以重复,已经解决了? 再回到第一个问题,你能否抽取能重复该问题的最小数据(比如一个样本的突变数据,你用它运行sig_tally,发现能够重复第一个问题的报错),然后放到这里或者邮件给我[email protected],我这边有空可以仔细检查和调试下源代码。 |
1.我尝试抽取了该问题的最小数据(1,10,20,100,500,1000,1500,1950)发现1950个样本(全部数据)的时候才报错==,目前找的报错样本依旧是"a08ec059-7592-4698-bb45-25a9c3680c23"。样本数据为https://www.jianguoyun.com/p/DfZ5xP8Qs6rSCBiM6K8E(有效期为五天)。另外我同样尝试了hg38,发现其他报错: |
第1点我有空深入研究下再回你哈,最近有点忙,这周不一定能弄好。 关于第2点,我觉得你的处理可能有点问题。Similarity是用来看不同signature(组成)的相似情况,如果你想要计算exposure的一致性,在固定好signature,计算的exposure可以算残差或均方误差来对比结果的一致性。 |
好的谢谢大神!你先忙你的事情,我这边也不急!第一个问题你可以先下载好数据放着备用,第二个问题我继续处理一下,处理之后给你反馈下结果,感谢!~ |
再开方算RMSE好一点,可以直接得到平均多少个突变偏移了。 第一个问题我这几天有时间处理了,搞完再回复你。 |
通过下面的代码发现 library(sigminer)
obj = readRDS("~/../Downloads/pcawg_sbs_maf.rds")
# IDs = maftools::getSampleSummary(obj)$Tumor_Sample_Barcode
# for (i in IDs) {
# test = maftools::subsetMaf(obj, i)
# cli::cli_alert_success("process sample {i}")
# obj_tally = suppressMessages(
# sig_tally(test, mode = "SBS",
# ref_genome = "BSgenome.Hsapiens.1000genomes.hs37d5",
# genome_build = "hg19")
# )
# }
# b42d183c-bc9c-4652-9e56-10c54c5ee96e
test = maftools::subsetMaf(obj, "b42d183c-bc9c-4652-9e56-10c54c5ee96e")
obj_tally = sig_tally(test, mode = "SBS",
ref_genome = "BSgenome.Hsapiens.1000genomes.hs37d5",
genome_build = "hg19")
#debug(sig_tally)
obj_tally = sig_tally(test, mode = "ALL",
ref_genome = "BSgenome.Hsapiens.1000genomes.hs37d5",
genome_build = "hg19") 重新安装github版本后就不会出现这个问题了。我目前的机器比较小,运行全部数据内存会爆掉,你有空再试试全部的数据tally还是出现问题不: obj_tally = sig_tally(obj, mode = "ALL",
ref_genome = "BSgenome.Hsapiens.1000genomes.hs37d5",
genome_build = "hg19") |
@KirsieMin 谢谢赞赏😉 不知道上面的问题是否已经解决呢? |
客气了~ 目前安装最新的sigminer以后 全部数据tally已经成功运行!之后我将根据最近tally数据进行fit操作看RMSE的情况,完成后再给大神反馈! |
可以的。 关于 PCAWG 官网的 signature exposure结果对比,你可以随机抽十个样本的数据,然后用选一个fitting方法简单看下SBS exposure,对比下官网提供的结果,是不是非常接近。这样判定就可以了。如果你不是在做一个系统的对比研究,不需要处理全部的样本进行分析。 |
@KirsieMin 谢谢你这个 issue 的反馈,最新的修改版本接下来会推送到CRAN |
这个RMSE明显跟检出的变异记录数目成正比。 如果已知肿瘤类型,参考COSMIC中不同肿瘤类型的signature分布图谱,在fitting的时候指定用哪些signature,可能可以减少误差值。 你这使用的是WGS的数据?平均样本的变异有几万个吗? |
下面的示例代码供你参考: library(sigminer)
?get_sig_exposure
# Load mutational signature
load(system.file("extdata", "toy_mutational_signature.RData",
package = "sigminer", mustWork = TRUE
))
# Get signature exposure
expo1 <- get_sig_exposure(sig2)
expo_mat = as.matrix(expo1[, -1])
# assume the actual data is
expo_mat2 = round(expo_mat)
# The row are samples/cases, columns are signatures
# If you want to summarize by samples
sqrt(rowMeans((expo_mat - expo_mat2)^2))
# If you want to summarize by signatures
sqrt(colMeans((expo_mat - expo_mat2)^2)) |
@KirsieMin 你有空把数据表格发我看一看,我看下数据的分布情况怎么样。 |
好的大神! 数据如下:https://www.jianguoyun.com/p/DZmTTfMQs6rSCBj1g7QE (访问密码:pHvZMP) |
需要从比例去分析这个误差。如果单纯从突变数目看,有不少样本存在极大的差异,因此整体的平均误差被拉高了。 如果我们考虑样本本身的总突变数目,发生分配错误的突变数据实际占样本总突变数的10%之内。 因此denovo和fitting的结果存在平均7%(上下5%)的差异。 |
@KirsieMin 确实可以作为一个点去研究下哪些因素对这种错配贡献最大 我能想到的包括
|
收到~感谢大神的指点!我准备先从临床信息的角度观察一下信息的区别,有问题我会及时反馈! |
大神好!最近进行sigminer包的相关操作时,又发现了一个问题:我用某PCAWG样本进行sig_fit_bootstrap(n=100)后得到的optimal exposure与 官网该样本的sig denovo exposure 完全不一致==,望能解答~
fit数据来源:https://xenabrowser.net/datapages/?dataset=October_2016_all_patients_2778.snv_mnv_indel.maf.coding.xena&host=https%3A%2F%2Fpcawg.xenahubs.net&removeHub=https%3A%2F%2Fxena.treehouse.gi.ucsc.edu%3A443
fit代码:
选取SP10084:
The text was updated successfully, but these errors were encountered: