THINK can calculate 2-, 3- and 4-centre pharmacophores, though most users would normally use only 4-centre pharmacophores as these provide far more shape information and resolution.
The following centre types are recognised and used in pharmacophores:
| Centre name | 1-letter code | Description |
| HDON | D | Hydrogen bond donor (may require an attached hydrogen atom) |
| HACC | A | Hydrogen bond acceptor |
| POS | P | Positive charge |
| NEG | N | Negative charge |
| ACID | C | Acid |
| BASE | B | Base |
| AROM | R | Aromatic ring |
| LIP | L | Lipophile |
| MET | M | Metal atom |
| LPD | X | Lone-pair donor (Lewis base) |
| USR1 | W | User-defined centre type 1 |
| USR4 | Z | User-defined centre type 4 |
The user may elect to restrict the pharmacophores to a subset of these centre types. The centre type for each atom is defined by its atom type. The default atom types do not include sulphur as a hydrogen bond acceptor but does include it as a hydrogen bond donor.
Fuzzy pharmacophores are designed to handle the tolerances on the exact positions of the centres (atoms) that define a pharmacophore, which affects the distances between the atoms. When calculating a pharmacophore, THINK allows a tolerance of ±x on each distance. This has the effect of "spreading" the distance across several distance bins, leading to the creation of multiple pharmacophores for a single set of centres. Each of these pharmacophores can be considered to be a fraction of the original pharmacophore. The pharmacophore count is adjusted to take into account these fractional pharmacophores, so that the total count remains unchanged.
For example, a 2-centre pharmacophore has a distance of 4.85Å between the centres. Applying a pharmacophore tolerance of 0.25Å gives a range of possible distances between 4.6 and 5.1Å. The default distance bins that cover this range are 4.0-5.0Å and 5.0-6.0Å: 80% of the distance range lies within the 4.0-5.0Å bin and 20% within the 5.0-6.0Å bin. Thus, this 2-centre pharmacophore would generate two fractional pharmacophores, one with a count of 0.8 and the other with a count of 0.2.
Since the pharmacophore tolerance is applied independently to each of the distances within a pharmacophore, the number of fractional pharmacophores created increases dramatically as the number of centres, and hence the number of distances, rises. This means that pharmacophore calculations may run more slowly than in previous versions, although the algorithms have been speeded up in compensation.
The pharmacophore tolerance x is taken from the 3D tolerance stored in the common variable D3DTOL so that 2x = D3DTOL. The tolerance may be changed through the command CUSTOMISE TOLERANCE=value. Results from earlier versions of THINK can be reproduced by setting the 3D tolerance to zero.
A pharmacophore profile is the set of all pharmacophores found across the conformers of a series of molecules. As each individual pharmacophore is generated during the calculation, it is:
Note that the pharmacophore profile shows the spread of pharmacophores across the series of molecules. It does not calculate the sum of the pharmacophores exhibited nor is it normalised. A pharmacophore profile may be saved to a file.
| SAVE FORMAT=PROFILE FILE=file |
| SAVE FILE=filename.pro |
Pharmacophores are normally saved to a file for analysis by another software program. To facilitate the movement of these files between different operating systems a formatted file is used, with the pharmacophore data written in a compressed format using 6 (3-centre) or 10 (4-centre) characters to describe each pharmacophore. If conformer-based counts are enabled then the number of times each pharmacophore occurred will also be saved, increasing the number of characters used per pharmacophore. A full description of the format can be found in Appendix B.