-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathcmtk.call.html
198 lines (173 loc) · 13.1 KB
/
cmtk.call.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Utility function to create and run calls to CMTK command line tools — cmtk.call • nat</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png"><!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><!-- Bootstrap --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous"><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../bootstrap-toc.css"><script src="../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../pkgdown.css" rel="stylesheet"><script src="../pkgdown.js"></script><meta property="og:title" content="Utility function to create and run calls to CMTK command line tools — cmtk.call"><meta property="og:description" content="cmtk.call processes arguments into a form compatible with
CMTK command line tools.
cmtk.system2 actually calls a cmtk tool using a call list
produced by cmtk.call"><meta property="og:image" content="/logo.svg"><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body data-spy="scroll" data-target="#toc">
<div class="container template-reference-topic">
<header><div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">nat</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="">1.10.4</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav"><li>
<a href="../index.html">
<span class="fa fa-home fa-lg"></span>
</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
Articles
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu"><li>
<a href="../articles/neurons-intro.html">Introduction to neurons and neuronlists</a>
</li>
<li>
<a href="../articles/neurons-as-graph.html">Working with individual neurons as graph structures</a>
</li>
<li>
<a href="../articles/plotly.html">3D graphics</a>
</li>
<li>
<a href="../articles/NeuroGeometry.html">NeuroGeometry: Analysing 3D morphology of neurons</a>
</li>
</ul></li>
<li>
<a href="../articles/Installation.html">Installation</a>
</li>
<li>
<a href="../index.html#learn">Learn</a>
</li>
<li>
<a href="../index.html#help">Help</a>
</li>
<li>
<a href="../news/index.html">Changelog</a>
</li>
</ul><ul class="nav navbar-nav navbar-right"><li>
<a href="https://natverse.github.io" class="external-link">natverse</a>
</li>
<li>
<a href="https://github.com/natverse/nat" class="external-link">
<span class="fa fa-github fa-lg"></span>
</a>
</li>
</ul></div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header><div class="row">
<div class="col-md-9 contents">
<div class="page-header">
<h1>Utility function to create and run calls to CMTK command line tools</h1>
<small class="dont-index">Source: <a href="https://github.com/natverse/nat/blob/HEAD/R/cmtk.R" class="external-link"><code>R/cmtk.R</code></a></small>
<div class="hidden name"><code>cmtk.call.Rd</code></div>
</div>
<div class="ref-description">
<p><code>cmtk.call</code> processes arguments into a form compatible with
CMTK command line tools.</p>
<p><code>cmtk.system2</code> actually calls a cmtk tool using a call list
produced by <code>cmtk.call</code></p>
</div>
<div id="ref-usage">
<div class="sourceCode"><pre class="sourceCode r"><code><span class="fu">cmtk.call</span><span class="op">(</span>
<span class="va">tool</span>,
PROCESSED.ARGS <span class="op">=</span> <span class="cn">NULL</span>,
<span class="va">...</span>,
FINAL.ARGS <span class="op">=</span> <span class="cn">NULL</span>,
RETURN.TYPE <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"string"</span>, <span class="st">"list"</span><span class="op">)</span>
<span class="op">)</span>
<span class="fu">cmtk.system2</span><span class="op">(</span><span class="va">cmtkcall</span>, moreargs <span class="op">=</span> <span class="cn">NULL</span>, <span class="va">...</span><span class="op">)</span></code></pre></div>
</div>
<div id="arguments">
<h2>Arguments</h2>
<dl><dt>tool</dt>
<dd><p>Name of the CMTK tool</p></dd>
<dt>PROCESSED.ARGS</dt>
<dd><p>Character vector of arguments that have already been
processed by the callee. Placed immediately after cmtk tool.</p></dd>
<dt>...</dt>
<dd><p>Additional named arguments to be processed by (<code>cmtk.call</code>,
see details) or passed to <code>system2</code> (<code>cmtk.system2</code>).</p></dd>
<dt>FINAL.ARGS</dt>
<dd><p>Character vector of arguments that have already been
processed by the callee. Placed at the end of the call after optional
arguments.</p></dd>
<dt>RETURN.TYPE</dt>
<dd><p>Sets return type to a character string or list (the latter
is suitable for use with <code><a href="https://rdrr.io/r/base/system2.html" class="external-link">system2</a></code>)</p></dd>
<dt>cmtkcall</dt>
<dd><p>A list containing processed arguments prepared by
<code>cmtk.call(RETURN.TYPE="list")</code></p></dd>
<dt>moreargs</dt>
<dd><p>Additional arguments to add to the processed call</p></dd>
</dl></div>
<div id="value">
<h2>Value</h2>
<p><em>Either</em> a string of the form <code>"<tool> <PROCESSED.ARGS>
<...> <FINAL.ARGS>"</code><em>or</em> a list containing elements</p><ul><li><p>command A character vector of length 1 indicating the full path to
the CMTK tool, shell quoted for protection.</p></li>
<li><p>args A character vector of arguments of length 0 or greater.</p></li>
</ul><p>See the help of <code><a href="https://rdrr.io/r/base/system2.html" class="external-link">system2</a></code> for details.</p>
</div>
<div id="details">
<h2>Details</h2>
<p><code>cmtk.call</code> processes arguments in ... as follows:</p>
<p></p><ul><li><p>argument names will be converted from <code>arg.name</code> to
<code>--arg-name</code></p></li>
<li><p>logical vectors (which must be of length 1) will be passed on as
<code>--arg-name</code></p></li>
<li><p>character vectors (which must be of length 1) will be passed on as
<code>--arg-name arg</code> i.e. quoting is left up to callee.</p></li>
<li><p>numeric vectors will be collapsed with commas if of length greater
than 1 and then passed on unquoted e.g. <code>target.offset=c(1,2,3)</code> will
result in <code>--target-offset 1,2,3</code></p></li>
</ul></div>
<div id="see-also">
<h2>See also</h2>
<div class="dont-index"><p><code><a href="cmtk.bindir.html">cmtk.bindir</a></code></p></div>
</div>
<div id="ref-examples">
<h2>Examples</h2>
<div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span class="kw">if</span> <span class="op">(</span><span class="cn">FALSE</span><span class="op">)</span> <span class="op">{</span></span>
<span class="r-in"><span class="fu">cmtk.call</span><span class="op">(</span><span class="st">"reformatx"</span>,<span class="st">'--outfile=out.nrrd'</span>, floating<span class="op">=</span><span class="st">'floating.nrrd'</span>,</span>
<span class="r-in"> mask<span class="op">=</span><span class="cn">TRUE</span>, target.offset<span class="op">=</span><span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">1</span>,<span class="fl">2</span>,<span class="fl">3</span><span class="op">)</span>, FINAL.ARGS<span class="op">=</span><span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">'target.nrrd'</span>,<span class="st">'reg.list'</span><span class="op">)</span><span class="op">)</span></span>
<span class="r-in"><span class="co"># get help for a cmtk tool</span></span>
<span class="r-in"><span class="fu"><a href="https://rdrr.io/r/base/system.html" class="external-link">system</a></span><span class="op">(</span><span class="fu">cmtk.call</span><span class="op">(</span><span class="st">'reformatx'</span>, help<span class="op">=</span><span class="cn">TRUE</span><span class="op">)</span><span class="op">)</span></span>
<span class="r-in"><span class="op">}</span></span>
<span class="r-in"><span class="kw">if</span> <span class="op">(</span><span class="cn">FALSE</span><span class="op">)</span> <span class="op">{</span></span>
<span class="r-in"><span class="fu">cmtk.system2</span><span class="op">(</span><span class="fu">cmtk.call</span><span class="op">(</span><span class="st">'mat2dof'</span>, help<span class="op">=</span><span class="cn">TRUE</span>, RETURN.TYPE<span class="op">=</span><span class="st">"list"</span><span class="op">)</span><span class="op">)</span></span>
<span class="r-in"><span class="co"># capture response into an R variable</span></span>
<span class="r-in"><span class="va">helptext</span><span class="op">=</span><span class="fu">cmtk.system2</span><span class="op">(</span><span class="fu">cmtk.call</span><span class="op">(</span><span class="st">'mat2dof'</span>, help<span class="op">=</span><span class="cn">TRUE</span>, RETURN.TYPE<span class="op">=</span><span class="st">"list"</span><span class="op">)</span>,</span>
<span class="r-in"> stdout<span class="op">=</span><span class="cn">TRUE</span><span class="op">)</span></span>
<span class="r-in"><span class="op">}</span></span>
</code></pre></div>
</div>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
<nav id="toc" data-toggle="toc" class="sticky-top"><h2 data-toc-skip>Contents</h2>
</nav></div>
</div>
<footer><div class="copyright">
<p></p><p>Developed by Gregory Jefferis, James Manton, Sridhar Jagannathan.</p>
</div>
<div class="pkgdown">
<p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.1.</p>
</div>
</footer></div>
</body></html>