|
import os, sys,string,re,glob |
|
|
|
import json |
|
import csv |
|
import copy |
|
|
|
|
|
import pathlib |
|
import time |
|
|
|
folder = str(pathlib.Path(__file__).parent.resolve()) |
|
|
|
|
|
|
|
|
|
def calculate_template(): |
|
total_dic = {} |
|
for line in open(folder+"/result.jsonl", 'r', encoding="utf-8"): |
|
dic = json.loads(line) |
|
if dic["Target"].lower() + " " + dic["Module"].lower() not in total_dic.keys(): |
|
total_dic[dic["Target"].lower() + " " + dic["Module"].lower()] = set() |
|
total_dic[dic["Target"].lower() + " " + dic["Module"].lower()].add(dic["File"].strip() + " " + dic["Func"].strip() + " " + dic["Target"].strip()) |
|
|
|
|
|
res_dic = {} |
|
with open(folder+"/Accurate_Func_Merged.csv", 'r', encoding='utf-8') as f: |
|
f_csv = csv.reader(f) |
|
for row in f_csv: |
|
if " ".join([row[-1], row[0]]).lower() not in res_dic: |
|
res_dic[" ".join([row[-1], row[0]]).lower()] = 1 |
|
else: |
|
res_dic[" ".join([row[-1], row[0]]).lower()] += 1 |
|
with open(folder+"/Fig8_Purple.csv", 'w', encoding='utf-8', newline="") as f: |
|
f_csv = csv.writer(f) |
|
for k in res_dic.keys(): |
|
f_csv.writerow([k.split(' ')[0].replace("pulp", "ri5cy"), k.split(' ')[1], round(float(res_dic[k])/float(len(list(total_dic[k]))), 3)]) |
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
calculate_template() |
|
|