一、MIMIC数据库介绍

MIMIC数据库是美国麻省理工提供的一个对公众开放的多参数重症监护数据库,里面提供了诸如心电信号(ECG)、光电容积脉搏波信号(Pleth)、动脉血压信号(ABP)和呼吸信号(RESP)等从ICU病房中采集的生理数据。改数据库经过多个学科10多年的建设,目前已被成功运用于ICU临床数据挖掘的多个研究领域。

MIMIC中所有的数据资源经过严格的去处身份信息处理后,对全球研究人员免费开放,可以通过生理数据资源网站PhysioNet(http://physionet.org/)访问。详细的数据库介绍信息可以从网址得到:https://www.physionet.org/physiobank/database/mimicdb/

二、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 Hislop 27 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

matlab读取hea,MIMIC数据库中数据的下载以及MATLAB读取相关推荐

  1. SRA数据库及其数据的下载

    SRA数据库 Sequence Read Archive (SRA)是NCBI旗下的数据库之一,其作用是存储包括Illumina.454.IonTorrent.Complete Genomic.Pac ...

  2. 基于Java线程池读取数据库中数据(学习+运用)

    基于Java线程池读取数据库中数据(学习+运用) 以下是学习内容 Main.java import java.util.concurrent.ArrayBlockingQueue; import ja ...

  3. navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...

    使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中 发布时间:2018-08-20 14:41, 浏览次数:471 , 标签: Navicat pre ...

  4. python如何读取数据保存为新格式_Python Numpy中数据的常用保存与读取方法

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...

  5. python 更新数据库历史_python 实现数据库中数据添加、查询与更新的示例代码

    一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...

  6. php 获取数据库中的信息,php获取数据库中数据的实现方法

    废话不多说,直接上代码 header("Content-type:text/html;charset=utf-8");//字符编码设置 $servername = "lo ...

  7. 查询数据库中数据的年份_本地公开数据中的年份

    查询数据库中数据的年份 由Alisha Green撰写 全国各州和直辖市在开放数据方面又充满了令人鼓舞的消息. 从海岸到海岸,各种规模的市政当局都批准了新的开放数据政策,现有的开放数据计划已经成熟并引 ...

  8. python查询数据库后更新_python 实现数据库中数据添加、查询与更新的示例代码...

    一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...

  9. python代码中怎么增加数据_python 实现数据库中数据添加、查询与更新的示例代码...

    一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...

最新文章

  1. 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
  2. 手把手教你实现Java发送邮件(1)-发送简单的文本
  3. Vue 进阶系列(一)之响应式原理及实现
  4. android编译的tool版本有多少,android gradle tool版本从3.3升级到3.6.3问题记录
  5. 一次性视频内窥镜行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  6. java基础知识---IO常用基础操作(一)
  7. Nginx的内部(进程)模型
  8. Magnific Popup – 免费的响应式 jQuery Lightbox 插件
  9. 如何解决 Win10 卡顿的问题
  10. 使用POI导出Excel时,关于设置带有多行表头表格自动宽度的问题解决办法
  11. fmpeg分析视频gop的大小
  12. openwrt作旁路由配置教程
  13. Ouroboros:A Provably Secure Proof-of-Stake Blockchain Protocol 学习总结
  14. [paper] Meta-Learner LSTM
  15. 易语言php统计代码,易语言统计代码行数与API的工具
  16. 清北学堂 2017-10-06
  17. 基于51单片机之数码管设计#扩展三位数码管电路,完成0-999递增或递减计数功能,递减间隔200ms左右
  18. 搭建Window10 VNC远程访问ubuntu20.04
  19. Android加密算法
  20. 国防科大 linux教程,操作系统国防科大罗宇

热门文章

  1. RT1052 LPSPI1 dma传输和UART2 DMA传输实现不定长数据接收
  2. 如何使用matlab仿真物理实验,基于Matlab的大学物理实验模拟.pdf
  3. 软件测试-手机商城,百度MTC:一站式移动App测试解决方案之应用商店
  4. 科研文献工具Histcite介绍
  5. [ACL22] An Imitation Learning Curriculum for Text Editing with Non-Autoregressive Models阅读笔记
  6. 制作全网热播视频页面
  7. 虚拟机centos与主机互相Ping通
  8. LTE(4G) VOLTE协议栈架构
  9. Lua中的面向对象实现探讨
  10. 互联网项目组资源规划