graph | ||
history | ||
utils | ||
.gitignore | ||
Main_Quality_Relabel.py | ||
README.docx | ||
README.md |
Quality_Relabel
文件目录
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中导出包含所有事件的标签

心晓标签
打标后从Alice中导出,并重新计算标签的epoch、start、end
其中CSA标签为质量打标后的第三次修正的位置

体动标签
每个标签由四行构成, 其中体动位置相对于未经对齐的心晓信号,故增加20220421Artifact_offset_value.xlsx 用于对齐
第一行为第几个事件, 第二行为事件标签编码, 第三行为事件起始点, 第四行为事件终止点

上色规则
事件代码 | 事件 | 颜色 |
---|---|---|
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 从第几个事件开始显示

点击右上角红色方块停止程序

2. 从命令行运行
最新的代码支持从命令行中传入参数,无需打开pycharm
在代码文件夹的路径栏输入cmd后回车,进入到命令提示符

再在命令提示符中运行python 程序名 参数 即可运行

支持参数
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
python Main_Quality_Relabel.py -n 670
或
python Main_Quality_Relabel.py -n 670 -e OSA
2. 打开样本编号为703,查看事件OSA、CSA, 从第三个事件开始
python Main_Quality_Relabel.py -n 703 -e OSA CSA -i 3
记录保存
程序的日志输出将保存到history/[日期].log文件夹下,可以通过查看日志,获取之前打标位置

窗口示例

注意事项

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