[Bio] / FortyEight / SeedExport.pm Repository:
ViewVC logotype

Diff of /FortyEight/SeedExport.pm

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

revision 1.6, Thu Feb 15 16:59:42 2007 UTC revision 1.7, Thu Feb 15 22:41:39 2007 UTC
# Line 117  Line 117 
117          my $note;          my $note;
118          my $func = $fig->function_of($peg, $user);          my $func = $fig->function_of($peg, $user);
119    
120          # check for a GO number      my %ecs;
121          if (exists($fr2go->{$func})) {      my @gos;
122            push @{$note->{"Dbxref"}}, @{$fr2go->{$func}};  
123          }      # get EC / GO from role
124        if (defined $func) {
125          # parse out the ec number if there is one        foreach my $role ($fig->roles_of_function($func)) {
126          my $ec;          my ($ec) = ($role =~ /\(EC (\d+\.\d+\.\d+\.\d+)\)/);
127          if ($func =~ /E\.*C\.*\s+(\d+|-)\.(\d+|-)\.(\d+|-)\.(\d+|-)/) {          $ecs{$ec} = 1 if ($ec);
128              push @{$note->{"EC_number"}}, "$1.$2.$3.$4";          push @gos, @{$fr2go->{$role}} if ($fr2go->{$role});
129          }        }
   
         # check the aliases  
         foreach my $alias ($fig->feature_aliases($peg))  
         {  
             if ($alias =~ /^NP_/ || $alias =~ /YP_/) {  
               push @{$note->{"Dbxref"}}, "genpept:$alias"  
             }  
             elsif ($alias =~ /gi\|/)  
             {  
                 $alias =~ s/^gi\|//;  
                 push @{$note->{"Dbxref"}}, "GI:$alias";  
             }  
             elsif ($alias =~ /^kegg/i)  
             {  
                 $alias =~ s/kegg\|/KEGG:/i;  
                 $alias =~ s/^(.*):/$1+/;  
                 push @{$note->{"Dbxref"}}, $alias  
             }  
             elsif ($alias =~ /^uni/)  
             {  
                 $alias =~ s/uni\|/UniProt:/;  
                 push @{$note->{"Dbxref"}}, "UniProtKB/TrEMBL:$alias";  
             }  
             elsif ($alias =~ /^sp\|/)  
             {  
                 $alias =~ s/sp\|/Swiss-Prot:/;  
                 push @{$note->{"Dbxref"}}, "UniProtKB/Swiss-Prot:$alias";  
             }  
             elsif ($alias =~ /^[a-zA-Z][a-zA-Z0-9]{2,}\_[a-zA-Z]*\d+$/)  
             {  
                 # that should be the regexp for a valid locus tag. Starts with a letter,  
                 # has at least three alphanumerics before the _  
                 # then has a series of optional letters and ends with numbers  
                 push @{$note->{"locus_tag"}}, $alias;  
             }  
             elsif ($alias =~ /^.{4,6}$/)  
             {  
                 push @{$note->{"gene_symbol"}}, $alias;  
             }  
             elsif ($alias =~ /^[a-zA-Z]+\d+$/)  
             {  
                 push @{$note->{"locus"}}, $alias;  
             }  
             else {  
                 # don't know what it is so keep it as an alias  
                 push @{$note->{"Alias"}}, $alias;  
130              }              }
131    
132        # remove duplicate gos
133        my %gos = map { $_ => 1 } @gos if (scalar(@gos));
134    
135        # add GOs
136        push @{$note->{"Dbxref"}}, @gos;
137    
138        # add ECs
139        push @{$note->{"EC_number"}}, keys(%ecs);
140    
141        # get the aliases from principal id
142        my $pid = $fig->maps_to_id($peg);
143        my @rw_aliases = map { $fig->rewrite_db_xrefs($_->[0]) } $fig->mapped_prot_ids($pid);
144        my @aliases;
145        foreach my $a (@rw_aliases) {
146          push @{$note->{"Dbxref"}}, $a if ( $a );
147          }          }
148    
149          # get the links          # get the links
150          foreach my $ln ($fig->fid_links($peg))      foreach my $ln ($fig->fid_links($peg)) {
         {  
151              my ($db, $id);              my ($db, $id);
152              if ($ln =~ /field0=CATID/ && $ln =~ /query0=(\d+)/ && ($id=$1) && $ln =~ /pcenter=harvard/) {              if ($ln =~ /field0=CATID/ && $ln =~ /query0=(\d+)/ && ($id=$1) && $ln =~ /pcenter=harvard/) {
153                  $db = "HarvardClone";                  $db = "HarvardClone";
# Line 210  Line 179 
179              if ($start > $stop) {              if ($start > $stop) {
180                $frame = $stop % 3;                $frame = $stop % 3;
181                ($start, $stop, $strand) = ($stop, $start, '-1');                ($start, $stop, $strand) = ($stop, $start, '-1');
182              }        } elsif ($start == $stop) {
             elsif ($start == $stop) {  
183                $strand = ".";                $strand = ".";
184                $frame = ".";                $frame = ".";
185              }              }
# Line 293  Line 261 
261    
262      return ($filename, "Output file successfully written.");      return ($filename, "Output file successfully written.");
263  }  }
264    
265    
266    

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3