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

Bioinformatique Perl Discussion :

RSPerl Utilisation de R in Perl


Sujet :

Bioinformatique Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut RSPerl Utilisation de R in Perl
    Bonjour,

    J'aimerais savoir si quelqu'un sait se servir de RSPerl, un module qui permet d'utiliser R à partir de Perl.
    Je bloque rien qu'au niveau de l'installation sur une distribution 10.04.
    Il y a énormément de variables d'environnements a reconfigurer et le tutorial n'est pas très clair.

    Un grand merci à celui qui pourra m'apporter de l'aide.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut RSperl suite
    Bon ça à l'air de parler à personne.
    Jvais quand même détaillé un peu ce que j'ai fait.

    The RSPerl-interface permet d'appeler des fonctions R dans Perl.
    Il est téléchargeable ici.

    Pour l'installer, j'ai executé la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     R CMD INSTALL -c -l /home/jp/Bureau/ --configure-args='--with-in-perl' RSPerl_0.92-1.tar.gz
    J'ai ensuite configuré les variables d'environnements avec un script qui est fourni dans le dossier RSPerl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if test -n "${LD_LIBRARY_PATH})" ;  then
     export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/jp/Bureau/RSPerl/libs:/usr/lib/R/lib
    elsecd ..
     export LD_LIBRARY_PATH=/home/jp/Bureau/RSPerl/libs:/usr/lib/R/lib
    fi
     
    if test -n "/home/jp/Bureau/RSPerl/perl" ; then
     if test -n "${PERL5LIB}" ; then
       export PERL5LIB=${PERL5LIB}:/home/jp/Bureau/RSPerl/perl
     else
       export PERL5LIB=/home/jp/Bureau/RSPerl/perl
     fi
    fi
    J'ai fait un essais avec les tests.pl dans le dossier RSPerl/tests/, cela fonctionne.

    J'ai voulu réaliser mon propre script, en utilisant un simple test de student mais il semble qu'il manque des dépendances.
    Pour ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/bin/perl
     
    use warnings;
    use R;
    use RReferences;
     
    &R::initR("--silent");
     
    my @tab1 = (1,2,3);
    my @tab2 = (5,4,3);
     
    my $res = &R::call("t.test", \@tab1, \@tab2);
     
    print "resultat : $res\n";
    J'ai l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Can't locate package RFunctionReference for @RReferences::ISA at test_rsperl.pl line 5.
    Pourtant dans les tests.pl, le module RReferences est employé et ne semble pas posé de problèmes. Ce script par exemple fonctionne:
    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
    use R;
    use RReferences;
    use warnings;
     
    &R::initR("--silent");
    &R::library("RSPerl");
     
    $z = &R::call("rnorm",1);
    printf "rnorm: $z\n";
     
    &R::call("x11");
     
    @x=1..3;
    &R::call("plot", \@x);
    &R::call("plot", (1,2));
    sleep(4);

    Si quelqu'un a une folle envie de s'y coller avec moi, ce serait cool.
    J'ai été surpris de voir qu'il n'y a plus de chose interfacé entre Perl et R.
    Voila Bonne journée.

  3. #3
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Je ne connaissais pas ce module mais il faut dire que je travaille en Perl ou en R mais pas les 2... J'ai donc essayé de tester ce module.

    Comme toi, les tests présents dans RSPerl marchent mais ton script non et renvoie le warning que tu as spécifié sans rien avoir dans res.

    Ce qui est embêtant c'est qu'en rajoutant le pragma use warnings dans le script de test de RSPerl, le même message apparaît. Il y a donc quelque chose qui ne va pas à l'intérieur du module RReferences.pm.

    En essayant d'appeler quelques fonctions simples de R (mean, sum etc.) tout fonctionne avec quand même toujours le même warning. Par contre, je n'ai jamais pu faire fonctionner le test de Student et même réussi à faire apparaître de nombreux messages warnings et d'erreurs dans RReferences.

    Donc pour l'instant, je n'ai aucunes pistes. J'essaierai de creuser plus tard.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    Merci.
    J'ai mis deux de mes collègues sur le coup...
    Et pareil que toi, le student passe pas...
    J'ai vu sur un blog qu'un mec avait réussi a le faire fonctionner
    http://www.compbiome.com/2009/10/rsp...thin-perl.html
    Si on arrive à trouver, on postera la solution mais on commence a desespérer...
    Bonne chance,tiens nous au courant.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    Bon je sais pas bien pourquoi, mais on a remplacé le RReference.pm par celui téléchargé la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://b-src.cbrc.jp/markup/RSPerl/inst/scripts/RReferences.pm?q=fundef:asString#l66
    et ca marche ....

  6. #6
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    J'étais arrivé aux mêmes conclusions : à savoir que le module RReferences avait un soucis. En regardant dans le module, j'avais repéré pas mal d'erreurs :
    - un cut en trop dans les commentaires ce qui fait que le modules ne se chargeait pas entièrement
    - l'utilisation de tie dans un contexte scalaire (classe RHashAccessor en en redéfinissant seulement la méthode FETCH et pas les méthodes TIESCALAR et STORE qui sont obligatoires). En plus, à mon avis il voulait plutôt faire cela dans un contexte de table de hachage en regardant le nom mais bon... passons.

    J'ai essayé pas mal de bidouilles mais sans vraiment avoir le résultat...

    Dans ton fichier qui date de la version 0.7, il ne passe pas cette classe RHashAccessor et les commentaires sont bien formatés (pas de cut en trop) donc c'est pour cela que ca fonctionne chez toi maintenant.

    D'ailleurs, pour ma culture : comment tu récupères le résultat du test depuis ta variable res car chez moi un print ne m'affiche que
    <RReferences> 1
    Encore une histoire de référence

    Enfin, je trouve que sa dernière version est un peu baclée et que, comme je l'ai vu sur certains forums, à la base RSPerl c'était plus pour faire du Perl avec R que l'inverse.

    Donc moi je préfères soit faire que l'un ou que l'autre mais pour ce qui est des interactions Per/R je ferai moi même mes scripts R que j'appelerai depuis Perl en utilisant la commande system.

  7. #7
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Juste un complément : as-tu testé les module Statistics::R et/ou Statistics::useR pour communiquer entre Perl et R ?

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

Discussions similaires

  1. [Talend] Utilisation de tMap avec PERL
    Par gaoussou dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 17/12/2007, 18h01
  2. utilisation de Mysql avec perl
    Par hunter99 dans le forum SGBD
    Réponses: 8
    Dernier message: 10/12/2007, 15h41
  3. utiliser les options en perl
    Par chti_juanito dans le forum Langage
    Réponses: 4
    Dernier message: 28/06/2007, 10h07
  4. Réponses: 6
    Dernier message: 30/05/2007, 17h31
  5. comment utiliser les API avec Perl?
    Par megapacman dans le forum Langage
    Réponses: 5
    Dernier message: 23/08/2006, 15h18

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