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 :

correspondances entre arrays


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut correspondances entre arrays
    Bonjour,

    J'ai deux tableaux:


    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
    @TabeauConsensus
     
     
    $VAR75 = [
               'C',
               'T'
             ];
    $VAR76 = [
               'G'
             ];
    $VAR77 = [
               'A',
               'T'
             ];
    $VAR78 = [
               'A',
               'G'
             ];
    $VAR79 = [
               'A',
               'T'
             ];

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    my %Correspondances =
    (
            qw(GA) => 'R',
            qw(GT) => 'K',
            qw(GC) => 'S',
            qw(AT) => 'W',
            qw(AC) => 'M',
            qw(TC) => 'Y',
            qw(GAT) => 'D',
            qw(GAC) => 'V',
            qw(GTC) => 'B',
            qw(ATC) => 'H',
            qw(ATCG) => 'N',
    );
    Il faudrait quelque chose comme ça ^^ mais qui fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (my $j =0; $j<@TableauConsensus; $j++)
    {
                    @{$TableauConsensus[$j]} = $Correspondances{@{$TableauConsensus[$j]}};
     
    }
    Vu que c'est une égalité d'arrays, cela ne fonctionne pas. Existe t'il une façon plus simple que d'utiliser des boucles vérifiant une à une l'égalité des élémentes des 2 array? Peut-être avec map { $instances{$_}++ } @array1;

    Vous m'aviez précédemment aidée sur le forum avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    my @AccReq = ('AF148850','AF148851','AZERTY','X55640');
    my @AccTrouves = ('AF148850','AF148851','X55640');
     
     
    my %instances = ();
    map { $instances{$_}++ } @AccReq;
    map { $instances{$_}++ } @AccTrouves;
    my @items   = grep { $instances{$_} == 1 } keys(%instances);
    my @doubles = grep { $instances{$_} == 2 } keys(%instances);
     
    print("Items uniques : \n * "   . join("\n * ", @items) . "\n");
    print("Items en double : \n * " . join("\n * ", @doubles) . "\n");
    Est-ce ainsi qu'il faut que je procède? Et vérifier que @items soit vide?
    Ou existe-t'il plus simple?

    Merci pour votre aide,


    Jasmine,

  2. #2
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    euh déjà ton %correspondances a quelques problèmes, je ne pense pas que mettre des listes en tant que clés fonctionne

    dans cette situation, je transformerais les listes en string, et si l'ordre n'a pas d'importance, je les trierais d'abord pour m'assurer de ne pas louper une correspondance

    ensuite ce serait comme tu l'as dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (my $j =0; $j<@TableauConsensus; $j++)
    {
                    $TableauConsensus[$j] = $Correspondances{$TableauConsensus[$j]};
     
    }
    il y a probablement mieux

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

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Bonjour,

    Merci, c'est justement l'idée que j'avais eue sur le chemin du retour vers ma maison. Bon, c'est pas très élégant mais je pense que niveau CPU c'est le mieux à faire. Je vais faire comme ça.


    Jasmine,

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/11/2005, 14h25
  2. Correspondance entre formulaire et etat
    Par Marmouz dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 17h26
  3. Réponses: 9
    Dernier message: 02/09/2005, 15h44
  4. correspondance entre noms (bases et tables) et répertoires
    Par Eärendil dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/05/2005, 14h21

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