vcftools用法详解


vcftools是一种可以对VCF文件和BCF文件进行格式转换及过滤的工具

参考:vcftools使用手册

输入参数

  • –vcf < input_filename > 支持v4.0、v4.1或者v4.2版本的VCF文件
  • –gzvcf < input_filename > 通过gzipped压缩过的VCF文件
  • –bcf < input_filename > BCF2文件

输出参数

  • –out < output_prefix > 输出文件,后面直接对输出文件命名
  • –stdout 可接管道符对输出结果进行重新定向
  • –temp < temporary_directory > 指定结果的输出目录

根据位置过滤

  • –chr < chromosome >包含染色体位点
  • –not-chr < chromosome >排除匹配的染色体位点

输出指定染色体上的位点

[sunchengquan 10:40:42 ~/scq/GWAS/vcftools_filtering]
$ vcftools --vcf genotype_id.vcf --chr A1 --recode --out A1_analysis

VCFtools - v0.1.13
(C) Adam Auton and Anthony Marcketta 2009

Parameters as interpreted:
	--vcf genotype_id.vcf
	--chr A1
	--out A1_analysis
	--recode

After filtering, kept 120 out of 120 Individuals
Outputting VCF file...
After filtering, kept 1889 out of a possible 17848 Sites
Run Time = 1.00 seconds

[sunchengquan 10:43:51 ~/scq/GWAS/vcftools_filtering]
$ grep -v '^##' A1_analysis.recode.vcf |cut -f 1-9|tail -4
A1	33781370	A1__33781370	C	T	60.09	PASS	.	GT:AD:DP:GQ:PL
A1	33844521	A1__33844521	G	T	38.44	PASS	.	GT:AD:DP:GQ:PL
A1	33870037	A1__33870037	AG	A	2747.53	PASS	.	GT:AD:DP:GQ:PL
A1	34012584	A1__34012584	A	G	42.21	PASS	.	GT:AD:DP:GQ:PL

  • –from-bp
  • –to-bp

这两个参数需要和–chr一起使用,指定要处理的一系列站点的下限和上限

[sunchengquan 10:44:17 ~/scq/GWAS/vcftools_filtering]
$ vcftools --vcf genotype_id.vcf --chr A1 --from-bp 33000000 --to-bp 33781370 --recode --out A1_analysis_pos_bp

VCFtools - v0.1.13
(C) Adam Auton and Anthony Marcketta 2009

Parameters as interpreted:
	--vcf genotype_id.vcf
	--chr A1
	--to-bp 33781370
	--out A1_analysis_pos_bp
	--recode
	--from-bp 33000000

After filtering, kept 120 out of 120 Individuals
Outputting VCF file...
After filtering, kept 32 out of a possible 17848 Sites
Run Time = 0.00 seconds

[sunchengquan 10:52:21 ~/scq/GWAS/vcftools_filtering]
$ grep -v '^##' A1_analysis_pos_bp.recode.vcf |cut -f 1-9|tail -4
A1	33757525	A1__33757525	C	T	12582.3	PASS	.	GT:AD:DP:GQ:PL
A1	33767507	A1__33767507	C	T	103768	PASS	.	GT:AD:DP:GQ:PL
A1	33773748	A1__33773748	A	G	49502.1	PASS	.	GT:AD:DP:GQ:PL
A1	33781370	A1__33781370	C	T	60.09	PASS	.	GT:AD:DP:GQ:PL

  • –positions < filename >
  • –exclude-positions < filename >

根据文件中的位置列表包括或排除一组位点。输入文件的每一行应包含(制表符分隔的)染色体和位置

  • –bed < filename >
  • –exclude-bed < filename >

根据bed文件,过滤vcf文件

根据位点过滤

  • –snp < string >字符串的名称可以匹配dbSNP的数据,适合人类基因组,该指令可多次使用
  • –snps < filename >
  • –exclude < filename >包括或排除文件中给出的SNP列表
[sunchengquan 14:29:40 ~/scq/GWAS/vcftools_filtering]
$ cut -f3 genotype_id.vcf|grep -v '^ID\|#'|head -50 > snp.list.txt
[sunchengquan 14:32:39 ~/scq/GWAS/vcftools_filtering]
$ vcftools --vcf genotype_id.vcf --snps snp.list.txt --recode --recode-INFO-all --out subset.snp
[sunchengquan 14:32:39 ~/scq/GWAS/vcftools_filtering]
$ grep -v '^#' subset.snp.recode.vcf |wc -l 
50

变异类型过滤

  • –keep-only-indels 只保留indel标记
  • –remove-indels 删除indel标记
