您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何進行R語言用DNA序列做主成分的分析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
之前也有人留言問過如何用DNA序列做主成分分析,當時我也不知道,但是大體有一個思路 就是先比對,然后把比對的數據轉換成通常用的snp數據應該就可以了,但是也僅限于思路,完全不知道如何操作,今天坐車回家,路上無聊,翻了一下電腦上保存的一些資料,發現了一個辦法:可以借助R語言的adegenet
包,用到的函數是fasta2genlight()
The function fasta2genlight extracts SNPs from alignments with fasta format. 從比對好的fasta文件中提取snp數據
adegenet這個包第一使用需要先安裝,直接運行如下命令
install.packages("adegenet")
今天的推文使用的數據集是這個包的內置數據集,首先是獲取這個數據集的存儲路徑
dfpath<-system.file("files/usflu.fasta",package="adegenet")
dfpath
library(adegenet)
flu<-fasta2genlight(dfpath,chunkSize = 10,parallel = F)
flu
library(ggplot2)
snpposi.plot(position(flu),genome.size = 1700,codon = F)+
theme_bw()
snpposi.plot(position(flu),genome.size = 1700,codon = T)+
theme_bw()
這個圖如果分面畫成山脊圖的形式可能會更好看,但是自己目前還不知道如何實現
snpposi.test(position(flu),genome.size = 1700)
這一步的時間可能會比較長
df.pca<-glPca(flu,nf=3)
df.pca.scores<-as.data.frame(df.pca$scores)
df.pca.scores
df.pca.scores$population<-ifelse(df.pca.scores$PC1>0,"pop1",
ifelse(df.pca.scores$PC2>1,"pop2","pop3"))
library(ggplot2)
ggplot()+
geom_point(data=df.pca.scores,
size=2,
aes(x=PC1,y=PC2,
color=population))+
theme_bw()+
stat_ellipse(data=df.pca.scores,
aes(x=PC1,y=PC2,fill=population),
geom = "polygon",alpha=0.2,lty="dashed",color="black")
關于如何進行R語言用DNA序列做主成分的分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。