update to support python3
This commit is contained in:
parent
8a3c5bab7e
commit
b847b1f634
3 changed files with 47 additions and 47 deletions
2
README
2
README
|
@ -6,7 +6,7 @@ Installation:
|
||||||
"tiger_fns_102.py" to /usr/local/bin. This will allow access to
|
"tiger_fns_102.py" to /usr/local/bin. This will allow access to
|
||||||
the executable from any location in the filesystem.
|
the executable from any location in the filesystem.
|
||||||
|
|
||||||
* Please ensure that you are using Python version 2.5 or 2.6.
|
* Please ensure that you are using Python version 2.5 or 2.6. [Note: Now I update the python script, so, now please use python3.x]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
76
tiger
76
tiger
|
@ -38,7 +38,7 @@ for opt in range(len(options)):
|
||||||
try:
|
try:
|
||||||
file = open(file_name)
|
file = open(file_name)
|
||||||
except IOError:
|
except IOError:
|
||||||
print "File \"" + file_name + "\" not found..."
|
print ("File \"" + file_name + "\" not found...")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
elif options[opt] == "-b":
|
elif options[opt] == "-b":
|
||||||
|
@ -54,18 +54,18 @@ for opt in range(len(options)):
|
||||||
numbered = True
|
numbered = True
|
||||||
|
|
||||||
elif options[opt] == "-v":
|
elif options[opt] == "-v":
|
||||||
print "TIGER version 1.02"
|
print ("TIGER version 1.02")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
elif options[opt] == "-rl":
|
elif options[opt] == "-rl":
|
||||||
write_rates = True
|
write_rates = True
|
||||||
try:
|
try:
|
||||||
rate_file = options[opt+1]
|
rate_file = options[opt+1]
|
||||||
if rate_file[0] == "-":
|
if rate_file[0] == "-":
|
||||||
print "\n\nPlease specify file name for -rl option.\n\n"
|
print ("\n\nPlease specify file name for -rl option.\n\n")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
except IndexError:
|
except IndexError:
|
||||||
print "\n\nPlease specify file name for -rl option.\n\n"
|
print ("\n\nPlease specify file name for -rl option.\n\n")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
elif options[opt] == "-pl":
|
elif options[opt] == "-pl":
|
||||||
|
@ -73,10 +73,10 @@ for opt in range(len(options)):
|
||||||
try:
|
try:
|
||||||
pval_file = options[opt+1]
|
pval_file = options[opt+1]
|
||||||
if pval_file[0] == "-":
|
if pval_file[0] == "-":
|
||||||
print "\n\nPlease specify file name for -pl option.\n\n"
|
print ("\n\nPlease specify file name for -pl option.\n\n")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
except IndexError:
|
except IndexError:
|
||||||
print "\n\nPlease specify file name for -pl option.\n\n"
|
print ("\n\nPlease specify file name for -pl option.\n\n")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
elif options[opt] == "-ptp":
|
elif options[opt] == "-ptp":
|
||||||
|
@ -94,7 +94,7 @@ for opt in range(len(options)):
|
||||||
|
|
||||||
|
|
||||||
if not file:
|
if not file:
|
||||||
print "No file specified (-in option)"
|
print ("No file specified (-in option)")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,12 +104,12 @@ seqs = []
|
||||||
if ">" in file.readline():
|
if ">" in file.readline():
|
||||||
tmp = FastaParse(file_name)
|
tmp = FastaParse(file_name)
|
||||||
else:
|
else:
|
||||||
print """
|
print ("""
|
||||||
*******************************
|
*******************************
|
||||||
File not in correct format!
|
File not in correct format!
|
||||||
TIGER accepts FastA format.
|
TIGER accepts FastA format.
|
||||||
*******************************
|
*******************************
|
||||||
"""
|
""")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
@ -121,11 +121,11 @@ seqs = tmp[1]
|
||||||
lns = [len(l) for l in seqs]
|
lns = [len(l) for l in seqs]
|
||||||
lns.sort()
|
lns.sort()
|
||||||
if lns[0] != lns[-1]:
|
if lns[0] != lns[-1]:
|
||||||
print "\n\nUneven sequence lengths. Ensure sequences have been aligned!\n\n"
|
print ("\n\nUneven sequence lengths. Ensure sequences have been aligned!\n\n")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
datatype = DNAdetect(seqs[0])
|
datatype = DNAdetect(seqs[0])
|
||||||
|
|
||||||
#Create array of site patterns
|
#Create array of site patterns
|
||||||
patterns = []
|
patterns = []
|
||||||
|
@ -236,12 +236,12 @@ for n, nm in enumerate(names):
|
||||||
filled_names[n] = nm_r+ filler[:(20 -len(nm_r))]
|
filled_names[n] = nm_r+ filler[:(20 -len(nm_r))]
|
||||||
|
|
||||||
|
|
||||||
#print in correct format.... :(
|
#print in correct format.... (
|
||||||
print "#NEXUS\n\n[This file contains data that has been analysed for site specific rates]"
|
print ("#NEXUS\n\n[This file contains data that has been analysed for site specific rates]")
|
||||||
print "[using TIGER, developed by Carla Cummins in the laboratory of]"
|
print ("[using TIGER, developed by Carla Cummins in the laboratory of]")
|
||||||
print "[Dr James McInerney, National University of Ireland, Maynooth]\n\n"
|
print ("[Dr James McInerney, National University of Ireland, Maynooth]\n\n")
|
||||||
|
|
||||||
print "[Histograms of number of sites in each category:]"
|
print ("[Histograms of number of sites in each category:]")
|
||||||
Hnames = []
|
Hnames = []
|
||||||
counts = []
|
counts = []
|
||||||
for b in range(binNo):
|
for b in range(binNo):
|
||||||
|
@ -249,15 +249,15 @@ for b in range(binNo):
|
||||||
counts.append(binStr.count(str(b+1)))
|
counts.append(binStr.count(str(b+1)))
|
||||||
histogram(counts, Hnames)
|
histogram(counts, Hnames)
|
||||||
|
|
||||||
print "\n\n"
|
print ("\n\n")
|
||||||
|
|
||||||
print "\n\n\nBEGIN TAXA;"
|
print ("\n\n\nBEGIN TAXA;")
|
||||||
print "\tDimensions NTax = ", len(seqs), ";"
|
print ("\tDimensions NTax = "), len(seqs), ";"
|
||||||
print "\tTaxLabels ", " ".join(filled_names), ";\nEND;\n"
|
print ("\tTaxLabels "), " ".join(filled_names), ";\nEND;\n"
|
||||||
|
|
||||||
print "BEGIN CHARACTERS;"
|
print ("BEGIN CHARACTERS;")
|
||||||
print "\tDimensions nchar = ", len(seqs[0]), ";"
|
print ("\tDimensions nchar = "), len(seqs[0]), ";"
|
||||||
print "\tFormat datatype = ", datatype, " gap = - interleave;\nMatrix\n"
|
print ("\tFormat datatype = "), datatype, " gap = - interleave;\nMatrix\n"
|
||||||
|
|
||||||
|
|
||||||
sorted = range(len(seqs[0]))
|
sorted = range(len(seqs[0]))
|
||||||
|
@ -274,7 +274,7 @@ if formSort == 1:
|
||||||
sorted[ind] = x
|
sorted[ind] = x
|
||||||
sr[ind] = "|"
|
sr[ind] = "|"
|
||||||
|
|
||||||
print sortD
|
print (sortD)
|
||||||
|
|
||||||
|
|
||||||
if doPTP:
|
if doPTP:
|
||||||
|
@ -294,7 +294,7 @@ for xy in range(0, len(seqs[0]), 60):
|
||||||
for j in sorted[xy:xy+60]:
|
for j in sorted[xy:xy+60]:
|
||||||
ln = ln + seqs[xz][j].upper()
|
ln = ln + seqs[xz][j].upper()
|
||||||
|
|
||||||
print ln
|
print (ln)
|
||||||
|
|
||||||
if formRate == 0:
|
if formRate == 0:
|
||||||
for x in range(len(str(binNo))):
|
for x in range(len(str(binNo))):
|
||||||
|
@ -312,7 +312,7 @@ for xy in range(0, len(seqs[0]), 60):
|
||||||
bnls = bnls + str(binStr[s])[x]
|
bnls = bnls + str(binStr[s])[x]
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
print bnls + "]"
|
print (bnls + "]")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
for c in range(5):
|
for c in range(5):
|
||||||
|
@ -328,7 +328,7 @@ for xy in range(0, len(seqs[0]), 60):
|
||||||
rtls = rtls + str(ranks[sorted[d]])[c]
|
rtls = rtls + str(ranks[sorted[d]])[c]
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
print rtls + "]"
|
print (rtls + "]")
|
||||||
|
|
||||||
if numbered:
|
if numbered:
|
||||||
digits = len(str(len(sorted)))
|
digits = len(str(len(sorted)))
|
||||||
|
@ -343,14 +343,14 @@ for xy in range(0, len(seqs[0]), 60):
|
||||||
colnms = "[" + filler + "\t"
|
colnms = "[" + filler + "\t"
|
||||||
nms = [str(n)[c] for n in srted[xy:xy+60]]
|
nms = [str(n)[c] for n in srted[xy:xy+60]]
|
||||||
colnms += "".join(nms)
|
colnms += "".join(nms)
|
||||||
print colnms + "]"
|
print (colnms + "]")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print "\n"
|
print ("\n")
|
||||||
print "\n"
|
print ("\n")
|
||||||
|
|
||||||
print ";\nEND;\n\nBEGIN PAUP;"
|
print (";\nEND;\n\nBEGIN PAUP;")
|
||||||
if formSort:
|
if formSort:
|
||||||
lower_bound = 1
|
lower_bound = 1
|
||||||
for c in range(1, binNo + 1):
|
for c in range(1, binNo + 1):
|
||||||
|
@ -360,7 +360,7 @@ if formSort:
|
||||||
upper_bound = lower_bound + (binStr.count(str(c))) - 1
|
upper_bound = lower_bound + (binStr.count(str(c))) - 1
|
||||||
charset = charset + str(lower_bound) + "-" + str(upper_bound) + ";"
|
charset = charset + str(lower_bound) + "-" + str(upper_bound) + ";"
|
||||||
lower_bound = upper_bound + 1
|
lower_bound = upper_bound + 1
|
||||||
print charset
|
print (charset)
|
||||||
else:
|
else:
|
||||||
for x in range(1, binNo + 1):
|
for x in range(1, binNo + 1):
|
||||||
tmpL = []
|
tmpL = []
|
||||||
|
@ -368,13 +368,13 @@ else:
|
||||||
for y in range(len(binStr)):
|
for y in range(len(binStr)):
|
||||||
if str(binStr[y]) == str(x):
|
if str(binStr[y]) == str(x):
|
||||||
tmpL.append(str(y + 1))
|
tmpL.append(str(y + 1))
|
||||||
print "\tCharset Bin" + str(x) + " = ", " ".join(tmpL) + ";"
|
print ("\tCharset Bin" + str(x) + " = ", " ".join(tmpL) + ";")
|
||||||
|
|
||||||
if doPTP:
|
if doPTP:
|
||||||
print "\tCharset Sig_Disagreement = " + " ".join([str(i) for i in sig_dis]) + ";"
|
print ("\tCharset Sig_Disagreement = " + " ".join([str(i) for i in sig_dis]) + ";")
|
||||||
|
|
||||||
print "END;"
|
print ("END;")
|
||||||
|
|
||||||
lt_F = time.localtime()
|
lt_F = time.localtime()
|
||||||
print "[START TIME:", lt_S[3], ":", lt_S[4],":", lt_S[5], "]"
|
print ("[START TIME:", lt_S[3], ":", lt_S[4],":", lt_S[5], "]")
|
||||||
print "[FINISH TIME:", lt_F[3], ":", lt_F[4],":", lt_F[5], "]"
|
print ("[FINISH TIME:", lt_F[3], ":", lt_F[4],":", lt_F[5], "]")
|
||||||
|
|
|
@ -72,10 +72,10 @@ def getPattern(site, unknown):
|
||||||
for x in range(len(site)):
|
for x in range(len(site)):
|
||||||
if site[x] not in unknown:
|
if site[x] not in unknown:
|
||||||
if site[x] in considered:
|
if site[x] in considered:
|
||||||
pattern[considered.index(site[x])].append(str(x))
|
pattern[considered.index(site[x])].append(str(x))
|
||||||
else:
|
else:
|
||||||
considered.append(site[x])
|
considered.append(site[x])
|
||||||
pattern.append([str(x)])
|
pattern.append([str(x)])
|
||||||
|
|
||||||
|
|
||||||
patStr = "|".join([",".join(g) for g in pattern])
|
patStr = "|".join([",".join(g) for g in pattern])
|
||||||
|
@ -99,7 +99,7 @@ def DNAdetect(seq):
|
||||||
seq = seq.upper()
|
seq = seq.upper()
|
||||||
oLen = float(len(seq))
|
oLen = float(len(seq))
|
||||||
seq_C = ""
|
seq_C = ""
|
||||||
|
|
||||||
seq_C = seq.replace("A", "")
|
seq_C = seq.replace("A", "")
|
||||||
seq_C = seq_C.replace("C", "")
|
seq_C = seq_C.replace("C", "")
|
||||||
seq_C = seq_C.replace("G", "")
|
seq_C = seq_C.replace("G", "")
|
||||||
|
@ -136,7 +136,7 @@ def histogram(num_list, name_list):
|
||||||
pr = pr + "="*(p+1) + (" "*(60 - p))
|
pr = pr + "="*(p+1) + (" "*(60 - p))
|
||||||
break
|
break
|
||||||
low = hi
|
low = hi
|
||||||
print "[" + pr + "|" + str(n) + " "*(pad-len(str(n))) + "]"
|
print ("[" + pr + "|" + str(n) + " "*(pad-len(str(n))) + "]")
|
||||||
|
|
||||||
|
|
||||||
def FastaParse(file_name):
|
def FastaParse(file_name):
|
||||||
|
@ -155,7 +155,7 @@ def FastaParse(file_name):
|
||||||
|
|
||||||
|
|
||||||
def printHelp():
|
def printHelp():
|
||||||
print """
|
print ("""
|
||||||
****************
|
****************
|
||||||
TIGER Help:
|
TIGER Help:
|
||||||
****************
|
****************
|
||||||
|
@ -226,4 +226,4 @@ TIGER: Tree-Independent Generation of Evolutionary Rates
|
||||||
randomised 1,000 times and pass the test if their p-value is <0.01. All ? and * characters
|
randomised 1,000 times and pass the test if their p-value is <0.01. All ? and * characters
|
||||||
encountered in the alignment will be ommitted from the analysis.
|
encountered in the alignment will be ommitted from the analysis.
|
||||||
|
|
||||||
"""
|
""")
|
||||||
|
|
Loading…
Reference in a new issue