#!/usr/bin/perl -w
# 2003/12/16 - I. Dutour

# utilisation :
# 1) ./tout.pl kinases_map.txt          ==> idem affiche.pl
# 2) ./tout.pl kinases_map.txt 9        ==> idem chrom.pl

# A completer pour avoir :
# 2) ./tout.pl kinases_map.txt 9 chrom  ==> idem chrom.pl
# 3) ./tout.pl kinases_map.txt 95 annee ==> idem annee.pl

my ($file,$nombre,$question,@resultat);
my ($traitement,$args);

# Récupération arguments
die "Manque les arguments sur la ligne de commande\n" if (!defined(@ARGV));
($file, $nombre, $question) = @ARGV;

# Ouverture du fichier contenant le rapport
open (REP, $file) || die (print "cannot open \"$file\": $!\n"); 

# Choix du traitement en fonction des arguments
if (!defined($nombre)) {
    $traitement="afficher";
    $args="";
}
else {
    die "Nombre pas correct\n" if (!($nombre=~/^\d+$/));
    $traitement="chromosome";
    $args=$nombre;
}

# Début affichage
print "-----------------------------------------------------------------------------------\n";
print "Gene Symbol\tDate\tCytogenic Location\n";

# Traitement de chaque ligne
while (<REP>) {
    last
	if (/^$/);
    chomp; 
    @resultat=split (/\|/,$_);

    eval "$traitement($args)";
}

# Fin d'affichage
print "fin\n"; 
print "-----------------------------------------------------------------------------------\n";

#Fermeture du handle de fichier
close (REP) || die (print "cannot close \"$file\": $!");

###
# Fin du script
###

# Definitions des fonctions

sub afficher {
    print "$resultat[0]\t$resultat[2]\t$resultat[3]\n";
}

sub chromosome {
    my $num_chrom=$_[0];
    # $chromosome non defini si autre que chiffre
    ($chromosome)=($resultat[3] =~ /((Chr\.(\d+))|(\w+)[pqc])/);
    ($chromosome)=($chromosome =~ /(\d+)/);
    if ($chromosome && $chromosome==$num_chrom){
	afficher();
    }
}
