本文整理汇总了Python中ParmedTools.ParmedActions.adddihedral方法的典型用法代码示例。如果您正苦于以下问题:Python ParmedActions.adddihedral方法的具体用法?Python ParmedActions.adddihedral怎么用?Python ParmedActions.adddihedral使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParmedTools.ParmedActions
的用法示例。
在下文中一共展示了ParmedActions.adddihedral方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: adddihedral
# 需要导入模块: from ParmedTools import ParmedActions [as 别名]
# 或者: from ParmedTools.ParmedActions import adddihedral [as 别名]
def adddihedral(root, amber_prmtop, messages):
""" Adds a dihedral (improper, multiterm, or normal) to the prmtop """
# We need 4 masks, phi_k, periodicity, phase, scee/scnb, dihedral type
widget_list = [
('MaskEntry', 'First (end) atom in dihedral'),
('MaskEntry', 'Second (middle) atom in dihedral'),
('MaskEntry', 'Third (middle) atom in dihedral'),
('MaskEntry', 'Fourth (end) atom in dihedral'),
('Entry', 'Phi Force constant (kcal/mol)'),
('Entry', 'Periodicity'),
('Entry', 'Phase (Degrees)'),
('Entry', 'EEL scaling factor'),
('Entry', 'VDW scaling factor'),
('Spinbox', 'Dihedral type', 'normal', 'multiterm', 'improper')
]
# We need 10 variables
var_list = [StringVar() for i in range(10)]
description = ('Adds a dihedral in the topology file with the given Phi '
'Force constant in kcal/mol the\ngiven phase in Degrees '
'and the given periodicity. All masks must specify only \n'
'a single atom. The default Amber values for SCEE/SCNB are '
'1.2 and 2.0, respectively.\nSee the Amber manual for '
'details about normal, multiterm, and improper dihedrals')
# Create the window, open it, then wait for it to close
cmd_window = _guiwidgets.ActionWindow('setDihedral', amber_prmtop,
widget_list, var_list, description)
cmd_window.wait_window()
# See if we got any variables back
vars_found = True in [bool(v.get()) for v in var_list]
if not vars_found: return
# If we did, pass them through
var_list = [v.get() for v in var_list]
# Fill scee/scnb in with default values
if var_list[7] is None: var_list[7] = '1.2'
if var_list[8] is None: var_list[8] = '2.0'
# The last argument is a keyword, so append that, then swap the last 2 args
var_list.insert(9, 'type')
try:
action = ParmedActions.adddihedral(amber_prmtop, ArgumentList(var_list))
messages.write('%s\n' % action)
action.execute()
except Exception, err:
showerror('Unexpected Error!', '%s: %s' % (type(err).__name__, err))
return