#!/usr/bin/perl -w
# 2003/11/6 - I. Dutour

# Les variables permettant de stocker les séquences Query et Sbjct
my ($seq_query, $seq_sbjct);

# Parcourir le fichier BLAST ligne par ligne, en concatenant les
# séquences Query et Sbjct

# Ignorer le début
while(<>) {
    last
	if (/^>.*/);
}

while ($ligne = <>) {
    chomp $ligne;
    @mots = split /\s+/, $ligne;
    if ( $ligne =~ /^Query/ ) {
	$seq_query .= $mots[2];
    } elsif ( $ligne =~ /^Sbjct/ ) {
	$seq_sbjct .= $mots[2];
    } 
}

# Initialisation des motifs à rechercher
my @motifs = ('AACAA','GTGA','CAGCT','TCGTAT','GGAG','N');

# Et quand vous les trouvez, les ranger dans des tables de hachage
my (%nb_query, %nb_sbjct); 

# Rechercher et stocker les séquences
foreach $motif (@motifs) {
    foreach $i (0..length $seq_query) {
	if ( $motif eq substr( $seq_query, $i, length $motif) ) {
	    $nb_query{$motif}++;
	}
    }
    foreach $i (0..length $seq_sbjct) {
	if ( $motif eq substr( $seq_sbjct, $i, length $motif) ) {
	    $nb_sbjct{$motif}++;
	}
    }
}

# Créer un rapport
print "Rapport Requete Séquence\n",
      "exécuté par ID le ", scalar localtime, "\n\n",
      "Note : N représente une donnée manquante\n",
      "dans la séquence chromosomique\n\n",
      "Longueur totale de la séquence requete : ",
      length $seq_query, " lettres\n", "Résultats pour Query :\n";

# Affiche les occurences dans Query
foreach $cle (sort @motifs) {
    print "\t << $cle >> trouvé $nb_query{$cle} fois.\n";
}

print "\nLongueur totale de la séquence <<Sbjct>> : ",
      length $seq_sbjct, " lettres\n", "Résultats pour Sbjct :\n";

# Affiche les occurences dans Sbjct
foreach $cle (sort @motifs) {
    print "\t << $cle >> trouvé $nb_sbjct{$cle} fois.\n";
}

