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 :

affichage des valeurs d'une table de hash


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 38
    Points : 20
    Points
    20
    Par défaut affichage des valeurs d'une table de hash
    Bonjour à tous,
    J'ai un fichier ressemblant à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FBtr0071763	a-RA	FBgn0000008	188	212	CCCT_67
    FBtr0071763	a-RA	FBgn0000008	3494	3508	GTTC_1	
    FBtr0071763	a-RA	FBgn0000008	3532	3545	CGGG_2	
    FBtr0071763	a-RA	FBgn0000008	3532	3825	CGCT_12	
    FBtr0071764	a-RB	FBgn0000008	4141	4175	CGCT_48
    Et je souhaite compter pour chaque valeur dans ma 3é colonne, et pour chaque valeur dans ma 4é colonne, le nombre d'occurence,
    par exemple,
    avoir un fichier en sortie :
    FBgn0000008 3494 1 (ie 1 fois 2494 pour FBgn0000008)
    FBgn0000008 3532 2 (ie 2 fois 3532 pour FBgn0000008)
    etc ...
    J'ai donc fais ceci :
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    my $fichier = 'mon_fichier.txt';
    open my $fh, '<', $fichier or die "Impossible de lire le fichier $fichier\n";
     
    my %comptage ;
    while ( <$fh> ) {
    	chomp ;
    	my ($transcript,$transcript_ID,$gene,$start,$stop,$ID) = split "\t", $_;
    	$comptage{$gene}{$start} ++;
    }
    	while( my ($k,$v) = each(%comptage) ) {
    		print "$k \t $v\n";
    	}
     
     
    close $fh;
    Mais cela m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FBgn0051371 	 HASH(0x90366e8)
    FBgn0038108 	 HASH(0x9016dd0)
    Quelqu'un pourrait me dire comment afficher les valeurs de %comptage ?
    Merci d'avance.

  2. #2
    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
    Peut être que cela irait mieux en concaténant ton gène avec le start comme clé de ta table de hachage.

    du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    while ( <$fh> ) {
    	chomp ;
    	my ($transcript,$transcript_ID,$gene,$start,$stop,$ID) = split "\t", $_;
    	$comptage{join("\t",$gene,$start)}++;
    }
    close $fh;
     
     
    foreach my $gene_start(keys (%comptage)){
        print join("\t",$gene_start,$comptage{$gene_start})."\n";
    }

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/05/2007, 15h37
  2. Réponses: 2
    Dernier message: 15/12/2006, 10h31
  3. [MySQL] Liste deroulante et inscription des valeurs dans une table
    Par stefon dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 24/11/2006, 15h31
  4. Macro - Ecrire des valeurs dans une table
    Par gojaru dans le forum Access
    Réponses: 2
    Dernier message: 17/08/2006, 13h54
  5. Réponses: 2
    Dernier message: 17/05/2006, 21h35

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