PeakWright / Guides / The tools compared
The tools compared
Four ways to read Agilent ChemStation data without a licence, and one of them is ours. This page is written to be useful even if you decide against us, because a comparison that always concludes the same thing is not a comparison.
They are not competitors of each other. A library, an application and a viewer solve different problems. The question is not which is best, it is which matches what you are trying to do this afternoon.
At a glance
| Tool | What it is | You install | Best for |
|---|---|---|---|
| OpenChrom | Open source chromatography application | A desktop application, plus import plugins | Integration, batch processing, reporting |
| rainbow | Python library | Python, then pip install rainbow-api |
Scripting over many files |
| chromConverter | R package | R, plus external tools for some formats | Analysis in R, widest format coverage |
| PeakWright | Browser viewer | Nothing | Looking at a run, and sending one to someone |
OpenChrom
OpenChrom is a cross platform open source application for chromatographic and mass spectrometric data. It is by far the most capable thing on this page, because it is a data system rather than a reader: peak detection, integration, batch processing, reporting and a plugin marketplace.
Agilent import happens through converter plugins. Those plugins carry their own terms, and the Agilent DAD import converter has been distributed as a trial after which a free serial key is available on registration, usable commercially and non commercially. Check the current terms on the plugin page rather than taking this page's word for it.
Its own material has described diode array and UV support as experimental. That is an honest
label from a project doing hard work, and it means you should check a .uv result
against something else before relying on it.
Pick this if you need to integrate peaks, process a batch, or replace a data system rather than look at a file. Nothing else here does any of that.
rainbow
rainbow is a Python
library that gives programmatic access to the raw data in chromatography and mass spectrometry
binaries. It reads Agilent .D and .dx directories, covering UV
spectra, chromatography channels and mass spectrometry, and it also reads Waters
.raw. It installs with pip install rainbow-api.
It is also the reference this field has been missing. Its published format descriptions are the source for the documented parts of our own format reference, and we check every number our reader produces against its output.
Pick this if you are working in Python. It is a library, so it hands you arrays rather than a plot, which is exactly right in a pipeline and unhelpful when you just want to see the trace.
chromConverter
chromConverter is an R package that
converts chromatography data from many proprietary formats for reading into R. For Agilent it
lists ChemStation and OpenLab .uv files in versions 131 and 31, and .ch
files in versions 30, 130, 8, 81, 179 and 181, plus OpenLab .dx, acaml
and amx, and MassHunter DAD .sp.
That is the widest ChemStation coverage on this page, and versions 8 and 81 in particular are not handled everywhere. Worth knowing if you are holding an old file that nothing else opens.
The one thing to understand before committing: some formats are handled directly and others go through external tools you install yourself, including Entab which needs Rust, ThermoRawFileParser which needs mono on Linux and macOS, rainbow, and OpenChrom. Check which route your format takes, because it changes the install from one line to an afternoon.
Pick this if your analysis is in R, or if you have an unusual ChemStation version and need the broadest coverage.
PeakWright
Ours, so read this section with that in mind. It is a viewer that runs in a browser tab. It
reads .ch versions 30, 130, 179 and 181 and .uv versions 31 and 131,
draws the chromatogram, and exports CSV, PNG and a single self contained HTML file that opens
by double clicking with no software at all.
Two things it does that the others do not. There is nothing to install, which matters when the machine you are on is not yours to install on. And the file is decoded in your own tab rather than uploaded, which you can verify by watching the network panel stay empty or by turning the network off after the page loads.
Every value it produces is compared against rainbow's published output over eleven real files covering every version it handles. All 1,487,470 values match exactly, with a largest difference of zero rather than a tolerance, and the check runs on every change.
What it does not do. No peak integration, no batch processing, no reporting, no audit trail and no validation package. It is a viewer, so it should not be the record you report a regulated result from. If you need any of that, OpenChrom is the answer and this is not.
It also does not yet read .ms mass spectra, .ch versions 8 and 81,
or a whole .D folder in one drop.
One more worth knowing about
UniChrom is mentioned regularly in forum threads as reading .ch, .uv,
.d and .ms files. We have not tested it, so it is listed here as a
lead rather than a recommendation.
How to choose
| Your situation | Start with |
|---|---|
| I want to see this run, now | A browser viewer. Nothing to install. |
| I have 200 files to process | rainbow, in Python. |
| My analysis is in R | chromConverter. |
| I need peak areas | OpenChrom. |
| Nothing will open my file | chromConverter, for the widest version coverage. |
| I need to send a run to someone with no software | A self contained HTML export. |
| This is a regulated result | None of these. Use a validated data system. |
Before you choose a tool
Two checks are worth doing first, because they change the answer. Find out which file version
you are holding, since coverage differs between tools and an old version narrows the field
quickly. And make sure you are looking at the right file at all: the run is inside the
.D folder, not the folder itself. Both are covered in
opening a .ch file and
what is inside a .D folder.
If a tool has already refused your file, the message it gave you narrows things further. See when a ChemStation file will not open.
The honest summary
If you write Python, use rainbow. If you write R, use chromConverter. If you need a data system, use OpenChrom. What is left over is the case none of them serve well: you want to look at a file, right now, on a machine you cannot install anything on, without sending someone else's data to a server. That is the gap this exists to fill.
Try the viewer
It takes about ten seconds to find out whether it opens your file, which is less time than installing anything on this page.
PeakWright is not affiliated with or endorsed by Agilent Technologies. "ChemStation" and "OpenLab" are their trademarks. OpenChrom, rainbow, chromConverter and UniChrom are the work of their own authors and are described here from their published documentation.