[Bio] / FigKernelScripts / TransactFeatures.pl Repository:
ViewVC logotype

Diff of /FigKernelScripts/TransactFeatures.pl

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

revision 1.7, Thu Aug 11 16:36:01 2005 UTC revision 1.14, Thu Sep 1 09:39:31 2005 UTC
# Line 7  Line 7 
7  a command. The second specifies a directory full of transaction files. The third  a command. The second specifies a directory full of transaction files. The third
8  specifies a file that tells us which feature IDs are available for each organism.  specifies a file that tells us which feature IDs are available for each organism.
9    
10  C<TransactFeatures> I<[options]> I<command> I<transactionDirectory> I<idFile>  C<TransactFeatures> [I<options>] I<command> I<transactionDirectory> I<idFile>
11    
12  The supported commands are  The supported commands are
13    
# Line 28  Line 28 
28    
29  =item process  =item process
30    
31  Process the transactions and update the FIG data store. This will also create  Process the transactions and update the FIG data store. This will also update
32  a copy of each transaction file in which the pseudo-IDs have been replaced by  the NR file and queue features for similarity generation.
 real IDs.  
33    
34  =item annotate  =item fudge
35    
36  Annotate the features created by the transactions so as to indicate how they were  Convert transactions that have already been applied to new transactions that can
37  derived.  be used to test the transaction processor.
   
 =item check  
   
 Verify that the locations and translations of the new and changed features are  
 correct.  
   
 =item fix  
   
 Fix the locations and translations of the new and changed features.  
38    
39  =back  =back
40    
# Line 159  Line 149 
149  Assume that the transaction files do not contain aliases. This means that in CHANGE  Assume that the transaction files do not contain aliases. This means that in CHANGE
150  records the translation will immediately follow the location.  records the translation will immediately follow the location.
151    
152    =item sql
153    
154    Trace SQL commands.
155    
156    =item start
157    
158    ID of the first genome to process. This allows restarting a transaction run that failed
159    in the middle. The default is to run all transaction files.
160    
161    =back
162    
163  =cut  =cut
164    
165  use strict;  use strict;
# Line 173  Line 174 
174  use TransactionProcessor;  use TransactionProcessor;
175  use ApplyTransactions;  use ApplyTransactions;
176  use CountTransactions;  use CountTransactions;
177  use AnnotateTransactions;  use FudgeTransactions;
 use FixTransactions;  
178    
179  # Get the command-line options.  # Get the command-line options.
180  my ($options, @parameters) = Tracer::ParseCommand({ trace => 3, safe => 0, noAlias => 0 }, @ARGV);  my ($options, @parameters) = Tracer::ParseCommand({ trace => 3, sql => 0, safe => 0, noAlias => 0,
181                                                        start => ' '},
182                                                      @ARGV);
183    # Get the command.
184    my $mainCommand = lc shift @parameters;
185  # Set up tracing.  # Set up tracing.
186  my $traceLevel = $options->{trace};  my $traceLevel = $options->{trace};
187  TSetup("$traceLevel Tracer DocUtils FIG", "TEXT");  my $tracing = "$traceLevel Tracer DocUtils FIG";
188    if ($options->{sql}) {
189        $tracing .= " SQL";
190    }
191    TSetup($tracing, "TEXT");
192  # Get the FIG object.  # Get the FIG object.
193  my $fig = FIG->new();  my $fig = FIG->new();
 # Get the command.  
 my $mainCommand = lc shift @parameters;  
194  # Create the transaction object.  # Create the transaction object.
195  my $controlBlock;  my $controlBlock;
196  if ($mainCommand eq 'count' || $mainCommand eq 'register') {  if ($mainCommand eq 'count' || $mainCommand eq 'register') {
197      $controlBlock = CountTransactions->new($options, $mainCommand, @parameters);      $controlBlock = CountTransactions->new($options, $mainCommand, @parameters);
198  } elsif ($mainCommand eq 'process') {  } elsif ($mainCommand eq 'process') {
199      $controlBlock = ApplyTransactions->new($options, $mainCommand, @parameters);      $controlBlock = ApplyTransactions->new($options, $mainCommand, @parameters);
200  } elsif ($mainCommand eq 'annotate') {  } elsif ($mainCommand eq 'fudge') {
201      $controlBlock = AnnotateTransactions->new($options, $mainCommand, @parameters);      $controlBlock = FudgeTransactions->new($options, $mainCommand, @parameters);
 } elsif ($mainCommand eq 'fix' || $mainCommand eq 'check') {  
     $controlBlock = FixTransactions->new($options, $mainCommand, @parameters);  
202  } else {  } else {
203      Confess("Invalid command \"$mainCommand\" specified on command line.");      Confess("Invalid command \"$mainCommand\" specified on command line.");
204  }  }
# Line 209  Line 213 
213      my $orgsFound = 0;      my $orgsFound = 0;
214      my %transFiles = ();      my %transFiles = ();
215      my @transDirectory = OpenDir($parameters[0], 1);      my @transDirectory = OpenDir($parameters[0], 1);
216        # Pull out the "start" option value. This will be a space if all genomes should
217        # be processed, in which case it will always compare less than the genome ID.
218        my $startGenome = $options->{start};
219      # The next step is to create a hash of organism IDs to file names. This      # The next step is to create a hash of organism IDs to file names. This
220      # saves us some painful parsing later.      # saves us some painful parsing later.
221      for my $transFileName (@transDirectory) {      for my $transFileName (@transDirectory) {
222            # Parse the file name. This will only match if it's a real transaction file.
223          if ($transFileName =~ /^tbl_diff_(\d+\.\d+)$/) {          if ($transFileName =~ /^tbl_diff_(\d+\.\d+)$/) {
224                # Get the genome ID;
225                my $genomeID = $1;
226                # If we're skipping, only include this genome ID if it's equal to
227                # or greater than the start value.
228                if ($genomeID ge $startGenome) {
229              $transFiles{$1} = "$parameters[0]/$transFileName";              $transFiles{$1} = "$parameters[0]/$transFileName";
230              $orgsFound++;              $orgsFound++;
231          }          }
232      }      }
233        }
234      Trace("$orgsFound genome transaction files found in directory $parameters[0].") if T(2);      Trace("$orgsFound genome transaction files found in directory $parameters[0].") if T(2);
235      if (! $orgsFound) {      if (! $orgsFound) {
236          Confess("No \"tbl_diff\" files found in directory $parameters[1].");          Confess("No \"tbl_diff\" files found in directory $parameters[1].");
# Line 257  Line 271 
271                  }                  }
272                  $controlBlock->IncrementStat($command);                  $controlBlock->IncrementStat($command);
273              }              }
274                # Close the transaction input file.
275                close TRANS;
276              # Terminate processing for this genome.              # Terminate processing for this genome.
277              my $orgStats = $controlBlock->EndGenome();              my $orgStats = $controlBlock->EndGenome();
278              Trace("Statistics for $genomeID\n\n" . $orgStats->Show() . "\n") if T(3);              Trace("Statistics for $genomeID\n\n" . $orgStats->Show() . "\n") if T(3);
             # Close the transaction input file.  
             close TRANS;  
279          }          }
280      }      }
281      # Terminate processing.      # Terminate processing.

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3