我想在adegenet中从没有定义群体的genepop文件开始进行PCA分析。 我导入了这样的数据:
datapop <- read.genepop('tous.gen', ncode=3, quiet = FALSE)
它可以工作,我可以在缩放数据后执行PCA。 但是我想根据它们的原始种群使用s.class在PCA轴上绘制结果/个体。我有一个vcf文件,每个人都有一个三个代码。我在R:
中导入了它pops_list <- read.csv('liste_pops.csv', header=FALSE)
但现在如何使用它来定义genind对象datapop
中的人口级别?
我试过这样的事情:
setPop(datapop, formula = NULL)
setPop(datapop)
&lt; - pops_list
但它不起作用;即使第一行也不起作用:我收到这条消息:
"Erreur : formula must be a valid formula object."
然后我应该如何在s.class中使用它? 谢谢 迪迪埃
答案 0 :(得分:0)
如果没有一个有效的例子,很难说,但也许你可以在这里找到问题的解决方案:How to add strata information to a genind
从您的示例和setPop方法的工作方式来看,您的行setPop(datapop, formula = NULL)
将无效,因为您不会定义任何内容。你真的必须这样做:
setPop(datapop) <- pops_list
同时还保证pops_list是具有适当格式的因素
答案 1 :(得分:0)
我知道这有点晚了,但是要做的方法是将pops_list
添加为strata
,然后使用setPop()
选择某个列:
strata(datapop) <- pops_list
setPop(datapop) <- ~myPop # set the population to the column called "myPop" in the data frame