schrodinger.application.jaguar.gui.utils module

Utility functions and classes for the Jaguar GUIs

class schrodinger.application.jaguar.gui.utils.EnhancedComboBox(parent=None, items=None, default_item='', default_index=0, command=None, nocall=False, layout=None, tip='', itemdict=None)

Bases: schrodinger.ui.qt.swidgets.SComboBox

A combo box for use in the Jaguar GUI with several Pythonic enhancements

setCurrentMmJagData(jag_input, keyword, setting_name)

Set the combo box selection based on the specified mmjag setting The combo box user data must match the mmjag keyword values. If no matching setting is found, a warning will be issued.

Parameters:
  • jag_input (schrodinger.application.jaguar.input.JaguarInput) – A JaguarInput object containing the settings to load
  • keyword (str) – The mmjag keyword to load
  • setting_name (str) – The name of the setting that is being set. This name will only be used when issuing warnings.
exception schrodinger.application.jaguar.gui.utils.JaguarSettingError

Bases: exceptions.Exception

An exception indicating that there was an error with the user-specified Jaguar settings

exception schrodinger.application.jaguar.gui.utils.JaguarSettingWarning

Bases: exceptions.UserWarning

A warning indicating that a user-specified Jaguar settings could not be loaded into the GUI

class schrodinger.application.jaguar.gui.utils.ProjTableLikeView(parent=None)

Bases: PyQt5.QtWidgets.QTableView

A table view that mimics the selecting and editing behaviors of the Project Table

commitDataToSelected(editor, index, delegate)

Commit data to all selected cells in the column that is currently being edited.

Parameters:
  • editor (PyQt5.QtWidgets.QWidget) – The editor being used to enter data
  • index (PyQt5.QtCore.QModelIndex) – The index being edited
  • delegate (PyQt5.QtWidgets.QAbstractItemDelegate) – The delegate used to create the editor
selectionCommand(index, event=None)

Don’t update the current selection when using the keyboard to navigate or when clicking on a selected editable item.

Parameters:
  • index (PyQt5.QtCore.QModelIndex) – The newly selected index
  • event (PyQt5.QtCore.QEvent) – The event that triggered the index change
Returns:

A flag describing how the selection should be updated

Return type:

int

setItemDelegateForColumn(column, delegate, connect_selected=False)

Set the delegate for the specified column. Note that this function adds the optional connect_selected argument not present in the QTableView function.

Parameters:
  • column (int) – The column to set the delegate for
  • delegate (PyQt5.QtWidgets.QAbstractItemDelegate) – The delegate to set
  • connect_selected (bool) – If True, the delegate’s commitDataToSelected signal will be connected
class schrodinger.application.jaguar.gui.utils.PropertiesTableWidget(*args, **kwargs)

Bases: PyQt5.QtWidgets.QTableWidget

A QTableWidget for the Properties table on the Properties tab

shrinkRowHeight()

Shrink the row height to eliminate unnecessary vertical padding

sizeHint()

Set the preferred size of the table so that all rows are visible.

class schrodinger.application.jaguar.gui.utils.Solvent(name, keyvalue, dielectric, radius, weight, density)

Bases: tuple

density

Alias for field number 5

dielectric

Alias for field number 2

keyvalue

Alias for field number 1

name

Alias for field number 0

radius

Alias for field number 3

weight

Alias for field number 4

class schrodinger.application.jaguar.gui.utils.SpinTreatment

Bases: enum.Enum

An enumeration of the possible spin treatment settings. Enum values correspond to mmjag settings.

Automatic = 2
NA = None
Restricted = 0
Unrestricted = 1
unrestrictedAvailable()

Does the current spin treatment setting allow for an unrestricted waveform?

Returns:True for unrestricted or automatic spin treatments. False otherwise.
Return type:bool
class schrodinger.application.jaguar.gui.utils.WorkspaceInclusionCheckBox(parent=None)

