2017-08-31 1 views
1

J'essaie de terminer la tâche très simple de lire dans un fichier fasta non-phasé et de le mettre en phase en utilisant singe, puis de calculer Le D de Tajima utilise du pégase, mais les données #my ne semblent pas lues correctement. Entrée et la sortie est comme #follows:utiliser ape pour mettre en phase un fichier fasta et créer un fichier DNAbin en sortie, puis tester le tajima D en utilisant le pegas

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

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

Je ne devrais pas avoir besoin de joindre toutes les données que je viens de le fichier généré, mais depuis la commande des données() était dans le manuel, j'executeed

data(DNAbin8c18) 

et obtenu

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

Je sais que les données() ne fonctionne que dans certains contextes, alors peut-être ce n'est pas une grosse affaire. J'ai regardé ce qui avait été chargé

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 

donc il semble que les données devraient être bien. À cause de cela, j'ai essayé ce que je veux faire

tajima.test(DNAbin8c18) 

et ai

Error: cannot allocate vector of size 2489.3 Gb

Beaucoup de gens ont complété ce même test en utilisant SNPs autant ou plus que j'ai, et aussi l'utilisation des fichiers FASTA, mais est-il possible que le mien soit trop grand, ou pouvez-vous voir un autre problème?

Le fichier de données peuvent être téléchargées sur le lien suivant
https://drive.google.com/open?id=0B6qb8IlaQGFZLVRYeXMwRnpMTUU

J'ai également envoyé et version antérieure de cette question, les données, les r-sig-génétique liste de diffusion, mais je ne entendu de retour.

Toutes les pensées seraient très appréciées.

Ella

+1

Avez-vous essayé d'exécuter 'tajima.test' sur un sous-ensemble de vos données? Il est probable que votre ensemble de données soit trop grand. Le problème n'est pas le nombre de snps mais le nombre d'échantillons. De plus, 'data' est seulement utilisé pour charger des objets qui viennent avec des paquets par ex. 'data (iris)'. – emilliman5

+0

En outre, il semble que 'tajima.test' a une limite de 50K-99,999 séquences (une séquence de 100K renvoie une erreur). Il va donc falloir réduire la taille de vos données. – emilliman5

+0

Merci pour cela.Je viens de recevoir une note du développeur me donnant une suggestion pour exécuter –

Répondre

1

Merci pour le commentaire. En effet, vous avez raison. Le développeur vient de m'envoyer un email avec les commentaires très utiles suivants. Le problème est que vos données sont trop grandes (trop de séquences) et tajima.test() a besoin de calculer la matrice de toutes les distances par paires. Vous pouvez cette vérification en essayant:

dist.dna(DNAbin8c18, "N") 

Une possibilité pour vous est d'échantillonner quelques observations et répéter au hasard cela plusieurs fois, par exemple:

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

Cela pourrait être:

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

Vous pouvez ajuster N et 'size =' pour avoir quelque chose de pas trop long à courir. Ensuite, vous pouvez regarder la distribution des colonnes de RES.