VCFからPopCluster (Wang 2022) 用data fileを生成するスクリプト
#研究
2023-02-13
新しい集団構造解析ソフトウェアPopCluster
Wang, J. Fast and accurate population admixture inference from genotype data from a few microsatellites to millions of SNPs. Heredity 129, 79–92 (2022). https://doi.org/10.1038/s41437-022-00535-z
某さんのPopCluster紹介転載
(Wangさん)本人が言うには,kinshipも考慮してくれて,STRUCTUREやADMIXTUREではでないもんがでる.と言うてました.STRUCTUREは時間かかるしデータが多いとアカン.ADMIXTUREはサンプルがアンバランスやと全然アカン.
それらをクリアしたのが「PopCluster」である.と言うてました.
VCFからスタートしてPopClusterの2つのインプットファイルのうちのひとつ,data fileを作るスクリプト。
MacOS前提で覚え書き程度です。
parameter fileの方はマニュアルを丁寧に読んで,Exampleのファイルを改変して作ってください。
結果の図示については #PopCluster_(Wang_2022)_のAdmixture_analysisの結果を自動で図示する も参照してみてください。
code: vcf2popcluster.sh
# usr/bin/sh
# Keisuke Onuki 2022-10-13
# Keisuke Onuki 2023-02-09 更新 headerの自動生成とmissingを含むVCFに対応。
# LD pruningを行ったVCFファイルから,WangのPopCluster解析に用いるdata fileを生成するスクリプト。
# 生成されるのは,AllSNP=1のときのみ使える"Individual genotypes in 1 column"タイプのdata fileである。ゲノムワイドデータを用いた解析を念頭におく。
# bcftoolsとgsed(LinuxならsedでOK)が必要。なければbrewでインストールする。
# usage:
# sh vcf2popcluster.sh LD_PRUNED.vcf OUT_PREFIX
INPUT=$1
OUT_PREFIX=$2
# header部分を自動生成
bcftools query -l $INPUT | gsed -z 's/\n/ /g; s/ $/\n/' > $OUT_PREFIX.dat
# 自分で作ったheader(HEADER.txt)を使いたい場合は上の行をコメントアウトして下のようなコマンドを加えること
# cat HEADER.txt > $OUT_PREFIX.dat
bcftools query -f '%GT\n' $INPUT | \
gsed 's/0\/0/0/g' | \
gsed 's/0|0/0/g' | \
gsed 's/0\/1/1/g' | \
gsed 's/0|1/1/g' | \
gsed 's/1|0/1/g' | \
gsed 's/1\/1/2/g' | \
gsed 's/1|1/2/g' | \
gsed 's/\.\/\./3/g' >> $OUT_PREFIX.dat # missingは「3」に置き換えている
echo $OUT_PREFIX.dat was created. PLEASE CHECK IT CAREFULLY.