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
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
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
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)