##################################
#                                #
# Last modified 2018/10/01       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import math

def run():

    if len(sys.argv) < 2:
        print 'usage: python %s config output' % sys.argv[0]
        print '\tconfig format: label <tab> ChIP <tab> fieldID <tab> Input <tab> fieldID  <tab> reference ChIP <tab> fieldID  <tab> reference Input <tab> fieldID <tab>'
        sys.exit(1)

    outfile = open(sys.argv[2],'w')
    outline = '#\tChIP/input_ratio\treference_ChIP/input_ratio\tChIP_RPMo\tInput_RPM\trefChIP_RPM\trefInput_RPM'
    outfile.write(outline + '\n')

    Flinelist = open(sys.argv[1])
    for Fline in Flinelist:
        fields = Fline.strip().split('\t')
        label = fields[0]
        print label
        ChIP = 0
        refChIP = 0
        Input = 0
        refInput = 0
        file_ChIP = fields[1]
        field_ID_ChIP = int(fields[2])
        file_Input = fields[3]
        field_ID_Input = int(fields[4])
        file_ref_ChIP = fields[5]
        field_ID_ref_ChIP = int(fields[6])
        file_ref_Input = fields[7]
        field_ID_ref_Input = int(fields[8])
        linelist = open(file_ChIP)
        for line in linelist:
            if line.startswith('#'):
                continue
            fields = line.strip().split('\t')
            ChIP += float(fields[field_ID_ChIP])
        linelist = open(file_ref_ChIP)
        for line in linelist:
            if line.startswith('#'):
                continue
            fields = line.strip().split('\t')
            refChIP += float(fields[field_ID_ref_ChIP])
        linelist = open(file_Input)
        for line in linelist:
            if line.startswith('#'):
                continue
            fields = line.strip().split('\t')
            Input += float(fields[field_ID_Input])
        linelist = open(file_ref_Input)
        for line in linelist:
            if line.startswith('#'):
                continue
            fields = line.strip().split('\t')
            refInput += float(fields[field_ID_ref_Input])
        outline = label + '\t' + str(ChIP/Input)
        outline = outline + '\t' + str(refChIP/refInput)
        outline = outline + '\t' + str(ChIP)
        outline = outline + '\t' + str(Input)
        outline = outline + '\t' + str(refChIP)
        outline = outline + '\t' + str(refInput)
        print outline
        outfile.write(outline + '\n')

    outfile.close()

run()

