def read_ccd():
    print 'Reading components.cif ...'
    sys.stdout.flush()
    components = CifFileReader()
    all_residues = components.read('components.cif')
    print 'Reading aa-variants-v1.cif ...'
    amino_variants = components.read('aa-variants-v1.cif')
    return itertools.chain(all_residues.iteritems(), amino_variants.iteritems())
sys.path.insert(0, '..')
import utils

# to install mmCif: pip install git+git://github.com/glenveegee/PDBeCIF
from mmCif.mmcifIO import CifFileReader

ORDERS = dict(SING=1, DOUB=2, TRIP=3)

if __name__ == '__main__':
    print 'This program regenerates the `residue_bonds` database using the "Chemical Component '
    print 'Dictionary" and "Protonation Variants Dictionary" from http://www.wwpdb.org/data/ccd'
    print 'These files are not included in the repository and must be downloaded manually.\n'
    print 'Reading components.cif ...'
    sys.stdout.flush()

    components = CifFileReader()
    all_residues = components.read('components.cif')

    print 'Reading aa-variants-v1.cif ...'
    amino_variants = components.read('aa-variants-v1.cif')

    residues = []

    db = utils.CompressedJsonDbm('residue_bonds', 'n')

    for resname, data in itertools.chain(all_residues.iteritems(),
                                         amino_variants.iteritems()):
        if '_chem_comp_bond' not in data:
            print '\nskipped %s (no bonds)' % resname
            continue