Go to file
2022-05-20 11:33:46 +08:00
graph 添加说明 2022-04-21 13:19:50 +08:00
history clear 2022-03-29 22:46:28 +08:00
utils 添加箭头 2022-05-20 11:33:46 +08:00
.gitignore 添加自动全屏 2022-03-30 10:17:03 +08:00
Main_Quality_Relabel.py 修复事件位于末尾时,BCG长度不够的情况 2022-05-20 11:17:16 +08:00
README.docx 添加说明 2022-04-21 13:18:19 +08:00
README.md replace readme 2022-04-21 13:24:18 +08:00

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 2227

  1. 完成启动入口(预计半天)
  2. 完成参数说明(预计半天)
  3. 导出PSG所有标签(额外的工作)
  4. 迁移BCG标签中文字符切换目前已经完成目前存在ubuntu需要文件重命名(预计一小时)
  5. 完成日志记录模块(预计半天)

2022-04-15 2206

  1. 删除了PSG开头部分不存在于心晓中的标签以后不用计算shifting

2022-04-17 2000

  1. 添加命令行传入参数功能
  2. 添加显示目前位于第几个