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

Diff of /FigKernelPackages/FIG.pm

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

revision 1.319, Tue Jul 26 04:53:36 2005 UTC revision 1.320, Tue Jul 26 20:06:03 2005 UTC
# Line 2686  Line 2686 
2686  =back  =back
2687    
2688  =cut  =cut
2689    #: Return Type @;
2690  sub genomes  :remote :list {  sub genomes  :remote :list {
2691      my( $self, $complete, $restrictions, $domain ) = @_;      my( $self, $complete, $restrictions, $domain ) = @_;
2692    
# Line 3139  Line 3139 
3139  =back  =back
3140    
3141  =cut  =cut
3142    #: Return Type $;
3143  sub genus_species :scalar {  sub genus_species :scalar {
3144      my ($self,$genome) = @_;      my ($self,$genome) = @_;
3145      my $ans;      my $ans;
# Line 4183  Line 4183 
4183      return $1;      return $1;
4184  }  }
4185    
4186    =head3 upstream_of
4187    
4188    C<< my $dna = $fig->upstream_of($peg, $upstream, $coding); >>
4189    
4190    Return the DNA immediately upstream of a feature. This method contains code lifted from
4191    the C<upstream.pl> script.
4192    
4193    =over 4
4194    
4195    =item peg
4196    
4197    ID of the feature whose upstream DNA is desired.
4198    
4199    =item upstream
4200    
4201    Number of base pairs considered upstream.
4202    
4203    =item coding
4204    
4205    Number of base pairs inside the feature to be included in the upstream region.
4206    
4207    =item RETURN
4208    
4209    Returns the DNA sequence upstream of the feature's begin point and extending into the coding
4210    region. Letters inside a feature are in upper case and inter-genic letters are in lower case.
4211    A hyphen separates the true upstream letters from the coding region.
4212    
4213    =back
4214    
4215    =cut
4216    #: Return Type $;
4217    sub upstream_of {
4218        # Get the parameters.
4219        my ($self, $peg, $upstream, $coding) = @_;
4220        # Declare the work variables.
4221        my ($gene_before, $inter_genic, $c_seq) = ("", "", "");
4222        # Declare the return variable.
4223        my $retVal;
4224        # Compute the upstream.
4225        my($contig,$beg,$end) = $self->boundaries_of(scalar $self->feature_location($peg));
4226        my $genome = $self->genome_of($peg);
4227        if (defined($contig) && (my $contig_ln = $self->contig_ln($genome,$contig)))
4228        {
4229            if ($beg < $end)
4230            {
4231                # Here the feature goes from left to right. Set "b" and "e" to the start and
4232                # end of the upstream region, which precedes the feature.
4233                my $b = max(1,$beg-$upstream);
4234                my $e = max(1,$beg-1);
4235                if ($e > $b)
4236                {
4237                    # Here an upstream region exists. We put it in u_seq.
4238                    my $u_seq = lc $self->dna_seq($genome,join("_",($contig,$b,$e)));
4239                    # Now we look for a coding region inside the feature. It would go from
4240                    # "$beg" to "$end1".
4241                    my $end1 = min($end,$beg+$coding-1);
4242                    # If a coding region exists, we put it in c_seq.
4243                    $c_seq = ($end1 > $beg) ?
4244                                uc $self->dna_seq($genome,join("_",($contig,$beg,$end1))) : "";
4245                    # Now we look for a gene in the upstream region. If one exists, we put its
4246                    # rightmost point in "$e_ov".
4247                    my (undef,undef,$e_ov) = $self->genes_in_region($genome,$contig,$b,$e);
4248                    if ($e_ov && ($e_ov >= $b))
4249                    {
4250                        # Get the length of the upstream region that overlaps the preceding gene.
4251                        # We need to be careful here, because it might actually extend into the
4252                        # coding region.
4253                        my $ov_ln = min($e_ov - $b + 1, length $u_seq);
4254                        $gene_before = uc substr($u_seq,0,$ov_ln);
4255                        $inter_genic = substr($u_seq,$ov_ln);
4256                    }
4257                    else
4258                    {
4259                        # No overlap. The entire upstream is considered inter-genic.
4260                        $gene_before = "";
4261                        $inter_genic = $u_seq;
4262                    }
4263                }
4264            }
4265            else
4266            {
4267                # Here the feature goes from right to left. Set "$b" and "$e" to the beginning
4268                # and end of the upstream region, which is to the right of the feature.
4269                my $b = min($contig_ln,$beg+$upstream);
4270                my $e = min($contig_ln,$beg+1);
4271                if ($e < $b)
4272                {
4273                    # Here an upstream region exists. We put it in u_seq.
4274                    my $u_seq = lc $self->dna_seq($genome,join("_",($contig,$b,$e)));
4275                    # Now we look for a coding region inside the feature. If one exists we
4276                    # put it in c_seq.
4277                    my $end1 = max($end,$beg-$coding+1);
4278                    $c_seq = ($end1 < $beg) ?
4279                                uc $self->dna_seq($genome,join("_",($contig,$beg,$end1))) : "";
4280                    # Now we look for a gene that overlaps the upstream region. If it exists,
4281                    # we put its leftmost point in b_ov.
4282                    my (undef,$b_ov,undef) = $self->genes_in_region($genome,$contig,$e,$b);
4283                    if ($b_ov && ($b_ov <= $b))
4284                    {
4285                        # Get the length of the upstream region that overlaps the preceding gene.
4286                        # We need to be careful here, because it might actually extend into the
4287                        # coding region.
4288                        my $ov_ln = min($b - $b_ov + 1, length $u_seq);
4289                        $gene_before = uc substr($u_seq,0,$ov_ln);
4290                        $inter_genic = substr($u_seq,$ov_ln);
4291                    }
4292                    else
4293                    {
4294                        $gene_before = "";
4295                        $inter_genic = $u_seq;
4296                    }
4297                }
4298            }
4299            $retVal = join(($c_seq ? "-" : ""), ($gene_before . $inter_genic, $c_seq));
4300        }
4301        # Return the result.
4302        return $retVal;
4303    }
4304    
4305  =head3 strand_of  =head3 strand_of
4306    
4307  C<< my $strand = $fig->contig_of($location); >>  C<< my $strand = $fig->contig_of($location); >>
# Line 4464  Line 4583 
4583    
4584  =head3 all_features_detailed  =head3 all_features_detailed
4585    
4586  usage: $fig->all_features_detailed($genome)  C<< my $featureList = $fig->all_features_detailed($genome); >>
4587    
4588  Returns a list of all feature IDs, location, aliases, type in the designated genome.  Returns a list of all features in the designated genome, with their location, alias,
4589  Used in gendb import to speed up the process  and type information included. This is used in the GenDB import and Sprout load to
4590  =cut  speed up the process.
4591    
4592    Deleted features are not returned!
4593    
4594    =over 4
4595    
4596    =item genome
4597    
4598    ID of the genome whose features are desired.
4599    
4600    =item RETURN
4601    
4602    Returns a reference to a list of tuples. Each tuple consists of four elements: (1) the feature
4603    ID, (2) the feature location (as a comma-delimited list of location specifiers), (3) the feature
4604    aliases (as a comma-delimited list of named aliases), and (4) the feature type.
4605    
4606    =back
4607    
4608    =cut
4609    #: Return Type $@@;
4610  sub all_features_detailed {  sub all_features_detailed {
4611      my($self,$genome) = @_;      my($self,$genome) = @_;
4612    
# Line 5236  Line 5373 
5373    
5374  =head3 get_translation  =head3 get_translation
5375    
5376  usage: $translation = $fig->get_translation($prot_id)  C<< my $translation = $fig->get_translation($prot_id); >>
5377    
5378  The system takes any number of sources of protein sequences as input (and builds an nr  The system takes any number of sources of protein sequences as input (and builds an nr
5379  for the purpose of computing similarities).  For each of these input fasta files, it saves  for the purpose of computing similarities).  For each of these input fasta files, it saves
5380  (in the DB) a filename, seek address and length so that it can go get the translation if  (in the DB) a filename, seek address and length so that it can go get the translation if
5381  needed.  This routine returns a protein sequence.  needed.  This routine returns the stored protein sequence of the specified PEG feature.
5382    
5383  =cut  =over 4
5384    
5385    =item prot_id
5386    
5387    ID of the feature (PEG) whose translation is desired.
5388    
5389    =item RETURN
5390    
5391    Returns the protein sequence string for the specified feature.
5392    
5393    =back
5394    
5395    =cut
5396    #: Return Type $;
5397  sub get_translation {  sub get_translation {
5398      my($self,$id) = @_;      my($self,$id) = @_;
5399      my($rdbH,$relational_db_response,$fileN,$file,$fh,$seek,$ln,$tran);      my($rdbH,$relational_db_response,$fileN,$file,$fh,$seek,$ln,$tran);
# Line 6005  Line 6154 
6154      return [ split( /\n/, $piece ) ];      return [ split( /\n/, $piece ) ];
6155  }  }
6156    
6157    =head3 bbhs
6158    
6159    C<< my @bbhList = $fig->bbhs($peg); >>
6160    
6161    Return a list of the bi-directional best hits relevant to the specified PEG.
6162    
6163    =over 4
6164    
6165    =item peg
6166    
6167    ID of the feature whose bidirectional best hits are desired.
6168    
6169    =item RETURN
6170    
6171    Returns a list of 2-tuples. The first element of the list is the best-hit PEG; the second
6172    element is the score. A lower score indicates a better match.
6173    
6174    =back
6175    
6176    =cut
6177    #: Return Type @@;
6178  sub bbhs {  sub bbhs {
6179        # ???? The cutoff is not used for anything ????
6180      my($self,$peg,$cutoff) = @_;      my($self,$peg,$cutoff) = @_;
6181      my($sim,$peg2,$genome2,$i,@sims2,%seen);      my($sim,$peg2,$genome2,$i,@sims2,%seen);
6182    
# Line 6020  Line 6190 
6190      return sort { $a->[1] <=> $b->[1] } @{$relational_db_response};      return sort { $a->[1] <=> $b->[1] } @{$relational_db_response};
6191  }  }
6192    
6193  #  =head3 bbh_list
6194  # Modeled after the Sprout call of the same name.  
6195  #  C<< my $bbhHash = $fig->bbh_list($genomeID, \@featureList); >>
6196    
6197    Return a hash mapping the features in a specified list to their bidirectional best hits
6198    on a specified target genome.
6199    
6200    (Modeled after the Sprout call of the same name.)
6201    
6202    =over 4
6203    
6204    =item genomeID
6205    
6206    ID of the genome from which the best hits should be taken.
6207    
6208    =item featureList
6209    
6210    List of the features whose best hits are desired.
6211    
6212    =item RETURN
6213    
6214    Returns a reference to a hash that maps the IDs of the incoming features to the best hits
6215    on the target genome.
6216    
6217    =back
6218    
6219    =cut
6220    #: Return Type %;
6221  sub bbh_list {  sub bbh_list {
6222      my($self, $genome, $features) = @_;      my($self, $genome, $features) = @_;
6223    
# Line 6792  Line 6985 
6985    
6986  This contains the definition of the attribute keys. There are currently 3 defined columns although others may be added and this file can contain lines of an arbitrary length.  This contains the definition of the attribute keys. There are currently 3 defined columns although others may be added and this file can contain lines of an arbitrary length.
6987    
6988  3. Global/Attibutes/transaction_log, Organisms/nnnnnn.n/Attributes/transaction_log, and Organisms/nnnnnn.n/Features/*/Attributes/transaction_log  3. Global/Attributes/transaction_log, Organisms/nnnnnn.n/Attributes/transaction_log, and Organisms/nnnnnn.n/Features/*/Attributes/transaction_log
6989    
6990  These are the transaction logs that contain any modifications to the data. In general the data is loaded from a single definition file this is not modified by the software. Any changes to the attributes are made in the Database and then written to the transaction log. The transaction log has the following columns  These are the transaction logs that contain any modifications to the data. In general the data is loaded from a single definition file this is not modified by the software. Any changes to the attributes are made in the Database and then written to the transaction log. The transaction log has the following columns
6991    
# Line 7581  Line 7774 
7774    
7775  ################################# Protein Families ####################################  ################################# Protein Families ####################################
7776    
7777  =head2 protein families  =head2 Protein Families
7778    
7779  In the protein families we have our own concept of an id that I have called an cid. This is entirely internal and does not map to any known database except our own, however it is used to store the correspondence between different protein families. Therefore, to find out what family any protein is in you need to convert that protein to an cid. You can start with a KEGG, COG, TIGR, SP, GI, or FIG id, and get an cid back. From there, you can find out what other proteins that cid maps to, and what families that protein is also in.  In the protein families we have our own concept of an id that I have called an cid. This is entirely internal and does not map to any known database except our own, however it is used to store the correspondence between different protein families. Therefore, to find out what family any protein is in you need to convert that protein to an cid. You can start with a KEGG, COG, TIGR, SP, GI, or FIG id, and get an cid back. From there, you can find out what other proteins that cid maps to, and what families that protein is also in.
7780    
# Line 7818  Line 8011 
8011    
8012  ################################# Abstract Set Routines  ####################################  ################################# Abstract Set Routines  ####################################
8013    
8014    =head2 Abstract Set Routines
8015    
8016    =cut
8017    
8018  sub all_sets {  sub all_sets {
8019      my($self,$relation,$set_name) = @_;      my($self,$relation,$set_name) = @_;
8020      my($relational_db_response);      my($relational_db_response);
# Line 7965  Line 8162 
8162    
8163  ################################# KEGG Stuff  ####################################  ################################# KEGG Stuff  ####################################
8164    
8165    =head2 KEGG methods
8166    
8167  =head3 all_compounds  =head3 all_compounds
8168    
# Line 8009  Line 8207 
8207    
8208  =head3 comp2react  =head3 comp2react
8209    
   
8210  usage: @rids = $fig->comp2react($cid)  usage: @rids = $fig->comp2react($cid)
8211    
8212  Returns a list containing all of the reaction IDs for reactions that take $cid  Returns a list containing all of the reaction IDs for reactions that take $cid
# Line 8289  Line 8486 
8486  }  }
8487    
8488  ################################# Functional Roles  ####################################  ################################# Functional Roles  ####################################
8489    =head2 Functional Roles
8490    
8491  =head3 neighborhood_of_role  =head3 neighborhood_of_role
8492    
# Line 8595  Line 8793 
8793      }      }
8794  }  }
8795    
8796    =head2 Bidirectional Best Hits
8797    
8798  =head3 best_bbh_candidates  =head3 best_bbh_candidates
8799    
# Line 8715  Line 8913 
8913    
8914  #################################   DNA sequence Stuff ####################################  #################################   DNA sequence Stuff ####################################
8915    
8916    =head2 DNA Sequences
8917    
8918  =head3 extract_seq  =head3 extract_seq
8919    
8920  usage: $seq = &FIG::extract_seq($contigs,$loc)  usage: $seq = &FIG::extract_seq($contigs,$loc)
# Line 8722  Line 8922 
8922  This is just a little utility routine that I have found convenient.  It assumes that  This is just a little utility routine that I have found convenient.  It assumes that
8923  $contigs is a hash that contains IDs as keys and sequences as values.  $loc must be of the  $contigs is a hash that contains IDs as keys and sequences as values.  $loc must be of the
8924  form  form
8925    
8926         Contig_Beg_End         Contig_Beg_End
8927    
8928  where Contig is the ID of one of the sequences; Beg and End give the coordinates of the sought  where Contig is the ID of one of the sequences; Beg and End give the coordinates of the sought
# Line 8804  Line 9005 
9005  Returns a list of all of the contigs occurring in the designated genome.  Returns a list of all of the contigs occurring in the designated genome.
9006    
9007  =cut  =cut
9008    #: Return Type @;
9009  sub all_contigs {  sub all_contigs {
9010      my($self,$genome) = @_;      my($self,$genome) = @_;
9011      my($rdbH,$relational_db_response);      my($rdbH,$relational_db_response);
# Line 8858  Line 9059 
9059  describes a stretch of the complementary strand.  describes a stretch of the complementary strand.
9060    
9061  =cut  =cut
9062    #: Return Type $;
9063  sub dna_seq {  sub dna_seq {
9064      my($self,$genome,@locations) = @_;      my($self,$genome,@locations) = @_;
9065      my(@pieces,$loc,$contig,$beg,$end,$ln,$rdbH);      my(@pieces,$loc,$contig,$beg,$end,$ln,$rdbH);
# Line 8922  Line 9123 
9123    
9124  #################################   Taxonomy  ####################################  #################################   Taxonomy  ####################################
9125    
9126    =head2 Taxonomy
9127    
9128  =head3 taxonomy_of  =head3 taxonomy_of
9129    
9130  usage: $gs = $fig->taxonomy_of($genome_id)  usage: $gs = $fig->taxonomy_of($genome_id)
# Line 9206  Line 9409 
9409    
9410  ################################# Literature Stuff  ####################################  ################################# Literature Stuff  ####################################
9411    
9412    =head2 Literature Methods
9413    
9414    =cut
9415    
9416  sub get_titles_by_gi {  sub get_titles_by_gi {
9417      my($self,$gi) = @_;      my($self,$gi) = @_;
9418    
# Line 9283  Line 9490 
9490    
9491  ################################# Subsystems  ####################################  ################################# Subsystems  ####################################
9492    
9493    =head2 Subsystem Methods
9494    
9495    =cut
9496    
9497  sub exportable_subsystem {  sub exportable_subsystem {
9498      my($self,$ssa) = @_;      my($self,$ssa) = @_;
# Line 9589  Line 9798 
9798    
9799  Return the curator of a subsystem.  Return the curator of a subsystem.
9800    
   
9801  =cut  =cut
9802    
9803  sub subsystem_curator :scalar {  sub subsystem_curator :scalar {
# Line 9700  Line 9908 
9908  unless ($zero) is set to true it will only return those genomes with a non-zero variant code  unless ($zero) is set to true it will only return those genomes with a non-zero variant code
9909    
9910  =cut  =cut
9911    #: Return Type $@@;
9912  sub subsystem_genomes :scalar {  sub subsystem_genomes :scalar {
9913      my($self,$ssa,$all) = @_;      my($self,$ssa,$all) = @_;
9914      my($genomes);      my($genomes);
# Line 9773  Line 9981 
9981      return $sub;      return $sub;
9982  }  }
9983    
9984    =head3 subsystem_to_roles
9985    
9986    C<< my @roles = $fig->subsystem_to_roles($subsysID); >>
9987    
9988    Return a list of the roles for the specified subsystem.
9989    
9990    =over 4
9991    
9992    =item subsysID
9993    
9994    Name (ID) of the subsystem whose roles are to be listed.
9995    
9996    =item RETURN
9997    
9998    Returns a list of role IDs.
9999    
10000    =back
10001    
10002    =cut
10003    
10004  sub subsystem_to_roles  sub subsystem_to_roles
10005  {  {
10006      my($self, $subsystem) = @_;      my($self, $subsystem) = @_;
# Line 9876  Line 10104 
10104  # Return the list of subsystems this peg appears in.  # Return the list of subsystems this peg appears in.
10105  # Each entry is a pair [subsystem, role].  # Each entry is a pair [subsystem, role].
10106  #  #
10107    
10108  =head3 subsystems_for_peg  =head3 subsystems_for_peg
10109    
10110   Return the list of subsystems and roles that this peg appears in.   Return the list of subsystems and roles that this peg appears in.
# Line 10158  Line 10387 
10387    
10388  ################################# PEG Translation  ####################################  ################################# PEG Translation  ####################################
10389    
10390    =head2 PEG Translations
10391    
10392    =cut
10393    
10394  sub translate_pegs {  sub translate_pegs {
10395      my($self,$pegs,$seq_of, $cb) = @_;      my($self,$pegs,$seq_of, $cb) = @_;
10396      my($seq,$aliases,$pegT,%to,%sought,@keys,$peg,$alias);      my($seq,$aliases,$pegT,%to,%sought,@keys,$peg,$alias);
# Line 10396  Line 10629 
10629    
10630  ################################# Support for PEG Links  ####################################  ################################# Support for PEG Links  ####################################
10631    
10632    =head2 Links
10633    
10634    =cut
10635    
10636  sub peg_links {  sub peg_links {
10637      my($self,$fid) = @_;      my($self,$fid) = @_;
# Line 10403  Line 10639 
10639      return $self->fid_links($fid);      return $self->fid_links($fid);
10640  }  }
10641    
10642    =head3 fid_links
10643    
10644    C<< my @links = $fig->fid_links($fid); >>
10645    
10646    Return a list of hyperlinks to web resources about a specified feature.
10647    
10648    =over 4
10649    
10650    =item fid
10651    
10652    ID of the feature whose hyperlinks are desired.
10653    
10654    =item RETURN
10655    
10656    Returns a list of raw HTML strings representing hyperlinks to web pages relating to
10657    the specified feature.
10658    
10659    =back
10660    
10661    =cut
10662    #: Return Type @;
10663  sub fid_links {  sub fid_links {
10664      my($self,$fid) = @_;      my($self,$fid) = @_;
10665      my($i,$got,$genome,$fidN);      my($i,$got,$genome,$fidN);
# Line 10573  Line 10830 
10830    
10831  ###########  ###########
10832  #  #
 # Some routines for dealing with peg search and similarities.  
 #  
 # This is code lifted from pom.cgi and reformatted for more general use.  
 #  
 #  
 # Find the given role in the given (via CGI params) organism.  
 #  
 # We do this by finding a list of pegs that are annotated to have  
 # this role in other organisms that are "close enough" to our organism  
 #  
 # We then find pegs in this organism that are similar to  
 # these pegs.  
10833  #  #
10834    
10835    =head2 Peg Searches and Similarities
10836    
10837    Some routines for dealing with peg search and similarities.
10838    
10839    This is code lifted from pom.cgi and reformatted for more general use.
10840    
10841    Find the given role in the given (via CGI params) organism.
10842    
10843    We do this by finding a list of pegs that are annotated to have
10844    this role in other organisms that are "close enough" to our organism
10845    
10846    We then find pegs in this organism that are similar to
10847    these pegs.
10848    
10849    =cut
10850    
10851  sub find_role_in_org  sub find_role_in_org
10852  {  {
10853      my($self,$role, $org, $user, $sims_cutoff) = @_;      my($self,$role, $org, $user, $sims_cutoff) = @_;
# Line 10657  Line 10918 
10918      return @ret;      return @ret;
10919  }  }
10920    
10921    =head2 Utility Methods
10922    
10923  =head2 run_in_background  =head3 run_in_background
10924    
10925  Background job support.  Background job support.
10926    
# Line 10828  Line 11090 
11090    
11091    
11092  ############################### Interfaces to Other Systems ######################################  ############################### Interfaces to Other Systems ######################################
 # This section contains the functionality introduced by the interface with GenDB.  The initial  
 # two functions simply register when GenDB has a version of the genome (so we can set links  
 # to it when displaying PEGS:  
11093  #  #
11094    
11095  =head3 has_genome(System,Genome)  =head2 External Interface Methods
11096    
11097    This section contains the functionality introduced by the interface with GenDB.  The initial
11098    two functions simply register when GenDB has a version of the genome (so we can set links
11099    to it when displaying PEGS:
11100    
11101    =head3 has_genome
11102    
11103  usage: has_genome("GenDB",$genome)  usage: has_genome("GenDB",$genome)
11104    
# Line 10848  Line 11113 
11113      print STDERR "$system has $genome\n";      print STDERR "$system has $genome\n";
11114  }  }
11115    
11116  =head3 dropped_genome(System,Genome)  =head3 dropped_genome
11117    
11118  usage: dropped_genome("GenDB",$genome)  usage: dropped_genome("GenDB",$genome)
11119    
# Line 10863  Line 11128 
11128      print STDERR "$system dropped $genome\n";      print STDERR "$system dropped $genome\n";
11129  }  }
11130    
11131  =head3 link_to_system(System,FID)  =head3 link_to_system
11132    
11133  usage: $url = link_to_system("GenDB",$fid) # usually $fid is a peg, but it can be other types of features, as well  usage: $url = link_to_system("GenDB",$fid) # usually $fid is a peg, but it can be other types of features, as well
11134    
# Line 10880  Line 11145 
11145    
11146  ############################### Adding, Deleting, Altering Features  ####################  ############################### Adding, Deleting, Altering Features  ####################
11147    
11148    =head2 Feature Update Methods
11149    
11150  # The following routines support alteration of features  The following routines support alteration of features
11151    
11152  =head3 delete_feature(FeatureID)  =head3 delete_feature
11153    
11154  usage: $fig->delete_feature($fid)  usage: $fig->delete_feature($fid)
11155    
# Line 10904  Line 11170 
11170      $self->{_deleted_fids} = undef;      $self->{_deleted_fids} = undef;
11171  }  }
11172    
11173  =head3 add_feature(Genome,Type,Location,Aliases,Translation)  =head3 add_feature
11174    
11175  usage: $fid = $fig->add_feature($genome,$type,$location,$aliases,$translation)  usage: $fid = $fig->add_feature($genome,$type,$location,$aliases,$translation)
11176    
# Line 11033  Line 11299 
11299      return $x->{$fid};      return $x->{$fid};
11300  }  }
11301    
11302  =head3 change_location_of_feature(FeatureID,Location,Translation)  =head3 change_location_of_feature
11303    
11304  usage: $fig->change_location_of_feature($fid,$location,$translation)  usage: $fig->change_location_of_feature($fid,$location,$translation)
11305    
# Line 11158  Line 11424 
11424      return 0;      return 0;
11425  }  }
11426    
11427    =head2 FIG::Job module
11428    
11429    =cut
11430    
11431  ### Begin FIG::Job module  ### Begin FIG::Job module
11432    

Legend:
Removed from v.1.319  
changed lines
  Added in v.1.320

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3