Entry Selection Language (ESL) |
The Entry Selection Language (ESL) is used for selecting entries in a Maestro project based on the properties of those entries. ESL expressions can be of arbitrary complexity and involve the use of parentheses and logical operators.
Entry selection can be done with commands in the Command Input Area of the main window. The three selection commands are:
entryselectonly ESL-expression entryselect ESL-expression entryunselect ESL-expression
There are a number of properties that can be used in ESL expressions:
The entry ID is the unique identifier for the entry, and is an integer assigned by Maestro. The syntax is
{id|entry|entry_id} name
The name of the entry is not unique. The syntax for matching by name is
{name|entry_name} name {name_re|entry_re|entry_name_re} name_expression
For the _re
expressions, wildcard characters can be used:
"*" matches any number of characters, "?" matches any single
character, "#" matches any single digit. For the entry
expression
only the literal name matches.
This allows the selection of entries based on whether or not they are already selected. The syntax is:
selected
This allows the selection of entries based on whether or not they are already included for display in the Workspace. The syntax is:
included
This is a quick way to select all entries. The syntax is:
all
Property names can be all upper case or all lower case, but not mixed case.
The following logical operators are supported (in order of decreasing priority)
not and or
At equal levels of priority expressions are evaluated from left to right. Parentheses can be used to override the default order of priority.
ESL expressions may also contain comparisons involving entry properties. Properties may be defined by their data names or their user names. The data names are the names that appear in Maestro files. The user names are the names that appear in the heading row of the Project Table. User names are specified as
user(propertyname)
For example, the "volume" property is specified as
user(volume)
The following names
user(#stars) i_qp_#stars
are equivalent names for properties.
For properties of type integer and real the following comparison operators are supported:
== != < > <= >=
For boolean properties the name of the property can be specified and will match any entries where that property is true. It is also possible to use:
== !=
in explicit comparisons with the values true
and
false
.
Comparisons involving string properties have the form:
property_name string_literal
for a match of the property name with the string literal. For example:
s_m_string_prop left user(string prop) left*
String literals may include the "*", "?" and "#" wildcard characters available for entry names as described above.
Some examples of ESL expressions are:
entry anentry entry_re ligand* entry_re ligprep and selected (entry_re lig# and selected ) and not included user(volume) < 100.0 and selected included and user(#stars) == 2 and user(#amine) == 0 user(log s) > 0.5 and user(log S) < 1.0
A few examples of the use of ESL to select entries are provided here.
To select only converged, low energy structures:
entryselectonly user(Minimization Converged-OPLS2005) and user(Relative Potential Energy-OPLS2005) <= 5
To select only those compounds with QikProp properties that obey the "rule of five":
entryselectonly user(donorHB) < 5 and user(mol MW) < 500 and user(QPlogPo/w) < 5 and user(hb accptHB) < 10
|