nipype 笔记

nipype 笔记

什么是nipype?

  • 功能

    • 提供多种脑影像处理软件的统一接口(SPM, FSL, FreeSurfer, AFNI, ANTS, Camino, MRtrix, MNE, Slicer等)
    • 允许使用任何软件包创建由多个处理步骤组成的工作流
    • 通过并行执行插件来优化计算
  • 组成(主要部分)

    • 接口(interfaces):一个可以调用外部package的模块
    • 工作流(workflow engine):
      • 节点(Node/MapNode):包装(wrap)在工作流中调用的接口
      • 工作流(workflow):连边是数据流的图
    • 执行插件(execution plugins):描述工作流如何执行

接口

运行code的核心部分

帮助函数 xx.help # xx–>命令

  • 解释
  • 输入参数
  • 输出参数

错误提示

节点

  • 以合理的顺序执行多个接口,可以更高效的分析——需要把接口放到节点中。

  • 每个节点执行一个确定的函数,包括:
    1、节点名;
    2、接口类别;
    3、至少一个输入数据;
    4、至少一个输出数据。

  • 设置节点的基本格式

    nodename = Nodetype(interface_function(), name='labelname')
    # nodename --> python环境中,节点的变量名
    # Nodetype --> 创造的节点类型:Node,MapNode,JoinNode【这几个类型有啥区别?】
    # interface_function -->节点执行的具体函数,可以是用户自定义的,也可以是接口调用的
    # labelname --> 工作流环境中,节点的标签名
    
  • 示例

    from nipype.interfaces.fsl import BET
    # Import BET from the FSL interface 
    from nipype import Node
    # Import the Node module
    
    bet = Node(BET(frac=0.3), name='bet_node') 
    # Create Node --> bet是节点名,Node是节点类型,BET是调用的接口函数,name是工作流中的标签名
    
    bet.inputs.in_file = '/data/ds000114/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz'
    bet.inputs.out_file = '/output/node_T1w_bet.nii.gz'
    # Specify node inputs --> 定义输入数据和输出文件名
    
    res = bet.run()
    # 运行并输出结果
    

工作流

  • 每一个节点按一定的顺序联系起来(上一个节点的输出作为下一个节点的输入)形成工作流。

  • 安排串行和并行,根据每个节点(嵌入了接口)的输入和输出,决定哪些节点是串行的哪些是并行的。

  • 对数据进行修改时,不涉及修改的部分会直接输出上个run的结果,可以节省计算时间

  • workflow中可以嵌入sub-workflow

  • 示例:创建一个simple workflow

    from nipype import Node, Workflow
    from nipype.interfaces import fsl
    # Import Node and Workflow object and FSL interface
    from os.path import abspath
    
    in_file = abspath("/data/ds000114/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz")
    # 此处使用绝对路径,与工作流base文件夹路径设置有关 For reasons that will later become clear, it's important to 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值