Dmitry Avtonomov

Software Engineer

Protein Metrics

profile for Dmitry Avtonomov at Stack Overflow, Q&A for professional and enthusiast programmers

About me

Best way to describe myself would be: a software engineer with a lot of hands on experience in mass-spectrometry (liquid and gas chromatography, ion mobility).

Usual course of action - acquire new data, explore it with visualizations, come up with a suitable processing algorithm. In most cases this results in desktop GUI applications for the viz part and CLI programs to perform batch data processing.

  • Prefer writing code in Java or C#, with occasional forays into C++.
  • Contributing to Open Source projects like Apache NetBeans .
  • Sharing love through Maven Central.
  • Daily drivers: Java, Gradle, Maven, C# (NET Standard 2.0), Git, SQL
  • Occasional usage: R, Python, Nodejs, React, Hugo, Gatsby and much more

Some project links:

  • BatMass (Java, NetBeans Platform) - Mass spectrometry data visualization and processing.
  • MSFTBX (Java, gRPC, JNA) - Java library for unified mass-spec data access: mzML, mzXML, pepXML, protXML, mzId, mzIdentML, etc. Available through Maven Central.
  • FragPipe (Java Swing, JNA) - Pipelined complete LC/MS proteomic analysis with a graphical interface. Peptide/protein search, validation, FDR estimation, quantitation, PTM analysis, spectral library building etc.
  • MSFragger (Java) - Ultra-fast proteomics search engine for Closed and Open searches.
  • IMTBX+Grppr (C#, WinForms, Java) - A suite of tools for extracting signals from Ion Mobility (IM) data (IM-MS, LC-IM-MS) and performing isotopic envelopes detection.
  • DIA-Umpire - Data Independent Acquisition (DIA) data processing tool that doesn't require a spectral library (Java).


  • Algorithms
  • Data Visualization
  • Mass Spectrometry
  • Desktop Applications
  • Instrument Control


  • PhD, Physics and Mathematics, 2012

    Institute for Energy Problems of Chemical Physics

  • MSc, Applied Physics and Mathematics, 2008

    Moscow Institute of Physics and Technology (MIPT)

  • BSc, Applied Physics and Mathematics, 2006

    Moscow Institute of Physics and Technology (MIPT)


LC-MS data visualization and exploration framework. View spectra, extracted ion chromatograms and 2D ion maps of LC-MS experiments. Synchronized viewers. Visualize DIA experiments. Overlay MS/MS events, peptide identifications or custom data (via delimited text files) over a 2D map. 🚀

Visit website Download

Recent Posts

If it feels `git clone` is throttled on Windows...

Symptoms of the problem: internet connection is fast and a torrent download of Ubuntu can go at 10MB/s, but git clone gets ‘stuck’ at 500-600KB/s.

Automatically starting ssh-agent when powershell or git-bash are started

Start ssh-agent once when powershell or git-bash is started. Saves typing the ssh key password every time you interact with a remote repo.

Parallel Producer Consumer Queues

Many programs do some sort of data transform and can be described as read/generate some data, process the data, write the output. It's always beneficial if some steps are performed in parallel. E.g. the reader pre-fetches a few data items so that when the ‘processing’ part of the program is ready for a new chunk of data the data is already there waiting. Ths post provides two quick solutions for java and C#. Java with Project Reactor. C# using TPL Dataflow (Task Parallel Library).

Auto Resize Guest VM Desktop running under VMWare

In VMWare Workstation guest OS desktop doesn't auto-resize to fill host OS window after first reboot. Solution.

Installing ExpressVPN client on Manjaro Linux

How to install expressvpn client on a fresh install of Manjaro / Arch