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 a GNM or Atomic 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 also calcCrossCorr().

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 also calcCovariance().

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 also showFractVars() function.

showMode(mode, *args, **kwargs)[source]

Show mode array using plot().

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
  • abs (bool) – whether to take absolute values
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
  • abs (bool) – whether to take absolute values
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:

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 from showProjection() 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 or y, 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.

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:
  • modes (ModeSet, PCA, ANM, NMA) – 3 modes for which ellipsoid will be drawn.
  • onto – 3 modes onto which ellipsoid will be projected.
  • n_std (float) – Number of standard deviations to scale the ellipsoid.
  • scale (float) – Used for scaling the volume of ellipsoid. This can be obtained from sampleModes().
showSqFlucts(modes, *args, **kwargs)[source]

Show square fluctuations using showAtomicLines(). See also calcSqFlucts().

showRMSFlucts(modes, *args, **kwargs)[source]

Show square fluctuations using showAtomicLines(). See also calcRMSFlucts().

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.

showNormedSqFlucts(modes, *args, **kwargs)[source]

Show normalized square fluctuations via plot().

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(). When NMA models are passed instead of matrices, the functions could call calcCrossCorr() 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" and interpolation="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 a calcCovariance() 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 with show_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

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. See spring_layout() and draw_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 the Axes object for the upper plot, and the second return value is equivalent object for the left plot. The third return value is the AxesImage object for the matrix plot. The last return value is the Axes 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 a Figure 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
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 the Axes object for the upper plot, and the second return value is equivalent object for the left plot. The third return value is the AxesImage object for the matrix plot. The last return value is the Axes 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 a Figure 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
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 a Figure 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 a Figure 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
showSelectionMatrix(matrix, atoms, selstr_x=None, selstr_y=None, **kwargs)[source]

Show a matrix similarly to showAtomicMatrix but only for selected atoms based on selstr_x and selstr_y

Parameters:
  • selstr_x (str) – a selection string used with sliceAtomicData with axis=0 to slice the matrix in the x axis and label it with corresponding atoms
  • selstr_y (str) – a selection string used with sliceAtomicData with axis=1 to slice the matrix in the y axis and label it with corresponding atoms

If either of these are left as None, then no slicing is performed in that direction.