pylab_aux - auxiliary functions for plotting with pylab¶
This module serves as a collection of useful routines for data plotting with matplotlib.
Generic plotting¶
plot_line()- plot a line.
scatter_trend()- plot a scatter plot with a regression line.
plot_function_3d()- plot a 3D graph of a function of two variables.
plot_function_contour()- plot a contour graph of a function of two variables.
Spectrum visualization¶
plot_spectrum()- plot a single spectrum (m/z vs intensity).
annotate_spectrum()- plot and annotate peaks in MS/MS spectrum.
mirror()- create a mirror plot of two spectra (usingspectrum_utils).
FDR control¶
plot_qvalue_curve()- plot the dependence of q-value on the amount of PSMs (similar to a ROC curve).
Dependencies¶
This module requires matplotlib. Optional dependencies: adjustText, spectrum_utils.
- class pyteomics.pylab_aux.SpectrumUtilsColorScheme(colors)[source]¶
Bases:
objectContext manager that temporarily changes spectrum_utils.plot.colors.
- pyteomics.pylab_aux.annotate_spectrum(spectrum, peptide, *args, **kwargs)[source]¶
Plot a spectrum and annotate matching fragment peaks.
- Parameters:
spectrum (dict) – A spectrum as returned by Pyteomics parsers. Needs to have ‘m/z array’ and ‘intensity array’ keys.
peptide (str) – A modX or ProForma sequence.
backend (str, keyword only, optional) – One of {‘default’, ‘spectrum_utils’, ‘spectrum_utils.iplot’}. The spectrum_utils backend requires installing
spectrum_utils. The spectrum_utils.iplot backend requires installingspectrum_utils[iplot].ion_types (Container, keyword only, optional) – Ion types to be considered for annotation. Default is (‘b’, ‘y’).
precursor_charge (int, keyword only, optional) – If not specified, an attempt is made to extract it from spectrum.
maxcharge (int, keyword only, optional) – Maximum charge state for fragment ions to be considered. Default is precursor_charge - 1.
colors (dict, keyword only, optional) – Keys are ion types, values are colors to plot the annotated peaks with. Default depends on backend.
ftol (float, keyword only, optional) – A fixed m/z tolerance value for peak matching. Alternative to rtol.
rtol (float, keyword only, optional) – A relative m/z error for peak matching. Default is 10 ppm.
aa_mass (dict, keyword only, optional) – A dictionary of amino acid residue masses.
text_kw (dict, keyword only, optional) – Keyword arguments for
pylab.text().xlabel (str, keyword only, optional) – Label for the X axis. Default is “m/z”. Does not work with spectrum_utils.iplot backend.
ylabel (str, keyword only, optional) – Label for the Y axis. Default is “intensity”. Does not work with spectrum_utils.iplot backend.
title (str, keyword only, optional) – The title. Empty by default. Does not work with spectrum_utils.iplot backend.
ax (matplotlib.pyplot.Axes, keyword only, optional) – Axes to draw the spectrum. Does not work with spectrum_utils.iplot backend.
*args – Passed to the plotting backend.
**kwargs – Passed to the plotting backend.
centroided (bool, keyword only, optional) – Passed to
plot_spectrum(). Only works with default backend.ion_comp (dict, keyword only, optional) – A dictionary defining ion compositions to override
pyteomics.mass.std_ion_comp. Only works with default backend.mass_data (dict, keyword only, optional) – A dictionary of element masses to override
pyteomics.mass.nist_mass. Only works with default backend.adjust_text (bool, keyword only, optional) – Adjust the overlapping text annotations using
adjustText. Only works with default backend.adjust_kw (dict, keyword only, optional) – Keyword arguments for
adjust_text(). Only works with default backend.remove_precursor_peak (bool, keyword only, optional) – Remove precursor peak from spectrum before annotation. Default is
False. Only works with spectrum_utils and spectrum_utils.iplot backends.min_intensity (float, keyword only, optional) – Remove low-intensity peaks; this is a factor of maximum peak intensity. Default is 0 (no filtering). Only works with spectrum_utils and spectrum_utils.iplot backends.
max_num_peaks (int or None, keyword only, optional) – Remove low-intensity peaks; this is the number of peaks to keep. Default is
None(no filtering). Only works with spectrum_utils and spectrum_utils.iplot backends.scaling (one of {‘root’, ‘log’, ‘rank’} or None, keyword only, optional) – Scaling to apply to peak intensities. Only works with spectrum_utils and spectrum_utils.iplot backends.
max_intensity (float or None, keyword only, optional) – Intensity of the most intense peak relative to which the peaks will be scaled (the default is
None, which means that no scaling relative to the most intense peak will be performed). Only works with spectrum_utils and spectrum_utils.iplot backends.annot_fmt (callable, keyword-only, optional) – Passed to
spectrum_utils.plot.spectrum(). Only works with spectrum_utils and spectrum_utils.iplot backends.grid (bool, keyword-only, optional) – Passed to
spectrum_utils.plot.spectrum(). Default isTrue. Only works with spectrum_utils and spectrum_utils.iplot backends.aa_comp (dict, keyword only, optional) – Amino acid compositions, including modified ones. If given, will be used for conversion from modX to ProForma.
mod_names (dict or callable, keyword only, optional) – If given, will be used for conversion from modX to ProForma.
prefix (str, keyword only, optional) – If given, will be used for conversion from modX to ProForma.
- Returns:
out
- Return type:
matplotlib.pyplot.Axes
- pyteomics.pylab_aux.mirror(spec_top, spec_bottom, peptide=None, spectrum_kws=None, ax=None, **kwargs)[source]¶
Create a mirror plot of two (possible annotated) spectra using spectrum_utils.
- Parameters:
spec_top (dict) – A spectrum as returned by Pyteomics parsers. Needs to have ‘m/z array’ and ‘intensity array’ keys.
spec_bottom (dict) – A spectrum as returned by Pyteomics parsers. Needs to have ‘m/z array’ and ‘intensity array’ keys.
peptide (str or tuple[str, str] or None, optional) – A modX sequence or ProForma. If provided, the peaks will be annotated as peptide fragments.
spectrum_kws (dict or None, optional) – Passed to
spectrum_utils.plot.mirror().backend (str, keyword only, optional) –
One of {‘spectrum_utils’, ‘spectrum_utils.iplot’}. Default is ‘spectrum_utils’.
Note
Requires
spectrum_utilsorspectrun_utils[iplot], respectively.ax (matplotlib.pyplot.Axes or None, optional) – Passed to
spectrum_utils.plot.mirror(). Works only for the ‘spectrum_utils’ backend.xlabel (str, keyword only, optional) – Label for the X axis. Default is “m/z”. Works only for the ‘spectrum_utils’ backend.
ylabel (str, keyword only, optional) – Label for the Y axis. Default is “intensity”. Works only for the ‘spectrum_utils’ backend.
title (str, keyword only, optional) – The title. Empty by default. Works only for the ‘spectrum_utils’ backend.
**kwargs (same as for
annotate_spectrum()for spectrum_utils backends.)
- Returns:
out
- Return type:
matplotlib.pyplot.Axes
- pyteomics.pylab_aux.plot_function_3d(x, y, function, **kwargs)[source]¶
Plot values of a function of two variables in 3D.
More on 3D plotting in pylab:
http://www.scipy.org/Cookbook/Matplotlib/mplot3D
- Parameters:
x (array_like of float) – The plotting range on X axis.
y (array_like of float) – The plotting range on Y axis.
function (function) – The function to plot.
plot_type ({'surface', 'wireframe', 'scatter', 'contour', 'contourf'}, keyword only, optional) – The type of a plot, see scipy cookbook for examples. The default value is ‘surface’.
num_contours (int) – The number of contours to plot, 50 by default.
xlabel (str, keyword only, optional) – The X axis label. Empty by default.
ylabel (str, keyword only, optional) – The Y axis label. Empty by default.
zlabel (str, keyword only, optional) – The Z axis label. Empty by default.
title (str, keyword only, optional) – The title. Empty by default.
**kwargs – Passed to the respective plotting function.
- pyteomics.pylab_aux.plot_function_contour(x, y, function, **kwargs)[source]¶
Make a contour plot of a function of two variables.
- Parameters:
x (array_like of float) – The positions of the nodes of a plotting grid.
y (array_like of float) – The positions of the nodes of a plotting grid.
function (function) – The function to plot.
filling (bool) – Fill contours if True (default).
num_contours (int) – The number of contours to plot, 50 by default.
xlabel (str, optional) – The axes labels. Empty by default.
ylabel (str, optional) – The axes labels. Empty by default.
title (str, optional) – The title. Empty by default.
**kwargs – Passed to
pylab.contour()orpylab.contourf().
- pyteomics.pylab_aux.plot_line(a, b, xlim=None, *args, **kwargs)[source]¶
Plot a line y = a * x + b.
- Parameters:
- Returns:
out – The line object.
- Return type:
matplotlib.lines.Line2D
- pyteomics.pylab_aux.plot_qvalue_curve(qvalues, *args, **kwargs)[source]¶
Plot a curve with q-values on the X axis and corresponding PSM number (starting with
1) on the Y axis.- Parameters:
qvalues (array-like) – An array of q-values for sorted PSMs.
xlabel (str, keyword only, optional) – Label for the X axis. Default is “q-value”.
ylabel (str, keyword only, optional) – Label for the Y axis. Default is “# of PSMs”.
title (str, keyword only, optional) – The title. Empty by default.
*args – Given to
pylab.plot()after x and y.**kwargs – Given to
pylab.plot().
- Returns:
out
- Return type:
matplotlib.lines.Line2D
- pyteomics.pylab_aux.plot_spectrum(spectrum, *args, **kwargs)[source]¶
Plot a spectrum, assuming it is a dictionary containing “m/z array” and “intensity array”.
- Parameters:
spectrum (dict) – A dictionary, as returned by pyteomics MS data parsers. Must contain “m/z array” and “intensity array” keys with decoded arrays.
backend (str, keyword only, optional) – One of {‘default’, ‘spectrum_utils’, ‘spectrum_utils.iplot’}. The spectrum_utils backend requires installing
spectrum_utils. The spectrum_utils.iplot backend requires installingspectrum_utils[iplot].xlabel (str, keyword only, optional) – Label for the X axis. Default is “m/z”.
ylabel (str, keyword only, optional) – Label for the Y axis. Default is “intensity”.
title (str, keyword only, optional) – The title. Empty by default.
centroided (bool, keyword only, optional) – Works only for the default backend. If
True(default), peaks of the spectrum are plotted usingpylab.bar(). IfFalse, the arrays are simply plotted usingpylab.plot().*args – When using default backend: given to
pylab.plot()orpylab.bar()(depending on centroided).**kwargs – When using default backend: given to
pylab.plot()orpylab.bar()(depending on centroided).precursor_mz (float, keyword only, optional) –
Precursor m/z value.
Note
If not given, an attempt will be made to extract it from spectrum. spectrum_utils backends require this value to be specified or extractable.
precursor_charge (int, keyword only, optional) –
Precursor charge state.
Note
If not given, an attempt will be made to extract it from spectrum. spectrum_utils backends require this value to be specified or extractable.
min_intensity (float, keyword only, optional) – Remove low-intensity peaks; this is a factor of maximum peak intensity. Default is 0 (no filtering). Only works with spectrum_utils and spectrum_utils.iplot backends.
max_num_peaks (int or None, keyword only, optional) – Remove low-intensity peaks; this is the number of peaks to keep. Default is
None(no filtering). Only works with spectrum_utils and spectrum_utils.iplot backends.scaling (one of {‘root’, ‘log’, ‘rank’} or None, keyword only, optional) – Scaling to apply to peak intensities. Only works with spectrum_utils and spectrum_utils.iplot backends.
max_intensity (float or None, keyword only, optional) – Intensity of the most intense peak relative to which the peaks will be scaled (the default is
None, which means that no scaling relative to the most intense peak will be performed). Only works with spectrum_utils and spectrum_utils.iplot backends.
- Returns:
out
- Return type:
matplotlib.pyplot.Axes
- pyteomics.pylab_aux.scatter_trend(x, y=None, **kwargs)[source]¶
Make a scatter plot with a linear regression.
- Parameters:
x (array_like of float) – 1-D array of floats. If y is omitted, x must be a 2-D array of shape (N, 2).
y (array_like of float, optional) – 1-D arrays of floats. If y is omitted or
None, x must be a 2-D array of shape (N, 2).plot_trend (bool, optional) – If
Truethen plot a trendline (default).plot_sigmas (bool, optional) – If
Truethen plot confidence intervals of the linear fit.Falseby default.show_legend (bool, optional) – If
True, a legend will be shown with linear fit equation, correlation coefficient, and standard deviation from the fit. Default isTrue.title (str, optional) – The title. Empty by default.
xlabel (str, optional) – The axes labels. Empty by default.
ylabel (str, optional) – The axes labels. Empty by default.
alpha_legend (float, optional) – Legend box transparency. 1.0 by default
scatter_kwargs (dict, optional) – Keyword arguments for
pylab.scatter(). Empty by default.plot_kwargs (dict, optional) – Keyword arguments for
plot_line(). By default, sets xlim and label.legend_kwargs (dict, optional) – Keyword arguments for
pylab.legend(). Default is{'loc': 'upper left'}.sigma_kwargs (dict, optional) – Keyword arguments for
pylab.plot()used for sigma lines. Default is{'color': 'red', 'linestyle': 'dashed'}.sigma_values (iterable, optional) – Each value will be multiplied with standard error of the fit, and the line shifted by the resulting value will be plotted. Default is
range(-3, 4).regression (callable, optional) – Function to perform linear regression. Will be given
xandyas arguments. Must return a 4-tuple: (a, b, r, stderr). Default ispyteomics.auxiliary.linear_regression().
- Returns:
out – A (scatter_plot, trend_line, sigma_lines, legend) tuple.
- Return type: