[Bio] / DrugTargets / drug_targets_table.pl Repository:
ViewVC logotype

Diff of /DrugTargets/drug_targets_table.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6, Mon Aug 15 18:08:56 2005 UTC revision 1.8, Wed Aug 31 15:31:29 2005 UTC
# Line 4  Line 4 
4  use FIG_Config;  use FIG_Config;
5  my $fig = new FIG;  my $fig = new FIG;
6  my $cgi = new CGI;  my $cgi = new CGI;
7    
8  my $temp_dir = $FIG_Config::temp;  my $temp_dir = $FIG_Config::temp;
9  my $fin      = "$temp_dir/tmp$$.in";  my $fin      = "$temp_dir/tmp$$.in";
10  my $fcsv_name= "download$$.html.xls";  my $fxls_name= "download$$.html.xls";
11  my $fcsv     = "/home/fangfang/public_html/FIG_tmp/$fcsv_name";  my $fxls_dir = "/home/fangfang/public_html/FIG_tmp";
12  #my $fcsv = "$temp_dir/$fcsv_name";  my $fxls     = (-e $fxls_dir) ? "$fxls_dir/$fxls_name" : "$temp_dir/$fxls_name";
13    my $down_url = (-e $fxls_dir) ? "http://ci-www.uchicago.edu/~fangfang/FIG_tmp/$fxls_name" : "http://seed-mac-1.mcs.anl.gov/fangfang/FIG-Tmp/$fxls_name";
14    
15  $| = 1;  $| = 1;
16    
17  my $webpage    = 1;  my $webpage    = 1;
18  my $table_only = 1;  my $table_only = 1;
19  my $def_org = '158879.1';  my $include_all= 1;
20    
21    my $data = $cgi->param("keys");
22    $data =~ s/^\s*//s;
23    my @korgs = $cgi->param('korgs');
24    @korgs = map { /\((\d+\.*\d*)\)/} @korgs;
25    $data = "#orgs=". join(",", @korgs). "\n$data";
26    
27  print $cgi->header();  print $cgi->header();
28    
29  if ($webpage || !$no_header) {  if ($webpage || !$no_header) {
30      @header = ('Category', 'Gene Name', 'Gene Id', 'PEG ID', 'PEG SeqLen', 'GenBank ID', 'UniProt ID', 'Functional Role', 'Conservation of Seqs', 'PDB (bound)', 'e-Value (bound)', 'PDB (free)', 'e-Value', 'PDB Title', 'PDB SeqLen', 'ProtDist', 'PASS ASPs', 'PASS Weight of Largest Pocket', 'PDB Ligand CLiBE');      @header = ('Category', 'Gene Name', 'Gene Id', 'PEG ID', 'PEG SeqLen', 'GenBank ID', 'UniProt ID', 'Functional Role', 'Conservation of Seqs', 'PDB (bound)', 'e-Value (bound)', 'PDB (free)', 'e-Value', 'PDB Title', 'PDB SeqLen', 'ProtDist', 'PASS ASPs'
31    , 'PASS Weight of Largest Pocket', 'PDB Ligand CLiBE');
32      if ($webpage) {      if ($webpage) {
33          if ($table_only) {          if ($table_only) {
34                if (check_org($data)) {print gen_html("warning", ("Organism list not defined properly."));}
35              print gen_html("start_table");              print gen_html("start_table");
36          } else {          } else {
37              print gen_html("start_html", ("Drug Targets - ") . join(" ", @infiles));              print gen_html("start_html", ("Drug Targets - ") . join(" ", @infiles));
# Line 33  Line 43 
43      }      }
44  }  }
45    
 my $data = $cgi->param("keys");  
   
 open(FIN, ">$fin");  
 print FIN "$data\n";  
 close(FIN);  
 #print "data: $data\n";  
 #print "gen_dt_table -html -orgs=$def_org $fin\n";  
   
46  {  {
47      open(FIN, $fin) || (print(STDERR "'$fin': Couldn't open file. Skipped...\n\n"), next);      open(FXLS, ">$fxls");
     open(FCSV, ">$fcsv");  
48    
49      if (FCSV) {      if (FXLS) {
50          print FCSV gen_html("start_html", ("Drug Targets"));          print FXLS gen_html("start_html", ("Drug Targets"));
51          print FCSV gen_html("start_table");          print FXLS gen_html("start_table");
52          print FCSV gen_html("header", @header);          print FXLS gen_html("header", @header);
53      }      }
54    
55      while (<FIN>) {      for (@lines = split(/\n/, $data)) {
56          chomp;          chomp;
57          if (/^\#/) {          if (/^\#/) {
58              next if ($ignore_comment);              next if ($ignore_comment);
59              (/orgs=(.*\w)/i) && ($def_org = $1, $def_cat = $def_tag = $def_url = undef);              (/orgs=(.*\S)/i) && ($def_org = $1, $def_cat = $def_tag = $def_url = undef);
60              (/cat=(.*\w)/i)  && ($def_cat = $1);              (/cat=(.*\S)/i)  && ($def_cat = $1);
61              (/tag=(.*\w)/i)  && ($def_tag = $1);              (/tag=(.*\S)/i)  && ($def_tag = $1);
62              (/url=(\S+)/i)   && ($def_url = $1);              (/url=(\S+)/i)   && ($def_url = $1);
63              next;              next;
64          }          }
65    
66          $org = $def_org || (print(STDERR "'$fin': No genome specified. Skipped...\n\n"), last);          $org = $def_org || (print(STDERR "'$fin': No genome specified. Skipped...\n\n"), last);
67          $cat = $def_cat;          my $cat = $def_cat;
68          $tag = $def_tag;          my $tag = $def_tag;
69          $url = $def_url;          my $url = $def_url;
         #print "$tag\n";  
70    
71          @cols = split(/\t/);          @cols = split(/[;\t]/);
72    
73          if ($gene = $cols[0]) {          if ($gene = $cols[0]) {
74              if ($gene =~ /(\S+)\,\s*(.*\w)/) {              if ($gene =~ /(\S+)?\s*\,\s*(.*\S)/) {
75                  $gene = $1;                  $gene = $1;
76                  $tag = $2;                  $tag = $2;
77                } else {
78                    $gene =~ /(\S+)/;
79                    $gene = $1;
80              }              }
81                $gene =~ s/fig\|//;
82                next unless ($gene || $cols[3]);
83    
84              # peg, url, cat              # peg, url, cat
85              next unless $peg = get_peg($org, $gene);              my $peg;
86              $peg_u = "<a href=http://theseed.uchicago.edu/FIG/protein.cgi?prot=$peg&user= target=_blank>$peg</a>" if ($peg);              if ($cols[3]) {
87                    $cols[3] =~ /(\d+\.\d+\.peg\.\d+)/;
88                    $peg = "fig|$1";
89                } else {
90                    if ($org) {
91                        $peg = get_peg($org, $gene);
92                    } else {
93                        print(STDERR "'$gene': No genome specified. Skipped...\n\n");
94                        next unless ($include_all);
95                    }
96                }
97    
98                ($fig->function_of($peg)) || ($peg = undef);
99                unless ($include_all) {next unless $peg};
100    
101                my $peg_u = "<a href=http://theseed.uchicago.edu/FIG/protein.cgi?prot=$peg&user= target=_blank>$peg</a>" if ($peg);
102              $gene = $tag ? "$gene, $tag" : $gene;              $gene = $tag ? "$gene, $tag" : $gene;
103              $cat = $cols[1] ? $cols[1] : $cat;              $cat = $cols[1] ? $cols[1] : $cat;
104              $url = $cols[2] ? $cols[2] : $url;              $url = $cols[2] ? $cols[2] : $url;
105              $gene_u = "<a href=$url>$gene</a>" if ($gene);              my $gene_u = "<a href=$url>$gene</a>" if ($gene);
106    
107              # funtion role              # funtion role
108              $role = $fig->function_of($peg);              my $role = $fig->function_of($peg);
109    
110              # geneId              # geneId
111              @aliases = $fig->feature_aliases($peg);              my @aliases = $fig->feature_aliases($peg);
112              @genes = grep {$_ !~ /.*(\||\_|\:).*/ } @aliases;              my @genes = grep {$_ !~ /.*(\||\_|\:).*/ } @aliases;
113              $geneId = join (",", @genes);              my $geneId = join (",", @genes);
114    
115              # Genebank ID              # Genebank ID
116              @gids = grep {/.*gi.*/} @aliases;              my @gids = grep {/.*gi.*/} @aliases;
117              $gid = join(", ", @gids);              my $gid = join(", ", @gids);
118              @gids_u = map {/gi\|(\S+)/ } @gids;              my @gids_u = map {/gi\|(\S+)/ } @gids;
119              map {$_ = "<a href=http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?db=protein&val=$_ target=_blank>gi|$_</a>"} @gids_u;              map {$_ = "<a href=http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?db=protein&val=$_ target=_blank>gi|$_</a>"} @gids_u;
120              $gid_u = join(", ", @gids_u);              my $gid_u = join(", ", @gids_u);
121    
122              # uniprot ID              # uniprot ID
123              @uniIds = grep {/.*uni.*/} @aliases;              my @uniIds = grep {/.*uni.*/} @aliases;
124              $uniId = join(", ", @uniIds);              my $uniId = join(", ", @uniIds);
125              @uniIds_u = map {/uni\|(\S+)/} @uniIds;              my @uniIds_u = map {/uni\|(\S+)/} @uniIds;
126              map {$_ = "<a href=http://www.pir.uniprot.org/cgi-bin/upEntry?id=$_ target=_blank>uni|$_</a>"} @uniIds_u;              map {$_ = "<a href=http://www.pir.uniprot.org/cgi-bin/upEntry?id=$_ target=_blank>uni|$_</a>"} @uniIds_u;
127              $uniId_u = join(", ", @uniIds_u);              my $uniId_u = join(", ", @uniIds_u);
128    
129              # conservation of sequences              # conservation of sequences
130              #my $cons = get_cons($peg);              #my $cons = get_cons($peg);
131    
132              # best pdb bound              # best pdb bound
133              my ($pdb_bound, $escore_bound, $pdb_bound_url) = get_pdb($peg, "bound");              my ($pdb_bound, $escore_bound, $pdb_bound_url) = get_pdb($peg, "bound") if ($peg);
134              my $pdb_bound_u = "<a href=$pdb_bound_url>$pdb_bound</a>" if ($pdb_bound);              my $pdb_bound_u = "<a href=$pdb_bound_url>$pdb_bound</a>" if ($pdb_bound);
135    
136              # best pdb free              # best pdb free
137              my ($pdb, $escore, $pdb_url, $pdb_title) = get_pdb($peg, "free");              my ($pdb, $escore, $pdb_url, $pdb_title) = get_pdb($peg, "free") if ($peg);
138              my $pdb_u = "<a href=$pdb_url>$pdb</a>" if ($pdb);              my $pdb_u = "<a href=$pdb_url>$pdb</a>" if ($pdb);
139    
140              # prodist              # prodist
141              my ($peg_len, $pdb_len, $dist) = get_dist($peg, $pdb) if ($pdb);              my ($peg_len, $pdb_len, $dist) = get_dist($peg, $pdb) if ($pdb);
142              my $dist_u = "<a href=peg_pdb_align.cgi?peg=$peg&pdb=$pdb>$dist</a>" if ($pdb);              my $dist_u = "<a href=peg_pdb_align.cgi?peg=$peg&pdb=$pdb>$dist</a>" if ($dist);
143              my $peg_len = $fig->translation_length($peg);              my $peg_len = $fig->translation_length($peg);
144    
145              # pass info for pdb free              # pass info for pdb free
# Line 136  Line 156 
156    
157              @row_e= ($cat, "\"$gene\"", "\"$geneId\"", $peg, $peg_len, "\"$gid\"", "\"$uniId\"", "\"$role\"", $cons, $pdb_bound, $escore_bound, $pdb, $escore, "\"$pdb_title\"", $pdb_len, $dist, $pass, $pass_maxwgt, "\"$clibe\"");              @row_e= ($cat, "\"$gene\"", "\"$geneId\"", $peg, $peg_len, "\"$gid\"", "\"$uniId\"", "\"$role\"", $cons, $pdb_bound, $escore_bound, $pdb, $escore, "\"$pdb_title\"", $pdb_len, $dist, $pass, $pass_maxwgt, "\"$clibe\"");
158    
159              if (FCSV) {print FCSV gen_html("row", @row_u);}              if (FXLS) {print FXLS gen_html("row", @row_u);}
160    
161              if ($webpage) {              if ($webpage) {
162                  print gen_html("row", @row_u);                  print gen_html("row", @row_u);
# Line 145  Line 165 
165              }              }
166          }          }
167      }      }
168      if (FCSV) {      if (FXLS) {
169          print FCSV gen_html("end_table");          print FXLS gen_html("end_table");
170          print FCSV gen_html("end_html");          print FXLS gen_html("end_html");
171      }      }
172      close(FCSV);      close(FXLS);
     close(FIN);  
173  }  }
174    
   
   
175  if ($webpage) {  if ($webpage) {
176      print gen_html("end_table");      print gen_html("end_table");
177      print "<p> <a href=http://ci-www.uchicago.edu/~fangfang/FIG_tmp/$fcsv_name> Download to Excel </a>\n";      print "<p> <a href=$down_url> Download to Excel </a>\n";
178      print gen_html("end_html") unless $table_only;      print gen_html("end_html") unless $table_only;
179  }  }
180    
181    
182  #--------------------  #--------------------
183  #   sub routines  #   sub routines
184  #--------------------  #--------------------
185    
186    sub check_org {
187        my ($data) = @_;
188        my @lines = split(/\n/, $data);
189        my $rv = 1;
190        for (@lines) {
191            if ($_ =~ /^(#orgs=\s*\d+\.\d+)/) {$rv=0;last;}
192            elsif ($_ =~ /^\s*([^#]\w+)/) {last;}
193        }
194        # return true on error
195        return $rv;
196    }
197    
198  sub get_peg {  sub get_peg {
199      my ($org, $gene) = @_;      my ($org, $gene) = @_;
200      my ($pegs_index_data) = $fig->search_index($gene);      my ($pegs_index_data) = $fig->search_index($gene);
# Line 263  Line 293 
293          push @html, "<table ID=DrugTargets BORDER=1 width=80%>";          push @html, "<table ID=DrugTargets BORDER=1 width=80%>";
294      } elsif ($part =~ /end_table/i) {      } elsif ($part =~ /end_table/i) {
295          push @html, "</table>";          push @html, "</table>";
296        } elsif ($part =~ /warning/i) {
297            push @html, "<h3><font color=#cc0000>Warning: $content[0]</font></h3>";
298      } else {      } else {
299          $s = ($part =~ /header/i) ? "th" : "td";          $s = ($part =~ /header/i) ? "th" : "td";
300          push @html, "<tr>";          push @html, "<tr>";

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.8

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3