inprogress
[jalview.git] / forester / ruby / evoruby / lib / evo / tool / phylogenies_decorator.rb
index c9f37ae..6668877 100644 (file)
@@ -30,8 +30,8 @@ module Evoruby
     #DECORATOR_OPTIONS_DOMAINS = '-r=1'
     DECORATOR_OPTIONS_DOMAINS = '-p -t'
     IDS_MAPFILE_SUFFIX        = '.nim'
-    DOMAINS_MAPFILE_SUFFIX    = '.dff'
-    SLEEP_TIME                = 0.1
+    DOMAINS_MAPFILE_SUFFIX    = '_hmmscan_10.dff'
+    SLEEP_TIME                = 0.05
     REMOVE_NI                 = true
     TMP_FILE_1                  = '___PD1___'
     TMP_FILE_2                  = '___PD2___'
@@ -40,10 +40,10 @@ module Evoruby
     JAVA_HOME                 = ENV[Constants::JAVA_HOME_ENV_VARIABLE]
 
     PRG_NAME       = "phylogenies_decorator"
-    PRG_DATE       = "2012.10.11"
+    PRG_DATE       = "2013.11.15"
     PRG_DESC       = "decoration of phylogenies with sequence/species names and domain architectures"
     PRG_VERSION    = "1.02"
-    COPYRIGHT      = "2012 Christian M Zmasek"
+    COPYRIGHT      = "2013 Christian M Zmasek"
     CONTACT        = "phylosoft@gmail.com"
     WWW            = "https://sites.google.com/site/cmzmasek/home/software/forester"
 
@@ -166,6 +166,10 @@ module Evoruby
           log << counter.to_s + ': ' + phylogeny_file + ' -> ' +  outfile + NL
 
           phylogeny_id = get_id( phylogeny_file )
+          puts
+
+          Util.print_message( PRG_NAME, "id: " + phylogeny_id )
+          log << "id: " + phylogeny_id + NL
 
           ids_mapfile_name = nil
           domains_mapfile_name = nil
@@ -175,7 +179,6 @@ module Evoruby
           domains_mapfile_name = get_file( files, phylogeny_id, DOMAINS_MAPFILE_SUFFIX )
           seqs_file_name = get_seq_file( files, phylogeny_id )
 
-
           begin
             Util.check_file_for_readability( domains_mapfile_name )
           rescue ArgumentError
@@ -242,33 +245,23 @@ module Evoruby
 
     def get_file( files_in_dir, phylogeny_id, suffix_pattern )
       matching_files = Array.new
-      matching_suffix_files = Array.new
+
       files_in_dir.each { | file |
 
         if ( !File.directory?( file ) &&
              file !~ /^\./ &&
              file !~ /^00/ &&
-             file =~ /^#{phylogeny_id}.*#{suffix_pattern}$/ )
+             file =~ /^#{phylogeny_id}#{suffix_pattern}$/ )
           matching_files << file
         end
-        if ( !File.directory?( file ) &&
-             file !~ /^\./ &&
-             file !~ /^00/ &&
-             file =~ /#{suffix_pattern}$/ )
-          matching_suffix_files << file
-        end
       }
-      if matching_files.length < 1 && matching_suffix_files.length == 1
-        return matching_suffix_files[ 0 ]
-      end
-
-      if matching_files.length < 1 && matching_suffix_files.length < 1
+      if matching_files.length < 1
         Util.fatal_error( PRG_NAME, 'no file matching [' + phylogeny_id +
-           '_] [' + suffix_pattern + '] present in current directory' )
+           + suffix_pattern + '] present in current directory' )
       end
       if matching_files.length > 1
         Util.fatal_error( PRG_NAME, 'more than one file matching [' + phylogeny_id +
-           '_] [' + suffix_pattern + '] present in current directory' )
+           + suffix_pattern + '] present in current directory' )
       end
       matching_files[ 0 ]
     end
@@ -281,17 +274,16 @@ module Evoruby
         if ( !File.directory?( file ) &&
              file !~ /^\./ &&
              file !~ /^00/ &&
-             file =~ /^#{phylogeny_id}.+\d$/ )
+             ( file =~ /^#{phylogeny_id}__.+\d$/ || file =~ /^#{phylogeny_id}__.*\.fasta$/ ) )
           matching_files << file
         end
-
       }
 
       if matching_files.length < 1
-        Util.fatal_error( PRG_NAME, 'no seq file matching [' + phylogeny_id + '] present in current directory' )
+        Util.fatal_error( PRG_NAME, 'no seq file matching [' + phylogeny_id + '__] present in current directory' )
       end
       if matching_files.length > 1
-        Util.fatal_error( PRG_NAME, 'more than one seq file matching [' + phylogeny_id + '] present in current directory' )
+        Util.fatal_error( PRG_NAME, 'more than one seq file matching [' + phylogeny_id + '__] present in current directory' )
       end
       matching_files[ 0 ]
     end