def getmoldata(molfname): mol = read.readxyz(file(molfname)) types = tools.gettypes(mol) result = {} result['atomtypes'] = set(types) subtypes = list(result['atomtypes']) typepairs = [] for i, type_1 in enumerate(subtypes): for type_2 in subtypes[i:]: typepairs.append(molparam.bond_uni([type_1, type_2])) result['typepairs'] = set(typepairs) rela = relalist.Relalist(mol) result['bondtypes'] = set([molparam.bond_uni(gettype(bond, types)) for bond in rela.bonds]) result['angletypes'] = set([molparam.angle_uni(gettype(angle, types)) for angle in rela.angles]) result['torsiontypes'] = set([molparam.torsion_uni(gettype(torsion, types)) for torsion in rela.torsions]) return result
def checkangletypes(words, moldata): key = molparam.angle_uni([int(words[1]), int(words[2]), int(words[3])]) if key in moldata['angletypes']: return True return False