在LEA中使用struct2geno时,“不允许重复的'row.names'”

时间:2018-12-08 00:34:11

标签: r

我正在尝试使用LEA中的struct2geno将SNP数据的结构文件转换为geno文件

struct2geno ("gl.str", ploidy = 2, FORMAT = 2, extra.row = 1, extra.column = 0)

我的数据是二倍体,因此是ploidy = 2
我每个人都有2行数据,因此FORMAT = 2
我有一排标题,因此extra.row = 1
缺少的数据编码为-9。
第一列是ID,因此extra.column = 0是我认为不应该作为额外的列。也许是吗?

Image of part of the structure file

返回以下错误消息:

Error in read.table(input.file) : duplicate 'row.names' are not allowed

我读过duplicate 'row.names' are not allowed的无数问题,但我的问题都不是。
有人知道我做错了吗?谢谢。

2 个答案:

答案 0 :(得分:0)

我终于通过使用一条不同的路线解决了这个问题:

我有一个genlight文件。

我使用gl2gi

将genlight转换为genind

然后genind构造genind2structure

最后,使用struct2geno

构建基因

答案 1 :(得分:0)

感谢您提出答案。在您发表文章的几年后,我做了类似的事情,并认为如果有帮助,我会予以张贴。

#Step 1. Convert genlight object 'gl' to a structure file using package dartR.
gl2structure(gl, indNames = NULL, addcolumns = gl@pop, ploidy = 2, 
exportMarkerNames = TRUE, outfile = "gl.str", outpath = getwd(), verbose = 5)

#Step 2. In Notepad++ first add two new columns names 'ind' and 'pop', 
# separated by tabs to push the locus names by two columns.

#Step 3. Convert structure file to geno object using package LEA.
geno <-struct2geno("D:/add.path.here/LEA_analyses/gl.str", ploidy = 2, FORMAT=2,
extra.row=1, extra.column=2) 

一个好主意是要确保您以后再使用种群信息标记样品时始终了解样品的顺序。