Picard---RuntimeIOException: java.io.IOException: No space left on device

在用Picard跑sortSam或者markDuplicate的时候,报错

RuntimeIOException: java.io.IOException: No space left on device

提示硬盘空间不足,实际上节点的硬盘空间是够的。这是因为Picard在做这两个处理的时候,会生成临时文件,临时文件默认储存在系统的tmp文件夹。这个文件夹内的文件存储一些程序和软件的临时文件,在RHEL6中,系统自动清理/tmp文件夹的默认时限是30天。可以通过/etc/cron.daily/tmpwatch配置,在Ubuntu中,系统自动清理/tmp文件夹的时限默认每次启动。而全基因组和全外显子组的数据非常大,现在分给系统的空间都很小,导致tmp文件夹写满而报错。

处理方法:

在个人home文件夹下,新建一个tmp文件夹,每次运行picard的时候,指定IO临时文件夹为这个文件夹。

1
2
mkdir $HOME/tmp
java -Xmx2g -Djava.io.tmpdir=$HOME/tmp -jar SortSam.jar SORT_ORDER=coordinate INPUT=input.bam OUTPUT=output.sort TMP_DIR=$HOME/tmp

不能使用~,picard会在工作目录下创建'~‘文件夹。

合并bed文件中的区域

数据分析中会经常用到bed文件,有时候bed文件中的区域有重叠时会影响统计结果,或者没有按照顺序排序时会影响代码的逻辑。合并bed文件或者文件中的区域是经常进行的。

我常用的工具是bedtools的merge功能,官方示例如下:

1
2
3
4
5
6
7
8
$ cat A.bed
chr1  100  200
chr1  180  250
chr1  250  500
chr1  501  1000
$ bedtools merge -i A.bed
chr1  100  500
chr1  501  1000

bedtools的merge功能强大的地方,更在于在合并的时候,可以进行一下操作。如下操作,通过-c指定要操作的目标列,-o指定操作动作。

测序中加入Phix的作用

测序建库的时候,会加入一定比例的Phix,那么Phix文库有什么作用呢,我转了两篇文章,方便大家理解。Phix文库最主要的目的1)是调节碱基平衡,改善测序仪的空间校正,便于后期提高base calling的准确性,2)由于Phix序列已知基因组较小,在测序的过程中Illumina的测序仪就开始将测的read与phix基因组进行比较,预估测序指标。我也遇到过,Illumina工程师在维护测序仪时,用Phix文库测试。转载内容详见下文

Calculate phastCon Score for a gene ---- 计算基因的phastCon平均分,判断基因保守型

Calculate phastCon Score for a gene —- 计算基因的phastCon平均分,判断基因保守型

PhastCon socre is the score from 0 to 1 to show the conservation level.

A score showing the posterior probability that phastCons’s phylogenetic hidden Markov model (HMM) is in its most conserved state at that base position.

The phastCons scores represent probabilities of negative selection and range between 0 and 1.

Short highly-conserved regions and long moderately conserved regions can both obtain high scores.

也就是说如果某个位点或者一段序列的phastCon分值高的话,表示保守型较高。

思考---基因组中那些“看起来”很严重的突变往往不致病

在全基因组数据或者外显子数据得到的突变通过注释之后,每个人或多多少都含有一定数目的"看起来"很严重的突变,比如剪切位点上突变,终止密码子突变,移码突变等等(正如《ExAC-外显子组聚合数据库:揭露那些"披着狼皮的羊"基因》标题中的描述———披着狼皮的羊)。

但真实情况是,人并没有疾病表型,或者疾病只与其中的个别突变有关系,其他的突变都没有影响。这是我一直思考的问题,偶然机会,我向业内做遗传咨询的一个博士(感谢)提出这个问题,讨论之后认为主要有以下几点原因:

**一,**很多基因不是必须基因,即使全部删除也不影响机体的正常功能。

**二,**隐性基因即使有一份被破坏,不影响另外一份行使功能。

**三,**如果参考的是文献中的致病突变,有很多是假的。也就说参考文献有可能存在假的结果。

**四,**机体有很强的代偿能力,即使真的是有缺陷的基因,机体也有可能代偿其缺陷而不影响正常机体功能,比如有一些个体携带确定致病的基因突变,表型仍正常。