ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/doc/SelectionExpression.html
Revision: 2114
Committed: Thu Mar 10 23:56:42 2005 UTC (19 years, 4 months ago) by tim
Content type: text/html
File size: 18129 byte(s)
Log Message:
adding exclude pairs for rigidbody and cutoff group

File Contents

# User Rev Content
1 tim 2114 <!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, 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 *