本文整理匯總了Python中rdkit.Chem.AllChem.ComputeGasteigerCharges方法的典型用法代碼示例。如果您正苦於以下問題:Python AllChem.ComputeGasteigerCharges方法的具體用法?Python AllChem.ComputeGasteigerCharges怎麽用?Python AllChem.ComputeGasteigerCharges使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類rdkit.Chem.AllChem
的用法示例。
在下文中一共展示了AllChem.ComputeGasteigerCharges方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: compute_charges
# 需要導入模塊: from rdkit.Chem import AllChem [as 別名]
# 或者: from rdkit.Chem.AllChem import ComputeGasteigerCharges [as 別名]
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)
示例2: construct_partial_charge_vec
# 需要導入模塊: from rdkit.Chem import AllChem [as 別名]
# 或者: from rdkit.Chem.AllChem import ComputeGasteigerCharges [as 別名]
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
示例3: get_atom_features
# 需要導入模塊: from rdkit.Chem import AllChem [as 別名]
# 或者: from rdkit.Chem.AllChem import ComputeGasteigerCharges [as 別名]
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)
示例4: PhyChem
# 需要導入模塊: from rdkit.Chem import AllChem [as 別名]
# 或者: from rdkit.Chem.AllChem import ComputeGasteigerCharges [as 別名]
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