Skip to Content
DocumentationCreating FiguresPlotting Peptide Pair Distribution

Plotting Peptide Pair Distribution

from pyXLMS import __version__ print(f"Installed pyXLMS version: {__version__}")
βœ“
Installed pyXLMS version: 1.3.0
from pyXLMS import parser from pyXLMS import plotting

All plotting functionality is available via the plotting submodule. We also import the parser submodule here for reading result files.

parser_result = parser.read( "../_data/20220215_Eclipse_LC6_PepMap50cm-cartridge_mainlib_DSSO_3CV_stepHCD_OT_001.pdResult", engine="MS Annika", crosslinker="DSS", )
βœ“
Reading MS Annika CSMs...: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 6324/6324 [00:00<00:00, 11442.10it/s] Reading MS Annika crosslinks...: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 3025/3025 [00:00<00:00, 20929.73it/s]

We read crosslink-spectrum-matches and crosslinks using the generic parserΒ  from a single .pdResult file.

fig, ax = plotting.plot_peptide_pair_distribution( parser_result["crosslink-spectrum-matches"], figsize=(15.0, 5.0), filename_prefix="pep_pair_dist_csms", )

png

We can plot the peptide pair distribution for our crosslink-spectrum-matches by passing them as the first argument. The default figure size is 16 by 9 inches and does not need to be set explicitly, we just used a smaller one here for demonstration purposes. The filename_prefix parameter is also optional, if it is given the plot is saved four times: once without the title in .png and .svg format, and once with the title in .png and .svg format.

fig, ax = plotting.plot_peptide_pair_distribution( parser_result["crosslink-spectrum-matches"], top_n=10, title="Top 10 Peptide Pairs", figsize=(7.0, 4.0), )

png

We can also specify top_n=10 to control the number of peptide pairs in our plot and additionally specify a title via the title parameter. Since we did not specify a filename_prefix the plot is not saved to disk. There are also other parameters that can be set to tune your plot like color, you can read more about all the possible parameters here: docs.

fig, ax = plotting.plot_peptide_pair_distribution( parser_result["crosslinks"], top_n=10, title="Top 10 Peptide Pairs", figsize=(7.0, 4.0), )
[41m---------------------------------------------------------------------------[0m TypeError Traceback (most recent call last) Cell In[6], line 1 ----> 1 fig, ax = plotting.plot_peptide_pair_distribution( 2 parser_result["crosslinks"], 3 top_n=10, 4 title="Top 10 Peptide Pairs", 5 figsize=(7.0, 4.0), 6 ) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\pyXLMS\plotting\plot_peptide_pair_distribution.py:87, in plot_peptide_pair_distribution(data, top_n, color, title, figsize, filename_prefix) 83 raise ValueError( 84 "Can't plot peptide pair distribution if no crosslink-spectrum-matches are given!" 85 ) 86 if "data_type" not in data[0] or data[0]["data_type"] != "crosslink-spectrum-match": ---> 87 raise TypeError( 88 "Unsupported data type for input data! Parameter data has to be a list of crosslink-spectrum-match!" 89 ) 90 pps = filter_peptide_pair_distribution(data) 91 pp_names = list() TypeError: Unsupported data type for input data! Parameter data has to be a list of crosslink-spectrum-match!
Important

The peptide pair distribution can only be plotted for crosslink-spectrum-matches since crosslinks are already aggregated by either peptide pair or protein position.

Calling plot_peptide_pair_distribution on a list of crosslinks will result in an error!

Last updated on