vcf檔案合併

2021-10-18 02:18:43 字數 1220 閱讀 4536

使用方法 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列中可...