diff Tools/Motif_search/rules_galaxy.pl @ 0:229d36377838 draft

Uploaded
author amadeo
date Mon, 05 Sep 2016 05:53:08 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tools/Motif_search/rules_galaxy.pl	Mon Sep 05 05:53:08 2016 -0400
@@ -0,0 +1,95 @@
+#!/usr/bin/perl -w
+
+$|=1;
+use warnings;
+use strict;
+#Script that looks for genes that have motifs from a certain rule.
+
+#Declaration of variables
+my $line;
+my $line2;
+my @cols;
+my @cols2;
+my %hash;
+my %hash1;
+my %hash3;
+
+my $gene;
+my $TF;
+my $num_motifs;
+my @genes_rules;
+
+
+$num_motifs=$ARGV[2];
+
+
+open(FIMO, "<$ARGV[0]") ||
+    die "File '$ARGV[0]' not found\n";
+        
+open(OUTPUT, ">$ARGV[1]") ||
+    die "File '>$ARGV[1]' not found\n";
+    
+
+while (<FIMO>) {
+    $line=$_;
+    chomp $line;
+    @cols=split;
+    if (not $line=~/^ /){
+       $TF= substr $cols[8],5,8; 
+       $gene=substr $cols[0],0,21;
+       
+       if (not exists $hash{$gene}) {
+            $hash1{$gene}=0;
+            
+        }
+       if (not exists $hash{$gene}{$TF}) {
+                $hash1{$gene}++;
+                $hash{$gene}{$TF}=1;
+                #print  $hash1{$gene};
+            }
+
+       
+       if ($hash1{$gene}==$num_motifs and not exists $hash3{$gene}) {
+        $hash3{$gene}=1;
+        #print $line, "\n";
+        
+       }
+       
+       
+       
+    }
+    
+}
+
+close FIMO;
+open(FIMO, "<$ARGV[0]") ||
+    die "File '$ARGV[0]' not found\n";
+    
+while (<FIMO>) {
+    $line2=$_;
+    chomp $line2;
+    @cols2=split;
+ 
+        if (not $line2=~/^ /){
+            $TF= substr $cols2[8],5,8; 
+            $gene=substr $cols2[0],0,21;
+            foreach my $gene_listed (keys %hash3){
+                
+                if ($gene_listed eq $gene) {
+                    printf OUTPUT "%s\n", $line2;
+                    
+            }
+            
+
+        }
+        
+    }   
+}
+
+
+print "Genes that have this rule:", "\n";
+foreach my $gene_listed (keys %hash3){
+                print $gene_listed,"\n";
+            }
+
+