Пример #1
0
def cal_charge(m):
    try:
        charges = AllChem.CalcEEMcharges(m)
        AllChem.ComputeGasteigerCharges(m)
    except:
        charges = None
    if charges is None:
        charges = [
            float(m.GetAtomWithIdx(i).GetProp("_GasteigerCharge"))
            for i in range(m.GetNumAtoms())
        ]
    else:
        for i in range(m.GetNumAtoms()):
            if charges[i] > 3 or charges[i] < -3:
                charges[i] = float(
                    m.GetAtomWithIdx(i).GetProp("_GasteigerCharge"))
    return charges
Пример #2
0
def CalcEEMCharge(fsdf):
    m = Chem.SDMolSupplier(fsdf, removeHs=False)[0]
    chgs = AllChem.CalcEEMcharges(m)
    # chgs = [x.GetDoubleProp('_GasteigerCharge') for x in m.GetAtoms()]
    return chgs