Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>MSData ViewerNew to Visual Studio Code? Get it now.
MSData Viewer

MSData Viewer

gamstek

|
1 install
| (0) | Free
Read-only sample, component, chromatogram and spectrum viewer for .msdata and .mzML files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

MSData Viewer

View current-format TQ8000 .msdata and supported .mzML files in desktop Visual Studio Code. Both formats use the same read-only viewer; parsing and XIC extraction run in a worker.

Features

  • Use the top Browse area for mode, sample/acquisition, group/transition, individual-analyte and result-search controls. Only controls for the active mode are shown. The sidebar lists results and counts without a second set of filters.
  • Switch between three independent entry modes: Samples, Groups, and Individual analytes. Samples lists all channels across the selected sample's acquisitions; optionally narrow the acquisition filter. Experiments share a sample only when the file provides a sample key; repeated display labels alone are not merged.
  • Groups uses a file-wide catalog, never limited by the selected sample or acquisition. Selecting a group lists every matching recorded or derived signal across all samples (for example, two methamidophos transitions across 58 acquisitions yield 116 results). Each result identifies its sample, acquisition, transition and available m/z values. Selecting it requests that exact acquisition/channel without changing the mode or group.
  • Individual analytes uses the file-wide full transition label catalog: selecting methamidophos-1 yields its 58 results, independently of the Groups filter (methamidophos, 116 results). Mode changes retain each catalog's selection without leaking filters into another mode.
  • Names come from actual metadata; missing group names fall back to component names, precursor/product m/z or channel labels, without assigning chemical identities. Instrument channels are excluded from global groups.
  • Search channels, component names, groups and signal kinds; long lists use bounded options and channel pagination. The channel list and plots scroll independently. Instrument channels remain separate from component signals.
  • Use Manual XIC when extraction is available: enter an inclusive MS1 m/z interval, or an MS2 product m/z interval plus an inclusive precursor interval. Equal bounds select a single mass. Extracted XICs appear as derived channels, without modifying the file.
  • Continue browsing during extraction. Errors stay in the XIC form; summary updates preserve the current sample, acquisition, selection, overlays and zoom. Only the requesting panel selects its new XIC, and only if its selection has not changed while extracting.
  • View spectra-only files and metadata warnings even when no recorded chromatograms or component labels are available.
  • Overlay a primary signal with up to three other signal channels within the selected acquisition. Comparison buttons for other acquisitions are disabled; select their result to inspect it instead. The legend and table identify each channel and its highest point in the visible range.
  • View spectra when the selected experiment contains them.
  • Read retention time in minutes throughout the viewer. The file and mzML conversion retain the source time values in seconds.
  • Drag across a chart to select a time or m/z range and zoom; press Escape to cancel. Double-click the horizontal axis or use Reset to return to the full range. You can also enter an exact range and inspect plotted points with the pointer or arrow keys.
  • See an empty state or a format error when a file cannot be displayed.

Recorded .msdata metadata

  • Acquisition JSON in sampleId is parsed once per experiment, up to 8 MiB. Native channel/spectrum JSON retains its separate 8,192-byte parsing limit. Display labels remain bounded to 160 characters; raw acquisition JSON is not sent to the viewer.
  • Sample labels use sampleName, then extendedForm.tableInfo.sampleName, otherwise an experiment label (opaque non-JSON IDs retain their bounded preview). Sample identity prefers extendedForm.tableInfo.uuid, then an explicit nonempty sampleId. Matching UUIDs share a sample; different UUIDs do not merge even when both labels are blank. Without an explicit identity, experiments remain separate.
  • A native ID exactly matching XIC_<zero-based index>_v_<major>.<minor>.<patch> selects that exact entry in acquisition tables, not the chromatogram's position. TIC and PumpPressure do not select method rows. The recorded tables.id supplies the transition label; numeric q1Mass and q3Mass supply precursor/product m/z.
  • Explicit row compoundGroup or compoundName supplies the group. Otherwise a base such as methamidophos is derived only when multiple method row IDs have distinct positive numeric suffixes (methamidophos-1, methamidophos-2) and every sibling has the same explicit q1Mass. Lone suffixes, duplicate suffixes, missing masses and inconsistent precursor masses do not establish a group. These are method-recorded label families, not chemical identifications. Existing explicit native JSON metadata remains supported.
  • Summaries retain experiment-local channel indices. A global group catalog must collect {experiment, index} references across experiments: two recorded transitions in each of 58 experiments are 116 curves, not two channels in the current experiment. An individual-analyte catalog uses the exact recorded componentLabel: methamidophos-1 and methamidophos-2 each select 58 curves, independently of the shared group.

Install and use

Install MSData Viewer from the VS Code Extensions view, or install a downloaded VSIX with code --install-extension msdata-viewer.vsix.

Open a local .msdata or .mzML file. If VS Code opens it with another editor, use Reopen Editor With > MSData Viewer.

The extension requires desktop VS Code 1.100.0 or newer on Windows, Linux, or macOS. The packaged extension includes its WebAssembly parser; no separate parser or Emscripten installation is needed.

Scope and limits

  • The editor is read-only. Conversion to mzML is available through the repository's CLI and language packages, not through this extension.
  • It supports the current binary-node format. Earlier Cereal-serialized .msdata files are not supported.
  • Only local files in desktop VS Code are supported. Remote workspaces, virtual files, and VS Code for the Web are outside this release.
  • Around 100 MiB is the initial performance target, not a file-size cutoff. Larger files are still attempted; opening time and memory use depend on the file.
  • The viewer has no 4,096-entry experiment or channel cutoff. It builds a full summary when opening a file, so files with many entries can take more time and memory.
  • The peak table reports the highest plotted point in the visible range. It does not perform peak integration or report peak area.
  • Long IDs are shown as a shortened preview with their byte length and hash. The packages retain the raw IDs.

For source builds and development, see the repository README and WASM build instructions.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft