如需将两个或多个BigWig合并成一个,可以使用bigWigMerge程序,合并完成后输出文件是bedGraph,再使用bedGraphToBigWig转回BigWig即可。
一、将BigWig合并为bedGraph
1 | bigWigMerge f1.bigwig f2.bigwig out.bedGraph |
运行结束后,得到一个bedGraph文件,我们来看看这个文件
1 | $ head out.bedGraph |
二、对bedGraph进行排序
由于bedGraph文件很大,需要转换成二进制的BigWig文件,在进行转换之前,首先对其进行sort,使用sort -k1,1 -k2,2n命令:
1 | sort -k1,1 -k2,2n out.bedGraph > sort.bedGraph |
三、将bedGraph转成BigWig
下面可以使用bedGraphToBigWig转换为BigWig,需要注意的是,新生成的BigWig是原始的两个BigWig的累积,即在任何位置上的值都是输入的两个文件的总和。
1 | bedGraphToBigWig sort.bedGraph /mnt/d/ncbi/hg19/chrom/hg19.all.size out.bw |
这里需要用到hg19.all.size这个文件,这个文件只需要hg19中染色体的长度信息,第一列是染色体编号,第二列是长度
1 | chr1 249250621 |
这个文件的准备方法可以在R中进行,亦可以LINUX中进行,在R中需要使用seqinfo(),而在LINUX中可以结合faToTwoBit与twoBitInfo,关于这个问题,参见这篇教程:生成染色体长度文件chrom.sizes