当前位置: 首页>>代码示例>>Python>>正文


Python openbabel.OBMol方法代码示例

本文整理汇总了Python中openbabel.OBMol方法的典型用法代码示例。如果您正苦于以下问题:Python openbabel.OBMol方法的具体用法?Python openbabel.OBMol怎么用?Python openbabel.OBMol使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在openbabel的用法示例。


在下文中一共展示了openbabel.OBMol方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def __init__(self, OBMol=None, source=None, protein=False):
        # lazy
        self._source = source  # dict with keys: n, fmt, string, filename

        if OBMol and not isinstance(OBMol, (Molecule, pybel.Molecule, ob.OBMol)):
            raise ValueError('OBMol needs to be ODDT, Pybel or OB molecule instance')

        # call parent constructor
        super(Molecule, self).__init__(OBMol)

        self._protein = protein

        # ob.DeterminePeptideBackbone(molecule.OBMol)
        # percieve chains in residues
        # if len(res_dict) > 1 and not molecule.OBMol.HasChainsPerceived():
        #    print("Dirty HACK")
        #    molecule = pybel.readstring('pdb', molecule.write('pdb'))
        self._atom_dict = None
        self._res_dict = None
        self._ring_dict = None
        self._coords = None
        self._charges = None

    # lazy Molecule parsing requires masked OBMol 
开发者ID:oddt,项目名称:oddt,代码行数:26,代码来源:ob.py

示例2: _crd2mul

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def _crd2mul(symbols, crds):
    atomnumber = len(symbols)
    xyzstring = ''.join((f"{atomnumber}\nDPGEN\n", "\n".join(
        ['{:2s} {:22.15f} {:22.15f} {:22.15f}'.format(s, x, y, z)
            for s, (x, y, z) in zip(symbols, crds)])))
    conv = openbabel.OBConversion()
    conv.SetInAndOutFormats('xyz', 'gjf')
    mol = openbabel.OBMol()
    conv.ReadString(mol, xyzstring)
    gjfstring = conv.WriteString(mol)
    try:
        mul = int(gjfstring.split('\n')[4].split()[1])
    except IndexError:
        # openbabel 3.0
        mul = int(gjfstring.split('\n')[5].split()[1])
    return mul 
开发者ID:deepmodeling,项目名称:dpgen,代码行数:18,代码来源:gaussian.py

示例3: _update_bond_orders

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def _update_bond_orders(self, idc_lists):
        '''
        Updates the bond orders in the underlying OBMol object.

        Args:
            idc_lists (list of list of int): nested list containing bonds, i.e. pairs
                of row indices (list1) and column indices (list2) which shall be updated
        '''
        con_mat = self.get_connectivity()
        self._obmol.BeginModify()
        for i in range(len(idc_lists[0])):
            idx1 = idc_lists[0][i]
            idx2 = idc_lists[1][i]
            obbond = self._obmol.GetBond(int(idx1+1), int(idx2+1))
            obbond.SetBO(int(con_mat[idx1, idx2]))
        self._obmol.EndModify()

        # reset fingerprints etc
        self._fp = None
        self._can = None
        self._mirror_can = None
        self._inchi_key = None 
开发者ID:atomistic-machine-learning,项目名称:G-SchNet,代码行数:24,代码来源:utility_classes.py

示例4: guess_bond_orders

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def guess_bond_orders(mol):
    """Use OpenBabel to guess bond orders using geometry and functional group templates.

    Args:
        mol (moldesign.Molecule): Molecule to perceive the bonds of

    Returns:
        moldesign.Molecule: New molecule with assigned bonds
    """
    # TODO: pH, formal charges
    pbmol = mol_to_pybel(mol)
    pbmol.OBMol.PerceiveBondOrders()
    newmol = pybel_to_mol(pbmol)
    return newmol 
开发者ID:Autodesk,项目名称:molecular-design-toolkit,代码行数:16,代码来源:openbabel.py

