def printdihedrals(root, amber_prmtop, messages): """ Prints dihedrals containing atoms from a given mask """ # We need a mask, new radius, new epsilon, and for chamber topologies, # a new radius-1-4 and epsilon-1-4. Don't add the latter ones until we # know if we have a chamber prmtop or not. widget_list = [('MaskEntry', 'Atoms to analyze for dihedrals')] # We need 5 string variables, then get the description. var_list = [StringVar()] desc = 'Prints all dihedrals containing at least 1 atom in the given mask' # Create the window, open it, then wait for it to close cmd_window = _guiwidgets.ActionWindow('printDihedrals', amber_prmtop, widget_list, var_list, desc) cmd_window.wait_window() # See if we got any variables back var = var_list[0].get() if not var: return try: action = ParmedActions.printdihedrals(amber_prmtop, ArgumentList(var)) except Exception, err: showerror('Unexpected Error!', '%s: %s' % (type(err).__name__, err)) return