Katzlab dd76ab1d12 Added PTL2 Scripts
These are PTL2 files from Auden 2/9
2023-02-14 11:20:52 -05:00

48 lines
1.1 KiB
Ruby

#! /usr/bin/ruby
#/usr/bin/env ruby
tree = gets.strip.gsub( /_.*?:/, ":" ).gsub(/:0,/, ":0.00,").gsub(/:0\)/, ":0.00\)").gsub(/[0-9]\.[0-9]*e-[0-9]*/, "0.0").gsub(/[0-9]*e-[0-9]*/, "0.0")
# Buggy line:
#tree = gets.strip.gsub( /_.*?:/, ":" ).gsub(/:0,/, ":0.00,").gsub(/:0\)/, ":0.00\)").gsub(/[0-9]\.[0-9]*e-[0-9][0-9]/, "0.0")
#puts "tree = " + tree
memi = [-1,-1]
leni = [-1,-1]
c = 0
while tree.index( /\(/ )
tree.sub!( /\(([0-9]*?):(\-?[0-9]*?\.[0-9]*?),([0-9]*?):(\-?[0-9]*?\.[0-9]*?)\)/, "XXX" )
memi[0] = $1.to_i
leni[0] = $2.to_f
memi[1] = $3.to_i
leni[1] = $4.to_f
if leni[0] > 3 || leni[1] > 3 then
STDERR.puts "Please check the scale of branch length!"
STDERR.puts "1PAM must be 0.01, not 1"
# exit 1
end
# puts "subtree = " + $&
if memi[1] < memi[0] then
memi.reverse!
leni.reverse!
end
tree.sub!( /XXX/, memi[0].to_s )
# puts "tree = " + tree
c = c+1
printf( "%5d %5d %10.5f %10.5f\n", memi[0], memi[1], leni[0], leni[1] )
if c > 1000000 then
print( "Endless loop bug!!! printed > 1000000 lines\n" )
exit 1
end
end