X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fruby%2Fevoruby%2Flib%2Fevo%2Ftool%2Fphylogenies_decorator.rb;h=973286c1cdb1199a4e00e91886145602388c3aee;hb=8662ade5ecc921f9824546493a764cebccc1ddf5;hp=c9f37ae7c2fe614dedbb63b749988484a619d61a;hpb=ebc9de99f54fb9256e172caf90581d13175031fb;p=jalview.git diff --git a/forester/ruby/evoruby/lib/evo/tool/phylogenies_decorator.rb b/forester/ruby/evoruby/lib/evo/tool/phylogenies_decorator.rb index c9f37ae..973286c 100644 --- a/forester/ruby/evoruby/lib/evo/tool/phylogenies_decorator.rb +++ b/forester/ruby/evoruby/lib/evo/tool/phylogenies_decorator.rb @@ -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,21 +166,26 @@ module Evoruby log << counter.to_s + ': ' + phylogeny_file + ' -> ' + outfile + NL phylogeny_id = get_id( phylogeny_file ) + if phylogeny_id == nil || phylogeny_id.size < 1 + Util.fatal_error( PRG_NAME, 'could not get id from ' + phylogeny_file.to_s ) + end + puts + Util.print_message( PRG_NAME, "id: " + phylogeny_id ) + log << "id: " + phylogeny_id + NL ids_mapfile_name = nil domains_mapfile_name = nil seqs_file_name = nil ids_mapfile_name = get_file( files, phylogeny_id, IDS_MAPFILE_SUFFIX ) - domains_mapfile_name = get_file( files, phylogeny_id, DOMAINS_MAPFILE_SUFFIX ) - seqs_file_name = get_seq_file( files, phylogeny_id ) + # 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 - Util.fatal_error( PRG_NAME, 'failed to read from [#{domains_mapfile_name}]: ' + $! ) - end +# begin +# Util.check_file_for_readability( domains_mapfile_name ) +# rescue ArgumentError +# Util.fatal_error( PRG_NAME, 'failed to read from [#{domains_mapfile_name}]: ' + $! ) +# end begin Util.check_file_for_readability( ids_mapfile_name ) @@ -188,32 +193,54 @@ module Evoruby Util.fatal_error( PRG_NAME, 'failed to read from [#{ids_mapfile_name}]: ' + $! ) end - begin - Util.check_file_for_readability( seqs_file_name ) - rescue ArgumentError - Util.fatal_error( PRG_NAME, 'failed to read from [#{seqs_file_name }]: ' + $! ) - end - - cmd = decorator + - ' -p -f=m ' + phylogeny_file + ' ' + - seqs_file_name + ' ' + TMP_FILE_1 - puts cmd - execute_cmd( cmd, log ) - - cmd = decorator + ' ' + DECORATOR_OPTIONS_DOMAINS + ' ' + - '-f=d ' + TMP_FILE_1 + ' ' + - domains_mapfile_name + ' ' +TMP_FILE_2 - puts cmd - execute_cmd( cmd, log ) +# begin +# Util.check_file_for_readability( seqs_file_name ) +# rescue ArgumentError +# Util.fatal_error( PRG_NAME, 'failed to read from [#{seqs_file_name }]: ' + $! ) +# end + +# cmd = decorator + +# ' -t -p -f=m ' + phylogeny_file + ' ' + +# seqs_file_name + ' ' + TMP_FILE_1 +# puts cmd +# begin +# execute_cmd( cmd, log ) +# rescue Error +# Util.fatal_error( PRG_NAME, 'error: ' + $! ) +# end +# +# cmd = decorator + ' ' + DECORATOR_OPTIONS_DOMAINS + ' ' + +# '-f=d ' + TMP_FILE_1 + ' ' + +# domains_mapfile_name + ' ' +TMP_FILE_2 +# puts cmd +# begin +# execute_cmd( cmd, log ) +# rescue Error +# Util.fatal_error( PRG_NAME, 'error: ' + $! ) +# end cmd = decorator + ' ' + DECORATOR_OPTIONS_SEQ_NAMES + ' ' + - '-f=n ' + TMP_FILE_2 + ' ' + + '-f=n ' + phylogeny_file + ' ' + ids_mapfile_name + ' ' + outfile puts cmd - execute_cmd( cmd, log ) - - File.delete( TMP_FILE_1 ) - File.delete( TMP_FILE_2 ) + begin + execute_cmd( cmd, log ) + rescue Error + Util.fatal_error( PRG_NAME, 'error: ' + $! ) + end + +# cmd = decorator + ' ' + DECORATOR_OPTIONS_SEQ_NAMES + ' ' + +# '-f=n ' + TMP_FILE_2 + ' ' + +# ids_mapfile_name + ' ' + outfile +# puts cmd +# begin +# execute_cmd( cmd, log ) +# rescue Error +# Util.fatal_error( PRG_NAME, 'error: ' + $! ) +# end + + # File.delete( TMP_FILE_1 ) + # File.delete( TMP_FILE_2 ) end } @@ -226,7 +253,7 @@ module Evoruby end # def run def execute_cmd( cmd, log ) - log << 'excuting ' + cmd + NL + log << 'executing ' + cmd + NL IO.popen( cmd , 'r+' ) do | pipe | pipe.close_write log << pipe.read + NL + NL @@ -236,13 +263,19 @@ module Evoruby def get_id( phylogeny_file_name ) - phylogeny_file_name =~ /^(.+?)__/ - $1 + if phylogeny_file_name =~ /^(.+?_.+?)_/ + return $1 + elsif phylogeny_file_name =~ /^(.+?)__/ + return $1 + elsif phylogeny_file_name =~ /^(.+?)_/ + return $1 + end + nil end 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 ) && @@ -251,24 +284,14 @@ module Evoruby 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' ) + Util.fatal_error( PRG_NAME, 'more than one file matching [' + + phylogeny_id + '...' + suffix_pattern + '] present in current directory' ) end matching_files[ 0 ] end @@ -281,17 +304,18 @@ 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