Entry Selection Language (ESL)

Why an Entry Selection Language?

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 Commands

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

Entry Properties

There are a number of properties that can be used in ESL expressions:

Entry ID

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
Entry 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.

Entry Selection State

This allows the selection of entries based on whether or not they are already selected. The syntax is:

selected
Entry Workspace Inclusion State

This allows the selection of entries based on whether or not they are already included for display in the Workspace. The syntax is:

included
All Entries

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.

Logical Operators

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.

Property Comparisons

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.

Examples

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

Related Topics


Legal Notice

File: pt_select_menu/project_esl.html
Last updated: 20 Jun 2014