SNPassoc ne tournant pas sur des fichiers importants (plus de 500 lignes)

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Melanie White-Koning
Messages : 2
Enregistré le : 13 Juin 2017, 09:29

SNPassoc ne tournant pas sur des fichiers importants (plus de 500 lignes)

Messagepar Melanie White-Koning » 13 Juin 2017, 09:54

Je n'ai pas une très grande expérience de R, mais je m'en sers ponctuellement pour des packages spécifiques.

Je cherche à faire tourner le package SNPassoc sur différents fichiers.
Cela marche pour un fichier de taille 147 obs (jusqu'à 200 obs) et 99 variables mais quand je cherche à faire tourner avec des fichiers plus grands (500 ou 800 obs) j'ai le message d'erreur suivant.

Error in fisher.test(dep, var.co) : FEXACT error 40.
Out of workspace.

D'après ce que j'arrive à trouver sur internet, il s'agit d'un pb d'espace mémoire (car il essaie de faire un test exact de Fisher avec trop de données).
Cela m'étonne un peu car c'est un package fait pour la génétique...
Je précise que j'ai déjà vu le lien https://stackoverflow.com/questions/14498719/r-loop-over-fisher-test-error-message
qui préconise d'augmenter la mémoire pour le test de Fisher mais comme c'est un package je ne sais pas et je ne préférerai pas avoir à aller le modifier...

J'ai essayé
- d'augmenter manuellement l'espace mémoire de R
- de changer le working directory, et essayé sur différents ordinateurs.
- de supprimer le workspace ("clear workspace")
mais cela ne marche pas mieux.

Y a-t-il une solution simple à ce pb? Auriez-vous des idées ?
Je vous mets ci-dessous le code R.

Celui qui marche :
install.packages("SNPassoc")
library(SNPassoc)

> TamEx<-read.table("E_Tox_72SNP_147.txt",header=TRUE, sep="\t", fill=TRUE)
> datSNPTamEx<-setupSNP(TamEx,28:99,sep="")
> tous<-WGassociation(Exeme, data=datSNPTamEx, model="all")
> summary(tous)
SNPs (n) Genot error Monomorphic Significant* (n)
72 0 1.4 1 1.4

*Number of statistically significant associations at level 1e-06
> print(tous)
comments codominant dominant recessive overdominant log-additive
rs4073054 - 0.10769 0.03829 0.29275 0.22842 0.04509
rs2307418 - 0.90868 0.75353 0.79649 0.71239 0.80206
rs2307424 - 0.00002 0.19121 0.00000 0.37250 0.00359

....

Celui qui ne marche pas :
TamTox<-read.table("T_Tox_92SNP_855.txt",header=TRUE, sep="\t", fill=TRUE)
> datSNPTamTox<-setupSNP(TamTox,44:135,sep="")
> tous<-WGassociation(Endo, data=datSNPTamTox, model="all")
Error in fisher.test(dep, var.co) : FEXACT error 40.
Out of workspace.


Merci d'avance pour l'aide que vous pourrez m'apporter.

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: SNPassoc ne tournant pas sur des fichiers importants (plus de 500 lignes)

Messagepar François Bonnot » 13 Juin 2017, 11:02

Bonjour,
Une piste (sans garantie de résultat) : dans l'appel de fisher.test(), ajouter l'argument simulate.p.value=TRUE (et éventuellement ajuster l'argument B)
François

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: SNPassoc ne tournant pas sur des fichiers importants (plus de 500 lignes)

Messagepar Mickael Canouil » 13 Juin 2017, 12:40

Bonjour,

Le package SNPassoc est certes adapté aux données de génétiques, mais pas à n'importe quelle dimension selon la machine que vous utilisez.

La fonction que vous utilisez "WGassociation" avec l'argument "model = c("all")" indique que vous réalisez pas moins de 5 modèles par SNP. A cela, s'ajoute la complexité (potentielle) de votre modèle "Exeme" ou "Endo".
Ainsi, R a besoin de garder en mémoire l'ensemble des résultats générés par SNP et par modèle. Si vous travaillait sur un ordinateur fixe ou portable, une solution pour réduire l'espace mémoire requis serait de réaliser les modèles de façon séparés: codominant, dominant, récessif, ..., en changeant la valeur de "model". Puis d'aggréger vos résultats à la fin.

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Melanie White-Koning
Messages : 2
Enregistré le : 13 Juin 2017, 09:29

Re: SNPassoc ne tournant pas sur des fichiers importants (plus de 500 lignes)

Messagepar Melanie White-Koning » 13 Juin 2017, 14:56

Bonjour François et Mickael,
Merci pour vos réponses.
Je vais essayer de faire tourner par modèle comme vous le suggérez.
François, comment fait-on pour modifier le code du package?
Bonne journée
Mélanie

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: SNPassoc ne tournant pas sur des fichiers importants (plus de 500 lignes)

Messagepar François Bonnot » 13 Juin 2017, 15:58

comment fait-on pour modifier le code du package?

Ce n'est pas toujours évident.
Il y a des éléments de réponse ici :
http://forums.cirad.fr/logiciel-R/viewtopic.php?t=1688
Il faut commencer par chercher quelle fonction du package appelle fisher.test()
Comme le résultat n'est pas garanti, à mon avis il faut éviter d'y passer trop de temps et en cas d'échec se tourner vers une autre solution (ordinateur avec plus de mémoire).
François

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: SNPassoc ne tournant pas sur des fichiers importants (plus de 500 lignes)

Messagepar Mickael Canouil » 13 Juin 2017, 16:15

François Bonnot a écrit :Comme le résultat n'est pas garanti, à mon avis il faut éviter d'y passer trop de temps et en cas d'échec se tourner vers une autre solution (ordinateur avec plus de mémoire).

Voici des outils alternatifs permettant de réaliser des analyses génétiques à grande échelle:
PLINK
snptest

Sous R bioconductor:
snpstats
Mickaël
mickael.canouil.fr | rlille.fr


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité