-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathScript_009_combine_spine_and_muscle.py
228 lines (189 loc) · 6.1 KB
/
Script_009_combine_spine_and_muscle.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 1 12:47:06 2023
@author: lei
"""
import glob
import os
import shutil
import pandas as pd
import numpy as np
result_folder = '../results_for_paper/*'
result_list = sorted(glob.glob(result_folder))
target_folder = '../results_for_paper_csv_whole/'
os.makedirs(target_folder, exist_ok=True)
data_empty = {
'Level':[''],
'ROI HU':[''],
'Seg HU':[''],
'Index':[''],
'Muscle HU':[''],
'Muscle CSA (cm^2)':[''],
'SAT HU':[''],
'SAT CSA (cm^2)':[''],
'VAT HU':[''],
'VAT CSA (cm^2)':[''],
'IMAT HU':[''],
'IMAT CSA (cm^2)':['']
}
df_empty = pd.DataFrame(data_empty)
idx_non_empty = []
clean_name = []
dirty_name = []
vec_L5 = []
vec_L4 = []
vec_L3 = []
vec_L2 = []
vec_L1 = []
vec_T12 = []
vec_sub = []
vec_length = []
count = 0
data_all = {
'Pst_Name':[''],
'T12_Level':[''],
'T12_ROI HU':[''],
'T12_Seg HU':[''],
'T12_Index':[''],
'T12_Muscle HU':[''],
'T12_Muscle CSA (cm^2)':[''],
'T12_SAT HU':[''],
'T12_SAT CSA (cm^2)':[''],
'T12_VAT HU':[''],
'T12_VAT CSA (cm^2)':[''],
'T12_IMAT HU':[''],
'T12_IMAT CSA (cm^2)':[''],
'L1_Level':[''],
'L1_ROI HU':[''],
'L1_Seg HU':[''],
'L1_Index':[''],
'L1_Muscle HU':[''],
'L1_Muscle CSA (cm^2)':[''],
'L1_SAT HU':[''],
'L1_SAT CSA (cm^2)':[''],
'L1_VAT HU':[''],
'L1_VAT CSA (cm^2)':[''],
'L1_IMAT HU':[''],
'L1_IMAT CSA (cm^2)':[''],
'L2_Level':[''],
'L2_ROI HU':[''],
'L2_Seg HU':[''],
'L2_Index':[''],
'L2_Muscle HU':[''],
'L2_Muscle CSA (cm^2)':[''],
'L2_SAT HU':[''],
'L2_SAT CSA (cm^2)':[''],
'L2_VAT HU':[''],
'L2_VAT CSA (cm^2)':[''],
'L2_IMAT HU':[''],
'L2_IMAT CSA (cm^2)':[''],
'L3_Level':[''],
'L3_ROI HU':[''],
'L3_Seg HU':[''],
'L3_Index':[''],
'L3_Muscle HU':[''],
'L3_Muscle CSA (cm^2)':[''],
'L3_SAT HU':[''],
'L3_SAT CSA (cm^2)':[''],
'L3_VAT HU':[''],
'L3_VAT CSA (cm^2)':[''],
'L3_IMAT HU':[''],
'L3_IMAT CSA (cm^2)':[''],
'L4_Level':[''],
'L4_ROI HU':[''],
'L4_Seg HU':[''],
'L4_Index':[''],
'L4_Muscle HU':[''],
'L4_Muscle CSA (cm^2)':[''],
'L4_SAT HU':[''],
'L4_SAT CSA (cm^2)':[''],
'L4_VAT HU':[''],
'L4_VAT CSA (cm^2)':[''],
'L4_IMAT HU':[''],
'L4_IMAT CSA (cm^2)':[''],
'L5_Level':[''],
'L5_ROI HU':[''],
'L5_Seg HU':[''],
'L5_Index':[''],
'L5_Muscle HU':[''],
'L5_Muscle CSA (cm^2)':[''],
'L5_SAT HU':[''],
'L5_SAT CSA (cm^2)':[''],
'L5_VAT HU':[''],
'L5_VAT CSA (cm^2)':[''],
'L5_IMAT HU':[''],
'L5_IMAT CSA (cm^2)':['']
}
df_all = pd.DataFrame(data_all)
for idx_result, result_name in enumerate(sorted(result_list)):
#if count > 10:
# break;
#count = count + 1
if os.listdir(result_name):
#print(" is not empty, we do not need to do it again ")
#idx_non_empty.append(idx_result)
sub_name = os.listdir(result_name)
xxx = os.path.basename(result_name)
print(sub_name,xxx)
#result_dirs = os.listdir(result_name + '/' + sub_name[0])
#shutil.copytree(result_name + '/' + 'metrics', target_folder + xxx +'/' + 'metrics',dirs_exist_ok =True)
data_frame_muscle = pd.read_csv(result_name + '/' + 'metrics' + '/' + 'muscle_adipose_tissue_metrics.csv')
#vec_L5.append(data_frame['IMAT CSA (cm^2)'][0])
#vec_L4.append(data_frame['IMAT CSA (cm^2)'][1])
#vec_L3.append(data_frame['IMAT CSA (cm^2)'][2])
#vec_L2.append(data_frame['IMAT CSA (cm^2)'][3])
#vec_L1.append(data_frame['IMAT CSA (cm^2)'][4])
#vec_T12.append(data_frame['IMAT CSA (cm^2)'][5])
#print(data_frame_muscle)
data_frame_spine = pd.read_csv(result_name + '/' + 'metrics' + '/' + 'spine_metrics.csv')
df_combined = pd.merge(data_frame_spine, data_frame_muscle, on = 'Level',how='outer')
series_L5 = df_combined[df_combined["Level"].str.contains('L5')]
if len(series_L5):
vec_L5.append((series_L5))
else:
vec_L5.append(0)
series_L5 = df_empty
series_L4 = df_combined[df_combined["Level"].str.contains('L4')]
if len(series_L4):
vec_L4.append(float(series_L4["IMAT CSA (cm^2)"].iloc[0]))
else:
vec_L4.append(0)
series_L4 = df_empty
series_L3 = df_combined[df_combined["Level"].str.contains('L3')]
if len(series_L3):
vec_L3.append(float(series_L3["IMAT CSA (cm^2)"].iloc[0]))
else:
vec_L3.append(0)
series_L3 = df_empty
series_L2 = df_combined[df_combined["Level"].str.contains('L2')]
if len(series_L2):
vec_L2.append(float(series_L2["IMAT CSA (cm^2)"].iloc[0]))
else:
vec_L2.append(0)
series_L2 = df_empty
series_L1 = df_combined[df_combined["Level"].str.contains('L1')]
if len(series_L1):
vec_L1.append(float(series_L1["IMAT CSA (cm^2)"].iloc[0]))
else:
vec_L1.append(0)
series_L1 = df_empty
series_T12 = df_combined[df_combined["Level"].str.contains('T12')]
if len(series_T12):
vec_T12.append(float(series_T12["IMAT CSA (cm^2)"].iloc[0]))
else:
vec_T12.append(0)
series_T12 = df_empty
appended_series = series_T12.iloc[0].append(series_L1.iloc[0],ignore_index=True)
appended_series = appended_series.append(series_L2.iloc[0],ignore_index=True)
appended_series = appended_series.append(series_L3.iloc[0],ignore_index=True)
appended_series = appended_series.append(series_L4.iloc[0],ignore_index=True)
appended_series = appended_series.append(series_L5.iloc[0],ignore_index=True)
#appended_series
#df_all.insert(df_all.row, appended_series.name, appended_series)
#df_all.loc[:, appended_series.name] = appended_series
yyy = appended_series.values
row_vals = np.insert(yyy, 0, xxx)
row1 = pd.Series(row_vals, index=df_all.columns)
df_all = df_all.append(row1,ignore_index=True)
df_all.to_csv(target_folder + '/' + 'all_spine_muscle_adipose_tissue_metrics.csv')