Pharmacophore
Molchanica can screen or generate small molecules using pharmacophore models. These extract the relevant features of target-ligand binding into a general model that can be used to identify other molecules which bind to a pocket. They can be generated manually in the molecule editor, or automatically given either a pocket, or one or more ligands which bind to a (known or unknown) pocket.
Given a pharmacophore model, molecules can be generated automatically, screened from a database, or validated on an individual basis.
Manually creating
To build a Pharmacophore, open a small molecule, then open the Molecule Editor. A pharmacophore toolbar displays below other edit tools. To get started, select a feature type from the dropdown. Hints for feature locations will be overlaid on the molecule, depending on the feature type. For example, if Aromatic is selected, the center of each aromatic ring will be marked with a red sphere. To place a feature, select the atom using right click, then click the Add pharmacophore button.
You can view a list of pharmacophore features in the sidebar. Here you can view and edit properties, and remove them.
You can use And and Or logic to relate multiple features to each other when screening scoring. For example, you may add colocated aromatic and hydrophobic features. They will, by default, be related with And logic. If you wish to make sure that no more than one of these is allowed when matching a molecule, you may set this in the UI.
For Hydrogen bond donors and acceptors, you may specify a directionality; e.g. the direction between the donor atom and the hydrogen.
Adding a pocket
You may wish to incorporate a pocket into a pharmacophore. To do so, first open or create a pocket (See the pockets section ofthese docs.). Then from the sidebar while in the molecule editor, click the pocket's associated button to add it to the rendering, and associate it with the molecule's pharmacophore. You can then rotate the pocket and molecule to find an alignment. It will display hydrogen bonds between the ligand and this pocket. When screening, the pocket's atoms will prevent matches which overlap with the ligands being screened.
When saving this molecule or exiting the editor, the pocket will remain associated with the pharmacophore. Use Mol2 or SDF formats when saving a pharmacophore. The pocket atom data will be saved as metadata in the file, and its mesh and properties will be recreated upon loading this molecule.
Screening
Given a directory which contains small molecules (e.g. in SDF or Mol2 format), you can score molecules in this folder against an opened pharmacophore. To do this, click the Screen button in the sidebar, next to the pharmacophore. It will open a window, where you can select a directory to screen. All subdirectories in this will be scanned recursively.
Once a directory is chosen, click Run Screening to begin. This runs in the background, and takes a while for large directories. Results will be displayed in that popup. Each will have the molecule identifier, its score on a scale between 0 and 1.0, and a button to load that molecule into the application.
Molecule generation
(todo: not yet implemented)
Saving and loading
We store Pharmacophores in two ways: A: When saving a small molecule in SDF or Mol2 format, the pharmacophore data is embedded as part of the file's metadata. For SDF files, we follow PubChem's convention. For example:
SDF:
> <PUBCHEM_PHARMACOPHORE_FEATURES>
3
1 2 acceptor
1 3 cation
6 5 9 10 11 12 13 rings
As there isn't an established way of doing this for Mol2, we use our own format addition, using the same example features as above:
Mol2:
@<BIO_FILES>PHARMACOPHORE
5
6 8 9 15 16 18 19 aromatic
6 21 22 24 25 26 27 aromatic
1 20 donor
If a pocket is associated with the pharmacophore, we use an additional metadata section, which is not part of the PubChem format. Examples below for SDF and Mol2
SDF:
> <pharmacophore_pocket_atoms>
1 C -2.79162 -3.40832 6.75469
2 C -3.04762 -4.57432 5.83069
3 C -1.29462 -3.29432 7.02569
Mol2:
@pharmacophore_pocket_atoms
5434 C -2.423577 -3.959211 5.426078
5465 C -7.563577 3.356789 1.653078
5468 N -4.181577 4.201789 4.050078
When loading a molecule that has these annotations (This includes many molecules from PubChem), pharmacophore features and/or pocket are loaded automatically.
Because PubChem often includes pharmacophore features in SDFs, you may, when creating one based on a molecule, need to remove existing ones prior to screening.