示例5: add_hydrogen

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def add_hydrogen(mol):
    """Add hydrogens to saturate atomic valences.

    Args:
        mol (moldesign.Molecule): Molecule to saturate

    Returns:
        moldesign.Molecule: New molecule with all valences saturated
    """
    pbmol = mol_to_pybel(mol)
    pbmol.OBMol.AddHydrogens()
    newmol = pybel_to_mol(pbmol, reorder_atoms_by_residue=True)
    mdt.helpers.assign_unique_hydrogen_names(newmol)
    return newmol 
开发者ID:Autodesk,项目名称:molecular-design-toolkit,代码行数:16,代码来源:openbabel.py

示例6: to_mol2

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def to_mol2(infile,outfile):
    conv = ob.OBConversion()
    conv.SetInAndOutFormats("sdf","mol2")
    mol = ob.OBMol()
    conv.ReadFile(mol, infile)
    conv.WriteFile(mol, outfile) 
开发者ID:ericchansen,项目名称:q2mm,代码行数:8,代码来源:sdf_to_mae.py

示例7: OBMol

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def OBMol(self):
        if not self._OBMol and self._source:
            self._OBMol = readstring(self._source['fmt'],
                                     self._source['string'],
                                     opt=self._source['opt'] if 'opt' in self._source else {}).OBMol
            self._source = None
        return self._OBMol 
开发者ID:oddt,项目名称:oddt,代码行数:9,代码来源:ob.py

示例8: atoms

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def atoms(self):
        return AtomStack(self.OBMol) 
开发者ID:oddt,项目名称:oddt,代码行数:4,代码来源:ob.py

示例9: bonds

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def bonds(self):
        return BondStack(self.OBMol)

    # cache frequently used properties and cache them in prefixed [_] variables 
开发者ID:oddt,项目名称:oddt,代码行数:6,代码来源:ob.py

示例10: addh

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def addh(self, only_polar=False):
        """Add hydrogens"""
        if only_polar:
            self.OBMol.AddPolarHydrogens()
        else:
            self.OBMol.AddHydrogens()
        self._clear_cache() 
开发者ID:oddt,项目名称:oddt,代码行数:9,代码来源:ob.py

示例11: make2D

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def make2D(self):
        """Generate 2D coordinates for molecule"""
        pybel._operations['gen2D'].Do(self.OBMol)
        self._clear_cache() 
开发者ID:oddt,项目名称:oddt,代码行数:6,代码来源:ob.py

示例12: calccharges

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def calccharges(self, model='gasteiger'):
        """Calculate partial charges for a molecule. By default the Gasteiger
        charge model is used.

        Parameters
        ----------
        model : str (default="gasteiger")
            Method for generating partial charges. Supported models:
            * gasteiger
            * mmff94
            * others supported by OpenBabel (`obabel -L charges`)
        """
        if __version__ < '2.4.0':  # TODO: Get rid of this block for new OB
            if model in pybel._getpluginnames('charges'):
                m = pybel._getplugins(ob.OBChargeModel.FindType, [model])[model]
                if not m.ComputeCharges(self.OBMol):
                    raise Exception('Could not assigh partial charges for '
                                    'molecule "%s"' % self.title)
            else:
                raise ValueError('Model "%s" is not supported in OpenBabel' %
                                 model)
        else:
            super(Molecule, self).calccharges(model)
        self._clear_cache()

    # Custom ODDT properties # 
开发者ID:oddt,项目名称:oddt,代码行数:28,代码来源:ob.py

示例13: clone

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def clone(self):
        return Molecule(ob.OBMol(self.OBMol)) 
开发者ID:oddt,项目名称:oddt,代码行数:4,代码来源:ob.py

示例14: clone_coords

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def clone_coords(self, source):
        self.OBMol.SetCoordinates(source.OBMol.GetCoordinates())
        return self 
开发者ID:oddt,项目名称:oddt,代码行数:5,代码来源:ob.py

示例15: __iter__

# 需要导入模块: import openbabel [as 别名]
# 或者: from openbabel import OBMol [as 别名]
def __iter__(self):
        for i in range(self.OBMol.NumAtoms()):
            yield Atom(self.OBMol.GetAtom(i + 1)) 
开发者ID:oddt,项目名称:oddt,代码行数:5,代码来源:ob.py


注:本文中的openbabel.OBMol方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。