一、fmriprep介绍

fMRIPrep is a BIDS App that employs a standardized pre-processing pipeline on BIDS-compliant fMRI data. This pipeline utilizes the leading tools from different fMRI software packages (AFNI, FSL, ANTs, Freesurfer, nipype) to perform specific steps during the pre-processing. Rather than being limited to an individual package, fMRIPrep will leverage the best software tool for each pre-processing step, such as ANTs for normalization, FreeSurfer for surface reconstruction, and so on. In addition, users can easily access the workflows to determine how their data is pre-processed, thus providing better transparency and reproducibility.
对应缺点:
Limitations and reasons not to use fMRIPrep:
1.Very narrow FoV images oftentimes do not contain enough information for standard image registration methods to work correctly. Also, problems may arise when extracting the brain from these data. fMRIPrep supports pre-aligned BOLD series, and accepting pre-computed derivatives such as brain masks is a target of future effort.
2.fMRIPrep may also underperform for particular populations (e.g., infants) and non-human brains, although appropriate templates can be provided to overcome the issue.
3.The “EPInorm” approach is currently not supported, although we plan to implement this feature (see #620).
4.If you really want unlimited flexibility (which is obviously a double-edged sword).
5.If you want students to suffer through implementing each step for didactic purposes, or to learn shell-scripting or Python along the way.
6.If you are trying to reproduce some in-house lab pipeline.
(摘自fmriprep官网描述)


二、环境要求

1.电脑版本是win10专业版,教育版之类也可以,家庭版不可以!(docker要求)
2.conda + python3.8(个人感觉3以上就可以吧)

三、docker安装和配置fmriprep

1.docker安装

参考链接:
b站详细fmriprep_tutorial,强烈推荐,本文大多参考该视频
菜鸟教程安装
另一个安装博客
注意1:刚安装好记得更新Linux内核(WSL2),按提示就行;安装完成要设置环境变量

一方面安装成功会看到对应电脑对应任务栏或者右下角隐藏栏也会出现小海豚,安装不成功就是红色小海豚。也可以命令行进行安装成功测试:

docker run --rm hello-world

注意2:docker内存有限制,若有必要记得更改默认位置,参考链接:
docker内存配置
小插曲:由于我的电脑比较low,我在设置内存出现了报错内存不够,重新打开docker再减小内存就可以,尽量分配的越多越好。
Q:docker默认安装在c盘,这个有办法改吗?这个更改配置貌似就是把image之类的转移到了其他地方。有知道的可以给俺说一下,阿里嘎多!

2.配置fmriprep

命令行输入:

docker pull nipreps/fmriprep

该命令自动拉取最新的fmriprep,请注意更新版本。

3.fmriprep调用

调用方式:
1)直接在docker运行,需要输入多余的参数(不推荐)
2)下载脚本(注意保证你能使用pip)并添加到环境变量方便以后直接使用fmriprep-docker调用。命令行输入:

pip install --user --upgrade fmriprep-docker

命令行输入以下代码测试:

fmriprep-docker

四、准备BIDS数据集

1.BIDS介绍

BIDS全称是Brain Imaging Data Structure,它是一种统一的脑影像数据存储规范,利于数据共享;目前有许多优秀的神经影像app支持bids格式,称之为BIDS-app,fmriprep就是一种。
知乎介绍
一个BIDS数据集格式的example

其他参考资料:
对应官网链接
github参考
BIDS Validator,可检验格式的合理性

2.创建数据集

创建BIDS格式的数据集一共需要5步:
1)DICOM files to NIfTI
使用dcn2niix来做(win务必建议如下命令):

dcm2niix conda install -c conda-forge dcm2niix

小碎念:这步我搞了好久,卡了半天,明明安装成功,但是在后续操作我一直报如下错误,然后我试着已经添加环境变量依旧报错,后尝试在powershell中运行.\dcm2niix等各种方法依旧不行,然后我将dcm2niix.exe安装到我自己的Anaconda\Scripts就可以了,不知道为什么;后续询问b站up说可以试着尝试使用下面这个命令:

pip install dcm2niix

然后安装:

pip install dcm2bids --user

然后手动修改bug
先找到自己的dcm2bids的安装路径,上面这个命令就可以直接看到了,如果没有就再输入一遍。修改如图的utils.py文件,在第二幅图的位置加上/,原来的是没有/的:

2)存储文件
结构:被试-Session-模态-文件,参考:
dcm2bids的主页
(1)创建一个新文件夹
(2)三个主要命令:

dcm2bids_helper -d
dcm2bids_scaffold -o
dcm2bids -d <原始的DICOM文件夹路径>  -p 01 -c D:\demo\BIDS_config.json -o <指定输出路径>  --forceDcm2niix

