[Bio] / Sprout / SproutLoad.pm Repository:
ViewVC logotype

Diff of /Sprout/SproutLoad.pm

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

revision 1.58, Sun Jul 16 03:24:48 2006 UTC revision 1.62, Sun Jul 30 05:44:57 2006 UTC
# Line 1459  Line 1459 
1459          # Get the database handle.          # Get the database handle.
1460          my $dbh = $fig->db_handle();          my $dbh = $fig->db_handle();
1461          # Ask for the synonyms.          # Ask for the synonyms.
1462          my $sth = $dbh->prepare_command("SELECT syn_id, maps_to FROM peg_synonyms ORDER BY syn_id");          my $sth = $dbh->prepare_command("SELECT maps_to, syn_id FROM peg_synonyms ORDER BY maps_to");
1463          my $result = $sth->execute();          my $result = $sth->execute();
1464          if (! defined($result)) {          if (! defined($result)) {
1465              Confess("Database error in Synonym load: " . $sth->errstr());              Confess("Database error in Synonym load: " . $sth->errstr());
# Line 1497  Line 1497 
1497      return $retVal;      return $retVal;
1498  }  }
1499    
1500    =head3 LoadFamilyData
1501    
1502    C<< my $stats = $spl->LoadFamilyData(); >>
1503    
1504    Load the protein families into Sprout.
1505    
1506    The following relations are loaded by this method.
1507    
1508        Family
1509        ContainsFeature
1510    
1511    The source information for these relations is taken from the C<families_for_protein>,
1512    C<family_function>, and C<sz_family> methods of the B<FIG> object.
1513    
1514    =over 4
1515    
1516    =item RETURNS
1517    
1518    Returns a statistics object for the loads.
1519    
1520    =back
1521    
1522    =cut
1523    #: Return Type $%;
1524    sub LoadFamilyData {
1525        # Get this object instance.
1526        my ($self) = @_;
1527        # Get the FIG object.
1528        my $fig = $self->{fig};
1529        # Get the genome hash.
1530        my $genomeHash = $self->{genomes};
1531        # Create load objects for the tables we're loading.
1532        my $loadFamily = $self->_TableLoader('Family');
1533        my $loadContainsFeature = $self->_TableLoader('ContainsFeature');
1534        if ($self->{options}->{loadOnly}) {
1535            Trace("Loading from existing files.") if T(2);
1536        } else {
1537            Trace("Generating family data.") if T(2);
1538            # Create a hash for the family IDs.
1539            my %familyHash = ();
1540            # Loop through the genomes.
1541            for my $genomeID (sort keys %{$genomeHash}) {
1542                Trace("Processing features for $genomeID.") if T(2);
1543                # Loop through this genome's PEGs.
1544                for my $fid ($fig->all_features($genomeID, "peg")) {
1545                    $loadContainsFeature->Add("features", 1);
1546                    # Get this feature's families.
1547                    my @families = $fig->families_for_protein($fid);
1548                    # Loop through the families, connecting them to the feature.
1549                    for my $family (@families) {
1550                        $loadContainsFeature->Put($family, $fid);
1551                        # If this is a new family, create a record for it.
1552                        if (! exists $familyHash{$family}) {
1553                            $familyHash{$family} = 1;
1554                            $loadFamily->Add("families", 1);
1555                            my $size = $fig->sz_family($family);
1556                            my $func = $fig->family_function($family);
1557                            $loadFamily->Put($family, $size, $func);
1558                        }
1559                    }
1560                }
1561            }
1562        }
1563        # Finish the load.
1564        my $retVal = $self->_FinishAll();
1565        return $retVal;
1566    }
1567    
1568  =head2 Internal Utility Methods  =head2 Internal Utility Methods
1569    

Legend:
Removed from v.1.58  
changed lines
  Added in v.1.62

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3