VCFtools安装和简单试用

日期:2022-1-21

1. 下载安装VCFtools

在官网(https://vcftools.github.io/index.html)下载VCFtools安装包,下载地址链接为https://vcftools.github.io/downloads.html,该网页内界面如下所示,方框内为下载按钮。如果点击的是View On GitHub需要进入release中寻找最新版本(https://github.com/vcftools/vcftools/releases/tag/v0.1.16)。

用conda安装python 用conda安装vcftools_标准输出

2. 安装TAR包

在下载vcftools-0.1.16.tar.gz压缩包后,放到服务器家目录bin中(~/bin),安装代码如下:

tar zxvf ./vcftools-0.1.16.tar.gz
cd vcftools-0.1.16/
./configure --prefix=`pwd`
make && make install

至此安装完成,可以使用全路径软件 ~/bin/vcftools-0.1.16/bin/vcftools,或者将路径添加到系统PATH变量中(PATH=/home/cfc424/bin/miniconda3/bin:$PATH)。

3. 使用Conda安装

使用Conda可以快速安装VCFtools,使用mamba下载速度更快,可以通过search指定版本:

mamba search vcftools
mamba install vcftools=0.1.16
4. VCFtools使用实例

(1)VCFtools帮助文档和VCF基本信息统计
该软件处理速度快,输入输出文件适应性好,是生物信息学必备工具之一。安装完测试软件是否能够运行:

打印命令和基本信息查看:

vcftools

## 输出该软件的版本信息、作者和软件的公布时间以及说明文档的网络地址。
VCFtools (0.1.16)
© Adam Auton and Anthony Marcketta 2009
Process Variant Call Format files
For a list of options, please go to:
	https://vcftools.github.io/man_latest.html
Alternatively, a man page is available, type:
	man vcftools
Questions, comments, and suggestions should be emailed to:
	vcftools-help@lists.sourceforge.net

VCF基本信息统计:

vcftools --vcf input_data.vcf

## 输出为样本数和变异位点数目
After filtering, kept 112 out of 112 Individuals
After filtering, kept 322711 out of a possible 322711 Sites
Run Time = 1.00 seconds

值得注意的是,从0.1.12版本开始,VCFtools已经支持标准输出作为输入,方便pipe运行命令:

zcat input_data.vcf.gz | ./vcftools --vcf - ## 读入的VCF信息为标准输入的解压缩版本

VCF文件过滤,筛选Chr1区间内的变异信息(chr1:1000000-2000000):

vcftools --vcf input_data.vcf --chr 1 --from-bp 1000000 --to-bp 2000000

## 输出结果
out.recode.vcf ## 输出文件
out.log ## log信息

## --out制定输出文件的前缀
vcftools --vcf input_data.vcf --chr 1\
    --from-bp 1000000 --to-bp 2000000 --recode --out subset ## 
    
## 打印到屏幕,使用命令more查看
vcftools --vcf input_data.vcf --chr 1 --from-bp 1000000 --to-bp 2000000 --recode --stdout | more

## 标准输出重定向保存目标文件到制定目录及文件名
vcftools --vcf input_data.vcf --chr 1 --from-bp 1000000 --to-bp 2000000 \
    --recode -c > /home/usr/data/subset.vcf

## 标准输出重定向并直接压缩VCF文件为gz格式
vcftools --vcf input_data.vcf --chr 1 --from-bp 1000000 --to-bp 2000000 \
    --recode -c | bgzip -c > /home/usr/data/subset.vcf.gz

将VCF格式转换为BCF格式:

vcftools --vcf input_data.vcf --recode-bcf --recode-INFO-all --out converted_output

比较两个VCF文件,输出两个文件共有的SNP和样本的结果:

## 第一个参数正常指定,第二参数指定为--diff, --gzdiff 或者--diff-bcf
vcftools --vcf input_data.vcf --diff other_data.vcf --recode  --out compare

计算Allele Frequency:

vcftools --vcf input_data.vcf --freq --out output

提取测序深度

vcftools --vcf input_data.vcf --depth -c > depth_summary.txt
vcftools --vcf input_data.vcf --site-depth --max-missing 1.0 --out site_depth_summary ## SNP中不允许样本基因型缺失

计算LD:

vcftools --vcf input_data.vcf --hap-r2 --ld-window-bp 50000 --out ld_window_50000

计算Fst:

## 单点SNP Fst值
vcftools --vcf input_data.vcf --weir-fst-pop population_1.txt --weir-fst-pop population_2.txt --out pop1_vs_pop2

## sliding window Fst值(滑动窗口,窗口10kb,步长5kb)
vcftools --vcf input_data.vcf  --window-pi 10000 --window-pi-step 5000 --out pop1_vs_pop2 &

转换成Plink格式:

vcftools --vcf input_data.vcf --plink --chr 1 --out output_in_plink

(2)VCFtools在处理群体SNP数据时高效便捷
VCFtools允许输入文件共三种:VCF、BCF、GZ压缩格式的VCF,下面的例子为群体SNP VCF数据过滤(此时已将vcftools路径添加PATH环境变量中):

vcftools  --gzvcf test.vcf.gz\   ## 输入压缩形式的vcf
          --remove-indels  \ ## 移除indel变异,保留SNP变异
          --max-missing 0.5\ ## SNP样本缺失率不能超过50%
       ##(设置为1,代表完全不允许缺失;0.8代表允许20%缺失。)
          --maf 0.05\ ## 次等位基因频率不能低于0.05 
          --min-alleles 2\ ## 次等位基因个数
          --max-alleles 2\ ## 主要等位基因个数
          --keep  test.line.txt\ ## 保留样本文件list
          --snps  test.snps.txt\ ## 保留SNP文件list
          --recode --recode-INFO-all\ ##重新编码成vcf文件
          --out SNPs_only  ##输出文件的前缀(保存文件为SNPs_only.recode.vcf)

以上,更多方法有待后续添加。