#!/usr/bin/env python

import sys

inNOE = open('REDnoe.tab', 'r')
inNONOE = open('REDnonoe.tab', 'r')
inPAR = open('parameters.fit', 'r')

outR1 = open('R1.txt', 'w')
outR2 = open('R2.txt', 'w')
outNOE = open('NOE.txt', 'w')
outR2R1 = open('R2R1.txt', 'w')

idxR1 = []
idxR2 = []
valR1 = []
valR2 = []
errR1 = []
errR2 = []
valNOE = []
errNOE = []
idxNONOE = []
valNONOE = []
errNONOE = []
idxNOE = []
val_NOE = []
err_NOE = []
valR2R1 = []
errR2R1 = []

for line in inNOE:
  if "-HN" in line:
    line = line.split()
    valNOE.append(float(line[17]))
    errNOE.append(float(line[18]))
    idxNOE.append(line[22].split('-')[0][1:-1])
    
for line in inNONOE:
  if "-HN" in line:
    line = line.split()
    valNONOE.append(float(line[17]))
    errNONOE.append(float(line[18]))
    
for i in range(len(idxNOE)):
  val_NOE.append(valNOE[i]/valNONOE[i])
  err_NOE.append(errNOE[i]/valNOE[i]+errNONOE[i]/valNONOE[i])
  
for i in range(len(val_NOE)):
  if val_NOE[i] > 1:
    val_NOE[i] = 1
  else:
    continue

par = 'none'
for line in inPAR:
  if '[' in line:
    par = line.strip('[').split(',')[0]
    continue
  elif par == 'R_NXY' and line != '\n':
    line = line.split()
    idxR2.append(line[0][1:-1])
    valR2.append(float(line[2]))
    errR2.append(float(line[3]))    
  elif par == 'R_NZ' and line != '\n':
    line = line.split()
    idxR1.append(line[0][1:-1])
    valR1.append(float(line[2]))
    errR1.append(float(line[3]))
  else:
    continue

for i in range(len(idxR1)):
  valR2R1.append(valR2[i]/valR1[i])
  errR2R1.append(errR2[i]/valR2[i]+errR1[i]/valR1[i])
  
for i in range(len(idxNOE)):
  if idxNOE[i] in idxR1:
    outNOE.write(str(idxNOE[i])+'\t'+str(val_NOE[i])+'\t'+str(err_NOE[i])+'\n')

for i in range(len(idxR1)):
  if idxR1[i] in idxNOE:  
    outR1.write(str(idxR1[i])+'\t'+str(valR1[i])+'\t'+str(errR1[i])+'\n')
    outR2.write(str(idxR2[i])+'\t'+str(valR2[i])+'\t'+str(errR2[i])+'\n')
    outR2R1.write(str(idxR2[i])+'\t'+str(valR2R1[i])+'\t'+str(errR2R1[i])+'\n')
  
  