From 176e0b0531183289669f79c2c37f981734a5eeba Mon Sep 17 00:00:00 2001 From: mschwoerer <82171591+mschwoer@users.noreply.github.com> Date: Tue, 17 Mar 2026 11:14:26 +0100 Subject: [PATCH 1/3] move to alphatims --- alphatims/alphatims_wrapper.py | 301 +++++++++++++++++++ alphatims/legacy/xic_plot_tims.py | 483 ++++++++++++++++++++++++++++++ 2 files changed, 784 insertions(+) create mode 100644 alphatims/alphatims_wrapper.py create mode 100644 alphatims/legacy/xic_plot_tims.py diff --git a/alphatims/alphatims_wrapper.py b/alphatims/alphatims_wrapper.py new file mode 100644 index 0000000..dd28d87 --- /dev/null +++ b/alphatims/alphatims_wrapper.py @@ -0,0 +1,301 @@ +"""Methods to convert AlphaRaw objects into AlphaTims objects (TimsTOF). Moved from AlphaRaw.""" + +import typing + +import numpy as np +import pandas as pd + +import alphatims +from alphatims.bruker import TimsTOF + +from alphabase.peptide.fragment import remove_unused_fragments +from alpharaw.ms_data_base import MSData_Base + + +def convert_to_alphatims( + spec_df: pd.DataFrame, + peak_df: pd.DataFrame, + dda: bool = False, +) -> typing.Tuple[MSData_Base, TimsTOF]: + """ + Convert any spectrum dataframe or sliced spectrum dataframe + and its peak dataframe into AlphaTims' TimsTOF object (AlphaTimsWrapper). + + Args: + spec_df (pd.DataFrame): + spectrum dataframe or sliced spectrum dataframe in AlphaRaw's format. + peak_df (pd.DataFrame): + peak dataframe in AlphaRaw's format by removing unused peaks in spec_df. + dda (bool): + if dda data. + + Returns: + MSData_Base: AlphaRaw object + TimsTOF: AlphaTims' TimsTOF object (AlphaTimsWrapper). + """ + spec_df, peak_df = remove_unused_peaks(spec_df, peak_df) + ms_data = MSData_Base() + ms_data.spectrum_df = spec_df + ms_data.peak_df = peak_df + + return ms_data, AlphaTimsWrapper(ms_data, dda=dda) + + +def remove_unused_peaks( + spectrum_df: pd.DataFrame, + peak_df: pd.DataFrame, +) -> typing.Tuple[pd.DataFrame, pd.DataFrame]: + """Removes unused peaks of removed spectra, + reannotates the peak_start_idx and peak_stop_idx + + Parameters + ---------- + spectrum_df : pd.DataFrame + Spectrum dataframe which contains peak_start_idx and peak_stop_idx columns + + peak_df : pd.DataFrame + The peak dataframe which should be compressed by removing unused peaks. + + Returns + ------- + pd.DataFrame, pd.DataFrame + The reindexed spectrum DataFrame and the sliced peak DataFrame + """ + + spectrum_df, (peak_df,) = remove_unused_fragments( + spectrum_df, + (peak_df,), + frag_start_col="peak_start_idx", + frag_stop_col="peak_stop_idx", + ) + return spectrum_df, peak_df + + spectrum_df = spectrum_df.sort_values(["peak_start_idx"], ascending=True) + frag_idx = spectrum_df[["peak_start_idx", "peak_stop_idx"]].values + + new_frag_idx, fragment_pointer = compress_fragment_indices(frag_idx) + + spectrum_df[["peak_start_idx", "peak_stop_idx"]] = new_frag_idx + spectrum_df = spectrum_df.sort_index() + + return (spectrum_df, peak_df.iloc[fragment_pointer].copy().reset_index(drop=True)) + + +class AlphaTimsReader(MSData_Base): + """ + TimsTOF data are too large, do not use this class + """ + + def import_raw(self, burker_d_folder: str): + tims = TimsTOF( + burker_d_folder, + ) + + self.raw_file_path = burker_d_folder + self.file_type = "bruker" + + self.spectrum_df["precursor_mz"] = tims.fragment_frames.IsolationMz.values + isolations = tims.fragment_frames.IsolationWidth.values / 2 + self.spectrum_df["isolation_lower_mz"] = ( + self.spectrum_df.precursor_mz - isolations + ) + self.spectrum_df["isolation_upper_mz"] = ( + self.spectrum_df.precursor_mz + isolations + ) + self.spectrum_df["peak_start_idx"] = tims._push_indptr[:-1] + self.spectrum_df["peak_stop_idx"] = tims._push_indptr[1:] + self.spectrum_df["rt"] = tims.rt_values / 60 + self.spectrum_df["mobility"] = tims.mobility_values + self.spectrum_df["ms_level"] = (tims.precursor_indices > 0).astype(np.int8) + 1 + self.spectrum_df["spec_idx"] = self.spectrum_df.index.values + self.spectrum_df["tims_frame"] = ( + self.spectrum_df.spec_idx // tims.scan_max_index + ) + self.spectrum_df["tims_scan"] = self.spectrum_df.spec_idx % tims.scan_max_index + + self.peak_df["mz"] = tims.mz_values[tims.tof_indices] + self.peak_df["intensity"] = tims.intensity_values.astype(np.float32) + + +class AlphaTimsWrapper(TimsTOF): + """Create a AlphaTims object containing + all data in-memory (or memory mapping). + + Attribute + --------- + slice_as_dataframe + Attribute from AlphaTims. + If True, AlphaTims slicing returns a pd.DataFrame by default. + If False, AlphaTims slicing provides a np.int64[:] with raw indices. + The value can be modified on-the-fly. + """ + + def __init__(self, msdata: MSData_Base, dda: bool, slice_as_dataframe: bool = True): + """ + Parameters + ---------- + msdata : MSData_Base + The AlphaRaw data object. + + dda : bool + If DDA, precursor indices will be equal to scan numbers. + If not DDA (i.e. DIA), precursor indices will be equal to the + scan number within a DIA cycle. + + slice_as_dataframe : bool + If True, slicing returns a pd.DataFrame by default. + If False, slicing provides a np.int64[:] with raw indices. + Default is True. + """ + self._use_calibrated_mz_values_as_default = False + self._import_alpharaw_object(msdata, dda) + self.thermo_raw_file_name = msdata.raw_file_path + self.bruker_d_folder_name = self.thermo_raw_file_name + self.slice_as_dataframe = ( + slice_as_dataframe # This value can be modified after creation. + ) + # Precompile + self[0, "raw"] + + def _import_alpharaw_object( + self, + msdata: MSData_Base, + dda: bool, + ): + self._version = alphatims.__version__ + mz_values = msdata.peak_df.mz.values + self._intensity_values = msdata.peak_df.intensity.values + + if (msdata.spectrum_df.peak_start_idx < 0).any(): + spectrum_df = msdata.spectrum_df.query("peak_start_idx!=-1") + else: + spectrum_df = msdata.spectrum_df + + self._push_indptr = np.zeros(len(spectrum_df) + 1, dtype=np.int64) + self._push_indptr[1:] = spectrum_df.peak_stop_idx.values + self._rt_values = spectrum_df.rt.values * 60 + self._quad_mz_values = spectrum_df[ + ["isolation_lower_mz", "isolation_upper_mz"] + ].values + if dda: + self._precursor_indices = np.zeros_like(self._rt_values, dtype=np.int64) + ms2s = spectrum_df.ms_level.values == 2 + self._precursor_indices[ms2s] = np.cumsum(ms2s, dtype=np.int64)[ms2s] + else: + precursor_indices = [] + prev_mz = -1 + prev_idx = 0 + for mz, ms_level in spectrum_df[["precursor_mz", "ms_level"]].values: + if ms_level == 1: + precursor_indices.append(0) + elif prev_mz >= mz: # TODO if DIA mz windows are not in order + prev_mz = mz + prev_idx = 1 + precursor_indices.append(prev_idx) + else: + prev_idx += 1 + prev_mz = mz + precursor_indices.append(prev_idx) + self._precursor_indices = np.array(precursor_indices, dtype=np.int64) + + scan_count = len(self._precursor_indices) + self._frame_max_index = scan_count + self._scan_max_index = 1 + self._mobility_max_value = 0.0 + self._mobility_min_value = 0.0 + self._mobility_values = np.array([0.0]) + self._quad_indptr = self._push_indptr + self._raw_quad_indptr = np.arange(scan_count + 1) + self._intensity_min_value = float(np.min(self._intensity_values)) + self._intensity_max_value = float(np.max(self._intensity_values)) + self._intensity_corrections = np.ones(self._frame_max_index) + _q_mzs = self._quad_mz_values[self._quad_mz_values != -1] + if len(_q_mzs) > 0: + self._quad_min_mz_value = float(np.min(_q_mzs)) + self._quad_max_mz_value = float(np.max(_q_mzs)) + else: + self._quad_min_mz_value = 0 + self._quad_max_mz_value = 0 + self._precursor_max_index = int(np.max(self._precursor_indices)) + 1 + self._acquisition_mode = ( + msdata.file_type + " " + ("DDA" if dda else "DIA") + ) # TODO + self._mz_min_value = int(np.min(mz_values)) + self._mz_max_value = int(np.max(mz_values)) + 1 + self._decimals = 4 + self._mz_values = ( + np.arange( + 10**self._decimals * self._mz_min_value, + 10**self._decimals * (self._mz_max_value + 1), + ) + / 10**self._decimals + ) + self._tof_indices = (mz_values * 10**self._decimals).astype( + np.int32 + ) - 10**self._decimals * self._mz_min_value + self._tof_max_index = len(self._mz_values) + self._meta_data = {"SampleName": msdata.raw_file_path} + msmstype = np.array([0 if s == -1 else 1 for s, e in self._quad_mz_values]) + summed_intensities_ = np.cumsum(self._intensity_values) + summed_intensities = -summed_intensities_[self._push_indptr[:-1]] + summed_intensities[:-1] += summed_intensities_[self._push_indptr[1:-1]] + summed_intensities[-1] += summed_intensities_[-1] + max_intensities = [ + np.max( + self._intensity_values[self._push_indptr[i] : self._push_indptr[i + 1]] + ) + if self._push_indptr[i + 1] != -1 + and self._push_indptr[i] != -1 + and self._push_indptr[i] != self._push_indptr[i + 1] + else 0 + for i in range(len(self._rt_values)) + ] + self._frames = pd.DataFrame( + { + "MsMsType": msmstype, + "Time": self._rt_values, + "SummedIntensities": summed_intensities, + "MaxIntensity": max_intensities, + "Id": np.arange(len(self._rt_values)), + } + ) + frame_numbers = np.arange(len(self._rt_values), dtype=np.int32) + isolation_widths = self._quad_mz_values[:, 1] + self._quad_mz_values[:, 0] + isolation_centers = self._quad_mz_values[:, 1] - self._quad_mz_values[:, 0] + self._fragment_frames = pd.DataFrame( + { + "Frame": frame_numbers[msmstype == 1], + "ScanNumBegin": 0, + "ScanNumEnd": 0, + "IsolationWidth": isolation_widths[msmstype == 1], + "IsolationMz": isolation_centers[msmstype == 1], + "Precursor": self._precursor_indices[msmstype == 1], + } + ) + self._zeroth_frame = False + offset = int(self.zeroth_frame) + cycle_index = ( + np.searchsorted( + self.raw_quad_indptr, + (self.scan_max_index) * (self.precursor_max_index + offset), + "r", + ) + + 1 + ) + repeats = np.diff(self.raw_quad_indptr[:cycle_index]) + if self.zeroth_frame: + repeats[0] -= self.scan_max_index + cycle_length = self.scan_max_index * self.precursor_max_index + repeat_length = np.sum(repeats) + if repeat_length != cycle_length: + repeats[-1] -= repeat_length - cycle_length + self._dia_mz_cycle = np.empty((cycle_length, 2)) + self._dia_mz_cycle[:, 0] = np.repeat( + self.quad_mz_values[: cycle_index - 1, 0], repeats + ) + self._dia_mz_cycle[:, 1] = np.repeat( + self.quad_mz_values[: cycle_index - 1, 1], repeats + ) + self._dia_precursor_cycle = np.repeat( + self.precursor_indices[: cycle_index - 1], repeats + ) diff --git a/alphatims/legacy/xic_plot_tims.py b/alphatims/legacy/xic_plot_tims.py new file mode 100644 index 0000000..4af9d2e --- /dev/null +++ b/alphatims/legacy/xic_plot_tims.py @@ -0,0 +1,483 @@ +"""Legacy module for plotting XIC on TimsTOF data. Moved from alpharaw.""" +import typing +import warnings + +import numpy as np +import pandas as pd +import plotly.express as px +import plotly.graph_objects as go + +from alpharaw.viz.plot_utils import plot_line +from alphatims.bruker import ( + TimsTOF, +) +from plotly.subplots import make_subplots + +warnings.warn( + "This module will be deprecated or changed in the future releases", + category=DeprecationWarning, +) + +alphatims_labels = { + "rt": "rt_values", + "im": "mobility_values", +} + +class XIC_Plot_Tims: + # hovermode = "x" | "y" | "closest" | False | "x unified" | "y unified" + hovermode = "closest" + plot_height = 550 + colorscale_qualitative = "Alphabet" + colorscale_sequential = "Viridis" + theme_template = "plotly_white" + ppm = 20.0 + rt_sec_win = 30.0 + plot_rt_unit: str = "minute" + im_win = 0.05 + fig: go.Figure = None + + def plot( + self, + tims_data: TimsTOF, + query_df: pd.DataFrame, + view_dim: typing.Literal["rt", "im"] = "rt", + title: str = "", + add_peak_area=True, + ): + rt_sec = query_df["rt_sec"].values[0] + im = 0.0 if "im" not in query_df.columns else query_df["im"].values[0] + if "precursor_mz" not in query_df.columns: + precursor_mz = 0.0 + else: + precursor_mz = query_df.precursor_mz.values[0] + query_masses = query_df.mz.values + if "intensity" in query_df.columns: + query_intensities = query_df.intensity.values + else: + query_intensities = None + ion_names = query_df.ion_name.values + + if "color" not in query_df.columns: + marker_colors = None + else: + marker_colors = query_df.color.values + + return self.plot_query_masses( + tims_data=tims_data, + query_masses=query_masses, + query_ion_names=ion_names, + query_rt_sec=rt_sec, + query_im=im, + precursor_mz=precursor_mz, + marker_colors=marker_colors, + view_dim=view_dim, + query_intensities=query_intensities, + title=title, + add_peak_area=add_peak_area, + ) + + def _init_plot(self, view_dim="rt"): + self.fig = make_subplots( + cols=1, + shared_xaxes=True, + x_title=f"RT ({self.plot_rt_unit})" if view_dim == "rt" else "Mobility", + y_title="intensity", + vertical_spacing=0.2, + ) + self.trace: XIC_Plot_Tims = XIC_Trace_Tims(fig=self.fig, row=1) + + def plot_query_masses( + self, + tims_data: TimsTOF, + query_masses: np.ndarray, + query_ion_names: typing.List[str], + query_rt_sec: float, + query_im: float, + precursor_mz: float, + marker_colors: list = None, + view_dim: typing.Literal["rt", "im"] = "rt", + query_intensities: np.ndarray = None, + title="", + add_peak_area=True, + ): + self._init_plot(view_dim=view_dim) + mass_tols = query_masses * 1e-6 * self.ppm + if marker_colors is None: + marker_colors = self._get_color_set(len(query_masses)) + self.trace.add_traces( + tims_data=tims_data, + query_masses=query_masses, + mass_tols=mass_tols, + ion_names=query_ion_names, + marker_colors=marker_colors, + query_rt_sec=query_rt_sec, + query_im=query_im, + precursor_left_mz=precursor_mz * (1 - 1e-6 * self.ppm), + precursor_right_mz=precursor_mz * (1 + 1e-6 * self.ppm), + view_dim=view_dim, + rt_sec_win=self.rt_sec_win, + im_win=self.im_win, + query_intensities=query_intensities, + add_peak_area=add_peak_area, + ) + self.fig.update_layout( + template=self.theme_template, + title=dict(text=title, yanchor="bottom"), + # width=width, + height=self.plot_height, + hovermode=self.hovermode, + showlegend=True, + ) + return self.fig + + def _get_color_set(self, n_query): + if n_query <= len(getattr(px.colors.qualitative, self.colorscale_qualitative)): + color_set = getattr(px.colors.qualitative, self.colorscale_qualitative) + else: + color_set = px.colors.sample_colorscale( + self.colorscale_sequential, samplepoints=n_query + ) + return color_set + + +class XIC_Trace_Tims: + label_format = "{ion_name} {mz:.3f}" + legend_group = "{ion_name}" # {ion_name}, {mz} or None + fig: go.Figure + row: int = 1 + col: int = 1 + plot_rt_unit: str = "minute" + + def __init__( + self, + fig: go.Figure, + row: int = 1, + col: int = 1, + plot_rt_unit: str = "minute", + ): + self.fig = fig + self.row = row + self.col = col + self.plot_rt_unit = plot_rt_unit + + def add_traces( + self, + tims_data: TimsTOF, + query_masses: np.ndarray, + mass_tols: np.ndarray, + ion_names: typing.List[str], + marker_colors: typing.List, + query_rt_sec: float, + query_im: float, + precursor_left_mz: float = -1.0, + precursor_right_mz: float = -1.0, + view_dim: typing.Literal["rt", "im"] = "rt", + rt_sec_win=30.0, + im_win=0.05, + query_intensities: np.ndarray = None, + add_peak_area=True, + ) -> go.Figure: + """Add traces for the query_masses. + + Args: + tims_data (TimsTOF): AlphaTims TimsTOF object. + query_masses (np.ndarray): Query masses. + ion_names (typing.List[str]): Ion names for query_masses. + marker_colors (typing.List): Colors for each query mass. + query_rt_sec (float): Query RT in seconds. + query_im (float): Query ion mobility. + precursor_mz (float, optional): Precursor mz, 0 means it is MS1. Defaults to 0.0. + query_intensities (np.ndarray, optional): Query intensities. Defaults to None. + + Returns: + go.Figure: self.fig. + """ + (rt_slice, im_slice, prec_mz_slice, view_indices) = get_plotting_slices( + tims_data=tims_data, + rt_sec=query_rt_sec, + rt_sec_win=rt_sec_win, + im=query_im, + im_win=im_win, + precursor_left_mz=precursor_left_mz, + precursor_right_mz=precursor_right_mz, + view_dim=view_dim, + ) + + if query_intensities is None: + query_intensities = np.zeros_like(query_masses) + else: + query_intensities /= query_intensities.max() + + for ion_name, query_mass, query_inten, marker_color, mass_tol in zip( + ion_names, query_masses, query_intensities, marker_colors, mass_tols + ): + self._add_one_trace( + tims_data=tims_data, + query_mass=query_mass, + mass_tol=mass_tol, + rt_slice=rt_slice, + im_slice=im_slice, + prec_mz_slice=prec_mz_slice, + view_indices=view_indices, + view_dim=view_dim, + label=self.label_format.format(ion_name=ion_name, mz=query_mass), + legend_group=self.legend_group.format(ion_name=ion_name), + marker_color=marker_color, + add_peak_area=add_peak_area, + ) + if query_inten > 0: + self._add_one_trace( + tims_data=tims_data, + query_mass=query_mass, + mass_tol=mass_tol, + rt_slice=rt_slice, + im_slice=im_slice, + prec_mz_slice=prec_mz_slice, + view_indices=view_indices, + view_dim=view_dim, + label=self.label_format.format(ion_name=ion_name, mz=query_mass), + legend_group=self.legend_group.format(ion_name=ion_name), + marker_color=marker_color, + intensity_scale=-query_inten, + add_peak_area=add_peak_area, + ) + + def _add_one_trace( + self, + tims_data: TimsTOF, + query_mass: float, + mass_tol: float, + rt_slice: slice, + im_slice: slice, + prec_mz_slice: slice, + view_indices: np.ndarray, + view_dim: str, + label: str, + legend_group: str, + marker_color: str, + intensity_scale: float = 1.0, + add_peak_area=True, + ): + frag_indices = tims_data[ + rt_slice, + im_slice, + prec_mz_slice, + slice( + query_mass - mass_tol, + query_mass + mass_tol, + ), + "raw", + ] + if len(frag_indices) == 0: + return + self.fig.add_trace( + plot_line_tims_fast( + tims_data, + frag_indices, + view_indices, + name=label, + legend_group=legend_group, + marker_color=marker_color, + view_dim=view_dim, + intensity_scale=intensity_scale, + add_peak_area=add_peak_area, + ), + row=self.row, + col=self.col, + ) + + +def get_plotting_slices( + tims_data: TimsTOF, + rt_sec: float, + rt_sec_win: float = 30.0, + im: float = 0.0, + im_win: float = 0.05, + precursor_left_mz: float = -1.0, + precursor_right_mz: float = -1.0, + view_dim: str = "rt", +): + """ + Get plotting slices for target queries in TimsTOF data. + Args: + tims_data (TimsTOF): AlphaTims TimsTOF object. + rt_sec (float): Query RT in seconds. + rt_sec_win (float, optional): Query RT window in seconds. Defaults to 30.0. + im (float, optional): Query ion mobility, 0 means no mobility dimension. Defaults to 0.. + im_win (float, optional): Ion mobility window. Defaults to 0.05. + precursor_mz (float, optional): Precursor mz, 0 means it is MS1. Defaults to 0.0. + ppm (float, optional): PPM tolerance for `precursor_mz`. Defaults to 20.0. + view_dim (str, optional): View dimension, "rt" or "im". Defaults to "rt" + """ + rt_slice = slice(rt_sec - rt_sec_win / 2, rt_sec + rt_sec_win / 2) + im_slice = slice(im - im_win / 2, im + im_win / 2) + + if precursor_left_mz <= 0: + prec_mz_slice = 0 + raw_indices = tims_data[rt_slice, im_slice, 0, :, "raw"] + else: + prec_mz_slice = slice( + precursor_left_mz, + precursor_right_mz, + ) + raw_indices = tims_data[rt_slice, im_slice, prec_mz_slice, :, "raw"] + + if view_dim == "rt": + view_indices = np.sort( + np.array( + list( + set( + tims_data.convert_from_indices( + raw_indices, return_frame_indices=True + )["frame_indices"] + ) + ), + dtype=np.int64, + ) + ) + else: + view_indices = np.sort( + np.array( + list( + set( + tims_data.convert_from_indices( + raw_indices, return_scan_indices=True + )["scan_indices"] + ) + ), + dtype=np.int64, + ) + ) + + return rt_slice, im_slice, prec_mz_slice, view_indices + + + +def plot_line_tims( + tims_data: TimsTOF, + tims_raw_indices: np.ndarray, + tims_view_indices: np.array, + name: str, + legend_group: str, + marker_color: str, + view_dim: typing.Literal["rt", "im"] = "rt", # or 'im' + intensity_scale: float = 1.0, + rt_unit: str = "minute", +) -> go.Figure: + """ + Plot an XIC line on alphatims `TimsTOF` data + + Parameters + ---------- + tims_data : TimsTOF + The alphatims `TimsTOF` object + tims_raw_indices : np.ndarray + Raw indices on `TimsTOF` object + tims_view_indices : np.array + View indices on `TimsTOF` object + name : str + Display name + legend_group : str + Lines will be grouped by `legend_group` + marker_color : str + Color of the scatter (x, y) + view_dim : "rt", "im", optional + View dimension, "rt" or "im", by default "rt" + rt_unit : str, optional + RT unit, by default "minute" + + Returns + ------- + go.Figure + Line plot + """ + x_dimension = alphatims_labels[view_dim] + + intensities = tims_data.bin_intensities(tims_raw_indices, [x_dimension]) + if view_dim == "rt": + x_ticks = tims_data.rt_values[tims_view_indices] + intensities = intensities[tims_view_indices] + if rt_unit == "minute": + x_ticks /= 60.0 + else: + x_ticks = tims_data.mobility_values[tims_view_indices] + intensities = intensities[tims_view_indices] + + return plot_line( + x_ticks, + intensities * intensity_scale, + name=name, + marker_color=marker_color, + legend_group=legend_group, + x_text=view_dim.upper(), + ) + + +def plot_line_tims_fast( + tims_data: TimsTOF, + tims_raw_indices: np.ndarray, + tims_view_indices: np.array, + name: str, + legend_group: str, + marker_color: str, + view_dim: typing.Literal["rt", "im"] = "rt", + intensity_scale: float = 1.0, + rt_unit: str = "minute", + add_peak_area=True, +) -> go.Figure: + """ + Plot an XIC line on alphatims `TimsTOF` data + + Parameters + ---------- + tims_data : TimsTOF + The alphatims `TimsTOF` object + tims_raw_indices : np.ndarray + Raw indices on `TimsTOF` object + tims_view_indices : np.array + View indices on `TimsTOF` object + name : str + Display name + legend_group : str + Lines will be grouped by `legend_group` + marker_color : str + Color of the scatter (x, y) + view_dim : "rt", "im", optional + View dimension, "rt" or "im", by default "rt" + intensity_scale : float, optional + Intensity scale of mirror plot, by default 1.0 + rt_unit : str, optional + RT unit, by default "minute" + add_peak_area : bool, optional + If add peak area in the hover text, by default True + + Returns + ------- + go.Figure + _description_ + """ + x_dimension = alphatims_labels[view_dim] + + intensities = tims_data.bin_intensities(tims_raw_indices, [x_dimension]) + if view_dim == "rt": + x_ticks = tims_data.rt_values[tims_view_indices] + intensities = intensities[tims_view_indices] + if rt_unit == "minute": + x_ticks /= 60.0 + else: + x_ticks = tims_data.mobility_values[tims_view_indices] + intensities = intensities[tims_view_indices] + + if add_peak_area: + peak_area = abs(np.trapz(y=intensities, x=x_ticks)) + + return plot_line( + x_ticks, + intensities * intensity_scale, + name=name, + marker_color=marker_color, + legend_group=legend_group, + x_text=view_dim.upper(), + other_info=f"Peak area: {peak_area:.2e}" if add_peak_area else "", + ) + From c77d4b51ef347af23d237787b35683ef97cbac11 Mon Sep 17 00:00:00 2001 From: mschwoerer <82171591+mschwoer@users.noreply.github.com> Date: Tue, 17 Mar 2026 12:54:29 +0100 Subject: [PATCH 2/3] move notebooks --- nbs/tests/alphatims_wrapper.ipynb | 1749 ++++++++++++++++++++++++ nbs/tests/test_alphatims_wrapper.ipynb | 151 ++ 2 files changed, 1900 insertions(+) create mode 100644 nbs/tests/alphatims_wrapper.ipynb create mode 100644 nbs/tests/test_alphatims_wrapper.ipynb diff --git a/nbs/tests/alphatims_wrapper.ipynb b/nbs/tests/alphatims_wrapper.ipynb new file mode 100644 index 0000000..767c2ee --- /dev/null +++ b/nbs/tests/alphatims_wrapper.ipynb @@ -0,0 +1,1749 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#---#| default_exp wrappers.alphatims_wrapper" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": "# MSData_Base to AlphaTims" + }, + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": "# notebook was moved from alpharaw" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from alpharaw import register_all_readers\n", + "from alphatims.alphatims_wrapper import AlphaTimsWrapper\n", + "\n", + "register_all_readers()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#| hide\n", + "import io\n", + "from alpharaw.legacy_msdata.mgf import ms_reader_provider" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
spec_idxpeak_start_idxpeak_stop_idxrtchargems_levelprecursor_mzisolation_lower_mzisolation_upper_mzrt_sec
00-1-10.0000000.020.0000000.0000000.0000000.000000
11-1-10.0000000.020.0000000.0000000.0000000.000000
22-1-10.0000000.020.0000000.0000000.0000000.000000
33-1-10.0000000.020.0000000.0000000.0000000.000000
44-1-10.0000000.020.0000000.0000000.0000000.000000
55-1-10.0000000.020.0000000.0000000.0000000.000000
66-1-10.0000000.020.0000000.0000000.0000000.000000
770600.0590323.02272.276336270.276336274.2763363.541893
88-1-10.0000000.020.0000000.0000000.0000000.000000
99-1-10.0000000.020.0000000.0000000.0000000.000000
1010601170.1107592.02287.427959285.427959289.4279596.645522
\n", + "
" + ], + "text/plain": [ + " spec_idx peak_start_idx peak_stop_idx rt charge ms_level \\\n", + "0 0 -1 -1 0.000000 0.0 2 \n", + "1 1 -1 -1 0.000000 0.0 2 \n", + "2 2 -1 -1 0.000000 0.0 2 \n", + "3 3 -1 -1 0.000000 0.0 2 \n", + "4 4 -1 -1 0.000000 0.0 2 \n", + "5 5 -1 -1 0.000000 0.0 2 \n", + "6 6 -1 -1 0.000000 0.0 2 \n", + "7 7 0 60 0.059032 3.0 2 \n", + "8 8 -1 -1 0.000000 0.0 2 \n", + "9 9 -1 -1 0.000000 0.0 2 \n", + "10 10 60 117 0.110759 2.0 2 \n", + "\n", + " precursor_mz isolation_lower_mz isolation_upper_mz rt_sec \n", + "0 0.000000 0.000000 0.000000 0.000000 \n", + "1 0.000000 0.000000 0.000000 0.000000 \n", + "2 0.000000 0.000000 0.000000 0.000000 \n", + "3 0.000000 0.000000 0.000000 0.000000 \n", + "4 0.000000 0.000000 0.000000 0.000000 \n", + "5 0.000000 0.000000 0.000000 0.000000 \n", + "6 0.000000 0.000000 0.000000 0.000000 \n", + "7 272.276336 270.276336 274.276336 3.541893 \n", + "8 0.000000 0.000000 0.000000 0.000000 \n", + "9 0.000000 0.000000 0.000000 0.000000 \n", + "10 287.427959 285.427959 289.427959 6.645522 " + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| hide\n", + "mgf = io.StringIO(\"\"\"\n", + "BEGIN IONS\n", + "TITLE=02445a_BA7-TUM_HLA_7_01_01-DDA-1h-R1.8.8.3.0.dta\n", + "CHARGE=3+\n", + "RTINSECONDS=3.5418930\n", + "PEPMASS=272.276336\n", + "103.92207 5457.3\n", + "104.20045 5051.4\n", + "108.70090 5891.7\n", + "113.94175 6442.6\n", + "116.92975 40506.3\n", + "116.93716 8945.5\n", + "128.37773 6427.8\n", + "131.95308 288352.6\n", + "133.93259 7344.6\n", + "138.44611 7326.1\n", + "139.00072 41556.8\n", + "140.00319 16738.8\n", + "140.99719 9493.8\n", + "145.93156 10209.3\n", + "145.94897 10497.8\n", + "147.94559 8206.3\n", + "147.96396 30552.8\n", + "148.95543 14654.7\n", + "149.96338 234207.8\n", + "150.95096 8306.0\n", + "157.01089 84638.9\n", + "158.01357 27925.7\n", + "159.00627 16084.7\n", + "163.94281 24751.1\n", + "163.95915 32203.3\n", + "165.95605 44458.0\n", + "165.97186 11530.2\n", + "166.99500 26432.2\n", + "167.97302 9216.7\n", + "181.95230 13858.8\n", + "191.95448 66152.7\n", + "192.95538 8408.9\n", + "193.07185 9092.8\n", + "193.95313 660574.9\n", + "194.95674 23452.8\n", + "194.99008 143940.9\n", + "200.00568 19510.8\n", + "200.99942 23678.7\n", + "204.30894 9406.1\n", + "209.96466 21853.6\n", + "211.96245 65351.0\n", + "218.90355 9149.6\n", + "223.91072 11300.2\n", + "238.89684 12108.8\n", + "243.93825 10150.2\n", + "243.97040 10987.7\n", + "244.94121 8744.2\n", + "246.90314 11556.3\n", + "271.93225 29430.0\n", + "271.99219 51184.4\n", + "272.19150 31960.4\n", + "272.98602 35844.1\n", + "273.94431 11031.8\n", + "284.47998 8191.3\n", + "290.00125 66212.4\n", + "290.99539 54064.7\n", + "293.89490 10005.0\n", + "407.06372 10838.2\n", + "464.36697 9715.4\n", + "698.81390 9711.7\n", + "END IONS\n", + "BEGIN IONS\n", + "TITLE=02445a_BA7-TUM_HLA_7_01_01-DDA-1h-R1.11.11.2.0.dta\n", + "CHARGE=2+\n", + "RTINSECONDS=6.6455220\n", + "PEPMASS=287.427959\n", + "103.34669 5304.0\n", + "104.66884 5639.7\n", + "113.42419 6258.3\n", + "118.84039 5837.5\n", + "119.93203 13977.3\n", + "130.69589 6876.2\n", + "133.94824 43094.3\n", + "134.30524 7671.5\n", + "135.96359 9031.3\n", + "138.99994 8329.7\n", + "146.95573 31143.9\n", + "147.96323 12176.5\n", + "150.95151 65859.3\n", + "151.95818 24384.2\n", + "157.01105 19241.5\n", + "157.34985 7532.5\n", + "161.08838 7843.9\n", + "161.94234 20119.7\n", + "162.95146 60110.4\n", + "163.95877 183305.5\n", + "164.96657 13647.5\n", + "174.95139 150331.9\n", + "175.95258 21393.4\n", + "178.94460 11433.1\n", + "179.95316 13650.5\n", + "180.96204 15353.5\n", + "190.94572 30418.9\n", + "191.95422 61914.1\n", + "192.61461 8642.1\n", + "192.94395 12331.4\n", + "192.96207 132342.5\n", + "193.96318 19303.0\n", + "209.04164 25149.6\n", + "209.96368 154185.0\n", + "209.98361 12353.5\n", + "213.86244 11541.3\n", + "224.93071 12903.0\n", + "228.92879 8773.6\n", + "241.86043 135357.5\n", + "242.86113 20805.2\n", + "242.94327 26679.4\n", + "243.95219 29569.9\n", + "244.92361 12153.5\n", + "246.90300 16650.3\n", + "252.96521 73484.3\n", + "253.96646 11527.5\n", + "286.85858 10166.4\n", + "287.94186 18763.2\n", + "303.87665 39189.3\n", + "304.88116 11976.0\n", + "321.89087 97122.5\n", + "322.88867 28020.8\n", + "370.28696 9008.2\n", + "389.82578 13277.0\n", + "407.83545 12220.4\n", + "425.84872 13236.5\n", + "482.54852 10940.2\n", + "END IONS\n", + "\"\"\")\n", + "reader = ms_reader_provider.get_reader('mgf')\n", + "reader.import_raw(mgf)\n", + "reader.spectrum_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
raw_indicesframe_indicesscan_indicesprecursor_indicespush_indicestof_indicesrt_valuesrt_values_minmobility_valuesquad_low_mz_valuesquad_high_mz_valuesmz_valuesintensity_valuescorrected_intensity_values
00001092203.5418930.0590320.0270.276336274.276336103.92205457.35457
110010120043.5418930.0590320.0270.276336274.276336104.20045051.45051
220010570093.5418930.0590320.0270.276336274.276336108.70095891.75891
3300101094173.5418930.0590320.0270.276336274.276336113.94176442.66442
4400101392973.5418930.0590320.0270.276336274.276336116.929740506.340506
5500101393713.5418930.0590320.0270.276336274.276336116.93718945.58945
6600102537773.5418930.0590320.0270.276336274.276336128.37776427.86427
7700102895303.5418930.0590320.0270.276336274.276336131.9530288352.6288352
8800103093253.5418930.0590320.0270.276336274.276336133.93257344.67344
9900103544613.5418930.0590320.0270.276336274.276336138.44617326.17326
101000103600073.5418930.0590320.0270.276336274.276336139.000741556.841556
111100103700313.5418930.0590320.0270.276336274.276336140.003116738.816738
121200103799713.5418930.0590320.0270.276336274.276336140.99719493.89493
131300104293153.5418930.0590320.0270.276336274.276336145.931510209.310209
141400104294893.5418930.0590320.0270.276336274.276336145.948910497.810497
151500104494553.5418930.0590320.0270.276336274.276336147.94558206.38206
161600104496393.5418930.0590320.0270.276336274.276336147.963930552.830552
171700104595543.5418930.0590320.0270.276336274.276336148.955414654.714654
181800104696333.5418930.0590320.0270.276336274.276336149.9633234207.8234207
191900104795093.5418930.0590320.0270.276336274.276336150.95098306.08306
202000105401083.5418930.0590320.0270.276336274.276336157.010884638.984638
212100105501353.5418930.0590320.0270.276336274.276336158.013527925.727925
222200105600623.5418930.0590320.0270.276336274.276336159.006216084.716084
232300106094283.5418930.0590320.0270.276336274.276336163.942824751.124751
242400106095913.5418930.0590320.0270.276336274.276336163.959132203.332203
252500106295603.5418930.0590320.0270.276336274.276336165.956044458.044458
262600106297183.5418930.0590320.0270.276336274.276336165.971811530.211530
272700106399503.5418930.0590320.0270.276336274.276336166.995026432.226432
282800106497303.5418930.0590320.0270.276336274.276336167.97309216.79216
292900107895233.5418930.0590320.0270.276336274.276336181.952313858.813858
303000108895443.5418930.0590320.0270.276336274.276336191.954466152.766152
313100108995533.5418930.0590320.0270.276336274.276336192.95538408.98408
323200109007183.5418930.0590320.0270.276336274.276336193.07189092.89092
333300109095313.5418930.0590320.0270.276336274.276336193.9531660574.9660574
343400109195673.5418930.0590320.0270.276336274.276336194.956723452.823452
353500109199003.5418930.0590320.0270.276336274.276336194.9900143940.9143940
363600109700563.5418930.0590320.0270.276336274.276336200.005619510.819510
373700109799943.5418930.0590320.0270.276336274.276336200.999423678.723678
3838001010130893.5418930.0590320.0270.276336274.276336204.30899406.19406
3939001010696463.5418930.0590320.0270.276336274.276336209.964621853.621853
4040001010896243.5418930.0590320.0270.276336274.276336211.962465351.065351
4141001011590353.5418930.0590320.0270.276336274.276336218.90359149.69149
4242001012091073.5418930.0590320.0270.276336274.276336223.910711300.211300
4343001013589683.5418930.0590320.0270.276336274.276336238.896812108.812108
4444001014093823.5418930.0590320.0270.276336274.276336243.938210150.210150
4545001014097043.5418930.0590320.0270.276336274.276336243.970410987.710987
4646001014194123.5418930.0590320.0270.276336274.276336244.94128744.28744
4747001014390313.5418930.0590320.0270.276336274.276336246.903111556.311556
4848001016893223.5418930.0590320.0270.276336274.276336271.932229430.029430
4949001016899213.5418930.0590320.0270.276336274.276336271.992151184.451184
5050001016919153.5418930.0590320.0270.276336274.276336272.191531960.431960
5151001016998603.5418930.0590320.0270.276336274.276336272.986035844.135844
5252001017094433.5418930.0590320.0270.276336274.276336273.944311031.811031
5353001018147993.5418930.0590320.0270.276336274.276336284.47998191.38191
5454001018700123.5418930.0590320.0270.276336274.276336290.001266212.466212
5555001018799533.5418930.0590320.0270.276336274.276336290.995354064.754064
5656001019089493.5418930.0590320.0270.276336274.276336293.894910005.010005
5757001030406373.5418930.0590320.0270.276336274.276336407.063710838.210838
5858001036136693.5418930.0590320.0270.276336274.276336464.36699715.49715
5959001059581393.5418930.0590320.0270.276336274.276336698.81399711.79711
\n", + "
" + ], + "text/plain": [ + " raw_indices frame_indices scan_indices precursor_indices push_indices \\\n", + "0 0 0 0 1 0 \n", + "1 1 0 0 1 0 \n", + "2 2 0 0 1 0 \n", + "3 3 0 0 1 0 \n", + "4 4 0 0 1 0 \n", + "5 5 0 0 1 0 \n", + "6 6 0 0 1 0 \n", + "7 7 0 0 1 0 \n", + "8 8 0 0 1 0 \n", + "9 9 0 0 1 0 \n", + "10 10 0 0 1 0 \n", + "11 11 0 0 1 0 \n", + "12 12 0 0 1 0 \n", + "13 13 0 0 1 0 \n", + "14 14 0 0 1 0 \n", + "15 15 0 0 1 0 \n", + "16 16 0 0 1 0 \n", + "17 17 0 0 1 0 \n", + "18 18 0 0 1 0 \n", + "19 19 0 0 1 0 \n", + "20 20 0 0 1 0 \n", + "21 21 0 0 1 0 \n", + "22 22 0 0 1 0 \n", + "23 23 0 0 1 0 \n", + "24 24 0 0 1 0 \n", + "25 25 0 0 1 0 \n", + "26 26 0 0 1 0 \n", + "27 27 0 0 1 0 \n", + "28 28 0 0 1 0 \n", + "29 29 0 0 1 0 \n", + "30 30 0 0 1 0 \n", + "31 31 0 0 1 0 \n", + "32 32 0 0 1 0 \n", + "33 33 0 0 1 0 \n", + "34 34 0 0 1 0 \n", + "35 35 0 0 1 0 \n", + "36 36 0 0 1 0 \n", + "37 37 0 0 1 0 \n", + "38 38 0 0 1 0 \n", + "39 39 0 0 1 0 \n", + "40 40 0 0 1 0 \n", + "41 41 0 0 1 0 \n", + "42 42 0 0 1 0 \n", + "43 43 0 0 1 0 \n", + "44 44 0 0 1 0 \n", + "45 45 0 0 1 0 \n", + "46 46 0 0 1 0 \n", + "47 47 0 0 1 0 \n", + "48 48 0 0 1 0 \n", + "49 49 0 0 1 0 \n", + "50 50 0 0 1 0 \n", + "51 51 0 0 1 0 \n", + "52 52 0 0 1 0 \n", + "53 53 0 0 1 0 \n", + "54 54 0 0 1 0 \n", + "55 55 0 0 1 0 \n", + "56 56 0 0 1 0 \n", + "57 57 0 0 1 0 \n", + "58 58 0 0 1 0 \n", + "59 59 0 0 1 0 \n", + "\n", + " tof_indices rt_values rt_values_min mobility_values \\\n", + "0 9220 3.541893 0.059032 0.0 \n", + "1 12004 3.541893 0.059032 0.0 \n", + "2 57009 3.541893 0.059032 0.0 \n", + "3 109417 3.541893 0.059032 0.0 \n", + "4 139297 3.541893 0.059032 0.0 \n", + "5 139371 3.541893 0.059032 0.0 \n", + "6 253777 3.541893 0.059032 0.0 \n", + "7 289530 3.541893 0.059032 0.0 \n", + "8 309325 3.541893 0.059032 0.0 \n", + "9 354461 3.541893 0.059032 0.0 \n", + "10 360007 3.541893 0.059032 0.0 \n", + "11 370031 3.541893 0.059032 0.0 \n", + "12 379971 3.541893 0.059032 0.0 \n", + "13 429315 3.541893 0.059032 0.0 \n", + "14 429489 3.541893 0.059032 0.0 \n", + "15 449455 3.541893 0.059032 0.0 \n", + "16 449639 3.541893 0.059032 0.0 \n", + "17 459554 3.541893 0.059032 0.0 \n", + "18 469633 3.541893 0.059032 0.0 \n", + "19 479509 3.541893 0.059032 0.0 \n", + "20 540108 3.541893 0.059032 0.0 \n", + "21 550135 3.541893 0.059032 0.0 \n", + "22 560062 3.541893 0.059032 0.0 \n", + "23 609428 3.541893 0.059032 0.0 \n", + "24 609591 3.541893 0.059032 0.0 \n", + "25 629560 3.541893 0.059032 0.0 \n", + "26 629718 3.541893 0.059032 0.0 \n", + "27 639950 3.541893 0.059032 0.0 \n", + "28 649730 3.541893 0.059032 0.0 \n", + "29 789523 3.541893 0.059032 0.0 \n", + "30 889544 3.541893 0.059032 0.0 \n", + "31 899553 3.541893 0.059032 0.0 \n", + "32 900718 3.541893 0.059032 0.0 \n", + "33 909531 3.541893 0.059032 0.0 \n", + "34 919567 3.541893 0.059032 0.0 \n", + "35 919900 3.541893 0.059032 0.0 \n", + "36 970056 3.541893 0.059032 0.0 \n", + "37 979994 3.541893 0.059032 0.0 \n", + "38 1013089 3.541893 0.059032 0.0 \n", + "39 1069646 3.541893 0.059032 0.0 \n", + "40 1089624 3.541893 0.059032 0.0 \n", + "41 1159035 3.541893 0.059032 0.0 \n", + "42 1209107 3.541893 0.059032 0.0 \n", + "43 1358968 3.541893 0.059032 0.0 \n", + "44 1409382 3.541893 0.059032 0.0 \n", + "45 1409704 3.541893 0.059032 0.0 \n", + "46 1419412 3.541893 0.059032 0.0 \n", + "47 1439031 3.541893 0.059032 0.0 \n", + "48 1689322 3.541893 0.059032 0.0 \n", + "49 1689921 3.541893 0.059032 0.0 \n", + "50 1691915 3.541893 0.059032 0.0 \n", + "51 1699860 3.541893 0.059032 0.0 \n", + "52 1709443 3.541893 0.059032 0.0 \n", + "53 1814799 3.541893 0.059032 0.0 \n", + "54 1870012 3.541893 0.059032 0.0 \n", + "55 1879953 3.541893 0.059032 0.0 \n", + "56 1908949 3.541893 0.059032 0.0 \n", + "57 3040637 3.541893 0.059032 0.0 \n", + "58 3613669 3.541893 0.059032 0.0 \n", + "59 5958139 3.541893 0.059032 0.0 \n", + "\n", + " quad_low_mz_values quad_high_mz_values mz_values intensity_values \\\n", + "0 270.276336 274.276336 103.9220 5457.3 \n", + "1 270.276336 274.276336 104.2004 5051.4 \n", + "2 270.276336 274.276336 108.7009 5891.7 \n", + "3 270.276336 274.276336 113.9417 6442.6 \n", + "4 270.276336 274.276336 116.9297 40506.3 \n", + "5 270.276336 274.276336 116.9371 8945.5 \n", + "6 270.276336 274.276336 128.3777 6427.8 \n", + "7 270.276336 274.276336 131.9530 288352.6 \n", + "8 270.276336 274.276336 133.9325 7344.6 \n", + "9 270.276336 274.276336 138.4461 7326.1 \n", + "10 270.276336 274.276336 139.0007 41556.8 \n", + "11 270.276336 274.276336 140.0031 16738.8 \n", + "12 270.276336 274.276336 140.9971 9493.8 \n", + "13 270.276336 274.276336 145.9315 10209.3 \n", + "14 270.276336 274.276336 145.9489 10497.8 \n", + "15 270.276336 274.276336 147.9455 8206.3 \n", + "16 270.276336 274.276336 147.9639 30552.8 \n", + "17 270.276336 274.276336 148.9554 14654.7 \n", + "18 270.276336 274.276336 149.9633 234207.8 \n", + "19 270.276336 274.276336 150.9509 8306.0 \n", + "20 270.276336 274.276336 157.0108 84638.9 \n", + "21 270.276336 274.276336 158.0135 27925.7 \n", + "22 270.276336 274.276336 159.0062 16084.7 \n", + "23 270.276336 274.276336 163.9428 24751.1 \n", + "24 270.276336 274.276336 163.9591 32203.3 \n", + "25 270.276336 274.276336 165.9560 44458.0 \n", + "26 270.276336 274.276336 165.9718 11530.2 \n", + "27 270.276336 274.276336 166.9950 26432.2 \n", + "28 270.276336 274.276336 167.9730 9216.7 \n", + "29 270.276336 274.276336 181.9523 13858.8 \n", + "30 270.276336 274.276336 191.9544 66152.7 \n", + "31 270.276336 274.276336 192.9553 8408.9 \n", + "32 270.276336 274.276336 193.0718 9092.8 \n", + "33 270.276336 274.276336 193.9531 660574.9 \n", + "34 270.276336 274.276336 194.9567 23452.8 \n", + "35 270.276336 274.276336 194.9900 143940.9 \n", + "36 270.276336 274.276336 200.0056 19510.8 \n", + "37 270.276336 274.276336 200.9994 23678.7 \n", + "38 270.276336 274.276336 204.3089 9406.1 \n", + "39 270.276336 274.276336 209.9646 21853.6 \n", + "40 270.276336 274.276336 211.9624 65351.0 \n", + "41 270.276336 274.276336 218.9035 9149.6 \n", + "42 270.276336 274.276336 223.9107 11300.2 \n", + "43 270.276336 274.276336 238.8968 12108.8 \n", + "44 270.276336 274.276336 243.9382 10150.2 \n", + "45 270.276336 274.276336 243.9704 10987.7 \n", + "46 270.276336 274.276336 244.9412 8744.2 \n", + "47 270.276336 274.276336 246.9031 11556.3 \n", + "48 270.276336 274.276336 271.9322 29430.0 \n", + "49 270.276336 274.276336 271.9921 51184.4 \n", + "50 270.276336 274.276336 272.1915 31960.4 \n", + "51 270.276336 274.276336 272.9860 35844.1 \n", + "52 270.276336 274.276336 273.9443 11031.8 \n", + "53 270.276336 274.276336 284.4799 8191.3 \n", + "54 270.276336 274.276336 290.0012 66212.4 \n", + "55 270.276336 274.276336 290.9953 54064.7 \n", + "56 270.276336 274.276336 293.8949 10005.0 \n", + "57 270.276336 274.276336 407.0637 10838.2 \n", + "58 270.276336 274.276336 464.3669 9715.4 \n", + "59 270.276336 274.276336 698.8139 9711.7 \n", + "\n", + " corrected_intensity_values \n", + "0 5457 \n", + "1 5051 \n", + "2 5891 \n", + "3 6442 \n", + "4 40506 \n", + "5 8945 \n", + "6 6427 \n", + "7 288352 \n", + "8 7344 \n", + "9 7326 \n", + "10 41556 \n", + "11 16738 \n", + "12 9493 \n", + "13 10209 \n", + "14 10497 \n", + "15 8206 \n", + "16 30552 \n", + "17 14654 \n", + "18 234207 \n", + "19 8306 \n", + "20 84638 \n", + "21 27925 \n", + "22 16084 \n", + "23 24751 \n", + "24 32203 \n", + "25 44458 \n", + "26 11530 \n", + "27 26432 \n", + "28 9216 \n", + "29 13858 \n", + "30 66152 \n", + "31 8408 \n", + "32 9092 \n", + "33 660574 \n", + "34 23452 \n", + "35 143940 \n", + "36 19510 \n", + "37 23678 \n", + "38 9406 \n", + "39 21853 \n", + "40 65351 \n", + "41 9149 \n", + "42 11300 \n", + "43 12108 \n", + "44 10150 \n", + "45 10987 \n", + "46 8744 \n", + "47 11556 \n", + "48 29430 \n", + "49 51184 \n", + "50 31960 \n", + "51 35844 \n", + "52 11031 \n", + "53 8191 \n", + "54 66212 \n", + "55 54064 \n", + "56 10005 \n", + "57 10838 \n", + "58 9715 \n", + "59 9711 " + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#| hide\n", + "tims_data = AlphaTimsWrapper(reader, True)\n", + "tims_data[3.0:5.0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.8.3 ('base')", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/nbs/tests/test_alphatims_wrapper.ipynb b/nbs/tests/test_alphatims_wrapper.ipynb new file mode 100644 index 0000000..3f738cd --- /dev/null +++ b/nbs/tests/test_alphatims_wrapper.ipynb @@ -0,0 +1,151 @@ +{ + "cells": [ + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": "# notebook was moved from alpharaw" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%reload_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": "from alpharaw.thermo import ThermoRawData\n" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "raw_data = ThermoRawData()\n", + "raw_data.import_raw(\"./test_data/iRT_DIA.raw\")\n", + "raw_data.spectrum_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "raw_data.peak_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from alphatims.alphatims_wrapper import AlphaTimsWrapper\n", + "\n", + "alphatims_data = AlphaTimsWrapper(raw_data, dda=True)\n", + "alphatims_data[0.0:1.0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "alphatims_data[0.0:100.0].query('precursor_indices>0')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Test iRT DIA data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "raw_data = ThermoRawData()\n", + "raw_data.import_raw(\"./test_data/iRT_DIA.raw\")\n", + "raw_data.spectrum_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "alphatims_data = AlphaTimsWrapper(raw_data, dda=False)\n", + "alphatims_data[0.0:10.0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "alphatims_data[0.0:1.0][['precursor_indices','push_indices']].drop_duplicates()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "alphatims_data[0.0:10.0].query('precursor_indices==0')[\n", + " ['precursor_indices','push_indices']\n", + "].drop_duplicates()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.8.3 ('base')", + "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.9.12" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "8a3b27e141e49c996c9b863f8707e97aabd49c4a7e8445b9b783b34e4a21a9b2" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 25fc76a343e8e0489e63c59c545c5adad8300437 Mon Sep 17 00:00:00 2001 From: mschwoerer <82171591+mschwoer@users.noreply.github.com> Date: Tue, 17 Mar 2026 13:41:52 +0100 Subject: [PATCH 3/3] move to alphaviz --- alphatims/alphatims_wrapper.py | 301 ---- nbs/tests/alphatims_wrapper.ipynb | 1749 ------------------------ nbs/tests/test_alphatims_wrapper.ipynb | 151 -- 3 files changed, 2201 deletions(-) delete mode 100644 alphatims/alphatims_wrapper.py delete mode 100644 nbs/tests/alphatims_wrapper.ipynb delete mode 100644 nbs/tests/test_alphatims_wrapper.ipynb diff --git a/alphatims/alphatims_wrapper.py b/alphatims/alphatims_wrapper.py deleted file mode 100644 index dd28d87..0000000 --- a/alphatims/alphatims_wrapper.py +++ /dev/null @@ -1,301 +0,0 @@ -"""Methods to convert AlphaRaw objects into AlphaTims objects (TimsTOF). Moved from AlphaRaw.""" - -import typing - -import numpy as np -import pandas as pd - -import alphatims -from alphatims.bruker import TimsTOF - -from alphabase.peptide.fragment import remove_unused_fragments -from alpharaw.ms_data_base import MSData_Base - - -def convert_to_alphatims( - spec_df: pd.DataFrame, - peak_df: pd.DataFrame, - dda: bool = False, -) -> typing.Tuple[MSData_Base, TimsTOF]: - """ - Convert any spectrum dataframe or sliced spectrum dataframe - and its peak dataframe into AlphaTims' TimsTOF object (AlphaTimsWrapper). - - Args: - spec_df (pd.DataFrame): - spectrum dataframe or sliced spectrum dataframe in AlphaRaw's format. - peak_df (pd.DataFrame): - peak dataframe in AlphaRaw's format by removing unused peaks in spec_df. - dda (bool): - if dda data. - - Returns: - MSData_Base: AlphaRaw object - TimsTOF: AlphaTims' TimsTOF object (AlphaTimsWrapper). - """ - spec_df, peak_df = remove_unused_peaks(spec_df, peak_df) - ms_data = MSData_Base() - ms_data.spectrum_df = spec_df - ms_data.peak_df = peak_df - - return ms_data, AlphaTimsWrapper(ms_data, dda=dda) - - -def remove_unused_peaks( - spectrum_df: pd.DataFrame, - peak_df: pd.DataFrame, -) -> typing.Tuple[pd.DataFrame, pd.DataFrame]: - """Removes unused peaks of removed spectra, - reannotates the peak_start_idx and peak_stop_idx - - Parameters - ---------- - spectrum_df : pd.DataFrame - Spectrum dataframe which contains peak_start_idx and peak_stop_idx columns - - peak_df : pd.DataFrame - The peak dataframe which should be compressed by removing unused peaks. - - Returns - ------- - pd.DataFrame, pd.DataFrame - The reindexed spectrum DataFrame and the sliced peak DataFrame - """ - - spectrum_df, (peak_df,) = remove_unused_fragments( - spectrum_df, - (peak_df,), - frag_start_col="peak_start_idx", - frag_stop_col="peak_stop_idx", - ) - return spectrum_df, peak_df - - spectrum_df = spectrum_df.sort_values(["peak_start_idx"], ascending=True) - frag_idx = spectrum_df[["peak_start_idx", "peak_stop_idx"]].values - - new_frag_idx, fragment_pointer = compress_fragment_indices(frag_idx) - - spectrum_df[["peak_start_idx", "peak_stop_idx"]] = new_frag_idx - spectrum_df = spectrum_df.sort_index() - - return (spectrum_df, peak_df.iloc[fragment_pointer].copy().reset_index(drop=True)) - - -class AlphaTimsReader(MSData_Base): - """ - TimsTOF data are too large, do not use this class - """ - - def import_raw(self, burker_d_folder: str): - tims = TimsTOF( - burker_d_folder, - ) - - self.raw_file_path = burker_d_folder - self.file_type = "bruker" - - self.spectrum_df["precursor_mz"] = tims.fragment_frames.IsolationMz.values - isolations = tims.fragment_frames.IsolationWidth.values / 2 - self.spectrum_df["isolation_lower_mz"] = ( - self.spectrum_df.precursor_mz - isolations - ) - self.spectrum_df["isolation_upper_mz"] = ( - self.spectrum_df.precursor_mz + isolations - ) - self.spectrum_df["peak_start_idx"] = tims._push_indptr[:-1] - self.spectrum_df["peak_stop_idx"] = tims._push_indptr[1:] - self.spectrum_df["rt"] = tims.rt_values / 60 - self.spectrum_df["mobility"] = tims.mobility_values - self.spectrum_df["ms_level"] = (tims.precursor_indices > 0).astype(np.int8) + 1 - self.spectrum_df["spec_idx"] = self.spectrum_df.index.values - self.spectrum_df["tims_frame"] = ( - self.spectrum_df.spec_idx // tims.scan_max_index - ) - self.spectrum_df["tims_scan"] = self.spectrum_df.spec_idx % tims.scan_max_index - - self.peak_df["mz"] = tims.mz_values[tims.tof_indices] - self.peak_df["intensity"] = tims.intensity_values.astype(np.float32) - - -class AlphaTimsWrapper(TimsTOF): - """Create a AlphaTims object containing - all data in-memory (or memory mapping). - - Attribute - --------- - slice_as_dataframe - Attribute from AlphaTims. - If True, AlphaTims slicing returns a pd.DataFrame by default. - If False, AlphaTims slicing provides a np.int64[:] with raw indices. - The value can be modified on-the-fly. - """ - - def __init__(self, msdata: MSData_Base, dda: bool, slice_as_dataframe: bool = True): - """ - Parameters - ---------- - msdata : MSData_Base - The AlphaRaw data object. - - dda : bool - If DDA, precursor indices will be equal to scan numbers. - If not DDA (i.e. DIA), precursor indices will be equal to the - scan number within a DIA cycle. - - slice_as_dataframe : bool - If True, slicing returns a pd.DataFrame by default. - If False, slicing provides a np.int64[:] with raw indices. - Default is True. - """ - self._use_calibrated_mz_values_as_default = False - self._import_alpharaw_object(msdata, dda) - self.thermo_raw_file_name = msdata.raw_file_path - self.bruker_d_folder_name = self.thermo_raw_file_name - self.slice_as_dataframe = ( - slice_as_dataframe # This value can be modified after creation. - ) - # Precompile - self[0, "raw"] - - def _import_alpharaw_object( - self, - msdata: MSData_Base, - dda: bool, - ): - self._version = alphatims.__version__ - mz_values = msdata.peak_df.mz.values - self._intensity_values = msdata.peak_df.intensity.values - - if (msdata.spectrum_df.peak_start_idx < 0).any(): - spectrum_df = msdata.spectrum_df.query("peak_start_idx!=-1") - else: - spectrum_df = msdata.spectrum_df - - self._push_indptr = np.zeros(len(spectrum_df) + 1, dtype=np.int64) - self._push_indptr[1:] = spectrum_df.peak_stop_idx.values - self._rt_values = spectrum_df.rt.values * 60 - self._quad_mz_values = spectrum_df[ - ["isolation_lower_mz", "isolation_upper_mz"] - ].values - if dda: - self._precursor_indices = np.zeros_like(self._rt_values, dtype=np.int64) - ms2s = spectrum_df.ms_level.values == 2 - self._precursor_indices[ms2s] = np.cumsum(ms2s, dtype=np.int64)[ms2s] - else: - precursor_indices = [] - prev_mz = -1 - prev_idx = 0 - for mz, ms_level in spectrum_df[["precursor_mz", "ms_level"]].values: - if ms_level == 1: - precursor_indices.append(0) - elif prev_mz >= mz: # TODO if DIA mz windows are not in order - prev_mz = mz - prev_idx = 1 - precursor_indices.append(prev_idx) - else: - prev_idx += 1 - prev_mz = mz - precursor_indices.append(prev_idx) - self._precursor_indices = np.array(precursor_indices, dtype=np.int64) - - scan_count = len(self._precursor_indices) - self._frame_max_index = scan_count - self._scan_max_index = 1 - self._mobility_max_value = 0.0 - self._mobility_min_value = 0.0 - self._mobility_values = np.array([0.0]) - self._quad_indptr = self._push_indptr - self._raw_quad_indptr = np.arange(scan_count + 1) - self._intensity_min_value = float(np.min(self._intensity_values)) - self._intensity_max_value = float(np.max(self._intensity_values)) - self._intensity_corrections = np.ones(self._frame_max_index) - _q_mzs = self._quad_mz_values[self._quad_mz_values != -1] - if len(_q_mzs) > 0: - self._quad_min_mz_value = float(np.min(_q_mzs)) - self._quad_max_mz_value = float(np.max(_q_mzs)) - else: - self._quad_min_mz_value = 0 - self._quad_max_mz_value = 0 - self._precursor_max_index = int(np.max(self._precursor_indices)) + 1 - self._acquisition_mode = ( - msdata.file_type + " " + ("DDA" if dda else "DIA") - ) # TODO - self._mz_min_value = int(np.min(mz_values)) - self._mz_max_value = int(np.max(mz_values)) + 1 - self._decimals = 4 - self._mz_values = ( - np.arange( - 10**self._decimals * self._mz_min_value, - 10**self._decimals * (self._mz_max_value + 1), - ) - / 10**self._decimals - ) - self._tof_indices = (mz_values * 10**self._decimals).astype( - np.int32 - ) - 10**self._decimals * self._mz_min_value - self._tof_max_index = len(self._mz_values) - self._meta_data = {"SampleName": msdata.raw_file_path} - msmstype = np.array([0 if s == -1 else 1 for s, e in self._quad_mz_values]) - summed_intensities_ = np.cumsum(self._intensity_values) - summed_intensities = -summed_intensities_[self._push_indptr[:-1]] - summed_intensities[:-1] += summed_intensities_[self._push_indptr[1:-1]] - summed_intensities[-1] += summed_intensities_[-1] - max_intensities = [ - np.max( - self._intensity_values[self._push_indptr[i] : self._push_indptr[i + 1]] - ) - if self._push_indptr[i + 1] != -1 - and self._push_indptr[i] != -1 - and self._push_indptr[i] != self._push_indptr[i + 1] - else 0 - for i in range(len(self._rt_values)) - ] - self._frames = pd.DataFrame( - { - "MsMsType": msmstype, - "Time": self._rt_values, - "SummedIntensities": summed_intensities, - "MaxIntensity": max_intensities, - "Id": np.arange(len(self._rt_values)), - } - ) - frame_numbers = np.arange(len(self._rt_values), dtype=np.int32) - isolation_widths = self._quad_mz_values[:, 1] + self._quad_mz_values[:, 0] - isolation_centers = self._quad_mz_values[:, 1] - self._quad_mz_values[:, 0] - self._fragment_frames = pd.DataFrame( - { - "Frame": frame_numbers[msmstype == 1], - "ScanNumBegin": 0, - "ScanNumEnd": 0, - "IsolationWidth": isolation_widths[msmstype == 1], - "IsolationMz": isolation_centers[msmstype == 1], - "Precursor": self._precursor_indices[msmstype == 1], - } - ) - self._zeroth_frame = False - offset = int(self.zeroth_frame) - cycle_index = ( - np.searchsorted( - self.raw_quad_indptr, - (self.scan_max_index) * (self.precursor_max_index + offset), - "r", - ) - + 1 - ) - repeats = np.diff(self.raw_quad_indptr[:cycle_index]) - if self.zeroth_frame: - repeats[0] -= self.scan_max_index - cycle_length = self.scan_max_index * self.precursor_max_index - repeat_length = np.sum(repeats) - if repeat_length != cycle_length: - repeats[-1] -= repeat_length - cycle_length - self._dia_mz_cycle = np.empty((cycle_length, 2)) - self._dia_mz_cycle[:, 0] = np.repeat( - self.quad_mz_values[: cycle_index - 1, 0], repeats - ) - self._dia_mz_cycle[:, 1] = np.repeat( - self.quad_mz_values[: cycle_index - 1, 1], repeats - ) - self._dia_precursor_cycle = np.repeat( - self.precursor_indices[: cycle_index - 1], repeats - ) diff --git a/nbs/tests/alphatims_wrapper.ipynb b/nbs/tests/alphatims_wrapper.ipynb deleted file mode 100644 index 767c2ee..0000000 --- a/nbs/tests/alphatims_wrapper.ipynb +++ /dev/null @@ -1,1749 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#---#| default_exp wrappers.alphatims_wrapper" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": "# MSData_Base to AlphaTims" - }, - { - "metadata": {}, - "cell_type": "code", - "outputs": [], - "execution_count": null, - "source": "# notebook was moved from alpharaw" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from alpharaw import register_all_readers\n", - "from alphatims.alphatims_wrapper import AlphaTimsWrapper\n", - "\n", - "register_all_readers()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#| hide\n", - "import io\n", - "from alpharaw.legacy_msdata.mgf import ms_reader_provider" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
spec_idxpeak_start_idxpeak_stop_idxrtchargems_levelprecursor_mzisolation_lower_mzisolation_upper_mzrt_sec
00-1-10.0000000.020.0000000.0000000.0000000.000000
11-1-10.0000000.020.0000000.0000000.0000000.000000
22-1-10.0000000.020.0000000.0000000.0000000.000000
33-1-10.0000000.020.0000000.0000000.0000000.000000
44-1-10.0000000.020.0000000.0000000.0000000.000000
55-1-10.0000000.020.0000000.0000000.0000000.000000
66-1-10.0000000.020.0000000.0000000.0000000.000000
770600.0590323.02272.276336270.276336274.2763363.541893
88-1-10.0000000.020.0000000.0000000.0000000.000000
99-1-10.0000000.020.0000000.0000000.0000000.000000
1010601170.1107592.02287.427959285.427959289.4279596.645522
\n", - "
" - ], - "text/plain": [ - " spec_idx peak_start_idx peak_stop_idx rt charge ms_level \\\n", - "0 0 -1 -1 0.000000 0.0 2 \n", - "1 1 -1 -1 0.000000 0.0 2 \n", - "2 2 -1 -1 0.000000 0.0 2 \n", - "3 3 -1 -1 0.000000 0.0 2 \n", - "4 4 -1 -1 0.000000 0.0 2 \n", - "5 5 -1 -1 0.000000 0.0 2 \n", - "6 6 -1 -1 0.000000 0.0 2 \n", - "7 7 0 60 0.059032 3.0 2 \n", - "8 8 -1 -1 0.000000 0.0 2 \n", - "9 9 -1 -1 0.000000 0.0 2 \n", - "10 10 60 117 0.110759 2.0 2 \n", - "\n", - " precursor_mz isolation_lower_mz isolation_upper_mz rt_sec \n", - "0 0.000000 0.000000 0.000000 0.000000 \n", - "1 0.000000 0.000000 0.000000 0.000000 \n", - "2 0.000000 0.000000 0.000000 0.000000 \n", - "3 0.000000 0.000000 0.000000 0.000000 \n", - "4 0.000000 0.000000 0.000000 0.000000 \n", - "5 0.000000 0.000000 0.000000 0.000000 \n", - "6 0.000000 0.000000 0.000000 0.000000 \n", - "7 272.276336 270.276336 274.276336 3.541893 \n", - "8 0.000000 0.000000 0.000000 0.000000 \n", - "9 0.000000 0.000000 0.000000 0.000000 \n", - "10 287.427959 285.427959 289.427959 6.645522 " - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#| hide\n", - "mgf = io.StringIO(\"\"\"\n", - "BEGIN IONS\n", - "TITLE=02445a_BA7-TUM_HLA_7_01_01-DDA-1h-R1.8.8.3.0.dta\n", - "CHARGE=3+\n", - "RTINSECONDS=3.5418930\n", - "PEPMASS=272.276336\n", - "103.92207 5457.3\n", - "104.20045 5051.4\n", - "108.70090 5891.7\n", - "113.94175 6442.6\n", - "116.92975 40506.3\n", - "116.93716 8945.5\n", - "128.37773 6427.8\n", - "131.95308 288352.6\n", - "133.93259 7344.6\n", - "138.44611 7326.1\n", - "139.00072 41556.8\n", - "140.00319 16738.8\n", - "140.99719 9493.8\n", - "145.93156 10209.3\n", - "145.94897 10497.8\n", - "147.94559 8206.3\n", - "147.96396 30552.8\n", - "148.95543 14654.7\n", - "149.96338 234207.8\n", - "150.95096 8306.0\n", - "157.01089 84638.9\n", - "158.01357 27925.7\n", - "159.00627 16084.7\n", - "163.94281 24751.1\n", - "163.95915 32203.3\n", - "165.95605 44458.0\n", - "165.97186 11530.2\n", - "166.99500 26432.2\n", - "167.97302 9216.7\n", - "181.95230 13858.8\n", - "191.95448 66152.7\n", - "192.95538 8408.9\n", - "193.07185 9092.8\n", - "193.95313 660574.9\n", - "194.95674 23452.8\n", - "194.99008 143940.9\n", - "200.00568 19510.8\n", - "200.99942 23678.7\n", - "204.30894 9406.1\n", - "209.96466 21853.6\n", - "211.96245 65351.0\n", - "218.90355 9149.6\n", - "223.91072 11300.2\n", - "238.89684 12108.8\n", - "243.93825 10150.2\n", - "243.97040 10987.7\n", - "244.94121 8744.2\n", - "246.90314 11556.3\n", - "271.93225 29430.0\n", - "271.99219 51184.4\n", - "272.19150 31960.4\n", - "272.98602 35844.1\n", - "273.94431 11031.8\n", - "284.47998 8191.3\n", - "290.00125 66212.4\n", - "290.99539 54064.7\n", - "293.89490 10005.0\n", - "407.06372 10838.2\n", - "464.36697 9715.4\n", - "698.81390 9711.7\n", - "END IONS\n", - "BEGIN IONS\n", - "TITLE=02445a_BA7-TUM_HLA_7_01_01-DDA-1h-R1.11.11.2.0.dta\n", - "CHARGE=2+\n", - "RTINSECONDS=6.6455220\n", - "PEPMASS=287.427959\n", - "103.34669 5304.0\n", - "104.66884 5639.7\n", - "113.42419 6258.3\n", - "118.84039 5837.5\n", - "119.93203 13977.3\n", - "130.69589 6876.2\n", - "133.94824 43094.3\n", - "134.30524 7671.5\n", - "135.96359 9031.3\n", - "138.99994 8329.7\n", - "146.95573 31143.9\n", - "147.96323 12176.5\n", - "150.95151 65859.3\n", - "151.95818 24384.2\n", - "157.01105 19241.5\n", - "157.34985 7532.5\n", - "161.08838 7843.9\n", - "161.94234 20119.7\n", - "162.95146 60110.4\n", - "163.95877 183305.5\n", - "164.96657 13647.5\n", - "174.95139 150331.9\n", - "175.95258 21393.4\n", - "178.94460 11433.1\n", - "179.95316 13650.5\n", - "180.96204 15353.5\n", - "190.94572 30418.9\n", - "191.95422 61914.1\n", - "192.61461 8642.1\n", - "192.94395 12331.4\n", - "192.96207 132342.5\n", - "193.96318 19303.0\n", - "209.04164 25149.6\n", - "209.96368 154185.0\n", - "209.98361 12353.5\n", - "213.86244 11541.3\n", - "224.93071 12903.0\n", - "228.92879 8773.6\n", - "241.86043 135357.5\n", - "242.86113 20805.2\n", - "242.94327 26679.4\n", - "243.95219 29569.9\n", - "244.92361 12153.5\n", - "246.90300 16650.3\n", - "252.96521 73484.3\n", - "253.96646 11527.5\n", - "286.85858 10166.4\n", - "287.94186 18763.2\n", - "303.87665 39189.3\n", - "304.88116 11976.0\n", - "321.89087 97122.5\n", - "322.88867 28020.8\n", - "370.28696 9008.2\n", - "389.82578 13277.0\n", - "407.83545 12220.4\n", - "425.84872 13236.5\n", - "482.54852 10940.2\n", - "END IONS\n", - "\"\"\")\n", - "reader = ms_reader_provider.get_reader('mgf')\n", - "reader.import_raw(mgf)\n", - "reader.spectrum_df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
raw_indicesframe_indicesscan_indicesprecursor_indicespush_indicestof_indicesrt_valuesrt_values_minmobility_valuesquad_low_mz_valuesquad_high_mz_valuesmz_valuesintensity_valuescorrected_intensity_values
00001092203.5418930.0590320.0270.276336274.276336103.92205457.35457
110010120043.5418930.0590320.0270.276336274.276336104.20045051.45051
220010570093.5418930.0590320.0270.276336274.276336108.70095891.75891
3300101094173.5418930.0590320.0270.276336274.276336113.94176442.66442
4400101392973.5418930.0590320.0270.276336274.276336116.929740506.340506
5500101393713.5418930.0590320.0270.276336274.276336116.93718945.58945
6600102537773.5418930.0590320.0270.276336274.276336128.37776427.86427
7700102895303.5418930.0590320.0270.276336274.276336131.9530288352.6288352
8800103093253.5418930.0590320.0270.276336274.276336133.93257344.67344
9900103544613.5418930.0590320.0270.276336274.276336138.44617326.17326
101000103600073.5418930.0590320.0270.276336274.276336139.000741556.841556
111100103700313.5418930.0590320.0270.276336274.276336140.003116738.816738
121200103799713.5418930.0590320.0270.276336274.276336140.99719493.89493
131300104293153.5418930.0590320.0270.276336274.276336145.931510209.310209
141400104294893.5418930.0590320.0270.276336274.276336145.948910497.810497
151500104494553.5418930.0590320.0270.276336274.276336147.94558206.38206
161600104496393.5418930.0590320.0270.276336274.276336147.963930552.830552
171700104595543.5418930.0590320.0270.276336274.276336148.955414654.714654
181800104696333.5418930.0590320.0270.276336274.276336149.9633234207.8234207
191900104795093.5418930.0590320.0270.276336274.276336150.95098306.08306
202000105401083.5418930.0590320.0270.276336274.276336157.010884638.984638
212100105501353.5418930.0590320.0270.276336274.276336158.013527925.727925
222200105600623.5418930.0590320.0270.276336274.276336159.006216084.716084
232300106094283.5418930.0590320.0270.276336274.276336163.942824751.124751
242400106095913.5418930.0590320.0270.276336274.276336163.959132203.332203
252500106295603.5418930.0590320.0270.276336274.276336165.956044458.044458
262600106297183.5418930.0590320.0270.276336274.276336165.971811530.211530
272700106399503.5418930.0590320.0270.276336274.276336166.995026432.226432
282800106497303.5418930.0590320.0270.276336274.276336167.97309216.79216
292900107895233.5418930.0590320.0270.276336274.276336181.952313858.813858
303000108895443.5418930.0590320.0270.276336274.276336191.954466152.766152
313100108995533.5418930.0590320.0270.276336274.276336192.95538408.98408
323200109007183.5418930.0590320.0270.276336274.276336193.07189092.89092
333300109095313.5418930.0590320.0270.276336274.276336193.9531660574.9660574
343400109195673.5418930.0590320.0270.276336274.276336194.956723452.823452
353500109199003.5418930.0590320.0270.276336274.276336194.9900143940.9143940
363600109700563.5418930.0590320.0270.276336274.276336200.005619510.819510
373700109799943.5418930.0590320.0270.276336274.276336200.999423678.723678
3838001010130893.5418930.0590320.0270.276336274.276336204.30899406.19406
3939001010696463.5418930.0590320.0270.276336274.276336209.964621853.621853
4040001010896243.5418930.0590320.0270.276336274.276336211.962465351.065351
4141001011590353.5418930.0590320.0270.276336274.276336218.90359149.69149
4242001012091073.5418930.0590320.0270.276336274.276336223.910711300.211300
4343001013589683.5418930.0590320.0270.276336274.276336238.896812108.812108
4444001014093823.5418930.0590320.0270.276336274.276336243.938210150.210150
4545001014097043.5418930.0590320.0270.276336274.276336243.970410987.710987
4646001014194123.5418930.0590320.0270.276336274.276336244.94128744.28744
4747001014390313.5418930.0590320.0270.276336274.276336246.903111556.311556
4848001016893223.5418930.0590320.0270.276336274.276336271.932229430.029430
4949001016899213.5418930.0590320.0270.276336274.276336271.992151184.451184
5050001016919153.5418930.0590320.0270.276336274.276336272.191531960.431960
5151001016998603.5418930.0590320.0270.276336274.276336272.986035844.135844
5252001017094433.5418930.0590320.0270.276336274.276336273.944311031.811031
5353001018147993.5418930.0590320.0270.276336274.276336284.47998191.38191
5454001018700123.5418930.0590320.0270.276336274.276336290.001266212.466212
5555001018799533.5418930.0590320.0270.276336274.276336290.995354064.754064
5656001019089493.5418930.0590320.0270.276336274.276336293.894910005.010005
5757001030406373.5418930.0590320.0270.276336274.276336407.063710838.210838
5858001036136693.5418930.0590320.0270.276336274.276336464.36699715.49715
5959001059581393.5418930.0590320.0270.276336274.276336698.81399711.79711
\n", - "
" - ], - "text/plain": [ - " raw_indices frame_indices scan_indices precursor_indices push_indices \\\n", - "0 0 0 0 1 0 \n", - "1 1 0 0 1 0 \n", - "2 2 0 0 1 0 \n", - "3 3 0 0 1 0 \n", - "4 4 0 0 1 0 \n", - "5 5 0 0 1 0 \n", - "6 6 0 0 1 0 \n", - "7 7 0 0 1 0 \n", - "8 8 0 0 1 0 \n", - "9 9 0 0 1 0 \n", - "10 10 0 0 1 0 \n", - "11 11 0 0 1 0 \n", - "12 12 0 0 1 0 \n", - "13 13 0 0 1 0 \n", - "14 14 0 0 1 0 \n", - "15 15 0 0 1 0 \n", - "16 16 0 0 1 0 \n", - "17 17 0 0 1 0 \n", - "18 18 0 0 1 0 \n", - "19 19 0 0 1 0 \n", - "20 20 0 0 1 0 \n", - "21 21 0 0 1 0 \n", - "22 22 0 0 1 0 \n", - "23 23 0 0 1 0 \n", - "24 24 0 0 1 0 \n", - "25 25 0 0 1 0 \n", - "26 26 0 0 1 0 \n", - "27 27 0 0 1 0 \n", - "28 28 0 0 1 0 \n", - "29 29 0 0 1 0 \n", - "30 30 0 0 1 0 \n", - "31 31 0 0 1 0 \n", - "32 32 0 0 1 0 \n", - "33 33 0 0 1 0 \n", - "34 34 0 0 1 0 \n", - "35 35 0 0 1 0 \n", - "36 36 0 0 1 0 \n", - "37 37 0 0 1 0 \n", - "38 38 0 0 1 0 \n", - "39 39 0 0 1 0 \n", - "40 40 0 0 1 0 \n", - "41 41 0 0 1 0 \n", - "42 42 0 0 1 0 \n", - "43 43 0 0 1 0 \n", - "44 44 0 0 1 0 \n", - "45 45 0 0 1 0 \n", - "46 46 0 0 1 0 \n", - "47 47 0 0 1 0 \n", - "48 48 0 0 1 0 \n", - "49 49 0 0 1 0 \n", - "50 50 0 0 1 0 \n", - "51 51 0 0 1 0 \n", - "52 52 0 0 1 0 \n", - "53 53 0 0 1 0 \n", - "54 54 0 0 1 0 \n", - "55 55 0 0 1 0 \n", - "56 56 0 0 1 0 \n", - "57 57 0 0 1 0 \n", - "58 58 0 0 1 0 \n", - "59 59 0 0 1 0 \n", - "\n", - " tof_indices rt_values rt_values_min mobility_values \\\n", - "0 9220 3.541893 0.059032 0.0 \n", - "1 12004 3.541893 0.059032 0.0 \n", - "2 57009 3.541893 0.059032 0.0 \n", - "3 109417 3.541893 0.059032 0.0 \n", - "4 139297 3.541893 0.059032 0.0 \n", - "5 139371 3.541893 0.059032 0.0 \n", - "6 253777 3.541893 0.059032 0.0 \n", - "7 289530 3.541893 0.059032 0.0 \n", - "8 309325 3.541893 0.059032 0.0 \n", - "9 354461 3.541893 0.059032 0.0 \n", - "10 360007 3.541893 0.059032 0.0 \n", - "11 370031 3.541893 0.059032 0.0 \n", - "12 379971 3.541893 0.059032 0.0 \n", - "13 429315 3.541893 0.059032 0.0 \n", - "14 429489 3.541893 0.059032 0.0 \n", - "15 449455 3.541893 0.059032 0.0 \n", - "16 449639 3.541893 0.059032 0.0 \n", - "17 459554 3.541893 0.059032 0.0 \n", - "18 469633 3.541893 0.059032 0.0 \n", - "19 479509 3.541893 0.059032 0.0 \n", - "20 540108 3.541893 0.059032 0.0 \n", - "21 550135 3.541893 0.059032 0.0 \n", - "22 560062 3.541893 0.059032 0.0 \n", - "23 609428 3.541893 0.059032 0.0 \n", - "24 609591 3.541893 0.059032 0.0 \n", - "25 629560 3.541893 0.059032 0.0 \n", - "26 629718 3.541893 0.059032 0.0 \n", - "27 639950 3.541893 0.059032 0.0 \n", - "28 649730 3.541893 0.059032 0.0 \n", - "29 789523 3.541893 0.059032 0.0 \n", - "30 889544 3.541893 0.059032 0.0 \n", - "31 899553 3.541893 0.059032 0.0 \n", - "32 900718 3.541893 0.059032 0.0 \n", - "33 909531 3.541893 0.059032 0.0 \n", - "34 919567 3.541893 0.059032 0.0 \n", - "35 919900 3.541893 0.059032 0.0 \n", - "36 970056 3.541893 0.059032 0.0 \n", - "37 979994 3.541893 0.059032 0.0 \n", - "38 1013089 3.541893 0.059032 0.0 \n", - "39 1069646 3.541893 0.059032 0.0 \n", - "40 1089624 3.541893 0.059032 0.0 \n", - "41 1159035 3.541893 0.059032 0.0 \n", - "42 1209107 3.541893 0.059032 0.0 \n", - "43 1358968 3.541893 0.059032 0.0 \n", - "44 1409382 3.541893 0.059032 0.0 \n", - "45 1409704 3.541893 0.059032 0.0 \n", - "46 1419412 3.541893 0.059032 0.0 \n", - "47 1439031 3.541893 0.059032 0.0 \n", - "48 1689322 3.541893 0.059032 0.0 \n", - "49 1689921 3.541893 0.059032 0.0 \n", - "50 1691915 3.541893 0.059032 0.0 \n", - "51 1699860 3.541893 0.059032 0.0 \n", - "52 1709443 3.541893 0.059032 0.0 \n", - "53 1814799 3.541893 0.059032 0.0 \n", - "54 1870012 3.541893 0.059032 0.0 \n", - "55 1879953 3.541893 0.059032 0.0 \n", - "56 1908949 3.541893 0.059032 0.0 \n", - "57 3040637 3.541893 0.059032 0.0 \n", - "58 3613669 3.541893 0.059032 0.0 \n", - "59 5958139 3.541893 0.059032 0.0 \n", - "\n", - " quad_low_mz_values quad_high_mz_values mz_values intensity_values \\\n", - "0 270.276336 274.276336 103.9220 5457.3 \n", - "1 270.276336 274.276336 104.2004 5051.4 \n", - "2 270.276336 274.276336 108.7009 5891.7 \n", - "3 270.276336 274.276336 113.9417 6442.6 \n", - "4 270.276336 274.276336 116.9297 40506.3 \n", - "5 270.276336 274.276336 116.9371 8945.5 \n", - "6 270.276336 274.276336 128.3777 6427.8 \n", - "7 270.276336 274.276336 131.9530 288352.6 \n", - "8 270.276336 274.276336 133.9325 7344.6 \n", - "9 270.276336 274.276336 138.4461 7326.1 \n", - "10 270.276336 274.276336 139.0007 41556.8 \n", - "11 270.276336 274.276336 140.0031 16738.8 \n", - "12 270.276336 274.276336 140.9971 9493.8 \n", - "13 270.276336 274.276336 145.9315 10209.3 \n", - "14 270.276336 274.276336 145.9489 10497.8 \n", - "15 270.276336 274.276336 147.9455 8206.3 \n", - "16 270.276336 274.276336 147.9639 30552.8 \n", - "17 270.276336 274.276336 148.9554 14654.7 \n", - "18 270.276336 274.276336 149.9633 234207.8 \n", - "19 270.276336 274.276336 150.9509 8306.0 \n", - "20 270.276336 274.276336 157.0108 84638.9 \n", - "21 270.276336 274.276336 158.0135 27925.7 \n", - "22 270.276336 274.276336 159.0062 16084.7 \n", - "23 270.276336 274.276336 163.9428 24751.1 \n", - "24 270.276336 274.276336 163.9591 32203.3 \n", - "25 270.276336 274.276336 165.9560 44458.0 \n", - "26 270.276336 274.276336 165.9718 11530.2 \n", - "27 270.276336 274.276336 166.9950 26432.2 \n", - "28 270.276336 274.276336 167.9730 9216.7 \n", - "29 270.276336 274.276336 181.9523 13858.8 \n", - "30 270.276336 274.276336 191.9544 66152.7 \n", - "31 270.276336 274.276336 192.9553 8408.9 \n", - "32 270.276336 274.276336 193.0718 9092.8 \n", - "33 270.276336 274.276336 193.9531 660574.9 \n", - "34 270.276336 274.276336 194.9567 23452.8 \n", - "35 270.276336 274.276336 194.9900 143940.9 \n", - "36 270.276336 274.276336 200.0056 19510.8 \n", - "37 270.276336 274.276336 200.9994 23678.7 \n", - "38 270.276336 274.276336 204.3089 9406.1 \n", - "39 270.276336 274.276336 209.9646 21853.6 \n", - "40 270.276336 274.276336 211.9624 65351.0 \n", - "41 270.276336 274.276336 218.9035 9149.6 \n", - "42 270.276336 274.276336 223.9107 11300.2 \n", - "43 270.276336 274.276336 238.8968 12108.8 \n", - "44 270.276336 274.276336 243.9382 10150.2 \n", - "45 270.276336 274.276336 243.9704 10987.7 \n", - "46 270.276336 274.276336 244.9412 8744.2 \n", - "47 270.276336 274.276336 246.9031 11556.3 \n", - "48 270.276336 274.276336 271.9322 29430.0 \n", - "49 270.276336 274.276336 271.9921 51184.4 \n", - "50 270.276336 274.276336 272.1915 31960.4 \n", - "51 270.276336 274.276336 272.9860 35844.1 \n", - "52 270.276336 274.276336 273.9443 11031.8 \n", - "53 270.276336 274.276336 284.4799 8191.3 \n", - "54 270.276336 274.276336 290.0012 66212.4 \n", - "55 270.276336 274.276336 290.9953 54064.7 \n", - "56 270.276336 274.276336 293.8949 10005.0 \n", - "57 270.276336 274.276336 407.0637 10838.2 \n", - "58 270.276336 274.276336 464.3669 9715.4 \n", - "59 270.276336 274.276336 698.8139 9711.7 \n", - "\n", - " corrected_intensity_values \n", - "0 5457 \n", - "1 5051 \n", - "2 5891 \n", - "3 6442 \n", - "4 40506 \n", - "5 8945 \n", - "6 6427 \n", - "7 288352 \n", - "8 7344 \n", - "9 7326 \n", - "10 41556 \n", - "11 16738 \n", - "12 9493 \n", - "13 10209 \n", - "14 10497 \n", - "15 8206 \n", - "16 30552 \n", - "17 14654 \n", - "18 234207 \n", - "19 8306 \n", - "20 84638 \n", - "21 27925 \n", - "22 16084 \n", - "23 24751 \n", - "24 32203 \n", - "25 44458 \n", - "26 11530 \n", - "27 26432 \n", - "28 9216 \n", - "29 13858 \n", - "30 66152 \n", - "31 8408 \n", - "32 9092 \n", - "33 660574 \n", - "34 23452 \n", - "35 143940 \n", - "36 19510 \n", - "37 23678 \n", - "38 9406 \n", - "39 21853 \n", - "40 65351 \n", - "41 9149 \n", - "42 11300 \n", - "43 12108 \n", - "44 10150 \n", - "45 10987 \n", - "46 8744 \n", - "47 11556 \n", - "48 29430 \n", - "49 51184 \n", - "50 31960 \n", - "51 35844 \n", - "52 11031 \n", - "53 8191 \n", - "54 66212 \n", - "55 54064 \n", - "56 10005 \n", - "57 10838 \n", - "58 9715 \n", - "59 9711 " - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#| hide\n", - "tims_data = AlphaTimsWrapper(reader, True)\n", - "tims_data[3.0:5.0]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.8.3 ('base')", - "language": "python", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/nbs/tests/test_alphatims_wrapper.ipynb b/nbs/tests/test_alphatims_wrapper.ipynb deleted file mode 100644 index 3f738cd..0000000 --- a/nbs/tests/test_alphatims_wrapper.ipynb +++ /dev/null @@ -1,151 +0,0 @@ -{ - "cells": [ - { - "metadata": {}, - "cell_type": "code", - "outputs": [], - "execution_count": null, - "source": "# notebook was moved from alpharaw" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%reload_ext autoreload\n", - "%autoreload 2" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": "from alpharaw.thermo import ThermoRawData\n" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "raw_data = ThermoRawData()\n", - "raw_data.import_raw(\"./test_data/iRT_DIA.raw\")\n", - "raw_data.spectrum_df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "raw_data.peak_df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from alphatims.alphatims_wrapper import AlphaTimsWrapper\n", - "\n", - "alphatims_data = AlphaTimsWrapper(raw_data, dda=True)\n", - "alphatims_data[0.0:1.0]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "alphatims_data[0.0:100.0].query('precursor_indices>0')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Test iRT DIA data" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "raw_data = ThermoRawData()\n", - "raw_data.import_raw(\"./test_data/iRT_DIA.raw\")\n", - "raw_data.spectrum_df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "alphatims_data = AlphaTimsWrapper(raw_data, dda=False)\n", - "alphatims_data[0.0:10.0]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "alphatims_data[0.0:1.0][['precursor_indices','push_indices']].drop_duplicates()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "alphatims_data[0.0:10.0].query('precursor_indices==0')[\n", - " ['precursor_indices','push_indices']\n", - "].drop_duplicates()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.8.3 ('base')", - "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.9.12" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "8a3b27e141e49c996c9b863f8707e97aabd49c4a7e8445b9b783b34e4a21a9b2" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}