[Bio] / Sprout / AliasCrunch.pl Repository:
ViewVC logotype

Diff of /Sprout/AliasCrunch.pl

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

revision 1.2, Wed Aug 19 17:07:54 2009 UTC revision 1.7, Tue Dec 14 19:47:40 2010 UTC
# Line 296  Line 296 
296      # Get the parameters.      # Get the parameters.
297      my ($mergeH, $stats) = @_;      my ($mergeH, $stats) = @_;
298      # Loop through the organism directories.      # Loop through the organism directories.
299      for my $orgDir (grep { $_ =~ /^\d+\.\d+$/ } OpenDir($FIG_Config::organisms)) {      for my $orgDir (sort grep { $_ =~ /^\d+\.\d+$/ } OpenDir($FIG_Config::organisms)) {
300          Trace("Processing $orgDir.") if T(3);          Trace("Processing $orgDir.") if T(3);
301          $stats->Add(orgDirGenomes => 1);          $stats->Add(orgDirGenomes => 1);
302          # We need to process all of this organism's TBL files.          # We need to process all of this organism's TBL files.
# Line 310  Line 310 
310                  my $ih = Open(undef, "<$tblFileName");                  my $ih = Open(undef, "<$tblFileName");
311                  while (! eof $ih) {                  while (! eof $ih) {
312                      # Get the feature ID and its aliases.                      # Get the feature ID and its aliases.
313                      my ($fid, undef, undef, undef, @aliases) = Tracer::GetLine($ih);                      my ($fid, undef, @aliases) = Tracer::GetLine($ih);
314                      $stats->Add(orgDirFeatures => 1);                      $stats->Add(orgDirFeatures => 1);
315                      # Loop through the aliases.                      # Loop through the aliases.
316                      for my $alias (@aliases) {                      for my $alias (@aliases) {
# Line 323  Line 323 
323                              $stats->Add(orgDirNormal => 1);                              $stats->Add(orgDirNormal => 1);
324                              # Yes. Write it normally.                              # Yes. Write it normally.
325                              WriteToMerge($mergeH, $alias, B => $aliasType, $fid);                              WriteToMerge($mergeH, $alias, B => $aliasType, $fid);
326                            } elsif ($alias =~ /^LocusTag:(.+)/ || $alias =~ /^(?:locus|locus_tag|LocusTag)\|(.+)/) {
327                                # No, but this is a specially-marked locus tag.
328                                $normalized = $1;
329                                $stats->Add(orgDirLocus => 1);
330                                WriteToMerge($mergeH, $normalized, B => 'LocusTag', $fid);
331                          } elsif ($normalized = AliasAnalysis::IsNatural(LocusTag => $alias)) {                          } elsif ($normalized = AliasAnalysis::IsNatural(LocusTag => $alias)) {
332                              # No, but this is a natural locus tag.                              # No, but this is a natural locus tag.
333                              $stats->Add(orgDirLocus => 1);                              $stats->Add(orgDirLocus => 1);
# Line 336  Line 341 
341                              # of some sort. We only take these from the corresponding ID                              # of some sort. We only take these from the corresponding ID
342                              # table.                              # table.
343                              $stats->Add(orgDirSkip => 1);                              $stats->Add(orgDirSkip => 1);
344                            } elsif ($alias =~ /^protein_id\|(.+)/) {
345                                # Here we have a REFSEQ protein ID.
346                                $normalized = $1;
347                                $stats->Add(orgDirProtein => 1);
348                                WriteToMerge($mergeH, $normalized, C => 'RefSeq', $fid);
349                          } elsif ($alias =~ /[:|]/) {                          } elsif ($alias =~ /[:|]/) {
350                              # Here it's an alias of an unknown type.                              # Here it's an alias of an unknown type.
351                              $stats->Add(orgDirUnknown => 1);                              $stats->Add(orgDirUnknown => 1);
352                          } else {                          } else {
353                              # Here it's a miscellaneous type.                              # Here it's a miscellaneous type.
354                                $stats->Add(orgDirMisc => 1);
355                              WriteToMerge($mergeH, $alias, B => 'Miscellaneous', $fid);                              WriteToMerge($mergeH, $alias, B => 'Miscellaneous', $fid);
356                          }                          }
357                      }                      }
# Line 491  Line 502 
502                      if ($type eq 'RefSeq' && $alias =~ /^[A-Z][CMT]/) {                      if ($type eq 'RefSeq' && $alias =~ /^[A-Z][CMT]/) {
503                          $stats->Add(correspondingContig => 1);                          $stats->Add(correspondingContig => 1);
504                      } else {                      } else {
505                          # We're okay, so normalize the alias.                          # Check for a locus tag disguised as a CMR ID.
506                          my $normalized = AliasAnalysis::Normalize($type => $alias);                          my $realType = $type;
507                            if ($type eq 'CMR' && $alias =~ /^[A-Z]{2,3}_\d+$/) {
508                                $realType = 'LocusTag';
509                                $stats->Add(correspondingLocus => 1);
510                            } else {
511                          $stats->Add(correspondingNormal => 1);                          $stats->Add(correspondingNormal => 1);
512                            }
513                            # Normalize the alias.
514                            my $normalized = AliasAnalysis::Normalize($type => $alias);
515                          # Write it out once for each FIG ID.                          # Write it out once for each FIG ID.
516                          for my $fid (@fids) {                          for my $fid (@fids) {
517                              WriteToMerge($mergeH, $normalized, A => $type, $fid);                              WriteToMerge($mergeH, $normalized, A => $type, $fid);

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.7

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3