#!/usr/bin/perl
# sucht sämltliche Motive der Transfac Datenbank unter /scr/gintonic/sonja/TRANSFAC/
# in einer übergebenen fasta Datei und schreibt ins $PWD mit der Endung .pwmatch das Ergenis im Tab format
# wie es von den xmgrace tools verarbeitet werden kann

if(@ARGV == 0) {
	print "Dieses Tool sucht Transfac Motive in dieser Sequenz\nBitte Fasta Datei angeben!\n";
	exit;
}

my $seq_file = $ARGV[0];
my $pwmatch_file = $ARGV[0] . ".pwmatch";



my $transen = `ls /homes/biertank/praktikum/TRANSFAC/M*`;
$transen =~ s/.*pwm\n//g;
#print $transen;
my @transenhaufen = split(/\n/,$transen);

foreach $transe (@transenhaufen) {
		open(FILEIN, "<$transe") || die ("kann net offnen datei.");
		my $line = <FILEIN>;
		close(FILEIN);
		my $length = 0;	
		#print $line;
		while ($line =~ /\s*(\d+)\s*/ig) { $length++ }
		#print $length."\n";
		#exit;
		
		if($length>0) {
			my $score = ((0.6*$length));
			my $befehl = "/homes/biertank/praktikum/sicher/bin/pwmatch ".$score." ".$transe." ".$seq_file;		
			#print "\n---\n".$befehl."\n--\n\n";
			my $result = `$befehl`;
					
				
			if(!($result =~ /0 matches found/)) {
			
			my $pos;
			my $res_score;
				
			if($result =~ /max score = (.*) at pos. (.*)\n/) {
				$res_score = $1; 
				$pos = $2;
			}
			#my @splitzeugs = split(/\n/,$result);
			#foreach my $splitline (@splitzeugs) {
			#	if($splitline =~ /pos (.*) weight (.*)/) {
			#		$pos = $1;
			#		$res_score = $2; 
			my $motiv = `basename $transe`;
			$motiv =~ s/[\s]//g;
			print 
				$pos."\t".(($pos+$length-1))."\t".$res_score."\t".$motiv."\t\tpwmatch\t\t".`basename $seq_file`;
			#	}							
				
				
			#	}
			}
			
		}
}
 