[sunchengquan 14:39:40 ~/scq/GWAS/vcftools_filtering]
vcftools --vcf genotype_id.vcf --keep-only-indels --recode --recode-INFO-all --out  genotype_id_indel
[sunchengquan 14:40:40 ~/scq/GWAS/vcftools_filtering]
vcftools --vcf genotype_id.vcf --remove-indels --recode --recode-INFO-all --out  genotype_id_snp

根据ALLELE过滤

  • –maf < float > MAF最小值过滤
  • –max-maf < float > MAF最大值过滤
vcftools --vcf genotype_id.vcf  --maf 0.05 --min-alleles 2 --max-alleles 2 --recode --recode-INFO-all --out genotype.id.maf0.05.allele2

根据基因型数值过滤

  • –min-meanDP < float >
  • –max-meanDP < float >根据测序深度进行过滤
  • –hwe < float >
  • –max-missing < float >完整度,该参数介于0,1之间
[sunchengquan 14:41:40 ~/scq/GWAS/vcftools_filtering]
vcftools --vcf genotype_id.vcf --minDP 3 --maxDP 100 --min-meanDP 3 --recode-INFO-all --recode --out genotype_id_filter_DP
[sunchengquan 14:42:40 ~/scq/GWAS/vcftools_filtering]
vcftools --vcf genotype_id.vcf --remove-indels --max-missing 0.8 --maf 0.05 --min-alleles 2 --max-alleles 2 --hwe 0.01 --recode --recode-INFO-all --out genotype.id.snp.hwe0.01
[sunchengquan 14:43:40 ~/scq/GWAS/vcftools_filtering]
vcftools --vcf genotype_id.vcf --max-missing 0.8 --maf 0.05 --min-alleles 2 --max-alleles 2 --recode --recode-INFO-all --out genotype.id.int0.8maf0.05.allele2

根据材料过滤

  • –indv
  • –remove-indv
  • –keep < filename >
  • –remove < filename >
  • –max-indv
[sunchengquan 14:43:40 ~/scq/GWAS/vcftools_filtering]
grep "#CHROM" genotype_id.vcf |cut -f 10-50 |tr '\t' '\n' > sample_id.txt
[sunchengquan 14:44:40 ~/scq/GWAS/vcftools_filtering]
vcftools --vcf genotype_id.vcf --keep sample_id.txt --recode --recode-INFO-all --out subset.sample
  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
CMake是一个跨平台的自动化构建工具,可以用于生成各种不同类型的构建文件,包括Makefile、Visual Studio解决方案、Xcode项目等。下面是CMake的使用方法详解: 1. 安装CMake 首先需要在官网上下载并安装CMake软件。安装完成后,可以在命令行中输入cmake --version来确认是否安装成功。 2. 创建一个CMakeLists.txt文件 在项目根目录下创建一个名为CMakeLists.txt的文件,该文件是CMake的核心配置文件,定义了项目的构建规则。可以使用文本编辑器或者IDE来创建这个文件。 3. 设置项目信息 在CMakeLists.txt文件中,需要设置项目的基本信息,包括项目名称、版本号、语言等。这可以通过使用project命令来实现。例如: ``` project(MyProject VERSION 1.0 LANGUAGES CXX) ``` 这里设置了项目名称为MyProject,版本号为1.0,使用C++作为编程语言。 4. 定义源文件 在CMakeLists.txt文件中,需要定义项目的源文件。可以使用add_executable或add_library命令来添加源文件。例如: ``` add_executable(myapp main.cpp) ``` 这里添加了一个名为myapp的可执行文件,它的源文件是main.cpp。 5. 添加依赖库 如果项目依赖于其他库,需要使用find_package或者add_subdirectory命令来添加依赖库。例如: ``` find_package(Boost REQUIRED COMPONENTS filesystem system) include_directories(${Boost_INCLUDE_DIRS}) target_link_libraries(myapp ${Boost_LIBRARIES}) ``` 这里添加了一个名为Boost的库,它的组件是filesystem和system。 6. 设置编译选项 在CMakeLists.txt文件中还可以设置编译选项,例如编译标志、链接标志等。可以使用target_compile_options和target_link_libraries命令来设置编译选项。例如: ``` target_compile_options(myapp PRIVATE -Wall -Wextra) target_link_libraries(myapp pthread) ``` 这里设置了编译标记为-Wall和-Wextra,链接标记为pthread。 7. 构建项目 完成以上步骤后,就可以使用cmake命令来生成构建文件,例如: ``` mkdir build cd build cmake .. ``` 这里在项目根目录下创建了一个build目录,并在其中使用cmake命令生成Makefile文件。 最后,使用make命令来编译和构建项目。例如: ``` make ``` 这里编译和构建了项目,并生成myapp可执行文件。 以上就是CMake的使用方法详解。通过CMake,可以方便地管理项目的构建过程,实现跨平台的构建。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值