[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.74, Sat Oct 21 06:44:17 2006 UTC revision 1.75, Sun Oct 22 05:17:10 2006 UTC
# Line 530  Line 530 
530                      $oldFeatureID = $featureID;                      $oldFeatureID = $featureID;
531                      # Count this feature.                      # Count this feature.
532                      $loadFeature->Add("featureIn");                      $loadFeature->Add("featureIn");
                     # Get the functional assignment.  
                     my $assignment = $fig->function_of($featureID);  
533                      # Begin building the keywords.                      # Begin building the keywords.
534                      my $keywords = "$assignment $genomeID";                      my @keywords = ($genomeID);
535                      # Link this feature to the parent genome.                      # Get the functional assignment and aliases. This
536                      $loadHasFeature->Put($genomeID, $featureID, $type);                      # depends on the feature type.
537                        my $assignment;
538                        if ($type eq "peg") {
539                            $assignment = $fig->function_of($featureID);
540                      # Create the aliases.                      # Create the aliases.
541                      for my $alias ($fig->feature_aliases($featureID)) {                      for my $alias ($fig->feature_aliases($featureID)) {
542                          $loadFeatureAlias->Put($featureID, $alias);                          $loadFeatureAlias->Put($featureID, $alias);
543                          $keywords .= " $alias";                              push @keywords, $alias;
544                      }                      }
545                        } else {
546                            # For other types, the assignment is the first (and ONLY) alias.
547                            ($assignment) = $fig->feature_aliases($featureID);
548                        }
549                        Trace("Assignment for $featureID is: $assignment") if T(4);
550                        # Break the assignment into words and shove it onto the
551                        # keyword list.
552                        push @keywords, split(/\s+/, $assignment);
553                        # Link this feature to the parent genome.
554                        $loadHasFeature->Put($genomeID, $featureID, $type);
555                      # Get the links.                      # Get the links.
556                      my @links = $fig->fid_links($featureID);                      my @links = $fig->fid_links($featureID);
557                      for my $link (@links) {                      for my $link (@links) {
# Line 570  Line 581 
581                              $loadHasRoleInSubsystem->Put($featureID, $subsystem, $genomeID, $type);                              $loadHasRoleInSubsystem->Put($featureID, $subsystem, $genomeID, $type);
582                              # Save the subsystem's keyword data.                              # Save the subsystem's keyword data.
583                              my $subKeywords = $subHash->{$subsystem};                              my $subKeywords = $subHash->{$subsystem};
584                              $keywords .= " $subKeywords";                              push @keywords, split /\s+/, $subKeywords;
585                                # Now we need to get this feature's role in the subsystem.
586                                my $subObject = $fig->get_subsystem($subsystem);
587                                my @roleColumns = $subObject->get_peg_roles($featureID);
588                                my @allRoles = $subObject->get_roles();
589                                for my $col (@roleColumns) {
590                                    my $role = $allRoles[$col];
591                                    push @keywords, split /\s+/, $role;
592                                    push @keywords, $subObject->get_role_abbr($col);
593                                }
594                          }                          }
595                      }                      }
596                      # The final task is to add virulence and essentiality attributes.                      # The final task is to add virulence and essentiality attributes.
597                      if ($fig->virulent($featureID)) {                      if ($fig->virulent($featureID)) {
598                          $keywords .= " virulent";                          push @keywords, "virulent";
599                      }                      }
600                      if ($fig->essential($featureID)) {                      if ($fig->essential($featureID)) {
601                          $keywords .= " essential";                          push @keywords, "essential";
602                        }
603                        # Now we need to bust up hyphenated words in the keyword
604                        # list.
605                        my $keywordString = "";
606                        for my $keyword (@keywords) {
607                            if (length $keyword >= 4) {
608                                $keywordString .= " $keyword";
609                                if ($keyword =~ /-/) {
610                                    my @words = grep { length($_) >= 4 } split /-/, $keyword;
611                                    $keywordString .= join(" ", "", @words);
612                                }
613                            }
614                      }                      }
615                      # Clean the keyword list.                      # Clean the keyword list.
616                      my $cleanWords = $sprout->CleanKeywords($keywords);                      my $cleanWords = $sprout->CleanKeywords($keywordString);
617                        Trace("Keyword string for $featureID: $cleanWords") if T(4);
618                      # Create the feature record.                      # Create the feature record.
619                      $loadFeature->Put($featureID, 1, $type, $assignment, $cleanWords);                      $loadFeature->Put($featureID, 1, $type, $assignment, $cleanWords);
620                      # This part is the roughest. We need to relate the features to contig                      # This part is the roughest. We need to relate the features to contig

Legend:
Removed from v.1.74  
changed lines
  Added in v.1.75

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3