#! /usr/bin/perl -w
use strict;
my $file = shift or die "Usage: scanTF.pl <promoters-files>\n";
my %targets;
my $core="TGACTC";
if( $file =~ m/\.gz$/) {
open(I,"zcat $file | ") or die "Couldn't open $file\n";
} else {
open(I,"$file") or die "Couldn't open $file\n";
}
my ($name, $seq);
while(<I>){
chomp;
if ( m/^>/) {
# first search motif in the previous sequence:
if ( defined $name && $seq) {
if($seq =~ m/(a[ga]$core[ta])/i){
$targets{$name} = $1;
}
}
# start a new sequence :
( $name = $_ ) =~ s/^>(\S+)\s*.*/$1/;
$seq = "";
} else {
$seq .= $_;
}
}
close(I);
my $out_file = "GCN4targets.txt";
open(O,">$out_file") or die "Couldn't open $out_file\n";
while( my($k,$v) = each(%targets) ){
print O "$k\t$v\n";
}
close(O);