Bases: PyQt5.QtWidgets.QCheckBox

A checkbox that is skinned to look like the Project Table workspace inclusion checkbox. This checkbox is used in the Transition State and IRC tabs.

Note:This skinning could be done using a style sheet, but that requires separate images for checked + disabled and unchecked + disabled. By using a QIcon, these disabled images are generated automatically.
paintEvent(event)
schrodinger.application.jaguar.gui.utils.atom_name_regex = <_sre.SRE_Pattern object>

A regular expression that matches Jaguar atom names. Group 1 of the match is the element and group 2 is the number.

schrodinger.application.jaguar.gui.utils.atom_name_sort_key(atom_name)

Convert a Jaguar atom name into a key for use in sorting by number

Parameters:atom_name (str) – The atom name
Returns:A tuple of (atom number, element)
Return type:tuple
schrodinger.application.jaguar.gui.utils.calculate_num_protons(struc)

Calculate the number of protons in the specified structure

Parameters:struc (schrodinger.structure.Structure) – The structure to calculate protons in
Returns:The number of protons
Return type:int
schrodinger.application.jaguar.gui.utils.catch_jag_errors(func)

A decorator that will display any `JaguarSettingError`s in an error dialog.

Returns:If the decorated function raised a JaguarSettingError, False will be returned. Otherwise, the return value of the decorated function will be returned.
schrodinger.application.jaguar.gui.utils.count_num_strucs(input_selector)

Count the number of structures currently specified in the input selector widget. Since Jaguar can’t accept more than three structures, this function will return 4 for all values >= 4.

Parameters:input_selector (schrodinger.ui.qt.input_selector.InputSelector) – The input selector widget
schrodinger.application.jaguar.gui.utils.find_key_for_value(mydict, value)

This function finds key corresponding to a given value in a dictionary. We assume here that values in a given dictionary are unique.

Parameters:
  • mydict (dict) – dictionary
  • value – value in dictionary. It can be any hashable type.
Returns:

key, which can be any type.

schrodinger.application.jaguar.gui.utils.generate_job_name(struc_name, task_name, theory, basis)

Generate an appropriate job name for a job with the specified settings. Any settings that are specified as None will be omitted from the job name. If a directory or file with the specified name exists in the current directory, an integer will be appended to the job name.

Note:

If generating multiple job names, the input for each job must be saved before the next job name is generated. Otherwise, this function will not be able to append the appropriate integer.

Parameters:
  • struc_name (str or NoneType) – The structure title
  • task_name (str or NoneType) – The task name (i.e. a shortened version of the panel name
  • theory (str or NoneType) – The theory method. Should be “HF”, “LMP2”, or the DFT functional.
  • basis (str or NoneType) – The basis name
Returns:

The job name

Return type:

str

schrodinger.application.jaguar.gui.utils.get_atom_info(ws_atom_num)

Get information about the specified workspace atom

Parameters:ws_atom_num (int) – The workspace atom number
Returns:A tuple of - The atom name (after Jaguar atom naming has been applied) - The atom number relative to the entry (rather than relative to the
workspace structure)
  • The entry id
  • The entry title
Return type:tuple
schrodinger.application.jaguar.gui.utils.validate_le_float_input(widget, msg=None)

This function checks whether a given line edit widget has a valid input. If it does it will return a float value. Otherwise an exception will be raised. This function should only be used for line edits used to enter float numbers.

Parameters:
  • widget (QLineEdit) – line edit widget
  • msg (str) – text of exception error message
Returns:

valid float number

Return type:

float

schrodinger.application.jaguar.gui.utils.warn_about_mmjag_unknowns(jag_input, parent=None)

If the JaguarInput object contains any unknown keywords, warn the user about the unknowns and ask them if they want to continue.

Parameters:
Returns:

True if we should continue (either there were no unknown keywords, or there were but the user wants to continue). False if we should cancel.

Return type:

bool