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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
#!/usr/bin/perl -w
use strict;
use warnings;
use Bio::SeqIO;
use List::Util qw(sum);
my %hash=();
my %new=();
my @tab;
my @classe2 ;
my @classe3 ;
my @classe4 ;
my $gene;
open FILE, "corrige" or die $!;
while(my $ligne = <FILE>){
chomp $ligne;
if($ligne =~ /^#(gene.*)\t([0-9]*)$/){
$hash{$1}=$1;
@tab = ();
@classe2 = ();
@classe3 = ();
@classe4 = ();
}
elsif($ligne =~ /(.*)\t([0-9]*)\t(.*)$/){
my $gene=$1;
my $taille=$2;
my $classe=$3;
if (exists $hash{$gene}){
#print "$ligne\t$hash{$gene}\n";
if($classe eq "classeD" ){
push (@tab,$taille);
#somme de la colonne
my $somme = sum(@tab);
print "somme : $somme\n";
$new{$gene}{'classeD'} = $somme;
}
if($classe eq "classeS" ){
print "$ligne\n";
push (@classe2,$taille);
print "sss@classe2\n";
#somme de la colonne
my $somme = sum(@classe2);
print "somme : $somme\n";
$new{$gene}{'classeS'} = $somme;
}
if($classe eq "classeL" ){
print "$ligne\n";
push (@classe3,$taille);
print "sss@classe3\n";
#somme de la colonne
my $somme = sum(@classe3);
print "somme : $somme\n";
$new{$gene}{'classeL'} = $somme;
}
if($classe eq "classeT" ){
print "$ligne\n";
push (@classe4,$taille);
print "sss@classe4\n";
#somme de la colonne
my $somme = sum(@classe4);
print "sommeTTT : $somme\n";
$new{$gene}{'classeT'} = $somme;
}
}
}
}
foreach my $c (keys %new){
foreach (keys %{$new{$c}}){
print "$c\t$_\t$new{$c}{$_}\n";
}
} |