Plotting Functions¶
This module defines plotting functions for protein dynamics analysis.
Plotting functions are called by the name of the plotted data/property
and are prefixed with show
. Function documentations refers to the
matplotlib.pyplot
function utilized for actual plotting. Arguments
and keyword arguments are passed to the Matplotlib functions.
-
showContactMap
(enm, **kwargs)[source]¶ Show contact map using
showAtomicMatrix()
. enm can be either aGNM
orAtomic
object.
-
showCrossCorr
(modes, *args, **kwargs)[source]¶ Show cross-correlations using
showAtomicMatrix()
. By default, origin=lower and interpolation=bilinear keyword arguments are passed to this function, but user can overwrite these parameters. See alsocalcCrossCorr()
.
-
showCovarianceMatrix
(modes, *args, **kwargs)[source]¶ Show 3Nx3N covariance matrix (or NxN matrix for GNM) using
showAtomicMatrix()
. By default, origin=lower and interpolation=bilinear keyword arguments are passed to this function, but user can overwrite these parameters. See alsocalcCovariance()
.
-
showCumulOverlap
(mode, modes, *args, **kwargs)[source]¶ Show cumulative overlap using
plot()
.Parameters: modes ( ModeSet
,ANM
,GNM
,PCA
) – multiple modes
-
showFractVars
(modes, *args, **kwargs)[source]¶ Show fraction of variances using
bar()
. Note that mode indices are incremented by 1.
-
showCumulFractVars
(modes, *args, **kwargs)[source]¶ Show fraction of variances of modes using
plot()
. Note that mode indices are incremented by 1. See alsoshowFractVars()
function.
-
showOverlap
(mode, modes, *args, **kwargs)[source]¶ Show overlap
bar()
.Parameters: - mode (
Mode
,Vector
,ModeSet
,ANM
,GNM
,PCA
) – a single mode/vector or multiple modes. If multiple modes are provided, then the overlaps are calculated by going through them one by one, i.e. mode i from this set is compared with mode i from the other set. - modes (
ModeSet
,ANM
,GNM
,PCA
) – multiple modes
- mode (
-
showOverlaps
(mode, modes, *args, **kwargs)¶ Show overlap
bar()
.Parameters: - mode (
Mode
,Vector
,ModeSet
,ANM
,GNM
,PCA
) – a single mode/vector or multiple modes. If multiple modes are provided, then the overlaps are calculated by going through them one by one, i.e. mode i from this set is compared with mode i from the other set. - modes (
ModeSet
,ANM
,GNM
,PCA
) – multiple modes
- mode (
-
showOverlapTable
(modes_x, modes_y, **kwargs)[source]¶ Show overlap table using
pcolor()
. modes_x and modes_y are sets of normal modes, and correspond to x and y axes of the plot. Note that mode indices are incremented by 1. List of modes is assumed to contain a set of contiguous modes from the same model.Default arguments for
pcolor()
:cmap='jet'
norm=matplotlib.colors.Normalize(0, 1)
-
showProjection
(ensemble=None, modes=None, projection=None, *args, **kwargs)[source]¶ Show a projection of conformational deviations onto up to three normal modes from the same model.
Parameters: - ensemble (
Ensemble
,Conformation
,Vector
,Trajectory
) – an ensemble, trajectory or a conformation for which deviation(s) will be projected, or a deformation vector - modes (
Mode
,ModeSet
,NMA
) – up to three normal modes - show_density (bool) – whether to show a density histogram or kernel density estimate rather than a 2D scatter of points or a 1D projection by time (number of steps) on the x-axis. This option is not valid for 3D projections. Default is True for 1D and False for 2D to maintain old behaviour.
- use_weights (bool) – whether to use weights in a density histogram or kernel density estimate or for the size of points in 2D scatter of points or a 1D projection by time (number of steps) on the x-axis. This option is not valid for 3D projections. Default is False to maintain old behaviour.
- weights (int, list,
ndarray
) – weights for histograms or point sizes Default is to use ensemble.getData(‘size’) - color (str, list) – a color name or a list of color names or values,
default is
'blue'
- label (str, list) – label or a list of labels
- marker (str, list) – a marker or a list of markers, default is
'o'
- linestyle (str) – line style, default is
'None'
- text (list) – list of text labels, one for each conformation
- fontsize (int) – font size for text labels
The projected values are by default converted to RMSD. Pass
rmsd=False
to use projection itself.Matplotlib function used for plotting depends on the number of modes:
- ensemble (
-
showCrossProjection
(ensemble, mode_x, mode_y, scale=None, *args, **kwargs)[source]¶ Show a projection of conformational deviations onto modes from different models using
plot()
. This function differs fromshowProjection()
by accepting modes from two different models.Parameters: - ensemble (
Ensemble
,Conformation
,Vector
,Trajectory
) – an ensemble or a conformation for which deviation(s) will be projected, or a deformation vector - mode_x (
Mode
,Vector
) – projection onto this mode will be shown along x-axis - mode_y (
Mode
,Vector
) – projection onto this mode will be shown along y-axis - scale (str) – scale width of the projection onto mode
x
ory
, best scaling factor will be calculated and printed on the console, absolute value of scalar makes the with of two projection same, sign of scalar makes the projections yield a positive correlation - scalar (float) – scalar factor for projection onto selected mode
- color (str, list) – a color name or a list of color name, default is
'blue'
- label (str, list) – label or a list of labels
- marker (str, list) – a marker or a list of markers, default is
'o'
- linestyle (str) – line style, default is
'None'
- text (list) – list of text labels, one for each conformation
- fontsize (int) – font size for text labels
This function uses calcProjection and its arguments can be passed to it as keyword arguments.
The projected values are by default converted to RMSD. Pass
rmsd=False
to calculate raw projection values. See Plotting for a more elaborate example.Likewise, normalisation is applied by default and can be turned off with
norm=False
.- ensemble (
-
showEllipsoid
(modes, onto=None, n_std=2, scale=1.0, *args, **kwargs)[source]¶ Show an ellipsoid using
plot_wireframe()
.Ellipsoid volume gives an analytical view of the conformational space that given modes describe.
Parameters:
-
showSqFlucts
(modes, *args, **kwargs)[source]¶ Show square fluctuations using
showAtomicLines()
. See alsocalcSqFlucts()
.
-
showRMSFlucts
(modes, *args, **kwargs)[source]¶ Show square fluctuations using
showAtomicLines()
. See alsocalcRMSFlucts()
.
-
showScaledSqFlucts
(modes, *args, **kwargs)[source]¶ Show scaled square fluctuations using
plot()
. Modes or mode sets given as additional arguments will be scaled to have the same mean squared fluctuations as modes.
-
resetTicks
(x, y=None)[source]¶ Reset X (and Y) axis ticks using values in given array. Ticks in the current figure should not be fractional values for this function to work as expected.
-
showDiffMatrix
(matrix1, matrix2, *args, **kwargs)[source]¶ Show the difference between two cross-correlation matrices from different models. For given matrix1 and matrix2 show the difference between them in the form of (matrix2 - matrix1) and plot the difference matrix using
showAtomicMatrix()
. WhenNMA
models are passed instead of matrices, the functions could callcalcCrossCorr()
function to calculate the matrices for given modes.To display the absolute values in the difference matrix, user could set abs keyword argument True.
By default,
origin="lower"
andinterpolation="bilinear"
keyword arguments are passed to this function, but user can overwrite these parameters.
-
showMechStiff
(stiffness, atoms, **kwargs)[source]¶ Show mechanical stiffness matrix using
imshow()
. By default,origin="lower"
keyword arguments are passed to this function, but user can overwrite these parameters.
-
showNormDistFunct
(model, coords, **kwargs)[source]¶ Show normalized distance fluctuation matrix using
imshow()
. By default,origin="lower"
keyword arguments are passed to this function, but user can overwrite these parameters.
-
showPairDeformationDist
(model, coords, ind1, ind2, *args, **kwargs)[source]¶ Show distribution of deformations in distance contributed by each mode for selected pair of residues ind1 ind2 using
plot()
.
-
showMeanMechStiff
(stiffness, atoms, header, chain='A', *args, **kwargs)[source]¶ Show mean value of effective spring constant with secondary structure taken from MechStiff. Header is needed to obatin secondary structure range. Using
"jet_r"
as argument color map will be reverse (similar to VMD program coding).
-
showPerturbResponse
(model, atoms=None, show_matrix=True, select=None, **kwargs)[source]¶ Plot the PRS matrix with the profiles along the right and bottom.
If atoms are provided then residue numbers can be used from there. model and atoms must have the same number of atoms. atoms must be an
Atomic
instance.Parameters: - model (
NMA
,ndarray
) – any object with acalcCovariance()
method from which to calculate a PRS matrix (e.g.ANM
instance) or a PRS matrix itself - atoms (
AtomGroup
) – a :class: AtomGroup instance for matching residue numbers and chain identifiers - select – a
Selection
instance or selection string for showing residue-specific profiles. This can only be used withshow_matrix=False
. - show_matrix (bool) – whether to show the matrix, default is True
- suppress_diag (bool) – whether to suppress the diagonal default is True
Tye select: Selection
, str- model (
-
showTree
(tree, format='matplotlib', **kwargs)[source]¶ Given a tree, creates visualization in different formats.
- arg tree: Tree needs to be unrooted and should be generated by tree
- generator from Phylo in biopython, which is used by
calcTree()
type tree:
Tree
- arg format: depending on the format, you will see different forms of trees.
- Acceptable formats are
"plt"
(or"mpl"
or"matplotlib"
),"ascii"
and"networkx"
. Default is"matplotlib"
.
type format: str
keyword font_size: font size for branch labels type font_size: float
keyword line_width: the line width for each branch type line_width: float
-
showTree_networkx
(tree, node_size=20, node_color='red', node_shape='o', withlabels=True, scale=1.0, iterations=500, k=None, **kwargs)[source]¶ Given a tree, creates visualization using
networkx
. Seespring_layout()
anddraw_networkx_nodes()
for more details.- arg tree: Tree needs to be unrooted and should be generated by tree
- generator from Phylo in biopython, which is used by
calcTree()
type tree:
Tree
-
showAtomicMatrix
(matrix, x_array=None, y_array=None, atoms=None, **kwargs)[source]¶ Show a matrix using
imshow()
. Curves on x- and y-axis can be added. The first return value is theAxes
object for the upper plot, and the second return value is equivalent object for the left plot. The third return value is theAxesImage
object for the matrix plot. The last return value is theAxes
object for the color bar.Parameters: - matrix (
ndarray
) – matrix to be displayed - x_array (
ndarray
) – data to be plotted above the matrix - y_array (
ndarray
) – data to be plotted on the left side of the matrix - percentile (float) – A percentile threshold to remove outliers, i.e. only showing data within p-th to 100-p-th percentile.
- atoms – a :class: AtomGroup instance for matching residue numbers and chain identifiers
- chain (bool) – display a bar at the bottom to show chain separations. If set to None, it will be decided depends on whether atoms is provided. Default is None.
- domain (bool) – the same with chains but show domain separations instead. atoms needs to have domain data associated to it. Default is None.
- figure (
Figure
, int, str) – if set to None, then a new figure will be created if auto_show is True, otherwise it will be plotted on the current figure. If set to a figure number or aFigure
instance, no matter what ‘auto_show’ value is, plots will be drawn on the figure. Default is None. - interactive (bool) – turn on or off the interactive options
- matrix (
-
pimshow
(matrix, x_array=None, y_array=None, atoms=None, **kwargs)¶ Show a matrix using
imshow()
. Curves on x- and y-axis can be added. The first return value is theAxes
object for the upper plot, and the second return value is equivalent object for the left plot. The third return value is theAxesImage
object for the matrix plot. The last return value is theAxes
object for the color bar.Parameters: - matrix (
ndarray
) – matrix to be displayed - x_array (
ndarray
) – data to be plotted above the matrix - y_array (
ndarray
) – data to be plotted on the left side of the matrix - percentile (float) – A percentile threshold to remove outliers, i.e. only showing data within p-th to 100-p-th percentile.
- atoms – a :class: AtomGroup instance for matching residue numbers and chain identifiers
- chain (bool) – display a bar at the bottom to show chain separations. If set to None, it will be decided depends on whether atoms is provided. Default is None.
- domain (bool) – the same with chains but show domain separations instead. atoms needs to have domain data associated to it. Default is None.
- figure (
Figure
, int, str) – if set to None, then a new figure will be created if auto_show is True, otherwise it will be plotted on the current figure. If set to a figure number or aFigure
instance, no matter what ‘auto_show’ value is, plots will be drawn on the figure. Default is None. - interactive (bool) – turn on or off the interactive options
- matrix (
-
showAtomicLines
(*args, **kwargs)[source]¶ Show a plot with the option to use residue numbers and include chain/domain color bars using provided atoms.
Parameters: - atoms – a :class: AtomGroup instance for matching residue numbers and chain identifiers.
- chain (bool) – display a bar at the bottom to show chain separations. If set to None, it will be decided depends on whether atoms is provided. Default is None.
- domain (bool) – the same as chain but show domain separations instead. atoms needs to have domain data associated to it. Default is None.
- gap (bool) – whether to show the gaps in the atoms or not. Default is False.
- overlay (bool) – whether to overlay the curves based on the chain separations in atoms or not. Default is False.
- figure (
Figure
, int, str) – if set to None, then a new figure will be created if auto_show is True, otherwise it will be plotted on the current figure. If set to a figure number or string or aFigure
instance, no matter what ‘auto_show’ value is, plots will be drawn on the figure. Default is None. - final (bool) – if set to False, chain and domain will be set to False no matter what their values are. This is used to stack plots onto one another, and show only one domain/chain bar.
-
pplot
(*args, **kwargs)¶ Show a plot with the option to use residue numbers and include chain/domain color bars using provided atoms.
Parameters: - atoms – a :class: AtomGroup instance for matching residue numbers and chain identifiers.
- chain (bool) – display a bar at the bottom to show chain separations. If set to None, it will be decided depends on whether atoms is provided. Default is None.
- domain (bool) – the same as chain but show domain separations instead. atoms needs to have domain data associated to it. Default is None.
- gap (bool) – whether to show the gaps in the atoms or not. Default is False.
- overlay (bool) – whether to overlay the curves based on the chain separations in atoms or not. Default is False.
- figure (
Figure
, int, str) – if set to None, then a new figure will be created if auto_show is True, otherwise it will be plotted on the current figure. If set to a figure number or string or aFigure
instance, no matter what ‘auto_show’ value is, plots will be drawn on the figure. Default is None. - final (bool) – if set to False, chain and domain will be set to False no matter what their values are. This is used to stack plots onto one another, and show only one domain/chain bar.
-
showDomainBar
(domains, x=None, loc=0.0, axis='x', **kwargs)[source]¶ Plot a bar on top of the current axis which is colored based on domain separations.
Parameters: - domains (list, tuple,
ndarray
) – a list of domain labels - loc (float) – relative position of the domain bar. 0 means at bottom/left and 1 means at top/right
- axis (str) – on which axis the bar will be plotted. It can be either x or y
- text (bool) – whether to show the text or not. Default is True
- text_loc (str) – location of text labels. It can be either above or below
- text_color (str, tuple, list) – color of the text labels
- color (dict) – a dictionary of colors where keys are the domain names
- relim (bool) – whether to rescale the axes’ limits after adding the bar. Default is True
- domains (list, tuple,