canvasMolDescriptors
This program calculates molecular descriptors from a set of structures. See canvasMolDescriptors Command Help for description of the program options.
You can create your own SMARTS patterns to define hydrogen-bond donors, acceptors, and rotatable bonds, and supply them in template files to canvasMolDescriptors. The format of the template files can be obtained with the -helpHBD, -helpHBA, and -helpRB options. For example, to create a template file for rotatable bonds, use the following command:
canvasMolDescriptors -helpRB > myRBtemplate.txt
The default definitions are included in the template file for hydrogen-bond donors and acceptors, but not for rotatable bonds. Examples for rotatable bonds are described below.
By default, a rotatable bond in Canvas is defined as a single, non-ring bond, bonded to a non-terminal heavy atom (non-hydrogen). Amide bonds (C–N) and a bond next to a triple bond are excluded because of the high energy barrier.
To include or exclude a user-defined bond type, you must specify both atoms connected to the bond with valid SMARTS. A positive integer value (>0) must follow each SMARTS pattern, separated by a space. Within each file, this integer value must be unique. Only heavy atoms may be specified, and only one SMARTS may be given per line. A line staring with ; is treated as comment.
For example, the following two lines specifies a secondary amide bond:
C(=O)N[!#1] > 1 N([!#1])C=O > 2
If, in addition, you wants to include bonds between OH and SP3 carbon, you can include the following two lines in the “include” section of the template file:
C(*)(*)(*)-[OH] > 3 [OH]-C(*)(*)* > 4
If you want to exclude single bonds connecting a carbon attached to a halogen, you can copy the following two lines to the “exclude” section of the file:
*-C[I,Br,Cl,F] 5 C([I,Br,Cl,F])-* 6
Other SMARTS patterns may be considered in counting rotatable bonds such as acid groups:
[OH]-C=O > 100 C(=O)-[OH] > 200
Custom atom types (-Custom) are defined in a file that contain rules for assigning atom types. A property assignment rule has the following format:
SMARTS ? prop1 prop2 ...
This rule assigns the property prop1 to the first atom in the SMARTS pattern, prop2 to the second atom, and so on. prop1 is a name that can consist of alphanumeric characters (upper and lower case) and underscores, and must start with a letter. The property can be used instead of SMARTS patterns in a rule, as $propN. A type assignment rule has the format:
SMARTS > type ; {name} value
This rule assigns the atom type type to the first atom in the SMARTS pattern. type is a positive integer, which indexes the atom types. The name of the atom type can be set by adding the optional {name}. The name is used when reporting the per-atom-type properties (Key, Cnt, Sum, Avg). The optional value is used to calculate the custom property.
Rules are applied in the order in which they are encountered in the file, so any property assignments must precede their use. The default atom type is 0. Atom types set by one rule can be changed by a subsequent rule.