DAminoMuta / summary.py
auralray's picture
Upload folder using huggingface_hub
acbef3a verified
import os
import csv
import argparse
from natsort import natsorted
parser = argparse.ArgumentParser()
parser.add_argument('--dir', type=str, default='./run-reg')
parser.add_argument('--output', type=str, default='summary.csv')
args = parser.parse_args()
# 设置目录路径和输出CSV文件名
directory_path = args.dir
output_csv = args.output
# 创建CSV文件并写入数据
with open(output_csv, mode='w', newline='') as file:
writer = csv.writer(file)
# 写入第一个子表的标题和表头
writer.writerow(['Valid'])
writer.writerow(['Run', 'MAE', 'RSE', 'PCC', 'KCC'])
# 遍历指定目录中的子目录
for subdirectory in natsorted(os.listdir(directory_path)):
subdirectory_path = os.path.join(directory_path, subdirectory)
if os.path.isdir(subdirectory_path):
result_file_path = os.path.join(subdirectory_path, 'result.txt')
if os.path.isfile(result_file_path):
with open(result_file_path, 'r') as result_file:
lines = result_file.readlines()
if len(lines) >= 3:
means_5_6 = lines[1].strip().split(',')
std_devs_5_6 = lines[2].strip().split(',')
if len(means_5_6) == 4 and len(std_devs_5_6) == 4:
values_5_6 = [f'{float(mean.strip()) * 100:.2f}$_{{\\pm{{{float(std_dev.strip()) * 100:.2f}}}}}$'
for mean, std_dev in zip(means_5_6, std_devs_5_6)]
writer.writerow([subdirectory] + values_5_6)
# 加入空行以分隔两个子表
writer.writerow([])
# 写入第一个子表的标题和表头
writer.writerow(['QLX'])
writer.writerow(['Run', 'MAE', 'RSE', 'PCC', 'KCC'])
# 遍历指定目录中的子目录
for subdirectory in natsorted(os.listdir(directory_path)):
subdirectory_path = os.path.join(directory_path, subdirectory)
if os.path.isdir(subdirectory_path):
result_file_path = os.path.join(subdirectory_path, 'result.txt')
if os.path.isfile(result_file_path):
with open(result_file_path, 'r') as result_file:
lines = result_file.readlines()
if len(lines) >= 6:
means_5_6 = lines[4].strip().split(',')
std_devs_5_6 = lines[5].strip().split(',')
if len(means_5_6) == 4 and len(std_devs_5_6) == 4:
values_5_6 = [f'{float(mean.strip()) * 100:.2f}$_{{\\pm{{{float(std_dev.strip()) * 100:.2f}}}}}$'
for mean, std_dev in zip(means_5_6, std_devs_5_6)]
writer.writerow([subdirectory] + values_5_6)
# # 加入空行以分隔两个子表
# writer.writerow([])
# # 写入第二个子表的标题和表头
# writer.writerow(['SAAP'])
# writer.writerow(['Run', 'AP', 'F1', 'ACC', 'AUC'])
# # 再次遍历指定目录中的子目录
# for subdirectory in natsorted(os.listdir(directory_path)):
# subdirectory_path = os.path.join(directory_path, subdirectory)
# if os.path.isdir(subdirectory_path):
# result_file_path = os.path.join(subdirectory_path, 'result.txt')
# if os.path.isfile(result_file_path):
# with open(result_file_path, 'r') as result_file:
# lines = result_file.readlines()
# if len(lines) >= 9:
# means_8_9 = lines[7].strip().split(',')
# std_devs_8_9 = lines[8].strip().split(',')
# if len(means_8_9) == 4 and len(std_devs_8_9) == 4:
# values_8_9 = [f'{float(mean.strip()) * 100:.2f}$_{{\\pm{{{float(std_dev.strip()) * 100:.2f}}}}}$'
# for mean, std_dev in zip(means_8_9, std_devs_8_9)]
# writer.writerow([subdirectory] + values_8_9)