Back to mztools

LC-MS Mix Designer

Splits compounds into the fewest mixes in which every pair is resolved — isotope envelopes included.

Two compounds may share a mix only if both hold: their m/z differ by more than the tolerance, and the gap between their peak edges is at least the minimum. The m/z test runs over every isotope of every adduct. The number of mixes is not something you set — it falls out of these numbers.
How the rule works

Peak width is part of the test — two sharp peaks close together can be fine while two broad ones further apart are not. If either condition fails, the pair goes in different mixes.

Each compound's isotope envelope is computed from its molecular formula, including the adduct's own isotopes. How far out the envelope is carried falls out of the abundance cutoff rather than being set, so heavier compounds keep more peaks. A compound's isotopes all share its retention time, so only the m/z axis expands.

The mixes are then sequenced into a chain — Mix 1 → 2 → 3 … — and each consecutive pair shares its own 2 bridge compounds for RT alignment, present in exactly those two mixes. An interior mix therefore carries 4 bridges and the two end mixes carry 2. Bridges obey the same rule as everything else, and are found rather than requested.

The parameters

ppm · closer than this is an m/z clash
min · clear baseline required between two peak bases. 0 means they simply must not overlap; raise it to demand clearance
% of the compound's tallest isotope · sets how far the envelope is carried. Depth then follows the mass: heavier compounds keep more peaks. 100 uses the monoisotopic peak alone (v4 behaviour)

Compound data

Needs a compound name, a molecular formula, peak start and end times, and one m/z column per adduct. Wide and Skyline-style long layouts are both detected automatically.
Expected columns, and what each is used for

Wide — one row per compound, one column per adduct:
Compound, Formula, RT, Start_time, End_time, mz_H, mz_Na, mz_K

Long — a Skyline-style export, one row per adduct; rows are grouped by compound for you:
Molecule_Name, Molecule_Formula, Precursor_Adduct, Chromatogram_Precursor_M/Z, Retention_Time, Start_Time, End_Time

Formula aliases accepted: Molecule_Formula, Molecular_Formula, Formula, Chemical_Formula.

The adduct columns say which adducts a compound gives. Their m/z values are used only to cross-check the computed ones and are reported back to you — never in the conflict test, which uses the values computed from the formula.

A compound with no usable formula is excluded and listed; no formula is guessed. With no formula column at all the tool runs on monoisotopic peaks only, taken from the measured m/z, and says so — isotope interferences cannot be seen that way.

The retention-time test compares peak edges, not apexes. Without start and end times a compound is treated as zero-width at its apex, and the gap parameter then behaves as a plain apex-to-apex distance for it; the load message reports how many compounds that applied to.