]> git.donarmstrong.com Git - function2gene.git/blobdiff - bin/function2gene
update function2gene to allow uniprot
[function2gene.git] / bin / function2gene
index f3bd3ddfd7364a89afac2c4d391e43b3787e8b8d..66b02bb51ca6e48ed400a5e40abc3b7f325761fb 100755 (executable)
@@ -130,7 +130,7 @@ $ERRORS.="restart-at must be one of get, parse or combine\n" if
 
 $ERRORS.="unknown database(s)" if
      @{$options{databases}} and
-     grep {$_ !~ /^(?:ncbi|genecard|harvester)$/i} @{$options{databases}};
+     grep {$_ !~ /^(?:ncbi|genecard|harvester|ensembl|uniprot)$/i} @{$options{databases}};
 
 if (not length $options{results}) {
      $ERRORS.="results directory not specified";
@@ -142,7 +142,7 @@ elsif (not -d $options{results} or not -w $options{results}) {
 pod2usage($ERRORS) if length $ERRORS;
 
 if (not @{$options{databases}}) {
-     $options{databases} = [qw(ncbi genecard harvester)]
+     $options{databases} = [qw(ncbi genecard harvester ensembl uniprot)]
 }
 
 $DEBUG = $options{debug};
@@ -192,6 +192,7 @@ if (@{$options{keywords}}) {
               next if /^\s*[#;]/;
               next unless /\w+/;
               chomp;
+              s/\r$//;
               my ($keyword,$weight) = split /\t/, $_;
               $weight = 1 if not defined $weight;
               $state{keyword_weight}{$keyword} = $weight;
@@ -339,13 +340,18 @@ if ($actions{combine}) {
                           } keys %{$state{done_keywords}{parse}};
 
      # create temporary file to store keyword weights
-
-     write_command_to_file('combined_results.txt',
-                          "$base_dir/combine_results",
-                          '--keywords',
-                          
-                          @parsed_results,
-                         );
+     my $file = IO::File->new('combined_keywords.txt','w') or
+         die "Unable to open combined_keywords.txt for writing: $!";
+     for my $keyword (keys %{$state{keyword_weight}}) {
+         print {$file} "$keyword\t$state{keyword_weight}{$keyword}\n";
+     }
+     system("$base_dir/combine_results",
+           '--keywords','combined_keywords.txt',
+           '--results','combined_results.txt',
+           '--results-table','combined_results_table.txt',
+           @parsed_results,
+          ) == 0
+               or die "combine_results failed with ".($?>>8);
      for my $result (@parsed_results) {
          $result =~ s/^parsed_results_//;
          $result =~ s/\.txt$//;
@@ -353,10 +359,6 @@ if ($actions{combine}) {
          $state{done_keywords}{combined}{$db}{$keyword} = 1;
      }
      save_state(\%state);
-     write_command_to_file('combined_results_table.txt',
-                          "$base_dir/results_to_table",
-                          'combined_results.txt',
-                         );
      ADVISE("Finished; results in $options{results}/combined_results.txt");
 }
 else {