bcftools 提取vcf(snp/indel)文件子集


做群體變異檢測后,通常會有提取子集的操作,之前沒有發現bcftools有這個功能,都是自己寫腳本操作,數據量一上來,速度真的是讓人無語凝噎。這里記錄下提取子vcf文件的用法,軟件版本:bcftools-1.5

 

一、根據個體提取子集

根據樣品名提取vcf文件,准備要保留的個體名文件 keep.list,一行一個個體(參考第三步)。

無痛處理,速度超快,命令如下:

1 bcftools view  -S keep.list test.vcf >sub_indv.vcf

 

二、根據染色體位置提取子集

注意:這里vcf要使用gbzip壓縮並且構建索引才行,而且vcf文件位置順序不能亂(別問我怎么知道的😔);

准備好染色體及位置文件chr_pos.list,文件內容示例如下:

chr1    27639
chr1    60383
chr2    60469
chr3    60516
chr4    60534

#或者直接給區間也行
chr1  1  1000
chr1  2000  4500

后續命令如下,速度快,內存消耗還小:

1 bgzip test.vcf
2 tabix -p vcf test.vcf.gz
3 bcftools view -R chr_pos.list  test.vcf.gz >new.pos.vcf

 

三、直接提取測序個體樣品名

1 bcftools query -l test.vcf  >ind.list
1 head -100 test.vcf |grep "#C"|cut -f10-|xargs -n 1 >ind.list # 不調用軟件這樣也行

ind.list文件中一行一個樣品名


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM