接下来就是验证自己非常感兴趣的一些论题了。
1、去除BQSR&indel realignment环节,对于结果的影响。
2、lofreq&strelka结果的影响。
现在要做的事情就是选择要比较的样本(运行时间相对比较短的)。然后修改somatic.pl的代码。总体上说来就是,把模糊的任务拆分成具体可行的步骤,然后一点点的一丝不苟的去执行。
现在敲定,选择NBMA3、OX1931B10、OX1071A5作为测试的数据集,选择的原因主要是,数据量小,可能运行起来会相对而言比较快一点。
(13:57)现在开始修改somatic.pl这个代码文件,来继续做。
(14:11)将代码文件修改完成了。
现在就是执行批处理的指令。
perl /home/xxzhang/workplace/QBRC//somatic.pl NA NA RNA:/home/xxzhang/workplace/QBRC/data/CML/TESTclass/SRR3052202_1.fastq.gz NA 32 hg38 /home/xxzhang/workplace/QBRC/geneome/hg38/hg38.fasta /home/xxzhang/miniconda3/bin/java /home/xxzhang/workplace/QBRC/output/NBMA3/ human 1 ./disambiguate_pipeline
perl /home/xxzhang/workplace/QBRC//somatic.pl NA NA RNA:/home/xxzhang/workplace/QBRC/data/CML/TESTclass/SRR3052561_1.fastq.gz NA 32 hg38 /home/xxzhang/workplace/QBRC/geneome/hg38/hg38.fasta /home/xxzhang/miniconda3/bin/java /home/xxzhang/workplace/QBRC/output/OX1931B10/ human 1 ./disambiguate_pipeline
perl /home/xxzhang/workplace/QBRC//somatic.pl NA NA RNA:/home/xxzhang/workplace/QBRC/data/CML/TESTclass/SRR5296837_1.fastq.gz NA 32 hg38 /home/xxzhang/workplace/QBRC/geneome/hg38/hg38.fasta /home/xxzhang/miniconda3/bin/java /home/xxzhang/workplace/QBRC/output/OX1071A10/ human 1 ./disambiguate_pipeline
修改之后的代码文件有一点点的错误,连我的计算机就开始抱怨有太多的错误了哈哈。
我们来一点点的修改。
Bareword found where operator expected at /home/xxzhang/workplace/QBRC//somatic. pl line 440, near "system(“date”
(Might be a runaway multi-line “” string starting on line 438)
system_call("mv ".$type_output."/dupmark.bam ".$type_output."/".$type.".bam ); #漏掉了字符串后面的双引号
修改为:
system_call("mv ".$type_output."/dupmark.bam ".$type_output."/".$type.".bam");
String found where operator expected at /home/xxzhang/workplace/QBRC//somatic.pl line 440, near “# if (KaTeX parse error: Expected '}', got 'EOF' at end of input: pdx=~/mouse/) {known=”"
(Missing semicolon on previous line?)
String found where operator expected at /home/xxzhang/workplace/QBRC//somatic.pl line 440, near “known “. r e s o u r c e d b s n p . " " ( D o y o u n e e d t o p r e d e c l a r e k n o w n ? ) S t r i n g f o u n d w h e r e o p e r a t o r e x p e c t e d a t / h o m e / x x z h a n g / w o r k p l a c e / Q B R C / / s o m a t i c . p l l i n e 440 , n e a r " k n o w n " . resource_dbsnp."" (Do you need to predeclare known?) String found where operator expected at /home/xxzhang/workplace/QBRC//somatic.pl line 440, near "known ". resourcedbsnp.""(Doyouneedtopredeclareknown?)Stringfoundwhereoperatorexpectedat/home/xxzhang/workplace/QBRC//somatic.plline440,near"known".resource_mills.””
(Do you need to predeclare known?)
String found where operator expected at /home/xxzhang/workplace/QBRC//somatic.pl line 440, near “known “.$resource_1000g.””
(Do you need to predeclare known?)
syntax error at /home/xxzhang/workplace/QBRC//somatic.pl line 440, near "system( “date”
Regexp modifiers “/d” and “/u” are mutually exclusive at /home/xxzhang/workplace /QBRC//somatic.pl line 441, at end of line
Regexp modifiers “/d” and “/a” are mutually exclusive at /home/xxzhang/workplace /QBRC//somatic.pl line 441, at end of line
Unknown regexp modifier “/r” at /home/xxzhang/workplace/QBRC//somatic.pl line 44 1, at end of line
Unknown regexp modifier “/k” at /home/xxzhang/workplace/QBRC//somatic.pl line 44 1, at end of line
Unknown regexp modifier “/h” at /home/xxzhang/workplace/QBRC//somatic.pl line 44 1, at end of line
Unknown regexp modifier “/e” at /home/xxzhang/workplace/QBRC//somatic.pl line 44 1, at end of line
Unknown regexp modifier “/w” at /home/xxzhang/workplace/QBRC//somatic.pl line 44 1, at end of line
Unknown regexp modifier “/r” at /home/xxzhang/workplace/QBRC//somatic.pl line 44 1, at end of line
Unknown regexp modifier “/k” at /home/xxzhang/workplace/QBRC//somatic.pl line 44 1, at end of line
/home/xxzhang/workplace/QBRC//somatic.pl has too many errors.
主要就是440行的那一处的引号少了,其他没有什么。
重新提交,看看能不能使用。
(14:40)完成,现在在运行中。
########################################################################################
#这串代码之后我好像有比较过
setwd("F://张秀秀//过程性文件//8//8//NBMA3")
new_gremline<-read.table("germline_mutations_hg38_new.txt",sep = "\t",header = T)
old_gremline<-read.table("germline_mutations_hg38_old.txt",sep = "\t",header = T)
dim(new_gremline) #1553
dim(old_gremline) #1518
#为了确保准确性,这次不进行位点的比较(因为不同染色体会有不同的位点。这也没办法说服我自己),
#而是将我们关注的几个信息合并后进行比较
new_gremline<-within(new_gremline, mutation<- paste(Chr,Start,Ref,Alt,sep=" "))
old_gremline<-within(old_gremline, mutation<- paste(Chr,Start,Ref,Alt,sep=" "))
new_mutation<-new_gremline$mutation
old_mutation<-old_gremline$mutation
#然后就是一个简单的venn plot
library(VennDiagram)
# 二维韦恩图
venn.plot <- venn.diagram(
x = list(Removal=new_mutation,Original=old_mutation),
filename = NULL,
lwd = 4,
fill = c("cornflowerblue", "darkorchid1"),
alpha = 0.75,
label.col = "black",
cex = 2,
fontfamily = "serif",
fontface = "bold",
cat.col = c("cornflowerblue", "darkorchid1"),
cat.cex = 1,
cat.fontfamily = "serif",
cat.fontface = "bold",
cat.dist = c(0.03, 0.03),
cat.pos = c(-20, 14),
main = "NBMA3 patient(%)"
)
grid.draw(venn.plot)
grid.newpage()
#######################################################################################
#这串代码之后我好像有比较过
#F:\张秀秀\过程性文件\8\8\OX1071A10
setwd("F://张秀秀//过程性文件//8//8//OX1071A10")
new_gremline<-read.table("germline_mutations_hg38_new.txt",sep = "\t",header = T)
old_gremline<-read.table("germline_mutations_hg38_old.txt",sep = "\t",header = T)
dim(new_gremline) #1668
dim(old_gremline) #1609
#为了确保准确性,这次不进行位点的比较(因为不同染色体会有不同的位点。这也没办法说服我自己),
#而是将我们关注的几个信息合并后进行比较
new_gremline<-within(new_gremline, mutation<- paste(Chr,Start,Ref,Alt,sep=" "))
old_gremline<-within(old_gremline, mutation<- paste(Chr,Start,Ref,Alt,sep=" "))
new_mutation<-new_gremline$mutation
old_mutation<-old_gremline$mutation
#然后就是一个简单的venn plot
library(VennDiagram)
# 二维韦恩图
venn.plot <- venn.diagram(
x = list(Removal=new_mutation,Original=old_mutation),
filename = NULL,
lwd = 4,
fill = c("cornflowerblue", "darkorchid1"),
alpha = 0.75,
label.col = "black",
cex = 2,
fontfamily = "serif",
fontface = "bold",
cat.col = c("cornflowerblue", "darkorchid1"),
cat.cex = 1,
cat.fontfamily = "serif",
cat.fontface = "bold",
cat.dist = c(0.03, 0.03),
cat.pos = c(-20, 14),
main = "OX1071A10 patient(4.4%)"
)
grid.draw(venn.plot)
grid.newpage()
############################################################################################
setwd("F://张秀秀//过程性文件//8//8//OX1931B10")
new_gremline<-read.table("germline_mutations_hg38_new.txt",sep = "\t",header = T)
old_gremline<-read.table("germline_mutations_hg38_old.txt",sep = "\t",header = T)
dim(new_gremline) #2572
dim(old_gremline) #2367
#为了确保准确性,这次不进行位点的比较(因为不同染色体会有不同的位点。这也没办法说服我自己),
#而是将我们关注的几个信息合并后进行比较
new_gremline<-within(new_gremline, mutation<- paste(Chr,Start,Ref,Alt,sep=" "))
old_gremline<-within(old_gremline, mutation<- paste(Chr,Start,Ref,Alt,sep=" "))
new_mutation<-new_gremline$mutation
old_mutation<-old_gremline$mutation
#然后就是一个简单的venn plot
library(VennDiagram)
# 二维韦恩图
venn.plot <- venn.diagram(
x = list(Removal=new_mutation,Original=old_mutation),
filename = NULL,
lwd = 4,
fill = c("cornflowerblue", "darkorchid1"),
alpha = 0.75,
label.col = "black",
cex = 2,
fontfamily = "serif",
fontface = "bold",
cat.col = c("cornflowerblue", "darkorchid1"),
cat.cex = 1,
cat.fontfamily = "serif",
cat.fontface = "bold",
cat.dist = c(0.03, 0.03),
cat.pos = c(-20, 14),
main = "OX1931B10 patient(9.6%)"
)
grid.draw(venn.plot)
grid.newpage()
绘制完成了韦恩图。这个结果其实在我们的预料之中,我不知道作者的这个0.1%是如何计算出来的。我图中的这个百分数,用的是(和它不同的variant的数目/相同的variant的数目)计算得到的。
另外,其实作者还说了,用不用这个数据还跟数据的平均测序深度有关。
作者文章中用到的数据的平均测序深度是55-fold。
那么,我想要知道我们的数据的平均测序深度是多少?
记得师姐说这个数据来源于大脑的初级视觉皮层,测序深度相对来说比较高,也是50多。
但是,我不确定。
平均测序深度:每一个位点平均测到的次数。这个值越高,表示测序的可靠性就越高。
现在回到sam的文件夹(终于到我们自己的数据了,我现在对于这个数据还非常的不熟悉)。
我想看一下这个数据文件的平均的测序深度。使用Samtools工具进行计算。
当我尝试进行转换的时候:
samtools view -bS ATGAGCCGTAAGCTTG.sam >ATGAGCCGTAAGCTTG.bam
[E::sam_parse1] no SQ lines present in the header
[W::sam_read1] Parse error at line 3
显示错误。说没有文件的头部,没有SQ的行(啊,我对sam文件的格式也并不是特别的了解。。)。
根据网上的介绍,SQ的信息大概是这个样子:
@SQ SN:chr1 LN:248956422
@SQ SN:chr10 LN:133797422
@SQ SN:chr11 LN:135086622
@SQ SN:chr11_KI270721v1_random LN:100316
@SQ SN:chr12 LN:133275309
@SQ SN:chr13 LN:114364328
@SQ SN:chr14 LN:107043718
@SQ SN:chr14_GL000009v2_random LN:201709
@SQ SN:chr14_GL000225v1_random LN:211173
也就是位于sam文件开头的,关于序列文件的染色体的信息。
而我们的sam文件的格式是这样的。
TTGTCATATTATA00583:531:HW5FTDSXY:2:1131:28176:8015 77 * 0 0 * * 0 0TTTTTTTTTTTTTTTTTTTTTATTAAAATAAAAATTAATATCTAAAAATATAATGATAAACAATTTATAAAAAAACAATATTATATAAAAAAAAATTAAAAAAAAAACA FFFFFFFFFFFFFFF,:FF,:F,FFF,F,F,F:,,F:F,F,FF:F,FF::F:F,,,FFFFF:,,,FFFFFFF,F::F,,:F,F,FF:FF:,FF,FF,:,,,:FF::,,: NH:i:0 HI:i:0 AS:i:148 nM:i:0 uT:A:1
TTGTCATATTATA00583:531:HW5FTDSXY:2:1131:28176:8015 141 * 0 0 * * 0 0GATTAACCTCTTTGTGCCTCAGTTTCCTCAGCTATAAAACAGAATGATAATATTAACCCCCTCCTAGGATTGATTTCAGATGCAAATGATTACTACTATCTACCATATATAAACAATGTACTTATAGAATATATGTGTATTATGTACTAT :FFFFFFFFF:FFFF:FFF:F:F,,FFFFFF,FFFFFFF:FFFFFFFFFFFF,FFFFF:FFFFFFF:,FFF:FF:FFF,FFFFFFFFFF::FFFFFF:F::FFFFFFF::FFFFFF::,FFF:FFFFFFFFFFFF,FFF:FFF,FF:FFF NH:i:0 HI:i:0 AS:i:148 nM:i:0 uT:A:1
TTCGACTACATGA00583:531:HW5FTDSXY:2:1131:4616:20134 163 chrX 13940636 255 150M = 13940852 287 GATGGCTAGTAAGTATATTTCATTTCACTATTATTCAAAGAAATGCTATCTTAAAATAATAAACCATTTTTCTCAAGTAACTGAAATCTTTAAAAATTAAAGCAAGATTACACCTGCAGGTGGGTGAGTCAATTGGTCTAGCCTTTCTGG FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FFFFF:FFFFFFFF:FFFFF:FF:FFFFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFF NH:i:1 HI:i:1AS:i:199 nM:i:10
我有点不太明白。自己转换的到底对不对。
所以,我现在遇到的主要的问题是:
(1)我想改造这个pipeline,尤其是去掉BQSR环节,但是不知道这额外带来的假阳性的结果,对于结果会产生怎样的影响?究竟怎样的“度”会比较合适?在运行的效率和质量上怎样达到一种平衡?==>在这边我或许也可以咨询一下作者。
(2)对于10X的数据我自己不够熟悉。
- 目前按照作者提供的pipeline虽然拆分出来了一些细胞,但是不知道对不对?
- 10X的数据如何实现对mRNA的定性和定量的处理,在这一方面我觉得是我不太了解的地方。我需要继续的学习。
- 一个前提是:10X的数据,肯定是可以用来做的。因为作者的文章中也使用了10X的数据。
这里补一句:作者的文章中也用到了10X的数据。他得到的主要的结果是:
这篇文章中,他虽然使用了10X的数据,但是好像所列出的结果是,在这个数据中突变的类型,就是下面我们这张图中显示的:
那我们接下来,目标就非常明确了。
(1)优化pipeline。==>运行时间上优化,在效率和质量上达到一个平衡。
(2)理解10X的数据的结构。 ==>calling出来的variant非常的少,我不知道这属不属于一种正常的现象。我还没有深入的去研究。
但是,我在文献中看到的结果是:
一个成熟的神经细胞中的突变,可以达到几百个。
==>多读文献。
==>多读作者的源代码。
==>整理好自己的疑惑,跟作者联系。
对了,关于running time,作者是这样说的。
For a paird of 'fastq.gz’files of 200M, it takes around 2 hours to finish somatic mutation calling.
但是实际上,我自己的计算的经验是即使是1M左右的数据,也需要将近50min左右。
明天的任务,就是把最近要读的文献集中整理一下。分个轻重缓急,现在乱糟糟的在桌面上,真的很容易让自己手忙教乱,没有重点。
还有的话,有时间理解一下WGCNA分析是个什么鬼。显然这应该是生信的基本功,但是我当初忘得差不多了。应该老杨的PPT还有。