说明:
“-d”, “–dicom_dir”:原始DICOM文件路径
“-s”, “–session”
“-c”, “–config”:需要自己编写的配置文件(重要,后面单独再说)
“-o”, “–output_dir”:指定输出路径
–forceDcm2niix 强制后缀
(3)命令说明
dcm2bids_helper -d:获得一个帮助文件,通过该文件才能知道如何去编写config文件

dcm2bids_helper -d <原始DICOM数据路径>

运行成功后会显示帮助文件路径;


我们主要通过json文件编写config文件;通过原始的dicom数据中包含的键值对筛选出我们想要的dicom数据并将这些数据转化成DIffTI格式,并且正确的重命名到bisd格式下。

更多编写config资料参考:
bids官网
Andy’s Brain Book
dcm2bids_scaffold -o:创建一个bids的目录结构(这些文件必须正常存在才能运行fmriprep),如下图。后续需要根据自己的数据集进行修改文件内容:

dcm2bids_scaffold -o <指定路径>


文件夹含义及修改参考官方链接:
文件解释和内容修改
第三条dcm2bids命令运行效果:

3)添加描述文件
其余文件的描述
4)手动添加必要东西
如下图所示:
(1)sourcedata是用来放原始的dicom数据的;
(2)code用来放一些自己编写的批处理文件等;
(3)sub-01是dcm2bids生成的bids格式被试;
(4)derivatives用来存放最后运行fmriprep预处理的生成文件;
(5)其他描述文件参考3)
参考知乎:
补充

5)检验合理性
BIDS Validator

五、预处理

有两种方式:一种是在docker里面运行,不过相对繁琐,不推荐;我们介绍利用fmriprep-docker进行处理。
其中需要用到freesurfer的证书:

证书获取
人机验证不能显示的解决办法



–use-plugin: nipype plugin configuration file

–bids-database-dir: Path to an existing PyBIDS database folder, for faster indexing (especially useful for large datasets).

–patch: local repository to use within container

–output-spaces : 的命令行界面允许将预处理后的数据重新采样到其他输出空间。这是使用 --output-spaces 参数实现的,其中可以插入标准和非标准空间。fMRIPrep 会将输出空间的数量减少到仅在 --output-spaces 中列出的空间,即使其他选项需要将预处理数据重新采样到中介空间。TemplateFlow 是一个软件库和神经影像模板库,允许 fMRIPrep 等最终用户应用程序灵活地查询和提取模板和图谱信息。换句话说,TemplateFlow 使 fMRIPrep 能够访问范围广泛的模板。默认情况下,fMRIPrep 使用 MNI152Nlin2009cAsym 作为空间标准化参考。
However, many users will be interested in utilizing a coarse gridding (typically 2mm isotropic) of the target template. Such a behavior can be achieved applying modifiers to the template identifier, separated by a : character. For instance, --output-spaces MNI152NLin6Asym:res-2 MNI152NLin2009cAsym will generate preprocessed BOLD 4D files on two standard spaces (MNI152NLin6Asym, and MNI152NLin2009cAsym) with the template’s 2mm isotropic resolution for the data on MNI152NLin6Asym space and the original BOLD resolution (say, e.g., 2x2x2.5 [mm]) for the case of MNI152NLin2009cAsym. This is equivalent to saying --output-spaces MNI152NLin6Asym:res-2 MNI152NLin2009cAsym:res-native.
注意:Please remember that the resolution entity of TemplateFlow is an index, and therefore, res-2 does not necessarily mean 2mm3
如果是自定义模板,并且可以通过 --output-spaces 参数使用,请将您的模板存储在 TemplateFlow 的主目录下。默认的 TemplateFlow 的主目录是 $HOME/.cache/templateflow 并且可以通过设置 $TEMPLATEFLOW_HOME 环境变量来任意更改路径。一个名为 MyCustom(因此可通过例如 --output-spaces MyCustom 调用)
报错参考

总结

刚开始学,自己基础也不好,而且不fan qiang找到的资料太少了,花了好几天时间才搞好,特此记录以防后续需要,也是自己的第一篇博客,如果对大家有帮助就更好啦!特别感谢宝藏up主biubiuqu,大家可以看他的视频,本文章好多借鉴本视频。后续希望自己可以继续坚持!

