[Bio] / FigKernelPackages / HTML.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/HTML.pm

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

revision 1.83, Wed Jan 25 02:20:42 2006 UTC revision 1.102, Thu Sep 28 22:59:05 2006 UTC
# Line 17  Line 17 
17    
18  package HTML;  package HTML;
19    
20    use strict;
21  use Tracer;  use Tracer;
22  use FIG;  use FIG;
23  use Carp;  use Carp;
# Line 28  Line 29 
29  use HTTP::Request::Common;  use HTTP::Request::Common;
30  use POSIX;  use POSIX;
31    
32    #use raelib; # now used for the excel function, that should eventually end up in here. Way too experimental!
33    my $raelib;
34    
35    
36  my $top_link_cache;  my $top_link_cache;
37    
# Line 78  Line 82 
82      shift if UNIVERSAL::isa($_[0],__PACKAGE__);      shift if UNIVERSAL::isa($_[0],__PACKAGE__);
83      my($additional_insert, $user, %options ) = @_;      my($additional_insert, $user, %options ) = @_;
84    
85        local $/ = "\n";
86    
87      my $header_name = $options{header_name} ? $options{header_name} : "html.hdr";      my $header_name = $options{header_name} ? $options{header_name} : "html.hdr";
88      my $tail_name = $options{tail_name} ? $options{tail_name} : "html.tail";      my $tail_name = $options{tail_name} ? $options{tail_name} : "html.tail";
89    
# Line 156  Line 162 
162  sub show_page {  sub show_page {
163      #warn "SHOWPAGE: cgi=", Dumper(@_);      #warn "SHOWPAGE: cgi=", Dumper(@_);
164      shift if UNIVERSAL::isa($_[0],__PACKAGE__);      shift if UNIVERSAL::isa($_[0],__PACKAGE__);
165      my($cgi,$html,$no_home, $alt_header, $css, $javasrc, $cookie) = @_;      my($cgi,$html,$no_home, $alt_header, $css, $javasrc, $cookie, $options) = @_;
166      my $i;      my $i;
167    
168      my $top = top_link();      my $top = top_link();
# Line 171  Line 177 
177      #               the sheet named "Sans Serif" is considered to the the first alternate, and if this is not set it points at $FIG_Config::HTML/css/sanserif.css      #               the sheet named "Sans Serif" is considered to the the first alternate, and if this is not set it points at $FIG_Config::HTML/css/sanserif.css
178      #     $javasrc is a reference to an array of URLs to javascripts to be included (e.g. "FIG/Html/css/styleswitcher.js")      #     $javasrc is a reference to an array of URLs to javascripts to be included (e.g. "FIG/Html/css/styleswitcher.js")
179      #     $cookie is the name and value of the cookie to set. Note that you should probably use raelib->cookie to get/set your cookies      #     $cookie is the name and value of the cookie to set. Note that you should probably use raelib->cookie to get/set your cookies
180        #     $options is a reference to a hash of options that you can pass around the pages
181      #      #
182      # Find the HTML header      # Find the HTML header
183      #      #
184    
185        my $tail_name = $options->{tail_name} ? $options->{tail_name} : "html.tail";
186      my $html_tail_file = "./Html/$tail_name";      my $html_tail_file = "./Html/$tail_name";
187      if (! -f $html_tail_file)      if (! -f $html_tail_file)
188      {      {
# Line 189  Line 197 
197      }      }
198      else      else
199      {      {
200          @html_hdr = compute_html_header(undef,$user);          @html_hdr = compute_html_header(undef,$user,%$options);
201      }      }
202    
203      # RAE: I am offloading the handling of cookies to CGI.pm since I don't know how they are set up.      # RAE: I am offloading the handling of cookies to CGI.pm since I don't know how they are set up.
# Line 409  Line 417 
417          # BASE href needs to be absolute. RDO.          # BASE href needs to be absolute. RDO.
418          #          #
419          #          #
420          $base_url = &FIG::cgi_url;  #        $base_url = &FIG::cgi_url;
421  #       my $base_url = $FIG_Config::cgi_base;  #       my $base_url = $FIG_Config::cgi_base;
422  #       if ( ! $base_url )                      # if cgi_base was not defined  #       if ( ! $base_url )                      # if cgi_base was not defined
423  #       {  #       {
# Line 515  Line 523 
523    
524  }  }
525    
526    
527    =head1 make_table
528    
529    The main method to convert an array into a table.
530    
531    The col_hdrs are set to the <th> headers, the $tab is an array of arrays. The first is the rows, and the second is the columns. The title is the title of the table.
532    
533    The options define the settings for the table such as border, width, and class for css formatting. If the option "excelfile" is set to a filename that will be created in FIG_Config::temp, and the link included that allows the user to download the file as an excel file.
534    
535    =cut
536    
537  sub make_table {  sub make_table {
538      my($col_hdrs,$tab,$title, %options ) = @_;      my($col_hdrs,$tab,$title, %options ) = @_;
539      my(@tab);      my(@tab);
# Line 539  Line 558 
558              );              );
559      }      }
560      push(@tab,"</table>\n");      push(@tab,"</table>\n");
561    
562        # excelfile should be appropriate for a filename (no spaces/special characters)
563        if (defined $options{"excelfile"}) {
564            if (! defined($raelib)) {
565                require raelib;
566                $raelib = new raelib;
567            }
568            push @tab, $raelib->tab2excel($col_hdrs,$tab,$title,\%options,$options{"excelfile"})}
569    
570      return join("",@tab);      return join("",@tab);
571  }  }
572    
# Line 780  Line 808 
808      return "<a href=$link>$role</a>";      return "<a href=$link>$role</a>";
809  }  }
810    
811  #  =head2 fid_link
812  # Local means to eliminate the fig|org.peg from the  
813  # text of the link.  Get a link to a fid.
814  #  
815    use: my $html=&HTML::fid_link($cgi, $fid, Local, Just_URL, Full_Path);
816    
817    Local is a boolean means to eliminate the fig|org.peg from the text of the link.
818    
819    Just_URL will only return the URL and not the HTML code. The default is to return the full code.
820    
821    Full_Path is a boolean that will get the full path to the URL not just a relative path. This is required in pages where the base href changes (e.g. if an image is imported like on the metabolic pages).
822    
823    =cut
824    
825    
826  sub fid_link {  sub fid_link {
827      shift if UNIVERSAL::isa($_[0],__PACKAGE__);      shift if UNIVERSAL::isa($_[0],__PACKAGE__);
828      my($cgi,$fid,$local,$just_url) = @_;      my($cgi,$fid,$local,$just_url,$fullpath) = @_;
829    
830        my $err=join(" ", $cgi,$fid,$local,$just_url,$fullpath);
831        print STDERR "Creating link : $err\n";
832    
833      my($n);      my($n);
834    
835      my $top = top_link();      my $top = top_link();
836        if ($fullpath) {$top=$FIG_Config::cgi_url}
837    
838        print STDERR "Top is $top because full path is $fullpath\n";
839    
840      if ($fid =~ /^fig\|\d+\.\d+\.([a-z]+)\.(\d+)/)      if ($fid =~ /^fig\|\d+\.\d+\.([a-z]+)\.(\d+)/)
841      {      {
# Line 810  Line 856 
856          }          }
857    
858          my $link;          my $link;
859            my $new_framework = $cgi->param('new_framework') ? 1 : 0;
860          #added to format prophage and path island links to feature.cgi          #added to format prophage and path island links to feature.cgi
861          if ($1 ne "peg")          my $sprout = $cgi->param('SPROUT') ? "&SPROUT=1" : "";
862            if ($1 ne "peg" && ! $sprout)
863          {          {
864             my $user = $cgi->param('user');             my $user = $cgi->param('user');
865             if (! $user) { $user = "" }             if (! $user) { $user = "" }
866             my $sprout = $cgi->param('SPROUT') ? "&SPROUT=1" : "";             $link = "$top/feature.cgi?feature=$fid&user=$user$sprout";
            $link = "$top/feature.cgi?feature=$fid&user=$user$trans$sprout";  
867             $link =~ s/[a-z_A-Z0-9]+\.cgi\?/feature.cgi?/;             $link =~ s/[a-z_A-Z0-9]+\.cgi\?/feature.cgi?/;
868          }          }
869          else          else
# Line 836  Line 883 
883    
884              #if (! $cgi_url) { $cgi_url = &FIG::cgi_url }              #if (! $cgi_url) { $cgi_url = &FIG::cgi_url }
885              #$link = $cgi_url . "/protein.cgi?prot=$fid&user=$user$trans$sprout";              #$link = $cgi_url . "/protein.cgi?prot=$fid&user=$user$trans$sprout";
886              $link = "$top/protein.cgi?prot=$fid&user=$user$trans$sprout";              $link = "$top/protein.cgi?prot=$fid&user=$user$trans$sprout\&new_framework=$new_framework";
887              $link =~ s/[a-z_A-Z0-9]+\.cgi\?/protein.cgi?/;              $link =~ s/[a-z_A-Z0-9]+\.cgi\?/protein.cgi?/;
888          }          }
889          if ($just_url)          if ($just_url)
# Line 845  Line 892 
892          }          }
893          else          else
894          {          {
895              return "<a href=$link>$n</a>";              return "<a href='$link'>$n</a>";
896          }          }
897      }      }
898      return $fid;      return $fid;
# Line 877  Line 924 
924          my $response = $ua->request($request);          my $response = $ua->request($request);
925          $out = $response->content;          $out = $response->content;
926      }      }
927      else  
928        if ($type =~/get/i)
929      {      {
930          @args = ();          @args = ();
931          foreach $x (@$kv_pairs)          foreach $x (@$kv_pairs)
# Line 889  Line 937 
937          {          {
938              $url .= "?" . join("&",@args);              $url .= "?" . join("&",@args);
939          }          }
940          $request = new HTTP::Request('GET', $url);          my $request = new HTTP::Request('GET', $url);
941          my $response = $ua->request($request);          my $response = $ua->request($request);
942    
943          if ($response->is_success)          if ($response->is_success)
# Line 907  Line 955 
955    
956  #   Now splice in a line of the form <base href=URL> to cause all relative links to work  #   Now splice in a line of the form <base href=URL> to cause all relative links to work
957  #   properly.  Remove the header.  #   properly.  Remove the header.
958        my $i;
959      for ($i=0; ($i < @output) && ($output[$i] !~ /^\s*\</); $i++) {}      for ($i=0; ($i < @output) && ($output[$i] !~ /^\s*\</); $i++) {}
960      if ($i < @output)      if ($i < @output) {
     {  
   
961          splice(@output,0,$i);          splice(@output,0,$i);
962      }      }
963    
# Line 927  Line 973 
973  sub trim_output {  sub trim_output {
974      shift if UNIVERSAL::isa($_[0],__PACKAGE__);      shift if UNIVERSAL::isa($_[0],__PACKAGE__);
975      my($out) = @_;      my($out) = @_;
976      my $i;      my ($i, $j);
977    
978      for ($i=0; ($i < @$out) && ($out->[$i] !~ /^\</); $i++) {}      for ($i=0; ($i < @$out) && ($out->[$i] !~ /^\</); $i++) {}
979      splice(@$out,0,$i);      splice(@$out,0,$i);
# Line 956  Line 1002 
1002      for ($j=$i-1; ($j > 0) && ($out->[$j] !~ /FIG search/); $j--) {}      for ($j=$i-1; ($j > 0) && ($out->[$j] !~ /FIG search/); $j--) {}
1003      if ($j > 0)      if ($j > 0)
1004      {      {
1005            #
1006            # Hm. We would have tried using the options here:
1007            # my $tail_name = $options{tail_name} ? $options{tail_name} : "html.tail";
1008            # but they're not passed in. So use the default html.tail.
1009            #
1010            my $html_tail_file = "./Html/html.tail";
1011          my @tmp = `cat $html_tail_file`;          my @tmp = `cat $html_tail_file`;
1012          my $n = @tmp;          my $n = @tmp;
1013          splice(@$out,$j-$n,$n+1);          splice(@$out,$j-$n,$n+1);
# Line 988  Line 1040 
1040          $after = $3;          $after = $3;
1041          return &set_prot_links($cgi,$before) . &HTML::gi_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::gi_link($cgi,$match) . &set_prot_links($cgi,$after);
1042      }      }
1043      elsif ($x =~ /^(.*)(tigr\|[0-9a-zA-Z]+)(.*)/s)      elsif ($x =~ /^(.*)(tigr\|\w+)(.*)/s)
1044      {      {
1045          $before = $1;          $before = $1;
1046          $match = $2;          $match = $2;
1047          $after = $3;          $after = $3;
1048          return &set_prot_links($cgi,$before) . &HTML::tigr_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::tigr_link($cgi,$match) . &set_prot_links($cgi,$after);
1049      }      }
1050      elsif ($x =~ /^(.*)\beric\|\w+\b(.*)/s)      elsif ($x =~ /^(.*)\b(eric\|\S+)\b(.*)/s)
1051      {      {
1052          $before = $1;          $before = $1;
1053          $match = $2;          $match = $2;
# Line 1003  Line 1055 
1055          return &set_prot_links($cgi,$before) . &HTML::eric_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::eric_link($cgi,$match) . &set_prot_links($cgi,$after);
1056      }      }
1057    
1058      elsif ($x =~ /^(.*)\bbhb\|.*?\b(.*)/s)      elsif ($x =~ /^(.*)\b(bhb\|.*?)\b(.*)/s)
1059      {      {
1060          $before = $1;          $before = $1;
1061          $match = $2;          $match = $2;
# Line 1011  Line 1063 
1063          return &set_prot_links($cgi,$before) . &HTML::bhb_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::bhb_link($cgi,$match) . &set_prot_links($cgi,$after);
1064      }      }
1065    
1066      elsif ($x =~ /^(.*)\bapidb\|.*?\..*\b(.*)/s)      elsif ($x =~ /^(.*)\b(apidb\|[0-9\.a-z_]+)\b(.*)/s)
1067      {      {
1068          $before = $1;          $before = $1;
1069          $match = $2;          $match = $2;
# Line 1019  Line 1071 
1071          return &set_prot_links($cgi,$before) . &HTML::apidb_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::apidb_link($cgi,$match) . &set_prot_links($cgi,$after);
1072      }      }
1073    
1074      elsif ($x =~ /^(.*)\bpatric\|.*?\b(.*)/s)      elsif ($x =~ /^(.*)\b(patric\|.*?)\b(.*)/s)
1075      {      {
1076          $before = $1;          $before = $1;
1077          $match = $2;          $match = $2;
# Line 1027  Line 1079 
1079          return &set_prot_links($cgi,$before) . &HTML::patric_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::patric_link($cgi,$match) . &set_prot_links($cgi,$after);
1080      }      }
1081    
1082      elsif ($x =~ /^(.*)\bvbrc\|.*?\b(.*)/s)      elsif ($x =~ /^(.*)\b(vbrc\|.*?)\b(.*)/s)
1083      {      {
1084          $before = $1;          $before = $1;
1085          $match = $2;          $match = $2;
# Line 1035  Line 1087 
1087          return &set_prot_links($cgi,$before) . &HTML::vbrc_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::vbrc_link($cgi,$match) . &set_prot_links($cgi,$after);
1088      }      }
1089    
1090      elsif ($x =~ /^(.*)\bvectorbase\|.*?\b(.*)/s)      elsif ($x =~ /^(.*)\b(vectorbase\|.*?)\b(.*)/s)
1091      {      {
1092          $before = $1;          $before = $1;
1093          $match = $2;          $match = $2;
# Line 1091  Line 1143 
1143          $after = $3;          $after = $3;
1144          return &set_prot_links($cgi,$before) . &HTML::mim_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::mim_link($cgi,$match) . &set_prot_links($cgi,$after);
1145      }      }
1146      elsif ($x =~ /^(.*)(UniGene:[a-zA-Z_0-9\.]+)(.*)/s)      elsif ($x =~ /^(.*)(HGNC:[a-zA-Z_0-9\.]+)(.*)/s)
1147      {      {
1148          $before = $1;          $before = $1;
1149          $match = $2;          $match = $2;
1150          $after = $3;          $after = $3;
1151          return &set_prot_links($cgi,$before) . &HTML::unigene_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::hgnc_link($cgi,$match) . &set_prot_links($cgi,$after);
1152      }      }
1153      elsif ($x =~ /^(.*)(IPI:[a-zA-Z_0-9\.]+)(.*)/s)      elsif ($x =~ /^(.*)(UniGene:[a-zA-Z_0-9\.]+)(.*)/s)
1154      {      {
1155          $before = $1;          $before = $1;
1156          $match = $2;          $match = $2;
1157          $after = $3;          $after = $3;
1158          return &set_prot_links($cgi,$before) . &HTML::ipi_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::unigene_link($cgi,$match) . &set_prot_links($cgi,$after);
1159      }      }
1160    # IPI stopped working. turn off for now.
1161    #    elsif ($x =~ /^(.*)(IPI:[a-zA-Z_0-9\.]+)(.*)/s)
1162    #    {
1163    #        $before = $1;
1164    #        $match = $2;
1165    #        $after = $3;
1166    #        return &set_prot_links($cgi,$before) . &HTML::ipi_link($cgi,$match) . &set_prot_links($cgi,$after);
1167    #    }
1168      elsif ($x =~ /^(.*)(WP:[a-zA-Z_0-9\.]+)(.*)/s)      elsif ($x =~ /^(.*)(WP:[a-zA-Z_0-9\.]+)(.*)/s)
1169      {      {
1170          #wormbase          #wormbase
# Line 1141  Line 1201 
1201          $after = $3;          $after = $3;
1202          return &set_prot_links($cgi,$before) . &HTML::sgd_link($cgi,$match) . &set_prot_links($cgi,$after);          return &set_prot_links($cgi,$before) . &HTML::sgd_link($cgi,$match) . &set_prot_links($cgi,$after);
1203      }      }
1204        elsif ($x =~ /^(.*)(tr\|[a-zA-Z0-9]+)(.*)/s)
1205        {
1206    
1207          $before = $1;
1208          $match = $2;
1209          $after = $3;
1210    
1211          return &set_prot_links($cgi,$before) .  &HTML::trembl_link($cgi,$match) . &set_prot_links($cgi,$after);
1212        }
1213      return $x;      return $x;
1214  }  }
1215    
1216    sub trembl_link {
1217        shift if UNIVERSAL::isa($_[0],__PACKAGE__);
1218        my($cgi,$id) = @_;
1219    
1220        if ($id =~ /^tr\|(.*)/) {
1221          return "<a href='http://ca.expasy.org/uniprot/$1' target=_blank>$id</a>";
1222        } else {
1223          return "invalid call to trembl link";
1224        }
1225    }
1226    
1227  sub refseq_link {  sub refseq_link {
1228      shift if UNIVERSAL::isa($_[0],__PACKAGE__);      shift if UNIVERSAL::isa($_[0],__PACKAGE__);
1229      my($cgi,$id) = @_;      my($cgi,$id) = @_;
1230    
1231      if ($id =~ /^[NXYZA]P_/)      if ($id =~ /^[NXYZA]P_/)
1232      {      {
1233          return "<a href=http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=protein&cmd=search&term=$id>$id</a>";          return "<a href='http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=protein&cmd=search&term=$id' target=_blank>$id</a>";
1234      }      }
1235      elsif ($id =~ /^[NXYZA]M_/)      elsif ($id =~ /^[NXYZA]M_/)
1236      {      {
1237          return "<a href=http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=nuccore&cmd=search&term=$id>$id</a>";          return "<a href='http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=nuccore&cmd=search&term=$id' target=_blank>$id</a>";
1238      }      }
1239  }  }
1240    
# Line 1164  Line 1244 
1244    
1245      if ($gi =~ /^gi\|(\d+)$/)      if ($gi =~ /^gi\|(\d+)$/)
1246      {      {
1247          return "<a href=http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=$1&dopt=GenPept>$gi</a>";          return "<a href='http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=$1&dopt=GenPept' target=_blank>$gi</a>";
1248      }      }
1249      return $gi;      return $gi;
1250  }  }
# Line 1176  Line 1256 
1256      if ($tigr =~ /^tigr\|(NT|ntbp|ntbpA|BA|BMAA|BXB|GBA)(\w+)$/)      if ($tigr =~ /^tigr\|(NT|ntbp|ntbpA|BA|BMAA|BXB|GBA)(\w+)$/)
1257      {      {
1258          my $id=$1.$2;          my $id=$1.$2;
1259          return "<a href=\"http://pathema.tigr.org/tigr-scripts/pathema/shared/GenePage.cgi?locus=$id\">$tigr</a> (Pathema)";          return "<a href=\"http://pathema.tigr.org/tigr-scripts/pathema/shared/GenePage.cgi?locus=$id\" target=_blank>$tigr</a> (Pathema)";
1260      }      }
1261      elsif ($tigr =~ /^tigr\|(\S+)$/)      elsif ($tigr =~ /^tigr\|(\S+)$/)
1262      {      {
1263          return "<a href=\"http://www.tigr.org/tigr-scripts/CMR2/GenePage.spl?locus=$1\">$tigr</a>";          return "<a href=\"http://www.tigr.org/tigr-scripts/CMR2/GenePage.spl?locus=$1\" target=_blank>$tigr</a>";
1264      }      }
1265      return $tigr;      return $tigr;
1266  }  }
# Line 1191  Line 1271 
1271    
1272      if ($eric =~ /^eric\|(\S+)/)      if ($eric =~ /^eric\|(\S+)/)
1273      {      {
1274          return "<a href=\"https://asap.ahabs.wisc.edu/asap/feature_info.php?FeatureID=$1\">$eric</a>";          return "<a href=\"https://asap.ahabs.wisc.edu/asap/feature_info.php?FeatureID=$1\" target=_blank>$eric</a>";
1275      }      }
1276      return $eric;      return $eric;
1277  }  }
# Line 1200  Line 1280 
1280      shift if UNIVERSAL::isa($_[0],__PACKAGE__);      shift if UNIVERSAL::isa($_[0],__PACKAGE__);
1281      my($cgi,$bhb) = @_;      my($cgi,$bhb) = @_;
1282    
1283      return "<a href=\"http://www.biohealthbase.org\">$bhb</a>";      return "<a href=\"http://www.biohealthbase.org\" target=_blank>$bhb</a>";
1284  }  }
1285    
1286  sub apidb_link {  sub apidb_link {
# Line 1209  Line 1289 
1289    
1290      if ($api =~ /apidb\|(.*?)\.(.*)$/)      if ($api =~ /apidb\|(.*?)\.(.*)$/)
1291      {      {
1292          return "<a href=\"http://www.apidb.org/cgi-bin/redirect.cgi?taxon_id=$1&source_id=$2\">$api</a>";          return "<a href=\"http://www.apidb.org/cgi-bin/redirect.cgi?taxon_id=$1&source_id=$2\" target=_blank>$api</a>";
1293      }      }
1294      return $api;      return $api;
1295  }  }
# Line 1220  Line 1300 
1300    
1301      if ($patric =~ /patric\|(.*)/)      if ($patric =~ /patric\|(.*)/)
1302      {      {
1303          return "<a href=\"https://patric.vbi.vt.edu/software/curationTool/gep/pgiCuration.php?locus_name=$1\">$patric</a>";          return "<a href=\"https://patric.vbi.vt.edu/software/curationTool/gep/pgiCuration.php?locus_name=$1\" target=_blank>$patric</a>";
1304      }      }
1305      return $patric;      return $patric;
1306  }  }
# Line 1231  Line 1311 
1311    
1312      if ($vbrc =~ /vbrc\|(.*)/)      if ($vbrc =~ /vbrc\|(.*)/)
1313      {      {
1314          return "<a href=\"http://www.biovirus.org/gene_detail.asp?name=$1\">$vbrc</a>";          return "<a href=\"http://www.biovirus.org/gene_detail.asp?name=$1\" target=_blank>$vbrc</a>";
1315      }      }
1316      return $vbrc;      return $vbrc;
1317  }  }
# Line 1239  Line 1319 
1319  sub vectorbase_link {  sub vectorbase_link {
1320      shift if UNIVERSAL::isa($_[0],__PACKAGE__);      shift if UNIVERSAL::isa($_[0],__PACKAGE__);
1321      my($cgi,$vec) = @_;      my($cgi,$vec) = @_;
1322      return "<a href=\"http://www.vectorbase.org\">$vec</a>";      return "<a href=\"http://www.vectorbase.org\" target=_blank>$vec</a>";
1323  }  }
1324    
1325    
# Line 1249  Line 1329 
1329    
1330      if ($uni =~ /^uni\|(\S+)$/)      if ($uni =~ /^uni\|(\S+)$/)
1331      {      {
1332          return "<a href=http://www.pir.uniprot.org/cgi-bin/upEntry?id=$1>$uni</a>";          #return "<a href=http://www.pir.uniprot.org/cgi-bin/upEntry?id=$1>$uni</a>";
1333            return "<a href='http://www.ebi.uniprot.org/uniprot-srv/uniProtView.do?proteinAc=$1' target=_blank>$uni</a>";
1334      }      }
1335      return $uni;      return $uni;
1336  }  }
# Line 1260  Line 1341 
1341    
1342      if ($sp =~ /^sp\|(\S+)$/)      if ($sp =~ /^sp\|(\S+)$/)
1343      {      {
1344          return "<a href=http://us.expasy.org/cgi-bin/get-sprot-entry?$1>$sp</a>";          return "<a href='http://us.expasy.org/cgi-bin/get-sprot-entry?$1' target=_blank>$sp</a>";
1345      }      }
1346      return $sp;      return $sp;
1347  }  }
# Line 1271  Line 1352 
1352    
1353      if ($pir =~ /^pirnr\|(NF\d+)$/)      if ($pir =~ /^pirnr\|(NF\d+)$/)
1354      {      {
1355          return "<a href=http://pir.georgetown.edu/cgi-bin/nfEntry.pl?id=$1>$pir</a>";          return "<a href='http://pir.georgetown.edu/cgi-bin/nfEntry.pl?id=$1' target=_blank>$pir</a>";
1356      }      }
1357      return $pir;      return $pir;
1358  }  }
# Line 1282  Line 1363 
1363    
1364      if ($kegg =~ /^kegg\|([^:]+):(\S+)$/)      if ($kegg =~ /^kegg\|([^:]+):(\S+)$/)
1365      {      {
1366          return "<a href=http://www.genome.ad.jp/dbget-bin/www_bget?$1+$2>$kegg</a>";          return "<a href='http://www.genome.ad.jp/dbget-bin/www_bget?$1+$2' target=_blank>$kegg</a>";
1367      }      }
1368      return $kegg;      return $kegg;
1369  }  }
# Line 1295  Line 1376 
1376      {      {
1377          my $what=$1;          my $what=$1;
1378          my $key=$2;          my $key=$2;
1379          my $idx="all";          my $idx="All";
1380          if ($what eq "EnsemblGene") { $idx = "Gene" }          if ($what eq "EnsemblGene") { $idx = "Gene" }
1381          if ($what eq "EnsemblTranscript") { $idx = "all" }          if ($what eq "EnsemblTranscript") { $idx = "All" }
1382          if ($what eq "EnsemblProtein") { $idx = "all" }          if ($what eq "EnsemblProtein") { $idx = "All" }
1383    
1384          #I really want to get right to the transcript and peptide pages, but          #I really want to get right to the transcript and peptide pages, but
1385          #can't see how to do that without knowing the org name too, which          #can't see how to do that without knowing the org name too, which
1386          #I don't know at this point. (ensembl org name, not real org name)          #I don't know at this point. (ensembl org name, not real org name)
1387    
1388          return "<a href=http://www.ensembl.org/Homo_sapiens/textview?species=all&idx=$idx&q=$key>$ensembl</a>";          return "<a href='http://www.ensembl.org/Homo_sapiens/searchview?species=all&idx=$idx&q=$key' target=_blank>$ensembl</a>";
1389      }      }
1390      return $ensembl;      return $ensembl;
1391  }  }
# Line 1315  Line 1396 
1396    
1397      if ($entrezgene =~ /^EntrezGene:(\S+)$/)      if ($entrezgene =~ /^EntrezGene:(\S+)$/)
1398      {      {
1399          return "<a href=http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=full_report&list_uids=$1>$entrezgene</a>";          return "<a href='http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=full_report&list_uids=$1' target=_blank>$entrezgene</a>";
1400      }      }
1401      return $entrezgene;      return $entrezgene;
1402  }  }
# Line 1326  Line 1407 
1407    
1408      if ($mim =~ /^MIM:(\S+)$/)      if ($mim =~ /^MIM:(\S+)$/)
1409      {      {
1410          return "<a href=http://www3.ncbi.nlm.nih.gov/entrez/dispomim.cgi?id=$1>$mim</a>";          return "<a href='http://www3.ncbi.nlm.nih.gov/entrez/dispomim.cgi?id=$1' target=_blank>$mim</a>";
1411      }      }
1412      return $mim;      return $mim;
1413  }  }
1414    
1415    sub hgnc_link {
1416        shift if UNIVERSAL::isa($_[0],__PACKAGE__);
1417        my($cgi,$hgnc) = @_;
1418    
1419        if ($hgnc =~ /^HGNC:(\S+)$/)
1420        {
1421            return "<a href='http://www.gene.ucl.ac.uk/cgi-bin/nomenclature/searchgenes.pl?field=symbol&anchor=equals&match=$1&symbol_search=Search&number=50&format=html&sortby=symbol' target=_blank>$hgnc</a>";
1422        }
1423    
1424        return $hgnc;
1425    }
1426    
1427  sub unigene_link {  sub unigene_link {
1428      shift if UNIVERSAL::isa($_[0],__PACKAGE__);      shift if UNIVERSAL::isa($_[0],__PACKAGE__);
1429      my($cgi,$unigene) = @_;      my($cgi,$unigene) = @_;
1430    
1431      if ($unigene =~ /^UniGene:(\S+)$/)      if ($unigene =~ /^UniGene:(\S+)$/)
1432      {      {
1433          return "<a href=http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=unigene&cmd=search&term=$1>$unigene</a>";          return "<a href='http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=unigene&cmd=search&term=$1' target=_blank>$unigene</a>";
1434      }      }
1435      return $unigene;      return $unigene;
1436  }  }
# Line 1348  Line 1441 
1441    
1442      if ($ipi =~ /^IPI:(\S+)$/)      if ($ipi =~ /^IPI:(\S+)$/)
1443      {      {
1444          return "<a href=http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-id+AEoS1R8Jnn+-e+[IPI:\'$1\']+-qnum+1+-enum+1>$ipi</a>";          return "<a href='http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-id+AEoS1R8Jnn+-e+[IPI:\'$1\']+-qnum+1+-enum+1' target=_blank>$ipi</a>";
1445      }      }
1446      return $ipi;      return $ipi;
1447  }  }
# Line 1361  Line 1454 
1454    
1455      if ($wp =~ /^WP:(\S+)$/)      if ($wp =~ /^WP:(\S+)$/)
1456      {      {
1457          return "<a href=http://www.wormbase.org/db/searches/basic?class=Any&query=$1&Search=Search>$wp</a>";          return "<a href='http://www.wormbase.org/db/searches/basic?class=Any&query=$1&Search=Search' target=_blank>$wp</a>";
1458      }      }
1459      return $wp;      return $wp;
1460  }  }
# Line 1374  Line 1467 
1467    
1468      if ($fb =~ /^FB:(\S+)$/)      if ($fb =~ /^FB:(\S+)$/)
1469      {      {
1470          return "<a href=http://flybase.bio.indiana.edu/.bin/fbidq.html?$1>$fb</a>";          return "<a href='http://flybase.bio.indiana.edu/.bin/fbidq.html?$1' target=_blank>$fb</a>";
1471      }      }
1472      return $fb;      return $fb;
1473  }  }
# Line 1387  Line 1480 
1480    
1481      if ($fb =~ /^FlyBaseORFNames:(\S+)$/)      if ($fb =~ /^FlyBaseORFNames:(\S+)$/)
1482      {      {
1483          return "<a href=http://flybase.bio.indiana.edu/.bin/fbidq.html?$1>$fb</a>";          return "<a href='http://flybase.bio.indiana.edu/.bin/fbidq.html?$1' target=_blank>$fb</a>";
1484      }      }
1485      return $fb;      return $fb;
1486  }  }
# Line 1400  Line 1493 
1493    
1494      if ($sgd =~ /^SGD_LOCUS:(\S+)$/)      if ($sgd =~ /^SGD_LOCUS:(\S+)$/)
1495      {      {
1496          return "<a href=http://db.yeastgenome.org/cgi-bin/locus.pl?locus=$1>$sgd</a>";          return "<a href='http://db.yeastgenome.org/cgi-bin/locus.pl?locus=$1' target=_blank>$sgd</a>";
1497      }      }
1498      return $sgd;      return $sgd;
1499  }  }
# Line 1431  Line 1524 
1524      shift if UNIVERSAL::isa($_[0],__PACKAGE__);      shift if UNIVERSAL::isa($_[0],__PACKAGE__);
1525      my($cgi,$map,$org) = @_;      my($cgi,$map,$org) = @_;
1526    
1527      $user = $cgi->param('user');      my $user = $cgi->param('user');
1528      $user = $user ? $user : "";      $user = $user ? $user : "";
1529      $org = $org ? $org : "";      $org = $org ? $org : "";
1530    
# Line 1449  Line 1542 
1542    # -name => field and the checkbox name    # -name => field and the checkbox name
1543    my ($form, $button)=@_;    my ($form, $button)=@_;
1544    
1545    $java_script="<input type=\"button\" name=\"CheckAll\" value=\"Check All\"\nonClick=\"checkAll(document.$form.$button)\">\n";    my $java_script="<input type=\"button\" name=\"CheckAll\" value=\"Check All\"\nonClick=\"checkAll(document.$form.$button)\">\n";
1546    $java_script.="<input type=\"button\" name=\"CheckFirst\" value=\"Check First Half\"\nonClick=\"checkFirst(document.$form.$button)\">\n";    $java_script.="<input type=\"button\" name=\"CheckFirst\" value=\"Check First Half\"\nonClick=\"checkFirst(document.$form.$button)\">\n";
1547    $java_script.="<input type=\"button\" name=\"CheckSecond\" value=\"Check Second Half\"\nonClick=\"checkSecond(document.$form.$button)\">\n";    $java_script.="<input type=\"button\" name=\"CheckSecond\" value=\"Check Second Half\"\nonClick=\"checkSecond(document.$form.$button)\">\n";
1548    $java_script.="<input type=\"button\" name=\"UnCheckAll\" value=\"Uncheck All\"\nonClick=\"uncheckAll(document.$form.$button)\">\n";    $java_script.="<input type=\"button\" name=\"UnCheckAll\" value=\"Uncheck All\"\nonClick=\"uncheckAll(document.$form.$button)\">\n";
# Line 1463  Line 1556 
1556      my($sub_link);      my($sub_link);
1557    
1558      my $user = $cgi->param('user');      my $user = $cgi->param('user');
     if ($user)  
     {  
1559          my $esc_sub = uri_escape( $sub );          my $esc_sub = uri_escape( $sub );
1560          $sub =~ s/\_/ /g;          $sub =~ s/\_/ /g;
1561        if ($user)
1562        {
1563          $sub_link = "<a href=./subsys.cgi?ssa_name=$esc_sub&request=show_ssa&user=$user>$sub</a>";          $sub_link = "<a href=./subsys.cgi?ssa_name=$esc_sub&request=show_ssa&user=$user>$sub</a>";
1564      }      }
1565      else      else
1566      {      {
1567          $sub_link = $sub;          $sub_link = "<a href=\"display_subsys.cgi?ssa_name=$esc_sub&request=show_ssa&sort=by_phylo\">$sub</a>";
1568      }      }
1569      return $sub_link;      return $sub_link;
1570  }  }
1571    
1572  sub reaction_link {  sub reaction_link {
1573      my($reaction) = @_;      my($reaction) = @_;
1574        if ($reaction =~ /^(\*)?(R\d+)/)
     if ($reaction =~ /^R\d+/)  
1575      {      {
1576          return "<a href=\"http://www.genome.ad.jp/dbget-bin/www_bget?rn+$reaction\" target=reaction$$>$reaction</a>";          return "<a href=\"http://www.genome.ad.jp/dbget-bin/www_bget?rn+$2\" target=reaction$$>$reaction</a>";
1577      }      }
1578      return $reaction;      return $reaction;
1579  }  }
1580    
1581    
1582  sub html_for_assignments {  sub html_for_assignments {
1583      my($fig,$user,$peg_sets) = @_;      my($fig,$user,$peg_sets) = @_;
1584      my $i;      my $i;
1585    
1586      my @vals = ();      my @vals = ();
1587      my $set = 1;      my $set = 1;
1588      foreach $peg_set (@$peg_sets)      foreach my $peg_set (@$peg_sets)
1589      {      {
1590          for ($i=0; ($i < @$peg_set); $i++)          for ($i=0; ($i < @$peg_set); $i++)
1591          {          {
1592              $peg = $peg_set->[$i];              my $peg = $peg_set->[$i];
1593              push(@vals,'show=' . join("@",($set,$i+1,$peg,&FIG::abbrev($fig->org_of($peg)),"")));              push(@vals,'show=' . join("@",($set,$i+1,$peg,&FIG::abbrev($fig->org_of($peg)),"")));
1594          }          }
1595          $set++;          $set++;
# Line 1607  Line 1700 
1700    
1701    
1702   my @files=("SEED.rss");   my @files=("SEED.rss");
1703   if ($args->{"type"}) {push @files, "SEED.$type.rss"}   if ($args->{"type"}) {
1704        my $type = $args->{type};
1705        push @files, "SEED.$type.rss"
1706    }
1707    
1708   foreach my $file ("SEED.rss", @$files)   foreach my $file ("SEED.rss", @$files)
1709   {   {

Legend:
Removed from v.1.83  
changed lines
  Added in v.1.102

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3