用python访问人类连接体meg数据的mne-hcp项目。

mne-hcp的Python项目详细描述


…-*-模式:rst-*-

travis zenodo codecov br/>
…|特拉维斯图片:https://api.travis-ci.org/mne-tools/mne-hcp.png?分支=主
…_特拉维斯:https://travis ci.org/mne tools/mne hcp

…| Zenodo图像::https://zenodo.org/badge/53261823.svg
…_泽诺多:https://zenodo.org/badge/latestdoi/53261823

…| codecov图像::http://codecov.io/github/mne-tools/mne-hcp/coverage.svg?分支=主
…_ codecov:http://codecov.io/github/mne-tools/mne-hcp?branch=master

==



复杂的数据检索请求可以很容易地在这个神经成像参考数据集的资源上执行。原始HCP数据被转换成我们所知道和喜爱的可操作的MNE对象。MNE-HCP消除了由于坐标系、分布式信息和文件格式约定不同而带来的困难。提供对HCP MEG数据的简单和一致的访问将有助于标准化数据分析实践的出现。
通过构建"MNE软件包"lt;http://martinos.org/mne/>;`,mne-hcp很自然地补充了快速增长的python数据科学工具包。

meg数据的快速接口
代码块::python

"任务运动")

"任务电机"

免责声明:此代码正在进行研究驱动开发。api仍在变化,
,但正在接近稳定的版本。注意:

现在请考虑以下注意事项:

-我们只打算支持HCP附带的一部分文件。
-具体来说,目前,还没有计划为hcp源空间管道的任何输出支持io和处理。
-这个库打破了一些mne约定,以便使hcp输出与mne兼容。

python发行版<;https://www.continuum.io/downloads>;``,附带必要的依赖项。或者,要安装"mne hcp",首先需要安装其依赖项::

$pip install numpy matplotlib scipy scikit learn mne joblib pandas

然后克隆存储库::

$git clone http://github.com/mne tools/mne hcp

,最后运行"setup.py"安装包::

$cdmne hcp/
$python setup.py install

做::

$python setup.py develop


要检查一切是否正常,您可以做::

$python-c'import hcp'


,它不应给出任何错误消息。

依赖项
----

需要使用mne-hcp:

-mne python master分支
-mne python依赖项,特别是
-scipy
-numpy
-matplotlib
-scikit learn(可选)


quickstart
==


需要以下数据布局:一个包含HCP数据的文件夹
,因为它们是通过zip解包的,按主题分类。
通过Aspera Connect客户端下载,以下
命令应生成预期的布局:

…代码块::bash

$for fname in$(ls*zip);do
$echo解包$fname;
$unzip-o$fname;rm$fname;
$done



一切都应该很好。

代码由不同的模块组织。
"io"模块包括不同处理阶段的传感器空间数据读取器和错误数据的注释。




更像是mne脓肿,下面的
表给出了一个概述:

+——+——+——+——+————————+———————————————————————————————————————————————————————————————————————|
+——+——+————+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————信息,注释,ica"wrkmem"
+——+——+——+——+——+——————+———————————————————————————————————————————————————————————————————————ica"故事"
+——+——|原始,信息"pNoise"
+??-+??-+??-+??-+??-
"Noise_Empty_Room"原始,INFO"rnoise"
+??-+??-+??-+??-+??-


使HCP数据集与mne兼容的功能方便的功能,如"hcp.make mne""u atomy"。这将创建一个
mne友好的解剖目录,并提取头部模型和
coregistration meg到mri coregistration。
(是的,它映射到mri,而不是头盔——hcp数据的一个特性。)
它可以使用如下:

代码块::python

>;>import os.path as op
>;>import hcp
>;>storage_dir=op.expanduser('~/data/mne-hcp')
>;>hcp.make_mne_atomy(
>;'100307',subjects_dir=storage_dir+'/subjects',
>;>hcp_path=storage_dir+'/hcp',
>;>;recordings_path=storage_dir+'/hcp meg')
读取扩展结构处理…
读取ras freesurfer变换
组合ras变换和coregistration
提取头部模型
将头部模型coregistring到mne-hcp坐标
提取coregistration



file mapping
----



示例用法:

…代码块::python

>;>;导入hcp
>;>;gt;files=hcp.file_mapping.et_file_path(
>;>subject='123455',data_type='task_motor',output='raw',
>;>hcp_path='/media/storage/hcp')
['/media/storage/hcp/123455/unprocessed/meg/10 motor/4d/c,rfdc',
'/media/storage/hcp/123455/unprocessed/meg/10 motor/4d/config']


