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()); |
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 |
|
|