annotate Tools/Motif_search/testrules_galaxy.pl @ 0:229d36377838 draft

Uploaded
author amadeo
date Mon, 05 Sep 2016 05:53:08 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
229d36377838 Uploaded
amadeo
parents:
diff changeset
1 #!/usr/bin/perl -w
229d36377838 Uploaded
amadeo
parents:
diff changeset
2
229d36377838 Uploaded
amadeo
parents:
diff changeset
3 $|=1;
229d36377838 Uploaded
amadeo
parents:
diff changeset
4 use warnings;
229d36377838 Uploaded
amadeo
parents:
diff changeset
5 use strict;
229d36377838 Uploaded
amadeo
parents:
diff changeset
6 #Script that looks for genes that have motifs from a certain rule.
229d36377838 Uploaded
amadeo
parents:
diff changeset
7
229d36377838 Uploaded
amadeo
parents:
diff changeset
8 #Declaration of variables
229d36377838 Uploaded
amadeo
parents:
diff changeset
9 my %hash;
229d36377838 Uploaded
amadeo
parents:
diff changeset
10 my $line;
229d36377838 Uploaded
amadeo
parents:
diff changeset
11 my @cols;
229d36377838 Uploaded
amadeo
parents:
diff changeset
12 my @pos;
229d36377838 Uploaded
amadeo
parents:
diff changeset
13 my @motif;
229d36377838 Uploaded
amadeo
parents:
diff changeset
14 my @genes;
229d36377838 Uploaded
amadeo
parents:
diff changeset
15 my $pos1;
229d36377838 Uploaded
amadeo
parents:
diff changeset
16 my $gene;
229d36377838 Uploaded
amadeo
parents:
diff changeset
17 my $TF;
229d36377838 Uploaded
amadeo
parents:
diff changeset
18 my $current_gene;
229d36377838 Uploaded
amadeo
parents:
diff changeset
19 my $size;
229d36377838 Uploaded
amadeo
parents:
diff changeset
20
229d36377838 Uploaded
amadeo
parents:
diff changeset
21 if(@ARGV < 2){
229d36377838 Uploaded
amadeo
parents:
diff changeset
22 print "\nUsage: testrules_galaxy.pl fimo.gff testrules.gff \n\n";
229d36377838 Uploaded
amadeo
parents:
diff changeset
23 exit(0);
229d36377838 Uploaded
amadeo
parents:
diff changeset
24 }
229d36377838 Uploaded
amadeo
parents:
diff changeset
25
229d36377838 Uploaded
amadeo
parents:
diff changeset
26 open(FIMO, ">$ARGV[0]") ||
229d36377838 Uploaded
amadeo
parents:
diff changeset
27 die "File '$ARGV[0]' not found\n";
229d36377838 Uploaded
amadeo
parents:
diff changeset
28 open(OUTPUT, "<$ARGV[1]") ||
229d36377838 Uploaded
amadeo
parents:
diff changeset
29 die "File '<$ARGV[0]' not found\n";
229d36377838 Uploaded
amadeo
parents:
diff changeset
30
229d36377838 Uploaded
amadeo
parents:
diff changeset
31 $current_gene="";
229d36377838 Uploaded
amadeo
parents:
diff changeset
32
229d36377838 Uploaded
amadeo
parents:
diff changeset
33 while (<FIMO>) {
229d36377838 Uploaded
amadeo
parents:
diff changeset
34 $line=$_;
229d36377838 Uploaded
amadeo
parents:
diff changeset
35 @cols=split;
229d36377838 Uploaded
amadeo
parents:
diff changeset
36 $TF= substr $cols[8],5,8;
229d36377838 Uploaded
amadeo
parents:
diff changeset
37 $gene=substr $cols[0],0,21;
229d36377838 Uploaded
amadeo
parents:
diff changeset
38 $pos1 = $cols[3];
229d36377838 Uploaded
amadeo
parents:
diff changeset
39 $size=scalar @motif;
229d36377838 Uploaded
amadeo
parents:
diff changeset
40 if (not exists $hash{$gene} ) {
229d36377838 Uploaded
amadeo
parents:
diff changeset
41
229d36377838 Uploaded
amadeo
parents:
diff changeset
42 if ($current_gene ne "") {
229d36377838 Uploaded
amadeo
parents:
diff changeset
43 printf OUTPUT "%s\n", $current_gene, " ", "=>"," ";
229d36377838 Uploaded
amadeo
parents:
diff changeset
44 }
229d36377838 Uploaded
amadeo
parents:
diff changeset
45 for (my $i=0;$i<$size;$i++){
229d36377838 Uploaded
amadeo
parents:
diff changeset
46 printf OUTPUT "%s\n", $motif[$i],"($pos[$i])","\t";
229d36377838 Uploaded
amadeo
parents:
diff changeset
47 }
229d36377838 Uploaded
amadeo
parents:
diff changeset
48 print "\n";
229d36377838 Uploaded
amadeo
parents:
diff changeset
49 @motif=();
229d36377838 Uploaded
amadeo
parents:
diff changeset
50 @pos=();
229d36377838 Uploaded
amadeo
parents:
diff changeset
51 $current_gene=$gene;
229d36377838 Uploaded
amadeo
parents:
diff changeset
52 push @motif,$TF;
229d36377838 Uploaded
amadeo
parents:
diff changeset
53 push @pos, $pos1;
229d36377838 Uploaded
amadeo
parents:
diff changeset
54
229d36377838 Uploaded
amadeo
parents:
diff changeset
55 $hash{$gene}=1;
229d36377838 Uploaded
amadeo
parents:
diff changeset
56
229d36377838 Uploaded
amadeo
parents:
diff changeset
57
229d36377838 Uploaded
amadeo
parents:
diff changeset
58 }
229d36377838 Uploaded
amadeo
parents:
diff changeset
59
229d36377838 Uploaded
amadeo
parents:
diff changeset
60 else {
229d36377838 Uploaded
amadeo
parents:
diff changeset
61 push @motif,$TF;
229d36377838 Uploaded
amadeo
parents:
diff changeset
62 push @pos, $pos1;
229d36377838 Uploaded
amadeo
parents:
diff changeset
63 }
229d36377838 Uploaded
amadeo
parents:
diff changeset
64
229d36377838 Uploaded
amadeo
parents:
diff changeset
65 }
229d36377838 Uploaded
amadeo
parents:
diff changeset
66
229d36377838 Uploaded
amadeo
parents:
diff changeset
67 $size=scalar @motif;
229d36377838 Uploaded
amadeo
parents:
diff changeset
68 printf OUTPUT "%s\n", $current_gene, " ", "=>"," ";
229d36377838 Uploaded
amadeo
parents:
diff changeset
69 for (my $i=0;$i<$size;$i++){
229d36377838 Uploaded
amadeo
parents:
diff changeset
70 printf OUTPUT "%s\n", $motif[$i],"($pos[$i])","\t";
229d36377838 Uploaded
amadeo
parents:
diff changeset
71 }
229d36377838 Uploaded
amadeo
parents:
diff changeset
72
229d36377838 Uploaded
amadeo
parents:
diff changeset
73