Skip to content

Library Usage

The WTV library provides programmatic access to its core functionality for ion selection in mass spectrometry data.

Installation

First, install the library:

uv sync --all-extras

Basic Example

Run ion selection using the run_ion_selection function:

from pathlib import Path
from wtv.ion_selection import run_ion_selection

run_ion_selection(
    msp_file_path=Path("input.msp"),
    output_directory=Path("output"),
    mz_min=35,
    mz_max=400,
    rt_window=2.00,
    min_ion_intensity_percent=7,
    min_ion_num=2,
    prefer_mz_threshold=60,
    similarity_threshold=0.85,
    fr_factor=2.0,
    retention_time_max=68.80,
)

Core Functions

run_ion_selection

Main function for performing ion selection on MSP files.

Parameters: - msp_file_path (Path): Path to the input MSP file - output_directory (Path): Directory to save output - mz_min (float): Minimum m/z value (default: 0) - mz_max (float): Maximum m/z value (default: infinity) - rt_window (float): Retention time window for finding nearby compounds (default: 1) - min_ion_intensity_percent (float): Minimum ion intensity percentage (default: 5) - min_ion_num (int): Minimum number of ions required (default: 3) - prefer_mz_threshold (float): Preferred m/z threshold (default: 150) - similarity_threshold (float): Similarity threshold for compound matching (default: 0.85) - fr_factor (float): Fragment ratio factor (default: 2) - retention_time_max (float): Maximum retention time (default: infinity)

Example:

from pathlib import Path
from wtv.ion_selection import run_ion_selection

# Run with custom parameters
run_ion_selection(
    msp_file_path=Path("data/sample.msp"),
    output_directory=Path("results"),
    mz_min=50,
    mz_max=500,
    rt_window=1.5,
    similarity_threshold=0.9,
)

generate_ion_combinations

Generate optimal ion combinations for compounds.

Parameters: - min_ion_intensity_percent: Minimum ion intensity percentage - min_ion_num: Minimum number of ions - prefer_mz_threshold: Preferred m/z threshold - similarity_threshold: Similarity threshold - fr_factor: Fragment ratio factor - RT_data: DataFrame with retention time data - matrix: DataFrame with ion intensities - rt_window: Retention time window

Example:

from wtv.utils import load_data
from wtv.ion_selection import generate_ion_combinations

# Load data
RT_data, matrix = load_data(Path("input.msp"), mz_min=35, mz_max=400)

# Generate ion combinations
combinations = generate_ion_combinations(
    min_ion_intensity_percent=7,
    min_ion_num=2,
    prefer_mz_threshold=60,
    similarity_threshold=0.85,
    fr_factor=2.0,
    RT_data=RT_data,
    matrix=matrix,
    rt_window=2.0,
)

Utility Functions

Data Loading

from wtv.utils import load_data, read_msp, create_ion_matrix

# Load data from MSP file
RT_data, matrix = load_data(Path("input.msp"), mz_min=35, mz_max=400)

# Or use read_msp directly
ion_dict, rt_df = read_msp("input.msp")

Writing Results

from wtv.utils import write_msp

# Write filtered spectra to MSP file
write_msp(ion_rt_df, Path("output"), Path("input.msp"))

Logging

The library uses Python's logging module. To see detailed logs:

import logging

logging.basicConfig(level=logging.INFO)

from wtv.ion_selection import run_ion_selection
run_ion_selection(...)