#coding=utf8
"""
# Author: Denghui Liu
# Contact: liudenghui@gmail.com
# Created Time : Thu 19 Mar 2015 02:38:15 PM CST
# Last Modified :
# File Name: 2FilterPCC.py
# Description:

"""
import sys
if len(sys.argv) !=8:
        print ("Usage:python %s inputGroup inputStep1PCC negativeCutoff positiveCutoff outNodeAttribution outEdgeAttribution outNetwork"%sys.argv[0])
        raise SystemExit(1)
outNodeAttribution=open(sys.argv[5],'w')
outNodeAttribution.write("GeneName"+"\t"+"Group"+"\n")
outEdgeAttribution=open(sys.argv[6],'w')
outEdgeAttribution.write("Interaction"+"\t"+"Type"+"\n")
outNetwork=open(sys.argv[7],'w')
outNetwork.write("Gene1"+"\t"+"Gene2"+"\n")

inGroup=open(sys.argv[1])
inGroup.readline()
dictGroup={}
for line in inGroup:
        arr=line.strip().split()
        dictGroup[arr[0]]=arr[1]

lowCutoff=float(sys.argv[3])
highCutoff=float(sys.argv[4])

dictNode={}
for line in open(sys.argv[2]):
        arr=line.strip().split()
        if float(arr[2]) > highCutoff or float(arr[2]) < lowCutoff:
                dictNode[arr[0]]=1
                dictNode[arr[1]]=1
                outNetwork.write(arr[0]+"\t"+arr[1]+"\n")
                if float(arr[2]) > highCutoff:
                        outEdgeAttribution.write(arr[0]+" "+"(pp)"+" "+arr[1]+"\t+"+"\n")
                if float(arr[2]) < lowCutoff:
                        outEdgeAttribution.write(arr[0]+" "+"(pp)"+" "+arr[1]+"\t-"+"\n")
for gene in dictNode.keys():
        outNodeAttribution.write(gene+"\t"+dictGroup[gene]+"\n")
