update to support python3

This commit is contained in:
kuoi 2022-02-05 20:34:05 +00:00
parent 8a3c5bab7e
commit b847b1f634
3 changed files with 47 additions and 47 deletions

2
README
View File

@ -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
View File

@ -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], "]")

View File

@ -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.
""" """)