ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/doc/SelectionExpression.html
Revision: 2111
Committed: Thu Mar 10 21:51:06 2005 UTC (19 years, 3 months ago) by gezelter
Content type: text/html
File size: 17611 byte(s)
Log Message:
updated some documentation

File Contents

# Content
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <title>Selection syntax for OOPSE utility programs</title>
5 </head>
6 <body style="background-color: white;">
7 <basefont size="3">
8 <div align="center">
9 <p><font size="+2"><b>Selection syntax for OOPSE utility programs</b></font><span
10 style="font-weight: bold;"></span><br>
11 </p>
12 <h2 align="left"><a name="introduction" id="introduction"> Introduction
13 </a></h2>
14 <p style="text-align: left;">The OOPSE utility programs compute
15 properties from the <span
16 style="font-family: monospace; font-weight: bold;">dump</span><span
17 style="font-weight: bold;">
18 </span>files that are generated during a molecular dynamics
19 simulation.&nbsp;
20 These programs are:<br>
21 </p>
22 <ul style="text-align: left;">
23 <li><span style="font-family: monospace; font-weight: bold;">Dump2XYZ</span><span
24 style="font-weight: bold;"> </span>- Converts an OOPSE dump file into
25 a file suitable
26 for viewing in a molecular dynamics viewer like <a
27 href="http://www.jmol.org">Jmol</a><br>
28 </li>
29 <li><span style="font-family: monospace; font-weight: bold;">StaticProps</span><span
30 style="font-weight: bold;"> </span>- Computes static properties like
31 the pair distribution function, <span style="font-style: italic;">g(r)</span>.<br>
32 </li>
33 <li><span style="font-family: monospace; font-weight: bold;">DynamicProps</span><span
34 style="font-weight: bold;"> </span>- Computes time correlation
35 functions like the
36 velocity autocorrelation function, <span style="font-style: italic;">&lt;<span
37 style="font-weight: bold;">v</span>(t)<span style="font-weight: bold;">v</span>(0)&gt;</span>,
38 or the mean square displacement <span style="font-style: italic;">&lt;|<span
39 style="font-weight: bold;">r</span>(t) - <span
40 style="font-weight: bold;">r</span>(0)|<sup>2</sup>&gt;.</span></li>
41 </ul>
42 <div style="text-align: left;">These programs often need to operate on
43 a subset of the data contained within a dump file.&nbsp; For example,
44 if you want only the <span style="font-style: italic;">oxygen-oxygen</span>
45 pair distribution from a water simulation, or if you want to make a
46 movie including only the water molecules within a 6 angstrom radius of
47 lipid head groups, you need a way to specify your selection to these
48 utility programs.&nbsp;&nbsp; OOPSE has a selection syntax which allows
49 you to specify the selection in a compact form in order to generate
50 only the data you want.&nbsp; For example a common use of the
51 StaticProps command would be:<br>
52 <br>
53 <div style="margin-left: 80px;"><span
54 style="font-family: monospace; font-weight: bold;">StaticProps -i
55 tp4.dump --gofr --sele1="select O*" --sele2="select O*"</span><br>
56 </div>
57 <br>
58 This command computes the oxygen-oxygen pair distribution function, <span
59 style="font-style: italic;">g<sub>OO</sub>(r)</span>, from a file
60 named <span style="font-family: monospace;">tp4.dump</span>.&nbsp; In
61 order to understand this selection syntax and to make full use of the
62 selection capabilities of the analysis programs, it is necessary to
63 understand a few of the core concepts that are used to perform
64 simulations.<br>
65 <h2><a name="Concepts"></a>Concepts</h2>
66 OOPSE manipulates both traditional atoms as well as some objects that <span
67 style="font-style: italic;">behave like atoms</span>.&nbsp; These
68 objects can be rigid collections of atoms or atoms which have
69 orientational degrees of freedom.&nbsp; Here is a diagram of the class
70 heirarchy:<br>
71 <span style="font-style: italic;"></span></div>
72 <p align="center"><img src="classoopse_1_1StuntDouble.png" height="136"
73 width="292"><br>
74 </p>
75 <ul style="text-align: left;">
76 <li>A <span style="font-family: monospace; font-weight: bold;">StuntDouble</span>
77 is <span style="font-style: italic;">any</span> object that can be
78 manipulated by the integrators and minimizers.</li>
79 <li>An <span style="font-family: monospace; font-weight: bold;">Atom</span>
80 is a fundamental point-particle that can be moved around during a
81 simulation.</li>
82 <li>A <span style="font-family: monospace; font-weight: bold;">DirectionalAtom</span>
83 is an atom which has <span style="font-style: italic;">orientational</span>
84 as well as translational degrees of freedom.</li>
85 <li>A <span style="font-family: monospace; font-weight: bold;">RigidBody</span>
86 is a collection of <span
87 style="font-family: monospace; font-weight: bold;">Atom</span>s or <span
88 style="font-family: monospace; font-weight: bold;">DirectionalAtom</span>s
89 which behaves as a <span style="font-style: italic;">single unit.</span></li>
90 </ul>
91 <p align="left"> Every Molecule, Atom and DirectionalAtom in OOPSE
92 have their own names which are specified in the <span
93 style="font-family: monospace; font-weight: bold;">.md</span> file. In
94 contrast, RigidBodies are denoted by their membership and index inside
95 a particular molecule: <span style="font-family: monospace;">[MoleculeName]_RB_[index]</span>
96 (the contents inside
97 the brackets depend on the specifics of the simulation). The names of
98 rigid bodies are generated automatically. For
99 example, the name of the first rigid body in a DMPC molecule is
100 DMPC_RB_0.<br>
101 </p>
102 </div>
103 <h2><a name="select"></a>Syntax of the Select Command</h2>
104 The most general form of the select command is: <b>select <i>expression</i>
105 </b>
106 <p>This expression represents an arbitrary set of StuntDoubles (Atoms
107 or
108 RigidBodies) in OOPSE. Expressions are composed of either name
109 expressions, index expression, predefined sets, user-defined
110 expression,
111 comparison operators, within expressions, or logical combinations of
112 the above expression types. Expression can be combined using
113 parentheses
114 and the Boolean operators</p>
115 <p><b><a name="logic"></a> Logical expression. </b> </p>
116 <p>The logical operators allow complex queries to be constructed out of
117 simpler ones using the standard boolean connectives <b>and, or, not</b>.
118 Parentheses can be used to alter the precedence of the operators.
119 </p>
120 <ul>
121 <table bgcolor="#ffffff" border="1" cellpadding="5" width="441">
122 <tbody>
123 <tr bgcolor="#ffccff">
124 <td width="174">
125 <div align="left">logical operator </div>
126 </td>
127 <td width="241">
128 <div align="left">equivalent operator</div>
129 </td>
130 </tr>
131 <tr bgcolor="#ffccff">
132 <td>
133 <div align="left">and</div>
134 </td>
135 <td>
136 <div align="left">"&amp;", "&amp;&amp;" </div>
137 </td>
138 </tr>
139 <tr bgcolor="#ffccff">
140 <td>
141 <div align="left">or</div>
142 </td>
143 <td>
144 <div align="left">"|", "||", "," </div>
145 </td>
146 </tr>
147 <tr bgcolor="#ffccff">
148 <td>
149 <div align="left">not</div>
150 </td>
151 <td>
152 <div align="left">"!"</div>
153 </td>
154 </tr>
155 </tbody>
156 </table>
157 <p>&nbsp;</p>
158 </ul>
159 <p><a name="name"><b> Name expression.
160 </b></a> </p>
161 <ul>
162 <table bgcolor="#ffffcc" border="1" bordercolor="#6b7683" width="886">
163 <tbody>
164 <tr>
165 <td colspan="2">
166 <div align="center">expression</div>
167 </td>
168 <td width="434">
169 <div align="center">description</div>
170 </td>
171 </tr>
172 <tr>
173 <td rowspan="3" width="183">expression without "." </td>
174 <td width="247">
175 <div align="left">select DMPC</div>
176 </td>
177 <td>select all StuntDoubles belonging to all DMPC molecules </td>
178 </tr>
179 <tr>
180 <td>
181 <div align="left">select C*</div>
182 </td>
183 <td>select all atoms which have atom types beginning with C<br>
184 </td>
185 </tr>
186 <tr>
187 <td>
188 <div align="left">select DMPC_RB_*</div>
189 </td>
190 <td>select all RigidBodies in DMPC molecules (only select
191 rigid-bodies, but not
192 include the atoms belong to them)</td>
193 </tr>
194 <tr>
195 <td rowspan="3">expression has one "." </td>
196 <td>select TIP3P.O_TIP3P</td>
197 <td>select the O_TIP3P Atoms belong to TIP3P molecules </td>
198 </tr>
199 <tr>
200 <td>select DMPC_RB_0.PO4</td>
201 <td>select the PO4 Atoms belonging to first RigidBody in each
202 DMPC molecule<br>
203 </td>
204 </tr>
205 <tr>
206 <td>select DMPC.20</td>
207 <td>select the 20th StuntDouble in each DMPC molecule<br>
208 </td>
209 </tr>
210 <tr>
211 <td>expression has two "."</td>
212 <td>select DMPC.DMPC_RB_?.*</td>
213 <td>select all Atoms belonging to all rigid-bodies within all
214 DMPC molecules</td>
215 </tr>
216 </tbody>
217 </table>
218 <p>&nbsp;</p>
219 </ul>
220 <p><a name="index" id="index"><b> Index expression </b></a></p>
221 <ul>
222 <table bgcolor="#ffffff" border="1" cellpadding="5" width="894">
223 <tbody>
224 <tr bgcolor="#ffffcc">
225 <td width="113">select 20 </td>
226 <td width="520">select all of the StuntDoubles belonging to
227 Molecule 20</td>
228 </tr>
229 <tr bgcolor="#ffffcc">
230 <td>select 20 to 30 </td>
231 <td>select all of the StuntDoules belonging to molecules which
232 have global
233 indices between 20 (inclusive) and 30 (exclusive) </td>
234 </tr>
235 </tbody>
236 </table>
237 </ul>
238 <p>&nbsp; </p>
239 <p><a name="predefine" id="predefine"><b> Predefined sets </b></a></p>
240 <ul>
241 <table bgcolor="#ffffff" border="1" cellpadding="5" width="449">
242 <tbody>
243 <tr bgcolor="#ffccff">
244 <td width="91">
245 <div align="left">keyword</div>
246 </td>
247 <td width="332">
248 <div align="left">description</div>
249 </td>
250 </tr>
251 <tr bgcolor="#ffccff">
252 <td>
253 <div align="left">all</div>
254 </td>
255 <td>
256 <div align="left">select all StuntDoubles</div>
257 </td>
258 </tr>
259 <tr bgcolor="#ffccff">
260 <td>
261 <div align="left">none</div>
262 </td>
263 <td>
264 <div align="left">select none of the StuntDoubles </div>
265 </td>
266 </tr>
267 </tbody>
268 </table>
269 </ul>
270 <p>&nbsp;</p>
271 <p><a name="user" id="user"><b> User defined expressions</b></a></p>
272 <p> Users can define arbitrary terms to represent groups of
273 StuntDoubles, and then use the define terms in select
274 commands. The general form for the define command is: <strong>define <em>term
275 expression</em></strong></p>
276 <p> Once defined, the user can specify such terms in boolean
277 expressions </p>
278 <ul>
279 <table bgcolor="#ffffff" border="1" cellpadding="5" width="659">
280 <tbody>
281 <tr bgcolor="#ffffcc">
282 <td>
283 <p>define SSDWATER SSD or SSD1 or SSDRF</p>
284 <p>select SSDWATER </p>
285 </td>
286 </tr>
287 </tbody>
288 </table>
289 </ul>
290 <p><a name="comparison" id="comparison"> <b>Comparison expression.</b></a></p>
291 <p>StuntDoubles can be selected by using comparision operators on
292 their properties. The general form for the comparison command is: a
293 property name, followed by a comparision operator and then a number.</p>
294 <ul>
295 <table bgcolor="#ffffff" border="1" cellpadding="5" width="668">
296 <tbody>
297 <tr bgcolor="#ffccff">
298 <td width="305">
299 <div align="left">property</div>
300 </td>
301 <td width="331">
302 <div align="left">mass, dipole, charge </div>
303 </td>
304 </tr>
305 <tr bgcolor="#ffccff">
306 <td>
307 <div align="left">comparision operator</div>
308 </td>
309 <td>
310 <div align="left">"&gt;", "&lt;", "=", "&gt;=", "&lt;=", "!=" </div>
311 </td>
312 </tr>
313 </tbody>
314 </table>
315 </ul>
316 <ul>
317 <table bgcolor="#ffffff" border="1" cellpadding="5" width="672">
318 <tbody>
319 <tr bgcolor="#ffffcc">
320 <td width="302">select mass &gt; 16.0 and charge &lt; -2 </td>
321 <td width="338">select StuntDoubles which have mass greater
322 than
323 16.0 and charges less than -2 </td>
324 </tr>
325 </tbody>
326 </table>
327 </ul>
328 <p>&nbsp;</p>
329 <p><b> <a name="within"></a> Within expression.</b>
330 </p>
331 <p> The "within" selection allows the user to select all StuntDoubles
332 within the specified
333 distance (in Angstroms) from a selection, including the selected atom
334 itself. The
335 general form for within selection is: <b>select within(<i>distance,
336 expression</i>) </b>
337 </p>
338 <ul>
339 <table bgcolor="#ffffff" border="1" cellpadding="5" width="681">
340 <tbody>
341 <tr bgcolor="#ffffcc">
342 <td width="306">select within(2.5, PO4 or NC4) </td>
343 <td width="343">
344 <blockquote>select all StuntDoubles which are within 2.5
345 angstroms of PO4 or NC4 atoms<br>
346 </blockquote>
347 </td>
348 </tr>
349 </tbody>
350 </table>
351 </ul>
352 <p>
353 </p>
354 <h2><a name="syntax" id="syntax"> Tools which use the selection command
355 </a></h2>
356 <p><b><a name="within"></a> Dump2XYZ</b>
357 </p>
358 <p>Dump2XYZ can transform an OOPSE dump file into a xyz file which
359 could be opened by other molecular viewers, such as Jmol and VMD. </p>
360 <ul>
361 <table bgcolor="#ffffff" border="1" cellpadding="5" width="890">
362 <tbody>
363 <tr bgcolor="#6699ff">
364 <td width="191">
365 <blockquote>
366 <p>--selection</p>
367 </blockquote>
368 </td>
369 <td width="667">Specifying --selection="selection command" with
370 Dump2XYZ, user can select an arbitrary set of stuntdoubles to be
371 converted. </td>
372 </tr>
373 <tr bgcolor="#ccff99">
374 <td>
375 <blockquote>
376 <p>--originsele</p>
377 </blockquote>
378 </td>
379 <td rowspan="2">In order to rotate the system, --originsele and
380 --refselec must be given to define the new coordinate set. A
381 stuntdouble with a dipole, which direction is always (0, 0, 1) in body
382 frame, is specified by --originsele. The new x-z plane is defined by
383 the direction of dipole and the StuntDouble is specified by --refsele. </td>
384 </tr>
385 <tr bgcolor="#ccff99">
386 <td>
387 <blockquote>
388 <p>--refsele</p>
389 </blockquote>
390 </td>
391 </tr>
392 </tbody>
393 </table>
394 </ul>
395 <p>
396 </p>
397 <p><b><a name="within"></a> StaticProps<br>
398 </b></p>
399 StaticProps can compute properties which are averaged over the
400 configurations that are contained within a dump file.&nbsp;&nbsp; The
401 most common example of a static property that can be computed is the
402 pair distribution function between atoms of type A and other atoms of
403 type B, <span style="font-style: italic;">g<sub>AB</sub>(r)</span>.&nbsp;
404 StaticProps can also be used to compute the density distributions of
405 other molecules in a reference frame <span style="font-style: italic;">fixed
406 to the body-fixed reference frame</span> of a selected atom or rigid
407 body.<b><br>
408 </b>
409 <p> </p>
410 <p align="center"><img src="definition.jpg" height="540" width="720"></p>
411 <p align="left">There are five seperate radial distribution functions
412 availiable in OOPSE. Since every radial distrbution function invlove
413 the calculation between a pair, --sele1 and --sele2 must be given.
414 </p>
415 <ul>
416 <table bgcolor="#ffffff" border="1" cellpadding="5" width="890">
417 <tbody>
418 <tr bgcolor="#ccffcc">
419 <td width="191">
420 <blockquote>
421 <p>option</p>
422 </blockquote>
423 </td>
424 <td width="667">
425 <blockquote>
426 <div align="center">description</div>
427 </blockquote>
428 </td>
429 </tr>
430 <tr bgcolor="#ccffcc">
431 <td>
432 <blockquote>
433 <p>--gofr</p>
434 </blockquote>
435 </td>
436 <td>Computes the pair distribution function.</td>
437 </tr>
438 <tr bgcolor="#ccffcc">
439 <td>
440 <blockquote>
441 <p>--r_theta</p>
442 </blockquote>
443 </td>
444 <td>Computes the angle-dependent pair distribution function.
445 The
446 angle is defined by the intermolecular vector r and z-axis of
447 DirectionalAtom A.<br>
448 </td>
449 </tr>
450 <tr bgcolor="#ccffcc">
451 <td>
452 <blockquote>
453 <p>--r_omega</p>
454 </blockquote>
455 </td>
456 <td>Computes an angle-dependent pair distribution function. The
457 angle is defined by the z-axes of the two DirectionalAtoms A and B.<br>
458 </td>
459 </tr>
460 <tr bgcolor="#ccffcc">
461 <td>
462 <blockquote>
463 <p>--theta_omega</p>
464 </blockquote>
465 </td>
466 <td>Calculate the pair distribution of the two angles.</td>
467 </tr>
468 <tr bgcolor="#ccffcc">
469 <td>
470 <blockquote>
471 <p>--gxyz</p>
472 </blockquote>
473 </td>
474 <td>Calculate the density distribution of particles
475 of type B in the body frame of particle A. Therefore, --originsele and
476 --refsele must be given to define A's internal coordinate set. </td>
477 </tr>
478 </tbody>
479 </table>
480 </ul>
481 <p>&nbsp; </p>
482 <p><b><a name="within"></a> DynamicProps<br>
483 <span style="font-weight: bold;"><br>
484 </span></b>DynamicProps computes time correlation functions from the
485 configurations stored in a dump file.&nbsp; Typical examples of time
486 correlation functions are the mean square displacement and the velocity
487 autocorrelation functions. <b><span style="font-weight: bold;"><br>
488 </span> </b></p>
489 <ul>
490 <table bgcolor="#ffffff" border="1" cellpadding="5" width="890">
491 <tbody>
492 <tr bgcolor="#ccffcc">
493 <td width="191">
494 <p align="center">option</p>
495 </td>
496 <td width="667">
497 <blockquote>
498 <div align="center">description</div>
499 </blockquote>
500 </td>
501 </tr>
502 <tr bgcolor="#ccffcc">
503 <td>
504 <p align="center">--rcorr</p>
505 </td>
506 <td>mean square displacement </td>
507 </tr>
508 <tr bgcolor="#ccffcc">
509 <td>
510 <p align="center">--vcorr</p>
511 </td>
512 <td>velocity autocorrelation function</td>
513 </tr>
514 <tr bgcolor="#ccffcc">
515 <td>
516 <p align="center">--dcorr</p>
517 </td>
518 <td>dipole correlation function </td>
519 </tr>
520 </tbody>
521 </table>
522 </ul>
523 <p>
524 </p>
525 </body>
526 </html>

Properties

Name Value
svn:executable *