使用方法 perl merge.pl list merge.vcf.gz
這裡的list就是不同的染色體的vcf檔案,如:
chr1:0-2000.vcf.gz
chr1:2001-4000.vcf.gz
chr3.vcf.gz
……
merge.pl
use strict;
use warnings;
open in,"< $ar**[0]" or die $!;
open out,'>:gzip',"$ar**[1]" or die $!;
my $n=0;
while()else
$n++;
if($n==1)
} if($n>1)
} }close vcf;
close in;
close out;
這裡也可以使用zcat或者cat的模式,但是我覺得這樣太麻煩了。需要將head行進行處理。
主要是的軟體就是bcftools和gatk。
bcftools參考**:
一行簡單的**:
bcftools merge a.vcf.gz b.vcf.gz c.vcf.gz -oz -o abc.vcf.gz
這個軟體使用起來較為麻煩,需要將原始的vcf轉換為bgzip的壓縮,之後再建立index,之後才能用於合併。
這裡簡單舉乙個例子,方便理解,如下
有兩個檔案,分別執行下面的命令:
gunzip file.vcf.gz
bgzip file.vcf
tabix -p vcf file.vcf.gz
這樣兩個檔案的tbi索引就建立好了,直接執行:
bcftools merge file1.vcf.gz file2.vcf.gz -oz -o merge.vcf.gz
容易出現的報錯:vcf 沒有進行排序就行進行index。必須是進行排序後的vcf才能進行。
除了使用bcftools,還可以使用gatk,但是gatk必須是4.0以下的版本才行。**如下:
gatk -t combinevariants -v file1.vcf.gz -v file2.vcf.gz -o merge.vcf.gz -r ref.fa
vcf檔案分解
上上週把手機丟了,可是原先備份的通訊錄只有乙個.vcf檔案,裡面含蓋了我所有的聯絡人資訊比如100個聯絡人資訊他全存進乙個.vcf檔案了。換了新手機,怎麼也導不到新手機裡面,原因是新手機只支援乙個.vcf檔案裡存一條通訊錄的那種格式,比如100個聯絡人資訊就得有100個.vcf檔案放到記憶體卡裡才能...
vcf檔案分解
上上週把手機丟了,可是原先備份的通訊錄只有乙個.vcf檔案,裡面含蓋了我所有的聯絡人資訊比如100個聯絡人資訊他全存進乙個.vcf檔案了。換了新手機,怎麼也導不到新手機裡面,原因是新手機只支援乙個.vcf檔案裡存一條通訊錄的那種格式,比如100個聯絡人資訊就得有100個.vcf檔案放到記憶體卡裡才能...
Vcf檔案格式
vcf檔案格式是gatk鍾愛的表示遺傳變異的一種檔案格式。就拿gatk給出的vcf例子說明吧,下面這個檔案只表示了乙個完整vcf檔案的前幾個snp。看上去確實有點複雜,那就把它分為兩部分看吧,第一部分把他歸為說明檔案,就是每一列最前面有2個 符號的那些列所提到的就是為了解釋下面 正文 info列中可...