251 lines
6.6 KiB
Markdown
251 lines
6.6 KiB
Markdown
# Quality_Relabel
|
||
|
||
## 文件目录
|
||
```bash
|
||
Quality_Relabel 主目录
|
||
├── Data 数据
|
||
│ ├── Artifact_label 体动标签
|
||
│ │ └──20220421Artifact_offset_value.xlsx 体动信号位置相对于心晓信号位置偏移量
|
||
│ ├── BCG 心晓信号
|
||
│ ├── BCG_label 心晓事件标签
|
||
│ ├── PSG PSG信号
|
||
│ └── PSG_label PSG事件标签
|
||
├── history 存放历史记录
|
||
│ └── history.log 历史记录
|
||
├── utils 基本库
|
||
│ ├── Preprocessing.py BCG数据处理工具库
|
||
│ └── Prepare_Data.py 数据集加载与处理
|
||
├── Main_Quality_Relabel.py 启动入口
|
||
└── README.md 项目说明
|
||
|
||
```
|
||
|
||
|
||
|
||
## 数据来源与格式
|
||
|
||
### PSG数据
|
||
|
||
直接从Alice中导出的EDF文件,包括如下通道
|
||
|
||
| Signal Name | Frequency | Signal Name | Frequency |
|
||
| :---------: | :-------: | :---------: | :-------: |
|
||
| EEG C3-A2 | 200 | Flow T | 200 |
|
||
| EEG C4-A1 | 100 | Flow P | 100 |
|
||
| EEG F3-A2 | 200 | Effort Tho | 200 |
|
||
| EEG F3-A1 | 200 | Effort Abd | 10 |
|
||
| EEG O3-A2 | 200 | SpO2 | 1 |
|
||
| EEG O4-A1 | 200 | RR | 10 |
|
||
| EEG A1-A2 | 200 | ECG I | 200 |
|
||
| EOG Left | 200 | ECG II | 200 |
|
||
| EOG Right | 100 | Leg LEG1 | 200 |
|
||
| EMG Chin | 200 | leg LEG2 | 200 |
|
||
| Snore | 200 | Body | 1 |
|
||
| Imp | 200 | Pleth | 100 |
|
||
| Pluse | 1 | | |
|
||
|
||
|
||
|
||
### 心晓数据
|
||
|
||
由new_org_1000hz.txt, 通过读取后保存成numpy的npy文件,以加速读取。此份数据为相对于PSG信号对齐,进行过补0与裁剪信号
|
||
|
||
### PSG标签
|
||
|
||
从Alice中导出包含所有事件的标签
|
||
|
||
<img src="graph/PSG_Label_example.png" style="zoom: 80%;" />
|
||
|
||
### 心晓标签
|
||
|
||
打标后从Alice中导出,并重新计算标签的epoch、start、end
|
||
|
||
其中CSA标签为质量打标后的第三次修正的位置
|
||
|
||
<img src="graph/BCG_Label_example.png" style="zoom: 80%;" />
|
||
|
||
### 体动标签
|
||
|
||
每个标签由四行构成, 其中体动位置相对于未经对齐的心晓信号,故增加20220421Artifact_offset_value.xlsx 用于对齐
|
||
|
||
第一行为第几个事件, 第二行为事件标签编码, 第三行为事件起始点, 第四行为事件终止点
|
||
|
||
<img src="graph/artifact_Label_example.png" style="zoom: 100%;" />
|
||
|
||
|
||
|
||
## 上色规则
|
||
|
||
| 事件代码 | 事件 | 颜色 |
|
||
| :------: | :------------: | :--: |
|
||
| 0 | 背景 | 黑色 |
|
||
| 1 | 低通气 | 粉色 |
|
||
| 2 | 中枢性呼吸暂停 | 蓝色 |
|
||
| 3 | 阻塞型呼吸暂停 | 红色 |
|
||
| 4 | 混合型呼吸暂停 | 灰色 |
|
||
| 5 | 血氧饱和度下降 | 绿色 |
|
||
| 6 | 大体动 | 橙色 |
|
||
| 7 | 小体动 | 橙色 |
|
||
| 8 | 深呼吸 | 橙色 |
|
||
| 9 | 脉冲体动 | 橙色 |
|
||
| 10 | 无效片段 | 橙色 |
|
||
|
||
|
||
|
||
## 依赖库
|
||
|
||
- pyedflib
|
||
|
||
- numpy
|
||
|
||
- pandas
|
||
|
||
- matplotlib
|
||
|
||
- tqdm
|
||
|
||
- pywt
|
||
|
||
- scipy
|
||
|
||
如果在windows服务器106上运行直接默认Anaconda环境就已满足
|
||
|
||
|
||
|
||
## 使用方法
|
||
|
||
### 1. 从PyCharm中运行
|
||
|
||
首先取消在pycharm的窗口内显示图片
|
||
|
||
File --> Settings --> Tools --> Python Scientific --> Show plots in tools window **取消勾选**
|
||
|
||
|
||
|
||
打开Main_Quality_Relabel.py
|
||
|
||
修改
|
||
|
||
focus_event_list 显示事件
|
||
|
||
sampNo 样本编号
|
||
|
||
start_bcg_index 从第几个事件开始显示
|
||
|
||
<img src="graph/pycharm_example.png" style="zoom: 80%;" />
|
||
|
||
|
||
|
||
点击右上角红色方块停止程序
|
||
|
||
<img src="graph/pycharm_close.png" style="zoom: 100%;" />
|
||
|
||
|
||
|
||
### 2. 从命令行运行
|
||
|
||
最新的代码支持从命令行中传入参数,无需打开pycharm
|
||
|
||
在代码文件夹的路径栏输入cmd后回车,进入到命令提示符
|
||
|
||
<img src="graph/cmd_example.png" style="zoom: 100%;" />
|
||
|
||
|
||
|
||
再在命令提示符中运行python 程序名 参数 即可运行
|
||
|
||
<img src="graph/cmd_example2.png" style="zoom: 100%;" />
|
||
|
||
#### 支持参数
|
||
|
||
```bash
|
||
usage: Main_Quality_Relabel.py [-h] [-n [SAMPNO]]
|
||
[-e [{OSA,CSA,MSA,HPY} [{OSA,CSA,MSA,HPY} ...]]]
|
||
[-i [START_BCG_INDEX]] [-f [FRONT_ADD_SECOND]]
|
||
[-b [BACK_ADD_SECOND]]
|
||
|
||
optional arguments:
|
||
-h, --help show this help message and exit
|
||
-n [SAMPNO], --sampNo [SAMPNO]
|
||
样本编号
|
||
-e [{OSA,CSA,MSA,HPY} [{OSA,CSA,MSA,HPY} ...]], --event [{OSA,CSA,MSA,HPY} [{OSA,CSA,MSA,HPY} ...]]
|
||
显示事件,从[OSA,CSA,MSA,HPY] 选择一个或多个 默认值:OSA
|
||
-i [START_BCG_INDEX], --start_bcg_index [START_BCG_INDEX]
|
||
开始事件序号 默认值:1
|
||
-f [FRONT_ADD_SECOND], --front_add_second [FRONT_ADD_SECOND]
|
||
在事件前添加信号长度 默认值:60
|
||
-b [BACK_ADD_SECOND], --back_add_second [BACK_ADD_SECOND]
|
||
在事件后添加信号长度 默认值:60
|
||
|
||
```
|
||
|
||
|
||
|
||
#### 命令行示例
|
||
|
||
##### 1. 打开样本编号为670,查看事件OSA
|
||
|
||
```bash
|
||
python Main_Quality_Relabel.py -n 670
|
||
```
|
||
|
||
或
|
||
|
||
```bash
|
||
python Main_Quality_Relabel.py -n 670 -e OSA
|
||
```
|
||
|
||
|
||
|
||
##### 2. 打开样本编号为703,查看事件OSA、CSA, 从第三个事件开始
|
||
|
||
```bash
|
||
python Main_Quality_Relabel.py -n 703 -e OSA CSA -i 3
|
||
```
|
||
|
||
|
||
|
||
## 记录保存
|
||
|
||
程序的日志输出将保存到history/[日期].log文件夹下,可以通过查看日志,获取之前打标位置
|
||
|
||
<img src="graph/log_example.png" style="zoom: 100%;" />
|
||
|
||
## 窗口示例
|
||
|
||
<img src="graph/example.png" style="zoom: 80%;" />
|
||
|
||
## 注意事项
|
||
|
||
<img src="graph/note.png" style="zoom: 80%;" />
|
||
|
||
|
||
|
||
|
||
|
||
## 程序流程框图
|
||
|
||

|
||
|
||
## TODO
|
||
|
||
2022-03-27 22:27
|
||
|
||
1. ~~完成启动入口(预计半天)~~
|
||
2. ~~完成参数说明(预计半天)~~
|
||
3. ~~导出PSG所有标签(额外的工作)~~
|
||
4. ~~迁移BCG标签,中文字符切换目前已经完成目前存在ubuntu,需要文件重命名(预计一小时)~~
|
||
5. ~~完成日志记录模块(预计半天)~~
|
||
|
||
|
||
|
||
2022-04-15 22:06
|
||
|
||
1. ~~删除了PSG开头部分不存在于心晓中的标签,以后不用计算shifting~~
|
||
|
||
2022-04-17 20:00
|
||
|
||
1. ~~添加命令行传入参数功能~~
|
||
2. ~~添加显示目前位于第几个~~
|
||
|