重症医学有福了,通过MIMIC数据库发表 SCI 论文
2020-06-13 MedSci MedSci
2018 年,一项关于机械通气中机械功率与病人死亡率的研究登上了影响因子近 20 分的危重症顶刊 Intensive Care Med。
2018 年,一项关于机械通气中机械功率与病人死亡率的研究登上了影响因子近 20 分的危重症顶刊 Intensive Care Med。
这项观察性队列研究,没有收集病例,也没有做临床试验,就得出了对机械通气非常有指导意义的结论,解决了多年来由于大多数病例的记录不完整、机械功率与肺损伤的具体关联一直没有定论这个尴尬局面,获得专家与同行的认可!
仔细阅读发现,文章里的数据大多数来自一个叫 MIMIC 的数据库。作者提取数据库中数据,进行分析,得到自己的结论,发表了一篇非常有价值的 SCI 论文。
什么是MIMIC数据库?
MIMIC数据库是美国麻省理工提供的一个对公众开放的多参数重症监护数据库,里面提供了诸如心电信号(ECG)、光电容积脉搏波信号(Pleth)、动脉血压信号(ABP)和呼吸信号(RESP)等从ICU病房中采集的生理数据。改数据库经过多个学科10多年的建设,目前已被成功运用于ICU临床数据挖掘的多个研究领域。
MIMIC中所有的数据资源经过严格的去处身份信息处理后,对全球研究人员免费开放,可以通过生理数据资源网站PhysioNet(http://physionet.org/ )访问。详细的数据库介绍信息可以从网址得到:https://www.physionet.org/physiobank/database/mimicdb/
MIMIC 数据库是由麻省理工学院开发的公开免费数据集,目前最新版本是 MIMIC-III v1.4(2016.09),还在持续更新中。
数据集包含了麻省理工贝斯以色列迪康医学中心重症监护室病人十几年来的真实医疗数据,共含成年患者(年龄 >= 16 岁)53423 人。另外,还包括了 2001-2008 年间 7870 个新生儿的临床医疗数据。
MIMIC数据库一共收录46520个病人(包括新生儿),成年患者38888人(按照最后一次住院统计),而且存在同一个病人多次住院的情况,所以数据库中每张表记录数比病人数量多。笔者统计工具没有用官网推荐的软件,采用数据库查询软件Navicat和可视化软件Tableau来实现查询和显示。
数据量丰富,研究价值不菲。在这个数据库中,每一位患者的数据记录都十分详细,包括人口统计学、生命体征数据、实验室测试、影像数据和药物等。新版本还连接了社保数据库,记录了患者的随访时间和预后结局。
数据库中一共有26张表,记录患者入院的各种信息,每张表的介绍如下所示。
通过 MIMIC 数据库,不用对患者进行随访,就有送到手边的数据做预后研究。
数据库覆盖范围广,几乎所有科室的重症数据都能找到。例如,脓毒症,心梗,新生儿,胰腺炎,还有呼吸衰竭,心脏术后,脑外术后,创伤患者等。
图片来源:MIMIC 数据库量统计
这么强大的数据库,我们如何使用?
重症病例数据向来是临床医生做研究最常用到的数据之一。然而,收集重症病例在日常诊疗工作中,不是一件容易的事。
二、MIMIC数据库的下载
通过PhysioBank ATM对MIMIC数据库进行访问(网址:https://physionet.org/cgi-bin/atm/ATM)。在DataBase中选择MIMIC Database(mimicdb),如下如图所示:
选择相应的Record样本(如055),以及输出时长 Output Length(如10 sec),在Toolbox中选择 Export signal as .mat,会有如下四个文件可供下载。其中.mat文件中存储信号数据、.info文件存储各路信号名字以及相应的其他信息、.hea文件是在相应软件中读取.mat文件所需要的数据文件,plotATM.m为所提供的用于从.mat和.info中读取数据的matlab代码,通过调用如plotATM(‘055m’)即可从中读取数据。
需要注意的:数据库中ECG采样率为500Hz,而PLETH和ABP等数据采用率为125Hz,而生成的.mat数据中,统一为125Hz,即将每路数据每4个取一次平均作为最后的数据。
plotATM.m代码如下:
function plotATM(Name)
usage: plotATM(‘RECORDm’)
This function reads a pair of files (RECORDm.mat and RECORDm.info) generated
by ‘wfdb2mat’ from a PhysioBank record, baseline-corrects and scales the time
series contained in the .mat file, and plots them. The baseline-corrected
and scaled time series are the rows of matrix ‘val’, and each
column contains simultaneous samples of each time series.
‘wfdb2mat’ is part of the open-source WFDB Software Package available at
http://physionet.org/physiotools/wfdb.shtml
If you have installed a working copy of ‘wfdb2mat’, run a shell command
such as
wfdb2mat -r 100s -f 0 -t 10 >100sm.info
to create a pair of files (‘100sm.mat’, ‘100sm.info’) that can be read
by this function.
The files needed by this function can also be produced by the
PhysioBank ATM, at
http://physionet.org/cgi-bin/ATM
plotATM.m O. Abdala16 March 2009
James Hislop27 January 2014version 1.1
infoName = strcat(Name, ‘.info’);
matName = strcat(Name, ‘.mat’);
Octave = exist(‘OCTAVE_VERSION’);
load(matName);
fid = fopen(infoName, ‘rt’);
fgetl(fid);
fgetl(fid);
fgetl(fid);
[freqint] = sscanf(fgetl(fid), ‘Sampling frequency: %f Hz Sampling interval: %f sec’);
interval = freqint(2);
fgetl(fid);
if(Octave)
for i = 1:size(val, 1)
R = strsplit(fgetl(fid), char(9));
signal{i} = R{2};
gain(i) = str2num(R{3});
base(i) = str2num(R{4});
units{i} = R{5};
end
else
for i = 1:size(val, 1)
[row(i),signal(i),gain(i), base(i), units(i)]=strread(fgetl(fid),’%d%s%f%f%s’,‘delimiter’,’\t’);
end
end
fclose(fid);
val(val==-32768) = NaN;
for i = 1:size(val, 1)
val(i, 😃 = (val(i, 😃 - base(i)) / gain(i);
end
x = (1:size(val, 2)) * interval;
plot(x’, val’);
for i = 1:length(signal)
labels{i} = strcat(signal{i}, ’ (’, units{i}, ‘)’);
end
legend(labels);
xlabel(‘Time (sec)’);
% grid on
end
本网站所有内容来源注明为“梅斯医学”或“MedSci原创”的文字、图片和音视频资料,版权均属于梅斯医学所有。非经授权,任何媒体、网站或个人不得转载,授权转载时须注明来源为“梅斯医学”。其它来源的文章系转载文章,或“梅斯号”自媒体发布的文章,仅系出于传递更多信息之目的,本站仅负责审核内容合规,其内容不代表本站立场,本站不负责内容的准确性和版权。如果存在侵权、或不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
在此留言
这个棒
105
学习
103
学习了,留着以后用,
118
太棒了👍🏻👍🏻👍🏻👍🏻
140
#重症医学#
75
#MIMIC#
58