IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Extraire données à partir d'une url


Sujet :

R

  1. #1
    Membre à l'essai Avatar de vinserm
    Homme Profil pro
    recherche
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : recherche

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Points : 11
    Points
    11
    Par défaut Extraire données à partir d'une url
    Bonjour à tous,

    Je suis post doctorant en microbiologie et pour un de mes projets j'ai trouvé une page (http://www.ncbi.nlm.nih.gov/nuccore/...918823_gene_25) sur laquelle j'aimerais extraire les noms des gènes appelés ici xxx (/gene="xxx") dans un fichier puis leur associer une fonction.
    Ayant déjà utilisé un peu R auparavant pour des stats et des représentations graphiques, je voulais faire un script pour l'extraction des motifs qui m'intéressent. En voici le début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    URL    <- "http://www.ncbi.nlm.nih.gov/nuccore/AP001918.1#feature_8918823_gene_25"
    genes <- read.delim(URL)
    genes <- as.character(genes[,1])
    these <- grep("/gene=", genes)
    Cependant je n'arrive pas à récupérer spécifiquement le motif qu'il y a derrière "/gene="
    Est ce quelqu'un à des pistes à me donner ?
    Merci pour votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Janvier 2012
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2012
    Messages : 325
    Points : 888
    Points
    888
    Par défaut
    Utilise la fonction gsub pour remplacer "/gene=" par "" ou "/gene=(motif)" par "\\1".

  3. #3
    Membre à l'essai Avatar de vinserm
    Homme Profil pro
    recherche
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : recherche

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    merci pour cette fonction intéressante mais je n'arrive toujours pas à obtenir une liste dans laquelle tous mes gènes sont extraits, j'arrive au mieux à avoir une liste de nombres qui sans doute doivent correspondre à la position des "/gene="

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Janvier 2012
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2012
    Messages : 325
    Points : 888
    Points
    888
    Par défaut
    Vu que je pourrais en avoir besoin un jour je me suis un peu plus penché sur le problème.

    En fait il existe un package R pour requêter directement les bases de données ncbi : rentrez.
    Ça doit être plus pratique que de parser le html de leur site web.

  5. #5
    Membre à l'essai Avatar de vinserm
    Homme Profil pro
    recherche
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : recherche

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Très intéressant le package "rentrez", je le garde en tête pour les prochaines fois !

    Finalement, j'ai résolu mon problème en récupérant mes données à partir de l'URL pubmed (sequence.gb)
    sur le terminal $ grep/gene sequence.gb j'obtiens
    /gene="fimO"
    /gene="fimO"
    ...
    J'élimine "/" en utilisant la commande remplacer sur TextEdit.

    (Je n'arrive pas à le faire proprement sur R)

    La suite, sur R par contre, consiste à attribuer une description à chaque gène à partir d'un fichier (description.txt)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    geneid<-read.table(paste("description.txt",sep=""),header=TRUE,na.string=".",sep="\t")
    coding<-read.table("sequence.gb",header=TRUE,na.string=".",sep="\t")
    coding.new<-geneid[geneid[,"systname"] %in% t(coding),]
    write.table(coding.new,paste("sequence.new.txt",sep=""),append = FALSE,sep="\t",row.names=FALSE)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraire donné à partir d'une itération
    Par Tibwoo dans le forum LabVIEW
    Réponses: 1
    Dernier message: 10/02/2012, 22h13
  2. Récupérer une donnée à partir d'une URL
    Par pv77164 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/08/2011, 10h39
  3. Récupérer des données à partir d'une URL ?
    Par Bebert71 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/02/2009, 12h53
  4. [MySQL] Extraire les données à partir d'une liste déroulante dans une autre liste deroulante
    Par Amel_B dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/11/2008, 13h20
  5. [VBA-E] extraire des données à partir d'une autre feuille
    Par zzman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/01/2007, 13h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo