Free, open-source PTR-MS workbench

Raw PTR-MS data to a spreadsheet.

Sniff proposes peaks and stable sample/background intervals. You review them; accepted results become CSV. Your scientific judgement stays final, and processing runs locally.

Packages for Apple silicon macOS, Windows x86-64 and Linux x86-64.

Free to useMIT-licensed open sourceNo cloud analysis. No measurement upload.Your .h5 stays on this machine.

A neutral view

Choose Sniff when...

IONICON PTR-MS Viewer

Sniff is a better fit when the scientist wants a free, MIT-licensed, open-source workflow that proposes stable sample/background intervals and peaks before expert-reviewed CSV export.

IONICON's public PTR-MS Viewer description

PTRwid

Sniff is a better fit for IONICON IoniTOF .h5, a desktop visual review, and scientist-approved CSV output rather than PTRwid's published autonomous IDL/IDL VM campaign workflow for Tofwerk HTOF.

the PTRwid paper (DOI)

Downloads

Choose your platform.

Every package includes the runtime. Linux is available as a Debian package and a portable archive.

Available

macOS

Apple silicon · macOS 11+

Native package for Apple silicon Macs.

Requires confirmed Apple silicon.

Available

Windows

x86-64

Installer for current 64-bit Windows systems.

Available

Linux

x86-64 · Ubuntu 22.04+ / Debian 12+

Use the Debian package on Ubuntu, Debian and compatible derivatives. The portable archive is best effort on other modern glibc-based x86-64 systems; Alpine/musl and ARM are unsupported.

Installers are unsigned, so your OS may ask for confirmation. See the packaging guidance.

Questions, answered plainly

FAQ

What files does Sniff read?

Sniff reads IONICON IoniTOF PTR-MS and PTR-TOF .h5 files, including acquisition and calibration information present in the file.

How does Sniff propose peaks?

It finds local maxima in the average mass spectrum above relative and robust noise thresholds, merges maxima within one instrument linewidth, and proposes candidates for review.

How are sample and background intervals proposed?

Sniff builds a composite VOC signal from strong m/z 40-200 traces and finds stable plateaus in log space. Elevated plateaus are proposed as samples and lower ones as backgrounds; short same-class gaps may be joined.

Does Sniff change my raw .h5 file?

No. Sniff reads the raw file and writes the review configuration beside it; accepted results are exported to a CSV without modifying the .h5.

What do formula and compound candidates mean?

Sniff enumerates formula candidates offline and ranks them using exact-mass error, isotope patterns, chemical plausibility and optional library context. They remain candidates: structural isomers and overlapping signals can stay ambiguous, and scores are not probabilities. Names and isomer labels come from the bundled PTR Library mapping.

How do background periods affect the output?

Background intervals are kept separate in the CSV and provide the baseline context for review and sample-vs-background checks. Review and correct the proposed classes before export because those labels affect the reported intervals.

How are concentrations calculated?

Sniff transmission-corrects peak signals, normalises them by the primary-ion signal and applies K to report ppb and µg/m³, with optional measured kinetic corrections. K is not uniquely fixed by every raw file; use an appropriate calibration, and obtain an instrument-specific humidity calibration before treating humidity-sensitive compounds as absolute.

What is saved for reproducibility?

The sidecar JSON retains your peaks, intervals and analysis settings, plus validated mass-axis calibration evidence and a fingerprint of the source H5. The raw spectra remain in the H5 rather than being duplicated in the config.

Is Sniff really local?

Analysis and review run locally, and Sniff never uploads your measurement file. The app may check GitHub Releases for update metadata; if you explicitly configure an agent endpoint, review configuration and diagnostics are sent to that chosen service.

Can I use Sniff without Python?

Yes. The macOS, Windows and Linux packages include the runtime and dependencies needed by the app. On Linux, use the .deb on Ubuntu 22.04+, Debian 12+ or compatible derivatives; the portable archive is best effort on other modern glibc-based x86-64 systems and does not support Alpine/musl or ARM.