为什么不全局文件?因为HCP-MEG数据是固定的,如果预先知道要访问的文件,则所有文件
模式都是已知的,并且通过Amazon Web服务更容易访问。


gotchas
==


特殊性
——mne python期望以米为单位的坐标和neuromag
右前上(ras)坐标。但是,计算轻松执行转换所需的所有转换时缺少必要的信息。

coregistration直接从本地4d传感器映射到freesurfer空间,用头部坐标表示。这有一些可能会让mne python用户感到困惑的小结果。在读取器代码中,您将看到许多标志设置为``convert=false````,等等。
这不是一个错误。

2。所有频道名称和位置都是本机的。地形图绘制可能无法按预期工作。首先,布局文件无法识别。其次,
坐标不会重新定义为本机坐标,最终会旋转并扭曲图形显示。为了解决这个问题,可以使用:func:`hcp.vix.make_hcp_bti_layout`.
计算正确的布局,也可以使用:func:`hcp.preprocessing.map_ch_coords_to_mne`.
执行到mne的转换。
但请注意,在计算
神经病学坐标中的数据时,源定位将出错。事实上,坐标必须保持在原生空间中,以便与HCP输出对齐。


参考通道应该被剔除。签出:函数:`hcp.preprocessing.apply_ref_correction`.

2.trial info结构给出了事件的正确延迟
触发通道中的延迟大约移动了18 ms。
现在我们建议使用函数func:`hcp.read_trial_info`.


3中的事件。mne和fieldtrip中的默认过滤器是不同的。
fieldtrip使用四阶巴特沃斯过滤器。在mne中,可能需要
来调整`*_trans_bandwidth`参数,以避免数值误差。
在hcp输出中,诱发反应在0.5到30hz之间进行滤波,然后
进行基线校正。

4。需要加载和注册批注。HCP联盟发布坏段和坏通道的注释。
必须读取和使用这些注释。检查"hcp.read_annot"并将错误的
频道名称添加到"raw.info['bads']',创建并设置"mne.annotations"
对象作为"raw"的属性,请参见下面的内容。

代码块::python

annots=hcp.read_annot(主题,数据类型,hcp_path=hcp_path,
run_index=run_index)
bad_segments=annots['segments']['all']/raw.info['sfreq']
raw.annotations=mne.annotations(
bad_segments[:,0],(bad_segments[:,1]-bad_segments[:,0]),
说明='bad')

5.与眨眼和心跳有关的ica成分需要从数据中去除。检查
`hcp.rea输出中的ica插槽你不能获取HCP ICA组件。



便利功能
---------

mne python所期望的。

:func:`hcp.make-mne-analyty`将生成一个mne和freesurfer兼容的目录布局,默认情况下将创建以下输出,主要使用合成链接:

…代码块::bash

$subjects_dir/$subject/label/*
$subjects_dir/$subject/mri/*
$subjects_dir/$subject/surf/*
$recordings_path/$subject/$subject-head_mri-trans.fif

作为meg目录,与mne示例保持一致。
这里,`inner_skull.surf`和`$subject-head_mri-trans.fif`由函数编写,以便mne可以使用它们。后者是coregistration矩阵。

python indexing
^^^^^^^^^^^^^^^

组件找到的索引时进行更正。它从文件中读取的索引将通过减去1而映射到
python约定。


contributions
----
-当前`@dengemann'正在频繁地向master推送,如果您计划提交、打开问题和拉取请求,或者直接联系`@dengemann'。欢迎讨论。

gramfort、mainak jas、jona sassenhagen、giorgos michalareas、
eric larson、danilo bzdok和jan mathijs schoffelen进行讨论,
输入并帮助找到将HCP数据映射到跨国公司世界的最佳方法。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java Double。将长位加倍到C#位转换器。ToDouble   java如何使用正则表达式从固定的Y位数中提取最后的X位数?   java如何显示ChatMessage类列表中的字符串消息属性?   java从JSON或XML提要导入数据,并在Android中创建列表   在整数之间使用按位AND运算符的java好处?   java从Android中的Bean类获取空值?   java会话id对另一台服务器意味着什么?   java未选择案例时开关的工作方式   java组织。openqa。硒。SessionNotCreatedException:无法创建新的远程会话。在emulator中初始化安卓驱动程序时   JavaSWT父和子对话框通信   java请确保java_HOME指向JDK而不是JRE   java用户即使在成功登录后也是匿名的   java控制器单元测试无法自动连接所需的bean   Java小程序类文件