[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.57, Sat Jul 15 08:09:13 2006 UTC revision 1.61, Sun Jul 30 01:41:34 2006 UTC
# Line 1226  Line 1226 
1226      } else {      } else {
1227          Trace("Generating external data.") if T(2);          Trace("Generating external data.") if T(2);
1228          # We loop through the files one at a time. First, the organism file.          # We loop through the files one at a time. First, the organism file.
1229          Open(\*ORGS, "<$FIG_Config::global/ext_org.table");          Open(\*ORGS, "sort +0 -1 -u -t\"\t\" $FIG_Config::global/ext_org.table |");
1230          my $orgLine;          my $orgLine;
1231          while (defined($orgLine = <ORGS>)) {          while (defined($orgLine = <ORGS>)) {
1232              # Clean the input line.              # Clean the input line.
# Line 1238  Line 1238 
1238          close ORGS;          close ORGS;
1239          # Now the function file.          # Now the function file.
1240          my $funcLine;          my $funcLine;
1241          Open(\*FUNCS, "<$FIG_Config::global/ext_func.table");          Open(\*FUNCS, "sort +0 -1 -u -t\"\t\" $FIG_Config::global/ext_func.table |");
1242          while (defined($funcLine = <FUNCS>)) {          while (defined($funcLine = <FUNCS>)) {
1243              # Clean the line ending.              # Clean the line ending.
1244              chomp $funcLine;              chomp $funcLine;
# 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                            $loadFamily->Add("families", 1);
1554                            my $size = $fig->sz_family($family);
1555                            my $func = $fig->family_function($family);
1556                            $loadFamily->Put($family, $size, $func);
1557                        }
1558                    }
1559                }
1560            }
1561        }
1562        # Finish the load.
1563        my $retVal = $self->_FinishAll();
1564        return $retVal;
1565    }
1566    
1567  =head2 Internal Utility Methods  =head2 Internal Utility Methods
1568    

Legend:
Removed from v.1.57  
changed lines
  Added in v.1.61

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3