Пример #1
0
def test_mol2xyz_exception(caffeine_smiles):
    m = Molecule(caffeine_smiles, 'smiles')
    m.hydrogens('add')
    with pytest.raises(ValueError):
        m.to_xyz()
    with pytest.raises(ValueError):
        m.to_xyz('uff')
Пример #2
0
def test_load_xyz_scenarios(xyz_path):
    path = os.path.join(xyz_path, '1_opt.xyz')
    m = Molecule(path, 'xyz')
    # 1 : xyz exist and optimizer is none
    assert m.to_xyz()
    # 2 xyz doesn't exist and pybel exist and optimizer is none
    m._xyz = None
    m.to_xyz()
    assert m.xyz.geometry.shape == (28, 3)
    # 3 xyz doesn't exist and pybel exist and optimizer is UFF
    m._xyz = None
    m.to_xyz(optimizer='UFF', maxIters=10210)
    assert m.xyz.geometry.shape == (28, 3)
Пример #3
0
def bagofbounds(mol2, maxentry):
    from chemml.chem import Molecule
    #caffeine_smiles = 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C'
    #caffeine_smarts = '[#6]-[#7]1:[#6]:[#7]:[#6]2:[#6]:1:[#6](=[#8]):[#7](:[#6](=[#8]):[#7]:2-[#6])-[#6]'
    #caffeine_inchi = 'InChI=1S/C8H10N4O2/c1-10-4-9-6-5(10)7(13)12(3)8(14)11(6)2/h4H,1-3H3'
    mol = Molecule(Chem.MolToSmiles(mol2), 'smiles')
    mol.hydrogens('add')
    mol.to_xyz(optimizer='MMFF', mmffVariant='MMFF94s', maxIters=300)  # 'UFF'
    print(mol)
    mol.visualize()
    #mol.visualize()

    from chemml.datasets import load_xyz_polarizability
    from chemml.chem import BagofBonds
    #coordinates, y = load_xyz_polarizability(mol)
    bob = BagofBonds(const=1.0)
    features = bob.represent(mol)
    print(features)
    print("number of entry")
    print(features.shape[1])
    if features.shape[1] > maxentry:
        maxentry = features.shape[1]
    return features, maxentry
Пример #4
0
def test_mol2xyz_UFF(caffeine_smiles):
    m = Molecule(caffeine_smiles, 'smiles')
    m.hydrogens('add')
    m.to_xyz('UFF', ignoreInterfragInteractions=False)
    assert m.xyz.geometry.shape[0] == m.rdkit_molecule.GetNumAtoms()
    m.to_xyz('UFF', maxIters=110)
    assert m.xyz.atomic_symbols.shape[0] == m.rdkit_molecule.GetNumAtoms()
    assert m.UFF_args['maxIters'] == 110
    # check default args
    m.to_xyz('UFF', **m._default_UFF_args)
Пример #5
0
def test_mol2xyz_MMFF(caffeine_smiles):
    m = Molecule(caffeine_smiles, 'smiles')
    m.hydrogens('add')
    m.to_xyz('MMFF', maxIters=210)
    assert m.xyz.geometry.shape[0] == m.rdkit_molecule.GetNumAtoms()
    m.to_xyz('MMFF', maxIters=110, mmffVariant='MMFF94s')
    assert m.xyz.atomic_symbols.shape[0] == m.rdkit_molecule.GetNumAtoms()
    assert m.MMFF_args['mmffVariant'] == 'MMFF94s'
    # check default args
    m.to_xyz('MMFF', **m._default_MMFF_args)
Пример #6
0
from chemml.chem import Molecule
caffeine_smiles = 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C'
caffeine_smarts = '[#6]-[#7]1:[#6]:[#7]:[#6]2:[#6]:1:[#6](=[#8]):[#7](:[#6](=[#8]):[#7]:2-[#6])-[#6]'
caffeine_inchi = 'InChI=1S/C8H10N4O2/c1-10-4-9-6-5(10)7(13)12(3)8(14)11(6)2/h4H,1-3H3'
mol = Molecule(caffeine_smiles, input_type='smiles')
mol.hydrogens('add')
mol.to_xyz(optimizer='MMFF', mmffVariant='MMFF94s', maxIters=300) # 'UFF'
print(mol)
mol.visualize()
#mol.visualize()



from chemml.datasets import load_xyz_polarizability
from chemml.chem import BagofBonds
#coordinates, y = load_xyz_polarizability(mol)
bob = BagofBonds(const= 1.0)
features = bob.represent(mol)
print(features)