这篇文章给大家介绍R语言处理基因芯片测序得到的SNP数据的分析是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
相当于是每行是一个位点,每列是一个样本
这个数据集下载自 链接 https://popgen.nescent.org/StartSNP.html
今天推文的主要内筒也是参考自这个链接,这个链接的数据集是500多个样本,3000多个位点,我只选取了其中30个样本,996个位点
因为是csv格式存储,直接使用read.csv()
函数读入
df1<-read.csv("chip_snp_example.csv",header=T)
接下来是使用adegenet
包中的df2genind()
函数对数据进行整合
要求的是
这个要求样本是行,位点是列,所以要对读进来的数据进行转置
df2<-t(df1)
dim(df2)
df3<-df2[4:33,1:996]
df3[1:6,1:6]
mydata<-df2genind(df3,ploidy = 2,ind.names = rownames(df3),
sep="")
到这里数据就读入了,但是接下来我想构建一个分类树,这个教程里是没有的,想起来之前重复过的一个教程里有这个内容
教程的链接是 https://grunwaldlab.github.io/Population_Genetics_in_R/gbs_analysis.html
这个里的示例数据用到的是vcf格式文件,读入R语言后的数据对象是genlight
,我们当前读入的数据是genind
那么这两个数据格式能否相互转化呢?经过搜素找到了一个R语言包dartR
,对应的函数是gi2gl() Converts a genind object to genlight object
第一次使用进行安装
install.packages("dartR")
加载的时候遇到报错,提示没有SNPRelate
这个包,再单独安装一下就好了
BiocManager::install("SNPRelate")
library(dartR)
mydata1<-gi2gl(mydata)
library(poppr)
tree<-aboot(mydata1,tree = "upgma",
distance = bitwise.dist,
sample = 1000,
showtree = F)
library(ggtree)
ggtree(tree,layout = "circular")+
geom_tiplab()+
xlim(NA,0.12)
df.pca<-glPca(mydata1,nf=3)
df.pca.scores<-as.data.frame(df.pca$scores)
df.pca.scores
library(ggplot2)
ggplot(df.pca.scores,aes(x=PC1,y=PC2))+
geom_point(size=2,color="blue")+
theme_bw()
因为数据是随便构造的没有分组信息,就画一个简单的散点图就好了
关于R语言处理基因芯片测序得到的SNP数据的分析是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。