Python rdkit.Chem.AllChem.ComputeGasteigerCharges() Examples
The following are 4
code examples of rdkit.Chem.AllChem.ComputeGasteigerCharges().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
rdkit.Chem.AllChem
, or try the search function
.
Example #1
Source File: rdkit_util.py From deepchem with MIT License | 6 votes |
def compute_charges(mol): """Attempt to compute Gasteiger Charges on Mol This also has the side effect of calculating charges on mol. The mol passed into this function has to already have been sanitized Params ------ mol: rdkit molecule Returns ------- No return since updates in place. Note ---- This function requires RDKit to be installed. """ from rdkit.Chem import AllChem try: # Updates charges in place AllChem.ComputeGasteigerCharges(mol) except Exception as e: logging.exception("Unable to compute charges for mol") raise MoleculeLoadException(e)
Example #2
Source File: weavenet_preprocessor.py From chainer-chemistry with MIT License | 5 votes |
def construct_partial_charge_vec( mol, num_max_atoms=WEAVE_DEFAULT_NUM_MAX_ATOMS): AllChem.ComputeGasteigerCharges(mol) n = mol.GetNumAtoms() partial_charge_vec = numpy.zeros((num_max_atoms, 1), dtype=numpy.float32) for i in range(n): a = mol.GetAtomWithIdx(i) partial_charge_vec[i, 0] = a.GetProp("_GasteigerCharge") return partial_charge_vec
Example #3
Source File: dataset.py From 3DGCN with MIT License | 4 votes |
def get_atom_features(self, mol): AllChem.ComputeGasteigerCharges(mol) Chem.AssignStereochemistry(mol) hydrogen_donor_match = sum(mol.GetSubstructMatches(self.hydrogen_donor), ()) hydrogen_acceptor_match = sum(mol.GetSubstructMatches(self.hydrogen_acceptor), ()) acidic_match = sum(mol.GetSubstructMatches(self.acidic), ()) basic_match = sum(mol.GetSubstructMatches(self.basic), ()) ring = mol.GetRingInfo() m = [] for atom_idx in range(mol.GetNumAtoms()): atom = mol.GetAtomWithIdx(atom_idx) o = [] o += one_hot(atom.GetSymbol(), ['C', 'O', 'N', 'S', 'Cl', 'F', 'Br', 'P', 'I', 'Si', 'B', 'Na', 'Sn', 'Se', 'other']) if self.use_atom_symbol else [] o += one_hot(atom.GetDegree(), [0, 1, 2, 3, 4, 5, 6]) if self.use_degree else [] o += one_hot(atom.GetHybridization(), [Chem.rdchem.HybridizationType.SP, Chem.rdchem.HybridizationType.SP2, Chem.rdchem.HybridizationType.SP3, Chem.rdchem.HybridizationType.SP3D, Chem.rdchem.HybridizationType.SP3D2]) if self.use_hybridization else [] o += one_hot(atom.GetImplicitValence(), [0, 1, 2, 3, 4, 5, 6]) if self.use_implicit_valence else [] o += one_hot(atom.GetFormalCharge(), [-3, -2, -1, 0, 1, 2, 3]) if self.use_degree else [] # o += [atom.GetProp("_GasteigerCharge")] if self.use_partial_charge else [] # some molecules return NaN o += [atom.GetIsAromatic()] if self.use_aromaticity else [] o += [ring.IsAtomInRingOfSize(atom_idx, 3), ring.IsAtomInRingOfSize(atom_idx, 4), ring.IsAtomInRingOfSize(atom_idx, 5), ring.IsAtomInRingOfSize(atom_idx, 6), ring.IsAtomInRingOfSize(atom_idx, 7), ring.IsAtomInRingOfSize(atom_idx, 8)] if self.use_ring_size else [] o += one_hot(atom.GetTotalNumHs(), [0, 1, 2, 3, 4]) if self.use_num_hydrogen else [] if self.use_chirality: try: o += one_hot(atom.GetProp('_CIPCode'), ["R", "S"]) + [atom.HasProp("_ChiralityPossible")] except: o += [False, False] + [atom.HasProp("_ChiralityPossible")] if self.use_hydrogen_bonding: o += [atom_idx in hydrogen_donor_match] o += [atom_idx in hydrogen_acceptor_match] if self.use_acid_base: o += [atom_idx in acidic_match] o += [atom_idx in basic_match] m.append(o) return np.array(m, dtype=float)
Example #4
Source File: metric.py From DrugEx with MIT License | 4 votes |
def PhyChem(smiles): """ Calculating the 19D physicochemical descriptors for each molecules, the value has been normalized with Gaussian distribution. Arguments: smiles (list): list of SMILES strings. Returns: props (ndarray): m X 19 matrix as nomalized PhysChem descriptors. m is the No. of samples """ props = [] for smile in smiles: mol = Chem.MolFromSmiles(smile) try: MW = desc.MolWt(mol) LOGP = Crippen.MolLogP(mol) HBA = Lipinski.NumHAcceptors(mol) HBD = Lipinski.NumHDonors(mol) rotable = Lipinski.NumRotatableBonds(mol) amide = AllChem.CalcNumAmideBonds(mol) bridge = AllChem.CalcNumBridgeheadAtoms(mol) heteroA = Lipinski.NumHeteroatoms(mol) heavy = Lipinski.HeavyAtomCount(mol) spiro = AllChem.CalcNumSpiroAtoms(mol) FCSP3 = AllChem.CalcFractionCSP3(mol) ring = Lipinski.RingCount(mol) Aliphatic = AllChem.CalcNumAliphaticRings(mol) aromatic = AllChem.CalcNumAromaticRings(mol) saturated = AllChem.CalcNumSaturatedRings(mol) heteroR = AllChem.CalcNumHeterocycles(mol) TPSA = MolSurf.TPSA(mol) valence = desc.NumValenceElectrons(mol) mr = Crippen.MolMR(mol) # charge = AllChem.ComputeGasteigerCharges(mol) prop = [MW, LOGP, HBA, HBD, rotable, amide, bridge, heteroA, heavy, spiro, FCSP3, ring, Aliphatic, aromatic, saturated, heteroR, TPSA, valence, mr] except: print(smile) prop = [0] * 19 props.append(prop) props = np.array(props) props = Scaler().fit_transform(props) return props