Example #1
0
def test_gninatyping():
    m = pybel.readstring('smi', 'c1ccccc1CO')
    m.addh()
    t = molgrid.GninaIndexTyper()
    assert t.num_types() == 28
    names = list(t.get_type_names())
    assert names[2] == 'AliphaticCarbonXSHydrophobe'
    typs = [t.get_atom_type_index(a.OBAtom) for a in m.atoms]
    assert len(typs) == 16
    acnt = 0
    ccnt = 0
    ocnt = 0
    hcnt = 0
    phcnt = 0
    for t, r in typs:
        if names[t] == 'AromaticCarbonXSHydrophobe':
            acnt += 1
            assert r == approx(1.9)
        if names[t] == 'AliphaticCarbonXSNonHydrophobe':
            ccnt += 1
            assert r == approx(1.9)
        if names[t] == 'OxygenXSDonorAcceptor':
            ocnt += 1
            assert r == approx(1.7)
        if names[t] == 'Hydrogen':
            hcnt += 1
            assert r == approx(.37)
        if names[t] == 'PolarHydrogen':
            phcnt += 1
            assert r == approx(.37)
    assert acnt == 6
    assert ccnt == 1
    assert ocnt == 1
    assert phcnt == 1
    assert hcnt == 7

    #check covalent rdius
    t = molgrid.GninaIndexTyper(True)
    typs = [t.get_atom_type_index(a.OBAtom) for a in m.atoms]
    assert len(typs) == 16
    acnt = 0
    ccnt = 0
    ocnt = 0
    hcnt = 0
    phcnt = 0
    for t, r in typs:
        if names[t] == 'AromaticCarbonXSHydrophobe':
            acnt += 1
            assert r == approx(0.77)
        if names[t] == 'AliphaticCarbonXSNonHydrophobe':
            ccnt += 1
            assert r == approx(0.77)
        if names[t] == 'OxygenXSDonorAcceptor':
            ocnt += 1
            assert r == approx(.73)
        if names[t] == 'Hydrogen':
            hcnt += 1
            assert r == approx(.37)
        if names[t] == 'PolarHydrogen':
            phcnt += 1
            assert r == approx(.37)
    assert acnt == 6
    assert ccnt == 1
    assert ocnt == 1
    assert phcnt == 1
    assert hcnt == 7
Example #2
0
#!/usr/bin/env python3

'''convert gninatypes file to xyz file'''
import struct, sys, argparse
from functools import partial
import molgrid

names = molgrid.GninaIndexTyper().get_type_names()

def elem(t):
    '''convert type index into element string'''
    name = names[t]
    if 'Hydrogen' in name:
        return 'H'
    elif 'Carbon' in name:
        return 'C'
    elif 'Nitrogen' in name:
        return 'N'
    elif 'Oxygen' in name:
        return 'O'
    elif 'Sulfur' in name:
        return 'S'
    elif 'Phosphorus' == name:
        return 'P'
    elif 'Fluorine' == name:
        return 'F'
    elif 'Chlorine' == name:
        return 'Cl'
    elif 'Bromine' == name:
        return 'Br'
    elif 'Iodine' == name: