Example Commands¶
This section has a series of example BROOD command-line executions. Most BROOD runs are carried out using vBROOD. Each example is followed by a brief description of its behavior.
If you would like to execute the following examples as written,
the appropriate paths to the executable file and the database file must be
included. In addition, the file amide.smi
will need to be in the
working directory. This can be accomplished with the following command:
prompt> echo "*C(=O)NC*" >> amide.smi
This file can now be used as the query for each case below.
prompt> brood -param 4dfr.param
This execution of BROOD will read all the command-line arguments from the file
4dfr.param
. Every time BROOD is executed, a param file is generated
that can be used to exactly reproduce the run (vida infra). This option is
most useful when the job is set up in vBROOD and the query and param file are
written out for later execution. Using the command detailed here with a query
and param file from vBROOD will give the same results as running the search
from within vBROOD.
prompt> brood -param 4dfr.param -ringOnly false
This example illustrates two points; that command-line arguments take
precedence over arguments in the .param
file, and that the
-ringOnly
flag is an important flag in altering BROOD results. This
command line will execute BROOD with the parameters from “4dfr.param
”,
but the -ringOnly
parameter will be overridden (taking precedence)
over the -ringOnly
parameter that is specified in 4dfr.param
.
A similar outcome could be achieved by editing 4drf.param
in a text
editor, but this command-line alteration is a more direct means to the same
behavior.
By default, BROOD only returns fragments that have at least two ring atoms on
the shortest path between attachment points, or at least three ring atoms total
if there is only one attachment point. This example shows that a user can turn
off this constraint using the -ringOnly
flag. If one wants to
generate results that only avoid the rings as described above, one can pass
None to the -ringOnly
parameter.
prompt> brood -queryMol brood.query_1.oeb -db pubchemDB -quickLook
This execution will use the query in brood.query_1.oeb
to search the
fragments in the database pubchemDB
. The use of the
-quickLook
parameter will limit the search to approximately 2
minutes. The parameter is a great way to get a quick notion of interesting
results. The default databases are organized to allow rapid identification of
some interesting results. The full search can take minutes to hours, and is
often more appropriate when designing molecules that may take days or weeks to
synthesize, nevertheless, in an iterative design session, it can be useful to
quickly generate ideas using the -quickLook
parameter.
prompt> brood -queryMol brood.query_1.oeb -db pubchemDB -cpddb myCorporateCollection.smi
This example points out the utility of the -cpddb
parameter. When
users pass a collection of molecules to this flag, BROOD will annotate any new
analogs it generates with similar molecules from the file passed to this
parameter. This can be useful either for identifying desirable analogs
(perhaps similar compounds that are publicly available) or undesirable
analogs (perhaps known inhibitors of off-target proteins). This execution will
use the query in brood.query_1.oeb
to search the fragments in the
database pubchemDB
.
prompt> brood -queryMol brood.query_1.oeb -db pubchemDB -prot target.pdb -select antiTarget.pdb
This example shows that BROOD can accept both an active-site protein, specified
by -prot
and a selection protein, specified by -select
.
Both proteins can be specified in vBROOD and in that case would already be
encapsulated in brood.query_1.oeb
. This example shows how the proteins
can be added to a query originally constructed without them. It is critical,
that the 3D query, active-site protein and selection protein be oriented in the
same frame of reference. When this is true, BROOD will build the analog
molecules in the active site of the protein specified by -prot
, and
eliminate compounds which clash. Similarly, BROOD will compare the analog
molecules with the selection protein and require that all hits have at least
one clash with that protein. This execution will use the query in
brood.query_1.oeb
to search the fragments in the database
pubchemDB
.
prompt> brood -queryMol brood.query_1.oeb -db pubchemDB -neutralpH false -tautomer false
When BROOD is building analogs by putting similar fragments into a molecular
framework, sometimes the electronic environment of certain functional groups
change dramatically (amines converted to amides for instance). To properly
handle these cases, it is useful for BROOD to normalize the ionization and
tautomer states of the new molecules before generating the final hitlist. In
some cases users are better served without these normalizations. The
ionization and tautomer normalizations can be turned off with the
-neutralpH
and -tautomer
flags respectively.
prompt> brood -queryMol broodFragments.query_1.oeb -db pubchemDB -linkOnly
By default, BROOD compares the shape, chemistry, electrostatics and attachment
geometry of fragments in order to suggest analog molecules. For some
applications, such as joining fragments or closing rings, it is useful to build
fragments into empty space. In these cases, one wants to only compare the
attachment geometry of fragments, in a manner similar to the original CAVEAT
searches [Bartlett-1994]. The -linkOnly
flag instructs BROOD
to compare fragments using only their ability to form low-energy bridges
between attachment points.
prompt> brood -queryMol brood.query_1.oeb -db pubchemDB -attachColor
Like ROCS, BROOD uses color-atoms to encode and compare the chemistry of
molecules. The -attachColor
flag indicates the BROOD should annotate
the hitlist molecules with the color atoms that were used in the comparison.
The color atoms are added as a separate molecule attached to the analog
molecule and can be visualized in BROOD results viewer.
prompt> brood -queryMol brood.query_1.oeb -db pubchemDB -property false
By default, BROOD filters the final analog hitlist with a series of property
filters, each specified with a pair of range parameters. While this can be
useful, on some occasions, users prefer to avoid all of the property filters.
By passing false to the -property
flag, all of the property filters
can be turned off in one easy step.