Skip to main content

Molecular Spectrometry Adduct Calculator (MSAC)

The Molecular Spectrometry Adduct Calculator (MSAC) calculates the m/z of potential adducts from given compound m/z. This can help in reading a mass spectrometry spectra. The user provides a .csv with one column containing monoisotopic masses titled 'mass'; other columns will be preserved. Optionally, the user can also supply a more targeted list of adducts to calculate: a .csv with columns 'adduct' and 'charge', where adducts are written without brackets such as M+Na or M-H.

Getting Started

We recommend you install msac into its own conda environment using the instructions below.

Prerequisites

Recommended installation is through anaconda, so dependencies are compatible with each other.

Dependencies are pandas, numpy, and molmass.

Using conda:

conda env create -f msac-env.yml
conda activate msac-env

A requirements.txt file is also available.

Installing

In your activated conda environment, install the calculator. The easiest way to install MSAC is via pip:

pip install msac

Running the calculator

MSAC is provided with two adduct lists: a default list of 13 common adducts and an extensive list of adducts found in NIST17. To calculate the m/z for these adducts based on your input masses, pass MSAC a .csv with the compound masses in a column titled 'mass'. Other columns present in the file will be preserved.

msac input.csv

If your input file's monoisotopic mass column is not called 'mass', you can pass in the title as a string.

msac input.csv -m "Monoisotopic Mass"

You can also specify an output file name; default is {input_name}_adducts.csv.

msac input.csv -o my_output_name.csv

If you want to use your own list of adducts, create a csv with a column called 'adduct' and an column of 'charge'. Check example_data/adduct_list_full.csv for an example.

The default adduct list included in the distribution is used here.

msac input.csv -f adduct_only_list.csv

If you want to include potential neutral losses, add the -n flag.

msac input.csv -n

If you're using the default adduct list or the neutral loss list with -n, you can limit the number of adducts used based on its prevalence in NIST/GNPS/MassBank. Using a value 1.0 or less will give you all adducts that cover more than the specified percent of NIST/GNPS/MassBank. Using an integer value 2+ gives that number of adducts.

msac input.csv -c 0.75 -o "75th_percentile_adducts.csv"
msac input.csv -c 5 -o "top_5_most_common_adducts.csv"

If you have a column of formulas in your input file, you can have MSAC calculate the input masses for you and/or have it output 'NaN' values when a neutral loss cannot be done due to the number of atoms in the molecule.

# have MSAC calculate the mass using --formula_col
msac input.csv -f "Formula"
# have MSAC restrict losses to those numerically possible using --restrict
msac input.csv -r "Formula"

Authors

  • Madison Blumer

License

This project is licensed under the BSD License - see the LICENSE.md file for details

Acknowledgments

Metadata

Release files for msac 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for msac 0.1.2
File Size Uploaded
msac-0.1.2.tar.gz 27.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for msac 0.1.2
File Interpreter ABI Platform
msac-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 57.3 kB

Release files / msac-0.1.2.tar.gz

Download URL msac-0.1.2.tar.gz
Size 27.9 kB
Tags Source
SHA-256 checksum
How to use checksums
93d307b19f0a27e8503d344c075cee76830339864e10b71bcab92d7d804772d0
BLAKE2b-256 checksum
How to use checksums
aed0fd6d1f86c7ab230a4483156d39844704f53fcb2b5b6e75afd4ed8b2c75aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.13.1 Darwin/24.3.0

Release files / msac-0.1.2-py3-none-any.whl

Download URL msac-0.1.2-py3-none-any.whl
Size 29.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6055f4bd2f80d48bc0afee058cf2c65162408830999f0fe5c8d3e39e12ffc480
BLAKE2b-256 checksum
How to use checksums
64f345324e83b9a4008271b9f4e63a9ee78d3ea5db2a70d08d19cbbc266449aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.13.1 Darwin/24.3.0

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page