diff --git a/Main_Quality_Relabel.py b/Main_Quality_Relabel.py index 2ca6c30..6017c93 100644 --- a/Main_Quality_Relabel.py +++ b/Main_Quality_Relabel.py @@ -7,6 +7,7 @@ @email:2021022362@m.scnu.edu.cn @time:2022/03/28 """ +from pathlib import Path from utils.Quality_Relabel import Quality_Relabel # start-----一般不用修改------ @@ -14,6 +15,11 @@ from utils.Quality_Relabel import Quality_Relabel frequency = 100 # 心晓数据采样率 bcg_frequency = 1000 +PSG_Data_Path = Path("Data/PSG/") +PSG_Label_Path = Path("Data/PSG_label/") +BCG_Data_Path = Path("Data/BCG/") +BCG_Label_Path = Path("Data/BCG_label/") +all_path = [PSG_Data_Path, PSG_Label_Path, BCG_Data_Path, BCG_Label_Path] # end-----一般不用修改------ # 要遍历的事件 @@ -32,7 +38,7 @@ start_bcg_index = 0 shifting = 0 if __name__ == '__main__': - qualityRelabel = Quality_Relabel(sampNo=sampNo, frequency=frequency, bcg_frequency=bcg_frequency, + qualityRelabel = Quality_Relabel(all_path=all_path, sampNo=sampNo, frequency=frequency, bcg_frequency=bcg_frequency, focus_event_list=focus_event_list) qualityRelabel.show_all_event(start_bcg_index=start_bcg_index, diff --git a/README.md b/README.md index bf6b875..a167534 100644 --- a/README.md +++ b/README.md @@ -24,11 +24,32 @@ Quality_Relabel 主目录 +## 上色规则 + +| 事件代码 | 事件 | 颜色 | +| :------: | :------------: | :--: | +| 0 | 背景 | 蓝色 | +| 1 | 低通气 | 粉色 | +| 2 | 中枢性呼吸暂停 | 橙色 | +| 3 | 阻塞型呼吸暂停 | 红色 | +| 4 | 混合型呼吸暂停 | 灰色 | +| 5 | 血氧饱和度下降 | 绿色 | + + + ## 注意事项 -![](graph/note.png) + + + + +## 偏移量计算 + +当心晓有一段事件不可用时,需要手动填入偏移量 + + ## 程序流程框图 diff --git a/graph/calc.png b/graph/calc.png new file mode 100644 index 0000000..fa7fa0d Binary files /dev/null and b/graph/calc.png differ diff --git a/utils/Quality_Relabel.py b/utils/Quality_Relabel.py index f70b80b..06b4be5 100644 --- a/utils/Quality_Relabel.py +++ b/utils/Quality_Relabel.py @@ -66,7 +66,7 @@ class Quality_Relabel: color_cycle = ["blue", "pink", "orange", "red", "grey", "green"] assert len(color_cycle) == len(base_event) + 1, "¼ɫһ" - def __init__(self, sampNo: int, frequency: int = 100, bcg_frequency: int = 1000, + def __init__(self, all_path: List, sampNo: int, frequency: int = 100, bcg_frequency: int = 1000, channel_list: List[str] = ['Effort Tho', 'Effort Abd', 'SpO2', 'Flow Patient', 'Flow Patient'], focus_event_list: List[str] = ["Obstructive apnea"]): """ @@ -77,6 +77,7 @@ class Quality_Relabel: :param channel_list: ʾͨ :param focus_event_list: עͣ¼ """ + self.PSG_Data_Path, self.PSG_Label_Path, self.BCG_Data_Path, self.BCG_Label_Path = all_path self.sampNo = sampNo self.channel_list = channel_list self.focus_event_list = focus_event_list @@ -112,8 +113,8 @@ class Quality_Relabel: print(f"ͨ{self.channel_list}") def read_data(self, frequency: int = 100, bcg_frequency: int = 1000): - bcg_path = Path(f"Data/BCG/{self.sampNo}samp.npy") - ecg_path = Path(f"Data/ECG/A{str(self.sampNo).rjust(7, '0')}.edf") + bcg_path = self.BCG_Data_Path / f"{self.sampNo}samp.npy" + ecg_path = self.PSG_Data_Path / f"A{str(self.sampNo).rjust(7, '0')}.edf" if not bcg_path.exists(): logging.error(f"{bcg_path} ڣ") @@ -178,8 +179,8 @@ class Quality_Relabel: self.signal_select['xin_xiao_respire'] = signal2 def read_event(self): - bcg_label_path = Path(f"Data/BCG_label/{self.sampNo}_label_all.csv") - ecg_label_path = Path(f"Data/ECG_label/export{self.sampNo}.csv") + bcg_label_path = self.BCG_Label_Path / f"{self.sampNo}_label_all.csv" + ecg_label_path = self.PSG_Label_Path / f"export{self.sampNo}.csv" if not bcg_label_path.exists(): logging.error(f"{bcg_label_path} ڣ") @@ -391,5 +392,10 @@ class Quality_Relabel: if __name__ == '__main__': - prepareData = Quality_Relabel(670) + PSG_Data_Path = "../Data/PSG/" + PSG_Label_Path = "../Data/PSG_label/" + BCG_Data_Path = "../Data/BCG/" + BCG_Label_Path = "../Data/BCG_label/" + all_path = [PSG_Data_Path, PSG_Label_Path, BCG_Data_Path, BCG_Label_Path] + prepareData = Quality_Relabel(all_path, 670) prepareData.show_all_event()