可以使用工具 bcftools 中的 view 命令结合选项 -r 和 -s 来挑选特定的 SNP 位点。
- 选择感兴趣的样本,使用 -s 选项,比如选取样本 A、B、C:
bcftools view -s A,B,C input.vcf.gz -o output.vcf.gz
- 选择特定的区域,使用 -r 选项,比如选择染色体 1 上的某一区域:
bcftools view -r 1:100000-200000 input.vcf.gz -o output.vcf.gz
- 随机选择一定数量的 SNP 位点,可以使用 shuf 命令结合 head 命令。比如选择 1000 个 SNP 位点:
bcftools query -f '%CHROM\t%POS\n' output.vcf.gz | shuf | head -n 1000 | sort -k1,1n -k2,2n > selected_snps.txt
这个命令的含义是,首先使用 bcftools query 选取输出文件中 SNP 位点的染色体和位置信息,然后使用 shuf 对行进行随机排序,接着使用 head 选取前 1000 行(即 1000 个 SNP 位点),最后使用 sort 对选定的 SNP 位点按染色体编号和位置进行排序,并保存到 selected_snps.txt 文件中。
- 最后,使用 bcftools view 选取特定 SNP 位点,比如选取上一步骤中筛选出的 1000 个 SNP 位点:
bcftools view -T selected_snps.txt output.vcf.gz -o selected_snps.vcf.gz
这个命令的含义是,使用 -T 选项指定要选取的 SNP 位点列表所在的文件(即上一步骤生成的 selected_snps.txt 文件),从输出文件中选取特定的 SNP 位点,并将结果保存到 selected_snps.vcf.gz 文件中。