2017-08-31 23 views
1

我試圖完成非常簡單的任務閱讀一個unphased fasta文件,並逐步使用猿,然後計算田島的D使用pegas,但#my數據似乎沒有正確讀取。輸入和輸出是#follows:使用猿來分階段的fasta文件,並創建一個DNAbin文件作爲輸出,然後測試tajima的D使用pegas

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

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

我應該不需要附加任何數據,因爲我剛剛生成的文件,但由於數據()命令是在手冊中,我executeed

data(DNAbin8c18) 

,並得到

Warning message: In data(DNAbin8c18) : data set ‘DNAbin8c18’ not found

我知道,數據()只能在特定的語境,所以也許這並不是什麼大不了的事。我看着什麼已經加載

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) 

,並得到

Error: cannot allocate vector of size 2489.3 Gb

很多人已經完成了使用盡可能多或多個SNP,我有,並且還使用FASTA文件此相同的測試,但是有可能我的太大了,或者你能看到另一個問題嗎?

數據文件可以在下面的鏈接這一問題的
https://drive.google.com/open?id=0B6qb8IlaQGFZLVRYeXMwRnpMTUU

我也派和更早版本的下載,用數據,到R-SIG-遺傳學郵件列表,但我沒有聽到回來。

任何想法將不勝感激。

艾拉

+1

您是否曾嘗試在數據的子集上運行'tajima.test'?這可能是你的數據集太大了。問題不在於snps數量,而在於樣本數量。此外,'data'僅用於加載包裝附帶的對象,例如'數據(光圈)'。 – emilliman5

+0

此外,它看起來像'tajima.test'具有50K-99,999序列的限制(100K序列引發錯誤)。所以需要減少數據的大小。 – emilliman5

+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和'size ='以使其運行時間不會太長。然後你可以看看RES列的分佈。

相關問題