This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Vcftools,Vcf-Merge Error

I had run vcftools to merge some vcf files with no success. As mentioned, the *.vcf files was pre-processed with bgzip and tabix.

Here are my commands for (bgzip,tabix and vcftools)

./bgzip fileA.vcf

./bgzip fileB.vcf

./bgzip fileC.vcf

./tabix -p vcf fileA.vcf.gz

./tabix -p vcf fileB.vcf.gz

./tabix -p vcf fileC.vcf.gz

vcf-merge fileA.vcf.gz fileB.vcf.gz fileC.vcf.gz >out.vcf.gz

Here's the error after I run the vcf-merge command :-

The use of -1 for unknown number of values is deprecated, please use '.' instead. FORMAT=<ID=PL,Number=-1,Type=Integer,Description="List of="" Phred-scaled="" genotype="" likelihoods,="" number="" of="" values="" is="" (#ALT+1)*(#ALT+2)="" 2"=""> Can't exec "tabix": No such file or directory at /usr/lib64/perl5/5.8.8/x8664-linux-thread-multi/Vcf.pm line 2155. The command "tabix -l raws51sequenceBWT.vcf.gz" exited with an error. Is the file tabix indexed?

at /usr/lib64/perl5/5.8.8/x8664-linux-thread-multi/Vcf.pm line 171 Vcf::throw('Vcf41=HASH(0xb762650)', 'The command "tabix -l raws51sequenceBWT.vcf.gz" exited w...') called at /usr/lib64/perl5/5.8.8/x8664-linux-thread-multi/Vcf.pm line 2156 VcfReader::getchromosomes('Vcf41=HASH(0xb762650)') called at /illumina/MiniProject/tools/vcftools0.1.7/perl/vcf-merge line 165 main::initcols('HASH(0xb760710)', 'Vcf41=HASH(0xb761ff0)') called at /illumina/MiniProject/tools/vcftools0.1.7/perl/vcf-merge line 245 main::mergevcffiles('HASH(0xb760710)') called at /illumina/MiniProject/tools/vcftools_0.1.7/perl/vcf-merge line 12

I am currently using linux, with tabix-0.2.5 and vcftools_0.1.7 (if this helps)

Thanks in advance.

Joanne

vcftools vcf vcf

4 answers

Vcf.pm is a file present in vcftools_0.1.4a/lib.

You need to copy Vcf.pm in /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/.

I think this should solve your error.

I've never had much luck with vcf-tools. You may have better luck with joinx. Once you have it installed, you should be able to use this command:

joinx vcf-merge fileA.vcf fileB.vcf fileC.vcf -o mergedFile.vcf

Or, if you have them bgzipped already:

joinx vcf-merge <(zcat fileA.vcf.gz) <(zcat fileB.vcf.gz) <(zcat fileC.vcf.gz) | bgzip -c > output file

I realize "use a different program" might not be the answer you're looking for, but vcf-tools doesn't seem to handle the full range of allowable formatting in vcf. [edited]

I've checked that it is a vcf file. I'll try joinx, but it seems like its more for ubuntu? I am actually using Fedora and is currently facing this issue with this error,"E: Couldn't Find Package Libboost-all-dev" during the installation,which was after I've build the Boost library. Any idea if Joinx works on Fedora? Many thanks!

Hi,

My Vcf.pm file is already in the path mentioned though.

Are you sure that "raw_s_5_1_sequence_BWT.vcf.gz" is a proper vcf and not a BAM or something else? It looks like the forward reads from lane 5 off of a flow cell..

Did you try to run vcf-validator to check that the your files are valid?

Log in to answer this question.