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

Langage Perl Discussion :

fonction grep pour tableaux


Sujet :

Langage Perl

  1. #1
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut fonction grep pour tableaux
    Bonjour,

    J'ai un petit problème :

    Voila ce que j'ai
    $Table_MUT{$Position_MUT}{$Type_MUT}=$Score_MUT;
    $Table_WT{$Position_WT}{$Type_WT}=$Score_WT;

    et ce que je veux
    1) Rechercher les positions n'étant pas communes
    2) Pour les positions communes à MUT et WT vérifier que les types et les scores sont bien égaux

    L'ennui c'est que je n'ai pas d'array pour utiliser la fonction grep.
    Vaut-il mieux que je fasse des boucles ou alors que je crée des arrays contenant mes positions puis faire quelque chose qui ressemblerait à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @Absent_Mut = grep(!exists($Table_MUT{$_}), @Position_WT);
    Je récupère les informations dans un fichier donc je crée mes hash en parallèle avec mes array mais cela rend l'information redondante. Les deux tableaux non indexés contiennent environ 600 entrées mais cela pourrait être bien plus.


    Merci,


    Jasmine,

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Voila, j'ai trouvé grâce à un vieux script où Jedai m'avait aidé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @Absent_WT = grep{!exists $Table_WT{$_}} keys(%Table_MUT);

    Merci,


    Jasmine,

  3. #3
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Et pour la suite?
    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
    my @Absent_MUT = grep{!exists $Table_MUT{$_}} keys(%Table_WT);
    if(@Absent_MUT > 0)
    {
            print "\n\nPosition(s) de la séquence sauvage n'existant pas dans la séquence mutée\n";
            foreach (@Absent_MUT){print "$_\n";}
    }
     
    my @Absent_WT = grep{!exists $Table_WT{$_}} keys(%Table_MUT);
    if(@Absent_WT > 0)
    {
            print "\n\nPosition(s) de la séquence mutée n'existant pas dans la séquence sauvage\n";
            foreach (@Absent_WT){print "$_\t";}
    }
    print "\n\n";
     
    # Récupération des valeurs communes aux deux séquences
    my %instances = ();
    map { $instances{$_}++ } keys(%Table_MUT);
    map { $instances{$_}++ } keys(%Table_WT);
    my @Commun = grep { $instances{$_} == 2 } keys(%instances);
     
     
    # Pour les positions communes à MUT et WT vérifier que les types et les scores sont bien égaux
     
    ...

    Pour les positions communes à MUT et WT vérifier que les types et les scores sont bien égaux.
    J'ai une array contenant les positions communes.
    Je ne vois pas comment faire sans boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    foreach my $Com (@Commun)
    {
     
           analyse des 2 arrays
           @{$Table_WT{$Com}}
           @{$Table_MUT{$Com}}
           Comparer les types et si ils sont égaux comparer les scores
           Mon but est de récupérer ce qui est différent entre WT et MUT
     
    }
    Chaque position ne peut avoir qu'un seul type et chaque position est évidemment unique dans une séquence (2 séquences : WT ou MUT).

    Merci,


    Jasmine,

  4. #4
    Membre confirmé
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Je pense que le mieux, pour toi, est peut-être de créer un nouveau hash avec les positions communes pour clés et les résultats de comparaison pour données. Du coup, il n'est peut-être pas indispensable de créer un array avec les positions communes.

  5. #5
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    En fait, j'ai crée une hash dont la clé est la position et la valeur la concaténation du type et du score. Ensuite, je les récupère individuellement par une ExpReg. De cette façon, j'évite donc l'array commune.

    Jasmine,

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

Discussions similaires

  1. Ajout injection pour tableaux, fonction en argument
    Par seb92400 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/10/2008, 12h48
  2. fonctions expand/collapse pour tableaux
    Par destructive dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/04/2007, 10h43
  3. Réponses: 6
    Dernier message: 12/04/2007, 20h30
  4. [Tableaux] Fonction utile pour tableau
    Par jpascal dans le forum Langage
    Réponses: 2
    Dernier message: 27/12/2006, 15h16
  5. Réponses: 3
    Dernier message: 02/09/2002, 18h49

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