Package: mafft Version: 6.240-1 Filename: pool/main/m/mafft/mafft_6.240-1_i386.deb Found error in /usr/bin/mafft-homologs: $ grep -A5 -B5 /tmp/ /usr/bin/mafft-homologs # (default: well-aligned region only) require 'getopts' system( mafftpath + " --help > /tmp/_vf#{$$} 2>&1" ) pfp = File.open( "/tmp/_vf#{$$}", 'r' ) while pfp.gets break if $_ =~ /MAFFT v/ end pfp.close if( $_ ) then -- end if $OPT_o then mafftopt += " " + $OPT_o + " " end system "cat " + ARGV.to_s + " > /tmp/_if#{$$}" ar = mafftopt.split(" ") nar = ar.length for i in 0..(nar-1) if ar[i] == "--seed" then system "cat #{ar[i+1]} >> /tmp/_if#{$$}" end end nseq = 0 ifp = File.open( "/tmp/_if#{$$}", 'r' ) while ifp.gets nseq += 1 if $_ =~ /^>/ end ifp.close STDERR.puts "Performing preliminary alignment .. " if nseq == 1 then system( "cp /tmp/_if#{$$}" + " /tmp/_pf#{$$}" ) else if entiresearch == 1 then # system( mafftpath + " --maxiterate 1000 --localpair /tmp/_if#{$$} > /tmp/_pf#{$$}" ) system( mafftpath + " --maxiterate 0 --retree 2 /tmp/_if#{$$} > /tmp/_pf#{$$}" ) else system( mafftpath + " --maxiterate 1000 --localpair --core --coreext --corethr #{corethr.to_s} --corewin #{corewin.to_s} /tmp/_if#{$$} > /tmp/_pf#{$$}" ) end end pfp = File.open( "/tmp/_pf#{$$}", 'r' ) inname = [] inseq = [] slen = [] act = [] nin = 0 -- slen.push( inseq[i].gsub(/-/,"").length ) act.push( 1 ) end pfp.close pfp = File.open( "/tmp/_if#{$$}", 'r' ) orname = [] orseq = [] nin = 0 nin = readfasta( pfp, orname, orseq ) pfp.close -- end end #p act afp = File.open( "/tmp/_af#{$$}", 'w' ) STDERR.puts "Searching .. \n" ids = [] add = [] sco = [] -- STDERR.puts "Skip.\n\n" next end if local == 0 then command = "lynx -source 'http://www.ncbi.nlm.nih.gov/blast/Blast.cgi?QUERY=" + inseq[i] + "&DATABASE=swissprot&HITLIST_SIZE=" + nadd.to_s + "&FILTER=L&EXPECT='" + eval.to_s + "'&FORMAT_TYPE=TEXT&PROGRAM=blastp&SERVICE=plain&NCBI_GI=on&PAGE=Proteins&CMD=Put' > /tmp/_rid#{$$}" system command ridp = File.open( "/tmp/_rid#{$$}", 'r' ) while ridp.gets break if $_ =~ / RID = (.*)/ end ridp.close rid = $1.strip -- STDERR.printf "Waiting " while 1 STDERR.printf "." sleep 10 command = "lynx -source 'http://www.ncbi.nlm.nih.gov/blast/Blast.cgi?RID=" + rid + "&DESCRIPTIONS=500&ALIGNMENTS=" + nadd.to_s + "&ALIGNMENT_TYPE=Pairwise&OVERVIEW=no&CMD=Get&FORMAT_TYPE=XML' > /tmp/_res#{$$}" system command resp = File.open( "/tmp/_res#{$$}", 'r' ) # resp.gets # if $_ =~ /WAITING/ then # resp.close # next # end -- end end else # puts "Not supported" # exit qfp = File.open( "/tmp/_q#{$$}", 'w' ) qfp.puts "> " qfp.puts inseq[i] qfp.close command = blastpath + " -p blastp -e #{eval} -b 1000 -m 7 -i /tmp/_q#{$$} -d #{localdb} > /tmp/_res#{$$}" system command resp = File.open( "/tmp/_res#{$$}", 'r' ) end STDERR.puts " Done.\n\n" resp = File.open( "/tmp/_res#{$$}", 'r' ) while 1 while resp.gets break if $_ =~ /(.*)<\/Hit_id>/ || $_ =~ /()/ end id = $1 -- outnum += 1 end afp.close STDERR.puts "Performing alignment .. " system( mafftpath + mafftopt + " /tmp/_af#{$$} > /tmp/_bf#{$$}" ) STDERR.puts "done." bfp = File.open( "/tmp/_bf#{$$}", 'r' ) outseq = [] outnam = [] readfasta( bfp, outnam, outseq ) bfp.close -- for i in 0..(nout-1) puts ">" + outnam2[i] puts outseq2[i].gsub( /.{1,60}/, "\\0\n" ) end system( "rm -rf /tmp/_if#{$$} /tmp/_vf#{$$} /tmp/_af#{$$} /tmp/_bf#{$$} /tmp/_pf#{$$} /tmp/_q#{$$} /tmp/_res#{$$} /tmp/_rid#{$$}" )