annotate fimo_gff_to_gff.pl @ 2:18c06791c675 draft default tip

Uploaded
author greg
date Fri, 04 Mar 2016 15:33:54 -0500
parents 063d97ffda39
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
48d424adfaef Uploaded
greg
parents:
diff changeset
1 #! /usr/bin/perl
48d424adfaef Uploaded
greg
parents:
diff changeset
2
48d424adfaef Uploaded
greg
parents:
diff changeset
3 die "FIMO_GFF_File\tOutput_Path\n" unless $#ARGV == 1;
48d424adfaef Uploaded
greg
parents:
diff changeset
4 my($input, $output) = @ARGV;
48d424adfaef Uploaded
greg
parents:
diff changeset
5 open(IN, "<$input") or die "Can't open $input for reading!\n";
48d424adfaef Uploaded
greg
parents:
diff changeset
6
48d424adfaef Uploaded
greg
parents:
diff changeset
7 ##gff-version 3
48d424adfaef Uploaded
greg
parents:
diff changeset
8 #chr10:265210-265270(-) fimo nucleotide_motif 25 36 40.2 + . Name=1;ID=1-1-chr10:265210-265270(-);pvalue=9.48e-05;qvalue=0.00885;sequence=ACTTACCCTCAT;
48d424adfaef Uploaded
greg
parents:
diff changeset
9 #chr10:295039-295099(+) fimo nucleotide_motif 25 36 55.3 + . Name=1;ID=1-1-chr10:295039-295099(+);pvalue=2.97e-06;qvalue=0.00107;sequence=TGTTACCCGTTC;
48d424adfaef Uploaded
greg
parents:
diff changeset
10 #chr10:576747-576807(-) fimo nucleotide_motif 25 36 56.2 + . Name=1;ID=1-1-chr10:576747-576807(-);pvalue=2.37e-06;qvalue=0.00107;sequence=CGTTACCCGACC;
48d424adfaef Uploaded
greg
parents:
diff changeset
11
1
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
12 #chr1 genetrack . 123950 123970 22 + . stddev=0.0
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
13 #chr1 genetrack . 565745 565765 12 + . stddev=0.0
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
14 #chr1 genetrack . 565793 565813 44 + . stddev=0.298065387468
0
48d424adfaef Uploaded
greg
parents:
diff changeset
15
48d424adfaef Uploaded
greg
parents:
diff changeset
16 @COORD = ();
48d424adfaef Uploaded
greg
parents:
diff changeset
17 @ID_NUM = ();
48d424adfaef Uploaded
greg
parents:
diff changeset
18 $line = "";
48d424adfaef Uploaded
greg
parents:
diff changeset
19 while($line = <IN>) {
1
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
20 chomp($line);
0
48d424adfaef Uploaded
greg
parents:
diff changeset
21 next if($line =~ /gff-version/);
48d424adfaef Uploaded
greg
parents:
diff changeset
22 @array = split(/\t/, $line);
48d424adfaef Uploaded
greg
parents:
diff changeset
23 @CHR = split(/\:/, $array[0]);
1
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
24 @gff_COORD = split(/\(/, $CHR[1]);
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
25 @START_array = split(/\-/, $gff_COORD[0]);
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
26 $fimo_DIR = "+";
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
27 if($gff_COORD[1] =~ "-") { $fimo_DIR = "-"; }
0
48d424adfaef Uploaded
greg
parents:
diff changeset
28
48d424adfaef Uploaded
greg
parents:
diff changeset
29 $DIR = $array[6];
48d424adfaef Uploaded
greg
parents:
diff changeset
30 $SCORE = $array[5];
48d424adfaef Uploaded
greg
parents:
diff changeset
31
1
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
32 @NAME = split(/\;/, $array[8]);
0
48d424adfaef Uploaded
greg
parents:
diff changeset
33 $NEW = 0;
48d424adfaef Uploaded
greg
parents:
diff changeset
34 for($x = 0; $x <= $#ID_NUM; $x++) {
48d424adfaef Uploaded
greg
parents:
diff changeset
35 if($ID_NUM[$x] eq $NAME[0]) {
48d424adfaef Uploaded
greg
parents:
diff changeset
36 $NEW = 1;
48d424adfaef Uploaded
greg
parents:
diff changeset
37 $x = $#ID_NUM + 1;
48d424adfaef Uploaded
greg
parents:
diff changeset
38 }
48d424adfaef Uploaded
greg
parents:
diff changeset
39 }
48d424adfaef Uploaded
greg
parents:
diff changeset
40 if($NEW == 0) { push(@ID_NUM, $NAME[0]); }
48d424adfaef Uploaded
greg
parents:
diff changeset
41
1
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
42 $START = $START_array[0] + $array[3] - 1;
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
43 $STOP = $START_array[0] + $array[4] - 1;
0
48d424adfaef Uploaded
greg
parents:
diff changeset
44
1
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
45 if($fimo_DIR eq "-") {
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
46 if($DIR eq "+") { $DIR = "-"; }
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
47 else { $DIR = "+"; }
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
48 }
0
48d424adfaef Uploaded
greg
parents:
diff changeset
49
48d424adfaef Uploaded
greg
parents:
diff changeset
50 $newline = "$CHR[0]\tfimo\tmotif\t$START\t$STOP\t$SCORE\t$DIR\t.\t$CHR[0]\_$START\_$STOP\_$DIR";
48d424adfaef Uploaded
greg
parents:
diff changeset
51 $EXISTS = 0;
48d424adfaef Uploaded
greg
parents:
diff changeset
52 for($x = 0; $x <= $#COORD; $x++) {
48d424adfaef Uploaded
greg
parents:
diff changeset
53 if($newline eq $COORD[$x]{'line'}) {
48d424adfaef Uploaded
greg
parents:
diff changeset
54 $EXISTS = 1;
48d424adfaef Uploaded
greg
parents:
diff changeset
55 }
48d424adfaef Uploaded
greg
parents:
diff changeset
56 }
48d424adfaef Uploaded
greg
parents:
diff changeset
57 if($EXISTS == 0) {
48d424adfaef Uploaded
greg
parents:
diff changeset
58 push(@COORD, {chr => $CHR[0], start => $START, stop => $STOP, dir => $DIR, score =>$SCORE, id => $NAME[0], line => $newline});
48d424adfaef Uploaded
greg
parents:
diff changeset
59 }
48d424adfaef Uploaded
greg
parents:
diff changeset
60 }
48d424adfaef Uploaded
greg
parents:
diff changeset
61 close IN;
48d424adfaef Uploaded
greg
parents:
diff changeset
62 @SORT = sort { $$b{'score'} <=> $$a{'score'} } @COORD;
48d424adfaef Uploaded
greg
parents:
diff changeset
63
48d424adfaef Uploaded
greg
parents:
diff changeset
64 for($x = 0; $x <= $#ID_NUM; $x++) {
1
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
65 @FILENAME = split(/\=/, $ID_NUM[$x]);
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
66 $FILE = "MOTIF$FILENAME[1]";
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
67 open(OUT, ">$output/$FILE.gff") or die "Can't open $output/$FILE.gff for writing!\n";
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
68 for($y = 0; $y <= $#SORT; $y++) {
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
69 if($SORT[$y]{'id'} eq $ID_NUM[$x]) {
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
70 print OUT $SORT[$y]{'line'},"\n";
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
71 }
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
72 }
063d97ffda39 Uploaded
greg
parents: 0
diff changeset
73 close OUT;
0
48d424adfaef Uploaded
greg
parents:
diff changeset
74 }