Bonjour tout le monde!
J'ai un problème avec le RS-DBI sur R: j'utilise un package de BioConductor qui s'appelle GEOmetadb. C'est donc principalement un outil pour traiter avec une base de donnée ^^. J'ai écrit un petit script pour extraire et convertir des informations qui m'intéressent:
je ne vous ai mis que la première partie du if le reste étant similaire. Lorsque je lance ce code via R je n'ai aucun problème tout se passe bien. Par contre lorsque je le lance via un script bash c'est la fonction geoConvert qui pose problème:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #Transformation de l'argument organisme (hs|mm|rn) en valeur valable pour GEOMetadb organism<-switch(organisme, hs="Homo sapiens", mm="Mus musculus", rn="Rattus norvegicus") #Connexion à la base de donnée con<-dbConnect(SQLite(),paste(ori,"/GEOmetadb.sqlite",sep="")) #Requête: sélection des identifiants (gpl) de la table gpl quand l'organisme est celui spécifié sqlStatement<-paste("SELECT gpl FROM gpl WHERE organism LIKE","'%",organism,"%'",sep="") #Envoie de la requpete gpl_list<-dbGetQuery(con,sqlStatement) #conversion du résultat en objet utilisable facilement conversion<-geoConvert(gpl_list[,1]) if (length(args[3])!=0 && length(args[4])==0) { #Extraire un seul GSE, selon l'index GPL nb1<-args[3] #extraction des numéros de GSE sous forme de tableau gse<-as.data.frame(conversion$gse[nb1,2],stringsAsFactor=FALSE) #enregistrement des numéros de GSE dans un fichier write.table(unique(gse),paste(getwd(),"/",organisme,".gse",sep=""),sep="\t",row.name=FALSE,col.name=FALSE,quote=FALSE) dbDisconnect(con) }
Ce qui m'intrigue d'autant plus c'est que lorsque je fait une erreur sur l'argument principal de geoConvert en écrivant ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Erreur dans sqliteExecStatement(con, statement, bind.data) : RS-DBI driver: (error in statement: no such table: geoConvert) Calls: geoConvert ... dbGetQuery -> sqliteQuickSQL -> sqliteExecStatement -> .Call Exécution arrêtée
J'ai le message d'erreur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #conversion du résultat en objet utilisable facilement conversion<-geoConvert(gpl_list)
C'est donc bien que la fonction est connue, non? je suppose donc que j'ai un problème qui concernait bash et le RS-DBI driver. malheureusement je ne connais pas vraiment ce genre de choses. Si quelqu'un a une piste pour m'aider à résoudre ce problème ça serait super cool!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Erreur dans geoConvert(gpl_list) : invalid input GEO accession(s), right ones are like 'GSE1' or 'GPL1', or 'GSM1', or 'GDS1' Exécution arrêtée
Merci d'avance!
EDIT: si je lance le .R directement dans la console je n'ai pas de problèmes, comme lorsque je lance le script via l'interface R
Partager