目的:對(duì)群體結(jié)構(gòu)和親緣關(guān)系進(jìn)行評(píng)估以確定使用的統(tǒng)計(jì)模型和獲得相應(yīng)的矩陣
評(píng)估內(nèi)容(遺傳上差異過大應(yīng)剔除,相似性高的保留其一)
Structure是與PCA、進(jìn)化樹相似的方法,就是利用分子標(biāo)記的基因型信息對(duì)一組樣本進(jìn)行分類,分子標(biāo)記可以是SNP、indel、SSR… …當(dāng)然,對(duì)于重測(cè)序應(yīng)用的最多的還是SNP。進(jìn)化樹和PCA本質(zhì)上都是計(jì)算樣本序列間的差異程度,然后利用兩兩差異度聚類(進(jìn)化樹)或降維(PCA)來實(shí)現(xiàn)對(duì)樣本的分類。structure本質(zhì)上使用了與PCA、進(jìn)化樹完全不同的思路。
一、群體結(jié)構(gòu):構(gòu)建系統(tǒng)發(fā)育樹(必備)
同一物種內(nèi)序列差異不大構(gòu)建NJ樹(mega),序列差異較大,不同種構(gòu)建ML樹(RAxML),貝葉斯樹(ExaBayes)
常用的編輯和顯示樹圖的軟件有TreeView、FigTree、MEGA、ITOL(http://itol.embl.de/)、R包(ggtree、APE)等。
進(jìn)化樹美化:https://itol.embl.de/
二、主成分分析
參考:「群體遺傳學(xué)實(shí)戰(zhàn)」第二課: 畫出和文章幾乎一樣的PCA圖
主成分分析(PCA)是一種線性降維方法,能從紛繁復(fù)雜的數(shù)據(jù)中抽離出關(guān)鍵因素,用來區(qū)分不同的樣本。這里介紹以下三款:
Plink:https://www.cog-genomics.org/plink/
GCTA:https://cnsgenomics.com/software/gcta/
EIGENSOFT:https://github.com/DReichLab/EIG
無論使用哪款軟件,始終都要記得它們最初為人類基因組設(shè)計(jì),因此一定要關(guān)注和染色體有關(guān)的參數(shù)。例如Plink一定要加上?--allow-extra-chr允許非標(biāo)準(zhǔn)的染色體編號(hào)。
1、plink進(jìn)行PCA分析
#將vcf文件轉(zhuǎn)換為plink的ped和map格式?
plink --vcf watermelon_414acc_SNP2.vcf.gz --recode --out watermelon_414acc --const-fid --allow-extra-chr
#將ped和map轉(zhuǎn)換為bed、bim、fam格式
plink --allow-extra-chr --file watermelon_414acc --noweb --make-bed --out watermelon_414acc??
進(jìn)行PCA計(jì)算
plink --allow-extra-chr --threads 20 -bfile watermelon_414acc --pca 20 --out watermelon_414acc
這一步會(huì)得到兩個(gè)文件,一個(gè)是以.eigenval結(jié)尾的文件,記錄特征值,用來計(jì)算每個(gè)PC所占的比重。另一個(gè)是.eigenvec結(jié)尾的文件,記錄特征向量,用于坐標(biāo)軸。隨后用ggplot2繪制pca圖。
用plink的EIGENSOFT可以在分析時(shí)自動(dòng)剔除離群值、做LD擬合等等。經(jīng)過初步的分析,確定要剔除的離群值后,用plink的--keep和--remove參數(shù)剔除個(gè)體,值分析特定樣本。它們要求輸入文件為兩列,一列是樣本所在的群體編號(hào),一列是樣本編號(hào)。以剔除CN樣本為例,它的樣本編號(hào)為WM439,所在群體是0。代碼如下:
echo '0\tWM439' > remove.txt
plink --remove remove.txt --allow-extra-chr -bfile watermelon_414acc --pca 20 --out watermelon_414acc_no_cn?
2、GCTA進(jìn)行PCA分析
要求染色體的編號(hào)一定得是數(shù)字,不然在讀取bim結(jié)尾的文件時(shí),一定會(huì)報(bào)illegal chr number錯(cuò)誤。
三、Admixture繪制群體結(jié)構(gòu)圖
參考:GWAS 學(xué)習(xí)之a(chǎn)dmixture、、Admixture:一款快速分析群體遺傳結(jié)構(gòu)的軟件、、【一起學(xué)生信】群體結(jié)構(gòu)圖形—structure堆疊圖
群體遺傳學(xué)中測(cè)出很多個(gè)個(gè)體,得到了最終的SNP vcf文件,需要將其分成群體,看哪幾個(gè)物種聚在一起。一般使用的軟件是STRUCTURE,但是STREUTURE運(yùn)行速度極慢,后面frappe軟件提升了速度,但是也不是很快;admixture憑借其運(yùn)算速度,成為了主流的分析軟件。
admixture的下載:http://software.genetics.ucla.edu/admixture/download.html? ?不需要安裝,解壓出來即可使用
admixture輸入文件:經(jīng)plink處理后的.bed文件
1、創(chuàng)建PLINK?的-bed?文件
plink --noweb --file bw.chip --geno 0.05 --maf 0.05 --mind 0.05 --make-bed --out bw.chip? #這里包含了數(shù)據(jù)質(zhì)控過濾
生成bed、bim、fam三種文件
2、用Admixture軟件構(gòu)建群體遺傳結(jié)構(gòu)和群體世系信息
K是樣本所包含的亞群或者祖先數(shù),若不知理想的K值,可以設(shè)定K=1,2,3,4,5,用admixture進(jìn)行計(jì)算,命令如下:
for K in 1 2 3 4 5 6 7; do admixture --cv hapmap3.bed $K | tee log${K}.out; done
3、提取出CV值,確定最佳分群數(shù)
grep -h CV log*.out
提取CV值后,可以得到上一步得到的不同K值的錯(cuò)誤率數(shù)據(jù),一般認(rèn)為CV error最小值為最佳K值。
4、使用R畫圖
tbl=read.table("hapmap3.3.Q")
pdf("/USER/XXX/Project/xj/reseq/result/11.admixture/Q7.pdf")
barplot(t(as.matrix(tbl)), col=rainbow(3),xlab="Individual #", ylab="Ancestry", border=NA)?
dev.off()
本例繪制的為K=3時(shí)的圖,結(jié)果如下(供參考)