R用户的拖拉机R

TractoR包含一组R包,以及一个脚本系统,该系统为非用户R和只希望执行“标准”任务的用户提供对底层代码的访问。本页介绍TractoR的一般设置,以及如何将其用作处理磁共振图像的通用库。它还描述了shell和R之间的接口是如何工作的,以及如何编写自己的实验脚本以用于拖拉机shell程序。

一般设置

这个拖拉机底座该软件包是TractoR软件包中用途最广的软件包,也是目前唯一一个CRAN上它提供了读取、写入和操作MR图像的功能,以及其他软件包使用的各种通用功能。

基本包中的关键类是MriImage公司,它是表示MR图像的引用类,包括源文件、图像尺寸等元数据。提供了从Analyze/NIfTI文件读取此类图像的函数(读取图像文件),来自DICOM文件(readDicom目录); 以及从其他MriImage公司通过阈值或遮罩等操作创建对象(请参见?asMri图像). 该类继承自序列化对象是基引用类的一个简单扩展,它添加了一个将对象字段序列化到列表的方法。如果只需要图像数据值的基础数组,则可以从MriImage公司对象,比如形象,使用

图像$getData()

结果是一个具有适当维度的标准数字数组。组通用函数数学,操作总结为定义MriImage公司类(尽管总结group-generic当前仅适用于单个图像参数,因此最大值(图像1、图像2)行不通)。标准的数组元素提取和替换也可以工作,提取返回一个数组,替换一个新的Mri图像对象(?MriImage公司详细信息)。

拖拉机R使用报告人消息报告包,优先于标准R功能消息,警告停止。此系统提供了一些有用的功能和调试优势,这些功能和优势在帮助页面中详细介绍报告。当直接从命令行使用TractoR时(请参阅下一节),R级警告和错误将转换为报告()电话。

请参阅完整文档(pdf)获取有关这些主题的更多信息。

这个牵引.reg软件包涉及到图像配准,与FSL-FLIRT(通过其命令行接口)和RNiftyReg公司R包。这个牵引车段包创建和维护会话目录,并包括与FSL公司卡米诺软件包。这个拖拉机履带包实现TractoR使用的轨迹算法(C)。这个拖拉机.nt包提供了概率邻域追踪. The拖拉机.utils包的存在主要是为了支持命令行界面(见下文)。目前,这四个以上的专业包都没有记录在R级,即按功能。

从命令行到R

这个拖拉机shell脚本是一个方便的界面,用于使用TractoR包执行常见任务。它基于一组R脚本文件,每个任务一个,每个脚本文件包含一个运行实验()功能。慰问脚本是一个罕见的例外。)shell脚本反过来调用一个二进制程序,该程序使用R的API来提供常规前端的替代R(右)程序。它加载拖拉机.utils包并调用引导实验()函数设置所需的环境并执行运行实验()函数用于请求的脚本。shell脚本还便于在命令行和R之间传递信息、报告错误和警告以及维护命令历史记录。

有关使用和功能的更多信息拖拉机shell脚本可以在其手册页中找到(类型载人拖拉机假设MANPATH设置正确).

编写您自己的TractoR脚本

下面通过示例显示了一个相当简单的TractoR脚本。这实际上是脚本调用意思是,它平均遮罩图像非零区域内某些度量的值。它展示了这些脚本的许多共同特征。为了便于参考,这里对行进行了编号,但在实际脚本中不应包括这些行。

#@args公制图像,[掩码图像]#@desc计算大脑体积非零区域内度量的平均值或加权平均值。指定的遮罩图像可以用作二进制遮罩(默认)或一组权重(使用AveragingMode:weighted)。在后一种情况下,忽略给定的任何权重阈值。如果缺少遮罩,则公制图像本身就是遮罩。运行实验<-function(){requireArguments(“公制图像”)metricImage<-readImageFile(参数[1])if(nArguments()>1)maskImage<-readImageFile(参数[2])其他的maskImage<-metricImage$copy()mode<-getConfigVariable(“平均模式”,“二进制”,validValues=c(“二进制”、“加权”))阈值<-getConfigVariable(“ThresholdLevel”,0.01)thresholdMode<-getConfigVariable(“ThresholdRelativeTo”,“nothing”,validValues=c(“nothing”,“maximum”,“minimum”))if(阈值模式==“最大”)阈值<-阈值*最大值(maskImage,na.rm=真)否则如果(thresholdMode==“最小值”)阈值<-阈值*min(maskImage,na.rm=TRUE)if(模式==“二进制”)maskImage$threshold(阈值)$binarise()metric<-sum(metricImage*maskImage,na.rm=TRUE)/sumcat(粘贴(公制,“\n”,sep=“”)}

脚本文件中唯一必需的部分是运行实验()函数,没有参数,如第4行所示。构成脚本功能体的R代码必须专用于此功能。不会运行其他功能。此外,除了加载所需包的语句外,不应将R代码放置在运行实验()功能。呼叫库()要求()适用于除拖拉机.utils,实用程序,绘图,gr设备统计数据应该以这种方式包括在内。

脚本可以使用任意数量的未命名参数和/或命名配置参数。未命名的参数被放入字符向量参数(请参阅上面的第7行和第10行),如果需要,必须强制为数字或其他模式。这个n参数()函数返回用户传递的参数数(请参阅第9行),其中新参数被视为在任何空白之后开始。这个必需参数()函数可用于列出强制参数的名称,如果用户传递的参数太少,则会产生错误(第6行)。使用获取配置变量()函数,它将参数的名称作为其第一个参数(按照惯例,这些参数总是以大写字母开头),将默认值作为第二个参数,还可以选择变量的预期存储模式(即“字符”、“整数”等)。返回的值将是此模式,如果无法将给定的值强制为指定模式,则会产生错误。同样有效值如果参数只能采用特定的值(如第14和16行),则可以提供参数。脚本作者应调用获取配置变量()具有errorIfMissing=真如果参数是必需的。

TractoR脚本是自文档化的,并且使用了一些特殊注释来提供此文档。这个#@参数comment指定脚本接受的未命名参数,可选参数放在方括号中(第1行),行开始#@描述描述脚本的功能(第2行)。请注意,应该只有一行参数,但可以有多行描述。如果脚本只是信息性的,不需要包含在历史日志文件中,那么应该包含一行

#@无历史记录为真

因此拖拉机shell脚本将正确处理它。shell脚本还将查找对获取配置变量(),以便它可以报告脚本支持的命名参数。