使用ape来分析fasta文件并创建一个DNAbin文件作为输出,然后使用pegas测试tajima的D

时间:2017-08-31 19:11:22

标签: r bioinformatics

我试图完成一个非常简单的任务,即读取未定相的fasta文件并使用猿进行定相,然后使用pegas计算田岛的D,但是#my数据似乎并不合适正确阅读。输入和输出为#follows:

library("ape")
library("adegenet")
library("ade4")
library("pegas")

DNAbin8c18 <- read.dna(file="fasta8c18.fa", format="f")

我不需要附加任何数据,因为我刚刚生成了文件,但由于data()命令在手册中,我执行了

data(DNAbin8c18)

得到了

  

警告信息:在数据中(DNAbin8c18):未找到数据集'DNAbin8c18'

我知道data()只能在某些情况下使用,所以这可能不是什么大问题。我查看了已加载的内容

DNAbin8c18

817452 DNA sequences in binary format stored in a matrix.

All sequences of same length: 96 

Labels: 
CLocus_12706_Sample_1_Locus_34105_Allele_0 [BayOfIslands_s08... 
CLocus_12706_Sample_2_Locus_31118_Allele_0 [BayOfIslands_s08... 
CLocus_12706_Sample_3_Locus_30313_Allele_0 [BayOfIslands_s09... 
CLocus_12706_Sample_5_Locus_33345_Allele_0 [BayOfIslands_s09... 
CLocus_12706_Sample_7_Locus_37388_Allele_0 [BayOfIslands_s09... 
CLocus_12706_Sample_8_Locus_29451_Allele_0 [BayOfIslands_s09... ...

More than 10 million nucleotides: not printing base composition

所以看起来数据应该没问题。因此,我尝试了我想做的事情

tajima.test(DNAbin8c18)

得到了

  

错误:无法分配大小为2489.3 Gb的矢量

很多人使用我拥有的SNP和使用FASTA文件完成了同样的测试,但是我的太大了,或者你能看到另一个问题吗?

可以通过以下链接下载数据文件     https://drive.google.com/open?id=0B6qb8IlaQGFZLVRYeXMwRnpMTUU

我还将此问题的早期版本和数据一起发送到r-sig-genetics邮件列表,但我还没有收到回复。

任何想法都会非常感激。

艾拉

1 个答案:

答案 0 :(得分:1)

感谢您的评论。的确,你是对的。开发人员只是通过以下非常有用的评论给我发了电子邮件。 问题是你的数据太大(序列太多)而tajima.test()需要计算所有成对距离的矩阵。您可以通过尝试进行检查:

dist.dna(DNAbin8c18, "N")

您的一种可能性是随机抽取一些观察结果,并重复多次,例如:

tajima.test(DNAbin8c18[sample(n, size = 1000), ])

这可能是:

N <- 1000 # number of repeats
RES <- matrix(N, 3)
for (i in 1:N)
    RES[, i] <- unlist(tajima.test(DNAbin8c18[sample(n, size = 10000), ]))

您可以调整N和&#39; size =&#39;有一些不太长的东西跑。然后你可以看一下RES列的分布。