Exemplo n.º 1
0
  def setUp(self):
    """
    Set up tests.
    """
    from rdkit import Chem
    from rdkit.Chem import AllChem
    smiles = 'CC(=O)OC1=CC=CC=C1C(=O)O'
    mol = Chem.MolFromSmiles(smiles)
    self.mol_with_no_conf = mol

    # with one conformer
    mol_with_one_conf = Chem.AddHs(mol)
    AllChem.EmbedMolecule(mol_with_one_conf, AllChem.ETKDG())
    self.mol_with_one_conf = mol_with_one_conf

    # with multiple conformers
    self.num_confs = 4
    engine = conformers.ConformerGenerator(max_conformers=self.num_confs)
    self.mol_with_multi_conf = engine.generate_conformers(mol)

    # include explicit hydrogens
    self.num_atoms = mol_with_one_conf.GetNumAtoms()
    assert self.num_atoms == 21
    assert self.mol_with_one_conf.GetNumConformers() == 1
    assert self.mol_with_multi_conf.GetNumConformers() == self.num_confs
Exemplo n.º 2
0
 def setUp(self):
     """
 Set up tests.
 """
     smiles = 'CC(=O)OC1=CC=CC=C1C(=O)O'
     mol = Chem.MolFromSmiles(smiles)
     engine = conformers.ConformerGenerator(max_conformers=1)
     self.mol = engine.generate_conformers(mol)
     assert self.mol.GetNumConformers() > 0
Exemplo n.º 3
0
 def setUp(self):
     """
     Set up tests.
     """
     smiles = '[H]C([H])([H])[H]'
     mol = Chem.MolFromSmiles(smiles)
     mol = Chem.AddHs(mol)
     engine = conformers.ConformerGenerator(max_conformers=1)
     self.mol = engine.generate_conformers(mol)
     assert self.mol.GetNumConformers() > 0
Exemplo n.º 4
0
 def setUp(self):
     """
 Set up tests.
 """
     smiles = 'CC(=O)OC1=CC=CC=C1C(=O)O'
     from rdkit import Chem
     mol = Chem.MolFromSmiles(smiles)
     engine = conformers.ConformerGenerator(max_conformers=1)
     self.mol = engine.generate_conformers(mol)
     self.get_angstrom_coords = AtomicCoordinates()._featurize
     assert self.mol.GetNumConformers() > 0
rdkit_desc = feat.RDKitDescriptors()
features = rdkit_desc._featurize(example_mol)

print('The number of descriptors present are: ', len(features))
#%%
# BPSymmetryFunction
# Behler-Parinello Symmetry function or BPSymmetryFunction 
# featurizes a molecule by computing the atomic number and 
# coordinates for each atom in the molecule. The features 
# can be used as input for symmetry functions, 
# like `RadialSymmetry`, `DistanceMatrix` and `DistanceCutoff`.
# These functions can be found in `deepchem.feat.coulomb_matrices`
from deepchem.feat.molecule_featurizers.bp_symmetry_function_input import BPSymmetryFunctionInput

engine = conformers.ConformerGenerator(max_conformers=1)
example_mol_new = engine.generate_conformers(example_mol)

"""
The featurizer takes in `max_atoms` as an argument. 
As input, it takes in a conformer of the molecule and computes:

1. coordinates of every atom in the molecule (in Bohr units)
2. the atomic numbers for all atoms.

These features are concantenated and padded with zeros to 
account for different number of atoms, across molecules.
"""
bp_sym = BPSymmetryFunctionInput(max_atoms=20)
features = bp_sym._featurize(mol=example_mol)
print(features)