diff --git a/.gitignore b/.gitignore index 136f093..f9cbade 100644 --- a/.gitignore +++ b/.gitignore @@ -179,4 +179,6 @@ cython_debug/ # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ -DIA-NN_output/ \ No newline at end of file +DIA-NN_output/ +debug/ +*.svg \ No newline at end of file diff --git a/configs/config.json b/configs/config.json index 1ff5b43..1f60cf4 100644 --- a/configs/config.json +++ b/configs/config.json @@ -120,20 +120,20 @@ "wide_window": true, "min_peaks": 0, "max_peaks": 10000, - "min_matched_peaks": 3, + "min_matched_peaks": 5, "max_fragment_charge": 1, - "report_psms": 25, + "report_psms": 12, "output_directory": "./", "mzml_paths": [ "mzml_files/LFQ_Orbitrap_AIF_Ecoli_01.mzML" ] }, "mumdia": { - "write_deeplc_pickle": false, + "write_deeplc_pickle": true, "write_ms2pip_pickle": true, "write_correlation_pickles": true, - "write_initial_search_pickle": false, - "write_full_search_pickle": false, + "write_initial_search_pickle": true, + "write_full_search_pickle": true, "read_deeplc_pickle": true, "read_ms2pip_pickle": true, "read_correlation_pickles": true, @@ -141,7 +141,7 @@ "read_initial_search_pickle": true, "remove_intermediate_files": false, "dlc_transfer_learn": false, - "fdr_init_search": 0.001, + "fdr_init_search": 0.01, "rescoring_features": [ "distribution_correlation_matrix_psm_ids", "distribution_correlation_matrix_frag_ids", diff --git a/evaluate_ids.ipynb b/evaluate_ids.ipynb new file mode 100644 index 0000000..2a10145 --- /dev/null +++ b/evaluate_ids.ipynb @@ -0,0 +1,249 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "2fb8529e", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "dc573b2e", + "metadata": {}, + "outputs": [], + "source": [ + "def process_data(diann_path, mumdia_path, pin_path):\n", + " \"\"\"\n", + " Process DIA-NN and MuMDIA data for comparison.\n", + "\n", + " Args:\n", + " diann_path: Path to DIA-NN parquet file\n", + " mumdia_path: Path to MuMDIA mokapot.psms.txt file\n", + " pin_path: Path to pin file\n", + "\n", + " Returns:\n", + " tuple: (diann_data, mumdia_valid_data)\n", + " \"\"\"\n", + " # Load DIA-NN data\n", + " diann_data = pd.read_parquet(diann_path)\n", + "\n", + " # Load MuMDIA data\n", + " mumdia_data = pd.read_csv(mumdia_path, sep=\"\\t\")\n", + " pin_data = pd.read_csv(pin_path, sep=\"\\t\")\n", + "\n", + " # Merge and filter MuMDIA data\n", + " mumdia_merged = pd.merge(\n", + " mumdia_data,\n", + " pin_data[[\"ScanNr\", \"filename\", \"charge\"]],\n", + " on=[\"filename\", \"ScanNr\"],\n", + " how=\"left\",\n", + " )\n", + " mumdia_valid = mumdia_merged[\n", + " (mumdia_data[\"mokapot q-value\"] <= 0.1) & (mumdia_data[\"Label\"])\n", + " ]\n", + "\n", + " # Create Precursor.Id for MuMDIA data\n", + " mumdia_valid[\"Precursor.Id\"] = mumdia_valid[\"Peptide\"] + mumdia_valid[\n", + " \"charge\"\n", + " ].astype(int).astype(str)\n", + "\n", + " return diann_data, mumdia_valid" + ] + }, + { + "cell_type": "markdown", + "id": "c6dc0bf0", + "metadata": {}, + "source": [ + "# Astral" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c6e5278c", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_851989/775785660.py:32: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " mumdia_valid[\"Precursor.Id\"] = mumdia_valid[\"Peptide\"] + mumdia_valid[\n" + ] + } + ], + "source": [ + "# Process Astral data\n", + "diann_astral, mumdia_astral_valid = process_data(\n", + " \"/home/robbe/MuMDIA/DIA-NN_output/Astral_no_mods/report.parquet\",\n", + " \"/home/robbe/MuMDIA/results/astral/mokapot.psms.txt\",\n", + " \"/home/robbe/MuMDIA/results/astral/outfile.pin\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "9d578249", + "metadata": {}, + "source": [ + "# Data Processing and Comparison\n", + "\n", + "Process both Astral and TimsTOF datasets and create comparative visualizations." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "122e65a8", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_851989/775785660.py:32: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " mumdia_valid[\"Precursor.Id\"] = mumdia_valid[\"Peptide\"] + mumdia_valid[\n" + ] + } + ], + "source": [ + "# Process TimsTOF data\n", + "diann_timsconvert, mumdia_timsconvert_valid = process_data(\n", + " \"/home/robbe/MuMDIA/DIA-NN_output/timsconvert/report.parquet\",\n", + " \"/home/robbe/MuMDIA/results/timsconvert/mokapot.psms.txt\",\n", + " \"/home/robbe/MuMDIA/results/timsconvert/outfile.pin\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "bd74e61e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Jk0wbdo0mM3mSz43ALB48WL07NkTBoMBERERuOeee5Cenu68/YYbbsCkSZMAAL179640rKm2brzxRgDlPQmAv4d0nDp1CrfccguCgoJw9913AwBkWcaHH36ILl26QK/Xo2nTppg6dSoKCgoqPe7KlSuRkJDg/N3s3bs35s+f77w9Nja2yrwXz+taMRR8wYIFePXVV9GiRQv4+/ujuLgYNpsNM2fORLt27aDX69GkSRP079+/0jCTDRs2YMCAAQgICEBoaChGjx6NY8eOuexT8ZodPXoUEydORFhYGPr371/n57M6N954I/71r38hNTUV8+bNc27PzMzElClT0LJlS+h0OkRHR2P06NFuPa0EERGRp7t4Ds4L24SfffYZ4uLi4O/vj5tuuglnz56FEAKvv/46WrZsCYPBgNGjRyM/P9/lMffs2YNhw4YhIiICBoMBbdq0wf3331/nbCaTCbNmzUL79u2r7I05atQoTJo0CatWrcKOHTtq/bg2mw3Hjx9HRkbGJfd9/fXXIUkS5syZU2mET3x8PN555x1kZGQ4zx3effddSJKE1NTUSo/10ksvQavVurQXd+7ciZtvvhkhISHw9/dHQkICtm/f7nK/urbNanv+UnEOtGbNGuc89p07d8ayZcsu+bwA5T3/nnnmGec5RocOHfDuu+9CCAHg79+ljRs34siRI5c9NYK/vz/69u2LsrIy5OTkACifhuGxxx5DYmIiunTpAp1Oh1WrVgEA0tPTcf/99zunE+jSpQu+/fbbSo9rNpsxY8YMtG/fHnq9HtHR0bjjjjtw6tQpAH+3vS/OW9X6BDWdN5w8eRJjxoxBs2bNoNfr0bJlS9x1110oKipy3t9ut+P11193noPFxsbi5ZdfhsVicTl2TeetV0qtVuPjjz9G586d8emnn7rkW7t2Lfr374/Q0FAEBgaiQ4cOePnll+vluETV4RB18jqJiYm44447oNVqMWHCBHzxxRfYvXs3evfu7dxn7dq1mDBhAgYPHoy3334bAHDs2DFs374d06ZNw8CBA/HEE0/g448/xssvv4xOnToBgPNfoLwwOGHCBEydOhUPPfQQOnToAAD44osv0KVLF9x6663QaDT45Zdf8Mgjj0CWZTz66KM1Zr/vvvuwefNm54d8dX755Rfn/lUJCQnB6NGjMWfOHOcQ/YSEBCxatAjTp0932Xfh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ERF5LBY4iYiIiIiIiIiIyGOxwElEREREREREREQeiwVOIiIiIiIiIiIi8lgscBIREREREREREZHHYoGTiIiIiIiIiIiIPBYLnEREREREREREROSxWOAkIiIiIiIiIiIij8UCJxEREREREREREXksFjiJiIiIiIiIiIjIY7HASURERERERERERB6LBU4iIiIiIiIiIiLyWCxwEhERERERERERkcdigZOIiIiIiIiIiIg8FgucRERERERERERE5LFY4CQiIiIiIiIiIiKPxQInEREREREREREReSwWOImIiIiIiIiIiMhjscBJREREREREREREHosFTiIiIiIiIiIiIvJYLHASERERERERERGRx2KBk4iIiIiIiIiIiDwWC5xERERERERERETksVjgJCIiIiIiIiIiIo/FAicRERERERERERF5LBY4iYiIiIiIiIiIyGOxwElEREREREREREQeiwVOIiIiIiIiIiIi8lgscBIREREREREREZHHYoGTiIiIiIiIiIiIPBYLnEREREREREREROSxWOAkIiIiIiIiIiIij8UCJxEREREREREREXksFjiJiIiIiIiIiIjIY7HASURERERERERERB6LBU4iIiIiIiIiIiLyWCxwEhERERERERERkcdigZOIiIiIiIiIiIg8FgucRERERERERERE5LFY4CQiIiIiIiIiIiKPxQInEREREREREREReSwWOImIiIiIiIiIiMhjscBJREREREREREREHosFTiIiIiIiIiIiIvJYGqUDEBEREREREZHnkoUMs90Mi90Ci8Pi/NfqsMIu2yELGQ7ZAYdwVPl/AQGVpIJKUkGC5Py/SlJBkv7+3k/lB61aC61aC51G5/z/hV9E5JtY4CQiugIVjTK7bIddtsMh/v6/XbZDJamgUWmgltTQqDTl/1f9/X8iIiIiIndldVhRai1FmbUMZbYy5/9LraUw2U3OQqZdtisdFQAgQYJOo4O/nz/8/fwR4BeAAG1Apf8bNAZIkqR0XCKqR5IQQigdgohISbKQKzXaymxlKLOWwSbb/i5eVlHIlIV8RceurvBZ8aVT6xCgDUCgNtDZKAvwC4DBz1BPPz0RERER+SohBEqsJSgyF6HIUuT8t6JNbJNtSkdsECpJhUBtIEJ0IQjRhzj/DdWHIsAvgMVPIg/EAicReTWH7KhUuLy4iGmym5SO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cAIAAAAAAABIWxScAAAAAAAAANIWBScAAAAAAACAtEXBCQAAAAAAACBtUXACAAAAAAAASFsUnAAAAAAAICXcd999sixr6CsQCKisrEyrVq3SP//zP6ujo+OEx999992yLEtNTU3DHu/GG2+UZVn6i7/4izHlWL58uSzL0tVXX33Sfbt375ZlWfre9743dNvGjRuHMr/66qsnPeeOO+5QOBweUwYAo0fBCQAAAAAAUsp3vvMd3X///br33nv11a9+VZJ01113ad68eXrzzTdHdYz29nb95je/UU1NjdatW6dkMjnmHOvXrx+2sDyVu+++e8yvA+DMUHACAAAAAICUcvnll+vWW2/VF77wBf3lX/6lnnjiCT399NNqbGzUNddco56entMe45FHHlE8HtfPf/5z7du3T88999yYMlRVVSk3N1d/8zd/M+rnnH322Vq/fr1ee+21Mb0WgDNDwQkAk4xpNgAAAMCZW7Fihb71rW9pz549euCBB077+DVr1ujSSy/VJZdcotmzZ2vNmjVjer3s7Gx9/etf129+85tRF5Zf/epXlZubyyhOYIpRcALAFGGaDQAAAHBmPv/5z0uSnnzyyVM+7uDBg/r973+vW265RZJ0yy236Be/+IX6+/vH9Hp33nnnmArLSCQy5lIUwJmj4ASAKcI0GwAAAODMVFRUKBqNaseOHad83Lp16+T3+/WZz3xGknTzzTerpaVFv/3tb8f0epFIRHfdddeYCsuvfe1rYz7nBnBmKDgBwCCm2QAAAABjEw6HT1rm6ZPWrFmjK6+8UtnZ2ZKk+vp6LVy4cMznz9JHozhHW1hGo1Hdddddeuyxx7Rly5Yxvx6AsaPgBADDmGYDAAAAjF5nZ+dQcTmcrVu3asuWLVq6dKm2b98+9LV8+XKtX79e7e3tQ8c5fPjw0NfRo0eHPd54Css777xTOTk5DBIApggFJwAYxjQbAAAAYHT279+vtrY2TZ8+fcTHHJ8Z9fWvf1319fVDX9///vfV29urRx55RJL0ve99T6WlpUNf55577ojHPF5YMooTSE0UnACQAphmAwAAAJze/fffL0latWrVsPcnk0mtXbtWl1xyiR5++OGTvubPnz90/nzbbbfpqaeeGvo61Xn18fPhX//616M+H77rrrvGVIoCGD/HdAAAwOD0mKKiohHvPz7N5rbbbtP27duHbl++fLl+9KMfqb29XZFIRJ2dners7By63+PxqLCw8KTjHT9B++u//mtt2bJFubm5p81455136h//8R91991369e//vUY/4YAAADAmXnmmWf0t3/7t5o2bZr+w3/4D8M+5sUXX9Tu3bv1ne98R9dff/1J97///vv61re+pYMHD6q2tla1tbWjfv277rpL99xzj77zne+M6vHHz7nvvvtunXXWWaN+HQBjxwhOADCMaTYAAADAiTZs2KAHHnhA9913n/7+7/9eq1at0sqVK1VcXKzHHntMgUBg2OetWbNGHo9HV1555bD3X3PNNUokEnrwwQfHnCkajerOO+/U66+/Purn3HnnnYpGo3rjjTfG/HoARo8RnABg2Fim2XzlK1856f6//du/1Zo1a/SFL3xBt912m5YtWzZ0XzAYHPF1P35F+fbbbx9V1uNXrf/mb/5GOTk5o3oOAAAAMFbf/va3JUk+n095eXmaN2+e7rnnHn3hC18YcYOhWCymhx9+WBdccIHy8vKGfUxDQ4OmTZumBx54QN/4xjfGnOv4+XBbW9uoHp+Tk6O77rqLaerAJKPgBACDmGYDAAAAfOSOO+7QHXfcMerH33333SfsVN7U1HTa5+zcufO0j9m4ceOwt+fk5Ki1tfWk25cvX65kMjmqjAAmHlPUAWCKMM0GAAAAAICJR8EJAFPk29/+tj7/+c/rS1/6ku655x4lk0ndc889evPNN9XQ0DDsc8Y6zWY87rrrLkWj0VE//vg0GwAAAAAAUoGVHGkMNQAAAAAAAACkOEZwAgAAAAAAAEhbFJwAAAAAAAAA0hYFJwAAAAAAAIC0RcEJAAAAAAAAIG1RcAIAAAAAAABIWxScAAAAAAAAANIWBScAAAAAAACAtEXBCQAAAAAAACBtUXACAAAAAAAASFsUnAAAAAAAAADSFgUnAAAAAAAAgLRFwQkAAAAAAAAgbVFwAgAAAAAAAEhbFJwAAAAAAAAA0hYFJwAAAAAAAIC0RcEJAAAAAAAAIG1RcAIAAAAAAABIW/8HzS42BVsmkvYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Astral Dataset:\n", + " MuMDIA identifications: 53529\n", + " DIA-NN identifications: 101443\n", + " Overlap: 41198\n", + " MuMDIA unique: 12331\n", + " DIA-NN unique: 60245\n", + "\n", + "TimsTOF Dataset:\n", + " MuMDIA identifications: 15514\n", + " DIA-NN identifications: 97112\n", + " Overlap: 12419\n", + " MuMDIA unique: 3095\n", + " DIA-NN unique: 84693\n" + ] + } + ], + "source": [ + "# Create subfigures showing Venn diagrams for both datasets\n", + "from matplotlib_venn import venn2\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Create figure with subplots\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 6))\n", + "\n", + "# Astral Venn diagram\n", + "plt.sca(ax1)\n", + "mumdia_precursor_ids_astral = set(mumdia_astral_valid[\"Precursor.Id\"])\n", + "diann_precursor_ids_astral = set(diann_astral[\"Precursor.Id\"])\n", + "venn2(\n", + " [mumdia_precursor_ids_astral, diann_precursor_ids_astral],\n", + " set_labels=(\"MuMDIA\", \"DIA-NN\"),\n", + " ax=ax1,\n", + ")\n", + "ax1.set_title(\"Astral: Overlap of Precursor IDs\\nbetween MuMDIA and DIA-NN\")\n", + "\n", + "# TimsTOF Venn diagram\n", + "plt.sca(ax2)\n", + "mumdia_precursor_ids_timsconvert = set(mumdia_timsconvert_valid[\"Precursor.Id\"])\n", + "diann_precursor_ids_timsconvert = set(diann_timsconvert[\"Precursor.Id\"])\n", + "venn2(\n", + " [mumdia_precursor_ids_timsconvert, diann_precursor_ids_timsconvert],\n", + " set_labels=(\"MuMDIA\", \"DIA-NN\"),\n", + " ax=ax2,\n", + ")\n", + "ax2.set_title(\"TimsTOF: Overlap of Precursor IDs\\nbetween MuMDIA and DIA-NN\")\n", + "\n", + "plt.tight_layout()\n", + "plt.show()\n", + "\n", + "# Print summary statistics\n", + "print(f\"Astral Dataset:\")\n", + "print(f\" MuMDIA identifications: {len(mumdia_precursor_ids_astral)}\")\n", + "print(f\" DIA-NN identifications: {len(diann_precursor_ids_astral)}\")\n", + "print(f\" Overlap: {len(mumdia_precursor_ids_astral & diann_precursor_ids_astral)}\")\n", + "print(\n", + " f\" MuMDIA unique: {len(mumdia_precursor_ids_astral - diann_precursor_ids_astral)}\"\n", + ")\n", + "print(\n", + " f\" DIA-NN unique: {len(diann_precursor_ids_astral - mumdia_precursor_ids_astral)}\"\n", + ")\n", + "\n", + "print(f\"\\nTimsTOF Dataset:\")\n", + "print(f\" MuMDIA identifications: {len(mumdia_precursor_ids_timsconvert)}\")\n", + "print(f\" DIA-NN identifications: {len(diann_precursor_ids_timsconvert)}\")\n", + "print(\n", + " f\" Overlap: {len(mumdia_precursor_ids_timsconvert & diann_precursor_ids_timsconvert)}\"\n", + ")\n", + "print(\n", + " f\" MuMDIA unique: {len(mumdia_precursor_ids_timsconvert - diann_precursor_ids_timsconvert)}\"\n", + ")\n", + "print(\n", + " f\" DIA-NN unique: {len(diann_precursor_ids_timsconvert - mumdia_precursor_ids_timsconvert)}\"\n", + ")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "mumdia", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/feature_generators/features_fragment_intensity.py b/feature_generators/features_fragment_intensity.py index f30d0cd..211cddc 100644 --- a/feature_generators/features_fragment_intensity.py +++ b/feature_generators/features_fragment_intensity.py @@ -24,16 +24,17 @@ import polars as pl from numba import njit from rustyms import ( - CompoundPeptidoform, FragmentationModel, - LinearPeptide, MassMode, RawSpectrum, + CompoundPeptidoformIon, + MatchingParameters, ) from tqdm import tqdm from data_structures import CorrelationResults, PickleConfig from utilities.logger import log_info +from utilities.plotting import plot_XIC @njit @@ -390,85 +391,254 @@ def match_fragments( Match fragments theoretical and experimental intensities. """ + if df_fragment_sub_peptidoform.is_empty(): + log_info("No fragments to match, returning empty results.") + + # Compile regex patterns for extracting ion and charge from annotation strings ion_pattern = r"ion='([^']*)'" charge_pattern = r"charge=(\d+)," fragment_records = [] + # Plot XICs + plot_XIC(df_fragment_sub_peptidoform) + + # Get unique PSMs by sorting by fragment intensity and keeping the first occurrence per PSM unique_psm_id = df_fragment_sub_peptidoform.sort( "fragment_intensity", descending=True - ).unique(subset=["psm_id"], keep="first") + ).unique( + subset=["psm_id"], keep="first" + ) # TODO: is this the best approach to select the apex? unique_psm_id_dicts = unique_psm_id.to_dicts() + log_info("Original df_fragment_sub_peptidoform:") + log_info(df_fragment_sub_peptidoform) + log_info("Shape: {}".format(df_fragment_sub_peptidoform.shape)) + log_info( + "Unique PSM IDs in original: {}".format( + df_fragment_sub_peptidoform["psm_id"].unique().to_list() + ) + ) + log_info( + "Unique RTs in original: {}".format( + sorted(df_fragment_sub_peptidoform["rt"].unique().to_list()) + ) + ) + log_info( + "rt_max_peptide_sub values: {}".format( + df_fragment_sub_peptidoform["rt_max_peptide_sub"].unique().to_list() + ) + ) + print("\n" * 2) + + log_info("After selecting unique PSMs by highest fragment intensity:") + log_info("Shape: {}".format(unique_psm_id.shape)) + log_info( + "Unique PSM IDs in unique_psm_id: {}".format( + unique_psm_id["psm_id"].unique().to_list() + ) + ) + log_info( + "Unique RTs in unique_psm_id: {}".format( + sorted(unique_psm_id["rt"].unique().to_list()) + ) + ) + print("\n" * 2) + + # Iterate over each unique PSM to annotate and match fragments + successful_psm_ids = [] + failed_psm_ids = [] + for row in unique_psm_id_dicts: psm_id = int(row["psm_id"]) rt = float(row["rt"]) scannr = row["scannr"] rt_max_peptide_sub = float(row["rt_max_peptide_sub"]) - precursor_charge = int(row["fragment_charge"]) - scannr = row["scannr"] - peptide = row["peptide"] - - # # Output ms2dict to pickle file for debugging - # with open("results/timsconvert/ms2_dict.pkl", "wb") as f: - # pickle.dump(ms2_dict, f) - - spectrum = RawSpectrum( - title=scannr, - num_scans=1, - rt=float(rt), - precursor_charge=precursor_charge, - precursor_mass=1.0, - mz_array=ms2_dict[scannr]["mz"], - intensity_array=ms2_dict[scannr]["intensity"], + precursor_charge = int( + row["charge"] + ) # This was fragment_charge before, but it is the precursor charge + precursor = row[ + "precursor" + ] # TODO: check if its okay to do on precursor level. If we don't we have a problem with RT matching + log_info( + "Processing PSM ID: {}, RT: {}, rt_max_peptide_sub: {}".format( + psm_id, rt, rt_max_peptide_sub + ) ) - linear_peptide = CompoundPeptidoform(peptide) + try: + # Construct a RawSpectrum object for this PSM using the scan number and MS2 data + spectrum = RawSpectrum( + title=scannr, + num_scans=1, + rt=float(rt), + precursor_charge=precursor_charge, + precursor_mass=1.0, + mz_array=ms2_dict[scannr]["mz"], + intensity_array=ms2_dict[scannr]["intensity"], + ) - annotated_spectrum = spectrum.annotate( - peptide=linear_peptide, - model=FragmentationModel.CidHcd, - mode=MassMode.Monoisotopic, - ) + # Convert peptide string to CompoundPeptidoform for annotation + linear_peptide = CompoundPeptidoformIon(precursor) - matched_fragments = [ - annotated_peak - for annotated_peak in annotated_spectrum.spectrum - if annotated_peak.annotation - ] + matching_parameters = MatchingParameters() + matching_parameters.tolerance_ppm = ( + 13.0 # TODO: make this a parameter used by the config + ) + + # Annotate the spectrum with theoretical fragments using RustyMS + annotated_spectrum = spectrum.annotate( + peptidoform=linear_peptide, + parameters=matching_parameters, + model=FragmentationModel.CidHcd, + mode=MassMode.Monoisotopic, + ) - for mf in matched_fragments: - ion_label = re.search(ion_pattern, repr(mf.annotation[0])).group(1) - ion_charge = re.search(charge_pattern, repr(mf.annotation[0])).group(1) - - fragment_records.append( - { - "psm_id": psm_id, - "fragment_type": ion_label[0], - "fragment_ordinals": ion_label[1:], - "fragment_charge": ion_charge, - "fragment_intensity": mf.intensity, - "rt": rt, - "scannr": scannr, - "fragment_name": f"{ion_label}/{ion_charge}", - "rt_max_peptide_sub": rt_max_peptide_sub, - } + log_info( + "Annotated spectrum for PSM ID: {} with {} peaks.".format( + psm_id, len(annotated_spectrum.spectrum or []) + ) ) + + # Log all annotated peaks + log_info("Annotated peaks:") + for annotated_peak in annotated_spectrum.spectrum: + + if annotated_peak.annotation: + ion_label = re.search( + ion_pattern, repr(annotated_peak.annotation[0]) + ).group(1) + charge_label = re.search( + charge_pattern, repr(annotated_peak.annotation[0]) + ).group(1) + log_info( + "m/z: {}, Intensity:{}, Charge:{}, Ion:{}".format( + annotated_peak.experimental_mz, + annotated_peak.intensity, + charge_label, + ion_label, + ) + ) + log_info("\n" * 2) + + matched_fragments = [ + annotated_peak + for annotated_peak in annotated_spectrum.spectrum + if annotated_peak.annotation + and annotated_peak.annotation[0].charge == 1 # make configurable + and ( + re.search(ion_pattern, repr(annotated_peak.annotation[0])) + .group(1) + .startswith("b") + or re.search(ion_pattern, repr(annotated_peak.annotation[0])) + .group(1) + .startswith("y") + ) + ] + + # For each matched fragment, extract ion type, ordinal, charge, and intensity + log_info( + "Found {} matched fragments for PSM ID: {}".format( + len(matched_fragments), psm_id + ) + ) + + if len(matched_fragments) == 0: + log_info( + "WARNING: No matched fragments found for PSM ID: {}, RT: {}".format( + psm_id, rt + ) + ) + failed_psm_ids.append(psm_id) + continue + + # log_info("Matched fragment:") + for mf in matched_fragments: + + # log_info( + # "m/z: {}, Intensity: {}, Charge: {}, Annotation: {}".format( + # mf.experimental_mz, + # mf.intensity, + # mf.annotation[0].charge, + # repr(mf.annotation[0]), + # ) + # ) + + ion_label = re.search(ion_pattern, repr(mf.annotation[0])).group(1) + ion_charge = re.search(charge_pattern, repr(mf.annotation[0])).group(1) + + fragment_records.append( + { + "psm_id": psm_id, + "fragment_type": ion_label[0], + "fragment_ordinals": ion_label[1:], + "fragment_charge": ion_charge, + "fragment_intensity": mf.intensity, + "fragment_mz": mf.experimental_mz, + "rt": rt, + "scannr": scannr, + "fragment_name": f"{ion_label}/{ion_charge}", + "rt_max_peptide_sub": rt_max_peptide_sub, + } + ) + + successful_psm_ids.append(psm_id) + + except Exception as e: + log_info( + "ERROR: Failed to process PSM ID: {}, RT: {}, Error: {}".format( + psm_id, rt, str(e) + ) + ) + failed_psm_ids.append(psm_id) + continue + + log_info("Summary of PSM processing:") + log_info( + " Successful PSMs: {} - {}".format(len(successful_psm_ids), successful_psm_ids) + ) + log_info(" Failed PSMs: {} - {}".format(len(failed_psm_ids), failed_psm_ids)) + log_info(" Total fragment records created: {}".format(len(fragment_records))) + + # If any fragment records were found, create a new DataFrame and ensure uniqueness per PSM/fragment if len(fragment_records) != 0: - df_fragment_sub_peptidoform = ( + new_df_fragment_sub_peptidoform = ( pl.DataFrame(fragment_records) .sort("fragment_intensity", descending=True) .unique(subset=["psm_id", "fragment_name"], keep="first") ) + log_info("After creating new DataFrame from fragment records:") + log_info(" Shape: {}".format(new_df_fragment_sub_peptidoform.shape)) + log_info( + " Unique PSM IDs: {}".format( + new_df_fragment_sub_peptidoform["psm_id"].unique().to_list() + ) + ) + log_info( + " Unique RTs: {}".format( + sorted(new_df_fragment_sub_peptidoform["rt"].unique().to_list()) + ) + ) + log_info( + " rt_max_peptide_sub values: {}".format( + new_df_fragment_sub_peptidoform["rt_max_peptide_sub"].unique().to_list() + ) + ) + + # Replace the original DataFrame + df_fragment_sub_peptidoform = new_df_fragment_sub_peptidoform + else: + log_info("ERROR: No fragment records were created! All PSMs failed processing.") + # Keep the original DataFrame rather than creating an empty one + log_info("Keeping original df_fragment_sub_peptidoform") + + # Pivot the DataFrame to create a matrix: rows=PSMs, columns=fragment names, values=fragment intensities intensity_matrix_df = df_fragment_sub_peptidoform.pivot( index="psm_id", columns="fragment_name", values="fragment_intensity" ).fill_null(0.0) - print(intensity_matrix_df) - input("stop") - """ intensity_matrix_df @@ -482,6 +652,8 @@ def match_fragments( └──────────┴─────────────┴─────────────┴──────────────┴────────────┴─────────────┴─────────────┴────────────┘ """ + log_info("{}".format(intensity_matrix_df.head(5))) + # Do a max normalization of the MS2PIP predictions by dividing by the maximum # predicted intensity max_intens_ms2pip = max(ms2pip_predictions.values()) @@ -493,61 +665,129 @@ def match_fragments( Get pearson and cosing similarity of spectrum with highest intensity """ + # Select the PSM(s) with RT equal to the maximum RT for this precursor (i.e., apex) + target_rt = df_fragment_sub_peptidoform["rt_max_peptide_sub"][0] + most_abundant_frag_psm = df_fragment_sub_peptidoform.filter( - df_fragment_sub_peptidoform["rt"] - == df_fragment_sub_peptidoform["rt_max_peptide_sub"][0] + df_fragment_sub_peptidoform["rt"] == target_rt + ) + + log_info( + "Looking for PSMs with RT exactly matching target RT: {}".format(target_rt) + ) + log_info( + "Available RTs in current DataFrame: {}".format( + sorted(df_fragment_sub_peptidoform["rt"].unique().to_list()) + ) ) + log_info( + "Most abundant fragment PSMs with matching RT {} for the apex spectrum: {}".format( + target_rt, + ( + most_abundant_frag_psm["psm_id"][0] + if most_abundant_frag_psm.shape[0] > 0 + else "N/A" + ), + ) + ) + + log_info("{}".format(most_abundant_frag_psm.head(20))) + + if most_abundant_frag_psm.is_empty(): + log_info("No PSMs found with matching RT for the apex spectrum.") + log_info("Target RT = {:.6f}".format(target_rt)) + log_info("Available RTs:") + for rt in sorted(df_fragment_sub_peptidoform["rt"].unique()): + rt_diff = abs(float(rt) - target_rt) + log_info(" {:.6f} (diff: {:.6f})".format(rt, rt_diff)) + log_info( + "This indicates that the PSM with the correct RT was lost during fragment annotation processing." + ) + log_info("\n") + # Build predicted intensity vector for the fragments present in the most abundant PSM pred_frag_intens_individual = np.array( [ - ms2pip_predictions.get(fid, 0.0) + ms2pip_predictions.get( + fid, 0.0 + ) # TODO: how do we handle fragments that MS2PIP cannot predict? Do we still use them? e.g. 'p' ions for fid in most_abundant_frag_psm["fragment_name"] ] ) + log_info( + "Predicted fragment intensities for the most abundant PSM: {}".format( + pred_frag_intens_individual + ) + ) + + """ + Get pearson and cosine similarity of spectrum with highest intensity + """ + # Compute Pearson correlation between predicted and observed intensities for the apex spectrum most_intens_cor = np.corrcoef( pred_frag_intens_individual, most_abundant_frag_psm["fragment_intensity"] )[0][1] + log_info( + "Pearson correlation for the most abundant PSM: {}".format(most_intens_cor) + ) + + # Compute cosine similarity between predicted and observed intensities for the apex spectrum most_intens_cos = cosine_similarity( pred_frag_intens_individual, most_abundant_frag_psm["fragment_intensity"] ) - """ - Get pearson and cosing similarity of spectrum with highest intensity - """ + log_info("Cosine similarity for the most abundant PSM: {}".format(most_intens_cos)) """ Get the intensity matrix of observations """ - # first column is PSM ID, ignore that one, messes up calculation as it is numeric intensity_matrix = intensity_matrix_df[:, 1:].to_numpy() # Get fragment names, first column is PMS ID, ignore that one, messes up calculation as it is numeric fragment_names = intensity_matrix_df.columns[1:] - # Prepare predicted fragment intensities + # Prepare predicted fragment intensities for all fragments in the matrix columns pred_frag_intens = np.array( [ms2pip_predictions.get(fid, 0.0) for fid in fragment_names] ) - # Collect predictions for keys not listed in fragment_names. + log_info("Intensity matrix shape: {}".format(intensity_matrix.shape)) + log_info("{}".format(intensity_matrix)) + log_info("Predicted fragment intensities: \n{}".format(pred_frag_intens)) + + # Collect predictions for keys not listed in fragment_names (i.e., fragments predicted but not observed) non_matched_predictions = np.array( [v for k, v in ms2pip_predictions.items() if k not in fragment_names] ) + log_info( + "Non-matched fragment predictions (not in intensity matrix): \n{}".format( + non_matched_predictions + ) + ) + # Sum of predicted intensities for matched fragments (for feature engineering) + # TODO: is it a good idea to sum over PSMs? Or should we do it per PSM? sum_pred_frag_intens = np.array( sum([ms2pip_predictions.get(fid, 0.0) for fid in fragment_names]) ) - # Ensure data types are consistent + log_info( + "Sum of predicted fragment intensities for matched fragments: {}".format( + sum_pred_frag_intens + ) + ) + + # Ensure data types are consistent for downstream calculations intensity_matrix = intensity_matrix.astype(np.float32) pred_frag_intens = pred_frag_intens.astype(np.float32) non_matched_predictions = non_matched_predictions.astype(np.float32) + # Concatenate predicted intensities for matched and non-matched fragments pred_frag_intens = np.concatenate((pred_frag_intens, non_matched_predictions)) - # Calculate the number of zeros to append + # Calculate the number of zeros to append to the intensity matrix so it matches the length of pred_frag_intens pad_width = len(pred_frag_intens) - len(intensity_matrix[0]) # Extend array 'a' by padding with zeros on the right side @@ -555,40 +795,74 @@ def match_fragments( intensity_matrix, ((0, 0), (0, pad_width)), mode="constant", constant_values=0 ) + # Normalize each row (PSM) by its maximum intensity for fair comparison intensity_matrix_normalized = intensity_matrix / intensity_matrix.max( axis=1, keepdims=True ) - # Compute correlations between observed and predicted intensities + # Compute correlations between observed and predicted intensities for each PSM correlation_result = compute_correlations( intensity_matrix_normalized, pred_frag_intens ) + log_info("Correlation results: {}".format(correlation_result)) + # Count the number of nonzero entries per PSM (for feature engineering) + # TODO: is there a relevance to this? Because the number of columns depends on the max number of fragments for the PSM with the most fragments correlation_result_counts = ( intensity_matrix_df.select( - pl.fold( - acc=pl.lit(0), + pl.fold( # fold is used to apply a function across multiple columns + acc=pl.lit(0), # Initialize accumulator to zero exprs=[ - (pl.col(c) != 0).cast(pl.Int64) for c in intensity_matrix_df.columns + (pl.col(c) != 0).cast(pl.Int64) + for c in intensity_matrix_df.columns # Convert non-zero entries to 1 ], - function=lambda acc, x: acc + x, - ).alias("non_zero_count") + function=lambda acc, x: acc + x, # Sum the non-zero counts + ).alias( + "non_zero_count" + ) # Rename the result column + ) + .to_numpy() # Convert to NumPy array for consistency + .ravel() # Flatten the array to 1D + ) + + log_info( + "Count of non-zero fragment entries per PSM: {}".format( + correlation_result_counts ) - .to_numpy() - .ravel() ) + # Compute mean squared error between normalized observed and predicted intensities (per PSM, then averaged) mse_avg_pred_intens = ( abs(intensity_matrix_normalized - pred_frag_intens).sum(axis=1) ).sum() / intensity_matrix_normalized.shape[0] + + log_info( + "Mean Squared Error (MSE) between normalized observed and predicted intensities: {}".format( + mse_avg_pred_intens + ) + ) + # Compute total MSE including non-matched predictions mse_avg_pred_intens_total = ( (abs(intensity_matrix_normalized - pred_frag_intens).sum(axis=1)).sum() + sum(non_matched_predictions) ) / intensity_matrix_normalized.shape[0] - # Compute correlation matrix for PSM IDs - if intensity_matrix_normalized.shape[0] > 1: - correlation_matrix_psm_ids = np.corrcoef(intensity_matrix_normalized) + log_info( + "Total Mean Squared Error (MSE) including non-matched predictions: {}".format( + mse_avg_pred_intens_total + ) + ) + + # Compute correlation matrix for PSM IDs (rows of intensity matrix) + log_info( + "Shape of intensity matrix normalized: {}".format( + intensity_matrix_normalized.shape + ) + ) + if intensity_matrix_normalized.shape[0] > 1: # Ensure there are multiple PSMs + correlation_matrix_psm_ids = np.corrcoef( + intensity_matrix_normalized + ) # Calculate correlation matrix for PSM IDs """ ( @@ -602,25 +876,34 @@ def match_fragments( ) = corrcoef_ignore_both_missing_counts(intensity_matrix) """ + # Placeholders for additional correlation matrices (not computed here) correlation_matrix_psm_ids_ignore_zeros = np.array([]) correlation_matrix_psm_ids_ignore_zeros_counts = np.array([]) correlation_matrix_psm_ids_missing = np.array([]) correlation_matrix_psm_ids_missing_zeros_counts = np.array([]) - # Remove diagonal elements and flatten + # Remove diagonal elements (self-correlation) and flatten to 1D correlation_matrix_psm_ids = correlation_matrix_psm_ids[ ~np.eye(correlation_matrix_psm_ids.shape[0], dtype=bool) ] - # Square and sort + # Square and sort the correlation values for downstream use + # TODO: why square? correlation_matrix_psm_ids = np.sort(correlation_matrix_psm_ids**2) + log_info( + "Correlation matrix for PSM IDs computed with shape: {}".format( + correlation_matrix_psm_ids.shape + ) + ) else: + + # If only one PSM, set all correlation matrices to empty correlation_matrix_psm_ids = np.array([]) correlation_matrix_psm_ids_ignore_zeros = np.array([]) correlation_matrix_psm_ids_ignore_zeros_counts = np.array([]) correlation_matrix_psm_ids_missing = np.array([]) correlation_matrix_psm_ids_missing_zeros_counts = np.array([]) - # Compute correlation matrix for fragment IDs + # Compute correlation matrix for fragment IDs (columns of intensity matrix) if intensity_matrix_normalized.shape[1] > 1: correlation_matrix_frag_ids = np.corrcoef(intensity_matrix_normalized.T) @@ -635,55 +918,48 @@ def match_fragments( correlation_matrix_frag_ids_missing_zeros_counts, ) = corrcoef_ignore_both_missing_counts(intensity_matrix) """ + # Placeholders for additional correlation matrices (not computed here) correlation_matrix_frag_ids_ignore_zeros = np.array([]) correlation_matrix_frag_ids_ignore_zeros_counts = np.array([]) correlation_matrix_frag_ids_missing = np.array([]) correlation_matrix_frag_ids_missing_zeros_counts = np.array([]) - # Remove diagonal elements and flatten + # Remove diagonal elements (self-correlation) and flatten to 1D correlation_matrix_frag_ids = correlation_matrix_frag_ids[ ~np.eye(correlation_matrix_frag_ids.shape[0], dtype=bool) ] - # Square and sort + # Square and sort the correlation values for downstream use correlation_matrix_frag_ids = np.sort(correlation_matrix_frag_ids**2) else: + + # If only one fragment, set all correlation matrices to empty correlation_matrix_frag_ids = np.array([]) correlation_matrix_frag_ids_ignore_zeros = np.array([]) correlation_matrix_frag_ids_ignore_zeros_counts = np.array([]) correlation_matrix_frag_ids_missing = np.array([]) correlation_matrix_frag_ids_missing_zeros_counts = np.array([]) - # Correlation result: 1D array of correlation values between predicted MS2PIP intensities and observed fragment intensities - # Correlation matrix PSM IDs: 1D array of correlation values between PSMs - # Correlation matrix fragment IDs: 1D array of correlation values between fragments - - # correlation_result, correlation_result_counts - # correlation_matrix_psm_ids, correlation_matrix_psm_ids_counts - # correlation_matrix_frag_ids, correlation_matrix_frag_ids_counts - - # correlation_matrix_psm_ids_ignore_zeros, - # correlation_matrix_psm_ids_ignore_zeros_counts, - # correlation_matrix_frag_ids_ignore_zeros, - # correlation_matrix_frag_ids_ignore_zeros_counts, + log_info("##" * 25) + log_info("\n" * 10) return CorrelationResults( - correlations=correlation_result, - correlations_count=correlation_result_counts, - sum_pred_frag_intens=sum_pred_frag_intens, - correlation_matrix_psm_ids=correlation_matrix_psm_ids, - correlation_matrix_frag_ids=correlation_matrix_frag_ids, - correlation_matrix_psm_ids_ignore_zeros=correlation_matrix_psm_ids_ignore_zeros, - correlation_matrix_psm_ids_ignore_zeros_counts=correlation_matrix_psm_ids_ignore_zeros_counts, - correlation_matrix_psm_ids_missing=correlation_matrix_psm_ids_missing, - correlation_matrix_psm_ids_missing_zeros_counts=correlation_matrix_psm_ids_missing_zeros_counts, - correlation_matrix_frag_ids_ignore_zeros=correlation_matrix_frag_ids_ignore_zeros, - correlation_matrix_frag_ids_ignore_zeros_counts=correlation_matrix_frag_ids_ignore_zeros_counts, - correlation_matrix_frag_ids_missing=correlation_matrix_frag_ids_missing, - correlation_matrix_frag_ids_missing_zeros_counts=correlation_matrix_frag_ids_missing_zeros_counts, - most_intens_cor=most_intens_cor, - most_intens_cos=most_intens_cos, - mse_avg_pred_intens=mse_avg_pred_intens, - mse_avg_pred_intens_total=mse_avg_pred_intens_total, + correlations=correlation_result, # Pearson correlation between predicted and observed intensities + correlations_count=correlation_result_counts, # Count of non-zero fragments entries per PSM + sum_pred_frag_intens=sum_pred_frag_intens, # Sum of predicted fragment intensities for matched fragments + correlation_matrix_psm_ids=correlation_matrix_psm_ids, # Correlation matrix for PSMs, i.e. the correlation between fragments of different PSMs + correlation_matrix_frag_ids=correlation_matrix_frag_ids, # Correlation matrix for fragments, i.e. the correlation between fragments of every PSM + correlation_matrix_psm_ids_ignore_zeros=correlation_matrix_psm_ids_ignore_zeros, # TODO: always empty, needs to be implemented + correlation_matrix_psm_ids_ignore_zeros_counts=correlation_matrix_psm_ids_ignore_zeros_counts, # TODO: always empty, needs to be implemented + correlation_matrix_psm_ids_missing=correlation_matrix_psm_ids_missing, # TODO: always empty, needs to be implemented + correlation_matrix_psm_ids_missing_zeros_counts=correlation_matrix_psm_ids_missing_zeros_counts, # Always empty, needs to be implemented + correlation_matrix_frag_ids_ignore_zeros=correlation_matrix_frag_ids_ignore_zeros, # Always empty, needs to be implemented + correlation_matrix_frag_ids_ignore_zeros_counts=correlation_matrix_frag_ids_ignore_zeros_counts, # Always empty, needs to be implemented + correlation_matrix_frag_ids_missing=correlation_matrix_frag_ids_missing, # Always empty, needs to be implemented + correlation_matrix_frag_ids_missing_zeros_counts=correlation_matrix_frag_ids_missing_zeros_counts, # Always empty, needs to be implemented + most_intens_cor=most_intens_cor, # Pearson correlation of the most intense PSM + most_intens_cos=most_intens_cos, # Cosine similarity of the most intense PSM + mse_avg_pred_intens=mse_avg_pred_intens, # Average MSE of predicted fragment intensities + mse_avg_pred_intens_total=mse_avg_pred_intens_total, # Total MSE of predicted fragment intensities including non-matched predictions ) @@ -697,44 +973,85 @@ def get_features_fragment_intensity( ms2_dict: dict = {}, output_dir: str = "results/", ): + + if read_correlation_pickles and not write_correlation_pickles: + try: + with open(f"{output_dir}/fragment_dict.pkl", "rb") as f: + fragment_dict = pickle.load(f) + with open(f"{output_dir}/correlations_fragment_dict.pkl", "rb") as f: + correlations_fragment_dict = pickle.load(f) + log_info("Successfully loaded correlation data from pickle files") + return fragment_dict, correlations_fragment_dict + except FileNotFoundError: + log_info("Pickle files not found, will compute correlations instead") + read_correlation_pickles = False # Fall back to computation + fragment_dict = {} correlations_fragment_dict = {} - peptide_to_rt_max = dict( + df_fragment_max_peptide = df_fragment_max_peptide.with_columns( + (pl.col("peptide") + "/" + pl.col("charge").cast(pl.Utf8)).alias("precursor") + ) + + log_info("df_fragment_max_peptide summary:") + log_info(" Shape: {}".format(df_fragment_max_peptide.shape)) + log_info(" Sample entries:") + for row in df_fragment_max_peptide.head(5).iter_rows(named=True): + log_info( + " Precursor: {}, PSM ID: {}, RT: {}".format( + row["precursor"], row["psm_id"], row["rt"] + ) + ) + + precursor_to_rt_max = dict( zip( - df_fragment_max_peptide["peptide"].to_list(), + df_fragment_max_peptide["precursor"].to_list(), df_fragment_max_peptide["rt"].to_list(), ) ) - df_peptide_rt = pl.DataFrame( + log_info( + "precursor_to_rt_max mapping created with {} entries".format( + len(precursor_to_rt_max) + ) + ) + + df_precursor_rt = pl.DataFrame( { - "peptide": list(peptide_to_rt_max.keys()), - "rt_max_peptide_sub": list(peptide_to_rt_max.values()), + "precursor": list(precursor_to_rt_max.keys()), + "rt_max_peptide_sub": list(precursor_to_rt_max.values()), } ) - # Add rt_max_peptide_sub to df_fragment - df_fragment = df_fragment.join(df_peptide_rt, on="peptide", how="left") - df_fragment = df_fragment.filter( - (pl.col("rt_max_peptide_sub").is_not_null()) - & (abs(pl.col("rt") - pl.col("rt_max_peptide_sub")) < filter_max_apex_rt) + df_fragment = df_fragment.with_columns( + (pl.col("peptide") + "/" + pl.col("charge").cast(pl.Utf8)).alias("precursor") + ) + + log_info("Before joining rt_max_peptide_sub:") + log_info(" df_fragment shape: {}".format(df_fragment.shape)) + log_info( + " Unique precursors in df_fragment: {}".format( + len(df_fragment["precursor"].unique()) + ) + ) + + df_fragment = df_fragment.join(df_precursor_rt, on="precursor", how="left") + + log_info("After joining rt_max_peptide_sub:") + log_info(" df_fragment shape: {}".format(df_fragment.shape)) + log_info( + " Entries with null rt_max_peptide_sub: {}".format( + df_fragment.filter(pl.col("rt_max_peptide_sub").is_null()).shape[0] + ) ) - # Ensure rt_max_peptide_sub is not null and apply the RT filter df_fragment = df_fragment.filter( (pl.col("rt_max_peptide_sub").is_not_null()) & (abs(pl.col("rt") - pl.col("rt_max_peptide_sub")) < filter_max_apex_rt) ) - log_info("df_fragment after filtering: {}".format(df_fragment.shape)) - log_info("Calculation of all correlation values...") - # if ( - # not read_correlation_pickles - # ): # TODO: needs to be handled differently because if there is no pickle file, we need to compute the correlations, and empty dicts will be returned - for (peptidoform, charge), df_fragment_sub_peptidoform in tqdm( df_fragment.group_by(["peptide", "charge"]) ): @@ -775,15 +1092,5 @@ def get_features_fragment_intensity( pickle.dump(fragment_dict, f) with open(f"{output_dir}/correlations_fragment_dict.pkl", "wb") as f: pickle.dump(correlations_fragment_dict, f) - if read_correlation_pickles: - try: - with open(f"{output_dir}/fragment_dict.pkl", "rb") as f: - fragment_dict = pickle.load(f) - with open(f"{output_dir}/correlations_fragment_dict.pkl", "rb") as f: - correlations_fragment_dict = pickle.load(f) - log_info("Successfully loaded correlation data from pickle files") - except FileNotFoundError: - log_info("Pickle files not found, will compute correlations instead") - read_correlation_pickles = False # Fall back to computation return fragment_dict, correlations_fragment_dict diff --git a/feature_generators/features_retention_time.py b/feature_generators/features_retention_time.py index 48055b6..8863164 100644 --- a/feature_generators/features_retention_time.py +++ b/feature_generators/features_retention_time.py @@ -5,7 +5,7 @@ def add_retention_time_features( df_psms: pl.DataFrame, - predictions_deeplc: pl.DataFrame, + # predictions_deeplc: pl.DataFrame, filter_rel_rt_error: float = 0.2, rt_prediction_error_abs: bool = True, rt_prediction_error_abs_relative: bool = True, @@ -29,7 +29,7 @@ def add_retention_time_features( Added columns: rt_predictions, rt_prediction_error_abs, rt_prediction_error_abs_relative """ - df_psms = df_psms.join(predictions_deeplc, on="peptide", how="left") + # df_psms = df_psms.join(predictions_deeplc, on=["peptide"], how="left") max_rt = df_psms["rt"].max() if rt_prediction_error_abs: diff --git a/mumdia.py b/mumdia.py index 6f6dd25..3fdaae4 100644 --- a/mumdia.py +++ b/mumdia.py @@ -12,6 +12,8 @@ import os from concurrent.futures import ThreadPoolExecutor from typing import Any, Dict, List, Optional +import pickle +import sys # Optional numba: provide no-op decorator if unavailable try: @@ -673,17 +675,10 @@ def run_peptidoform_correlation( ) ) - return pl.DataFrame(feature_dict) + df = pl.DataFrame(feature_dict) + df.write_csv("debug/correlation_features.csv") - -def dataframe_to_dict_fragintensity(df_fragment: pl.DataFrame) -> dict: - """ - Convert a DataFrame of fragment intensities into a dictionary keyed by psm_id. - """ - fragment_dict = {} - for psm_id, sub_df_fragment in df_fragment.group_by("psm_id"): - fragment_dict[psm_id] = sub_df_fragment - return fragment_dict + return df def process_peptidoform(args): @@ -805,7 +800,11 @@ def add_precursor_intensities_optimized_parallel( # 2. Define the function to compute intensities for a single row def compute_intensities(row): - scannr, charge, calcmass = row["scannr"], row["charge"], row["calcmass"] + scannr, charge, calcmass = ( + row["scannr"], + row["charge"], + row["calcmass"], + ) # Should this not be expmass? if scannr not in ms2_to_ms1_dict: return {"M-1": 0.0, "M": 0.0, "M+1": 0.0} spectrum = ms1_dict.get(ms2_to_ms1_dict[scannr], {}) @@ -855,7 +854,9 @@ def extract_intensities(scannr, charge, calcmass): pl.struct(["scannr", "charge", "calcmass"]) .map_elements( lambda row: extract_intensities( - row["scannr"], row["charge"], row["calcmass"] + row["scannr"], + row["charge"], + row["calcmass"], # Should this not be expmass? ) ) .alias("precursor_intensities") @@ -885,7 +886,7 @@ def extract_intensities(scannr, charge, calcmass): def calculate_features( df_psms: pl.DataFrame, df_fragment: pl.DataFrame, - df_fragment_max: pl.DataFrame, + df_fragment_max: pl.DataFrame, # Why not used? df_fragment_max_peptide: pl.DataFrame, *, # Force keyword-only arguments filter_rel_rt_error: float = 0.1, @@ -902,6 +903,7 @@ def calculate_features( Process the PSM and fragment DataFrames, compute features, and save the output. This function uses parallel processing with task chunking. """ + # df_psms.write_csv("debug/df_psms_beginning.csv", separator="\t") # Handle pickle configuration if pickle_config is None: pickle_config = PickleConfig() @@ -914,24 +916,122 @@ def calculate_features( log_info( f"Reading the DeepLC pickle: {pickle_config.read_deeplc} and writing DeepLC pickle: {pickle_config.write_deeplc}" ) - _, _, predictions_deeplc = get_predictions_retention_time_mainloop( - df_psms, - pickle_config.write_deeplc, - pickle_config.read_deeplc, - deeplc_model, - output_dir=config["mumdia"]["result_dir"], + + df_psms.write_csv("debug/df_psms_before_rt.tsv", separator="\t") + _, _, df_psms = ( + get_predictions_retention_time_mainloop( # Changed, since predictions_deeplc is just df_psms with RT predictions + df_psms, + pickle_config.write_deeplc, + pickle_config.read_deeplc, + deeplc_model, + output_dir=config["mumdia"]["result_dir"], + ) ) log_info("Obtaining features retention time...") - df_psms = add_retention_time_features( - df_psms, predictions_deeplc, filter_rel_rt_error=0.15 + df_psms = add_retention_time_features(df_psms, filter_rel_rt_error=0.15) + + df_psms.write_csv("debug/df_psms_after_rt.csv", separator="\t") + + log_info("PSMs shape after RT filtering: {}".format(df_psms.shape)) + + # CRITICAL FIX: Regenerate df_fragment_max_peptide after RT filtering + # to ensure apex PSMs are consistent with filtered data + log_info("Regenerating df_fragment_max_peptide after RT filtering...") + + # Filter df_fragment to only include PSMs that passed RT filtering + df_fragment = df_fragment.filter(pl.col("psm_id").is_in(df_psms["psm_id"])) + log_info( + "df_fragment shape after filtering to match RT-filtered PSMs: {}".format( + df_fragment.shape + ) ) + # Regenerate the maximum intensity fragment per PSM + df_fragment_max = df_fragment.sort("fragment_intensity", descending=True).unique( + subset="psm_id", keep="first", maintain_order=True + ) + + # Regenerate the apex PSM per peptide/charge combination from the filtered data + df_fragment_max_peptide = ( + df_fragment_max.with_columns( + [ + (pl.col("peptide") + "/" + pl.col("charge").cast(pl.Utf8)).alias( + "peptide_charge" + ) + ] + ) + .sort("fragment_intensity", descending=True) + .unique(subset=["peptide", "charge"], keep="first") + ) + + log_info("Regenerated df_fragment_max_peptide:") + log_info(" Shape: {}".format(df_fragment_max_peptide.shape)) + log_info(" Sample entries:") + for row in df_fragment_max_peptide.head(3).iter_rows(named=True): + log_info( + " Peptide: {}, Charge: {}, PSM ID: {}, RT: {}, Fragment Intensity: {}".format( + row["peptide"], + row["charge"], + row["psm_id"], + row["rt"], + row["fragment_intensity"], + ) + ) + log_info( "Counting individual peptides per MS2 and filtering by minimum occurrences" ) df_psms = add_count_and_filter_peptides(df_psms, min_occurrences) + log_info("PSMs shape after peptide count filtering: {}".format(df_psms.shape)) + + # CRITICAL FIX: Regenerate df_fragment_max_peptide again after peptide count filtering + log_info("Regenerating df_fragment_max_peptide after peptide count filtering...") + + # Filter df_fragment to only include PSMs that passed all filtering + df_fragment = df_fragment.filter(pl.col("psm_id").is_in(df_psms["psm_id"])) + log_info( + "df_fragment shape after filtering to match all-filtered PSMs: {}".format( + df_fragment.shape + ) + ) + + # Regenerate the maximum intensity fragment per PSM + df_fragment_max = df_fragment.sort("fragment_intensity", descending=True).unique( + subset="psm_id", keep="first", maintain_order=True + ) + + # Regenerate the apex PSM per peptide/charge combination from the fully filtered data + df_fragment_max_peptide = ( + df_fragment_max.with_columns( + [ + (pl.col("peptide") + "/" + pl.col("charge").cast(pl.Utf8)).alias( + "peptide_charge" + ) + ] + ) + .sort("fragment_intensity", descending=True) + .unique(subset=["peptide", "charge"], keep="first") + ) + + log_info("Final df_fragment_max_peptide after all filtering:") + log_info(" Shape: {}".format(df_fragment_max_peptide.shape)) + log_info(" This should now be consistent with all downstream processing") + + # Validation: Check that all peptides in df_fragment_max_peptide exist in the filtered data + fragment_max_psm_ids = set(df_fragment_max_peptide["psm_id"].to_list()) + filtered_psm_ids = set(df_psms["psm_id"].to_list()) + missing_psms = fragment_max_psm_ids - filtered_psm_ids + if missing_psms: + log_info( + "WARNING: {} PSMs in df_fragment_max_peptide are missing from filtered df_psms: {}".format( + len(missing_psms), list(missing_psms)[:5] # Show first 5 + ) + ) + else: + log_info("VALIDATION PASSED: All apex PSMs exist in filtered data") + log_info("Obtaining fragment intensity predictions for the main loop...") log_info( f"Reading the MS2PIP pickle: {pickle_config.read_ms2pip} and writing MS2PIP pickle: {pickle_config.write_ms2pip}" @@ -944,6 +1044,19 @@ def calculate_features( write_ms2pip_pickle=pickle_config.write_ms2pip, output_dir=config["mumdia"]["result_dir"], ) + + df_fragment.write_csv("debug/df_fragment_after_ms2pip.tsv", separator="\t") + df_fragment_max_peptide.write_csv( + "debug/df_fragment_max_peptide_after_ms2pip.tsv", separator="\t" + ) + with open("debug/ms2pip_predictions.pkl", "wb") as f: + pickle.dump(ms2pip_predictions, f) + + with open("debug/ms2dict.pkl", "wb") as f: + pickle.dump(spectra_data.ms2_dict, f) + + df_psms.write_csv("debug/df_psms_after_ms2pip.tsv", separator="\t") + fragment_dict, correlations_fragment_dict = get_features_fragment_intensity( ms2pip_predictions, df_fragment, @@ -972,18 +1085,6 @@ def calculate_features( log_info(f"Number of peptidoforms: {len(psm_dict)}") - # Output psm_dict to a pickle file for debugging - # import pickle - - # with open("psm_dict_debug.pkl", "wb") as f: - # pickle.dump(psm_dict, f) - - # with open("fragment_dict_debug.pkl", "wb") as f: - # pickle.dump(fragment_dict, f) - - # with open("correlations_fragment_dict_debug.pkl", "wb") as f: - # pickle.dump(correlations_fragment_dict, f) - # Pass data as-is (read-only) without deep copying. peptidoform_args = [ (psm_dict[k], fragment_dict[k], correlations_fragment_dict[k]) @@ -991,6 +1092,13 @@ def calculate_features( if k in correlations_fragment_dict ] + # Save psm_dict to a pickle file for debugging or future use + with open("debug/psm_dict.pkl", "wb") as f: + pickle.dump(psm_dict, f) + + with open("debug/correlations_fragment_dict.pkl", "wb") as f: + pickle.dump(correlations_fragment_dict, f) + log_info("Step 7: Processing peptidoforms in parallel (with chunking)") chunks = [ @@ -1067,6 +1175,7 @@ def main( pickle_config: Configuration for caching predictions and features spectra_data: Container for MS1/MS2 spectral data """ + df_psms.write_csv("debug/df_psms_before_mumdia.tsv", separator="\t") df_psms = pl.DataFrame(df_psms) df_psms = df_psms.filter(~df_psms["peptide"].str.contains("U")) df_psms = df_psms.sort("rt") @@ -1083,7 +1192,7 @@ def main( ) log_info("Done running MuMDIA...") - run_mokapot(output_dir=config["mumdia"]["result_dir"]) + # run_mokapot(output_dir=config["mumdia"]["result_dir"]) if __name__ == "__main__": diff --git a/notebook_helpers/visualize_pin.ipynb b/notebook_helpers/visualize_pin.ipynb index 00eb9f7..cc004fa 100644 --- a/notebook_helpers/visualize_pin.ipynb +++ b/notebook_helpers/visualize_pin.ipynb @@ -2,27 +2,41 @@ "cells": [ { "cell_type": "code", - "execution_count": 6, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", - "import pandas as pd" + "import pandas as pd\n", + "import seaborn as sns\n", + "from scipy import stats\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.metrics import roc_curve, auc, roc_auc_score\n", + "from sklearn.preprocessing import StandardScaler\n", + "import warnings\n", + "\n", + "warnings.filterwarnings(\"ignore\")\n", + "\n", + "# Set style for better plots\n", + "plt.style.use(\"default\")\n", + "sns.set_palette(\"husl\")" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "df = pd.read_csv(\"/home/robbin/MuMDIA_gh/MuMDIA/outfile.pin\", sep=\"\\t\")" + "df = pd.read_csv(\n", + " \"/home/robbe/MuMDIA/results/ecoli_debug_fragments/outfile.pin\", sep=\"\\t\"\n", + ")" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -32,11 +46,6282 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ + { + "name": "index", + "rawType": "int64", + "type": "integer" + }, + { + "name": "ScanNr", + "rawType": "float64", + "type": "float" + }, + { + "name": "filename", + "rawType": "object", + "type": "string" + }, + { + "name": "Peptide", + "rawType": "object", + "type": "string" + }, + { + "name": "num_proteins", + "rawType": "float64", + "type": "float" + }, + { + "name": "Proteins", + "rawType": "object", + "type": "string" + }, + { + "name": "ExpMass", + "rawType": "float64", + "type": "float" + }, + { + "name": "CalcMass", + "rawType": "float64", + "type": "float" + }, + { + "name": "Label", + "rawType": "float64", + "type": "float" + }, + { + "name": "charge", + "rawType": "float64", + "type": "float" + }, + { + "name": "peptide_len", + "rawType": "float64", + "type": "float" + }, + { + "name": "missed_cleavages", + "rawType": "float64", + "type": "float" + }, + { + "name": "fragment_ppm_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "rank_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "delta_next_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "delta_rt_model_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "matched_peaks_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "longest_b_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "longest_y_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "matched_intensity_pct_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "spectrum_q_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "peptide_q_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "rt_prediction_error_abs_relative_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_ppm_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "hyperscore_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M+1_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M-1_max", + "rawType": "float64", + "type": "float" + }, + { + "name": "fragment_ppm_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "rank_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "delta_next_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "delta_rt_model_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "matched_peaks_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "longest_b_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "longest_y_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "matched_intensity_pct_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "fragment_intensity_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "poisson_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "spectrum_q_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "peptide_q_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "rt_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "rt_predictions_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "rt_prediction_error_abs_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "rt_prediction_error_abs_relative_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_ppm_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "hyperscore_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "delta_best_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M+1_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M-1_min", + "rawType": "float64", + "type": "float" + }, + { + "name": "spectrum_q_mean", + "rawType": "float64", + "type": "float" + }, + { + "name": "peptide_q_mean", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M_mean", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M+1_mean", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M-1_mean", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M_sum", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M+1_sum", + "rawType": "float64", + "type": "float" + }, + { + "name": "precursor_intensity_M-1_sum", + "rawType": "float64", + "type": "float" + }, + { + "name": "SpecId", + "rawType": "object", + "type": "string" + }, + { + "name": "distribution_correlation_matrix_psm_ids_0", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_matrix_psm_ids_25", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_matrix_psm_ids_50", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_matrix_psm_ids_75", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_matrix_psm_ids_100", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_matrix_frag_ids_0", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_matrix_frag_ids_25", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_matrix_frag_ids_50", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_matrix_frag_ids_75", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_matrix_frag_ids_100", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_individual_0", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_individual_25", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_individual_50", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_individual_75", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_individual_100", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_individual_0_idx", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_individual_25_idx", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_individual_50_idx", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_individual_75_idx", + "rawType": "float64", + "type": "float" + }, + { + "name": "distribution_correlation_individual_100_idx", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_psm_ids_1", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_psm_ids_2", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_psm_ids_3", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_psm_ids_4", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_psm_ids_5", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_psm_ids_6", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_psm_ids_7", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_psm_ids_8", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_psm_ids_9", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_psm_ids_10", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_frag_ids_1", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_frag_ids_2", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_frag_ids_3", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_frag_ids_4", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_frag_ids_5", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_frag_ids_6", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_frag_ids_7", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_frag_ids_8", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_frag_ids_9", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_matrix_frag_ids_10", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_cos_1", + "rawType": "float64", + "type": "float" + }, + { + "name": "mse_avg_pred_intens_1", + "rawType": "float64", + "type": "float" + }, + { + "name": "mse_avg_pred_intens_total_1", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_individual_1", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_individual_2", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_individual_3", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_individual_4", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_individual_5", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_individual_6", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_individual_7", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_individual_8", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_individual_9", + "rawType": "float64", + "type": "float" + }, + { + "name": "top_correlation_individual_10", + "rawType": "float64", + "type": "float" + } + ], + "ref": "8c17b3a8-7df3-494c-90fb-86941fe29690", + "rows": [ + [ + "0", + "248142.0", + "part_5918.431320190428_6763.921508789061.mzml", + "VVGDHMGMLATVM[Oxidation]NGLAM[Oxidation]RDALHR", + "1.0", + "sp|P0A7E9|PYRH_ECOLI|73|97", + "2638.9287", + "2626.2598", + "1.0", + "3.0", + "24.0", + "0.0", + "10.194981", + "5.0", + "1.0079219", + "0.999", + "7.0", + "2.0", + "1.0", + "3.183649", + "0.39117905", + "0.8161304", + "0.0784651", + "4432.061", + "35.159424", + "0.0", + "0.0", + "227669.34375", + "9.079235", + "1.0", + "0.17919394", + "0.999", + "5.0", + "2.0", + "1.0", + "2.8832738", + "735373.25", + "-3.037235", + "0.36175948", + "0.8161304", + "107.31714", + "96.84596", + "10.471176", + "0.07703643", + "4432.061", + "30.500381", + "0.0", + "0.0", + "0.0", + "152844.640625", + "0.3740692", + "0.8161304", + "0.0", + "0.0", + "185365.3333333333", + "0.0", + "0.0", + "1668288.0", + "248142|part_5918.431320190428_6763.921508789061.mzml|controllerType=0 controllerNumber=1 scan=168912", + "0.2574366606144738", + "0.3387864920218188", + "0.5828359862438536", + "0.807472859073189", + "0.8823518166829675", + "0.3017655448918759", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0036430787735534", + "0.0315742841482816", + "0.0595054895230098", + "0.1112107421624619", + "0.1629159948019139", + "4.0", + "4.0", + "5.0", + "5.0", + "4.0", + "0.8823518166829675", + "0.8823518166829675", + "0.5828359862438536", + "0.5828359862438536", + "0.2574366606144739", + "0.2574366606144738", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.9983586556743352", + "9.366816520690918", + "12.102662086486816", + "0.1629159948019139", + "0.0595054895230098", + "0.0036430787735534", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "3", + "15384.0", + "part_2536.470565795897_3381.9607543945294.mzml", + "TVIGFGSPNKAGK", + "1.0", + "sp|P33570|TKT2_ECOLI|243|256", + "1270.3066", + "1274.6982", + "1.0", + "3.0", + "13.0", + "0.0", + "4.7334194", + "2.0", + "0.0", + "0.999", + "7.0", + "2.0", + "3.0", + "7.763512", + "0.1556648", + "0.5484607", + "0.09391739", + "4241.312", + "30.98107", + "55474.00390625", + "0.0", + "67869.640625", + "4.28573", + "1.0", + "0.0", + "0.999", + "6.0", + "1.0", + "1.0", + "7.330577", + "52485.105", + "-4.093339", + "0.08335777", + "0.34379962", + "47.56378", + "60.329502", + "5.8806496", + "0.043263935", + "3451.1538", + "27.675964", + "0.0", + "0.0", + "0.0", + "0.0", + "0.11951129", + "0.44613016", + "27737.001953125", + "0.0", + "33934.8203125", + "110948.0078125", + "0.0", + "135739.28125", + "15384|part_2536.470565795897_3381.9607543945294.mzml|controllerType=0 controllerNumber=1 scan=74751", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.1225090230992203", + "-0.1225090230992203", + "-0.1225090230992203", + "-0.1225090230992203", + "-0.1225090230992203", + "2.0", + "2.0", + "2.0", + "2.0", + "2.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "5.57225227355957", + "10.180330276489258", + "-0.1225090230992203", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "6", + "245040.0", + "part_5918.431320190428_6763.921508789061.mzml", + "EPGPPGLSHQLM[Oxidation]SGM[Oxidation]PGAPLLPEGPR", + "1.0", + "sp|TAU_HUMAN||137|163", + "2638.1716", + "2653.299", + "1.0", + "4.0", + "26.0", + "0.0", + "4.1247215", + "5.0", + "0.0", + "0.999", + "5.0", + "2.0", + "2.0", + "1.7286209", + "0.31155935", + "0.78328496", + "0.011448948", + "5717.67", + "24.782452", + "0.0", + "0.0", + "0.0", + "4.1247215", + "5.0", + "0.0", + "0.999", + "5.0", + "2.0", + "2.0", + "1.7286209", + "33159.605", + "-2.478622", + "0.31155935", + "0.78328496", + "106.96097", + "105.40477", + "1.5561981", + "0.011448948", + "5717.67", + "24.782452", + "0.0", + "0.0", + "0.0", + "0.0", + "0.31155935", + "0.78328496", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "245040|part_5918.431320190428_6763.921508789061.mzml|controllerType=0 controllerNumber=1 scan=168349", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.142911409332623", + "0.142911409332623", + "0.142911409332623", + "0.142911409332623", + "0.142911409332623", + "6.0", + "6.0", + "6.0", + "6.0", + "6.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.4779733201799403", + "5.138903617858887", + "7.21052074432373", + "0.142911409332623", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "8", + "13506.0", + "part_1690.9803771972647_2536.470565795897.mzml", + "AINATLSK", + "1.0", + "sp|P46837|YHGF_ECOLI|89|97", + "814.85657", + "816.4705", + "1.0", + "2.0", + "8.0", + "0.0", + "4.5396867", + "5.0", + "0.0", + "0.999", + "7.0", + "2.0", + "3.0", + "2.8003078", + "0.24433072", + "0.37470886", + "0.0103295585", + "9014.09", + "28.600826", + "752133.3125", + "292454.0", + "449050.09375", + "1.2835693", + "3.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "1.0154666", + "38319.406", + "-4.059514", + "0.09947931", + "0.37470886", + "41.928577", + "40.81588", + "1.1126976", + "0.008186115", + "748.13605", + "25.192627", + "0.0", + "164797.125", + "45365.71484375", + "0.0", + "0.1616757", + "0.37470886", + "455773.046875", + "168139.56171875", + "137381.2765625", + "11394326.171875", + "4203489.04296875", + "3434531.9140625", + "13506|part_1690.9803771972647_2536.470565795897.mzml|controllerType=0 controllerNumber=1 scan=65874", + "0.0018549701845251", + "0.0018549701845251", + "0.9999999999999996", + "0.9999999999999996", + "0.9999999999999996", + "0.9999999999999992", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.0214522512381801", + "-0.2232309781433831", + "-0.2232309781433831", + "-0.2232309781433831", + "-0.2232309781433831", + "3.0", + "2.0", + "2.0", + "2.0", + "2.0", + "0.9999999999999996", + "0.9999999999999996", + "0.9999999999999996", + "0.9999999999999996", + "0.9999999999999996", + "0.9999999999999996", + "0.9999999999999996", + "0.9999999999999996", + "0.9999999999999996", + "0.9999999999999996", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "4.350908756256104", + "4.990771293640137", + "-0.0214522512381801", + "-0.2232309781433831", + "-0.2232309781433831", + "-0.2232309781433831", + "-0.2232309781433831", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "9", + "78185.0", + "part_3381.96075439453_4227.450942993162.mzml", + "VVPGYAHRCVCLDNLSGAR", + "1.0", + "sp|P25748|GALS_ECOLI|146|165", + "2029.895", + "2028.9987", + "1.0", + "4.0", + "19.0", + "0.0", + "7.58262", + "9.0", + "0.0", + "0.999", + "6.0", + "3.0", + "2.0", + "1.439756", + "0.40567186", + "0.78326726", + "0.092911184", + "7475.334", + "27.66969", + "712662.5625", + "0.0", + "0.0", + "4.562194", + "4.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "0.5304615", + "24336.947", + "-3.1116004", + "0.30511752", + "0.76031756", + "65.488365", + "68.83073", + "0.6252289", + "0.0045998082", + "441.67816", + "24.598574", + "0.0", + "0.0", + "0.0", + "0.0", + "0.3697943", + "0.76949745", + "177809.446875", + "0.0", + "0.0", + "4445236.171875", + "0.0", + "0.0", + "78185|part_3381.96075439453_4227.450942993162.mzml|controllerType=0 controllerNumber=1 scan=102993", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.0458223654600047", + "-0.0458223654600047", + "-0.0458223654600047", + "-0.0458223654600047", + "-0.0458223654600047", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-1.0", + "5.644822120666504", + "10.247090339660645", + "-0.0458223654600047", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "11", + "1885.0", + "part_1690.9803771972647_2536.470565795897.mzml", + "KGEASVTIDK", + "1.0", + "sp|P45470|YHBO_ECOLI|46|56", + "1046.962", + "1046.5607", + "1.0", + "2.0", + "10.0", + "0.0", + "2.7018483", + "1.0", + "0.0", + "0.999", + "7.0", + "1.0", + "2.0", + "13.982279", + "0.008666837", + "0.028412523", + "0.015365394", + "575.3665", + "29.248222", + "230314.4375", + "136082.59375", + "0.0", + "2.7018483", + "1.0", + "0.0", + "0.999", + "7.0", + "1.0", + "2.0", + "13.982279", + "51986.832", + "-4.4121695", + "0.008666837", + "0.028412523", + "30.620695", + "32.709236", + "2.088541", + "0.015365394", + "575.3665", + "29.248222", + "0.0", + "230314.4375", + "136082.59375", + "0.0", + "0.008666837", + "0.028412523", + "230314.4375", + "136082.59375", + "0.0", + "230314.4375", + "136082.59375", + "0.0", + "1885|part_1690.9803771972647_2536.470565795897.mzml|controllerType=0 controllerNumber=1 scan=48063", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.2011093055983487", + "-0.2011093055983487", + "-0.2011093055983487", + "-0.2011093055983487", + "-0.2011093055983487", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "1.0", + "4.649024963378906", + "7.592132091522217", + "-0.2011093055983487", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "12", + "199248.0", + "part_5072.941131591795_5918.431320190428.mzml", + "VAGLTRM[Oxidation]MAQNIVAWRDENGQFQNR", + "1.0", + "sp|P46837|YHGF_ECOLI|508|533", + "2926.3025", + "2920.4185", + "1.0", + "4.0", + "25.0", + "0.0", + "4.741852", + "6.0", + "0.0", + "0.999", + "7.0", + "3.0", + "2.0", + "4.228885", + "0.40317476", + "0.6740286", + "0.0068993755", + "2355.5771", + "29.178509", + "0.0", + "962747.3125", + "0.0", + "3.88729", + "2.0", + "0.0", + "0.999", + "5.0", + "2.0", + "1.0", + "1.569427", + "16169.461", + "-3.8659334", + "0.21202026", + "0.6740286", + "92.88677", + "93.82457", + "0.6464615", + "0.0047560167", + "2012.7635", + "24.168104", + "0.0", + "0.0", + "0.0", + "0.0", + "0.3123334", + "0.6740286", + "0.0", + "418998.046875", + "0.0", + "0.0", + "6703968.75", + "0.0", + "199248|part_5072.941131591795_5918.431320190428.mzml|controllerType=0 controllerNumber=1 scan=146171", + "0.9650635092923022", + "0.9668698499860644", + "0.9777738927992652", + "0.9808282228314807", + "0.999196953891868", + "0.0085622960473903", + "0.0", + "0.0", + "0.0", + "0.0", + "0.1394040337949371", + "0.1702944009729351", + "0.1586068258134441", + "0.1589667611274669", + "0.2259996597260063", + "7.0", + "7.0", + "7.0", + "7.0", + "6.0", + "0.999196953891868", + "0.9991969538918676", + "0.9808282228314807", + "0.9808282228314807", + "0.980617360916512", + "0.980617360916512", + "0.9749304246820184", + "0.9749304246820182", + "0.9668698499860644", + "0.9668698499860644", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0609608870627386", + "14.192861557006836", + "16.87909507751465", + "0.2259996597260063", + "0.1805911900322678", + "0.1394040337949371", + "0.1366224615946204", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "16", + "22101.0", + "part_2536.470565795897_3381.9607543945294.mzml", + "LTGLERM[Oxidation]GPK", + "1.0", + "sp|P15042|DNLJ_ECOLI|481|491", + "1110.9911", + "1116.5961", + "1.0", + "2.0", + "10.0", + "0.0", + "2.0457163", + "3.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "4.36744", + "0.14867067", + "0.5136843", + "0.012913253", + "5032.3335", + "25.008392", + "0.0", + "0.0", + "0.0", + "2.0457163", + "3.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "4.36744", + "59341.703", + "-2.6279182", + "0.14867067", + "0.5136843", + "42.86484", + "44.620075", + "1.7552338", + "0.012913253", + "5032.3335", + "25.008392", + "0.0", + "0.0", + "0.0", + "0.0", + "0.14867067", + "0.5136843", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "22101|part_2536.470565795897_3381.9607543945294.mzml|controllerType=0 controllerNumber=1 scan=67347", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.205068479400011", + "-0.205068479400011", + "-0.205068479400011", + "-0.205068479400011", + "-0.205068479400011", + "6.0", + "6.0", + "6.0", + "6.0", + "6.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.9969962385358708", + "5.961617946624756", + "10.05322265625", + "-0.205068479400011", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "18", + "248358.0", + "part_5918.431320190428_6763.921508789061.mzml", + "VFKELAANM[Oxidation]VQAFTVR", + "1.0", + "sp|P0AGL5|RATA_ECOLI|134|150", + "1846.5686", + "1838.9711", + "1.0", + "3.0", + "16.0", + "0.0", + "4.445764", + "1.0", + "0.0", + "0.999", + "5.0", + "1.0", + "3.0", + "7.533952", + "0.1299337", + "0.5406047", + "0.08512278", + "4122.888", + "25.328259", + "0.0", + "0.0", + "0.0", + "4.445764", + "1.0", + "0.0", + "0.999", + "5.0", + "1.0", + "3.0", + "7.533952", + "48304.496", + "-2.6451683", + "0.1299337", + "0.5406047", + "108.75402", + "97.18371", + "11.5703125", + "0.08512278", + "4122.888", + "25.328259", + "0.0", + "0.0", + "0.0", + "0.0", + "0.1299337", + "0.5406047", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "248358|part_5918.431320190428_6763.921508789061.mzml|controllerType=0 controllerNumber=1 scan=171174", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.732821167580546", + "0.732821167580546", + "0.732821167580546", + "0.732821167580546", + "0.732821167580546", + "4.0", + "4.0", + "4.0", + "4.0", + "4.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.4905839033460683", + "3.1998417377471924", + "5.438206672668457", + "0.732821167580546", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "19", + "83881.0", + "part_3381.96075439453_4227.450942993162.mzml", + "GTKEYGGFWR", + "1.0", + "sp|P62517|OPGH_ECOLI|592|602", + "1191.0275", + "1199.5724", + "1.0", + "2.0", + "10.0", + "0.0", + "4.71833", + "3.0", + "1.4297172", + "0.999", + "6.0", + "2.0", + "1.0", + "2.0056615", + "0.2129828", + "0.6478989", + "0.05000056", + "6306.7085", + "27.213648", + "0.0", + "0.0", + "0.0", + "4.71833", + "3.0", + "1.4297172", + "0.999", + "6.0", + "2.0", + "1.0", + "2.0056615", + "68061.555", + "-3.2359312", + "0.2129828", + "0.6478989", + "70.153244", + "63.35692", + "6.7963257", + "0.05000056", + "6306.7085", + "27.213648", + "0.0", + "0.0", + "0.0", + "0.0", + "0.2129828", + "0.6478989", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "83881|part_3381.96075439453_4227.450942993162.mzml|controllerType=0 controllerNumber=1 scan=110348", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.1722861350771677", + "0.1722861350771677", + "0.1722861350771677", + "0.1722861350771677", + "0.1722861350771677", + "8.0", + "8.0", + "8.0", + "8.0", + "8.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0889042209436791", + "3.6715316772460938", + "5.121567249298096", + "0.1722861350771677", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "23", + "110892.0", + "part_4227.450942993162_5072.941131591795.mzml", + "ADVLPLDSNHVNTEEAR", + "1.0", + "sp|P21889|SYD_ECOLI|104|121", + "1882.585", + "1878.9071", + "1.0", + "3.0", + "17.0", + "0.0", + "4.514571", + "7.0", + "0.0", + "0.999", + "17.0", + "3.0", + "11.0", + "31.59898", + "0.24652113", + "0.0013333149", + "0.04878435", + "4978.54", + "56.39301", + "8050498.0", + "7817189.0", + "213083.28125", + "1.2749599", + "1.0", + "0.0", + "0.999", + "7.0", + "2.0", + "1.0", + "1.4046701", + "67676.16", + "-12.828133", + "0.00012981956", + "0.0013333149", + "70.93507", + "68.04122", + "2.8938446", + "0.021290012", + "1422.4249", + "29.50985", + "0.0", + "0.0", + "0.0", + "0.0", + "0.039134614", + "0.0013333149", + "2591972.646875", + "2614192.1421875", + "17499.32578125", + "1295986323.4375", + "1307096071.09375", + "8749662.890625", + "110892|part_4227.450942993162_5072.941131591795.mzml|controllerType=0 controllerNumber=1 scan=111577", + "5.94528257948e-05", + "0.241470550348109", + "0.7276087723769848", + "0.9758837064793134", + "0.9999999999999998", + "0.0326740686284722", + "0.0", + "0.0", + "0.0", + "0.0", + "0.1887501733541925", + "-0.0859566784835878", + "0.2150752337854058", + "-0.0716140743475822", + "-0.0939983635344226", + "3.0", + "3.0", + "2.0", + "3.0", + "2.0", + "0.9999999999999998", + "0.9999999999999998", + "0.9999999999999998", + "0.9999999999999998", + "0.999767746335646", + "0.999767746335646", + "0.9989360760510608", + "0.9989360760510608", + "0.9977831421281848", + "0.9977831421281848", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "1.0", + "5.088918209075928", + "5.335041999816895", + "0.2150752337854058", + "0.2150752337854058", + "0.1887501733541925", + "0.0905591201572626", + "0.0787582218739915", + "0.0298236631145603", + "0.0019380114431123", + "-0.0477563137818386", + "-0.0719682692018915", + "-0.0791255443121513" + ], + [ + "27", + "271843.0", + "part_6763.921508789061_7609.4116973876935.mzml", + "LDTLYPGMMLKFGGHAMAAGLSLEEDK", + "1.0", + "sp|P21893|RECJ_ECOLI|414|441", + "2910.2952", + "2894.4014", + "1.0", + "4.0", + "27.0", + "0.0", + "9.931161", + "3.0", + "0.0", + "0.999", + "5.0", + "2.0", + "3.0", + "6.9387197", + "0.24108118", + "0.78702754", + "0.047531538", + "5476.186", + "24.383945", + "0.0", + "0.0", + "71706.703125", + "9.931161", + "3.0", + "0.0", + "0.999", + "5.0", + "2.0", + "3.0", + "6.9387197", + "45839.832", + "-2.5241804", + "0.24108118", + "0.78702754", + "116.43497", + "122.89569", + "6.460724", + "0.047531538", + "5476.186", + "24.383945", + "0.0", + "0.0", + "0.0", + "71706.703125", + "0.24108118", + "0.78702754", + "0.0", + "0.0", + "71706.703125", + "0.0", + "0.0", + "71706.703125", + "271843|part_6763.921508789061_7609.4116973876935.mzml|controllerType=0 controllerNumber=1 scan=183276", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.0022255470060108", + "-0.0022255470060108", + "-0.0022255470060108", + "-0.0022255470060108", + "-0.0022255470060108", + "4.0", + "4.0", + "4.0", + "4.0", + "4.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.988319434517576", + "11.378979682922363", + "21.7058048248291", + "-0.0022255470060108", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "30", + "121439.0", + "part_4227.450942993162_5072.941131591795.mzml", + "LLGRFDRVTAFK", + "1.0", + "sp|P75683|YAGG_ECOLI|284|296", + "1415.1294", + "1421.8142", + "1.0", + "2.0", + "12.0", + "0.0", + "6.376048", + "6.0", + "0.0", + "0.999", + "6.0", + "1.0", + "2.0", + "1.2668073", + "0.08567686", + "0.40690592", + "0.021616012", + "4003.9258", + "28.786732", + "472186.53125", + "0.0", + "1728641.5", + "6.376048", + "6.0", + "0.0", + "0.999", + "6.0", + "1.0", + "2.0", + "1.2668073", + "144494.72", + "-2.786515", + "0.08567686", + "0.40690592", + "80.164986", + "77.22683", + "2.9381561", + "0.021616012", + "4003.9258", + "28.786732", + "0.0", + "472186.53125", + "0.0", + "1728641.5", + "0.08567686", + "0.40690592", + "472186.53125", + "0.0", + "1728641.5", + "472186.53125", + "0.0", + "1728641.5", + "121439|part_4227.450942993162_5072.941131591795.mzml|controllerType=0 controllerNumber=1 scan=126123", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.0850402777445184", + "-0.0850402777445184", + "-0.0850402777445184", + "-0.0850402777445184", + "-0.0850402777445184", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-1.0", + "6.624348163604736", + "12.321269989013672", + "-0.0850402777445184", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "31", + "249715.0", + "part_5918.431320190428_6763.921508789061.mzml", + "KAKMRPGDVLGALTGDIGLDGADIGK", + "1.0", + "sp|P21693|DBPA_ECOLI|391|417", + "2558.135", + "2567.3743", + "1.0", + "4.0", + "26.0", + "0.0", + "4.370032", + "3.0", + "0.0", + "0.999", + "5.0", + "1.0", + "4.0", + "3.7530317", + "0.26346114", + "0.68367416", + "0.046579022", + "3997.5007", + "25.868452", + "0.0", + "0.0", + "0.0", + "0.7092458", + "3.0", + "0.0", + "0.999", + "5.0", + "1.0", + "2.0", + "2.572944", + "22575.867", + "-2.5650077", + "0.2096927", + "0.68367416", + "103.6081", + "109.939354", + "5.55497", + "0.040867906", + "3997.5007", + "24.359447", + "0.0", + "0.0", + "0.0", + "0.0", + "0.23657691", + "0.68367416", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "249715|part_5918.431320190428_6763.921508789061.mzml|controllerType=0 controllerNumber=1 scan=163067", + "0.0796743851653512", + "0.0796743851653512", + "0.0796743851653512", + "0.0796743851653512", + "0.0796743851653512", + "0.9999999999999996", + "0.0", + "0.0", + "0.0", + "0.0", + "0.2378296431396517", + "0.2459434695263722", + "0.2540572959130928", + "0.2621711222998133", + "0.2702849486865338", + "5.0", + "5.0", + "5.0", + "5.0", + "5.0", + "0.0796743851653512", + "0.0796743851653512", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.7261029593980536", + "9.650562286376951", + "13.0469970703125", + "0.2702849486865338", + "0.2378296431396517", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "33", + "86457.0", + "part_3381.96075439453_4227.450942993162.mzml", + "ISNPKIEENVGDFR", + "1.0", + "sp|P77293|GTRB_ECOLI|143|157", + "1606.4595", + "1616.8158", + "1.0", + "3.0", + "14.0", + "0.0", + "6.2498193", + "4.0", + "0.0", + "0.999", + "5.0", + "4.0", + "3.0", + "5.601812", + "0.3876272", + "0.55829656", + "0.122698635", + "7050.723", + "25.547653", + "0.0", + "341641.28125", + "0.0", + "4.2052736", + "3.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "1.4191039", + "34532.91", + "-2.6299655", + "0.16075379", + "0.55829656", + "57.867798", + "74.54561", + "12.164665", + "0.08949543", + "399.4351", + "24.474264", + "0.0", + "0.0", + "0.0", + "0.0", + "0.27678192", + "0.55829656", + "0.0", + "85410.3203125", + "0.0", + "0.0", + "1366565.125", + "0.0", + "86457|part_3381.96075439453_4227.450942993162.mzml|controllerType=0 controllerNumber=1 scan=90985", + "0.8500718708306243", + "0.8665412023528818", + "0.9159491969196544", + "0.967779651269768", + "0.9850564693864724", + "0.8954697491195011", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.1028287443489532", + "-0.0255162492885494", + "0.0517962457718543", + "-0.0017247052139584", + "-0.0552456561997712", + "2.0", + "2.0", + "4.0", + "4.0", + "3.0", + "0.9850564693864724", + "0.9850564693864724", + "0.9159491969196544", + "0.9159491969196542", + "0.8500718708306243", + "0.8500718708306243", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-1.0", + "4.0399603843688965", + "4.888646602630615", + "0.0517962457718543", + "-0.0552456561997712", + "-0.1028287443489532", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "34", + "207427.0", + "part_5072.941131591795_5918.431320190428.mzml", + "TGVNFGAGMTGGFAYVLDESGDFRKR", + "1.0", + "sp|P09831|GLTB_ECOLI|1380|1406", + "2750.2224", + "2751.3071", + "1.0", + "4.0", + "26.0", + "0.0", + "1.9602817", + "2.0", + "0.0", + "0.999", + "7.0", + "4.0", + "1.0", + "4.5014496", + "0.34689057", + "0.7894852", + "0.069205254", + "394.3328", + "30.476059", + "0.0", + "0.0", + "0.0", + "1.9602817", + "2.0", + "0.0", + "0.999", + "7.0", + "4.0", + "1.0", + "4.5014496", + "254907.12", + "-3.586841", + "0.34689057", + "0.7894852", + "94.77632", + "104.183044", + "9.406723", + "0.069205254", + "394.3328", + "30.476059", + "0.0", + "0.0", + "0.0", + "0.0", + "0.34689057", + "0.7894852", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "207427|part_5072.941131591795_5918.431320190428.mzml|controllerType=0 controllerNumber=1 scan=149149", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.05871723215634", + "-0.05871723215634", + "-0.05871723215634", + "-0.05871723215634", + "-0.05871723215634", + "4.0", + "4.0", + "4.0", + "4.0", + "4.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.5376531649043513", + "9.049220085144045", + "17.059001922607422", + "-0.05871723215634", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "35", + "220515.0", + "part_5918.431320190428_6763.921508789061.mzml", + "TGVILGHEGIGVVAEVGPGVTSLKPGDR", + "1.0", + "sp|P39451|ADHP_ECOLI|51|79", + "2702.2004", + "2713.4758", + "1.0", + "4.0", + "28.0", + "0.0", + "6.8226013", + "6.0", + "0.0", + "0.999", + "17.0", + "4.0", + "6.0", + "20.236183", + "0.3501519", + "0.0013357961", + "0.08838199", + "4535.3584", + "51.107258", + "544252.5625", + "866253.125", + "0.0", + "2.9374022", + "1.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "1.1395812", + "14488.374", + "-14.133641", + "0.00011120996", + "0.0013357961", + "99.19407", + "99.12385", + "0.07022095", + "0.00051661546", + "1373.1553", + "23.958641", + "0.0", + "0.0", + "0.0", + "0.0", + "0.113783486", + "0.0013357961", + "178589.56953125", + "320356.3828125", + "0.0", + "85722993.375", + "153771063.75", + "0.0", + "220515|part_5918.431320190428_6763.921508789061.mzml|controllerType=0 controllerNumber=1 scan=156110", + "1.028140129553042e-06", + "0.0010462766692531", + "0.2010317751481522", + "0.7201158391441188", + "1.0", + "0.0064420268856332", + "0.0", + "0.0", + "0.0", + "0.0", + "0.165557883316007", + "0.1048833698934765", + "0.0303589248025947", + "0.1298767553415987", + "0.1005414059102303", + "3.0", + "5.0", + "2.0", + "4.0", + "4.0", + "1.0", + "1.0", + "0.98980912356569", + "0.9898091235656896", + "0.9887054118352534", + "0.9887054118352532", + "0.9878130752143548", + "0.9878130752143548", + "0.9859605398706984", + "0.9859605398706984", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.2684685408557192", + "9.448067665100098", + "9.79803466796875", + "0.2186559151075225", + "0.2008689716320319", + "0.165557883316007", + "0.1428697628044075", + "0.1317942589810008", + "0.1311175374311758", + "0.1279023835975793", + "0.1261544090728675", + "0.1074091568432097", + "0.1005414059102303" + ], + [ + "36", + "76665.0", + "part_3381.96075439453_4227.450942993162.mzml", + "GYNGLAEVGK", + "1.0", + "sp|P0AEX9|MALE_ECOLI|41|51", + "998.9402", + "1006.50836", + "1.0", + "2.0", + "10.0", + "0.0", + "4.7633276", + "3.0", + "10.724482", + "0.999", + "12.0", + "4.0", + "8.0", + "35.09726", + "0.10007044", + "0.0017548319", + "0.0630064", + "7547.6147", + "46.716553", + "62637856.0", + "33839500.0", + "518487.28125", + "0.5360646", + "1.0", + "0.0", + "0.999", + "6.0", + "1.0", + "2.0", + "1.8686523", + "80685.73", + "-8.373048", + "0.00020024029", + "0.0017548319", + "58.107918", + "56.244564", + "1.8633537", + "0.013708691", + "432.5763", + "28.14706", + "0.0", + "0.0", + "0.0", + "0.0", + "0.013545526", + "0.0017548319", + "21978913.91810345", + "12193445.625", + "49224.20905172414", + "18484266605.125", + "10254687770.625", + "41397559.8125", + "76665|part_3381.96075439453_4227.450942993162.mzml|controllerType=0 controllerNumber=1 scan=91363", + "7.5059247863567986e-06", + "0.151824433380516", + "0.4839519889455784", + "0.8222493490606134", + "1.0", + "0.0001425277791672", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.2306351560572112", + "0.0559715332050225", + "0.1554841170042873", + "0.0875123112403276", + "0.1772141581729064", + "4.0", + "2.0", + "5.0", + "6.0", + "6.0", + "1.0", + "1.0", + "1.0", + "1.0", + "1.0", + "1.0", + "1.0", + "1.0", + "1.0", + "1.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.2085931442903617", + "5.75669527053833", + "5.880125522613525", + "0.5893604655720529", + "0.5197240236853148", + "0.4019542112482926", + "0.4019542112482926", + "0.3792166947282133", + "0.3338801600238909", + "0.1772141581729064", + "0.1772141581729064", + "0.1302649865696235", + "-0.0126140752904266" + ], + [ + "37", + "36070.0", + "part_2536.470565795897_3381.9607543945294.mzml", + "M[Oxidation]VRQAQSSKPEIGQLADK", + "1.0", + "sp|Q59385|COPA_ECOLI|417|435", + "1997.8804", + "2001.0315", + "1.0", + "4.0", + "18.0", + "0.0", + "3.166185", + "6.0", + "0.0", + "0.999", + "5.0", + "0.0", + "4.0", + "0.9039659", + "0.19700791", + "0.60823625", + "0.059919056", + "1073.9093", + "24.592775", + "0.0", + "0.0", + "0.0", + "3.166185", + "6.0", + "0.0", + "0.999", + "5.0", + "0.0", + "4.0", + "0.9039659", + "44841.105", + "-2.497453", + "0.19700791", + "0.60823625", + "45.6758", + "53.820297", + "8.144497", + "0.059919056", + "1073.9093", + "24.592775", + "0.0", + "0.0", + "0.0", + "0.0", + "0.19700791", + "0.60823625", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "36070|part_2536.470565795897_3381.9607543945294.mzml|controllerType=0 controllerNumber=1 scan=71777", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.211554865685865", + "0.211554865685865", + "0.211554865685865", + "0.211554865685865", + "0.211554865685865", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "1.0", + "6.811820030212402", + "13.09833526611328", + "0.211554865685865", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "41", + "247202.0", + "part_5918.431320190428_6763.921508789061.mzml", + "APELM[Oxidation]IDGEM[Oxidation]HGDAALVEAIR", + "1.0", + "sp|P76558|MAO2_ECOLI|658|679", + "2286.0115", + "2269.0718", + "1.0", + "4.0", + "21.0", + "0.0", + "3.1873362", + "7.0", + "26.797764", + "0.999", + "7.0", + "3.0", + "2.0", + "5.062065", + "0.3535259", + "0.48234004", + "0.027214643", + "6998.712", + "27.47355", + "0.0", + "0.0", + "0.0", + "3.0151665", + "1.0", + "3.364596", + "0.999", + "5.0", + "2.0", + "2.0", + "2.419442", + "25004.621", + "-4.3209386", + "0.10745077", + "0.48234004", + "102.09837", + "104.51759", + "2.41922", + "0.017798198", + "6998.712", + "26.797764", + "0.0", + "0.0", + "0.0", + "0.0", + "0.23048833", + "0.48234004", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "247202|part_5918.431320190428_6763.921508789061.mzml|controllerType=0 controllerNumber=1 scan=160687", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0018967725578441", + "0.0018967725578441", + "0.0018967725578441", + "0.0018967725578441", + "0.0018967725578441", + "4.0", + "4.0", + "4.0", + "4.0", + "4.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.6197439978916859", + "9.227724075317385", + "16.529157638549805", + "0.0018967725578441", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "42", + "258326.0", + "part_6763.921508789061_7609.4116973876935.mzml", + "MLPDDINLWYVRNKDGGM[Oxidation]VPFSAFATSR", + "1.0", + "sp|P24177|ACRD_ECOLI|778|806", + "3230.4407", + "3215.5527", + "1.0", + "4.0", + "28.0", + "0.0", + "2.7233381", + "6.0", + "25.86164", + "0.999", + "5.0", + "2.0", + "1.0", + "1.3922762", + "0.3216992", + "0.9091348", + "0.007920482", + "4308.6455", + "25.86164", + "0.0", + "0.0", + "0.0", + "2.7233381", + "6.0", + "25.86164", + "0.999", + "5.0", + "2.0", + "1.0", + "1.3922762", + "88580.55", + "-2.3249042", + "0.3216992", + "0.9091348", + "119.84211", + "118.76552", + "1.0765915", + "0.007920482", + "4308.6455", + "25.86164", + "0.0", + "0.0", + "0.0", + "0.0", + "0.3216992", + "0.9091348", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "258326|part_6763.921508789061_7609.4116973876935.mzml|controllerType=0 controllerNumber=1 scan=188642", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.2794498321576921", + "0.2794498321576921", + "0.2794498321576921", + "0.2794498321576921", + "0.2794498321576921", + "8.0", + "8.0", + "8.0", + "8.0", + "8.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.2804864228984247", + "5.947952747344971", + "9.009005546569824", + "0.2794498321576921", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "44", + "8414.0", + "part_1690.9803771972647_2536.470565795897.mzml", + "LEGNNPAGSVK", + "1.0", + "sp|P16703|CYSM_ECOLI|30|41", + "1078.9767", + "1084.5513", + "1.0", + "2.0", + "11.0", + "0.0", + "4.231613", + "2.0", + "0.0", + "0.999", + "11.0", + "2.0", + "6.0", + "16.425404", + "0.17129043", + "0.0056187995", + "0.0020003133", + "6083.57", + "38.27077", + "952530.125", + "576927.3125", + "0.0", + "1.6786478", + "1.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "3.6718228", + "38157.977", + "-8.162518", + "0.0006031363", + "0.0056187995", + "37.61834", + "37.890232", + "0.019382477", + "0.00014259687", + "1313.6018", + "24.26086", + "0.0", + "327346.40625", + "229583.78125", + "0.0", + "0.046230625", + "0.0056187995", + "613713.9921875", + "386942.412109375", + "0.0", + "39277695.5", + "24764314.375", + "0.0", + "8414|part_1690.9803771972647_2536.470565795897.mzml|controllerType=0 controllerNumber=1 scan=59082", + "0.8828839980797444", + "0.9491434626709384", + "0.9727203634151814", + "0.984344375331356", + "0.9998835247894764", + "0.0124527708923489", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.1526734378055944", + "-0.1598285824376242", + "-0.1491589092063679", + "-0.1602080990110682", + "-0.1509044310391719", + "5.0", + "4.0", + "5.0", + "4.0", + "5.0", + "0.9998835247894764", + "0.9998835247894764", + "0.9983597502502862", + "0.9983597502502862", + "0.9980185455836932", + "0.998018545583693", + "0.9973318557003829", + "0.9973318557003829", + "0.9934868428426288", + "0.9934868428426288", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.9907490940319188", + "5.127541542053223", + "5.603973865509033", + "-0.1479475552324641", + "-0.1503702631802716", + "-0.1509044310391719", + "-0.1526734378055944", + "-0.1587564057948903", + "-0.1589638901910638", + "-0.1624226591773054", + "-0.164563178659602", + "0.0", + "0.0" + ], + [ + "45", + "151354.0", + "part_4227.450942993162_5072.941131591795.mzml", + "STTKTASVTPSSAVPKSSWPPVGQR", + "1.0", + "sp|Q46798|YGER_ECOLI|99|124", + "2558.135", + "2555.334", + "1.0", + "4.0", + "25.0", + "0.0", + "6.3604417", + "6.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "0.71477574", + "0.39831564", + "0.8270691", + "0.1467908", + "1095.5481", + "26.495703", + "0.0", + "0.0", + "0.0", + "6.3604417", + "6.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "0.71477574", + "380742.8", + "-2.4112573", + "0.39831564", + "0.8270691", + "84.47889", + "64.52635", + "19.952538", + "0.1467908", + "1095.5481", + "26.495703", + "0.0", + "0.0", + "0.0", + "0.0", + "0.39831564", + "0.8270691", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "151354|part_4227.450942993162_5072.941131591795.mzml|controllerType=0 controllerNumber=1 scan=132923", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0995670406555136", + "0.0995670406555136", + "0.0995670406555136", + "0.0995670406555136", + "0.0995670406555136", + "5.0", + "5.0", + "5.0", + "5.0", + "5.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.2195582641164006", + "5.878575325012207", + "10.16303253173828", + "0.0995670406555136", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "48", + "277424.0", + "part_7609.4116973876935_8454.901885986326.mzml", + "VPDELPAVNFLREENVFVMTTSR", + "1.0", + "sp|P07623|METAS_ECOLI|4|27", + "2674.945", + "2662.3423", + "1.0", + "3.0", + "23.0", + "0.0", + "5.8160496", + "4.0", + "0.15045828", + "0.999", + "5.0", + "1.0", + "2.0", + "0.7818067", + "0.18636188", + "0.56308734", + "0.032283414", + "4347.382", + "24.65246", + "0.0", + "0.0", + "0.0", + "5.8160496", + "4.0", + "0.15045828", + "0.999", + "5.0", + "1.0", + "2.0", + "0.7818067", + "33041.285", + "-2.322024", + "0.18636188", + "0.56308734", + "131.36153", + "126.973404", + "4.3881226", + "0.032283414", + "4347.382", + "24.65246", + "0.0", + "0.0", + "0.0", + "0.0", + "0.18636188", + "0.56308734", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "277424|part_7609.4116973876935_8454.901885986326.mzml|controllerType=0 controllerNumber=1 scan=206784", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.3502354990154851", + "0.3502354990154851", + "0.3502354990154851", + "0.3502354990154851", + "0.3502354990154851", + "6.0", + "6.0", + "6.0", + "6.0", + "6.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.6091796938295075", + "10.81940746307373", + "20.68083953857422", + "0.3502354990154851", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "49", + "41084.0", + "part_2536.470565795897_3381.9607543945294.mzml", + "ISQELITNVHKSGPR", + "1.0", + "sp|P75990|BLUF_ECOLI|326|341", + "1677.7349", + "1677.9161", + "1.0", + "4.0", + "15.0", + "0.0", + "3.474174", + "3.0", + "0.8796374", + "0.999", + "6.0", + "2.0", + "3.0", + "8.549711", + "0.3368799", + "0.68144673", + "0.05770469", + "9091.129", + "31.130924", + "0.0", + "0.0", + "0.0", + "2.0434248", + "2.0", + "0.0", + "0.999", + "5.0", + "1.0", + "2.0", + "2.0837388", + "36790.91", + "-3.226686", + "0.2521571", + "0.68144673", + "52.37151", + "60.21502", + "4.883278", + "0.03592627", + "489.81845", + "24.968815", + "0.0", + "0.0", + "0.0", + "0.0", + "0.2899696", + "0.68144673", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "41084|part_2536.470565795897_3381.9607543945294.mzml|controllerType=0 controllerNumber=1 scan=82325", + "0.0001248071187743", + "0.0018686750525601", + "0.0071002788539174", + "0.1840905247390968", + "0.2430872733674899", + "0.0058269152884428", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0721891789250002", + "0.3141063101385611", + "0.5560234413521221", + "0.27187649634689", + "-0.012270448658342", + "4.0", + "4.0", + "4.0", + "4.0", + "4.0", + "0.2430872733674899", + "0.2430872733674899", + "0.0071002788539174", + "0.0071002788539174", + "0.0001248071187743", + "0.0001248071187743", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.722380619679585", + "4.875051975250244", + "6.021340847015381", + "0.5560234413521221", + "0.0721891789250002", + "-0.012270448658342", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "50", + "149029.0", + "part_4227.450942993162_5072.941131591795.mzml", + "KTHNQGVFDVYSPDMLR", + "1.0", + "sp|P42632|TDCE_ECOLI|146|163", + "2014.645", + "2005.968", + "1.0", + "3.0", + "17.0", + "0.0", + "5.697093", + "3.0", + "0.0", + "0.999", + "5.0", + "2.0", + "1.0", + "3.847526", + "0.34838012", + "0.79376054", + "0.07541912", + "4814.16", + "24.975563", + "298979.59375", + "374915.46875", + "0.0", + "5.697093", + "3.0", + "0.0", + "0.999", + "5.0", + "2.0", + "1.0", + "3.847526", + "60007.15", + "-2.4429286", + "0.34838012", + "0.79376054", + "79.53122", + "89.78256", + "10.251343", + "0.07541912", + "4814.16", + "24.975563", + "0.0", + "298979.59375", + "374915.46875", + "0.0", + "0.34838012", + "0.79376054", + "298979.59375", + "374915.46875", + "0.0", + "298979.59375", + "374915.46875", + "0.0", + "149029|part_4227.450942993162_5072.941131591795.mzml|controllerType=0 controllerNumber=1 scan=125124", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.2888723725562043", + "0.2888723725562043", + "0.2888723725562043", + "0.2888723725562043", + "0.2888723725562043", + "4.0", + "4.0", + "4.0", + "4.0", + "4.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.8459397396232807", + "6.644550800323486", + "11.767738342285156", + "0.2888723725562043", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "51", + "237908.0", + "part_5918.431320190428_6763.921508789061.mzml", + "LLAVLLNNAGKVLTQR", + "1.0", + "sp|P21866|KDPE_ECOLI|158|174", + "1726.5142", + "1722.0515", + "1.0", + "3.0", + "16.0", + "0.0", + "3.7002864", + "5.0", + "0.0", + "0.999", + "5.0", + "2.0", + "1.0", + "3.4197457", + "0.17053819", + "0.6205372", + "0.042647548", + "3169.0896", + "24.948374", + "0.0", + "0.0", + "0.0", + "3.7002864", + "5.0", + "0.0", + "0.999", + "5.0", + "2.0", + "1.0", + "3.4197457", + "46612.79", + "-2.5218203", + "0.17053819", + "0.6205372", + "105.156204", + "99.35934", + "5.7968674", + "0.042647548", + "3169.0896", + "24.948374", + "0.0", + "0.0", + "0.0", + "0.0", + "0.17053819", + "0.6205372", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "237908|part_5918.431320190428_6763.921508789061.mzml|controllerType=0 controllerNumber=1 scan=165507", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.227864922251077", + "0.227864922251077", + "0.227864922251077", + "0.227864922251077", + "0.227864922251077", + "6.0", + "6.0", + "6.0", + "6.0", + "6.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.4463173673767287", + "7.329229354858398", + "13.267335891723633", + "0.227864922251077", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "53", + "9621.0", + "part_1690.9803771972647_2536.470565795897.mzml", + "QALEDSVK", + "1.0", + "sp|P22106|ASNB_ECOLI|213|221", + "886.8893", + "888.45526", + "1.0", + "2.0", + "8.0", + "0.0", + "3.823148", + "6.0", + "0.0", + "0.999", + "7.0", + "2.0", + "3.0", + "2.7989836", + "0.22477491", + "0.14438118", + "0.020855121", + "8340.322", + "31.213415", + "1420261.5", + "48988112.0", + "0.0", + "1.6608466", + "2.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "1.8473502", + "464880.5", + "-4.048184", + "0.033523668", + "0.14438118", + "40.2321", + "37.542892", + "2.689209", + "0.019784508", + "1764.141", + "27.216436", + "0.0", + "574031.875", + "13516808.0", + "0.0", + "0.12914929", + "0.14438118", + "997146.6875", + "31252460.0", + "0.0", + "3988586.75", + "125009840.0", + "0.0", + "9621|part_1690.9803771972647_2536.470565795897.mzml|controllerType=0 controllerNumber=1 scan=63201", + "0.7264227013855734", + "0.7264227013855734", + "0.7264227013855735", + "0.7264227013855736", + "0.7264227013855736", + "1.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0241985313928751", + "-0.0054640203015936", + "-0.0351265719960625", + "-0.0647891236905313", + "-0.0944516753850001", + "5.0", + "5.0", + "5.0", + "5.0", + "5.0", + "0.7264227013855736", + "0.7264227013855734", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.4701419575689595", + "4.300354957580566", + "5.536318302154541", + "0.0241985313928751", + "-0.0944516753850001", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "55", + "201824.0", + "part_5072.941131591795_5918.431320190428.mzml", + "VAVDIRLINCDLPASDNGSGM[Oxidation]PVSK", + "1.0", + "sp|P37909|YBGD_ECOLI|71|96", + "2574.1423", + "2586.278", + "1.0", + "4.0", + "25.0", + "0.0", + "1.1200798", + "6.0", + "0.0", + "0.999", + "5.0", + "2.0", + "3.0", + "2.2024405", + "0.3564362", + "0.7952824", + "0.01597113", + "5093.2466", + "27.156324", + "0.0", + "2097415.0", + "611290.3125", + "1.1200798", + "6.0", + "0.0", + "0.999", + "5.0", + "2.0", + "3.0", + "2.2024405", + "370194.78", + "-2.2563915", + "0.3564362", + "0.7952824", + "95.30638", + "97.47726", + "2.1708755", + "0.01597113", + "5093.2466", + "27.156324", + "0.0", + "0.0", + "2097415.0", + "611290.3125", + "0.3564362", + "0.7952824", + "0.0", + "2097415.0", + "611290.3125", + "0.0", + "2097415.0", + "611290.3125", + "201824|part_5072.941131591795_5918.431320190428.mzml|controllerType=0 controllerNumber=1 scan=149985", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0634125198614447", + "0.0634125198614447", + "0.0634125198614447", + "0.0634125198614447", + "0.0634125198614447", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-1.0", + "7.544371128082275", + "14.202469825744627", + "0.0634125198614447", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "56", + "73877.0", + "part_3381.96075439453_4227.450942993162.mzml", + "VFVTVAQEK", + "1.0", + "sp|P0ACR7|YFER_ECOLI|9|18", + "1014.9475", + "1019.5652", + "1.0", + "2.0", + "9.0", + "0.0", + "3.3783033", + "5.0", + "0.0", + "0.999", + "5.0", + "3.0", + "1.0", + "3.0534809", + "0.26723117", + "0.7197777", + "0.008103717", + "5528.4", + "26.227896", + "0.0", + "0.0", + "386031.78125", + "3.3783033", + "5.0", + "0.0", + "0.999", + "5.0", + "3.0", + "1.0", + "3.0534809", + "144923.34", + "-2.4154425", + "0.26723117", + "0.7197777", + "64.61452", + "63.51302", + "1.1014977", + "0.008103717", + "5528.4", + "26.227896", + "0.0", + "0.0", + "0.0", + "386031.78125", + "0.26723117", + "0.7197777", + "0.0", + "0.0", + "386031.78125", + "0.0", + "0.0", + "386031.78125", + "73877|part_3381.96075439453_4227.450942993162.mzml|controllerType=0 controllerNumber=1 scan=101616", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.5924171465586102", + "0.5924171465586102", + "0.5924171465586102", + "0.5924171465586102", + "0.5924171465586102", + "6.0", + "6.0", + "6.0", + "6.0", + "6.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.7783459932112795", + "2.6224734783172607", + "4.30215311050415", + "0.5924171465586102", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "57", + "76414.0", + "part_3381.96075439453_4227.450942993162.mzml", + "VYDPAEQSDGYR", + "1.0", + "sp|P76243|YEAO_ECOLI|7|19", + "1391.1185", + "1398.6052", + "1.0", + "2.0", + "12.0", + "0.0", + "4.780645", + "2.0", + "0.0", + "0.999", + "9.0", + "2.0", + "6.0", + "9.0952635", + "0.10734045", + "0.006917386", + "0.013382551", + "5367.338", + "32.76163", + "541423.25", + "434417.6875", + "0.0", + "1.6337423", + "1.0", + "0.0", + "0.999", + "5.0", + "0.0", + "2.0", + "1.6068269", + "25952.219", + "-5.6055455", + "0.0012746972", + "0.006917386", + "57.782486", + "56.30362", + "1.4788666", + "0.0108800195", + "347.82285", + "17.839302", + "0.0", + "191920.796875", + "0.0", + "0.0", + "0.035332732", + "0.006917386", + "375823.5182291667", + "198985.20572916663", + "0.0", + "13529646.65625", + "7163467.40625", + "0.0", + "76414|part_3381.96075439453_4227.450942993162.mzml|controllerType=0 controllerNumber=1 scan=90852", + "0.0993761088499456", + "0.3619691098278932", + "0.632509048416342", + "0.7796449257998705", + "0.8947646703257363", + "0.0027721129494378", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.1626492439048342", + "-0.1914173538347334", + "-0.1586170443737785", + "-0.1468371031493833", + "-0.1691761834791495", + "7.0", + "5.0", + "5.0", + "4.0", + "3.0", + "0.8947646703257363", + "0.8947646703257363", + "0.8585075218389157", + "0.8585075218389157", + "0.8194845067094148", + "0.8194845067094148", + "0.7892546291690848", + "0.7892546291690846", + "0.7508158156922283", + "0.7508158156922281", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.6454669639110536", + "4.768283367156982", + "5.173542499542236", + "-0.1385033506144508", + "-0.1453957279933763", + "-0.1626492439048342", + "-0.1691761834791495", + "-0.1718383607541807", + "-0.2067578957818524", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "61", + "131276.0", + "part_4227.450942993162_5072.941131591795.mzml", + "DGVGGNSSFATM[Oxidation]IDREPTQTSR", + "1.0", + "sp|P75974|COHE_ECOLI|16|38", + "2334.0332", + "2341.0603", + "1.0", + "4.0", + "22.0", + "0.0", + "5.9389343", + "6.0", + "0.0", + "0.999", + "6.0", + "3.0", + "2.0", + "2.8353896", + "0.4391821", + "0.7689605", + "0.03641937", + "3436.1555", + "29.826149", + "475512.90625", + "0.0", + "0.0", + "3.5091894", + "6.0", + "0.0", + "0.999", + "5.0", + "3.0", + "1.0", + "2.0728595", + "268937.5", + "-2.7589624", + "0.386317", + "0.7689605", + "77.67741", + "82.62771", + "4.4622345", + "0.032828655", + "3006.1855", + "27.282774", + "0.0", + "0.0", + "0.0", + "0.0", + "0.41274956", + "0.7689605", + "237756.453125", + "0.0", + "0.0", + "1426538.71875", + "0.0", + "0.0", + "131276|part_4227.450942993162_5072.941131591795.mzml|controllerType=0 controllerNumber=1 scan=122205", + "0.4842733344540456", + "0.4842733344540456", + "0.4842733344540456", + "0.4842733344540456", + "0.4842733344540456", + "1.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.1637768614897294", + "0.1271442733722609", + "0.0905116852547924", + "0.0538790971373239", + "0.0172465090198554", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.4842733344540456", + "0.4842733344540456", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "12.63564682006836", + "18.03577995300293", + "0.1637768614897294", + "0.0172465090198554", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "63", + "220278.0", + "part_5918.431320190428_6763.921508789061.mzml", + "IDEVFIGSCMTNIGHFR", + "1.0", + "sp|P36683|ACNB_ECOLI|701|718", + "1930.6067", + "1937.913", + "1.0", + "3.0", + "17.0", + "0.0", + "4.1830287", + "2.0", + "0.0", + "0.999", + "6.0", + "5.0", + "1.0", + "6.3663445", + "0.25458145", + "0.61873686", + "0.037156403", + "4297.137", + "28.585087", + "0.0", + "0.0", + "99051.2578125", + "1.3460498", + "2.0", + "0.0", + "0.999", + "5.0", + "3.0", + "1.0", + "4.038414", + "43713.227", + "-3.3171551", + "0.16927944", + "0.61873686", + "98.897675", + "103.94816", + "4.904503", + "0.036082424", + "2422.0127", + "25.355358", + "0.0", + "0.0", + "0.0", + "0.0", + "0.21193045", + "0.61873686", + "0.0", + "0.0", + "49525.62890625", + "0.0", + "0.0", + "198102.515625", + "220278|part_5918.431320190428_6763.921508789061.mzml|controllerType=0 controllerNumber=1 scan=155646", + "0.0006322106433954", + "0.0006322106433954", + "0.0006322106433954", + "0.0006322106433954", + "0.0006322106433954", + "0.9999999999999996", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.1014051201437965", + "-0.0044433091129508", + "0.0925185019178947", + "0.1894803129487404", + "0.286442123979586", + "7.0", + "7.0", + "7.0", + "7.0", + "4.0", + "0.0006322106433954", + "0.0006322106433954", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.3703443729645553", + "5.989969253540039", + "8.308431625366211", + "0.286442123979586", + "-0.1014051201437965", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "66", + "175350.0", + "part_5072.941131591795_5918.431320190428.mzml", + "GPQLPAPNM[Oxidation]LM[Oxidation]MDRVVK", + "1.0", + "sp|P0A6Q3|FABA_ECOLI|25|42", + "1930.6067", + "1927.968", + "1.0", + "3.0", + "17.0", + "0.0", + "10.082355", + "9.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "0.91945565", + "0.31002218", + "0.76465917", + "0.05460082", + "1887.2643", + "25.157068", + "0.0", + "0.0", + "0.0", + "10.082355", + "9.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "0.91945565", + "45261.93", + "-2.2202146", + "0.31002218", + "0.76465917", + "86.18114", + "93.60275", + "7.4216156", + "0.05460082", + "1887.2643", + "25.157068", + "0.0", + "0.0", + "0.0", + "0.0", + "0.31002218", + "0.76465917", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "175350|part_5072.941131591795_5918.431320190428.mzml|controllerType=0 controllerNumber=1 scan=135602", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.1076097539304565", + "-0.1076097539304565", + "-0.1076097539304565", + "-0.1076097539304565", + "-0.1076097539304565", + "6.0", + "6.0", + "6.0", + "6.0", + "6.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.6351326070225767", + "9.226556777954102", + "15.573420524597168", + "-0.1076097539304565", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "67", + "121597.0", + "part_4227.450942993162_5072.941131591795.mzml", + "GDLIAAINKGCHTVAALK", + "1.0", + "sp|P08201|NIRB_ECOLI|432|450", + "1805.7932", + "1793.9822", + "1.0", + "4.0", + "18.0", + "0.0", + "4.129426", + "3.0", + "0.0", + "0.999", + "5.0", + "3.0", + "2.0", + "3.0602245", + "0.3849478", + "0.817844", + "0.0603542", + "7117.563", + "24.56342", + "0.0", + "0.0", + "0.0", + "4.129426", + "3.0", + "0.0", + "0.999", + "5.0", + "3.0", + "2.0", + "3.0602245", + "44680.07", + "-2.5834649", + "0.3849478", + "0.817844", + "78.88133", + "87.08498", + "8.203644", + "0.0603542", + "7117.563", + "24.56342", + "0.0", + "0.0", + "0.0", + "0.0", + "0.3849478", + "0.817844", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "121597|part_4227.450942993162_5072.941131591795.mzml|controllerType=0 controllerNumber=1 scan=124101", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.1138657399368655", + "-0.1138657399368655", + "-0.1138657399368655", + "-0.1138657399368655", + "-0.1138657399368655", + "4.0", + "4.0", + "4.0", + "4.0", + "4.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.700880855642985", + "6.976280689239502", + "11.819072723388672", + "-0.1138657399368655", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "68", + "165079.0", + "part_5072.941131591795_5918.431320190428.mzml", + "LNLLADDSLADRVDEIR", + "1.0", + "sp|P22523|MUKB_ECOLI|882|899", + "1918.6013", + "1927.001", + "1.0", + "3.0", + "17.0", + "0.0", + "7.8045144", + "4.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "1.9787376", + "0.36602026", + "0.80030376", + "0.054489963", + "3845.6287", + "26.4006", + "0.0", + "0.0", + "0.0", + "7.8045144", + "4.0", + "0.0", + "0.999", + "5.0", + "1.0", + "1.0", + "1.9787376", + "217261.03", + "-2.342185", + "0.36602026", + "0.80030376", + "89.91712", + "97.32367", + "7.4065475", + "0.054489963", + "3845.6287", + "26.4006", + "0.0", + "0.0", + "0.0", + "0.0", + "0.36602026", + "0.80030376", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "165079|part_5072.941131591795_5918.431320190428.mzml|controllerType=0 controllerNumber=1 scan=141492", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.0909630957893744", + "-0.0909630957893744", + "-0.0909630957893744", + "-0.0909630957893744", + "-0.0909630957893744", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "1.0", + "5.300573825836182", + "8.813002586364746", + "-0.0909630957893744", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "69", + "260219.0", + "part_6763.921508789061_7609.4116973876935.mzml", + "TDGVNLGGVRASNLTAVIPDYSK", + "1.0", + "sp|P46474|YHDP_ECOLI|596|619", + "2338.7925", + "2346.218", + "1.0", + "3.0", + "23.0", + "0.0", + "2.3678353", + "7.0", + "0.0", + "0.999", + "8.0", + "2.0", + "2.0", + "1.5158402", + "0.24960792", + "0.13326839", + "0.10256736", + "3599.007", + "33.382004", + "0.0", + "0.0", + "0.0", + "2.3196735", + "3.0", + "0.0", + "0.999", + "6.0", + "2.0", + "1.0", + "1.3942587", + "464044.62", + "-3.849548", + "0.022689076", + "0.13326839", + "122.218864", + "108.37447", + "13.844391", + "0.10185317", + "2741.0022", + "31.013851", + "0.0", + "0.0", + "0.0", + "0.0", + "0.1361485", + "0.13326839", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "260219|part_6763.921508789061_7609.4116973876935.mzml|controllerType=0 controllerNumber=1 scan=192387", + "0.7842985773389718", + "0.7842985773389718", + "0.7842985773389718", + "0.7842985773389718", + "0.7842985773389718", + "0.9999999999999996", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.0437349041310684", + "-0.0462969767447981", + "-0.0488590493585278", + "-0.0514211219722575", + "-0.0539831945859872", + "4.0", + "4.0", + "4.0", + "4.0", + "4.0", + "0.7842985773389718", + "0.7842985773389718", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0041407705197048", + "5.711597919464111", + "7.83363151550293", + "-0.0437349041310684", + "-0.0539831945859872", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "70", + "86112.0", + "part_3381.96075439453_4227.450942993162.mzml", + "QITGSQTVSGTWK", + "1.0", + "sp|P0ADC6|LPTG_ECOLI|218|231", + "1402.3667", + "1391.7046", + "1.0", + "3.0", + "13.0", + "0.0", + "5.180731", + "5.0", + "0.0", + "0.999", + "6.0", + "3.0", + "1.0", + "1.2813928", + "0.29416755", + "0.718617", + "0.06088855", + "7631.952", + "28.660852", + "262350.21875", + "0.0", + "924329.9375", + "2.5921855", + "4.0", + "0.0", + "0.999", + "6.0", + "2.0", + "1.0", + "0.8679427", + "58573.0", + "-3.0771089", + "0.2665137", + "0.718617", + "61.405037", + "57.694504", + "3.7105331", + "0.027298389", + "6916.2363", + "27.02909", + "0.0", + "0.0", + "0.0", + "0.0", + "0.2803406", + "0.718617", + "131175.109375", + "0.0", + "462164.96875", + "524700.4375", + "0.0", + "1848659.875", + "86112|part_3381.96075439453_4227.450942993162.mzml|controllerType=0 controllerNumber=1 scan=96561", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.1749250811048316", + "0.1749250811048316", + "0.1749250811048316", + "0.1749250811048316", + "0.1749250811048316", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "1.0", + "4.387689590454102", + "7.886052131652832", + "0.1749250811048316", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "71", + "61724.0", + "part_3381.96075439453_4227.450942993162.mzml", + "TYGGAARAFDQIDNAPEEKAR", + "2.0", + "sp|P0CE47|EFTU1_ECOLI|38|59;sp|P0CE48|EFTU2_ECOLI|38|59", + "2278.765", + "2279.093", + "1.0", + "3.0", + "21.0", + "0.0", + "3.858701", + "3.0", + "24.213102", + "0.999", + "5.0", + "4.0", + "1.0", + "4.9224553", + "0.35370585", + "0.77864707", + "0.114481844", + "4983.7275", + "25.389864", + "0.0", + "0.0", + "0.0", + "2.7263484", + "1.0", + "0.0", + "0.999", + "5.0", + "4.0", + "1.0", + "3.1474245", + "52432.51", + "-2.675625", + "0.33505994", + "0.77864707", + "59.049995", + "74.61094", + "15.512714", + "0.114127025", + "296.22528", + "24.213102", + "0.0", + "0.0", + "0.0", + "0.0", + "0.34438288", + "0.77864707", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "61724|part_3381.96075439453_4227.450942993162.mzml|controllerType=0 controllerNumber=1 scan=92849", + "0.9955775672850632", + "0.9955775672850632", + "0.9955775672850632", + "0.9955775672850632", + "0.9955775672850632", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.0747295971265415", + "-0.074681669758285", + "-0.0746337423900286", + "-0.0745858150217722", + "-0.0745378876535157", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.9955775672850632", + "0.9955775672850632", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-1.0", + "7.217676162719727", + "10.130952835083008", + "-0.0745378876535157", + "-0.0747295971265415", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "74", + "114645.0", + "part_4227.450942993162_5072.941131591795.mzml", + "AWIQYQGFK", + "1.0", + "sp|P26616|MAO1_ECOLI|59|68", + "1143.0057", + "1139.5764", + "1.0", + "2.0", + "9.0", + "0.0", + "3.753491", + "7.0", + "0.0", + "0.999", + "5.0", + "0.0", + "3.0", + "2.0764217", + "0.014922589", + "0.090772115", + "0.051195275", + "3004.7737", + "18.614342", + "0.0", + "0.0", + "0.0", + "3.753491", + "7.0", + "0.0", + "0.999", + "5.0", + "0.0", + "3.0", + "2.0764217", + "44915.96", + "-2.4391932", + "0.014922589", + "0.090772115", + "82.38732", + "89.34604", + "6.9587173", + "0.051195275", + "3004.7737", + "18.614342", + "0.0", + "0.0", + "0.0", + "0.0", + "0.014922589", + "0.090772115", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "114645|part_4227.450942993162_5072.941131591795.mzml|controllerType=0 controllerNumber=1 scan=129625", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.1667374498542322", + "-0.1667374498542322", + "-0.1667374498542322", + "-0.1667374498542322", + "-0.1667374498542322", + "5.0", + "5.0", + "5.0", + "5.0", + "5.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.2189843686976385", + "4.422718048095703", + "7.481825828552246", + "-0.1667374498542322", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "75", + "35661.0", + "part_2536.470565795897_3381.9607543945294.mzml", + "GPGETQLETDRRLLR", + "1.0", + "sp|P25519|HFLX_ECOLI|153|168", + "1750.5249", + "1739.9277", + "1.0", + "3.0", + "15.0", + "0.0", + "8.108417", + "3.0", + "0.0", + "0.999", + "7.0", + "4.0", + "3.0", + "6.6661325", + "0.35895053", + "0.7938506", + "0.08002176", + "6645.089", + "32.076073", + "0.0", + "0.0", + "0.0", + "3.4678063", + "1.0", + "0.0", + "0.999", + "5.0", + "2.0", + "1.0", + "1.3376805", + "17487.979", + "-3.9784129", + "0.13451122", + "0.48061588", + "52.72329", + "52.917786", + "0.00046157837", + "3.3958315e-06", + "6072.088", + "24.213032", + "0.0", + "0.0", + "0.0", + "0.0", + "0.26558024", + "0.55892456", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "35661|part_2536.470565795897_3381.9607543945294.mzml|controllerType=0 controllerNumber=1 scan=82881", + "0.0013717421124828", + "0.0017391691189782", + "0.0028414501384646", + "0.3233568842595669", + "0.4301953622999345", + "0.1797015283194627", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.015093469457993", + "-0.0374853396392015", + "-0.05987720982041", + "-0.0073921515848332", + "0.0450929066507435", + "3.0", + "3.0", + "2.0", + "2.0", + "2.0", + "0.4301953622999345", + "0.4301953622999343", + "0.0028414501384646", + "0.0028414501384646", + "0.0013717421124828", + "0.0013717421124828", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-1.0", + "5.606984615325928", + "7.044638156890869", + "0.0450929066507435", + "-0.015093469457993", + "-0.05987720982041", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "78", + "176607.0", + "part_5072.941131591795_5918.431320190428.mzml", + "EITFSVPNDVASKFSISNGGK", + "1.0", + "sp|P76347|YEEJ_ECOLI|955|976", + "2194.7268", + "2196.106", + "1.0", + "3.0", + "21.0", + "0.0", + "7.76147", + "7.0", + "0.0", + "0.999", + "6.0", + "1.0", + "4.0", + "4.949703", + "0.20716277", + "0.6336544", + "0.11692488", + "5281.668", + "29.429153", + "0.0", + "205875.9375", + "183331.75", + "3.0240335", + "3.0", + "0.0", + "0.999", + "5.0", + "1.0", + "2.0", + "2.2221234", + "144663.58", + "-2.9388978", + "0.1813912", + "0.6336544", + "85.99341", + "101.88642", + "7.5914154", + "0.055850036", + "1085.4639", + "26.647259", + "0.0", + "0.0", + "0.0", + "0.0", + "0.19427699", + "0.6336544", + "0.0", + "102937.96875", + "91665.875", + "0.0", + "617627.8125", + "549995.25", + "176607|part_5072.941131591795_5918.431320190428.mzml|controllerType=0 controllerNumber=1 scan=135307", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.1073250494866445", + "-0.1073250494866445", + "-0.1073250494866445", + "-0.1073250494866445", + "-0.1073250494866445", + "5.0", + "5.0", + "5.0", + "5.0", + "5.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.0064058187314821", + "8.714085578918457", + "15.58639907836914", + "-0.1073250494866445", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "80", + "38649.0", + "part_2536.470565795897_3381.9607543945294.mzml", + "SADAAGVHAVIVPKDRSAQLNATAK", + "1.0", + "sp|P63177|RLMB_ECOLI|114|139", + "2478.0989", + "2489.335", + "1.0", + "4.0", + "25.0", + "0.0", + "1.5891321", + "1.0", + "0.0", + "0.999", + "8.0", + "3.0", + "2.0", + "3.4968665", + "0.19981721", + "0.61256486", + "0.088834144", + "4119.095", + "32.634537", + "0.0", + "0.0", + "0.0", + "1.5891321", + "1.0", + "0.0", + "0.999", + "8.0", + "3.0", + "2.0", + "3.4968665", + "198233.64", + "-4.858734", + "0.19981721", + "0.61256486", + "49.28019", + "61.35497", + "12.0747795", + "0.088834144", + "4119.095", + "32.634537", + "0.0", + "0.0", + "0.0", + "0.0", + "0.19981721", + "0.61256486", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "38649|part_2536.470565795897_3381.9607543945294.mzml|controllerType=0 controllerNumber=1 scan=77454", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.1791824307463015", + "0.1791824307463015", + "0.1791824307463015", + "0.1791824307463015", + "0.1791824307463015", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "1.0", + "8.840428352355957", + "16.887882232666016", + "0.1791824307463015", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "82", + "194268.0", + "part_5072.941131591795_5918.431320190428.mzml", + "TKGIDGLTAQLKSISQQK", + "1.0", + "sp|P0ADV7|MLAC_ECOLI|186|204", + "1917.844", + "1915.0739", + "1.0", + "4.0", + "18.0", + "0.0", + "6.106083", + "5.0", + "0.0", + "0.999", + "5.0", + "1.0", + "2.0", + "3.980571", + "0.33913168", + "0.7836173", + "0.015771532", + "922.1456", + "26.569845", + "0.0", + "0.0", + "0.0", + "6.106083", + "5.0", + "0.0", + "0.999", + "5.0", + "1.0", + "2.0", + "3.980571", + "226892.69", + "-2.48001", + "0.33913168", + "0.7836173", + "87.382805", + "89.52655", + "2.1437454", + "0.015771532", + "922.1456", + "26.569845", + "0.0", + "0.0", + "0.0", + "0.0", + "0.33913168", + "0.7836173", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "194268|part_5072.941131591795_5918.431320190428.mzml|controllerType=0 controllerNumber=1 scan=137494", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0737487866994461", + "0.0737487866994461", + "0.0737487866994461", + "0.0737487866994461", + "0.0737487866994461", + "4.0", + "4.0", + "4.0", + "4.0", + "4.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.9975631297815258", + "6.683314323425293", + "12.03519058227539", + "0.0737487866994461", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "83", + "21478.0", + "part_2536.470565795897_3381.9607543945294.mzml", + "YADEVVR", + "1.0", + "sp|P0AG55|RL6_ECOLI|163|170", + "846.8711", + "850.41846", + "1.0", + "2.0", + "7.0", + "0.0", + "5.0843368", + "6.0", + "0.0", + "0.999", + "10.0", + "3.0", + "5.0", + "39.54875", + "0.10958342", + "0.0024953762", + "0.015959399", + "6399.4136", + "41.52705", + "25478282.0", + "10834001.0", + "135440.59375", + "0.5560266", + "1.0", + "0.0", + "0.999", + "5.0", + "1.0", + "2.0", + "3.9616733", + "155246.12", + "-6.8907576", + "0.00026028111", + "0.0024953762", + "42.90099", + "41.65727", + "1.243721", + "0.009150054", + "2995.965", + "27.78871", + "0.0", + "614012.3125", + "406561.0625", + "0.0", + "0.011333852", + "0.0024953762", + "10729147.86328125", + "5103160.0234375", + "40529.330078125", + "2746661853.0", + "1306408966.0", + "10375508.5", + "21478|part_2536.470565795897_3381.9607543945294.mzml|controllerType=0 controllerNumber=1 scan=67406", + "9.709689428270922e-07", + "0.058032862763175", + "0.2769996471513367", + "0.9177548046559793", + "0.99911423495302", + "0.0002188097875496", + "0.0", + "0.0", + "0.0", + "0.0", + "0.1866932068569255", + "0.3667839773120004", + "0.224689705428941", + "0.6352962087671504", + "0.2781864376048152", + "5.0", + "5.0", + "4.0", + "4.0", + "4.0", + "0.99911423495302", + "0.99911423495302", + "0.9960397192983884", + "0.9960397192983884", + "0.9914612312293426", + "0.9914612312293424", + "0.985131608664136", + "0.985131608664136", + "0.9810027273502322", + "0.9810027273502322", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.0434090208199321", + "3.4132659435272217", + "3.505849599838257", + "0.7445904702792936", + "0.4462502399456599", + "0.3402952231007806", + "0.3074134242307207", + "0.2781864376048152", + "0.2739862382035289", + "0.2699254545104773", + "0.1866932068569255", + "0.1803275517507594", + "0.1794539563474047" + ], + [ + "85", + "83555.0", + "part_3381.96075439453_4227.450942993162.mzml", + "VASVFINR", + "1.0", + "sp|P28306|MLTG_ECOLI|227|235", + "910.9002", + "904.51306", + "1.0", + "2.0", + "8.0", + "0.0", + "2.4371753", + "3.0", + "0.0", + "0.999", + "6.0", + "2.0", + "1.0", + "3.9749975", + "0.14419562", + "0.5253132", + "0.031297613", + "7036.575", + "29.10319", + "0.0", + "0.0", + "0.0", + "2.4371753", + "3.0", + "0.0", + "0.999", + "6.0", + "2.0", + "1.0", + "3.9749975", + "164307.56", + "-3.2264802", + "0.14419562", + "0.5253132", + "70.1915", + "65.93737", + "4.2541275", + "0.031297613", + "7036.575", + "29.10319", + "0.0", + "0.0", + "0.0", + "0.0", + "0.14419562", + "0.5253132", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "83555|part_3381.96075439453_4227.450942993162.mzml|controllerType=0 controllerNumber=1 scan=110407", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.2520860178442154", + "-0.2520860178442154", + "-0.2520860178442154", + "-0.2520860178442154", + "-0.2520860178442154", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-1.0", + "4.87511682510376", + "8.472908020019531", + "-0.2520860178442154", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "88", + "211020.0", + "part_5072.941131591795_5918.431320190428.mzml", + "GNQLLPVSLVK", + "1.0", + "sp|P03023|LACI_ECOLI|314|325", + "1167.0166", + "1166.7023", + "1.0", + "2.0", + "11.0", + "0.0", + "4.2085686", + "5.0", + "0.0", + "0.999", + "5.0", + "3.0", + "2.0", + "1.2305487", + "0.15621348", + "0.59530115", + "0.032898255", + "1128.7692", + "24.438232", + "193596.078125", + "0.0", + "0.0", + "4.2085686", + "5.0", + "0.0", + "0.999", + "5.0", + "3.0", + "2.0", + "1.2305487", + "32188.117", + "-2.4245872", + "0.15621348", + "0.59530115", + "98.35951", + "93.88782", + "4.471695", + "0.032898255", + "1128.7692", + "24.438232", + "0.0", + "193596.078125", + "0.0", + "0.0", + "0.15621348", + "0.59530115", + "193596.078125", + "0.0", + "0.0", + "193596.078125", + "0.0", + "0.0", + "211020|part_5072.941131591795_5918.431320190428.mzml|controllerType=0 controllerNumber=1 scan=154797", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.1251162222532912", + "-0.1251162222532912", + "-0.1251162222532912", + "-0.1251162222532912", + "-0.1251162222532912", + "2.0", + "2.0", + "2.0", + "2.0", + "2.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "4.017964839935303", + "7.0588555335998535", + "-0.1251162222532912", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "89", + "226717.0", + "part_5918.431320190428_6763.921508789061.mzml", + "QSRQMLGAGVIPVEM[Oxidation]TFLKPAP", + "1.0", + "sp|P75884|GFCB_ECOLI|192|214", + "2374.8086", + "2385.255", + "1.0", + "3.0", + "22.0", + "0.0", + "3.702482", + "3.0", + "0.0", + "0.999", + "5.0", + "2.0", + "2.0", + "4.011635", + "0.13005354", + "0.5409076", + "0.0050461497", + "4811.7227", + "23.067972", + "0.0", + "0.0", + "0.0", + "3.702482", + "3.0", + "0.0", + "0.999", + "5.0", + "2.0", + "2.0", + "4.011635", + "16079.336", + "-2.6231174", + "0.13005354", + "0.5409076", + "100.99889", + "100.312996", + "0.6858978", + "0.0050461497", + "4811.7227", + "23.067972", + "0.0", + "0.0", + "0.0", + "0.0", + "0.13005354", + "0.5409076", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "226717|part_5918.431320190428_6763.921508789061.mzml|controllerType=0 controllerNumber=1 scan=158955", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0897424563879149", + "0.0897424563879149", + "0.0897424563879149", + "0.0897424563879149", + "0.0897424563879149", + "6.0", + "6.0", + "6.0", + "6.0", + "6.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.3712537197928376", + "8.189927101135254", + "13.466925621032717", + "0.0897424563879149", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "90", + "212436.0", + "part_5072.941131591795_5918.431320190428.mzml", + "AAMTVAALCEKHNVELVAIGNGTASRETER", + "1.0", + "sp|P46837|YHGF_ECOLI|366|396", + "3134.397", + "3140.5703", + "1.0", + "4.0", + "30.0", + "0.0", + "4.7323275", + "1.0", + "0.0", + "0.999", + "5.0", + "2.0", + "2.0", + "3.6002266", + "0.36989558", + "0.80294925", + "0.046817686", + "1647.5505", + "24.619492", + "0.0", + "0.0", + "140903.71875", + "4.7323275", + "1.0", + "0.0", + "0.999", + "5.0", + "2.0", + "2.0", + "3.6002266", + "30858.98", + "-2.589356", + "0.36989558", + "0.80294925", + "96.433334", + "90.06964", + "6.363693", + "0.046817686", + "1647.5505", + "24.619492", + "0.0", + "0.0", + "0.0", + "140903.71875", + "0.36989558", + "0.80294925", + "0.0", + "0.0", + "140903.71875", + "0.0", + "0.0", + "140903.71875", + "212436|part_5072.941131591795_5918.431320190428.mzml|controllerType=0 controllerNumber=1 scan=151762", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "-0.0605932063323625", + "-0.0605932063323625", + "-0.0605932063323625", + "-0.0605932063323625", + "-0.0605932063323625", + "3.0", + "3.0", + "3.0", + "3.0", + "3.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "1.0", + "14.942083358764648", + "28.530441284179688", + "-0.0605932063323625", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ], + [ + "91", + "270313.0", + "part_6763.921508789061_7609.4116973876935.mzml", + "VEQALM[Oxidation]VTIAGIAAGM[Oxidation]R", + "1.0", + "sp|P00864|CAPP_ECOLI|863|880", + "1767.2894", + "1761.9117", + "1.0", + "2.0", + "17.0", + "0.0", + "4.1865687", + "3.0", + "0.0", + "0.999", + "6.0", + "4.0", + "0.0", + "1.9704974", + "0.12533534", + "0.53175944", + "0.0045222375", + "3047.5369", + "20.145658", + "0.0", + "0.0", + "0.0", + "4.1865687", + "3.0", + "0.0", + "0.999", + "6.0", + "4.0", + "0.0", + "1.9704974", + "47165.273", + "-3.045167", + "0.12533534", + "0.53175944", + "116.39896", + "115.78427", + "0.61468506", + "0.0045222375", + "3047.5369", + "20.145658", + "0.0", + "0.0", + "0.0", + "0.0", + "0.12533534", + "0.53175944", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "270313|part_6763.921508789061_7609.4116973876935.mzml|controllerType=0 controllerNumber=1 scan=183219", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.2628726626790129", + "0.2628726626790129", + "0.2628726626790129", + "0.2628726626790129", + "0.2628726626790129", + "8.0", + "8.0", + "8.0", + "8.0", + "8.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.3918443505826343", + "8.646858215332031", + "15.41933250427246", + "0.2628726626790129", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0", + "0.0" + ] + ], + "shape": { + "columns": 111, + "rows": 47475 + } + }, "text/html": [ "
\n", "