实现在win10上安装fmriprep相关推荐

  1. 【AI】在win10上安装TensorFlow2,安装成功,但是import tensorflow时报错:pywrap_tensorflow.py“, line 58

    目录 一.问题描述 二.原因分析 三.处理过程 四.解决方法 五.安装2.1和2.0命令的不同点 1.TensorFlow2.0 2.TensorFlow2.1 六.使用TenforFlow2.0-G ...

  2. deepin tim(wine)无法安装_利用HyperV虚拟机,如何在Win10上安装Deepin国产操作系统?深度好文!...

    随着老美对华为手机业务的封锁,在PC端的操作系统的未来也逐渐引起了人们的重视,一旦Windows停止向国内供应的话,对国内市场的冲击也是不小的.基于这个原因,国产操作系统也越来越频繁地进入大家的视野. ...

  3. 服务器系统安装优盘启动工具,u盘启动大师在Win10上安装和卸载远程服务器管理工具的方法...

    我们在win10系统中不能随意的更改远程服务器的角色和功能.但是如果安装了远程服务器管理工具,就可以实现这个目的了.那么我们都要怎么如何安装和卸载远程服务器管理工具呢?今天小编就来教大家安装和卸载远程 ...

  4. 在win10上安装Anaconda并运行python程序

    文章目录 前言 1 下载&安装 1.1 下载 1.2 安装 1.3 如何安装anaconda之前版本? 1.4 anaconda太大了,还可以安装miniconda 1.5 如果出现 &quo ...

  5. win10 上安装 pytorch + cuda

    PyTorch 学习: 第1天: win10 上安装 pytorch + cuda 2022-09-15 by Zhang https://pytorch.org/tutorials/ 关于 PyTo ...

  6. 软件在win10上安装,请问如何解决被Windows Defender SmartScreen阻止

    我们公司研发的软件,在win10上安装,会提示Windows Defender SmartScreen 已阻止启动一个未识别的应用.运行此应用可能会导致你的电脑存在安全风险.请问是因为软件没有签名的原 ...

  7. Thinkpad E14 Win10上安装Ubuntu双系统安装

    Thinkpad E14 Win10上安装Ubuntu双系统安装 近期由于学习科研需要,给带有Win10的ThinkPad笔记本安装了Ubuntu双系统,其中遇到了一些问题,记录一下.以备不时之需. ...

  8. Win10上安装Oracle VM Virtual Box虚拟软件

    现在即将要步入Oracle的学习中了,仅以此来记录我的学习过程,对自己一个交代. 我是以基于Oracle10G的这个版本(这是Oracle比较经典的一个版本)来学习的,这里我只介绍Oracle第一部分 ...

  9. 如何在win10上安装ubuntu虚拟机-图文详细教程

    前言(和我一样的小白快来看看~) 本文将在win10上安装ubuntu虚拟机的步骤一步步记录了下来~希望对大家有帮助 方法大概是先装一个虚拟化软件(virtualbox),然后在这个软件上新增一台虚拟 ...

最新文章

  1. Java Servlet 技术简介
  2. 巧用qmake工具生成专业的makefile
  3. java程序编六角星_跨平台移动端解决方案—Weex
  4. BLOB数据类型、事务
  5. spring mvc 工作流程
  6. IndentationError: expected an indented block --python报错 or IndentationError:unexpected indent
  7. hex文件matlab处理,基于MATLAB生成Intel HEX文件
  8. 洛谷 P1074 靶形数独 Label:search 不会
  9. 华为效仿苹果卖高价手机?滴滴顺风车开放灰度测试;苹果官微被投诉“攻陷”| 极客头条...
  10. java生成图表_java实现将数据生成图表至excel导出
  11. Spring学习—Spring中定时器实现
  12. ad7606中文资料_AD7606-6 pdf,AD7606-6中文资料,AD7606-6应用电路-华秋商城
  13. TalkingData的使用,iOS数据统计
  14. Bugku之网站被黑
  15. 360点睛销售开放平台-身份认证-java版
  16. CImage类之GetBits、GetPixel、GetPitch、GetBPP应用
  17. python主机配置_python 之根据自己的需求配置hostname
  18. 【微信小程序】云开发篇(一)——申请小程序
  19. cv2.VideoWriter()
  20. 江苏2020高中计算机学业水平,2020江苏高中学业水平测试时间安排表

热门文章

  1. 51nod 1009 数字1的数量(数学)
  2. MYSQL 常用语法学习汇总
  3. WinDBG详解进程初始化dll是如何加载的
  4. 机器学习——二分类、多分类的精确率和召回率
  5. h5前端调用android拍照功能,H5调用Android拍照和摄像以及选取相册
  6. keda.#P1097. 不要62
  7. PTA 超市贴花 Java代码
  8. python文件夹自动备份_python实现定时自动备份文件到其他主机的实例代码
  9. labview编程笔记之条件结构
  10. [ZCMU OJ]5252: 英雄卡/5253: 排队接水/5254: 颜色叠加/5255: 勤劳的老杨/5256: 秘密大厦的访客