schrodinger.application.matsci.density_analysis_widget module¶
- class schrodinger.application.matsci.density_analysis_widget.ASLSelectorCheckableComboBox(text=None, item_name='item', layout=None, items=None, max_selected_items=None, command=None, stretch=True, width=80, **kwargs)¶
Bases:
MultiComboWithCount
Combobox for ASL names with check-able options
- addItems(*args, **kwargs)¶
Overwrite parent to select all the items when new item is added
- class schrodinger.application.matsci.density_analysis_widget.MeasurementTableFrame(panel)¶
Bases:
SFrame
Tab containing the pick peaks from the plot.
- AXIS_COL = 'Axis/Plane'¶
- NAME_COL = 'Name'¶
- LENGTH_COL = 'Length (Å)'¶
- ASL_COL = 'ASL'¶
- LINE_COL = 'MLine'¶
- COL_NAMES = ['Axis/Plane', 'Name', 'Length (Å)', 'ASL']¶
- __init__(panel)¶
- Parameters:
panel (
StructureFactorViewerPanel
) – Parent panel object
- updateData(mlines)¶
Update table with all the measurement lines
- Parameters:
mlines (list(MeasurementLine)) – List of all measurement lines in the plots
- exportData()¶
Export the qpeaks from the table and corresponding real units lengths.
- deleteSelectedRows()¶
Delete the selected rows from the table.
- reset()¶
Reset the frame widgets
- class schrodinger.application.matsci.density_analysis_widget.CustomToolbar(canvas)¶
Bases:
NavToolbar
Custom NavToolbar to contain toolbar option to add measure lines to the plot
- __init__(canvas)¶
Create the toolbar
- Parameters:
canvas (schrodinger.mpl_backend_agg.FigureCanvasQTAgg) – The matplotlib canvas
- zoom(*args)¶
Modify mathplotlib zoom function so zoom button and measure buttons are exclusive.
- pan(*args)¶
Modify mathplotlib pan function so pan button and peak edit buttons are exclusive.
- resetZoomBtn()¶
Reset zoom button state
- resetPanBtn()¶
Reset zoom button state
- resetMeasureBtn()¶
Reset measure button state to unchecked
- measureDepth()¶
Connect to edit peaks function in the plot and make checked icons (zoom and pan) unchecked. Also add the mode message to the plot.
- reset()¶
Reset toolbar
- class schrodinger.application.matsci.density_analysis_widget.MeasurementLine(plot_frame, xval, yval)¶
Bases:
object
Object containing Line2D and Annotations in the plot and its value.
- __init__(plot_frame, xval, yval)¶
Create plot canvas with updated toolbar,
- Parameters:
plot_frame (PlotFrame) – Plot frame containing the plot.
xval (float) – x value at which the first point is to be drawn
yval (float) – y value at which the first point is to be drawn
- checkFinalPointRange()¶
A dialog box is displayed with a message if the projected point is outside the plot area.
- addFinalPoint(xval, yval)¶
Add the 2nd point and related annotation. If plot type is linear then y value will be ignored and taken from the first point.
- Parameters:
xval (float) – x value at which the second point is to be drawn
yval (float) – y value at which the second point is to be drawn
- getMinDistance(xval, yval)¶
Get the minimum distance of the input point with the two data points.
- Parameters:
xval (float) – x value of the point to calculate the distance from
yval (float) – y value of the point to calculate the distance from
- Return float:
Minimum distance of from the measurement point
- addAnnotation()¶
Replot the the annotation and markers
- class schrodinger.application.matsci.density_analysis_widget.BasePlotFrame(panel, parent_tab, multislider_option=False)¶
Bases:
SFrame
Class to initialize all the plots.
- __init__(panel, parent_tab, multislider_option=False)¶
- Parameters:
panel (af2.App) – Parent panel object
parent_tab (QtWidgets.Qwidget) – Parent widget.
multislider_option (bool) – True if multislider option is present in the panel, else False.
- loadData(data, asls, bin_edges, asl_names)¶
Read and initialize data.
- Parameters:
data (dict) – dictionary containing all the data for each asl.
asls (list) – list of asls used in calculations.
bin_edges (dict) – dictionary containing bin edges of ‘x’, ‘y’, and ‘z’ axis.
asl_names (dict) – dictionary where the key is the asl and the value is the associated given name for it.
- getCurrentASLData(asl, axis=None)¶
Get the data for the passed asl for the current selected time range
- Parameters:
asl (str) – asl for which data is to be found
axis (str or None) – Axis for which data is needed. If None it will get the current select axis in combobox
- Return numpy.ndarray
numpy.ndarray
: The average data for the asl in the current time range
- getSelectedAslNames()¶
The selected asl names in the panel
- Return list(str):
List of asl(s) for 1D plot and the list of single asl str for the 2D plot
- getCurrentAxis()¶
Get the current selected axis. For 1D plot it will be X,Y, or Z. And for 2D plot it will be XY, XZ, or YZ.
- Return str:
name of the selected axis
- removeClosestMLine(xval, yval)¶
Find the closest measurement line to the passed point and remove it from the plot.
- Parameters:
xval (float) – x value of the point to calculate the distance from and remove
yval (float) – y value of the point to calculate the distance from and remove
- getAcuteAngle(vec_A, vec_B)¶
Returns the acute angle in degrees.
- Parameters:
vec_A (numpy.array) – vector representation of vec_A
vec_B (numpy.array) – vector representation of vec_B
- Return type:
float
- Returns:
The acute angle between vec_A and vec_B
- getDiagonalFinalPoint(s_point, e_point)¶
Returns the projection of the end point of the line such that it is parallel to x=y or x=-y.
- Parameters:
s_point (numpy.array) – start point of the line
e_point (numpy.array) – end point of the line
- Return type:
float, float
- Returns:
The projected x and y value on x=y or x=-y line.
- getFinalPoint(e_x, e_y)¶
Returns the final endpoint of the line.If the shift key is not pressed, the original point are returned. Else, the projected point are returned such that the line is parallel to x-axis or y-axis or x=y or x=-y.
- Parameters:
e_x (float) – x coordinate of the endpoint of the line.
e_y (float) – y coordinate of the endpoint of the line.
- Return type:
float, float
- Returns:
The projected point parallel to x=0 or y=0 or x=y or x=-y or the original point.
- isShiftPressed()¶
Whether the shift key is pressed.
- Return type:
boolean
- Returns:
state of the shift key press
- measureDepth(event=None)¶
React to button press. If measure depth is checked then it will add a single point on 1st left click and will add point and annotation on next click (left or right). If the 1st click is right click it will find the closest measurement line and delete it.
- replot()¶
Replot the plot
- reset()¶
Clear and reset stored data and replot to get default plot.
- addMeasurement(mline)¶
Add the measurement line to the measurement line list.
- Parameters:
mline (MeasurementLine) – The MeasurementLine to add to the list
- class schrodinger.application.matsci.density_analysis_widget.ImagePlotFrame(panel, parent_tab, multislider_option=False)¶
Bases:
BasePlotFrame
Class to setup a frame with projection density plot
- PLOT_TYPE = 'Planes'¶
- SLICES = dict_values(['XY', 'XZ', 'YZ'])¶
- plotData()¶
Plot data with current selection
- setAxisLabels()¶
Set axis label based on axis selection
- getMList(asl=None, axis=None)¶
Return the current list of measurement lines
- Parameters:
asl (str or None) – Get the measurement lines for the passed asl, if passed None it will get for currently selected asl
axis (str or None) – Get the measurement lines for the passed axis, if passed None it will get for currently selected axis
- Return list(MeasurementLine):
list of measurement lines
- class schrodinger.application.matsci.density_analysis_widget.LinePlotFrame(*args, image_width=0.85, **kwargs)¶
Bases:
BasePlotFrame
Class to setup a frame with line plot of 1d density profile.
- PLOT_TYPE = 'Axis'¶
- SLICES = ['X', 'Y', 'Z']¶
- __init__(*args, image_width=0.85, **kwargs)¶
initialize the Line plot frame. See base class for input arguments.
- Parameters:
image_width (float) – Scale with plot with image_width value. This allows legend to be shown outside the plot. The acceptable values are between 0 and 1.
- setAxisLabels()¶
Set axis label based on axis selection
- getMultisliderASLData(asl, axis=None)¶
Get the data for the passed asl for the current selected time range for the multislider
- Parameters:
asl (str) – asl for which data is to be found
axis (str or None) – Axis for which data is needed. If None it will get the current select axis in combobox
- Return type:
numpy.ndarray
- Returns:
The data points for the asl in the current time range
- plotData()¶
Plot data with current selection.
- plotMultisliderData(x_data, y_data_asl, asl_label)¶
Plot data for discrete_slider selection.
- Parameters:
x_data (list(float)) – The x-axis datapoints for the asl in the current time range
y_data_asl (list of list(float)) – A list of y-axis datapoints. Each inner list represents the dependent variable values to be plotted against
x_data
.asl_label (str) – The label representing the ASL for which data is to be plotted.
- Return y_data:
A flattened list of all y-axis data points that were plotted.
- Rtype y_data:
list(float)
- plotLayout(x_data, y_data)¶
Layout for plot in the panel.
- Parameters:
x_data (list(float)) – Data points respresenting the x-axis values.
y_data (list(float)) – Data points respresenting the y-axis values.
- getMList(axis=None, **kwargs)¶
Return the current list of measurement lines
- Parameters:
axis (str or None) – Get the measurement lines for the passed axis, if passed None it will get for currently selected axis
- Return list(MeasurementLine):
list of measurement lines
- class schrodinger.application.matsci.density_analysis_widget.DensityTab(panel, dimension, parent=None, include_all_and_none=False, multislider_option=False)¶
Bases:
SFrame
Tab containing plot selection options and plot.
- __init__(panel, dimension, parent=None, include_all_and_none=False, multislider_option=False)¶
- Parameters:
panel (af2.App) – Parent panel object
dimension (int) – the dimension of the plot, 1 will create tab for line plot and 2 will create image plot.
parent (QtWidgets.Qwidget) – The parent widget for this selector.
include_all_and_none (bool) – Include all and none options in the 1D line plot
multislider_option (bool) – True if multislider option is present in the panel, else False.
- toggleSlider()¶
Displays selected slider in the panel.
- setSliderOption(layout)¶
Display radiobutton with slider selection options.
- Parameters:
layout (QBoxLayout) – The layout to place the radiobutton into
- axisChanged()¶
React to change in axis
- loadData(data, asls, bin_edges, asl_names, add_item=True)¶
Load the data to combobox and plot
- Parameters:
data (dict) – dictionary containing all the data for each asl
asls (list) – list of asls used in calculations
bin_edges (dict) – dictionary containing bin edges of ‘x’, ‘y’, and ‘z’ axis.
asl_names (dict) – dictionary where the key is the asl and the value is the associated given name for it.
- reset()¶
Reset the tab.