看起来用vcftools中的vcf-merge 1.vcf 2.vcf >out.vcf 很简单,但是在使用过程中遇到很多问题:
1.安装vcftools时,https://vcftools.github.io/index.html。里面有多种方法下载,首先常规方法是https://sourceforge.net/projects/vcftools/files/ ,安装后,执行不出来结果,报错。再尝试github ,git clone https://github.com/vcftools/vcftools.git下载
按照https://sourceforge.net/projects/vcftools/files/安装,软件安装后还是执行有问题
git clone https://github.com/vcftools/vcftools.git
cd vcftools
./autogen.sh
./configure
make
make install #或者加sudo
以上问题均是提示:
Can't locate Vcf.pm in @INC (you may need to install the Vcf module)
2.以为perl中没有Vcf模块,又开始cpan进行模块安装.:找到有cpan,然后输入:cpan ,再输入:install Vcf ,最后:exit 退出-----问题仍是没有解决。
3.找到vcf-merge脚本,把vcftools/perl的路径use进去------以上问题已解决,但是还是得不到结果。
4.此时vcf-merge命令可以使用,但是发现没有index
Could not load .tbi index of zhenhuixi.vcf
The command "tabix -l zhenhuixi.vcf" exited with an error. Is the file tabix indexed?
5.没有什么就加什么,第一步是压缩以及生成index,vcftools的很多perl API都是要求input的vcf文件通过bgzip压缩,tabix生成对应的index文件。其实后面bcftools是vcftools的升级版也是需要这样的,bcftools merge 就是替代之前的vcf-merge。
bgzip test1.vcf
tabix -p vcf test1.vcf.gz
bgzip test2.vcf
tabix -p vcf test2.vcf.gz
6.以为终于可以合并了,谁知道又提示:
[E::hts_idx_push] Chromosome blocks not continuous
tbx_index_build failed: test1.vcf.gz
同事说vcf没有排序造成的,然后又进行排序操作:
java -jar /media/gsadmin/vd1/xxxx/software/picard.jar SortVcf I=test1.vcf O=test1.sort.vcf
现在路径下有了vcf,sort.vcf ,sort.vcf.idx文件,再次进行文件合并,还是提示
[E::hts_idx_push] Chromosome blocks not continuous
tbx_index_build failed: test.vcf.gz
写到这,突然明白了,我的思路有问题,应该从下到上来一次,对得到的sort文件进行bgzip,tabix操作 。
最终版本:实现了结果
bgzip mayuanyuan.sort.vcf
bgzip zhenhongwei.sort.vcf
bgzip zhenhuixi.sort.vcf
tabix -p vcf mayuanyuan.sort.vcf.gz
tabix -p vcf zhenhongwei.sort.vcf.gz
tabix -p vcf zhenhuixi.sort.vcf.gz
vcf-merge zhenhuixi.sort.vcf.gz zhenhongwei.sort.vcf.gz mayuanyuan.sort.vcf.gz >out.vcf
其他: