# program compare_weight_files

#Program to read weight values from N weight files and to write a new weight file to identify those structures that
#have a weight of 1.0 for all N files.  


import locale

a = raw_input(' Input number of weight files: ')
numfiles = int(a)

fname=[]

for i in range (numfiles):
	j=i+1
	file = raw_input(' Input filename '+str(j)+': ')
	fname.append(file)


outfile='new_weight_file.txt'

targetweight = 1.0

structure =[]; paramvalue =[]; weightvalue =[]

for i in range (numfiles):
	fread = open(fname[i],'r')
	line = fread.readlines()
	fread.close()
	snum=[]; param=[]; weight=[]
	for j in range(len(line)):
		col = line[j].split()
		snum.append(locale.atoi(col[0]))
		param.append(locale.atof(col[1]))
		weight.append(locale.atof(col[2]))
	structure.append(snum)
	paramvalue.append(param)
	weightvalue.append(weight)

#assume all files have the same number of structures
numstruc=len(line) #assumes no header lines!


newweight = [0 for col in range(numstruc)]

for j in range (numstruc):
    sum = 0.0
    for i in range(numfiles):
        sum = sum + weightvalue[i][j]
    avg = sum/numfiles
    if avg == 1.0:
        newweight[j] = 1.0
    else:
        newweight[j] = 0.0

fwrite = open(outfile, 'w')
for stval, pval, wtval in zip(structure[0], paramvalue[0], newweight):
	fwrite.write('%i' '\t' '%f' '\t' '%f' '\n' %(stval, pval, wtval))
fwrite.close()

print 'Done'



	
