メモ書きです。
ADMIXTUREを回すにあたっては、@YF_bioさんの記事「populationsから出力したファイルでADMIXTURE解析をする」がたいへん詳しく書かれており、参考になります。そちらの記事ではStacksの出力ファイルを用いて解析を行っています。こちらではipyrad出力の.vcfファイルを用いてADMIXTUREを回したときのメモ書きを残しておきます。
環境
macOS 14.2.1
ipyrad 0.9.95
PLINK 1.90
ADMIXTURE 1.3.0
ADMIXTUREの導入については省きます。
ADMIXTUREのinputファイルには
・.ped
, .map
(PLINK形式)を使用する方法
・.bed
, .bim
, .fam
(PLINK バイナリ形式)を使用する方法
・.geno
, .ind
, .snp
(EIGENSOFT形式)を使用する方法
があるようです。
バイナリ形式が速そうなのでそちらの方法でやっています。
(EIGENSOFT形式をインプットにするのは触れてないのでわかりません)
.vcfからの変換(PLINK)
./plink --vcf nantyara.vcf --recode 12 --double-id --allow-extra-chr 0 --out nantyara_input
#ここはYF-bioさんと同じです
./plink --file nantyara_input --allow-extra-chr 0 --make-bed --out nantyara_input
これで.bed
まで変換します。
同時に.bim
と.fam
ができます。.nosex
と.log
もできます。
なお、フィルタリングもできる。前処理段階である程度フィルタリングしているかな、と思うのでしなくていいかも。
./plink --allow-extra-chr --bfile nantyara_input \
--geno 0.1 \
--maf 0.05 \
--indep-pairwise 50 5 0.2 \
--make-bed \
--out cleaned_nantyara_input
./plink --bfile cleaned_nantyara_input --missing --out check_missing
#データチェック
--missing produces sample-based and variant-based missing data reports
PLINKサイトより引用
ADMIXTUREでの解析
K=1からK=10までを解析します。ここからの流れもYF_bioさんの記事と同じですが、同じようなことを一応書いておきます。
for構文で一気に解析します。
for K in {1..10}; do ./admixture -C 0.0001 -s time --cv cleaned_for_admixture.bed $K | tee log${K}.out; done
#Cross-validationを.txtで保存
grep -h CV log*.out > CV-error.txt
cat CV-error.txt
#.Qファイルをまとめる
mkdir Qmatrix ; cp *.Q Qmatrix/ ; zip -r Qmatrix.zip Qmatrix/
あとはなんらかの手段でプロットするだけです。
Rでプロットする方法だけ書き残しておきます。
library(pophelper)
#任意の作業ディレクトリで
setwd("ninnino/sagyou/directory")
#Qmatrixに.Qファイルをまとめている
qfiles <- list.files(path="Qmatrix", pattern="*.Q", full.names=TRUE)
qlist <- readQ(files=qfiles)
p <- plotQ(qlist[c(1:1-)], imgoutput="join", returnplot=T, exportplot=F, basesize=11, showindlab=T)
print(p$plot[[1]])
#すると一枚に結果がまとまったデータが生成されます。やったね
以上です。
自身のメモついでの記事なので、雑なまとめですが参考になれば幸いです。
引用文献・サイト
・Alexander, D.H., Lange, K. 2011. Enhancements to the ADMIXTURE algorithm for individual ancestry estimation. BMC Bioinformatics 12: 246 https://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-12-246
・@YF_bio「populationsから出力したファイルでADMIXTURE解析をする」
・ADMIXTUREのマニュアル:http://dalexander.github.io/admixture/admixture-manual.pdf
・PLINKのマニュアル:https://www.cog-genomics.org/plink/1.9/
・ipyrad公式サイト:https://ipyrad.readthedocs.io/en/master/