-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcombine_results.py
54 lines (40 loc) · 1.48 KB
/
combine_results.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import os
import pandas as pd
files = []
label_seed_kmer_lrate = []
for sub_dir in os.listdir('results'):
if os.path.isdir('results/' + sub_dir) and not sub_dir.startswith('.'):
label_seed_kmer_lrate.append(sub_dir)
for file in os.listdir('results/' + label_seed_kmer_lrate[0]):
if file.endswith(".txt"):
files.append(file)
files = sorted(files)
print(files)
f1_scores = [[0.0 for i in range(len(files))] for j in range(len(label_seed_kmer_lrate))]
for i in range(len(label_seed_kmer_lrate)):
train_cell_lines = []
test_cell_lines = []
for j in range(len(files)):
f_path = 'results/' + label_seed_kmer_lrate[i] + '/' + files[j]
f = open(f_path, "r")
f1 = f.read().split('Test F1')[1].split('\n')[0].split('= ')[1]
print(f_path, '=', f1)
f1 = float(f1)
f.close()
cell_lines = files[j].split('.')[0].split('_')
train_cell_lines.append(cell_lines[0])
if len(cell_lines) == 1:
test_cell_lines.append(cell_lines[0])
else:
test_cell_lines.append(cell_lines[1])
f1_scores[i][j] = float(f1)
data = {
'train_cell_line': train_cell_lines,
'test_cell_line': test_cell_lines
}
for i in range(len(label_seed_kmer_lrate)):
f1_key = 'f1_' + label_seed_kmer_lrate[i]
data[f1_key] = f1_scores[i]
print('Seed {} f1 count {}'.format(label_seed_kmer_lrate[i], len(data[f1_key])))
df = pd.DataFrame(data)
df.to_csv('results/results.csv', index=False)