.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "gallery/ms_matplotlib/plot_spyogenes_subplots_ms_matplotlib.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_gallery_ms_matplotlib_plot_spyogenes_subplots_ms_matplotlib.py>`
        to download the full example code. or to run this example in your browser via Binder

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_gallery_ms_matplotlib_plot_spyogenes_subplots_ms_matplotlib.py:


Plot Spyogenes subplots ms_matplotlib
=======================================

Here we show how we can plot multiple chromatograms across runs together

.. GENERATED FROM PYTHON SOURCE LINES 7-97



.. image-sg:: /gallery/ms_matplotlib/images/sphx_glr_plot_spyogenes_subplots_ms_matplotlib_001.png
   :alt: Run #0 Spyogenes 0% human plasma, Run #1 Spyogenes 0% human plasma, Run #2 Spyogenes 0% human plasma, Run #3 Spyogenes 10% human plasma, Run #4 Spyogenes 10% human plasma, Run #5 Spyogenes 10% human plasma
   :srcset: /gallery/ms_matplotlib/images/sphx_glr_plot_spyogenes_subplots_ms_matplotlib_001.png
   :class: sphx-glr-single-img


.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    Downloading spyogenes.zip...
    Downloaded spyogenes.zip successfully.
    Unzipped files successfully.

    <Figure size 1000x1500 with 6 Axes>





|

.. code-block:: Python


    import pandas as pd
    import requests
    import zipfile
    import numpy as np
    import matplotlib.pyplot as plt

    pd.options.plotting.backend = "ms_matplotlib"

    ###### Load Data #######

    # URL of the zip file
    url = "https://github.com/OpenMS/pyopenms_viz/releases/download/v0.1.3/spyogenes.zip"
    zip_filename = "spyogenes.zip"

    # Download the zip file
    try:
        print(f"Downloading {zip_filename}...")
        response = requests.get(url)
        response.raise_for_status()  # Check for any HTTP errors

        # Save the zip file to the current directory
        with open(zip_filename, "wb") as out:
            out.write(response.content)
        print(f"Downloaded {zip_filename} successfully.")
    except requests.RequestException as e:
        print(f"Error downloading zip file: {e}")
    except IOError as e:
        print(f"Error writing zip file: {e}")

    # Unzipping the file
    try:
        with zipfile.ZipFile(zip_filename, "r") as zip_ref:
            # Extract all files to the current directory
            zip_ref.extractall()
            print("Unzipped files successfully.")
    except zipfile.BadZipFile as e:
        print(f"Error unzipping file: {e}")

    annotation_bounds = pd.read_csv(
        "spyogenes/AADGQTVSGGSILYR3_manual_annotations.tsv", sep="\t"
    )  # contain annotations across all runs
    chrom_df = pd.read_csv(
        "spyogenes/chroms_AADGQTVSGGSILYR3.tsv", sep="\t"
    )  # contains chromatogram for precursor across all runs

    ##### Set Plotting Variables #####
    pd.options.plotting.backend = "ms_matplotlib"
    RUN_NAMES = [
        "Run #0 Spyogenes 0% human plasma",
        "Run #1 Spyogenes 0% human plasma",
        "Run #2 Spyogenes 0% human plasma",
        "Run #3 Spyogenes 10% human plasma",
        "Run #4 Spyogenes 10% human plasma",
        "Run #5 Spyogenes 10% human plasma",
    ]

    fig, axs = plt.subplots(len(np.unique(chrom_df["run"])), 1, figsize=(10, 15))

    # plt.close ### required for running in jupyter notebook setting

    # For each run fill in the axs object with the corresponding chromatogram
    plot_list = []
    for i, run in enumerate(RUN_NAMES):
        run_df = chrom_df[chrom_df["run_name"] == run]
        current_bounds = annotation_bounds[annotation_bounds["run"] == run]

        run_df.plot(
            kind="chromatogram",
            x="rt",
            y="int",
            grid=False,
            by="ion_annotation",
            title=run_df.iloc[0]["run_name"],
            title_font_size=16,
            xaxis_label_font_size=14,
            yaxis_label_font_size=14,
            xaxis_tick_font_size=12,
            yaxis_tick_font_size=12,
            canvas=axs[i],
            relative_intensity=True,
            annotation_data=current_bounds,
            xlabel="Retention Time (sec)",
            ylabel="Relative\nIntensity",
            annotation_legend_config=dict(show=False),
            legend_config={"show": False},
        )

    fig.tight_layout()
    fig


.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 1.201 seconds)


.. _sphx_glr_download_gallery_ms_matplotlib_plot_spyogenes_subplots_ms_matplotlib.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: binder-badge

      .. image:: images/binder_badge_logo.svg
        :target: https://notebooks.gesis.org/binder/v2/gh/OpenMS/pyopenms_viz/gh_pages?filepath=notebooks/gallery/ms_matplotlib/plot_spyogenes_subplots_ms_matplotlib.ipynb
        :alt: Launch binder
        :width: 150 px

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: plot_spyogenes_subplots_ms_matplotlib.ipynb <plot_spyogenes_subplots_ms_matplotlib.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: plot_spyogenes_subplots_ms_matplotlib.py <plot_spyogenes_subplots_ms_matplotlib.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: plot_spyogenes_subplots_ms_matplotlib.zip <plot_spyogenes_subplots_ms_matplotlib.zip>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_