schrodinger.application.matsci.jagwidgets module¶
Contains widgets for MatSci jaguar-related panels.
Copyright Schrodinger, LLC. All rights reserved.
- class schrodinger.application.matsci.jagwidgets.BasisSetSelector(label, default_selection, layout=None, stretch=True)¶
Bases:
SelectorWithPopUp
A frame that allows the user to specify a basis from a pop up list
- TOOL_BUTTON_CLASS¶
alias of
BasisSelectorFilterListToolButton
- selectionChanged()¶
Set the line edit to a newly selected basis set
- setBasis(basis)¶
Set the basis for the widget
- Parameters:
basis (str) – The basis to set
- Raises:
ValueError – If basis is invalid
- reset()¶
Reset the widget
- setStructure(struct)¶
Set the structure to determine valid basis sets
- Parameters:
struct (structure.Structure) – The structure to set
- validate()¶
Check if the basis set is valid
- Return type:
(False, msg) or True
- Returns:
False and error message if something is wrong, True if everything is OK
- class schrodinger.application.matsci.jagwidgets.TheorySelector(label, default_selection, layout=None, stretch=True)¶
Bases:
SelectorWithPopUp
A frame that allows the user to specify a theory from a pop up list
- TOOL_BUTTON_CLASS¶
- new_method_selected¶
A
pyqtSignal
emitted by instances of the class.
- selectionChanged()¶
Set the line edit to the newly selected theory
- setTheory(theory)¶
Set the theory for the widget
- Parameters:
theory (str) – The theory to set
- Raises:
ValueError – If the theory is not valid
- reset()¶
Reset the widget
- class schrodinger.application.matsci.jagwidgets.KeywordEdit(label_text='', keyword_dict=None, keyword_string='', **kwargs)¶
Bases:
SLabeledEdit
A labeled edit for displaying, editing and retrieving Jaguar keywords
- __init__(label_text='', keyword_dict=None, keyword_string='', **kwargs)¶
Create a KeywordEdit instance.
Any unrecognized keyword arguments are passed to the SLabeledEdit class
- Parameters:
label_text (str) – The text of the label for the KeywordEdit. By default, there is no label.
keyword_dict (dict) – A dictionary of keyword/value pairs for the KeywordEdit to display. If both keyword_dict and keyword_string are supplied, the keyword_dict keywords appear first.
keyword_string (str) – The string to display in the KeywordEdit. If both keyword_dict and keyword_string are supplied, the keyword_dict keywords appear first.
- getKeywordString()¶
Return the keyword string in the QLineEdit
- Return type:
str
- Returns:
The string in the QLineEdit. No validity checking is done.
- getKeywordDict(keystring=None)¶
Return a dictionary whose keys are keywords and values are keyword values
- Parameters:
keystring (str) – If provided, the keywords are taken from this string rather than the QLineEdit. The default is to take the keywords from the QLineEdit
- Return type:
dict
- Returns:
Dictionary of keyword/value pairs
- Raises:
ValueError – if any tokens do not match the keyword=value format
- setKeywords(keyword_dict=None, keyword_string='')¶
Set the text of the KeywordEdit
- Parameters:
keyword_dict (dict) – A dictionary of keyword/value pairs for the KeywordEdit to display. If both keyword_dict and keyword_string are supplied, the keyword_dict keywords appear first.
keyword_string (str) – The string to display in the KeywordEdit. If both keyword_dict and keyword_string are supplied, the keyword_dict keywords appear first.
- validateKeywords(emptyok=False)¶
Validate the contents to ensure they are valid Jaguar keywords. The return value of this is compatible with appframework2 validation methods - i.e. an af2 validation method can just call: return self.keyword_le.validateKeywords()
- Parameters:
emptyok (bool) – Whether it is OK for the keyword input to be empty
- Return type:
True or (False, str)
- Returns:
True if no errors are found, otherwise a tuple containing False and an error message.
- class schrodinger.application.matsci.jagwidgets.CompactSolventSelector(parent=None, layout=None, indent=False, keywords=None, **extra_args)¶
Bases:
SFrame
A single line of widgets that displays the currently chosen solvent and a button that will open a dialog allowing a new solvent model/solvent choice. Tracks the necessary Jaguar keywords to implement the user’s choice.
- solventChanged¶
A
pyqtSignal
emitted by instances of the class.
- __init__(parent=None, layout=None, indent=False, keywords=None, **extra_args)¶
Create a CompactSolventSelector object
Additional keyword arguments are passed on to the SolventDialog that is opened by this widget.
- Parameters:
layout (QBoxLayout) – The layout to place this widget into
indent (bool) – If true indent frame layout
keywords (dict) – Dictionary of solvent-related Jaguar key/value pairs to initialize/reset the widgets with
- chooseSolvent()¶
Open a dialog that lets the user choose solvent parameters (model, solvent, solvent properties) and store the choices
- solventKeywordsChanged(keywords, options={}, update=False)¶
Called when the user clicks accept on the SolventDialog
- Parameters:
keywords (dict) – A dictionary of Jaguar solvent model keywords
update (bool) – whether keywords should be updated or replaced
- isSolventModelUsed()¶
Has a solvent model been chosen?
- Return type:
bool
- Returns:
True if yes, False if no
- getSolventName()¶
Get the name of the chosen solvent
- Return type:
str
- Returns:
The user-facing name of the chosen solvent, or NO_SOLVENT if no model has been chosen
- getKeystring()¶
Get a string containing all the keywords specified by the user’s choices
- Return type:
(str, str)
- Returns:
First item is a string containing keywords that define the user’s choices. An empty string is returned if no model has been selected. The second item is a string containing any keywords set for solvent=other.
- reset()¶
Reset all the widgets to their original values
- class schrodinger.application.matsci.jagwidgets.SolventDialog(parent, keywords=None, **extra_args)¶
Bases:
QDialog
A Dialog that allows the user to pick a solvent model, solvent and parameters.
Emits a keywordsChanged signal when the user clicks Accept and passes a dictionary of the Jaguar keywords that reflect the selected settings.
- keywordsChanged¶
A
pyqtSignal
emitted by instances of the class.
- __init__(parent, keywords=None, **extra_args)¶
Create a SolventDialog object
Additional keyword arguments are passed to the EmbeddedSolventWidget object
- Parameters:
parent (QWidget) – The parent widget for this dialog
keywords (dict) – A dictionary of jaguar key/value pairs that define the initial solvent settings for the dialog
- help()¶
Show the Jaguar solvent help
- accept()¶
Gather the options and emit a keyword dictionary with the keywords/values they define, then close the dialog.
- class schrodinger.application.matsci.jagwidgets.EmbeddedSolventWidget(parent=None, layout=None, dielectric=True, reference=False, keywords=None, models=None, force_solvent=None)¶
Bases:
SolvationTab
A master widget that contains the widgets from the Jaguar Solvation tab and is convenient to use outside the Jaguar gui environment.
- __init__(parent=None, layout=None, dielectric=True, reference=False, keywords=None, models=None, force_solvent=None)¶
Create a EmbeddedSolventWidget object
- Parameters:
parent (QWidget) – The parent widget for this widget
layout (QBoxLayout) – The layout to place this widget into
dielectric (bool) – If True, show the dielectric widgets, if False, do not
reference (bool) – If True, show the reference energy widgets, if False, do not
keywords (dict) – The Jaguar solvent-related key/value pairs that define the initial widget values
models (dict) – The allowed solvent models. keys are strings displayed to the user, values are Jaguar keywords. See parent class SOLVENT_MODELS constant for example. Use an OrderedDict to control the order of the solvent models in the model combobox
force_solvent (str) – If provided, set as solvent and disable the solvent selector
- solventModelChanged()¶
React to a change in the solvent model
- loadSettingsFromKeywords(keywords)¶
Set the widget states based on the given keyword dictionary
- Parameters:
keywords (dict) – Keys are jaguar keywords, values are keyword values
- reset()¶
Reset the widgets to their initial values
- class schrodinger.application.matsci.jagwidgets.NewPresetDialog(master, user_accept_function=None, standard_buttons=None, nonstandard_buttons=None, help_topic='', title=None)¶
Bases:
SDialog
Dialog for getting the name for a new preset
- layOut()¶
Lay out the widgets for the dialog
- accept()¶
Overwrite parent’s accept method to check if the name is valid
- classmethod getName(master, keywords, existing_names)¶
Get a name from the user for the new preset
- Parameters:
master (QtWidget) – The parent widget
keywords (str) – The keywords in string format
existing_names (set) – Names for existing presets
- Return type:
str or None
- Returns:
The preset name, or None if the user cancels
- class schrodinger.application.matsci.jagwidgets.PresetsDialog(master, *, keyword_setter, keyword_getter, keyword_validator=None, schrodinger_defaults_str='', title='Jaguar Option Sets', preferences_group='', **kwargs)¶
Bases:
SDialog
Dialog for saving and applying jaguar keyword presets and setting default preset
- __init__(master, *, keyword_setter, keyword_getter, keyword_validator=None, schrodinger_defaults_str='', title='Jaguar Option Sets', preferences_group='', **kwargs)¶
- Parameters:
master (QDialog) – The parent dialog
keyword_setter (callable) – The function to call to set keywords. Should take keywords in string format as a single argument
keyword_getter (callable) – The function to call to get keywords. Should return keywords in string format
keyword_validator (callable) – The function to call to validate keywords. Should return a
af2.validation.ValidationResult
objectschrodinger_defaults_str (str) – Default keywords for the Schrodinger preset in string format
preferences_group (str) – The preference group to use for storing the presets. If not provided, a name will be created from the parent’s window title. NOTE: duplicate titles will break things when not specifying a preferences_group
title (str) – The title for the dialog
- layOut()¶
Lay out the widgets for the dialog
- setUpPreferences()¶
Set up the preferences for the presets
- updatePreferences()¶
Update user preferences due to a change in Schrodinger defaults
- getCustomPresetsNames()¶
Get a list of custom preset names
- Return type:
list
- Returns:
list of custom preset names
- populateList()¶
Populate the list with presets
- getSelectedPreset()¶
Get the selected preset in the list, removing “(default)” if it is the default preset
- Return type:
str or None
- Returns:
The name of the selected preset or None if there’s no selection
- listSelectionChanged()¶
Update the widgets based on the selected preset in the list
- newPreset()¶
Ask the user for a new preset name and save the current keywords as a new preset
- setDefaultPreset(*, preset_name=None)¶
Set the default preset. If preset_name is provided, set the default to it. Otherwise use the selected preset.
- Parameters:
str – preset_name: The name of the preset, or None
- applyPreset()¶
Apply the selected preset
- deletePreset()¶
Delete the selected preset after confirming with the user
- getDefaultPresetName()¶
Get the name of the current default preset
- Return type:
str
- Returns:
The name of the current default
- getDefaultKeywords()¶
Get the keywords for the default preset
- Return type:
str
- Returns:
The keywords for the default preset
- class schrodinger.application.matsci.jagwidgets.JaguarOptionsDialog(master, button_label='Jaguar Options...', title=None, help_topic=None, preference_group='', layout=None, show_optimization=True, optional_optimization=False, pass_optimization_keyword=True, show_geopt_iterations=True, show_spin_treatment=False, show_charge=True, show_multiplicity=True, show_hamiltonian=False, show_tddft=False, solvent_kwargs=None, keyword_validator=None, default_keywords='', tip=None, stretch=True)¶
Bases:
SDialog
- OVERWRITE_QUESTION_KEY = 'JAGOPTS_OVERWRITE_KEYWORDS'¶
- SPIN_AUTOMATIC = 'Automatic'¶
- SPIN_UNRESTRICTED = 'Unrestricted'¶
- SPIN_RESTRICTED = 'Restricted'¶
- UHF_LABELS = {0: 'Restricted', 1: 'Unrestricted', 2: 'Automatic'}¶
- DEFAULT_THEORY = 'B3LYP-D3'¶
- DEFAULT_BASIS_SET = '6-31G**'¶
- NON_ANALYTICAL_SCF_ACCURACIES = [3, 2, 1]¶
- GEOPT_CONV_CRITERIA = {'Accurate': 2, 'Loose': 3, 'Normal': -99, 'Tight': 5}¶
- OPTIMIZATION_KEYWORDS = ['igeopt', 'maxitg', 'iaccg', 'nops_opt_switch']¶
- ALL_SOLVENT_KEYWORDS = {'isolv', 'nogas', 'pbf_after_pcm', 'pcm_model', 'pcm_radii', 'solvent'}¶
- EXCITED_STATE_KEYWORDS = ['itddft', 'itda', 'rsinglet', 'rtriplet', 'nroot']¶
- panelLabelChanged¶
A
pyqtSignal
emitted by instances of the class.
- __init__(master, button_label='Jaguar Options...', title=None, help_topic=None, preference_group='', layout=None, show_optimization=True, optional_optimization=False, pass_optimization_keyword=True, show_geopt_iterations=True, show_spin_treatment=False, show_charge=True, show_multiplicity=True, show_hamiltonian=False, show_tddft=False, solvent_kwargs=None, keyword_validator=None, default_keywords='', tip=None, stretch=True)¶
Create a JaguarOptionsDialog instance
- Parameters:
master (QWidget) – The parent widget
button_label (str) – The label for the button in the panel
title (str) – The dialog title. If not provided, a title will be created from the panel’s title
help_topic (str) – The help topic for this dialog. If not provided, an id will be created from the panel’s id
preferences_group (str) – The preference group to use for storing the presets. If not provided, a name will be created from this dialog’s title. NOTE: duplicate titles will break things when not specifying a preferences_group
layout (QLayout) – The layout to add the panel widgets to
show_optimization (bool) – Whether geometry optimization group should be shown
optional_optimization (bool) – Whether geometry optimization is optional
pass_optimization_keyword (bool) – Whether geometry optimization keyword (igeopt) should be returned when getting current keywords
show_geopt_iterations (bool) – Whether maximum iterations for geometry optimization should be shown
show_spin_treatment (bool) – Whether spin treatment rbg should be shown
show_charge (bool) – Whether charge spinbox should be shown
show_multiplicity (bool) – Whether multiplicity spinbox should be shown
solvent_kwargs (None or dict) – The kwargs to be passed to the solvent widget. If None, the widget won’t be created. An empty dict can be passed to create the solvent widget with default kwargs.
keyword_validator (callable) – Optional function to call to validate the keywords. Should raise KeyError if there are any issues with the keywords.
default_keywords (str or dict) – The default keywords for the dialog
tip (str) – The tooltip
stretch (bool) – if True then add a stretch to the layout
- layOut()¶
Lay out the widgets for the dialog
- enforceBasis(method)¶
Ensure that methods that require a specific basis set use that basis set
- Parameters:
method (str) – The chosen method
- updateWidgets(keyword_dict)¶
Update the widgets to match the current keywords
- Parameters:
keyword_dict (dict) – The keywords to update widgets with
- Return type:
bool
- Returns:
True if everything was OK, False if something went wrong
- setUpDefaults()¶
Create a
PresetsDialog
instance for this dialog and set and validate default keywords
- restrictJaguarTheoryOptions(text)¶
Restrict the level of theory option in jaguar dialog box by text. Text should be one of the predefined options. Acceptable text values are “Recommended”, “Long range corrected DFT”, “Hybrid DFT”, “Meta GGA DFT”, “GGA DFT”, “LDA DFT”
- Parameters:
text (str) – specifier to select level of theory.
- setEditEnabled(state)¶
Set the enabled state of the edit button in the panel and the label after it
- Parameters:
state (bool) – Whether the widgets should be enabled
- isEditEnabled()¶
Return True if the edit button and label after it in the panel are enabled.
- Return type:
bool
- Returns:
True if enabled
- updatePanelLabel()¶
Update the label in the panel with the new options
- showForEdit()¶
Show the dialog
- showPresets()¶
Show the presets dialog for this dialog
- setKeywords(keywords, save_as_current=True)¶
Set the keywords for the dialog. Widgets that are not modified by the passed keywords will be reset to default.
- Parameters:
keywords (str or dict) – The keywords to set
save_as_current (bool) – Whether the keywords should be saved so cancelling the dialog doesn’t undo the changes
- getKeywordDict()¶
Get current keywords as a dict
- Return type:
dict
- Returns:
The current keywords as dict
- getKeywordString()¶
Get current keywords as a string
- Return type:
str
- Returns:
The current keywords as a string
- accept()¶
Update the keywords and close the dialog if the inputs are valid
- reject()¶
Close the dialog and reset it back to when it was opened
- reset(keywords=None, save_as_current=True)¶
Reset the dialog and update the widgets with any passed keywords
- Parameters:
keywords (dict or None) – The keywords to update widgets with
save_as_current (bool) – Whether the keywords should be saved so cancelling the dialog doesn’t undo the changes
- validate()¶
Validate the dialog keywords
- Return type:
bool or (bool, str)
- Returns:
True if everything is OK, (False, msg) if the state is invalid and an error should be shown to the user in a warning dialog.
- validateBasisSet(structs)¶
Validate that the passed structures are compatible with the current basis set
- Parameters:
structs (iterable) – The structures to validate
- Return type:
bool or (bool, str)
- Returns:
True if everything is OK, (False, msg) if the state is invalid and an error should be shown to the user.
- static makeDict(keywords)¶
Create a keyword dictionary if the passed keywords are in string format
- Parameters:
keywords (str or dict) – Keyword dict or string
- Return type:
dict
- Returns:
Keyword dictionary
- static makeString(keywords)¶
Create a keyword string if the passed keywords are in dictionary format
- Parameters:
keywords (str or dict) – Keyword dict or string
- Return type:
str
- Returns:
Keyword string
- assertInKeywords(keywords)¶
Assert that the passed keywords are a subset of the dialog’s keywords
Used for unittests.
- Parameters:
keywords (str or dict) – Keyword dict or string