schrodinger.application.matsci.kmcgui module¶
Run initial calculations to store mobility information for all the structures in a system.
Copyright Schrodinger, LLC. All rights reserved.
- schrodinger.application.matsci.kmcgui.robust_log(value)¶
A sqrt function that is robust to missing (0.0) values
- Parameters:
value (float) – The value to take the log of
- Return type:
float
- Returns:
The log10 of value or 0 if value is 0
- schrodinger.application.matsci.kmcgui.get_charged_prop_value(info, selector)¶
Get the full property name for a property that appends ‘h’ or ‘e’ at the end based on the charge the property is for and the state of a charge radiobutton group
- Parameters:
info (PlotInfo) – The PlotInfo tuple for the property
selector (InputSelectorWithDatabase) – The database input selector
- Return type:
str
- Returns:
The full name of the property with the correct suffix
- schrodinger.application.matsci.kmcgui.get_plottable_table_data(info, selector)¶
Get the data from the SQL database
- Parameters:
info (PlotInfo) – The PlotInfo tuple for the property
selector (InputSelectorWithDatabase) – The database input selector
- Return type:
list
- Returns:
The values for prop in each row of table
- class schrodinger.application.matsci.kmcgui.PlotInfo(combo, title, function, charged, prop, table_getter)¶
Bases:
tuple
- charged¶
Alias for field number 3
- combo¶
Alias for field number 0
- function¶
Alias for field number 2
- prop¶
Alias for field number 4
- table_getter¶
Alias for field number 5
- title¶
Alias for field number 1
- schrodinger.application.matsci.kmcgui.get_field_strength_string(components)¶
Get the string indicating field direction and strength, to be shown in the UI
- Parameters:
components (list) – Field value components
- Return type:
str
- Returns:
A string indicating field direction and strength
- class schrodinger.application.matsci.kmcgui.PropertyCombo(text, items, values, layout, selector)¶
Bases:
SComboBox
A combobox used to select KMC properties
- values_changed¶
A
pyqtSignal
emitted by instances of the class.
- __init__(text, items, values, layout, selector)¶
Create a PropertyCombo instance
- Parameters:
text (str) – The label for the combobox. If no text is provided, there no label will be created and self.label will be None
items (list) – List of PlotInfo items to display in the combobox
values (dict) – Keys are property names (such as the .prop property from PropInfo objects (modified by the charge suffix), values are a list of values for that property. Initially, this dict can be empty and will be populated as properties are selected by the user. This prevents obtaining expensive properties unless needed, and allows multiple comboboxes to share the same property/value cache
layout (swidgets.SBoxLayout) – The layout to place this combobox into
selector (InputSelectorWithDatabase) – The database input selector
- setEnabled(state)¶
Set all child widgets to enabled state of state
- Parameters:
state (bool) – True if widgets should be enabled, False if not
- getValuesFromFile(info)¶
Get the values for info from the file
- Parameters:
info (PlotInfo) – The info object to get values for
- loadAndProcessData(*_, quiet=False, info=None, prop=None)¶
Get the values for the current or passed info, loading them from a file if need be. The values_changed signal will be emitted unless quiet is specified. Args are signal arguments and are ignored.
- Parameters:
quiet (bool) – Whether to emit the values_changed signal
info (PlotInfo) – The info object to load values for. If not supplied, the current selection will be used.
prop (str) – The property to load values for. If not supplied, the current selection will be used.
- reset()¶
Reset this combobox. Will emit the values_changed signal.
- getCurrentInfoAndProp()¶
Get the current info object and property name from the combobox
- Return type:
(PlotInfo, str)
- Returns:
The current info object and name of the associated property
- getCurrentInfoPropAndValues(quiet=True)¶
Get the current info object, property name and associated values from the combobox
- Return type:
(PlotInfo, str, list)
- Returns:
The current info object, property name and associated values. The values returned are the directly cached list, not a copy. So modifying the list will modify the values returned by future calls to this function.
- class schrodinger.application.matsci.kmcgui.DatabaseInfo(selector)¶
Bases:
QObject
Holds Schrodinger info from and about the SQL database
- pathChanged¶
A
pyqtSignal
emitted by instances of the class.
- __init__(selector)¶
Create a DatabaseInfo object
- Parameters:
selector (InputSelectorWithDatabase) – The input selector
- setPath(path)¶
Set the path
- Parameters:
path (str or pathlib.Path) – The path to the database file
- loadInfo()¶
Load info from the database
- getPath()¶
Get the current path
- Return type:
pathlib.Path or None
- Returns:
The current path to the database file, or None if none has been specified
- reset(force_emit=False)¶
Reset the data properties
- Parameters:
force_emit (bool) – Emit the pathChanged signal even if the path doesn’t actually change.
- getPathLabelText()¶
Get the string version of the path to the database file
- Return type:
str
- Returns:
The path to the database file. NO_DB is returned if the path is not set.
- class schrodinger.application.matsci.kmcgui.InputSelectorWithDatabase(parent, show_entry_cb=True, show_charge_combo=False, **options)¶
Bases:
InputSelector
Adds the ability to pick an SQL database instead of a structure file
- DATABASE = 'Database'¶
- database_changed¶
A
pyqtSignal
emitted by instances of the class.
- data_changed¶
A
pyqtSignal
emitted by instances of the class.
- USE_ENTRY_DB = ('included_entry', 'file')¶
- __init__(parent, show_entry_cb=True, show_charge_combo=False, **options)¶
Create a InputSelectorWithDatabase object
- Parameters:
parent (
af2.JobApp
) – The panel this selector will be part ofshow_entry_cb (bool) – Show the “Use database for this structure” checkbox
show_charge_combo (bool) – Show the charge combobox
- useEntryDatabaseToggled()¶
React to the the use existing database checkbox toggling
- showOrHideEntryDBFrame()¶
Set the visibility of the widgets that allow the user to request the database associated with the included entry
- checkEntryDatabase()¶
Check the current included entry to see if there is an associated database
- databaseComboChanged()¶
React to the value of the database combo changing
- setCharges(charges)¶
Set the charges available for this database
- Parameters:
charges (list) – The charges that have results in the database
- selectedCharge()¶
Get the currently selected charge
- Return type:
str
- Returns:
The currently selected charge
- inputState(true_state=False)¶
Get the current input state of the selector
- Parameters:
true_state (bool) – If True, DATABASE will be returned if DATABASE is the selected input. If False, INCLUDED_ENTRY will be returned if DATABASE is the selected input. INCLUDED_ENTRY is returned in this case because that is where the input structure will actually come from.
- Return type:
str
- Returns:
The input source. See true_state param.
- isDatabaseSource()¶
Check if DATABASE is the current input source
- Return type:
bool
- Returns:
Whether DATABASE is currently selected
- validate()¶
Validate the state of the selector
- Return type:
str or None
- Returns:
None if there are no issues. A message describing the problem if there is an issue.
- currentDBInfo(only_if_used=False)¶
Get the DatabaseInfo object for the current input selector settings
- Parameters:
only_if_used (bool) – If True, the included entry database info will only be returned if the user has elected to use it
- Return type:
DatabaseInfo
or None- Returns:
The info for the current settings, or None if the chosen input method does not allow for a database
- getDatabasePath()¶
Get the path to the currently-used existing database
- Return type:
pathlib.Path or None
- Returns:
The path to the existing database to use or None if no database should be used
- usingExistingDatabase()¶
Check if the user has specified an existing database be used
- Return type:
bool
- Returns:
Whether an existing database is used
- existingDatabaseJobFilename()¶
Get the filename for the existing database in the job directory.
Note: !! This method is only valid during job launch - i.e. after the setup method has been called. Calling at other times may incorrectly yield None or a stale file name from the previous job launch.
- Return type:
str or None
- Returns:
The name of the database from the most recent job launch that used an existing database. None may be returned if no such job has been launched or the current job does not use an existing database.
- reset()¶
Reset the widget
- setup(jobname)¶
- Prepares for job start. In addition to standard behavior, will copy the
chosen database to the job directory if DATABASE is the input source
- Parameters:
jobname (str) – The job name
- Return type:
bool
- Returns:
True if everything is OK, False if start should be aborted
- validateDBAndStructure()¶
Check that everything looks OK with the chosen database and given structure
- Return type:
str or None
- Returns:
None if there are no issues. A message describing the problem if there is an issue.
- browseFiles()¶
Allow the user to select an input file
In addition to parent class behavior, allows the selection of a SQL file
- handleNewDatabaseSource()¶
Do the work required if the user picks a new database file as the source
- findOrCreateDBEntry()¶
Find the structure that was used to generate the database and put it in the Workspace.
Raises a warning dialog if no structure can be found
- class schrodinger.application.matsci.kmcgui.Tab(master, name)¶
Bases:
SFrame
Base class for advanced options tabs
- __init__(master, name)¶
Create a Tab instance
- Parameters:
master (
AdvancedOptionsDialog
) – The dialogname (str) – The name of this tab
- setStructure(struct)¶
Set the structure for this tab
- Parameters:
struct (
schrodinger.structure.Structure
) – The structure for this tab
- setDatabase(database)¶
Set the database for this tab
- Parameters:
database (str) – The path to the database
- prepareForClose()¶
Prepare this tab for closing the dialog
- reset()¶
Reset this tab
- getFlags()¶
Get the command line flags for this tab
- Return type:
list
- Returns:
The command line flags generated by this tab’s options
- validate()¶
Validate the settings on this tab
- class schrodinger.application.matsci.kmcgui.MinMaxNeighborWidgets(master, text, parent_layout)¶
Bases:
SFrame
Widgets that give information about molecules with most or least neighbors
- __init__(master, text, parent_layout)¶
Create a MinMaxNeighborWidgets instance
- highlightMolecule()¶
Highlight the min/max molecule and its neighbors
- removeHighlights()¶
Remove any current highlights this instance has created
- setValues(mol_number, neighbors)¶
Set the values for this instance
- Parameters:
mol_number (int) – The molecule number that is the central molecule
neighbors (list) – The molecule numbers for molecules that are neighbors of the central molecule
- setEntryId(eid)¶
Set the entry ID
- Parameters:
eid (str) – The entry ID to use when highlighting
- reset(entry_id=None)¶
Reset these widgets
- Parameters:
eid (str) – The entry ID to use when highlighting
- class schrodinger.application.matsci.kmcgui.NeighborsTab(*args)¶
Bases:
Tab
The Nearest Neighbors tab
- HEAVY = 'Heavy atoms'¶
- ALL = 'All atoms'¶
- CUTOFF_COMBO_ITEMS = {'All atoms': 'all', 'Heavy atoms': 'heavy'}¶
- AVERAGE = 'Average number of nearest neighbors: %s'¶
- MAXIMUM = 'Maximum nearest neighbors: %s in molecule %s'¶
- MINIMUM = 'Minimum nearest neighbors: %s in molecule %s'¶
- TOTAL = 'Total number of pairs: %s'¶
- MAX_CUTOFF = 99.0¶
- __init__(*args)¶
Create a NeighborsTab instance
- resetToDB()¶
Reset the settings to those from the existing database
- removeHighlights()¶
Remove all Workspace highlights created by this tab
- cutoffChanged()¶
React to the neighbor cutoff changing
- setRecalcButtonState()¶
Set the Recalc button enabled/disabled based on whether the shown stats are for the current settings
- setStructure(struct)¶
See parent class
- recalculate()¶
Find all pairs based on the current settings and update the statistics
- setDatabase(database)¶
See parent class
- readFromDatabase()¶
Read all the pair information from the database and update stats
- resetStats()¶
Reset the labels and widgets that present stats to the user
- computeStats()¶
Compute the statistics for the current set of dimers
- setMaxCutoff(struct)¶
Make sure the cutoff can’t be any larger than the sides of the PBC
- Parameters:
struct (
schrodinger.structure.Structure
or None) – The current structure if one exists.
- reset(struct=None)¶
Reset this tab, using the given structure (if given)
- Parameters:
struct (
schrodinger.structure.Structure
) – The structure for this tab
- prepareForClose()¶
Remove any Workspace highlights before closing
- getPairInfo()¶
Get the current pair settings
- Return type:
float, str
- Returns:
The current pair settings, (cutoff distance, atom type)
- getFlags()¶
Get the command line flags based on the current pair settings
- Return type:
list
- Returns:
The command line flags as a list of str
- setEditable(state)¶
Set the editable state of the widgets in this tab
- Parameters:
state (bool) – Whether the widgets should be editable
- schrodinger.application.matsci.kmcgui.add_votca_logo(layout)¶
Add the votca logo to the given layout
- Parameters:
layout (QLayout) – The layout to add the logo to
- Return type:
- Returns:
The frame containing the logo