![]() |
OpenMS
|
Glossary:
OpenMS - Name of the project and our C++ library
TOPP - "The OpenMS PiPeline", a collection of chainable tools for flexible HPLC/MS workflows. Formerly known as "The OpenMS Proteomics Pipeline"
TOPPAS - "The OpenMS PiPeline Assistant", a graphical tool to interactively build and run HPLC/MS workflows
TOPPView - Versatile viewer for HPLC/MS data
INI file - parameter configuration file, holding custom parameter settings for TOPP tools
INIFileEditor - graphical parameter editor for INI files
Parameters - list of algorithm or TOPP tool parameters that changed in this release
PR - Pull Request (on GitHub), i.e. integration of a new feature or bugfix
#<number>, e.g. #4957 - a reference to an issue or pull request on GitHub, visit e.g. https://github.com/OpenMS/OpenMS/pull/XXXX (replace XXXX with number of interest) for details
------------------------------------------------------------------------------------------
---- OpenMS 3.6.0 (under development) ----
------------------------------------------------------------------------------------------
General:
- FIX: Normalize source-file paths when converting them to file URIs, including Windows paths with mixed separators (#10275)
- Updated the bundled PSI-MS controlled vocabulary from 4.1.155 to 4.2.2, including CV
term-name changes in mzML/TraML output and vocabulary versions in mzTab-M/mzQC output
(#8691)
- New native readers for Bruker timsTOF .d and Thermo .raw, which FileConverter and many other
tools use, and for imzML (library and pyOpenMS) and Bruker MALDI imaging (library only); no
TOPP tool reads imaging data yet. See OpenMS Library for capabilities and runtime requirements.
- New .idparquet, .featureparquet and .consensusparquet directory formats for native
identification, feature and consensus-map storage, supported across TOPP tools
(#9225, #9232, #9236, #9237, #9241, #9242, #9396, #9405).
- New: modification definition records let a tool register a named, non-vocabulary modification (an
Id, formula and site not shipped in unimod.xml/PSI-MOD/XLMOD) so that files naming it stay readable
by another process. ResidueModification::toDefinitionString()/fromDefinitionString() (de)serialise
one record; ModificationsDB::registerDefinition()/hasDefinedModification() register and query them;
the new ModificationDefinitionIO class collects the definitions a run's identifications, features or
consensus elements reference and attaches them to ProteinIdentification::SearchParameters under the
"modification_definitions" meta value. ResidueModification::Provenance (DEFINED/CV/MASS_ONLY) records
where a modification's description came from. idXML, featureXML, consensusXML and the
.idparquet/.featureparquet/.consensusparquet bundles all carry the definitions their peptidoforms
reference and register them before parsing any sequence; ProForma writes a tool-defined modification
as its chemistry plus an INFO: name (e.g. "[Formula:C9H11N2O8P1|INFO:NuXL:U-H2O]") so a reader
without the definition still gets the right mass, and resolves the name first when it is registered.
OpenNuXL is the first consumer (see OpenNuXL below). BREAKING: an idXML, featureXML or consensusXML
file naming such a modification is a hard load failure ("Cannot convert string to peptide modification")
in an OpenMS build without this support (#10003, #10026, #10028, #10036, #10037, #10038, #10039, #10040)
- Transparent .zip input for the XML formats (except mzIdentML) and Bruker .d directories;
mzML, mzXML, mzData, featureXML, consensusXML, traML and mzIdentML output is compressed
with gzip or bzip2 when the file name ends in .gz or .bz2, in any letter case. TOPP tools
refuse a compressed output name for any other format (#7560, #9139, #9259, #10317).
- BREAKING: OpenMS::String/StringView replaced by std::string/std::string_view;
StringList is std::vector<std::string>. Use OpenMS::StringUtils free functions for
conversion, splitting, trimming and substitution. String, StringConversions and
StringUtilsSimple shim headers were removed (#9450, #9468). "Migrating from
OpenMS::String" in the developer documentation lists the replacement for each member
of String and the changes the compiler does not catch.
- Core modularization reduces dependencies between KERNEL, FORMAT, PROCESSING,
APPLICATIONS and QC. Shared utilities cover spectrum-type estimation, resampling,
alignment defaults, filename recognition, ion-mobility metadata and data-processing
provenance; compatibility entry points remain unless listed below (#10083, #10092,
#10101). Include used types directly instead of relying on transitive headers;
ToolInfo moved to DATASTRUCTURES/ToolInfo.h (#8946, #10083).
- Shared-data lookup uses the compiled-in path, then the executable location, then
OPENMS_DATA_PATH, preventing stale installations from overriding bundled resources.
Missing-file errors identify the resolved directory (#9635, #9636, #9650).
- A TOPP tool may keep its own sources and headers in a subfolder src/topp/<Tool>/ with
a CMakeLists.txt of its own, next to the single-file src/topp/<Tool>.cpp layout. The
class test of a tool-local class builds that class straight from the tool folder, so
moving code out of the library does not cost it its test coverage.
BREAKING (installed headers): OpenNuXL moved to src/topp/OpenNuXL/ and took the whole
NuXL pipeline with it. Nothing outside this tool ever used it, so OpenMS/ANALYSIS/NUXL
is gone: its thirteen headers are no longer installed and its classes are no longer
part of libOpenMS. The five NuXL class tests are unchanged and still run (#10228).
- The TOPP tool registry (which tools exist, and their TOPPAS/CTD category) is generated
at build time from each tool's openms_topp_tool() declaration in
src/topp/executables.cmake, instead of being hard-coded as 154 literal entries in
ToolHandler::getTOPPToolList(). The build writes share/OpenMS/TOOLS/OpenMS.tsv from the
declarations, so a build option that removes a tool (e.g. DISABLE_OPENSWATH) now also
removes it from the registry, and a tool built outside this repository can register
itself by installing its own .tsv next to it, without an OpenMS rebuild. ToolHandler
looks for a registry at the installation's shared-data path, then next to the
executable, then in the build tree if earlier locations contain no registry. It also
reads .tsv files from directories named by OPENMS_TOOL_REGISTRY_PATH or the legacy
OPENMS_TTD_INTERNAL_PATH, and caches the result after the first read.
ToolHandler::getTypes() returns an empty list for a tool the registry does not know
instead of throwing, matching its documented behavior. BREAKING (installed headers):
ToolDescriptionFile, ToolDescriptionHandler and Internal::ToolDescription's
foreign-executable fields (FileMapping, MappingParam, ToolExternalDetails,
external_details, is_internal) are removed; nothing used them once the .ttd XML format
was replaced by the generated TSV (#10216).
- BREAKING: TOPPBase no longer takes a bool official, and neither do SearchEngineBase,
TOPPOpenSwathBase, TOPPMapAlignerBase and TOPPFeatureLinkerBase, which only forwarded
it. A tool is registered by its openms_topp_tool() declaration, the same declaration
that builds it, so every tool that exists is registered and the flag named nothing.
What it did instead was let a tool disown its own registration: OpenNuXL, PeakPickerIM,
FeatureFinderLFQ, ProSE, QCEmbedder and ImageCreator each wrote an empty category into
their CTD while the registry held a real one, so TOPPAS and every other CTD consumer
saw them uncategorised; all six now carry their category. Out-of-tree code deriving
from one of these classes drops the argument; something that is not a registered TOPP
tool at all passes toolhandler_test = false instead, which is now the only way to skip
the registry check (#10228).
- BREAKING (installed headers): Move tool-only helpers without pyOpenMS bindings
into the CometAdapter, DecoyDatabase, INIUpdater, NucleicAcidSearchEngine,
OpenSwathInfer, QualityControl and UniPEFF folders. Their 21 headers are no longer
installed and 20 implementations no longer live in libOpenMS or libOpenMS_CLI.
Class tests travel with the tools; reusable inference tests also remain available
in library-only builds (#10239). Helpers built on a private dependency of libOpenMS
stay in the library even with a single tool as user, so that no tool has to find
that dependency itself: the Arrow/Parquet-based OpenSWATH exporters, OSW Parquet
reader/writer, Percolator scoring, XIPMParquetConsumer and ParquetTableComparator.
OpenSwathExport, OpenSwathPeakMapExtractor, OpenSwathPercolatorScoring,
OpenSwathWorkflow and ParquetDiff link nothing but OpenMS (#10247).
- BREAKING: KNIME plugin support was removed. The ENABLE_PREPARE_KNIME_PACKAGE option
and the prepare_knime_package targets are gone, as are the KNIME user tutorial, the
LaTeX tutorial handout and the .knwf workflow collection under doc/tutorials (still
available in the archived OpenMS/Tutorials repository). CTD generation is unaffected:
-write_ctd and -write_cwl continue to work for Galaxy and CWL (#10135).
- The API documentation no longer generates Graphviz (dot) graphs: include, included-by,
collaboration, directory and graphical class-hierarchy graphs are gone, class
inheritance diagrams use doxygen's built-in renderer, and the few hand-drawn
diagrams are pre-rendered SVGs. This shrinks the HTML documentation by more than half
and makes Graphviz optional; the 'doc_dot' target still builds all graphs. The
OPENMS_HASDOXYGENDOT macro in the installed OpenMS/config.h, which was always 0 and
no longer used, was removed (#10265).
Dependencies:
- Minimum versions: CMake 3.24, Eigen 3.4.0, Boost 1.81, Arrow/Parquet 23 and nanobind
3.1. Arrow/Parquet is required on all platforms; WITH_PARQUET was removed and
versions 24+ are accepted. Compiler minimums are checked before vcpkg runs
(#8366, #8370, #8422, #8679, #8699, #8991, #9042, #9095, #9196, #9221, #10112,
#10133, #10221).
- C++23 is required (#9037). The minimum compilers are GCC 13, Clang 17, AppleClang 16
(Xcode 16) and Visual Studio 2022 17.14; configuring with an older one stops with a
message.
- Zstandard (zstd) is now a required dependency (mzML zstd binary array compression; #9033).
It is found via its CMake config package or as a plain library (e.g. libzstd-dev).
- Qt6 is required only with WITH_GUI=ON. Core/non-GUI code now uses standard C++ and
platform APIs, libcurl for HTTP, boost-process for subprocesses and nlohmann/json.
ZIP support uses libzip instead of minizip-ng. ExecutePipeline, INIUpdater and
ImageCreator require the GUI build (#8808, #8841, #8936, #8937, #8938, #8939,
#8940, #8965, #9041).
- BREAKING: Qt-based public APIs were removed: Date's QDate constructor, QString-based
filesystem parameters and QObject inheritance in ExternalProcess. Qt string interop
and Qt5Port.h were removed; downstream code using Qt must link Qt6::Core explicitly.
- LibSVM, Xerces-C++, SQLite, Eigen, CURL and nlohmann/json no longer leak into the
public dependency interface. Shared-library consumers no longer require CURL/Xerces
development packages; OpenSwathAlgo's Boost headers are private. See OpenMS Library
for XMLHandler/Matrix API migration (#8511, #8547, #8558, #9712, #9737, #10084, #10103).
- Boost is used header-only: OpenMS, its tools and tests no longer link the compiled
Boost.Regex, Boost.Iostreams and Boost.DateTime libraries, of which only header-only
parts were used. Building needs just the Boost headers, and a static Boost works as
well as a shared one. A static Boost used to be linked into the shared libOpenMS,
which could fail at link time: the archives are not always built with -fPIC, and
their own dependencies (zstd, lzma, ICU) had to be installed as development packages.
The BOOST_USE_STATIC option and the Homebrew static-Boost link fixups (#10187) were
removed; passing -DBOOST_USE_STATIC now only triggers CMake's unused-variable
warning (#3319).
- BREAKING (installed headers): two internal headers are no longer installed, and two
public ones no longer pull in a private dependency.
DATASTRUCTURES/MatrixEigen.h (the Eigen::Map views on Matrix) and SYSTEM/SIMDe.h
both already documented themselves as internal -- MatrixEigen.h says not to include
it from public headers, SIMDe.h says to include it from .cpp files only -- and only
libOpenMS sources and class tests include them; they stay where they are in the
source tree, so in-tree builds are unaffected. FORMAT/GzipIfstream.h and
FORMAT/Bzip2Ifstream.h no longer include <zlib.h> and <bzlib.h>: they store the
library handle as an opaque pointer (a forward-declared gzFile_s*, resp. a void*,
which is what bzlib's BZFILE is), so neither header needs the zlib/bzip2 include
directory any more. External code that obtained Eigen, SIMDe, zlib or bzlib
declarations through one of these headers has to include the library itself.
find_package(OpenMS) no longer looks for Eigen at all: CMake omits the PRIVATE
dependencies of a shared library from the exported link interface, and the OpenMS
build always produces shared libraries, so OpenMSTargets.cmake names no Eigen
target and a consumer needs neither the Eigen CMake package nor its headers.
Previously find_package(OpenMS REQUIRED) failed outright when Eigen was absent.
The lookup is kept for a static OpenMS, whose export does carry
$<LINK_ONLY:Eigen3::Eigen>, and runs only for such an installation. Eigen is still
required to build OpenMS and pyOpenMS (#10169).
- The class-test framework (CONCEPT/ClassTest.h, ClassTestUtils.h,
FuzzyStringComparator.h, MacrosTest.h) is no longer installed by default. It is an
in-repo development tool: its static library was already EXCLUDE_FROM_ALL and is not
exported, so an installation carried the headers without anything to link them
against. `cmake --install . --component OpenMSTestFramework_headers` still installs
them explicitly.
- CMake package: find_package(OpenMS CONFIG) provides namespaced imported targets, OpenMS::OpenMS,
OpenMS::OpenSwathAlgo and, via COMPONENTS GUI, OpenMS::OpenMS_GUI together with the Qt6
modules it was built against; the un-namespaced names remain as aliases, while the
bundled third-party libraries exist under the OpenMS:: namespace only. The build options
of an installation are reported as OpenMS_WITH_GUI, OpenMS_WITH_HDF5, OpenMS_WITH_OPENTIMS,
OpenMS_WITH_THERMO_RAW, OpenMS_WITH_OPENMP and OpenMS_BUILD_TOPP_TOOLS instead of the
unprefixed WITH_* variables, which shadowed options of the consuming project, and the
OPENMS_*_DIR variables no longer point into the prefix of a dependency found before them.
The empty OPENMS_ADDCXX_FLAGS variable was dropped, and the Find modules of the OpenMS
build (FindCOIN, FindLIBSVM, ...) are no longer installed next to the package: they served
the package's former lookups of dependencies that are PRIVATE now. Consuming projects need
CMake 3.24: find_package(OpenMS) rejects older versions with an explanatory message
instead of failing later (#10158).
- The source tarball contains vcpkg.json, vcpkg-configuration.json and vcpkg-overlays/, so
it builds with an external vcpkg (OPENMS_USE_VCPKG=ON and its CMAKE_TOOLCHAIN_FILE) as well
as against system packages.
With OPENMS_USE_VCPKG=ON, a missing or non-vcpkg toolchain stops the configure with a
message that names the alternatives (#10327).
- The contrib (OpenMS/contrib) is deprecated and will be removed after 3.6: vcpkg
builds the dependencies (see the vcpkg install guide and the CMake presets). It is no
longer a git submodule; a build that still needs it takes it from a separate clone of
OpenMS/contrib. Configuring with OPENMS_CONTRIB_LIBS, which requires
OPENMS_USE_VCPKG=OFF, prints a deprecation warning (#10327).
- The dev container (.devcontainer/) builds with the vcpkg presets on Ubuntu 24.04 instead of
the contrib image. The Gitpod configuration and tools/quickbuild.sh/quickbuild-osx.sh, which
built contrib, were removed; use cmake --preset <platform>-release instead (#10327).
- Optional readers: WITH_OPENTIMS enables timsTOF support (default ON); opentims_DIR or
opentims_ROOT selects a system installation before downloading. WITH_THERMO_RAW is
ON by default on every supported platform; .NET 8+ is required at runtime (#9147,
#9148, #9389, #9736, #10206).
- WITH_WNETALIGN (default OFF) fetches wnetalign/wnet/pylmcf when enabled. WITH_ONNX
(default OFF) requires an external ONNX Runtime installation (#8992, #9453, #10255).
- HiGHS joins COIN-OR and GLPK as LP backends. LP_SOLVER=AUTO tries COIN-OR, GLPK,
then downloads HiGHS (#9246).
- ENABLE_TDL now defaults to OFF; set it to ON for CWL support (#9067).
- macOS Intel builds discontinued; the minimum macOS version is 15 (Sequoia), for the installer
and for the pyOpenMS wheels (#8450, #9037, #10202).
- vcpkg builds use OpenSSL 3.6.4, and the Linux DEBs and the macOS package bundle it (the 3.5.0 DEBs
bundled 3.0.2). vcpkg.json pins the version because the baseline's 3.6.2 is affected by the
High-severity CVE-2026-45447.
- The SQLite amalgamation vendored with SQLiteCpp is updated from 3.49.2, which
CVE-2025-6965 affects, to 3.53.1, the version vcpkg builds. Builds with
USE_EXTERNAL_SQLITECPP=OFF, the default, compile it into libOpenMS.
- The bundled MaRaCluster is updated from 0.05.0 to 1.04.1 on Linux and Windows x86_64,
and the macOS arm64 packages now include it too. MaRaClusterAdapter now converts the
input files in MaRaCluster's index step, single-threaded, before it clusters them:
1.04.1's Windows build crashes in about one run in ten when it converts several files
in parallel (OpenMS/THIRDPARTY#113, #10259).
PyOpenMS:
- BREAKING: boolean parameters are Python bools (#10116). Reading/writing Params
now uses Python bool for boolean entries; assigning bool to non-boolean
parameters raises TypeError; boolean-ness is preserved through Param updates,
dict conversion, repr and INI round-trips. Param::setDefaults now gives existing
string entries the defaults' valid strings (values unchanged), so a partial Param
cannot override an algorithm's restrictions.
- Fixed keyword defaults that did not match the wrapped C++ signatures. Four bindings
declared a parameter with no default after parameters that had one: the transf
argument of MultipleTesting.lfdr, spectra in both IDMapper.annotate overloads and
plugin_consumer in SwathFile.loadMzML. They are now optional and carry the C++
defaults (LfdrTransform.Probit, an empty MSExperiment and None). This also makes
the generated type stubs valid Python again: _pyopenms_datastructures.pyi and
_pyopenms_misc.pyi did not parse, both failing with "non-default argument follows
default argument" (#10137).
- BREAKING: MultipleTesting.lfdr's gridsize and cut defaults were 100 and 0.05, while
the wrapped C++ signature (and its documentation) use 512 and 3.0, so Python callers
who omitted them silently got different results than C++ callers. The bindings now
use the C++ values (#10137).
- Wheels are now built in nanobind split mode against the CPython 3.11 stable ABI:
each platform ships a single cp311-abi3 wheel that serves Python 3.11 and every
later version, instead of one wheel per interpreter. Adding a new CPython minor
version normally only means adding it to the test matrix. nanobind's
version-specific runtime moves into the separate nanobind-backend package, which
is a new runtime dependency (nanobind-backend>=1.0, deliberately unpinned: newer
backends serve extensions built against older backend ABI revisions).
python_versions.json is now purely the list of versions the wheel is tested on;
the version it is compiled for comes from abi3_minimum_cpython_version in
pyproject.toml, so the two cannot drift apart.
- Wheels now ship the .pyi type stubs and the py.typed marker. The pyopenms_stubs
target was never part of the build, so PYOPENMS_GENERATE_STUBS=ON defined it and
nothing ran it. It is now built with the pyopenms target, requires every extension
module to import before generating anything, and py.typed is written only once the
stubs exist. On Windows the stub generator and the ctest suite are handed the
contrib bin/ directory, where a contrib built with shared libraries keeps its DLLs;
a failed import now names the DLL that could not be resolved (#10141).
- Stub generation uses named free_mem fallbacks on Windows and unsupported
platforms, avoiding invalid <lambda> definitions and re-exports in .pyi files.
Generated stubs are syntax-checked after post-processing, before the build
writes py.typed and its success stamp.
- The type stubs export the aliases PeakMap, PeakSpectrum, Kernel_MassTrace,
TM_DataPoint and MZTrafoModel_MODELTYPE, which mypy rejected with "does not
explicitly export". The nested enums that pyOpenMS also exports at module level,
such as FileType and LogType, now have their types; type checkers saw them as Any.
The package no longer exposes names its own imports left behind: the modules c,
ctypes, importlib and warnings, and the __future__ feature annotations.
- The wheel metadata declares the license as the SPDX expression BSD-3-Clause
(Metadata-Version 2.4) and ships the license text as dist-info/licenses/LICENSE.
Before, dist-info/LICENSE held only the string "BSD-3-Clause".
- The Windows wheel is built against vcpkg's static libraries (triplet
x64-windows-static-md-release) instead of the prebuilt contrib. Every dependency
is linked into OpenMS.dll, so the only native DLLs the wheel bundles besides
OpenMS's own are those of the MSVC runtime; the managed Thermo RawFileReader
assemblies ship as before. Earlier Windows wheels carried an unrelated libcurl
and a second zlib from the CI image. The dependency versions are those the main
CI tests, e.g. Arrow 24, Xerces-C 3.3, bzip2 1.0.8 and libsvm 3.35 (#10327).
- The Linux wheels (x86_64 and aarch64) are built in the stock manylinux_2_34 images
against static vcpkg libraries instead of the contrib. They carry the libraries the
other builds already test, e.g. bzip2 1.0.8 instead of 1.0.5 (CVE-2019-12900),
Xerces-C 3.3.0 instead of 3.2.0 (CVE-2018-1311), libsvm 3.35 and Arrow 24 (#10327).
- The Linux and Windows wheels take SQLiteCpp and SQLite from vcpkg, as the packages do,
instead of the copies OpenMS vendors, which the macOS wheel keeps. All wheels carry
SQLite 3.53.1 instead of 3.49.2 (#10327).
- The custom type casters build their result lists with the checked
PyList_SetItem() instead of the PyList_SET_ITEM() macro, which is unavailable
under the Limited API. Behaviour is unchanged; failures release the partially
built list rather than leaking it.
- Building pyOpenMS in split mode requires CMake 3.26 or newer, for FindPython's
Development.SABIModule component. This applies to pyOpenMS only -- the C++-only
OpenMS build still requires no more than CMake 3.24. Configure with
-DPYOPENMS_SPLIT_MODE=OFF for interpreter-specific modules; that mode refuses to
produce a wheel, which would otherwise be mislabelled abi3.
- BREAKING (source builds): nanobind 3.1 or newer is required; nanobind 2.x no longer
works. The custom type casters follow the nanobind 3 caster protocol, whose
from_python() takes uint32_t instead of uint8_t flags. pyproject.toml asks for
nanobind>=3.1,<4 and py-build-cmake~=0.5.1, and the CMake fallback fetches nanobind
v3.1.0. nanobind discovery enforces that minimum instead of accepting whatever
find_package() returns, and reports the version it selected (#10133, #10221).
- BREAKING: Python 3.10 is no longer supported. Wheels and source builds require
Python 3.11 or newer; the wheel matrix covers 3.11 to 3.14. With 3.10 gone, pandas 3
is the floor for DataFrame support (the dataframes/all extras and the test
requirements ask for pandas>=3), so string columns consistently use the pandas str
dtype and Arrow-backed large_string. The pyarrow 24.0.0/25.0.0 exclusions were
dropped: both only worked around cp310-specific problems (#10119).
- Autowrap/Cython replaced by nanobind, with PEP 561 type stubs, smaller binaries,
faster builds and clearer errors. Fixed mutable-reference output parameters and
restored missing default arguments; Python addons remain supported (#8699).
- BREAKING: pyopenms.String removed; use Python str (string arguments also accept
bytes). MzMLFile.storeBuffer() and MSNumpressCoder.encodeNP() return str directly;
encodeNPRaw() returns bytes (#8602, #8604, #10109).
- BREAKING: output arguments are return values. A method that filled a list or object
passed by the caller now returns it, and the old call raises TypeError. For example:
picked = oms.PeakPickerHiRes().pickExperiment(exp) # was pickExperiment(exp, picked, True)
traces = oms.MassTraceDetection().run(exp) # was run(exp, traces, 0)
trafo = aligner.align(feature_map) # was align(feature_map, trafo)
decomps = decomposer.getDecompositions(262.1) # was getDecompositions(decomps, 262.1)
proteins, peptides = oms.ProtXMLFile().load(path) # was load(path, proteins, peptides)
ok, errors, warnings = oms.MzMLFile().isSemanticallyValid(path)
names = oms.RNaseDB().getAllNames() # was getAllNames(names)
FileHandler.loadFeatures() and the load() of MzTabFile, SqMassFile, DTAFile, DTA2DFile,
EDTAFile, KroenikFile, ChromeleonFile and MRMFeatureQCFile changed the same way, 108 call
forms in all; the type stubs show the new form of each. MzMLFile, FeatureXMLFile,
ConsensusXMLFile and FileHandler.loadExperiment still fill their argument, and
IdXMLFile.load accepts both forms (#8699). PeptideIndexing.run(),
PosteriorErrorProbabilityModel.fit() and initPlots(), IDFilter.updateProteinGroups() and
AbsoluteQuantitation.optimizeCalibrationCurveIterative() keep their 3.5 arguments but
return a tuple, their 3.5 result followed by the updated lists. A check such as
`if model.fit(...)` is therefore always true; unpack the tuple instead (#10260).
- BREAKING: strings inside returned containers are str instead of bytes: list and set
elements, dict keys (EmpiricalFormula("H2O").getElementalComposition() is now
{'H': 2, 'O': 1}), Param keys and tags, list-valued string meta values and string data
arrays, as well as the few methods that returned bytes. Methods that return a single
String already returned str. Drop .decode() calls and b"..." keys and comparisons.
- BREAKING: C++ char arguments take a one-character str and reject bytes, the only type
3.5 accepted: PeptideEvidence.setAABefore("K"), not setAABefore(b"K"). This affects
PeptideEvidence.setAABefore() and setAAAfter(), ResidueModification.setOrigin(),
Ribonucleotide.setOrigin() and its constructor, GaussTraceFitter.getGnuplotFormula(),
the separator of CsvFile.load() and AAIndex, whose methods are now static and which
has no constructor: AAIndex.aliphatic("A") instead of AAIndex().aliphatic(b"A")
(#10260).
- BREAKING: LogConfigHandler has no constructor any more. Use
oms.LogConfigHandler.getInstance().setLogLevel("ERROR") instead of
oms.LogConfigHandler().setLogLevel("ERROR").
- BREAKING: CrossLinksDB, ElementDB, ModificationsDB, ProteaseDB, ResidueDB, RibonucleotideDB
and RNaseDB are callable singletons. ModificationsDB() and ModificationsDB.getInstance()
return the one shared instance, but the names are no longer classes:
isinstance(x, oms.ModificationsDB) is False, even for that instance. To check the type,
use isinstance(x, type(oms.ModificationsDB.getInstance())).
- BREAKING: classes removed from pyOpenMS. PeptideSearchEngineFIAlgorithm is now
ProSEAlgorithm, after the C++ rename; its exit codes are
ProSEAlgorithm.ProSEAlgorithm_ExitCodes (#9137). OPXL_PreprocessedPairSpectra is
PreprocessedPairSpectra. DPosition1 and DPosition2 are a float and an (x, y) tuple.
ArrayWrapperDouble and ArrayWrapperFloat are not needed any more, because peak data comes
back as NumPy arrays. ProteinInference was deleted (#9482); PeptideAndProteinQuant covers
protein quantification. KDTreeFeatureMaps, KDTreeFeatureNode and PeakIndex were dropped
because they handed out references that could outlive their data; use
FeatureGroupingAlgorithmKD, and fm[i] or exp[s][p] (#9803). IdentificationRuns,
Internal_MzMLValidator, IsotopePattern, Seed, TheoreticalIsotopePattern, TraceInfo and
OSWFile are no longer bound; use IDRipper.rip(), MzMLFile.isSemanticallyValid() and
CoarseIsotopePatternGenerator.
- BREAKING: MassTrace is now the kernel mass trace (getCentroidMZ(), getSize(), ...), and
Kernel_MassTrace is an alias for it. 3.5.0's MassTrace was the FeatureFinder helper
struct with max_rt and theoretical_int, which is gone.
- BREAKING: CVTerm_ControlledVocabulary, the term class of ControlledVocabulary, is now
ControlledVocabulary.CVTerm, and XRefType_CVTerm_ControlledVocabulary is now
ControlledVocabulary.CVTerm.XRefType. A term prints as
CVTerm(id='MS:1002252', name='Comet:xcorr') (#10284).
- BREAKING: some nested enums were renamed. IonDetector.Type_IonDetector is now
IonDetector.Type, FeatureDeconvolution.CHARGEMODE_FD and
MetaboliteFeatureDeconvolution.CHARGEMODE_MFD are now CHARGEMODE, and
OpenPepXLAlgorithm.OpenPepXLAlgorithm_ExitCodes,
PeptideIndexing.PeptideIndexing_ExitCodes and
PercolatorOutfile.PercolatorOutfile_ScoreType are now ExitCodes and ScoreType.
getMapping() is now called on a member, e.g.
IonSource.IonizationMethod.ESI.getMapping(), not on an instance of the enum class such
as IonSource.IonizationMethod(). Thirty-two enums are no longer ints: int() raises
TypeError, and == with a number is False without an error, so spec.getType() == 1 is
now False for a centroided spectrum. Compare with a member such as
SpectrumSettings.SpectrumType.CENTROID, or use .value. The 32 are AnnotationState,
ChecksumType, DecoyTransitionType, DimensionDescription,
IMFormat, MT_QUANTMETHOD, MZTrafoModel_MODELTYPE, DataFilters.FilterOperation,
DataFilters.FilterType, DataProcessing.ProcessingAction,
FeatureOverlapFilter.MergeIntensityMode, Instrument.IonOpticsType,
InstrumentSettings.ScanMode, IonDetector.AcquisitionMode, IonDetector.Type,
IonSource.InletType, IonSource.IonizationMethod, IonSource.Polarity,
IsotopeModel.Averagines, the six MassAnalyzer enums,
NonNegativeLeastSquaresSolver.RETURN_STATUS, Precursor.ActivationMethod,
ProteinIdentification.PeakMassType, RetentionTime.RTType, RetentionTime.RTUnit,
Sample.SampleState and SpectrumSettings.SpectrumType. Setters such as
IonSource.setIonizationMethod() still accept an int (#8405, #8604).
- The names List, Union, np, numpy, print_function and common_meta_value_types, which
3.5.0 leaked from its implementation, and the streampos class are no longer exported.
- Getters and ordinary element access return owned copies, restoring 3.5 semantics
after the initial nanobind port. Modify and assign back, e.g.
s = exp.getSpectrum(0); s.setRT(1.0); exp[0] = s
Explicit live access uses spectrum_view(i), spectrum_views(), iter_spectrum_views()
and corresponding accessors on feature/consensus maps, identification lists,
transition groups and data arrays. Views keep parents alive; resizing/reordering
invalidates them. See src/pyOpenMS/OWNERSHIP.md for rules and exceptions
(#9792, #9794).
- BREAKING: metadata enums are strongly typed; activation-method enum handling changed
(#8405, #8604). LPWrapper, SolverParam and nested enums are no longer exposed; use
high-level algorithms such as MRMFeatureSelector or FeatureDecharger (#9983).
- DataFrame methods get_df()/get_df_columns() become to_df()/df_columns(); _mv methods use _view
(e.g. get_data_mv() -> data_view()). Deprecated aliases remain (#8655, #8857).
- Expanded DataFrame, Arrow/Parquet and zero-copy pyarrow support for spectra,
chromatograms, mobilograms, experiments, feature/consensus maps, identification lists
and transition groups. Added column discovery, container operations, hashing and
snake_case scalar properties alongside existing getters/setters. Param supports dict
construction and readable values, descriptions, restrictions and tags in str/repr
(#8436, #8501, #8503, #8510, #8520, #8576, #8631, #8632, #8655, #8729, #9760, #10097).
- DataFrame exports preserve long strings and use nulls for missing strings instead of
'None', 'nan' or 'unknown'. Transition-group metadata handles str/bytes names equally;
missing integer values produce float columns with NaN instead of errors (#8583).
- New/expanded bindings include ProForma, USI, PEFF, XIC/XIM Parquet, BrukerTimsFile,
FileInfo, IsoelectricPoint, FAIMSHelper, SpectrumNativeIDParser, FileHandler I/O,
rasterize2D, quantification results, rank aggregation, chemistry/spectrum generation,
RANSAC seeding, ppm helpers and DRange1 (#8504, #8525, #8543, #8637, #8648, #8684,
#8690, #8737, #8738, #8739, #8762, #8894, #8907, #9275, #9379, #9407, #9412,
#9415, #9419, #9602).
- SpectrumAccessOpenMSCached is available and selected automatically for cached-data
experiments. SystemSettings, TempDir and TempFiles are exposed; existing Python
File settings/temp-file methods remain available (#9952, #10083).
- Ion mobility: explicit-unit setters for per-peak arrays, drift-time/unit getters and
zero-copy peaks_struct() for chromatograms/mobilograms. Fixed unit detection and
preservation of live NumPy buffers on same-length drift-array replacement
(#8423, #8825, #8842, #9792).
- Fixed iterator/consumer lifetimes, borrowed-pointer ownership, out-of-range access,
copy-constructor dispatch, AASequence string conversion and peak-buffer dtype
offsets. set_peaks() keeps parallel data arrays consistent; enum/FileTypes and
identification-file wrappers were completed or corrected (#8502, #8553, #8589,
#8720, #9098, #9705, #9792, #9794, #9795).
- Fixed SimpleSearchEngineAlgorithm.search(), which ran the search and then raised
std::bad_cast because its ExitCodes enum was not registered. It returns
(exit_code, protein_ids) and fills pep_ids; the codes are
SimpleSearchEngineAlgorithm.ExitCodes (#10260).
- Copying works again for the classes that supported it in 3.5.0. Sixty-one classes,
most of them derived from DefaultParamHandler, ProgressLogger, CVTermList or CsvFile,
either had no __copy__ or inherited their base's, so copy.copy() and copy.deepcopy()
failed or returned the base class: a DefaultParamHandler for PeakPickerHiRes, for
example. FeatureDistance, MultiplexResolverAlgorithm and SwathMapMassCorrection, which
returned a DefaultParamHandler too, get their own __copy__ and __deepcopy__ as well.
The copy constructor X(other) is back on 136 classes that had it in 3.5.0,
and new on four more. It stays gone from six: FeatureFindingMetabo and
OpenSwathOSWWriter have no C++ copy constructor any more, and MSDataSqlConsumer,
CachedSwathFileConsumer, MzMLSwathFileConsumer and PeakWidthEstimator delete objects
that their C++ copy shares, so a copy and its original freed them twice
(MSDataSqlConsumer(other) aborted Python in 3.5.0). copy.copy() and copy.deepcopy()
raise TypeError for FeatureFindingMetabo and these four (#10260).
- ControlledVocabulary.getTerm() and getTermByName() return a ControlledVocabulary.CVTerm
again, as in 3.5.0, instead of a dict with id, name and description. With the dict,
PeptideIdentificationList.to_df() and df_columns() kept PSI-MS accessions such as
MS:1002252 as column names, although decode_ontology=True asks for the term names
(#10284).
- Restored C++ default arguments that the port had dropped, e.g. Residue.getMonoWeight(),
getAverageWeight() and getFormula() without a residue type, MSDataCachedConsumer(filename),
MetaInfo.getValue(name), FineIsotopePatternGenerator(threshold),
ModificationDefinition(mod, fixed), TextFile(filename, trim_lines, first_n),
IDFilter.removeDuplicatePeptideHits(peptides) and
IDConflictResolverAlgorithm.resolve(features) (#10260).
- Methods that update a list argument in C++ update a Python list passed there again, as
in 3.5, besides returning the updated list, so both f(prots, peps) and
prots = f(prots, peps) work. Without this, 3.5 code ran but its list silently stayed
unchanged. Among them are IDFilter.removeUnreferencedProteins(),
FalseDiscoveryRate.apply() and applyEstimated(), BasicProteinInferenceAlgorithm.run(),
BayesianProteinInferenceAlgorithm.inferPosteriorProbabilities(),
PeptideProteinResolution.run(), the PercolatorFeatureSetHelper feature methods and
TransformationModel*.weightData(); pyopenms/addons/inout_lists.py lists all of them.
Tuples and other sequences are not updated (#10260).
- Restored calls that 3.5 had: MapAlignmentAlgorithmIdentification.align() aligns
several maps, returning one TransformationDescription per map or, in the 3.5 form
align(maps, transformations, reference_index), filling the list passed in, and
setReference() takes a PeptideIdentificationList; IDFilter.filterHitsByScore() takes
a list of ProteinIdentification; IDFilter.updateProteinReferences() is a deprecated
alias of removeDanglingProteinReferences(). OPXLHelper.computeDeltaScores() takes the
identifications to score (it took no argument), and the OPXLHelper methods update a
PeptideIdentificationList in place again instead of a copy. TransitionTSVFile and
TransitionPQPFile accept bytes file names, like the other file classes (#10260).
- plot_spectrum() and mirror_plot_spectrum() plot annotated spectra again. They called
.decode() on the peak annotations, which the bindings now return as str (#10260).
- The deprecated MSExperiment.get_df() and get_df_columns() accept long= again, 3.5.0's
name for long_format (#10260).
- FeatureMap.to_peptide_df() and peptide_df_columns() export the PeptideIdentifications
assigned to features, one row per identification, with the feature_id of each. Merge the
frame with FeatureMap.to_df() on feature_id (#10260).
- BREAKING: FeatureMap.get_assigned_peptide_identifications() returns the identifications
unchanged. 3.5.0 added feature_id, ID_native_id and ID_filename as meta values to every
peptide hit, to merge on all three. Merge FeatureMap.to_df() with to_peptide_df() on
feature_id instead (#10260).
- BREAKING: FeatureMap.to_df() indexes features by feature_id as an unsigned 64-bit
integer, where 3.5.0's get_df() used text; the deprecated get_df() returns it as a
column (#10260).
- Thermo .raw reading is included in every wheel, Linux aarch64 among them; install
.NET 8+ and set DOTNET_ROOT for non-standard locations. Optional WNet/Bruker bindings
are exposed only when built; use hasattr() for feature detection (#9946, #9957,
#10070, #10205, #10206).
- See src/pyOpenMS/THREAD_SAFETY.md for concurrency rules and OpenMP oversubscription
guidance; releasing the GIL does not guarantee thread safety (#9792, #9857).
- BREAKING: IMSWeights, NoiseEstimator, Ratio, SpectrumAccessQuadMZTransforming and
SplineSpectrum_Navigator are no longer bound. The methods that take or return them are
still exposed but cannot be used: RealMassDecomposer(weights),
SignalToNoiseEstimatorMedianRapid.estimateNoise(), ConsensusFeature.addRatio(),
setRatios() and getRatios(), and SplineInterpolatedPeaks.getNavigator().
- User guide: new pages on ProForma, USI and mzPAF, on glycans and glycopeptide fragment
spectra, and on threads and parallel processing; new sections on PEFF files, FAIMS
data, file summaries with FileInfo and the type stubs. Corrected the PEFFFile docstring
(load() returns a tuple) and four PEFFEntry method docstrings that carried the
description of their neighbour; the docstring examples of ProForma,
IdentifierMSRunMapper and PEFFFile now render as code blocks.
TOPP tools:
Changes:
All tools:
- Boolean parameters accept flag syntax or explicit true/false, including overriding
an INI-enabled flag with '-flag false' (#10116).
- A JSON INI ('-ini x.json') reads input file lists in every shape they occur in. A CWL
runner emits a 'File[]' input as an array of File objects, which was rejected with a
json type error, so every tool with an input file list failed through its generated
CWL description once the list was set. Input and output file lists also accept an
array of path strings or an object with a 'path' array; a single file parameter takes
a path string or an object with a 'path' string (#10121).
- BREAKING: the advanced option '-instance <n>' was removed. It selected the numbered
'ToolName:<n>:' section of an INI file and was broken together with '-ini' (every tool
exited with ILLEGAL_PARAMETERS). Tools always read and write the 'ToolName:1:' section
used by all existing INI/CTD/TOPPAS files; the file format is unchanged. INIUpdater lost
its '-instance' option accordingly (fixes #10125).
- BREAKING: repeated command-line parameters use the LAST occurrence, with a warning;
appended workflow arguments can override earlier values (#8670, fixes #5345).
- An output file name ending in .gz, .bz2 or .zip is refused with an error unless the
format is written that way: mzML, mzXML, mzData, featureXML, consensusXML, traML,
mzIdentML and xquest.xml are compressed with gzip or bzip2 (the suffix in any letter
case), and an .oswpq bundle is a ZIP archive anyway. Before, idXML, trafoXML, pepXML,
MGF, text formats and every .zip name silently got uncompressed data under the compressed
name, and so did mzML that a tool streams to disk: FileConverter -process_lowmemory, the
lowmemory processOption of PeakPickerHiRes and NoiseFilterGaussian/SGolay, PeakPickerIM
on mzML input and OpenSwathWorkflow -out_chrom. The check covers output file lists too,
and replaces UniPEFF's own check for PEFF (#10317).
- Native Parquet I/O is supported by identification converters/filters/search adapters,
alignment and feature-linking tools; TextExporter and MzTabExporter read all three
native formats. Output follows input format where applicable (#9232, #9236, #9237,
#9241, #9396, #9405).
- Thermo .raw input: FileConverter, ProSE, SimpleSearchEngine, CometAdapter, SageAdapter,
ProteomicsLFQ and OpenSwathWorkflow. Bruker .d input: FileConverter, CometAdapter,
ProteomicsLFQ, OpenSwathWorkflow and PeakPickerIM (#8975, #9019, #9022, #9030,
#9126, #9418).
- Adapters find the search engines that ship with OpenMS. When an engine such as Comet or
Sage is not on the PATH, they look for it in share/OpenMS/THIRDPARTY, which the Linux and
macOS packages do not put on the PATH; without '-<engine>_executable' they stopped with
exit code 14 there (#10304).
- Tools that read Thermo .raw get the spectra centroided by Thermo's peak picking, as
FileConverter writes them by default. For profile spectra, convert with FileConverter
-RawToMzML:no_peak_picking first; in C++ and pyOpenMS, ThermoRawFile keeps the scans as
acquired unless its centroid option is set (#10303).
- On Linux and macOS, FileConverter reads Thermo .raw in-process by default
(-RawToMzML:reader inprocess): the packages there provide neither mono nor
ThermoRawFileParser on the PATH, which the external reader needs. The in-process reader
needs a .NET 8 runtime (with DOTNET_ROOT set if it is not in the standard location, e.g.
installed with Homebrew or into ~/.dotnet) and applies vendor peak picking unless
-RawToMzML:no_peak_picking, as ThermoRawFileParser did. Pipelines that set
-RawToMzML:ThermoRaw_executable must pass
'-RawToMzML:reader external' too; FileConverter warns when that option or
-RawToMzML:NET_executable is set but the in-process reader runs. Windows keeps the
external reader, which runs on the built-in .NET Framework.
- For per-peak IM input, PeakPickerHiRes warns and uses intensity-weighted mean IM;
Resampler, FeatureFinderCentroided, FeatureFinderMultiplex and MultiplexResolver
reject incompatible data (#9018).
ConsensusID:
- Accept empty idXML searches while preserving their run metadata; initialize
per-spectrum search settings even for MS files without peptide IDs. Handle maps
without identification runs and report invalid input combinations cleanly (#1427).
QPX export (ProteomicsLFQ, IsobaricWorkflow, ProteinQuantifier, ProSE):
- BREAKING: -out_feature_qpx replaced by -out_qpx, a directory containing QPX 1.1
quantms.psm.parquet, quantms.feature.parquet and quantms.pg.parquet views.
ProSE also writes per-input PSM/PG files and omits PG output when no groups were
inferred (#8973, #8974, #9146).
- Views use long format, bare run-file stems, scalar label/intensity columns and
grouped_runs matching experimental-design fraction groups. Required identity columns
(psm_id/feature_id/pg_id) follow the QPX reference algorithm; PSM/feature links are
bidirectional and protein-group identity uses full group membership (#9816, #9818,
#9825, #9843, #9864).
- Exports validate required values, identities, channel labels, run references and
experimental design; failed exports leave no partial collection. Batched streaming
substantially reduces memory use and supports deterministic parallel row generation
(n_threads: 1=serial, 0=auto, N=fixed) (#9692, #9697, #9698, #9699, #9817,
#9832, #9834, #9835, #9843).
ProteinQuantifier / PeptideAndProteinQuant:
- BREAKING: quantities are reported per assay (fraction_group, label), replacing sample
aggregation. CSV columns use abundance_fgroup<F>_label<L>; total_abundances,
peptide_abundances and indistinguishable_proteins_<N>_abundances were removed in
favor of fraction_group_abundances/peptide_fraction_group_abundances. MSstats and
QPX PG values already used run/assay data (#9864, #9869).
- New fractions:aggregate selects sum (unchanged default) or best (one fraction per
peptide and fraction group) (#9876).
- BREAKING: best_charge_and_fraction renamed to best_charge without an alias. It selects
one charge per modified peptide globally by assay coverage, then abundance, then
lower charge, retaining all observations of that charge (#9796, #9864).
- BREAKING: -ratios/-ratiosSILAC and their CSV columns removed; calculate contrasts from
abundance columns downstream, e.g. in MSstats (#9853).
- Fixed zero/undetected reporters biasing peptide selection and protein abundance,
merged-run PSMs assigned to the wrong file, and missing/misaligned fraction columns
in detailed peptide output. Removed quadratic quantification hotspots in large
isobaric experiments (#5518, #9658, #9672, #9683, #9796).
MzTabExporter:
- BREAKING: an assay is now a (fraction_group, label) unit covering all of that group's fractions,
and study_variable lists a sample's assays as its replicates. n_assays was previously
ExperimentalDesign::getNumberOfSamples(), so a sample measured in several fraction groups
collapsed onto a single assay and the replicate axis had nowhere to live -- the opposite of the
mzTab spec, which defines an assay as one measurement and study_variable as the grouping level
above it. Assay abundances are read from PeptideAndProteinQuant's fraction_group_level_abundance
array matched by (fraction_group, label) key rather than by position. Malformed arrays, keys
that are not 1-based and duplicated keys warn and fall back to the previous sample-grain value
instead of emitting a wrong number; an assay whose key the array lacks gets a null abundance,
without a warning. A sample split across several assays reports each assay's own value with a null
study_variable abundance, since no across-replicate aggregator has been agreed on, rather than
silently picking one of them. This also fixes peptide_abundance_assay[i] being assigned rather
than summed -- only ill-defined before, when an assay was forced 1:1 with a study variable, and
now a genuine sum over the ms_runs an assay spans. One shipped reference moves,
ProteomicsLFQ_1_subset_out.mzTab, whose design splits one sample's fractions across two fraction
groups; every other shipped mzTab reference has exactly one (fraction_group, label) per sample
and is byte-identical (#9868, part of #9864)
ProSE:
- BREAKING: renamed from PeptideDataBaseSearchFI. -out replaced by -out_idxml
(one per input), -out_qpx and -out_parquet (native tables); directory outputs require
unique input basenames (#9137, #9146).
- BREAKING: precursor:mass_tolerance and precursor:open_window_lower/_upper replaced
by non-negative precursor:mass_tolerance_lower/_upper, applied as [-lower, +upper].
Calibration preserves signed bias and rejects implausible estimates. Open search
is detected above 1000 ppm or 1 Da (#9108, #9132).
- Changed defaults: precursor tolerance 20 -> 10 ppm per side, fragment tolerance
10 -> 20 ppm, isotope errors [-1, +1] -> [0, +2], and fragment:min_ion_index=2
(skips b1/b2/y1/y2). Widen the precursor window or enable calibration for larger
drift (#9088, #9188, #9634).
- Multi-file searches reuse one fragment index. Added semi-/non-specific search,
opt-in SNES indexing, open-search modification discovery, FASTA chunking and
modification-analysis output. Automatic calibration uses a parallel first pass
and empirical tolerance quantiles (#8414, #9109, #9112, #9122, #9177, #9185,
#9191, #9224, #9639).
- Search:decoys supports auto/generate/ignore (default auto), recognizing prefix and
suffix decoys. PSM and optional picked-protein FDR run after rescoring when enabled;
protein FDR uses the complete protein set across files (#9123, #9195, #9633,
#9634, #9644).
- Standalone -out_pin no longer requires Percolator. Expanded rescoring features include
isotope error, delta score, matched ion current, candidate-pool statistics and
complementary-ion evidence. BREAKING: matched_b_ions/matched_y_ions renamed to
matched_prefix_ions/matched_suffix_ions; scoring now counts all enabled ion series.
Fixed isotope-aware precursor errors, fragment-error tolerances and adapter lookup
(#9166, #9167, #9175, #9177, #9188, #9195, #9204, #9970).
- Added PSM annotations, search diagnostics and an end-of-run report with optional
-summary_out. Optimized indexing, modification enumeration, scoring and annotation;
fragment sorting honors -threads/OMP_NUM_THREADS. Failed merged writes preserve
per-file output; target/decoy-shared peptides no longer break merged idXML
(#9088, #9094, #9117, #9121, #9197, #9203, #9205, #9642, #9963, #10129).
- Stop codons ('*') in the database no longer abort ProSE or SimpleSearchEngine. A trailing
stop codon, as in genome-translated databases such as SGD's, is removed so the C-terminal
peptide is searched; peptides containing a stop codon or another symbol are skipped like
X/B/Z (#10262).
- Spectra activated by electrons (ETD, ECD, EThcD or ETciD, as recorded in the input file)
are also searched with c and z+1 (z-dot) ions, their main fragments; other spectra, also
in the same run, are not affected. Switch this off with ions:by_activation. The new
ions:add_zp1_ions adds z+1 ions for all spectra; ions:add_z_ions generates z ions
(y - NH3), which miss them. Calibration now scores with the configured ion series instead
of always b/y.
PercolatorAdapter:
- Defaults to in-process Percolator 3.08 rescoring; no executable is required for
idXML/mzid/idparquet PSM-level FDR. OSW input, peptide/protein-level FDR, -doc and
-init_weights run the percolator executable automatically, which is then required
(#9218, #10020). So do the options only the executable implements (-out_pout_*,
-weights, -quick_validation, -static, -test_each_iteration, -override), which the
in-process backend ignored; it now writes the -out_pin file itself, and uses three
threads for -threads 0 instead of one.
- Both backends preserve input CalcMass and apply -score:fdr/-best_per_spectrum_only
consistently. Fixed in-process memory leaks and Debug-build Normalizer assertions
(#9240, #9257, #9997, #10012, #10049, #10057).
ProteomicsLFQ:
- BREAKING: automatic per-fraction normalization removed; output selection no longer
changes intensities. Normalize explicitly with ConsensusMapNormalizer on -out_cxml,
ProteinQuantification:consensus:normalize or downstream software (#9864, #9880).
- New -feat_dir checkpoints support resume, distributed -detect_only runs and final
combination without raw/ID inputs. Requires explicit -design and -fasta; excludes
spectral_counting. Reuse checks parameters, build, design and input size/mtime;
-force_recompute refreshes affected runs. -in/-ids are required only for runs
without reusable checkpoints (#9989).
- Added PIP-ECHO FDR-controlled match-between-runs with IM-aware matching, local adaptive
RT windows (disable via -PipEcho:local_rt:enabled false), corrected mass-error/RT
scoring and isotope-envelope evidence. PipEcho:max_training_points defaults to
50000 per fold; 0 disables the training cap (#9647, #9669, #9674, #9676, #9680).
- Bruker .d feature seeding via Biosaur2 and Seeding:algorithm; advanced
PeptideQuantification:seed_apex_rt_tolerance defaults to 5 s. tree_guided alignment
is available again; star remains the default (#8752, #9030, #9102).
- Linking RT tolerance uses the median FWHM across runs of a fraction, independent of
file order; unmeasurable widths fall back to 30 s. Inconsistent decoy affixes are
reported. Quantification-score SVM training is reproducibly shuffled before capping
(#9981, #9982, #9985).
- Fixed CalcMass preservation, mzTab export of non-string search settings and Biosaur2
FAIMS processing that lost spectra/chromatograms/settings and crashed downstream
feature finding (#9666, #9980, #9996, #9998, #10012).
ProteomicsLFQ and IsobaricWorkflow:
- Duplicate identifications of one (spectrum, peptidoform, charge) are reduced to the
best-scoring hit, avoiding duplicate FDR observations, reporter intensities and QPX
IDs; distinct peptidoforms are retained (#9871).
- Any supported result output can be requested alone; at least one is required (#9866).
- Fixed strictly_unique_peptides quantification; proteins with retained evidence are
represented as singleton groups. IsobaricWorkflow requires peptide uniqueness
annotations in its input (#9979).
IsobaricWorkflow:
- Added TMT 32-/35-plex (identity isotope-correction matrix until calibrated values are
supplied) and optional -count_sps_matches, recording sps_matched_ions and
sps_precursor_count (#4792, #9003, #9706).
- Fixed multi-file mzTab export, MS2 scans without MS3 or preceding MS1, and placeholder
features for unquantifiable IDs. Real all-zero reporter features are retained;
consensus column headers preserve fraction/sample design information
(#8519, #8592, #9817, #9824, #9836).
OpenNuXL:
- Localized adducts use named modifications with empirical formulas, including combined
definitions on already modified residues. idXML, featureXML, consensusXML and the parquet
bundles carry the definitions for reload; unlocalized hits retain CalcMass. BREAKING: older
releases without modification-definition support cannot load these files (#9992, #10003).
- Corrected RNA/DNA UV, DEB, NM and FA preset formulas, ion-series-specific localization
and shifted-immonium charge annotations (#8766, #9961, #10031).
PSMFeatureExtractor:
- Added numeric andes:* rescoring features (#9643).
- BREAKING: removed multi-search-engine mode; -in takes one file. Removed
-multiple_search_engines, -concat, -skip_db_check, -impute and -limit_imputation.
Use ConsensusID to combine search-engine results. PercolatorFeatureSetHelper's
concatMULTISEPeptideIds, mergeMULTISEPeptideIds, addMULTISEFeatures and
addCONCATSEFeatures were also removed from C++/Python.
MapAlignerIdentification, MapAlignerPoseClustering, MapAlignerTreeGuided:
- BREAKING: MapAlignerIdentification without a reference aligns to the input that shares the
most identified sequences with every other input, so that each input can be aligned to it;
ProteomicsLFQ ('star' alignment) and MS1LabeledWorkflow, whose docs already described a
single reference run, change with it. The per-peptide RT consensus over all inputs used
before left part of larger RT shifts uncorrected, because every input contributed to the
consensus it was aligned to. It remains available as 'algorithm:auto_reference consensus',
and is used when no input shares at least two sequences with every other input. If the
chosen input leaves other inputs with fewer alignment points than
'algorithm:auto_reference_min_points' (default 11, the smallest number of points to which
ProteomicsLFQ and MS1LabeledWorkflow fit an RT model), the other inputs and the consensus
are tried as the reference as well, and the one that gives the most inputs that many points
is used (fixes #2541).
- Optional -in_spectra_files/-out_spectra_files transform mzML alongside maps (#8536).
- Fixed tree-guided transformation/residual estimates and reference-state leakage
across repeated identification alignment calls. Pose clustering uses identity
transforms for unalignable files and reports parallel I/O failures cleanly (#7010).
OpenSwathWorkflow:
- Automatic in-memory wave scheduling with batchSize=0; innerBatchSize,
maxConcurrentSwaths and outer_loop_threads allow tuning. OSW buffering adapts to
available memory. Added SRM support, priority iRT sampling and Parquet chromatograms
(#8373, #8569, #8700, #8737, #9190).
- Precursor/transition IDs are consistent across outputs. PQP/OSWPQ retains stored IDs;
TraML/TSV is renumbered with original IDs retained as provenance (#9888).
- Fixed RUN.ID storage/joins, run-ID mismatches, empty compound/gene handling,
single-transition scoring, mass-error denominators and calibration-option conflicts
(#8688, #8790, #8830, #8831, #8833, #8869, #9190, #10050, #10055).
Peak pickers:
- PeakPickerIM adds Sage IM centroiding via bruker:ms1_centroid_mz_ppm and
bruker:ms1_centroid_im_pct, plus hill centroiding (-algorithm hill). Fixed shuffled
IM axes in trace picking, which produced incoherent/split peaks (#9022, #9380, #10051).
- PeakPickerHiRes allows peak cores without leading flank peaks (#8649).
- PeakPickerChromatogram: report_sn adds per-peak apex S/N in an SN array
(default false; unavailable estimates are -1.0) (#9780).
Feature finding and linking:
- BREAKING: FeatureFinderIdentification removes -id_ext, svm:*, SVM FDR estimation,
extract:rt_quantile and FFIDAlgoExternalIDHandler. run() now takes
(peptides, proteins, features, seeds, spectra_file); external/implied/unknown
feature categories and rt_delta/predicted_class/FDR_probabilities annotations are
no longer produced (#9995, #10011).
- BREAKING: FeatureLinkerUnlabeled/UnlabeledQT/UnlabeledKD/WNet remove -design. Link
fractions separately and combine with FileMerger -append_method append_cols, or
use ProteomicsLFQ for fractionated LFQ (#10043).
- BREAKING: FeatureFinderMultiplex/MultiplexResolver rename missed_cleavages to
max_nr_labelled_aas (#8911).
- FeatureFindingMetabo/MetaboliteFeatureDeconvolution add opt-in RT-overlap reference
options for short isotope/adduct traces; FeatureFindingMetabo adds local_im_range
for ion mobility (#4483, #8758, #9711).
- FeatureFinderMetaboIdent accepts an optional Adduct TSV column, including multimers
(#9382). FeatureFinderCentroided uses about 20% less RAM (#9159).
- Fixed swapped mass-trace/isotopic-pattern tolerances in FeatureFinderAlgorithmPicked
and charge-merging crashes in FeatureLinkerUnlabeledKD (#8944, #9247, #9250).
MultiplexResolver, MS1LabeledWorkflow:
- BREAKING: `algorithm:mz_tolerance` and `algorithm:rt_tolerance` (re-exported by
MS1LabeledWorkflow as `resolver:mz_tolerance` / `resolver:rt_tolerance`) are now double
instead of int, with a minimum of 0.0. They were always read into double members, so a
fractional value was rejected on the command line and, in an INI file, silently stored as 0 --
disabling the blacklist proximity check. An INI carrying them as type="int" must be updated
to type="double" or the tool will refuse to start
Other tools:
- CometAdapter merges compatible variable modifications for faster searches and supports
DDA-PASEF .d input; native-ID translation avoids Comet mzParser crashes (#8407,
#9126, #9168). SageAdapter thread registration corrected (#8441).
- SimpleSearchEngine adds semi-/non-specific search and PSM annotations; candidate
processing scales better across threads (#9112, #9117).
- AssayGeneratorMetabo now applies its feature/masstrace and precursor m/z/RT filtering
options, which were previously ignored (#10120).
- FileConverter adds MSP and sqMass-to-XIC Parquet conversion, plus Bruker aggregation,
centroiding and range filters. FileInfo adds assigned/unassigned ID counts, FASTA
sequence statistics and nucleic-acid support; progress logging restored (#8395,
#8643, #8650, #8829, #9707).
- TextExporter supports XIC Parquet and fixes USI run resolution; IDMerger preserves
input order (#8470, #8737, #8738, #9240, #9657).
- MSstatsConverter exposes -remove_shared_peptides (default true), accepts design
subsets, and warns, as does ProteomicsLFQ, about BioReplicate IDs shared across
conditions (paired designs) (#7314, #8846, #9068, #9864).
- Epifany clarifies -exp_design behavior and reports unidentifiable input as an error
instead of aborting (#9864, #9901).
- MetaboliteAdductDecharger adds multimer detection (max_multimer/multimer_log_penalty).
MetaboliteSpectralMatcher adds optional CCS filtering (ccs_error_percent=0 disables
it), automatic 1/K0-to-CCS conversion and CCS mzTab columns; missing observed CCS
does not filter candidates (#8784, #8888, #9412).
- IDConflictResolver adds rank_aggregation; MaRaClusterAdapter records consensus-spectrum
origins/cluster size; OpenSwathChromatogramExtractor uses CompoundName for metabolite
chromatogram identifiers (#8864, #8907, #9271).
New tools:
- MS1LabeledWorkflow: one-command quantification of MS1-labeled (SILAC, Dimethyl, ...) experiments,
the counterpart of ProteomicsLFQ and IsobaricWorkflow: per run FeatureFinderMultiplex, IDMapper,
IDConflictResolver and MultiplexResolver, then per-fraction alignment and linking (channels kept as
sub-features, fractions combined column-wise), protein inference/FDR and quantification, written as
consensusXML, mzTab and/or a QPX collection; optional match between runs (-match_between_runs)
lets unidentified multiplets take over identifications from other runs. The peptide identity is
the unlabeled sequence (the label belongs to the channel): label modifications are removed after
the multiplet resolution and the label state is kept on every identification (labeled_sequence,
removed_labels, label_channel), reported as mzTab opt_global columns and QPX cv_params; PSM-level
output (mzTab PSM section, QPX psm view) reports the peptidoform as searched, feature-level
output the peptide identity. Each column header describes its channel's labels
(channel_description). A spectrum match mapped onto several multiplets stays with the closest
one; distinct spectra of one peptide on distinct multiplets are all quantified. The reported quantity
is the channel ratio, computed as MaxQuant does (median of the evidence ratios per peptide, median
of the peptide ratios per protein group, a minimum ratio count, and a normalized variant) rather
than as a ratio of aggregated intensities, so no ProteinQuantifier run is needed for it. The
reference channel is reported with its ratio of 1.0 wherever another channel was measured
against it, so a consumer sees a complete set of channels; the
per-channel abundances are reported next to it as summed intensities. Checks up front that
the labels were searched as modifications, that the design enumerates the channels of -labels,
and that -out_qpx is only requested for labels in the QPX vocabulary (#10044).
Channel/pattern order and unique input/design basenames are validated before processing.
Native Thermo RAW input is supported with WITH_THERMO_RAW and a .NET 8+ runtime;
scan metadata and MS1 peaks are extracted in one RAW read, including spectrum-reference repair.
FAIMS CVs are preserved through ID mapping, multiplet completion and linking. A protein's
reference-channel ratio requires a comparison passing min_ratio_count in that fraction group (#10047).
- FeatureLinkerWNet: Wasserstein network-flow grouping across label-free maps; optional,
built with WITH_WNETALIGN=ON (#8992, #10255).
- UniPEFF: UniProtKB XML-to-PEFF conversion with sequence, modification, variant and
disulfide-bond annotations; disulfide connectivity is reported by default via bond-ordered
half-cystine labels; optional global annotation identifiers and external
unimod.obo (#9649, #9829). UniProt isoforms are reconstructed from their splice-variant
features and emitted as additional entries after the parent entry, with the features
UniProt annotates on that isoform; disable with -omit_isoforms (#9966, fixes #9830).
- OpenSwathInfer: peptidoform, peptide, protein and gene inference (#9280).
- OpenSwathExport: TSV/Parquet result export (#9377).
- OpenSwathPercolatorScoring: Percolator scoring of OpenSWATH results (#9695).
- OpenSwathPeakMapExtractor: targeted full-peakmap extraction (#9684).
- TransitionListEvidenceFilter: filter transition lists using mzML evidence (#9161).
- DIAuditor: quality metrics of DIA runs per run and per isolation window (MS1 sampling,
window layout incl. FAIMS/1/K0, cycle times, TIC and peak-count distributions), a
re-implementation of D. L. Tabb's DIAuditor. Reads mzML, Thermo .raw and Bruker timsTOF .d
(diaPASEF) and writes its per-run and per-window tables and an mzQC file with the PSI-MS
DIA metrics (MS:4000190-MS:4000199). Warns when spectra carry several isolation windows
(e.g. MSX; demultiplex first) and when diaPASEF windows have an ion mobility array but no
ion mobility range, as TIMSCONVERT writes them, so windows differing only in ion mobility
count as one (#10271, #10312).
- ParquetDiff: compares two Parquet tables by primary key with a numeric tolerance instead of exact
bytes. FuzzyDiff is string-based and cannot read Parquet, which left the QPX psm/feature/pg exchange
surface with no comparison route at all. The key is auto-derived from a QPX file's own file_type
metadata or given explicitly via -pk for any table; matched rows are compared cell-by-cell recursing
into list/struct columns, and schema drift (added/removed/retyped columns) is reported separately
from value drift. Tolerance mirrors FuzzyStringComparator -- either -ratio or -absdiff must hold, so
a zero-vs-epsilon comparison stays expressible -- and two NaNs compare equal. List-valued key columns
(e.g. QPX's grouped_runs) are canonicalized by sorting before matching, and a duplicate primary key
is reported as an error in its own right. -schema validates a single file against a named QPX view
instead of diffing two files. Exit code is EXECUTION_OK when the comparison (or -schema validation)
passes and every input holds at least -min_rows rows, if set; otherwise INCOMPATIBLE_INPUT_DATA, so it
drops into CTest the way FuzzyDiff does (#9865, part of #9864)
- ParquetConverter: converts featureXML and consensusXML files to Parquet directories and
back (#8970).
Removed tools:
- BREAKING: GenericWrapper and its external-tool definitions removed; use direct TOPP
invocations or TOPPAS workflows (#8981, #9735).
- BREAKING: QuantmsIOConverter removed (renamed QPXConverter in #8756, then removed). QPX
output comes from the -out_qpx option of ProteomicsLFQ, IsobaricWorkflow, MS1LabeledWorkflow,
ProteinQuantifier and ProSE; the QPXFile export API remains (#9693).
- BREAKING: TriqlerConverter, ProteomicsLFQ -out_triqler and TriqlerFile removed. Use
-out_msstats, or convert -out_cxml/-out_qpx downstream (#9898).
GUI tools:
- TOPPView/TOPPAS accept generic Qt command-line options. TOPPView shows selectable MS2
precursor markers and isolation windows in 2D; the splash screen is dismissible
(#4963, #9715, #9723).
- Fixed TOPPAS shutdown crashes, TOPPView extreme-zoom crashes and large-file context-menu
delays, non-string metadata conversion, Windows spinbox sizing and Annotation1DItem
DLL exports (#8997, #9206, #9263, #9723, #9831).
- Fragment annotations survive viewing and spectrum switches unchanged, including charge
notation and multiline comments. Corrected duplicate charge display, neutral-loss ion
ordinals and sequence diagrams with multiple modifications (#8766).
- TOPPView's scan list shows each MSn scan under the scan its precursor refers to (mzML
spectrumRef), so SPS-MS3 scans that are interleaved with later MS2 scans appear under their
own MS2 scan. MS2 scans that follow an MS3 scan are no longer nested under the previous MS2
scan (#4215).
- BREAKING: SwathWizard and FLASHDeconvWizard removed; run the TOPP tools they wrapped,
such as OpenSwathWorkflow and FLASHDeconv, directly (#9472).
OpenMS Library:
- mzML: read and write Zstandard (zstd) compressed binary data arrays (MS:1003780 zstd,
MS:1003781 byte-shuffled zstd, MS:1003782 dictionary-encoded zstd and MS:1003783-MS:1003785
MS-Numpress followed by zstd). Writing is enabled with PeakFileOptions::setZstdCompression(),
FileConverter -zstd_compression or FileFilter -peak_options:zstd_compression (#9033).
- Added GlycanStructure and TheoreticalGlycanSpectrumGenerator for composition-based
diagnostic/oxonium and bounded B/Y/C/Z ions, structural and internal glycan fragments,
and HCD/ETD/EThcD glycopeptide backbone retention with configurable stubs (#10176, #10204).
Includes mzPAF annotations, neutral losses, resource limits, and pyOpenMS bindings.
- Added DIon, VIon and WIon to Residue::ResidueType, with side-chain loss methods on Residue,
fragment mass calculation in AASequence and MzPAF, TraML support and pyOpenMS bindings (#10175).
Added:
- File type aliases are now honoured end to end: TOPP tools accept an alias wherever they accept
the preferred extension (and a tool declaring an alias accepts the preferred extension),
TOPPAS connects tools and input-file lists by format rather than by literal suffix, GUI file
dialogs offer every accepted extension ('FASTA file (*.fasta *.fa *.faa)'), and INI/CTD
supported_formats list them for input parameters. Output parameters keep the single canonical
extension, so what OpenMS writes is unchanged (#490)
- FileTypes::sameFormat() compares two declared format strings by type when both are recognized and
literally otherwise, so 'fasta' matches 'fa' while two different custom extensions stay distinct.
FileTypes::supportsCompressedReading(type, compression) reports whether a reader accepts that
specific container, and FileNameUtils::compressionType() reports which container a filename
carries (hasCompressionSuffix() answers the same question as a bool). The pair takes the
container because support is not uniform: the XML-based readers decompress .gz, .bz2 and .zip
transparently through CompressedInputSource (except the mzIdentML reader, which parses the
file itself and cannot read a compressed one), while Bruker TDF accepts only a '.d.zip' archive
that BrukerTimsFile unpacks. A compression suffix alone therefore no longer implies compatibility,
so '.mgf.gz' is rejected where '.mzML.gz' is accepted, and both the CLI and TOPPAS apply the
same rule. Compressed output is unaffected: XMLFile still selects gzip/bzip2 by filename (#490)
- FileTypes::supportsCompressedWriting(type, compression) is the writing counterpart: XMLFile
compresses the formats marked with the new FileProperties::COMPRESSED_WRITEABLE with gzip or
bzip2 and never writes a ZIP archive, while an OSWPQ bundle is always one. TOPPBase uses it to
refuse output names whose writer would store plain data under them (#10317)
- FileTypes: a file type may now register additional accepted extensions besides its preferred
one. FileTypes::typeToExtensions() lists them (preferred first) and nameToType() resolves them
case-insensitively: 'fa'/'faa' for FASTA, 'pep.xml' for pepXML, 'prot.xml' for protXML and
'pqt' for parquet. typeToName() still returns the single preferred extension, which is what
OpenMS writes, and formats that merely share an extension family (e.g. CSV and TSV) remain
distinct types (#490)
- MultiplexResolverAlgorithm: the multiplet completion and quant/ID conflict resolution of the
MultiplexResolver tool as a library class (DefaultParamHandler with the tool's 'algorithm' and
'labels' sections), shared by MultiplexResolver and MS1LabeledWorkflow (#10044)
- ProteinGroupArrowExport: the QPX pg view fills its previously empty additional_intensities column
with the channel ratio of that (protein group, fraction group, label) -- named ratio and
ratio_normalized under the row's own channel label -- and the number of contributing peptides
with cv_params/ratio_count, when the producer annotated them (MS1LabeledWorkflow does). Rows
without them are written as before (#10044)
- MS1LabelState: the label-state meta values of an MS1-labeled identification (labeled_sequence,
removed_labels, label_channel) and the peptidoform a hit was matched with. The mzTab PSM
section and the QPX psm view report that matched peptidoform (and derive the psm identity
from it); the QPX feature and psm views write the three values to the previously empty
cv_params column (ArrowIOHelpers::qpxCvParams). Identifications without a label state are
exported as before (#10044)
- BrukerTimsFile (WITH_OPENTIMS): DDA-/DIA-PASEF and raw 4D access, tiered scan-to-1/K0
calibration, optional neighboring-MS1-frame aggregation, IM hill centroiding and
frame/RT filtering. Range-limited reads reduce I/O/memory; aggregation is faster.
DDA native IDs use 'frame=... scan=... precursor=...' for unique identification;
exported PASEF spectra are marked CENTROID (#8975, #8999, #9151, #9154, #9233,
#9243, #9380, #9387).
- ThermoRawFile: native .raw reading with openms-thermo-bridge 0.3.1 and .NET 8+.
Preserves sample/method/trailer metadata, SHA-1 provenance, scan/instrument metadata,
MSn/SPS precursor hierarchy and supplemental activation. Optional centroid charges,
independent noise arrays and auxiliary detector/PDA data support mzML export.
Fixed mixed-activation hierarchy reconstruction. Managed assemblies are installed
with OpenMS; OPENMS_THERMO_MANAGED_DIR overrides their location (#9389, #9623,
#10070, #10077, #10079).
- Imaging: IonImage, MSImagingGeometry/Region/Experiment, imzML read/write and on-disc
access, streaming consumers, multi-region extraction and Bruker MALDI .d support.
imzML preserves auxiliary float arrays/IM units; warns about unsupported integer/
string arrays and duplicate pixels (first spectrum used for geometry, all remain
index-accessible). Both loaders reject zlib-compressed m/z/intensity arrays
(#9381, #9383, #9521, #9654, #9903, #9908, #10002).
- Native Parquet: PSMArrowIO, FeatureMapArrowIO, ConsensusMapArrowIO, ArrowSchemaRegistry,
ArrowExport and ProteinGroupArrowExport. Preserves map metadata/unique IDs and
identification run links; rejects duplicate run IDs and dangling feature references.
Native bundles no longer claim a QPX version (#8655, #8970, #8973, #9225, #9232,
#9242, #9864).
- Percolator: in-process rescoring with combined or separate training/scoring and model
persistence. Calls across instances must be serialized because of process-wide
Percolator state (#9218).
- OpenSWATH: reusable inference/export APIs ported from PyProphet; KDE, ranking and
multiple-testing statistics; workflow scheduling, memory-aware OSW output and
CalibrationWorkflow. Calibration RT windows default to 60-600 s (set either bound
to 0 to disable it). Added .oswpq archives, .xic chromatograms, .xim mobilograms,
per-compound RT ranges and a FAIMS-aware adapter for pre-loaded experiments
(#8524, #8737, #8743, #8813, #8871, #9190, #9271, #9280, #9377, #9842, #9932).
- PipEchoAlgorithm exposes the new match-between-runs method (#9647).
- FeatureGroupingAlgorithmWNet/WNetMatcher expose the Wasserstein grouping methods;
optional, built with WITH_WNETALIGN=ON (#8992, #10255).
- Optional C++ ONNX predictors for AlphaPeptDeep RT, MS2 and CCS models, with verified
model downloads and AASequence-based modification support. Unsupported modifications
are rejected; Python bindings are not yet available (#9453, #9765).
- Standards: ProForma v2 parsing/serialization (LOSSLESS/CANONICAL), AASequence
conversion, mass calculation and JSON support; MzPAF peak annotations; USI parsing/
construction; SpectrumNativeIDParser (#8637, #8648, #8684, #8686).
- MzPAF accepts and writes d/v/w satellite ions and the da/db/wa/wb subtypes,
including validation, peak annotation conversion and pyOpenMS bindings (#10175).
Satellite mass calculations use d = a + H - radical side-chain loss and
v = y - HR. Direct residue/sequence mass and formula APIs reject unsupported
or modified cleavage residues instead of returning the parent-ion mass.
Theoretical spectrum generation for satellite ions remains unsupported.
- Added IsoelectricPoint, hydrophobicity profiles, protein SequenceCoverage,
ModifiedSincSmoother, programmatic FileInfo, CCS conversion and MSExperiment
rasterization. Extended PeakFileOptions and on-disc filtering, peak annotations,
LightTransition APIs, MetaInfo iteration and ParamIterator STL support
(#8217, #8362, #8421, #8512, #8526, #8544, #8621, #8728, #8735, #8739,
#9179, #9419, #9602).
- IMPeakType tracks IM processing state independently of layout; IMFormat::CENTROIDED
is deprecated. IM units are recognized across vendor array naming conventions
(#9007, #9181).
- I/O: MGF SEQ fields round-trip; MSP reads numeric CCS and long lines; consensusXML
preserves protein-group abundance arrays. PeptideIndexer settings and upstream
IDMapper processing metadata are retained (#8489, #8816, #8852, #9186, #9844).
API and behavior changes:
- XMLFile::save_() matches the .gz/.bz2 suffix in any letter case (FileNameUtils::compressionType()),
as input handling does, so 'x.mzML.GZ' is written gzip-compressed rather than plain.
MSDataWritingConsumer and PlainMSDataWritingConsumer throw Exception::UnableToCreateFile for a
file name ending in .gz, .bz2 or .zip: they stream uncompressed mzML, which such a name would
mislabel. Use MzMLFile::store() for compressed mzML (#10317).
- BREAKING: File settings methods move to SystemSettings (getSystemParameters,
getTempDirectory, getUserDirectory, findDatabase, getOpenMSHomePath,
getOpenMSConfigDir). File::TempDir becomes TempDir; File::getTemporaryFile becomes
TempFiles::getTemporaryFile. Old C++ entry points are removed (#10083).
- BREAKING: XMLHandler no longer derives from xercesc::DefaultHandler; use
onStartElement(const char16_t*, const XMLAttributes&), onEndElement() and
onCharacters(). Matrix<T> uses std::vector storage and no longer inherits Eigen
(#8511, #8547, #8558, #9712, #9737).
- BREAKING: database getInstance() methods return const pointers (ElementDB, ResidueDB,
ModificationsDB, CrossLinksDB, RibonucleotideDB, MonosaccharideDB, ProteaseDB and
RNaseDB); use const T* or auto. Runtime modification interning is thread-safe.
ElementDB::addElement() removed: use local CoarseIsotopePatternGenerator::
setIsotopeOverride(element, distribution), avoiding global isotope-state mutation.
- BREAKING: PeptideIdentification::get/setBaseName removed; use the run's
setPrimaryMSRunPath() and IdentifierMSRunMapper. IDFilter::updateProteinReferences
renamed to removeDanglingProteinReferences; Exception::InvalidSize requires a
context message (#8500, #8437, #9660).
- BREAKING: FileWatcher moved from SYSTEM to VISUAL; plain metadata/platform enums
became enum classes; PeptideAndProteinQuant channel IDs are UInt; ChromatogramPeak
intensity changed from double to float (#8516, #8591, #8622, #8857).
- BREAKING: IMFormat::CONCATENATED/MULTIPLE_SPECTRA renamed to IM_PEAK/IM_SPECTRUM;
MIXED removed. determineIMFormat(experiment, ms_level) requires an explicit MS level
(#8993, #9011).
- BREAKING: QuantmsIO renamed to QPXFile; LinearResampler removed in favor of
LinearResamplerAlign (#8756, #9153).
- BREAKING: OpenSwath::Scoring removes pointer/C-array overloads of NormalizedManhattanDist,
RootMeanSquareDeviation, SpectralAngle, normalize_sum and calcxcorr_legacy_mquest_;
use std::vector overloads. ChromatogramExtractor::prepare_coordinates(TargetedExperiment)
removed; convert via OpenSwathDataAccessHelper::convertTargetedExp and use
LightTargetedExperiment (Python API unchanged) (#9252, #9271).
- BREAKING: NeighborSeq owns its peptide vector, fixing dangling references but changing
class layout; C++ consumers must rebuild. IDBoostGraph rejects missing target_decoy
annotations; BayesianProteinInferenceAlgorithm requires one merged identification
run (#8480, #9488, #9613).
- Charged EmpiricalFormula isotope generation retains its 3.x implicit-hydrogen behavior
with a deprecation warning; use addChargeAdduct(count, adduct="H") for the explicit
replacement before OpenMS 4.0 (#4449, #9714, #9719).
- SignalToNoiseEstimatorMedian interpolates within histogram bins (floor 1), changing
S/N-derived peak-picking/scoring results. Corrected MassTrace FWHM interpolation
affects feature widths, peak filtering, linking tolerances and some quantified
intensities; traces must be sorted along their x axis (#9781, #9967, #10052).
- EMGScoring init_mom now defaults to true; enzyme definitions are built in and
Enzymes.xml is optional. Warnings go to stderr; logging and DataValue conversion
diagnostics improved (#8409, #8572, #8593, #8620, #8754).
- ParamEntry::isBool() centralizes boolean-parameter recognition; ThermoRawFileMetadata
exposes typed ThermoScan/ThermoReaction/ThermoPrecursor access (#10084, #10116).
- OpenMSTestFramework is a separate static library: tests/FuzzyDiff users must link it.
Temporary-output schema validation is explicit via VALIDATE_TMP_FILES; test projects
register unique-ID/exception support. OpenMS_locale removed (#9929).
Performance:
- Faster decharging, peptide indexing/resolution, precursor purity/correction, OpenSWATH
scoring and cross-correlation, plus fewer copies in search and extraction loops.
AccurateMassSearchEngine honors observed-adduct-only searches; mzIdentML caches CV
lookups and supports schema 1.3. Parquet PSM/metadata export avoids repeated scans and
registry locking (#4787, #5867, #8618, #8635, #8651, #8656, #8763, #8764,
#8785, #8787, #8806, #8848, #8849, #9686, #9689, #9692, #9801).
Fixes:
Chemistry and identifications:
- PercolatorAdapter's in-process backend and Percolator::rescore() read a feature stored as
a string meta value as the number it holds, as the percolator executable does when it
parses the .pin file. Both went through DataValue's conversion to double, which yields an
unrelated number for a string: SageAdapter stores all of Sage's extra features as strings,
so they were constant and Percolator weighted them zero, losing identifications (on a small
dataset, every PSM). A feature value that is not a finite number is now an error, as for
the executable (#10310).
- MatchedIterator no longer stops at the first of two target elements with the same value
(e.g. two peaks with the same m/z). HyperScore, PScore, AScore, SpectrumAlignment (ppm) and
the QC metrics FragmentMassError and PSMExplainedIonCurrent ignored all peaks above such a
pair, so ProSE and SimpleSearchEngine mis-scored spectra with duplicate peaks. (#10291)
- MzIdentMLFile: search engine scores without a score order in the PSI-MS vocabulary take
it from OpenMS' score registry, so Comet:expectation value, X!Tandem:expect, OMSSA:evalue,
OMSSA:pvalue, percolator:Q value and percolator:PEP are read as lower-is-better. Such
lower-is-better engine scores yield to a PSM-level q-value, which is then used. The
registry (Scores) now lists the X!Tandem and OMSSA scores by accession, so QPX and Arrow
exports also report them as additional scores (#8691).
- Fixed signed/stacked unknown mass shifts, precision-aware mass matching and spurious
zero-mass PSI-MOD assignments. Distinct modified residues remain distinct and
mass/formula round-trips no longer silently change peptidoforms (#10006, #10007,
#10010, #10029).
- Fixed UniMod ICAT formulas and site-specific neutral-loss masses; ProForma Formula
tags, anonymous mass shifts and stacked modifications retain mass/chemistry instead
of being dropped or serialized as empty brackets (#10003, #10026, #10030).
- QPX import reports unsupported modifications and checks reconstructed m/z. Modification
definitions are still not carried by the format, so unsupported modifications may
still be lost on import (#10004, #10012).
- AASequence::getFormula() and AASequence::getMonoWeight() handle Residue::Zp1Ion and
Residue::Zp2Ion, the radical z+1/z+2 electron-transfer fragments. Both types used to fall
through to the default branch, which logs an error and returns the internal mass without any
ion offset, and a C-terminal modification was never applied to them. getAverageWeight() and
getMZ() build on those two functions and are fixed with them (#10181).
- Corrected a/b neutral-loss fragment masses, negative-charge MzPAF parsing and
deisotoping precursor constraints (proton mass units; unknown precursor charge no
longer discards all isotope clusters). Unsupported deisotoping tolerances no longer
abort ProSE/SimpleSearchEngine (#9078, #9084, #9620, #10067, #10075).
- Fixed peptide-indexing crashes on short peptides, NucleicAcidSearchEngine multi-hit
handling, modified-sequence decoy duplicate detection, and copy operations on spectrum
generators, SpectrumAnnotator and Normalizer (#532, #8542, #8569, #8575, #8685, #10066).
- PeptideIndexer no longer exhausts memory when a peptide hit carries an empty sequence
(an empty AASequence, or one consisting of stop codons only). The empty needle flagged
the root node of the Aho-Corasick trie as a hit, and since the root's suffix link points
to itself, the search collected hits until memory ran out. ACTrie::addNeedle() now skips
an empty needle with a warning, but still consumes a needle index, so the peptide indices
of the caller stay aligned and such hits are simply reported as unmatched (#2987).
- PeptideIndexer: ACTrieState returns empty hits when no query was set instead of crashing
(potentially happens when the number of threads is larger than number of proteins) (#10257)
- Fixed the m/z of H2O/NH3 neutral-loss peaks of x/y/z linear ions at charge >= 2 in
TheoreticalSpectrumGeneratorXLMS and SimpleTSGXLMS: the loss was subtracted from the already
charge-divided position and divided by the charge again, so these peaks sat at roughly half
their true m/z. OpenPepXL scores and annotations of such peaks change accordingly (#10148).
- TheoreticalSpectrumGeneratorXLMS placed the second isotope peak of the precursor (and of its
H2O/NH3 losses) at the charged mass instead of its m/z, e.g. about 2003 instead of 668 for a
2000 Da precursor at charge 3. OpenPepXL uses these peaks: on the test data only its
log_occupancy scores change; on other data the corrected peak can now match an experimental
peak and change matched ion counts and scores (#10194).
- ConsensusID rejected a single empty idXML run (valid XML with no peptide identifications)
and dropped search settings when combining empty runs; per-spectrum runs also lost their
MS-file metadata, and unannotated feature/consensus maps could crash. Empty runs, and
entirely empty input in RT/mz mode, now keep their original search settings and
spectra_data instead of being discarded (#10203).
- MaRaClusterAdapter passes -precursor_tolerance_units on to MaRaCluster. It appended the
unit's index as a digit instead, so 20 ppm reached MaRaCluster as '-p 20.00' and 0.05 Da
as '-p 0.051', which MaRaCluster reads as 0.051 ppm: a tolerance in Da was never applied.
Quantification and numerical correctness:
- IsobaricWorkflow wrote every consensus feature with the same id ("e_0"), which is invalid
consensusXML (consensusElement/@id is xs:ID); each feature now gets its own unique ID
(#10201).
- ExperimentalDesign mappings use sample names consistently. Protein-group quantities
survive ID filtering; ProtXML excludes ProteinProphet's unneeded/subsumed groups
(#6038, #8960, #9874).
- Fixed SimpleSVM constant-predictor indexing, degenerate EMG fits, NaN similarity scores,
small-sample quantiles/variance, ROCCurve negative cutoffs and FragmentMassError ppm
variance. Corrected DistanceMatrix cache invalidation/comparison and empty-cell
clustering access (#6239, #9488, #9495, #9497, #9594, #9610, #9617, #9618,
#9659, #9661, #9664, #9670, #9682).
- MRMFeatureSelector works with GLPK; LP/ILP failures now report status and throw instead
of returning silently empty results in feature selection/decharging (#9940, #9944,
#9956).
- MapAlignmentAlgorithmKD::filterCCs_ (used by FeatureGroupingAlgorithmKD, i.e. by
FeatureLinkerUnlabeledKD) rejected a connected component containing conflicting nonzero
charge states only via a continue that escaped the inner charge-scanning loop, so the
component still passed the conflict check and was grouped. Such components are now
correctly rejected, which changes alignment and linking results (#10157).
- MassTrace::updateWeightedMeanRT() weighted each peak by the RT distance to its
predecessor and started the sum at the second peak, so the first peak contributed to
neither the numerator nor the denominator. The centroid was biased towards later RT
and, for a two-point trace, was always the RT of the second peak whatever the
intensities. The intensity-weighted mean now uses mid-interval (trapezoidal) weights
over all peaks, which changes RT positions on the 'epd:enabled=false' path of
FeatureFinderMetabo and MassTraceExtractor (#2777, #10225).
Data integrity and I/O:
- Sorting/filtering/set_peaks keeps peak annotations and binary arrays aligned in
spectra, chromatograms and mobilograms. select() checks bounds before mutation;
selectUnchecked() is available for validated C++ indices. Python raises IndexError
for invalid indices and ValueError for duplicates (#8645, #9795, #9807).
- MSExperiment::reset clears chromatograms; missing named protein data arrays/targeted
references throw ElementNotFound. Fixed stale targeted-reference caches and null
prediction access (#9488, #9492, #9211).
- mzML metadata round-trips preserve UTF-8, whitespace, timestamps, independent noise
grids, detector types/units and precursor-intensity units (#10077, #10079).
- MzMLFile writes activation and analyzer terms that are valid with PSI-MS 4.2.2. EThcD or
ETciD without a supplemental activation term also gets the generic dissociation method,
as PSI-MS now lists combined methods as activation attributes. SWIFT, cyclotron and
ion-storage analyzers, and the analyzer invented for incomplete instruments, use the
generic mass analyzer type; the OpenMS type is kept in a userParam and restored on
reading. HCID, EThcD and ETciD terms use their PSI-MS names (#8691).
- Reading an mzML file only partly (metadata only, or counting its spectra, as the first pass of
MzMLFile::transform() does) ends the progress it started, so the progress output of every later
file is no longer nested one level deeper (#10271).
- mzML chromatograms are written with a precursor or product only if they have one. A TIC used
to get an empty precursor and a product isolation window at m/z 0, and an MS1 chromatogram such
a product. The original DIAuditor, for example, read that product's isolation window as the
last spectrum's and crashed (#10271).
- mzML: the mass resolving power (MS:1000800) is written in the scan, the only place mzML allows
it. It used to be written as a userParam of the spectrum, so other readers, such as the
original DIAuditor, lost it once a file had been written by OpenMS (#10313).
- Thermo .raw: spectra carry the mass resolving power of the scan trailer ('Orbitrap
Resolution:', else 'FT Resolution:'), as msconvert reports it (#10313).
- Bruker timsTOF .d: the start of the acquisition (with its time zone), the instrument model and
its serial number are read from analysis.tdf (#10313).
- mzML: the other scan attributes the reader keeps with the spectrum (filter string, preset scan
configuration, dwell time, scan rate, mass resolution, elution time, analyzer scan offset and
interchannel delay) are written in the scan as well, and scan terms it keeps under their
accession, such as the ion injection time (MS:1000927), as CV terms. Both used to be written
as userParams, which other readers do not find.
- Fixed INI required/advanced parsing, XQuest FDR-type restoration, mzIdentML missing
modification locations, PepXML source-run paths/redundant Comet scores and duplicate
IDMapper spectrum references (#5443, #8905, #9089, #9660, #9763, #9766).
- TOPP tools no longer exit with ILLEGAL_PARAMETERS when the file given via '-ini'
contains a tool-specific 'common:<ToolName>:' section; it was merged twice and its
entries were then rejected as unknown parameters. Those values now override 'common:'
as documented (#10126).
- PQP/sqMass SQL writes use bound parameters, preventing quoted-string failures and SQL
injection. Parquet writers remove incomplete outputs; OpenSWATH Arrow errors throw
contextual exceptions instead of aborting. Fixed mixed-IPF target/decoy labeling
and unified XIC/XIM reading (#9691, #9730, #9734, #9739, #9778, #9862).
- Fixed chromatogram MS1-isotope extraction, empty-spectrum mass/IM correction and
metabolite-library GNPS/COMPOUND_NAME compatibility (#7284, #8163, #9270, #9386).
- The MGF reader (MascotGenericFile) starts every BEGIN IONS block from a fresh spectrum:
fields absent from a block (CHARGE, RTINSECONDS, the PEPMASS intensity, MSLEVEL, NAME,
SMILES, INCHI, ...) no longer inherit the previous block's values, and a block without
peak lines is read as an empty spectrum instead of being merged with the next block or
dropped at the end of the file (#10148).
- MzIdentMLFile: loading a Peptide whose PeptideSequence element is empty (as written for a hit
with an empty sequence) no longer crashes with a null-pointer dereference; the reader stores an
empty sequence for it instead. Sequences held in a CDATA section or preceded by a comment inside
the element are now read instead of being discarded (#10148).
- ExperimentalDesignFile rejects a data row with the wrong number of cells with a ParseError
naming the line and the expected/actual count, before the row is indexed. A row ending in
an empty cell is one cell short after trimming and was read past its end, which crashed
ProteomicsLFQ/MSstatsConverter or put garbage into MSstats/Triqler condition and replicate
columns. SampleSection::getFactorValue throws MissingInformation for a row without a value
for the factor instead of reading past its end (#10148).
- UniPEFF wrote UniProt features whose <location sequence="..."> names another isoform
as annotations of the canonical entry, although their coordinates refer to that isoform
(e.g. \ModResPsi phosphoserines on non-S residues or past the sequence end). Such
features now go to the entry of their isoform when UniPEFF writes one; otherwise they
are skipped and counted in a summary log line.
- IDFileConverter: pepXML input with 'mz_file' failed with "Found no experiment with name" unless
the run's 'base_name' ended with the exact path given. This broke TPP results on Windows (TPP
writes 'c:/...', the tool got 'c:\...'), moved data and OpenMS' own pepXML output, which stores
the file name only. 'mz_file' is now matched by its file name; 'mz_name' can give more of the
path. PepXMLFile matches the experiment name against whole trailing path components of
'base_name', treating '/' and '\' alike, so 'LN1' no longer selects both 'L_LN1' and 'H_LN1'.
A name that matches runs with different 'base_name's is an error, and the not-found error lists
the 'base_name's in the file (#3502).
Robustness:
- mzIdentML writer: the "unknown modification" cvParam (MS:1001460) referenced the undeclared
controlled vocabulary "MS", although the document declares only "PSI-MS". The writer names
every other cvParam PSI-MS; this one now does too, so files with an unrecognized
modification validate against strict readers that check cvRef against the declared
vocabularies (#10245).
- NuXLDeisotoper (a copy of Deisotoper::deisotopeAndSingleCharge) applies the two precursor mass
fixes already made to Deisotoper: a precursor with unknown charge (0) no longer enables the
mass constraint with a neutral mass of 0, which rejected every fragment cluster, and neutral
masses are computed with PROTON_MASS_U (the proton mass in Da) instead of PROTON_MASS (the
proton mass in kg), which had made every mass about 1 u per charge too high
(#10073, #10075, #10231).
- SpectrumCheapDPCorr::operator()(x, y) declared a local "bool keeppeaks_" that shadowed the
member of the same name, so the member itself was never assigned: dynprog_(), which resolves
ambiguous many-to-many peak alignments, read uninitialized memory instead of the keeppeaks
parameter when deciding whether to keep unaligned peaks in the consensus spectrum.
- mzIdentML output with more than one identification run repeated the Measure ids
(Measure_mz, Measure_int, Measure_error) in every SpectrumIdentificationList and failed schema
validation; the Measure definitions are now written once (#10213).
- Chromatograms built from MS1 spectra (FileConverter -convert_to_chromatograms, e.g. on GC-MS/SIM
data) had no native ID, so the mzML output contained many chromatograms with id="" and failed
schema validation. They are now named "XIC mz=<m/z>" (#10214).
- MSExperiment::sortSpectra() keeps spectra with equal retention time in their input order.
std::sort gave no guarantee for them, so ion mobility frames, FAIMS splits and Bruker TIMS
data were reordered depending on the standard library, which silently corrupted mass traces
built over such a map. The sort is also faster now, because it moves an index instead of a
whole spectrum (#10054, #10220).
- FLASHDeconv skips spectra with a non-positive mzml_mass_charge value instead of crashing on them,
and logs a warning. TOPPASEdge falls back to extension-based file type detection when
content-based detection returns UNKNOWN, and no longer mishandles an edge whose referenced
vertex was removed (#9054).
- FileMerger renamed the merged spectra but left precursor spectrumRef attributes pointing to the
original native IDs, so MS2 spectra lost the link to their parent scan and the mzML output
failed schema validation. The references are now updated together with the IDs (#10200).
- BREAKING: FileHandler/FileNameUtils::stripExtension() now removes the whole recognized
extension instead of searching the path for the canonical type name. 'a.pep.xml' yields 'a'
rather than 'a.pep', and 'a.pep.xml.gz' yields 'a' rather than 'a.pep.xml'. File::extension()
reports the same span ('.pep.xml'), and an extensionless file in a dotted directory
('/my.dir/fid') is no longer truncated. swapExtension() follows (#490).
- File::writable checks no longer delete concurrently created files or report spurious
failures; temporary directories are claimed atomically. UUID/unique-ID generation
avoids weak-entropy/parallel-process collisions (#8678, #9703, #9937, #9940, #9941, #9965).
- Fixed concurrent logging heap corruption, stream restoration and scoped suppression;
update checks tolerate unwritable home directories (#8440, #9074, #9075, #9583, #10019).
- Fixed ARM64 Base64 alignment, invalid EICExtractor/MetaProSIP size parameters and
boundary/serialization defects including empty-range accesses and unbounded loops
(#8689, #9767, #9775, #9776, #9790).
- ConsensusMap::split() used raw map indices to address its result vector, so a
consensusXML with column ids other than 0..n-1 (e.g. FileFilter -consensus:map 0 3
followed by QualityControl) wrote past the end of the vector. Feature maps are now placed
by column position (key order); an index with no column raises ElementNotFound (#10148).
- MapConversion::convert(PeakMap -> ConsensusMap) capped the number of peaks by
MSExperiment::getSize() (all MS levels plus chromatogram points) although it collects MS1
peaks only, so MapAlignerPoseClustering with max_num_peaks_considered -1 (or above the MS1
peak count) on runs with MS2 spectra sorted and copied past the end of a vector (#10148).
- StringUtils::skipWhitespace(string_view) and skipNonWhitespace(string_view) returned the
scanned length as int; for inputs longer than INT_MAX characters the value wrapped
negative, and removeWhitespaces() then built its iterators from it, reading and writing
before the start of the buffer. Both now return size_t (#10171).
- FileConverter: converting spectra to consensusXML/consensusparquet kept only as many of the
most intense MS1 peaks as the input had spectra. It now writes one consensus feature per MS1
peak (more memory and runtime for large files); equal intensities are ordered by RT and m/z,
so the output no longer depends on the platform, and every feature gets its own unique ID
(previously all were written as "e_0", which is invalid consensusXML) (#10161).
- BaseFeature::sortPeptideIdentifications() no longer reads the first hit of an
identification without hits (a crash for hit-less identifications loaded from featureXML,
e.g. in FeatureLinkerUnlabeledQT with use_identifications), sorts the hits of every
identification (also of a single one) and uses one score orientation throughout (#10148).
- OpenMS.ini: entries that a hand-written file does not set are now taken from the built-in
defaults, as are entries of the wrong type (with a warning). With a file that set only
temp_dir, the search engine adapters reported a database they could not find as an internal
error ("the element 'id_db_dir' could not be found"), and with id_db_dir given as a single
string instead of a list, as a conversion error. A file without the current 'version' no
longer logs "Broken file" or "deprecated" warnings on every run, since OpenMS never rewrites
the file (#3009).
- ProteomicsLFQ crashed in the QT feature linker (QTClusterFinder) when no run of a fraction
had a feature, e.g. because none of their identifications passed the FDR filter. Such a
fraction now contributes no quantities, a warning names it, and Debug builds no longer fail
an assertion on it (#9790, #10310).
Documentation:
- New "File formats" page in the OpenMS documentation: which formats tools read and write
compressed, the .idparquet, .featureparquet and .consensusparquet bundles (their files, the
tools that use them, how to convert), and that imzML is read by the library and pyOpenMS
only. The TextExporter page lists the Parquet bundles it reads.
- Corrected misleading Doxygen contracts in the sqMass/SQLite stack: countTableRows
exception types, the SpectrumAccessSqMass usage example and getSpectraByRT /
getMultipleSpectra semantics, SqMassFile::store replacement behaviour and the
OpenSwathScoring fetchSpectrumSwath spectrum counts (#10148, #10244).
- The ProteomicsLFQ page describes match-between-runs with PIP-ECHO (-pip_echo) and lists
Thermo .raw input. The PercolatorAdapter page describes the in-process backend, when the
percolator executable is run instead, and how many threads each backend uses.
- Expanded experimental-design terminology and LFQ/fractionated/TMT/SILAC examples,
targeted quantitation, FAIMS, RT units, file conversions, USI and MetaProSIP CSV docs
(#4400, #8478, #8588, #8597, #8615, #9173, #9909).
- New pyOpenMS user-guide pages "Arrow and Parquet" (to_arrow() of spectra, feature maps,
consensus maps and identifications; reading and writing the Parquet bundles) and "Mass
Spectrometry Imaging" (loading imzML, ion images, regions, on-disc access, writing).
- Updated pyOpenMS type hints, docstrings, wrapping/ownership guidance and test templates;
documented native-reader requirements, core-only builds and vcpkg configuration
(#8483, #8507, #8548, #8561, #8674, #9162, #9629, #9736, #9752, #9792, #9812, #9928).
- New "Vendor formats" pages in the OpenMS and pyOpenMS documentation: the tools that read
Thermo .raw files and Bruker timsTOF .d directories, FileConverter's two Thermo readers
and their defaults, and that the other tools apply Thermo's peak picking too (#10303).
Corrected the FileConverter, FeatureFinderIdentification and FeatureFinderMetaboIdent
pages, the .NET requirement on the Windows installation page, and the macOS installation
page (macOS 15, notarized installer).
- The user FAQ explains OpenMS.ini: that it is optional, where OpenMS looks for it and which
entries it reads. The OpenMSInfo page describes the data, temp and user data paths as they
are resolved now (#3009).
- The Windows installation page builds with the vcpkg presets instead of the contrib package,
and the developer FAQ, the guide to adding a dependency (now via vcpkg.json and overlay
ports), the external-code pages and the agent notes no longer refer to contrib. The
orphaned install-contrib page is removed (#10144).
Build System:
- The Debian package of a nightly or branch build carries its prerelease identifier in its
control version, for example 3.6.0~nightly.2026.09.27, so it sorts below the release
and a later nightly above an earlier one. Before, every build of 3.6.0 was version 3.6.0
to apt, whether nightly or release.
- Public headers of OpenMS, OpenSwathAlgo, OpenMS_CLI, OpenMS_GUI and the test
framework use CMake header file sets. Installation paths and components stay
unchanged and private headers remain excluded. Building OpenMS and consuming
its CMake package both require CMake 3.24. Linux x64 CI explicitly verifies
public headers as standalone translation units, with missing includes in
identification-data and GUI headers corrected; normal builds can opt in with
OPENMS_VERIFY_INTERFACE_HEADER_SETS=ON (#10177).
- The TOPP tool framework (TOPPBase, ToolHandler, ParameterInformation,
SearchEngineBase, TOPPExternalToolBase, MapAlignerBase, OpenSwathBase) moved out of
libOpenMS into the new library libOpenMS_CLI (src/openms_cli; CMake target OpenMS_CLI,
installed as OpenMS::OpenMS_CLI, package component CLI, export macro OPENMS_CLI_DLLAPI).
Include paths are unchanged. The CTD/CWL parameter serializers read the parameter tag
names from the new core header OpenMS/DATASTRUCTURES/ParamTags.h, so nothing in
libOpenMS depends on the framework any more and its exported interface is purely
scientific. BREAKING for external projects that build TOPP-style tools: link
OpenMS::OpenMS_CLI (which carries OpenMS::OpenMS) instead of OpenMS::OpenMS (#10162).
- The installed CMake package is layered: the core libraries (libOpenMS, libOpenSwathAlgo and the
bundled third-party libraries; export set OpenMSTargets, install components library and cmake),
the TOPP tool framework (libOpenMS_CLI; OpenMSCLITargets, library_cli and cmake_cli) and the GUI
library (libOpenMS_GUI; OpenMSGUITargets, library_gui and cmake_gui) each have their own export
set and install components (openms_add_library(... EXPORT_SET <set>)). An installation may stop
at any layer: OpenMSConfig.cmake provides the targets of the layers present, reports them with
OpenMS_CLI_FOUND and OpenMS_WITH_GUI (now true only when the GUI library is installed) and
refuses a required CLI or GUI component that is missing; TOPP-style external tools request
COMPONENTS CLI. The pyOpenMS wheels build and install the core layer only again, the
installed-consumer test covers a full and a core-only installation, and the deb/rpm/macOS
packages include the new library components. The Applications component depends on the library
layer its binaries link (library_gui in a WITH_GUI build, library_cli otherwise), so a
component-selectable installation cannot leave the TOPP tools without libOpenMS_CLI. The
deb/rpm component lists spell that component the way the install rules register it: CPack
compares component names verbatim when it selects what to install, so a component-wise
package built from the previous spelling would have contained none of the TOPP tools.
Reconfiguring a build directory with another WITH_GUI setting no longer leaves a stale GUI
target file behind (src/tests/package_layers checks this with stub libraries) (#10164).
- Three places spelled the install component that every TOPP tool, TOPPView and TOPPAS is
registered under ("Applications") in lower case: the cpack_add_component() declaration and
the CPACK_COMPONENTS_ALL lists of the deb/rpm packages. CPack folds CPACK_COMPONENT_<NAME>_*
metadata (DISPLAY_NAME, DEPENDS, ...) to upper case, so that lookup still worked, but compares
the name verbatim when selecting what to install, so a component-wise deb/rpm build from these
lists would have matched no install rule and shipped no TOPP tools at all. Both generators
currently build monolithically, so the shipped packages were unaffected; the naming is now
"Applications" everywhere (#10199).
- vcpkg manifests, cross-platform CMake presets, overlay ports/triplets and binary caching
support Linux, Windows and macOS; main build/test CI uses them. Release-only triplets
avoid building duplicate Debug dependencies (#9511, #9800, #9927).
- BUILD_TOPP_TOOLS and INSTALL_OPENMS_EXAMPLES (both default ON) enable a core-only SDK;
incompatible workflow-generation options fail configuration. Installed headers and
external find_package(OpenMS) consumers are validated (#9752, #9774, #10103).
- Linux/macOS install RPATHs include linked dependency locations; vcpkg paths and macOS
loader-relative paths are handled explicitly. Build-tree linking resolves private
dependencies consistently, avoiding same-name library conflicts (#10114).
- Numeric conversion uses std::from_chars/to_chars, reducing compile time and improving
throughput; scientific formatting uses portable shortest round-trip strings
(#9648, #9668). Core/OpenSwathAlgo AUTOMOC is disabled (#10099).
- pyOpenMS uses py-build-cmake/cibuildwheel; improved dev RPATH, Windows DLL discovery,
local nanobind detection and isolated builds. Thermo bridge assets are bundled from
verified cached downloads (#8484, #8530, #8706, #8874, #8892, #8933, #9732, #9738, #10070).
- CI/release packaging updated across platforms, including Ubuntu 24.04, Visual Studio
2026 and automated backports/version bumps. Windows Release builds regain optimization;
installer path/staging failures are fixed. macOS installers are signed/notarized and
exclude pyOpenMS modules distributed as wheels (#8961, #9514, #9523, #9742, #9827,
#9969, #10009).
- The macOS package installs bin/qt.conf, so ExecutePipeline, and with it TOPPAS
pipelines on the command line, can load the Qt platform plugin (#10260, #10280).
- Fixed Arrow repository keys/version pins, Bioconda synchronization/tooling/dependency
conflicts and package-list handling; build failures now propagate. Multi-architecture
images publish a combined amd64/arm64 manifest (#9196, #9726, #9728, #9729, #9750,
#9798, #9890, #9891, #9905, #9951, #9954, #10071). The nightly Bioconda deploy
workflow called bioconda-utils build with --pkg-dir, an option that does not exist
(--package-dir is correct), failing every nightly run since 2026-09-08 (#10167). A later
upstream bioconda-utils release renamed --mulled-test to --mulled-build-and-test without
keeping the old name, breaking the same workflow again; it now uses the current flag
(#10227).
- Fixed compiler-cache saving and fork-PR workflow failures; documentation lint rules are
pinned. Added effective Parquet schema/value checks and non-finite numeric comparisons;
removed parallel-test output collisions and source-timestamp assumptions
(#9785, #9787, #9859, #9861, #9877, #9878, #9879, #9887, #9899, #9906, #9937,
#9973, #10018).
- Fixed a link-order bug that left libOpenMS.so with undefined libxml2 symbols when
Arrow is linked statically, which ARROW_USE_STATIC (our own option, default ON)
selects whenever a static Arrow target exists. libxml2 was listed as a direct
OpenMS dependency, which put it ahead of libarrow_bundled_dependencies.a on the
link line; an --as-needed linker then dropped it and `import pyopenms` failed with
"undefined symbol: xmlBufferFree". It is now appended to Arrow's link interface,
where the ordering is correct. The symbols come from the bundled
azure-storage-common, not from the AWS SDK, which brings its own XML parser (#10136).
- Improved CMake 4/MSVC, clang/Xcode, OpenMP and non-vcpkg ONNX builds, plus Debian
dependency packaging to avoid .deb conflicts. OpenMP requests fail clearly when
unavailable; SIMD-only compilation works without a runtime. Fixed
YAML CTD parsing and optional WNet tool registration (#8368, #8880, #9056, #9223,
#8496, #9267, #9388, #9651, #9653, #9783, #9784, #9971).
- Documentation formulas use MathJax, removing Ghostscript. Removed obsolete developer
scripts, ENABLE_STYLE_TESTING, doc_xml and stale examples/schemas. Runtime schema
coverage is retained; QcMLFile/PepXMLFileMascot validation remains unavailable and
now throws NotImplemented (#9740, #9757, #9771, #9945).
- The Debian package derives its libc6, libstdc++6, libgomp1 and libgcc-s1 dependencies
from the shipped binaries with dpkg-shlibdeps, so they cannot go stale as the declared
libc6 (>= 2.28) had, and the package does not install on distributions too old to run
it. This needed the install tree cleaned up first: the bundled tools were installed
verbatim, including ThermoRawFileParser's NuGet runtimes/<rid>/ directories, which
carry libMono.Unix.so for nine runtime identifiers (android-arm, android-arm64,
android-x64, android-x86, linux-arm, linux-arm64, linux-x64, osx-arm64, osx-x64).
Most are foreign to whichever host builds the package, and dpkg-shlibdeps treats a
foreign-architecture binary as an error rather than as missing information, so no
package was produced at all. Only the runtime identifiers the build targets are
installed now; the parser's own Mono.Unix.dll.config maps the library to linux-x64,
osx-x64 and osx-arm64 and to nothing else, so the others could never be loaded
(#10202, #10207, #10211).
- Debian package clean-up (#10230). Libraries no longer carry empty RUNPATH entries,
which the dynamic loader reads as the current working directory: the release
workflow links under PACKAGE_TYPE=none, whose install RPATH also names the build
tree's vcpkg directory, and packages after reconfiguring, so CMake kept most of the
':' padding of the longer build-tree RPATH. libOpenSwathAlgo (and on arm64 the
Thermo bridge) shipped with $ORIGIN/../lib/ and about 90 empty entries; CPack now
removes them before building the package. The arm64 build takes the Thermo bridge
from vcpkg, as every other platform does: vcpkg.json still left it out on
linux & arm64 from when Thermo RAW reading was off there (#10206 turned it on), so
the arm64 build fetched and built the bridge itself and packaged the bridge's
headers, CMake package, .pdb and a second copy of its managed assemblies. The vcpkg
port also installs the Thermo RawFileReader license now, so every package ships it
under share/OpenMS/LICENSES as the from-source build did; before, only the arm64
package had it. Depends is now exactly what dpkg-shlibdeps derives. The hand-written
entries had gone stale: the Qt ones are derived anyway, and the derived plain t64
names made their "t64 | non-t64" alternatives unenforceable; nothing links yaml-cpp
dynamically; and SQLite ships inside the package, so libsqlite3-0 was never used
(#10259).
- The DEB installed the 53 third-party libraries it bundles and the Thermo bridge
world-writable (mode 0777) in /usr/lib, among them libssl.so.3 and libcrypto.so.3, so any
local user could replace code that the OpenMS tools load, also when root runs them. The
macOS package installed the headers and resources of its Qt frameworks world-writable.
Bundled libraries are now writable by their owner only (0755), like any installed library
(#10324).
- The container image build failed on every nightly run once WITH_THERMO_RAW defaulted
to ON on Linux aarch64 (#10206): the Dockerfile still installed the .NET SDK/runtime
that openms-thermo-bridge needs only for amd64, so the arm64 build could not find
the dotnet executable at configure time. Both installs are now unconditional (#10210).
- Linux wheels are built in a container with the checkout bind-mounted, which made git
refuse the repository and left the embedded version a placeholder. The build marks the
checkout safe, and any git failure now falls back to the "exported" version string
instead of leaking the placeholder into VersionInfo and package file names (#10202).
- MACOSX_DEPLOYMENT_TARGET is declared once for the wheels; the workflow value silently
overrode pyproject.toml, which moved the supported macOS floor without notice. A CI
check compares the Mach-O load commands of each wheel against its platform tag, so a
wheel can no longer install on a macOS it cannot run on (#10202).
- The macOS package states the macOS it needs. The build targets macOS 15, the macOS its
Homebrew libraries are built for, instead of 14. The installer refuses older versions,
and TOPPView, TOPPAS and INIFileEditor declare the build's target in their Info.plist
instead of macOS 12 (#10286).
- vcpkg builds OpenBLAS, which COIN-OR's LAPACK pulls in, for a fixed CPU target on Linux:
CORE2 (SSSE3, the baseline OpenMS itself is compiled for) on x86_64 and ARMV8 on arm64. It
used to take the kernels for the CPU of the build machine, and the binary cache passed that
build on to later builds and to the packages. The 2026-09-24 nightlies shipped an OpenBLAS
that needs AVX2 on x86_64 and SVE on arm64, which not every supported CPU has, and clang
debug builds failed on x86_64 machines with AVX-512 (#10264).
- The installers and the pyOpenMS wheels ship the license texts of the third-party code they
contain; before, share/OpenMS/LICENSES held only the OpenMS license. It now also holds the
licenses of the vcpkg ports, which the packages and the Linux and Windows wheels contain
(vcpkg/), of Qt with where to get its source (Qt/, Windows and macOS), of the Homebrew
formulae whose libraries the macOS package and wheel bundle (homebrew/), of the system
libraries the wheel repair tools copy in, such as GCC's OpenMP and Fortran runtimes
(system/), and of the code that OpenMS carries in its source tree and compiles into
libOpenMS, such as Percolator with its NOTICE file (vendored/).
share/OpenMS/THIRD-PARTY-NOTICES.txt gathers them in one file: the third-party components,
grouped by where they come from, and each text once. The DEB also installs it, after the
OpenMS license, as /usr/share/doc/openms/copyright, and License.txt points to it (#10292).
- The tools the installers bundle from THIRDPARTY come with their license texts: Comet,
MaRaCluster, Percolator and the assemblies of ThermoRawFileParser, and so do the
assemblies of the in-process Thermo reader (openms-thermo-bridge 0.3.1). SpectraST is no
longer bundled: it is GPL-licensed and was shipped without its license text or source code.
SpectraSTSearchAdapter runs a separately installed spectrast given with -executable
(OpenMS/THIRDPARTY abe0956, #10292).
- The Windows installer no longer includes ProteoWizard (msconvert and the instrument vendors'
libraries in THIRDPARTY/pwiz-bin). OpenMS does not use it; to convert other vendor formats
with msconvert, install ProteoWizard from https://proteowizard.sourceforge.io/ (#10292).
- The Windows installer and the Linux x86_64 DEB no longer include X!Tandem
(THIRDPARTY/XTandem). No OpenMS tool has run it since XTandemAdapter was removed in 3.4.0,
and its Linux build embeds expat 2.0.1, which Critical CVEs such as CVE-2016-0718 affect.
OpenMS still reads X!Tandem's result files (#10344).
- TOPPView and TOPPAS show the notice that Thermo's RawFileReader license asks for in their
About dialog, in builds with the in-process Thermo reader (#10292).
------------------------------------------------------------------------------------------
---- OpenMS 3.5.0 (Released December 2025) ----
------------------------------------------------------------------------------------------
NOTICE: 3.5.0 was the last official release for MacOS on Intel processors.
If you need support for OpenMS on that platform moving forward, please contact us.
General:
- speed improvements:
- loading .gz files is about 7% faster (#8069)
- loading of mzML files with more than than m/z+intensity (e.g. ion mobility) is 20-40% faster (#8074)
- loading of mzML files is 7-25% faster in general (SIMD ASCII conversion) (#8105)
- linux arm64 support:
- OpenMS releases now include a .deb for arm64 machines
Dependencies:
- PyOpenMS now depends on Autowrap 0.24.0
- PyOpenMS now supports Cython 3.1
- CMake now accepts Eigen 5 in addition to Eigen 3.4+ (#8366)
- Apache Arrow/Parquet integration for high-performance columnar data export (#8091, #8145)
PyOpenMS:
- PyOpenMS now has wheels for arm64 linux machines
- PyOpenMS wheels are now available for Python 3.14 on all supported operating systems
- Parquet support enabled in pyopenms wheels (#8422)
- BREAKING: DataFrame column names standardized to lowercase snake_case for PEP 8 compliance.
Affected methods: MSSpectrum.get_df(), MSChromatogram.get_df(), ConsensusMap.get_metadata_df(),
FeatureMap.get_df(). Example changes: 'RT' -> 'rt', 'MZ' -> 'mz', 'nativeID' -> 'native_id',
'precursorMZ' -> 'precursor_mz'. Update code that references old column names.
- Pythonic convenience methods added:
- __len__() for MSSpectrum, MSChromatogram, MSExperiment, AASequence (#8151, #8415, #8417)
- __str__() and __repr__() for core classes (#8429)
- Python accessors for drift time on MSSpectrum and OpenSwathSpectrum (#8423)
- New Python bindings for Mobilogram and MobilityPeak1D classes (#8377)
- DataFrame wrapper for MSSpectrum with get_df() method (#8435)
- Enum class support in Python bindings with IntEnum (#8405)
- Static methods to query enum names for METADATA classes (#8353)
- Fix: PyOpenMS import no longer affects Python locale settings (#8322)
- Improved pyOpenMS documentation for Feature, MRMFeature, FeatureMap classes (#8247)
TOPP tools:
Changes:
FileFilter:
- Filter RT by blocks of MS levels (#8239)
SageAdapter:
- Improved parameter documentation and tolerance validation (#8259)
- Now correctly passes threads parameter via RAYON_NUM_THREADS (#8260)
CometAdapter:
- All enzymes now available by adding CometIDs to database (#8280)
DecoyDatabase:
- Added repeated shuffle option for improved decoy generation (#8339)
MassTraceExtractor:
- support for Bruker Ion Mobility (experimental). Note: requires IM peak picked data.
FeatureFinderCentroided, FeatureFinderMetabo, FeatureFinderMultiplex:
- FAIMS support (experimental): Automatic detection and separate processing of FAIMS compensation voltage (CV) groups.
Features from different CVs representing the same analyte are merged by default.
FeatureFinderMetaboIdent, FeatureFinderIdentification:
- FAIMS support (experimental): Automatic detection and separate processing of FAIMS compensation voltage (CV) groups.
Features from different CVs representing the same analyte are merged by default.
- Bruker TimsTOF ion mobility support (experimental): Requires concatenated IM spectra in mzML format
(use msconvert with --combineIonMobilitySpectra option). IM values can be specified in the input TSV/idXML.
NucleicAcidSearchEngine:
- add support for global fixed modifications as a search parameter
Digestor:
- supports replacing ambiguous amino acids (X,B,J,Z) in the FASTA input with random unambiguous amino acids in the output (#8167)
all:
- show load/store progress for files in all TOPP tools (#8041)
IonMobilityBinning:
- Detect FAIMS data automatically and split output per FAIMS compensation voltage (CV)
FLASHDeconv:
- Major update with improved scoring, FDR estimation, and isobaric quantification support (#8257)
- Automatic mass tolerance estimation from data
- Per-MS-level deconvolved spectrum outputs
- TopFD version 1.7 compatible feature and TSV export formats
- Improved precursor mass assignment for MSn spectra
Added Tools:
- OpenNuXL - A peptide-RNA/DNA cross-linking search engine
- ProSE - Experimental peptide database search engine using a fragment index (FI) and the new ProSEAlgorithm
- FeatureFinderLFQ (experimental) - Feature detection for label-free proteomics DDA-LFQ based on the Biosaur2 algorithm with support for FAIMS and TimsTOF ion mobility
- PeakPickerIM - Ion mobility peak picker for TimsTOF and other IM data. Supports three methods: mobilogram-based,
clustering, and elution profile-based picking. Supports both in-memory and low-memory streaming modes. (#8177)
- IsobaricWorkflow (experimental) - Simple, targeted, fast workflow for isobaric quantification (#7298)
Removed Tools:
- OpenPepXLLF - Experimental search for cross-linked peptide pairs in tandem MS spectra (showed inferior performance in benchmarks)
- IDMassAccuracy - Calculates a distribution of the mass error from given mass spectra and IDs
- SpecLibCreator - Creates an MSP formatted spectral library
- SpecLibSearcher - Identifies peptide MS/MS spectra by spectral matching with a searchable spectral library
GUI tools:
- fix TOPPAS crash when using TOPP tools with multiple output formats (#8120)
OpenMS Library:
Added:
- PeakPickerIM (experimental): New algorithm for ion mobility peak picking with three methods (mobilogram, cluster, elution profiles). (#8177)
- IMFormat: Added CENTROIDED and UNKNOWN format types for ion mobility data. (#8177)
- MSSpectrum/SpectrumSettings: Added setIMFormat()/getIMFormat() API for per-spectrum ion mobility format tracking. (#8177)
- FeatureFinderAlgorithmBiosaur2 (experimental): Feature detection algorithm for label-free proteomics DDA-LFQ based on the Biosaur2 algorithm with support for FAIMS and TimsTOF ion mobility.
- PeptideHit: Added TargetDecoyType (TARGET, DECOY, TARGET_DECOY, UNKNOWN) and setTargetDecoyType()/getTargetDecoyType(); supports target+decoy peptide hits.
- IDScoreSwitcherAlgorithm: Added findScoreType() method for generic score type detection. Checks if main score matches requested ScoreType (PEP, QVAL, FDR, etc.) or finds it in meta values..
- ProteinHit: Added TargetDecoyType (TARGET, DECOY, UNKNOWN) and setTargetDecoyType()/getTargetDecoyType().
- Both: Added isDecoy().
- unify isotopic distributions (coarse vs. fine) for EmpiricalFormulas with charge (#8099)
- FragmentIndex (experimental): New fragment index for fast peptide fragment lookup supporting FI-based peptide database search.
- ProSEAlgorithm (experimental): Library algorithm leveraging FragmentIndex for peptide database search; used by the ProSE TOPP tool.
- AhoCorasick: Improved high-performance string matching algorithm with path compression (#8269, #8304)
- HashGrid: Exposed cellIndexAtClusterCenter method (#8318)
Changes:
- removed `assignRanks` and `sortByRanks` in PeptideIdentifications and sort and filter by score instead. Also removed `updateHitRanks` in IDFilter (#7991)
- remove rank member in PeptideHit and store ranks as meta value (for backwards compatibility). (#7997)
- std::vector<PeptideIdentification> now is encapsulated in a class PeptideIdentificationList.
- Zlibcompression using zlib (not Qt) and Base64 decoding for zlib-compressed data using SIMD (not Qt) (#8161)
- Exception::InvalidSize now includes mandatory context message (#8437)
- Matrix::operator== no longer throws assert when comparing different-sized matrices (#8305)
- Removed boost::smart_ptr dependency, using std::shared_ptr instead (#8405)
- C++20 modernization: std::erase_if, range-based for loops, default constructors (#8229, #8230, #8233)
New Features:
- FAIMSHelper: dataset-wide FAIMS detection; ignore DRIFTTIME_NOT_SET sentinel; improved warning
- IMDataConverter::splitByFAIMSCV: retain MS2 without explicit FAIMS CV by assigning to prior FAIMS CV
- added `EnzymaticDigestion.semiSpecificDigestion_()`
- ProteaseDigestion: add support for semi-specific digestion (#8130)
- TransformationModelLowess: Add option to automate span selection via cross-validation (#8166)
- OpenSwath:
- Added automated iRT calibration using input transition list (#8146)
- Added automated RT, m/z, and IM extraction window estimation based on iRT calibration (#8188)
- Added lowess span grid search params and updated documentation for OpenSwathWorkflow TOPP tool (#8297)
- Added priority inclusion list for iRT sampling from PQP when using automated iRT calibration (#8373)
Fixes:
- Fix overlap test in crowded FAIMS data (#8418)
- Fix window estimation when no MS1 maps available in OpenSwath (#8308)
- Fix column header filenames for all maps in Decharger/MetaboliteAdductDecharger (#8265)
- Fix ternary operator misuse in FileMerger append_method logic (#8263)
- Fix Qt6 deprecation warnings (#8248)
- Fix FileNotFound exception misuse for file access errors (#8274)
- Fix peaks being skipped in OpenSwath wide boundary selection method (#8316)
- Fix mzTab-M validation errors for missing identification and database metadata (#8363)
- Fix negative offset handling in mzML readers (#8336)
Documentation:
- Build instructions rewritten for macOS and Linux (#8042)
- Comprehensive documentation added to DeMeanderize tool (#8264)
------------------------------------------------------------------------------------------
---- OpenMS 3.4.1 (May 2025) ----
------------------------------------------------------------------------------------------
Documentation:
- TOPPAS: tutorial update (#8025)
Fixes:
- TOPPView: fix a few error messages boxes (in IM frames, and 2D projections) (#8047)
- RANSAC algorithm: avoid r^2 is zero; fixes crash in OpenSwathWorkflow (#8052 )
------------------------------------------------------------------------------------------
---- OpenMS 3.4.0 (May 2025) ----
------------------------------------------------------------------------------------------
General:
- OpenMS now expects a compiler that supports C++20
- OpenMSInfo TOPP tool now informs about custom CXX compile flags (#7846)
- speed improvements:
- TOPP tool FeatureFinderCentroided TOPP tool is 28-44% faster (internally GaussTraceFitter is 4-7x faster) (#7950)
- mzML parsing is 6% faster (#7850)
Dependencies:
- switch to Qt 6 (>= 6.5) (#7525)
OpenSwath:
- changes to -out_features (# 7793)
- Deprecate .tsv feature output
- Deprecate -out_osw, -out_tsv. -out_features is used for outputting .osw or .featureXML files and file format is autodetected.
- Enable outputting any feature file (.osw or .featureXML) from a .tsv library
- add warning message if irt_im_extraction_window not set and im_window is set (#7813)
- add auto add up spectra across the peak width in retention time for ion mobility extraction (#7742)
- add peak-picking for extracted ion mobilogram (#7759)
- add ion mobility scoring for identifying transitions for IPF (#7760)
- bug fix: pass `im_range` to `scoreIdentification_` instead of computing it in the function. Addresses issue #7883. (PR #7885)
Misc:
- pyOpenMS: improve developer experience (installation/compilation) (#7735)
- TOPP tools and TOPPAS/ExecutePipeline return exit code 14 when external third-party tools (such as Comet or Sage) are not found (#7758)
- ProteinInference tool: Algorithm:score_type allows switching the main score (e.g., "RAW", "PEP") for BasicProteinInference. (#7769)
- README.md: Added dedicated "Building OpenMS" section with direct links to platform-specific build instructions (#7912)
- TOPPAS: tutorial now includes Pipeline and Node updating (#8025)
Fixes:
- fix AScore algorithm when counting phosphorylation events (#7905)
- add option to PeakFileOption to ignore loading of chromatograms or spectra from mzML (#7901)
- fix Doxygen Docs contain stty warning for TOPP tool output (#7865)
- fix various issues with the Windows installer (#7995, #7996, #8001)
- TOPPView: open theoretical spectra immediately in 1D to avoid crash when opening in 3D mode (#8019)
Library:
- IDScoreSwitcherAlgorithm: Added switchToScoreType and switchBackScoreType methods for score switching and reversion. (#7769)
- made FASTA file reader more robust in presence of whitespaces (#7960)
- add 3' cyclophosphate version of RNAse 4, fix handling of cleavage gains (#7928)
Removed tools:
- XTandemAdapter
- MascotAdapter (note: MascotAdapterOnline still exists) (#7927)
------------------------------------------------------------------------------------------
---- OpenMS 3.3.0 ----
------------------------------------------------------------------------------------------
What's new:
- Changes breaking backward compatibility:
- the QualityControl TOPP tool has some renamed parameters and supports output directories (#7497)
- Low-level peak extraction helper for MSExperiments (#7628)
- pyOpenMS: use Numpy2 (#7539)
- Docker files are now part of the main OpenMS repo (#7303)
- Added new functionality to SageAdapter + compatibility with new Sage versions (#7577)
Library:
- TOPPView:
- offer Ion mobility view from 2D spectra view (#7423)
- view ion mobility frames, irrespective of its MS level (formerly only MS1 was supported) (#7427)
- OpenSwath:
- Add output on peak shape metrics to .osw file (#7222)
- Update IonMobilityScoring to use Mobilogram Kernel datastructure (#7587)
Misc:
- FileInfo:
- support MzTab files (#7568)
- TOPPAS
- supports writing results to output directories (for TOPP tools that have such parameters) (#7497)
- TOPPAS tutorial enhanced (#7497)
- TOPPAS & TOPPView: new splash screen with new OpenMS logo (#7712)
- FeatureFinderMetabo
- added report_smoothed_intensities parameter (#7594)
- Write out percolator features in search engine adapters (by default, no PSMFeatureExtractor is needed)
- Add isobaric correction defaults for tmt6plex and 11plex (#7601)
- Decoy phosho added to unimod.xml (#7612)
- Add additional convenience functions for MSExperiment (#7630)
- Improve file list comparison (#7645)
- pyOpenMS: Add more convenient constructor for AASequence (#7650)
- Add annotate_features param in Deisotoper.cpp (#7643)
- internal enhancements (#7652)
Fixes:
- OpenMS does not compile when using GLPK (instead of COINOR) (#7626)
- fix MassCalculator error ('residue type has no name') (#7698)
- pyOpenMS
- get_feature_df() in MRMTransitionGroupCP, output is now as expected (#7646)
- Fix scan number extraction for merged spectra (#7599)
- Cmake fix (#7625)
- use Boost config instead of find module (new policy of CMake)
- escape quotes in whitespace strings
- remove invalid PRE_BUILD option (in combination with OUTPUT)
- update diff regex and actual results (which seem to have changed with recent Sage versions...)
- MzTab: preallocate enough memory instead of allocating in the loops (#7624)
- add check that otherwise will result in out of memory error
- reduce memory fragmentation on huge files
- KNIME Plugin: Fix categories (#7622)
------------------------------------------------------------------------------------------
---- OpenMS 3.2.0 (released 09/2024) ----
------------------------------------------------------------------------------------------
What's new:
- Changes breaking backwards compatibility:
- Rename of parameters for TOPP tool FeatureFinderCentroided (debug -> advanced), and PeakPickerWavelet/TOFCalibration (optimization -> optimization:type) (#7154)
- Rename of parameters for TOPP tool IDFilter (score:pep -> score:psm; score:prot -> score:protein; score:protgroup -> score:proteingroup) with 'nan' as new default (#7541)
- 3.2.0 KNIME package requires KNIME 5.3 or later
- Support for SubsetNeighborSearch (SNS) via DecoyDatabase (#7565)
- SageAdapter received large updates including added functionality for PTM discovery + enabling features such as chimera seach, RT prediction, filtering by q-value, etc.
Library:
- Extend FileHandler to support load and store operations for our major datastructures (spectra, features, identifications, etc.). Replaced file type specific code with the more generic FileHandler calls to decouple the IO code from other parts of the library.
- SiriusAdapter reworked to SiriusExport: Instead of running SIRIUS directly, this reworked tool takes multiple mzML and feautureXML (optional) files exporting a single SIRIUS .ms input file as well as an input table with compound info from features for the new AssayGeneratorMetaboSirius tool. (#7234)
- Splitting AssayGeneratorMetabo into two tools: In line with the changes to SiriusExport this tool has been split into two separate workflows. AssayGeneratorMetabo generates an assay library from mzML and feautreXML files using an heuristic approach picking the highest intensity MS2 peaks (like before). AssayGeneratorMetaboSirius takes an existing SIRIUS project directory as input to generate an assay library based on fragmentation trees. (#7234)
- better documentation for all SpectraFilter... tools (#7183)
- TOPPView: offer Ion mobility view from 2D spectra view (#7423)
- TOPPView: view ion mobility frames, irrespective of its MS level (formerly only MS1 was supported) (#7427)
- OpenSwath: Add output on peak shape metrics to .osw file (#7222)
New Tools:
- IonMobilityBinning - Merges spectra with similar IM values and creates @p N output mzML's by discretizing the IM range (#7459)
- AssayGeneratorMetaboSirius -- Assay library generation from a SIRIUS project directory (Metabolomics)
- SiriusExport -- Metabolite identification using single and tandem mass spectrometry
Fixes:
- FileConverter: more robust (#7176)
- MSFragger: allow relative path to database (#7155)
- MSGFPlusAdapter: allow concurrent creation of indexed database (#7272)
- CometAdapter: work around bug in Comet 2024.01 rev. 0 to avoid empty results (#7540)
- ParamEditor: fixed error for the subsection parameter (ParamNode) to go through store function (#7180)
- TOPPView:
- fix crash when viewing certain Chromatograms (#7220)
- in 2D view, show correct adjacent layers in context menu, if user clicked to the right of the last MS1 scan (now shows the 4 rightmost MS1 scans, used to show the 4 leftmost scans) (#7423)
- fix glitches in 1D view and layer names (#7549)
- Show prefix ions (e.g. b1) when generating theoretical spectra (#7567)
- TOPPAS: open files in TOPPView (#7213)
- pyOpenMS: Log warnings in pure Python code with warnings.warn instead of print (#7418)
- more robust parsing of mzIdentML (#7153)
- SageAdapter now works with sage v0.15.0 and beyond
- OpenSwath: Fix bug in diaPASEF window determination (#7546)
Misc:
- FileInfo: Report ion mobility ranges (if any) (#7459)
- OpenMSInfo reports the ILP solver (CoinOr or glpk) (#7156)
- add citation information for OpenMS 3.0 (Nat. Methods) (#7383)
- Add export for Common Workflow Language (CWL) (#6156)
- Add tool description lib (TDL) dependency (#6156)
- Docker containers have been optimized (#7303)
Changed/new parameters: see CHANGELOG_PARAMS for details
Note: The goal of our library is to provide useful, reusable code in a way that’s easy to understand and use.
To make OpenMS simpler, more focused and more accessible we gradually remove potentially outdated tools and algorithms.
If you, as a user, are negatively affected by this step please contact us. We listen to our users and will try to find
an alternative solution or reverse a particular decision for removal.
Cleanup/Removal:
- removed tools:
- SpectraFilterMarkerMower -- Applies thresholdfilter to peak spectra (#7183)
- FeatureFinderIsotopeWavelet -- Detects two-dimensional features in LC-MS data
- PeakPickerWavelet -- Finds mass spectrometric peaks in profile mass spectra
- PrecursorMassCorrector -- Corrects the precursor entries of MS/MS spectra, by using MS1 information
- TOFCalibration -- Applies time of flight calibration
- ERPairFinder -- Util which can be used to evaluate pair ratios on enhanced resolution (zoom) scans
- RNPxlSearch -- Annotate RNA/DNA-peptide cross-links in MS/MS spectra
- SpectraFilterSqrtMower -- Applies thresholdfilter to peak spectra
- FeatureFinderMRM -- Detects two-dimensional features in LC-MS data
- MapAlignerSpectrum -- Corrects retention time distortions between maps by spectrum alignment
- ProteinResolver -- protein inference
- SiriusAdapter -- Tool for metabolite identification using single and tandem mass spectrometry
- SpectraFilterBernNorm -- Applies thresholdfilter to peak spectra
- SpectraFilterScaler -- Applies thresholdfilter to peak spectra
- removed library code:
- HiddenMarkovModel
- PeakPickerMaxima
- DeNovo related, old marker code
- removed tutorials:
- Tutorial_PeakPickerCWT
- Tutorial_TOFCalibration
- removed tests:
- TOFCalibration_test
- ContinuousWaveletTransformNumIntegration_test
- ContinuousWaveletTransform_test
- FeatureFinderAlgorithmIsotopeWavelet_test
- IsotopeWaveletTransform_test
- IsotopeWavelet_test
- OptimizePeakDeconvolution_test
- OptimizePick_test
- PeakPickerCWT_test
- PeakShape_test
- Deprecated (and likely removed in the next release)
- XTandemAdapter
------------------------------------------------------------------------------------------
---- OpenMS 3.1 (released 10/2023) ----
------------------------------------------------------------------------------------------
We are excited to share an experimental update with our community, mainly targeted at platforms that depend on Conda packages.
Please note that this is a partial and unannounced release, focused on delivering novel features and major changes that we're actively testing and refining.
While these features are still in an experimental phase, we encourage adventurous users and platform integrators to explore and provide feedback.
Important Notes:
- Features are experimental and may undergo changes or be removed in future releases based on user feedback and stability.
- We welcome your feedback and suggestions to help us improve and refine these experimental features.
- For stability and production use, we recommend sticking with the latest stable release.
Please use this opportunity to test and provide feedback on these new features, as your input will play a vital role in shaping their development.
Thank you for being a part of our community and for helping us make OpenMS even better!
What's new:
- Major change: removed the distinction between TOPP tool and util and the TOPP and UTIL build targets were merged to a single TOPP target. All utils are considered tools now and categorized as "Utilities".
- Added SageAdapter. Support for standard identification tasks with sage (https://github.com/lazear/sage) (experimental).
- Require some advanced instruction sets for x64 CPUs: SSE3 (g++/clang) or AVX (MSVC); and NEON for ARM64 CPUs (#6978)
and report them via the OpenMSInfo tool (#7022)
- Base64 encoding/decoding using the SIMDe library (#6978)
- Filter features in ProteomicsLFQ according to feature p-value (additional parameters feature_with(out)_id_min_score, MBR is automatically active if targeted_only = false)
- TOPPAS: filter TOPP tools by name for faster access when building a pipeline (#7139)
Fixes:
- Fix a crash when loading mzML data with multiple threads which contains non-MS spectra, e.g. 'electromagnetic radiation spectrum' (#7011)
- InternalCalibration: improve visualization of calibration plots (#7064)
- Restore TOPPAS tutorial (#7076)
- various low impact UBSan fixes
- make mzData more robust against wrong 'length' attributes for binary data (#7113)
Misc:
- Report reading/writing throughput (MiB/sec) when loading/storing mzML (#7035)
- Add ability to create decoy features in FeatureFinderIdentification
- Restore developer quick guide in Doxygen docu - see https://openms.de/current_doxygen/html/index.html (#7109)
- Updated the changelog helper to set LD_LIBRARY_PATH automatically and other fixes
- Added "area" column to EICextractor output
Cleanup of old/unused tools and code:
- Removed old tools and associated code in the library for InclusionExclusionListCreator, SvmTheoreticalSpectrumGenerator, PrecursorIonSelector, and MSSimulator
Note: general SVC and SVR is still supported with the SimpleSVM class.
- Removed old RT and PT predict code and tools RTModel, RTPredict, PTModel, PTPredict, RTEvaluation and associated library code (SVMWrapper and LibSVMEncoder).
- Removed PepNovoAdapter
- Removed CompNovoAdapter and library code
- Removed simplistic evaluation tools FFEval, LabeledEval, TransformationEvaluation
- Removed EnzymaticDigestionLogModel
- Removed FidoAdapter (same functionality now in our own inference engines)
------------------------------------------------------------------------------------------
---- OpenMS 3.0 (released 7/2023) ----
------------------------------------------------------------------------------------------
New Tools:
FLASHDeconv -- Ultra-fast high-quality deconvolution enables online processing of top-down MS data (TOPP)
FLASHDeconvWizard -- A GUI assistant for FLASHDeconv execution.
New Features:
e.g.
TMT18plex support (#6390)
ProteinQuantifier supports iBAQ (#6107)
OpenSwath: Add support for diaPASEF data with overlapping m/z and IM windows, and add new outputs on ion mobility features (delta_im), IM calibration (#5911, #6234, #6268)
OpenSwathDecoyGenerator speed improvement and remove duplicates (#6054)
NucleicAcidSearchEngine (NASE): user defined ribonucleotides with phosphorothioate linkages (#6337), JSON based ribonucleotides and updated to latest Modomics database (#6482)
TargetedSpectraExtractor: more features (#6106)
TOPPView: TheoreticalSpectrumGenerationDialog now supports generation of isotope patterns for metabolites (#6023); faster loading of external drag'n'drop data (#6837)
colored commandline/console on all platforms (#6275)
support for 'no cleavage' for XTandemAdapter and CometAdapter (#6133).
Percolator pin file reader (#6824)
JSON export for OMS files(SQLite) (#6114)
ParamEditor with more convenient StringList editing (#5135)
load parameter values from a JSON formatted .json file. (Accessible via -ini. This will be
helpful for Common Workflow Language users and others)
FileFilter can remove convex hulls of features and consensusFeatures to reduce file size (#6140)
Faster compile time (#6618)
Improving code quality by fixing lots of linting warnings and leaks (e.g. #6839, #6831, #6829)
Documentation:
website redesign (visit openms.org)
OpenMS user documentation is moved to openms.readthedocs.io/en/latest.
OpenMS API reference and advanced developer documentation remains inside OpenMS doxygen
documentation (https://abibuilder.cs.uni-tuebingen.de/archive/openms/Documentation/release/)
pyopenms: pyopenms-extra is renamed to pyopenms-docs.
Bug fixes
e.g.
GaussFilter when using ppm as width (#6830)
NASE a-B ion masses (#6718), ID-Mapper for TMT data (#6758)
FeatureFinderMetaboliteIdentification speed improvements (#6619)
IDRipper speed improvements (#6584)
Honor MissedCleavages in SimpleSearchEngine (#6889)
TOPPView: fixed lots of display glitches, e.g. axis labels, goto dialog and easier re-use of components, etc (#6673, #6616, #6592, #6703, #6793)
mzTab fixes for empty IDs (#6445)
Fix GNPS error for empty scans in Bruker files (#6898)
PrecursorPurity: handle unknown charge (#6283)
OpenSwath: Fix duplicated transition error when multiple genes map to a single peptide (#5653)
Fixed race condition when logging messages.
Removed tools:
InspectAdapter
OMSSAAdapter
MyriMatchAdapter
CruxAdapter
Supported compilers (when building from source):
g++ (7.0 or later, tested up to v13.0)
clang (?, tested up to v16)
Visual Studio (2019(v16.8.4) or later)
Full changelog: [OpenMS 2.8 → 3.0](https://github.com/OpenMS/OpenMS/compare/Release2.8.0...Release3.0.0)
------------------------------------------------------------------------------------------
---- OpenMS 2.8 (released 2/2022) ----
------------------------------------------------------------------------------------------
- source + conda release only
- Restructuring of Imported CMake targets and pyOpenMS CMake
- Reduce exposition of third-party libraries to interface
- greatly improved pyOpenMS documentation and extra functions (in the pyopenms-extra submodule)
- Fixes IDMapper for isobaric labelling experiments (will lead to much more identifications)
- Deisotoping algorithm using KL
- PeptideIndexer supports ambiguous AA's in Peptide sequence (as reported by recent Mascot versions) (#5776)
- SeqAn external library removed from source tree (not needed anymore)
- Resolve compatibility issues between IDRipper and IDMerger (#4957)
- Basic MzTabM support for AccurateMassSearch
- Changed default parameter keep_unidentified_masses to "true" (AccurateMassSearch/AccurateMassSearchEngine)
- Added parameter allow_nterm_protein_cleavage to PeptideIndexer to support no cleavage.
- Fixes and improves TheoreticalSpectrumGenerationDialog in TOPPView (closes #5787) (#5883)
------------------------------------------------------------------------------------------
---- OpenMS 2.7 (released 9/2021) ----
------------------------------------------------------------------------------------------
General:
- OpenMS now expects a compiler that supports C++17
- Config storage path on linux changed to ~/.config/
- Some documentation improvements to pyOpenMS https://pyopenms.readthedocs.io/en/latest/
- PyOpenMS checks if `OPENMS_DATA_PATH` environment variable is set, before setting to default value
Adapters/Third-party support:
- Added support for SIRIUS 4.9.0
- Added basic Triqler export
- Improved NOVOR support
- Improved MSFragger support
- Removed Inspect support
- Easier 15N-labeling support for XTandemAdapter by shipping the required AA mass modification file (#5026)
What's new:
- Add some support for integrating spectral information when conducting DDA metabolomics experiments
- SimpleSearchEngine and algorithm: Additional spectrum features for percolator added
- FeatureFinderMetaboIdent: Targeted feature extraction is now also available from pyOpenMS
- AssayGeneratorMetabo: Added SIRIUS 4.9.0 support, allowing internal decoy generation and added internal feature linking support
- QCCalculator: export in mzQC file format is now available
New Tools:
- OpenMSDatabasesInfo -- Prints the content of OpenMS' enzyme and modification databases to TSV (UTIL)
- TriqlerConverter -- Converter to input for Triqler (UTIL)
Removed Tools:
- FeatureFinderSuperHirn -- Finds mass spectrometric features in mass spectra (TOPP)
- InspectAdapter -- Annotates MS/MS spectra using Inspect (TOPP)
Further fixes:
- Support for GLPK 5.x (#5127)
- IPF (identification of peptidoforms): add a check for terminal residue modification when generating theoretical peptidoforms
- Reduced build times on Windows
- Reduced AddressSanitizer warnings
File formats:
- Exporter for MSP files
- Improved support for reading NIST MSP files
Dependencies:
- Promoted SeqAn v1 to C17. Moved Seqan from contrib to main source tree (as it is not officially maintained anymore).
Library:
- Removed Elements.xml and Residues.xml. Hard-coded elements and residues for better performance/startup times.
- Moved algorithm of FeatureFinderMetaboIdent into library
- Added support for isotopic labelling experiments (MDV)
- Removed SuperHirn library
GUI tools:
- TOPPView: Various bug fixes
- TOPPView: Dynamic detection of tools in TOPPView upon startup
- TOPPView: Improved DIA data browsing
- TOPPAS: add a `recent files` submenu
- ParamEditor: with more convenient StringList editing
- SwathWizard: Allow opening in TOPPView
------------------------------------------------------------------------------------------
---- OpenMS 2.6 (released 10/2020) ----
------------------------------------------------------------------------------------------
We now create nightly pyopenms wheels (https://pypi.org/project/pyopenms-nightly/) and conda packages (https://anaconda.org/OpenMS/)
Adapters/Third-party support:
- LuciphorAdapter now stores which modifications were used for localization (#4771) and localization scores are reported in mzTab #4772
- Added Percolator3.0 support, fixed ConsensusID reading from wrong (Percolator-overwritten) meta data (#4829), and adapted the Regex parsing of XTandem Percolator output files #4849
- Added options introduced in new MSGF versions #4713
- Updated IsoSpec fine structure isotopic calculator sources to v 2.1.0 #4733
- Updated other third-party tools
What's new:
- Introduced a Wizard for Swath data (#4647 #4706 #4758 #4769 #4773 #4837), which also reports summary statistics about Swath TargetedExperiments #4788 #4790
- UTIL StaticModification: Applies a set of modifications to all PeptideIDs in an idXML file (UTIL)
- TOPP DatabaseSuitability: Computes a suitability score for a database which was used for a peptide identification search. Also reports the quality of LC-MS spectra. #4791 #4781 #4814
- Added support for QC of labeled experiments (iTRAQ/TMT)
- Added automated QC computations for MRM (#4637)
- Adapted consensusXML and mzTab to support protein groups (#4630)
- Consensus/IDMerger: Introduced use of merge idx to ensure keeping track of primaryRuns
- Epifany: Added calculation of protein group FDR, ID filtering for protein group scores (#4802) and support for inference on not just individual samples but also consensusXML files
- FeatureFinderCentroided/FeatureFinderAlgorithmPicked: Improved runtime performance #4652 #4701
- FeatureFinderIdentification: Improved SLIM-labeling experiment support
- FileConverter: Improved runtime performance when producing mzML output #4750
- FeatureLinkerQT: Introduced Fibonacci heaps for large runtime optimization (#4721) and fixed related preconditions/segfaults #4756 #4760 #4778
- IDFilter: added support for consensusXMLs #4798 #4799
- MapAlignerIdentification: New option to use an "identity" transformation when data is too sparse to determine alignment model #4628
- MzTabExporter: changed to only export one main score, and to derive nativeIDs from data (#4767). Now ensures that all output rows contain the same number of columns #4801
- MzTabExporter on LFQ consensusXMLs produces 100% PRIDE validated mzTabs now
- ProteomicsLFQ: Added spectral counting as quantification method (#4726). Introduced performance improvements for AASequence and string parsing, especially for modified sequences. Various further improvements (e.g. #4669)
- SimpleSearchEngine (multithreaded), TheoreticalSpectrumGenerator, MSSpectrum: Runtime optimization #4709
- Further introduction of more file streaming to address possible memory consumption issues #4682 #4694
Further fixes:
- We now limit double precision to 17 digits during file writes #4636
- Ensure that CometAdapter always writes indexed mzML fixes for CometAdapter (#4653), fixed the writing of terminal modifications with specific origin in Comet (#4742), the writing of protein terminal mods in Comet and MSGF adapter #4710, and the Comet pepXML modification parsing #4755
- Removed secondary search engine settings duplication in mzTab MTD section. #4720
- Improved XTandem output protein parsing #4789 to fix Issue #4770
- Increased (partial) support for parsing mzid with nonstandard, non-CV-term scores, fixes #4859
- Fixes to NucleicAcidSearchEngine mzTab output #4692
- ConsensusID now passes spectrum reference meta values along #4703
- Fix to LFQ requantification #4633
- Improved MapAlignerTreeGuided memory usage (#4704) and fixed segfault when featureXML contains no IDs #4665
- TOPPAS fixes #4780
Various:
- OMMSAAdapter now writes out native ids and spectrum references #4852
- FileInfo: Report more charge distribution and MS2 activation-method information for Raw files #4836
- Added sum formula output in RNAMassCalculator #4677
- Added automatic OpenMS tool reporting of peak memory usage #4712
- Some extra tools documentation outputs #4822 #4823
- Extended mapping of filetypes and mimetypes for knime output formats documentation #4839
- RTEvaluation: fixed output formats #4533
- Some further clarifications, standardization/consolidation of outputs formats/consistency
- Continued fixes/improvement of documentation
- Removed deprecated version of PeakPickerHiRes (LowMemPeakPickerHiResRandomAccess and LowMemPeakPickerHiRes). Their functionality can be accessed through options of PeakPickerHiRes
- moved the config storage location for unix installations to comply with X Display Group (freedesktop.org) guidelines.
-------------------------------------------------------------------------------------------
---- OpenMS 2.5 (released 2/2020) ----
-------------------------------------------------------------------------------------------
OpenMS 2.5 ships exciting new tools and improvements.
General:
- support for RNA mass spectrometry
- TMT16plex support for IsobaricAnalyzer (see PR #4295)
- improved MsStats/MsStatsTMT output support (see PR #4181, #4207)
- extended MaxQuant-compatible mzXML support (via FileConverter) (see PR #4432, #4423)
- QualityControl Workflow (all in the QC folder)
- OpenMS and pyOpenMS support for oligonucleotides
- OpenSWATH support for ion mobility extraction and scoring
- OpenSWATH support for metabolite assay library building through SIRIUS (and metabolite extraction and scoring)
- OpenSWATH support for PRM
- TOPPAS improvements (see PR #4100, #4121, #4266, #4497)
- fixes to PeptideIndexer for X!Tandem special cutting rules and ambiguous amino acids (see PR #4356)
- support for HDF5
- support for hyperfine isotopic distributions (through IsoSpec)
- JSON support (see PR #3786)
- speed improvements (loading/storing files, handling peptide sequences)
- support for VS2019 and GCC 9.1 (see PR #4211)
- support for outlier removal in IDPosteriorErrorProbability
- reduced memory footprint of FeatureFinderIdentification through batch processing
New Tools:
- Epifany -- Runs a Bayesian protein inference (UTIL)
- FeatureFinderMetaboIdent -- Detects features in MS1 data based on metabolite identifications (UTIL)
- GNPSExport -- Tool to export consensus features into MGF format (TOPP)
- NucleicAcidSearchEngine -- Annotate nucleic acid identifications to MS/MS spectra (UTIL)
- ProteomicsLFQ -- A standard proteomics LFQ pipeline (TOPP) (experimental)
- QualityControl -- Computes various QC metrics from many possible input files (only the consensusXML is required). The more optional files you provide, the more metrics you get (TOPP)
- RNAMassCalculator -- Calculates masses and mass-to-charge ratios of RNA sequences (UTIL)
- MapAlignerTreeGuided -- Aligns maps through hierarchical clustering based on distances computed between shared IDs.
Deprecated and removed Tools:
Changed Tools:
- OpenPepXL and OpenPepXLLF runtime and memory efficiency improved by orders of magnitude
- IDFilter can now filter by using all MetaValues available in the ID files
- ImageCreator uses updated gradients and has gained RT and m/z filtering options (PR #4188)
Status changed:
- OpenPepXL (UTIL -> TOPP)
- OpenPepXLLF (UTIL -> TOPP)
- XFDR (UTIL -> TOPP)
-------------------------------------------------------------------------------------------
---- OpenMS 2.4 (released 9/2021) ----
-------------------------------------------------------------------------------------------
OpenMS 2.4 introduces changes from 322 pull requests including new features and bug fixes.
Notable changes since version 2.3 are:
Dependencies:
- Switch to Qt 5 (>= 5.5)
Documentation:
- New developer documentation to get started developing tools with OpenMS
Library:
- Improved mass calculations for isotope distributions
- Moved tool code from the tool to the library
- BinnedSpectrum now also supports offsets
- Improved peak type estimation
- Improved adduct grouping
- New EMG fitter for peak intensity imputation
- Targeted / untargeted spectra extraction and matching
- Spectra matching against a spectra library, using contrast angle similary function
- More precise peak integration (trapezoid, simpson)
New tools:
- AssayGeneratorMetabo -- Assay library generation from DDA data (Metabolomics) (UTIL)
- ClusterMassTraces -- Creates pseudo spectra (UTIL)
- ClusterMassTracesByPrecursor -- Correlate precursor masstraces with fragment ion masstraces in SWATH maps based on their elution profile (UTIL)
- CruxAdapter -- Identifies MS/MS spectra using Crux (TOPP)
- MSFraggerAdapter -- Peptide Identification with MSFragger (UTIL)
- MSstatsConverter -- Converter to input for MSstats (UTIL)
- MaRaClusterAdapter -- Facilitate input to MaRaCluster and reintegrate (TOPP)
- NovorAdapter -- Template for Tool creation (UTIL)
- RNADigestor -- Digests an RNA sequence database in-silico (UTIL)
Deprecated and removed tools:
- AdditiveSeries -- Computes an additive series to quantify a peptide in a set of samples (TOPP)
- IDEvaluator -- Computes a 'q-value vs. #PSM' plot which is saved as an image to visualize the number identifications for a certain q-value (UTIL)
- IDEvaluatorGUI -- Computes a 'q-value vs. #PSM' plot to visualize the number identifications for a certain q-value (UTIL)
- RNPxl -- Tool for RNP cross linking experiment analysis (UTIL) (superseded by RNPxlSearch)
Changed Tools:
- SiriusAdapter now supports several input data
- FileFilter now supports filtering spectra by similarity
- PeptideIndexer now supports automatic detection of decoy suffix/prefix string and position
- PeakPickerHiRes now supports automatic detection and picking of profile spectra
- Support for MSFragger search engine through MSFraggerAdapter
- Support for Crux search engine through CruxAdapter
- Support for Maracluster through MaraClusterAdapter
- OpenPepXL was improved in efficiency and usability
- IDFileConverter now supports the Cross-Linking MS specific xquest.xml format
TOPPView:
- Improved visualization of identification results and ion annotations
- Support for visualization of Ion Mobility and DIA data
Major changes in functionality:
- None
File formats:
- Importer for MSP files
Scripts:
- None
Databases:
- None
Third-party software:
- New: maracluster (0.05)
- Update: MS-GF+ to Release (2018.01.30)
- Update: Sirius 4 for Windows 64bit, Linux 64bit, and MacOS 64bit
- Update: Crux (crux-3.1.8b78546) on all 64bit platforms.
-------------------------------------------------------------------------------------------
---- OpenMS 2.3 (released 1/18) ----
-------------------------------------------------------------------------------------------
OpenMS 2.3 introduces a considerable number of new features and bug fixes.
Notable changes since version 2.2 are:
TOPPView:
- Deletion of selections of Peak Annotations is reflected in the Peptide Hit
- Buttons for saving ID files were merged to one single button. Format is determined by file extension or selected filter
- Clicking on a data point in 2D view, the search range for close fragment ion spectra is extended if no spectra are found initially
New tools:
- CometAdapter -- Annotates MS/MS spectra using Comet (TOPP)
- MetaboliteAdductDecharger -- Decharges and merges different feature charge variants of the same metabolite (UTIL)
- OpenPepXL -- Tool for protein-protein cross-linking identification using labeled linkers (UTIL)
- OpenPepXLLF -- Tool for protein-protein cross linking with label-free linkers (UTIL)
- PSMFeatureExtractor -- Computes extra features for each input PSM (UTIL)
- SiriusExport -- Tool for metabolite identification using single and tandem mass spectrometry (UTIL)
- XFDR -- Calculates false discovery rate estimates on protein-protein-crosslink identifications (UTIL)
Deprecated and removed tools:
- None
Renamed tool:
- LowMemPeakPickerHiRes_RandomAccess was renamed to LowMemPeakPickerHiResRandomAccess
Major changes in functionality:
- Experimental design
- Add support for fractions
- FeatureLinkerUnlabeledKD
- m/z and retention time tolerances for warping and linking are now separate parameters
- IsobaricAnalyzer
- Support for TMT11plex (https://www.thermofisher.com/order/catalog/product/A34808)
- FileInfo
- For idXML files, the tool computes the average length of contained peptides
- TopPerc
- Renamed in PercolatorAdapter (still experimental)
- OpenSWATH:
- RT normalization now allows more models
- Add S/N ratio for each ion trace
- Support for C++11 (requires a compiler that supports C++11)
Library:
- TOPP tools report their peak memory usage when using -debug 1 (or higher)
- idXML files can now be written faster (about 10%)
- pyOpenMS bindings for DataArrayByName getters
- Python build are now split in compilation units and can thus run in parallel
- FASTA files can now be written
- Allow String values to be passed to EnzymaticDigestion::isValidProduct
File formats:
- consensusXML now supports both channels and MS runs. Information will also be exported in mzTab
Scripts:
- None
Databases:
- None
Third-party software:
- New: Comet "2016.01 rev. 3" for Windows 32bit/64bit, Linux 64bit, and MacOS 64bit
- New: Percolator 3.1.2 for Windows 32bit/64bit, Linux 64bit, and MacOS 64bit (still experimental)
- New: Sirius 3.5.1 for Windows 64bit, Linux 64bit, and MacOS 64bit
- New: SpectraST 5.0 for Windows 64bit, Linux 64bit, and MacOS 64bit
- Update MS-GF+ to Release (v2017.07.21)
-------------------------------------------------------------------------------------------
---- OpenMS 2.2 (released 11/2016) ----
-------------------------------------------------------------------------------------------
OpenMS 2.2 introduces a considerable number of new features and bug fixes.
Notable changes since version 2.1 are:
New tools:
- RNPxlSearch -- Annotate RNA to peptide crosslinks in MS/MS spectra (UTIL)
- SpectraSTSearchAdapter -- Interface to the SEARCH Mode of the SpectraST executable (UTIL)
- FeatureLinkerUnlabeledKD -- Feature linking using a KD tree (TOPP)
- DatabaseFilter -- Filters a protein database (FASTA format) based on identified proteins (UTIL)
- TargetedFileConverter -- Conversion of multiple targeted file formats (CSV, TraML etc)
Deprecated and removed tools:
- ITRAQAnalyzer -- superseded by IsobaricAanalyzer
- TMTAnalyzer -- superseded by IsobaricAanalyzer
- ConvertTSVToTraML - superseded by TargetedFileConverter
- ConvertTraMLToTSV - superseded by TargetedFileConverter
- MapAlignmentEvaluation -- removed as deprecated
Major changes in functionality:
- OpenSWATH analysis
- Support for metabolomics workflows
- Support for scanning SWATH (SONAR)
- Support for SQL-based file formats
- XTandemAdapter
- Simplified usage
- Improved support for PTMs and newer X! Tandem versions ("Vengeance", "Alanine")
- IsobaricAnalyzer
- Support for TMT10plex
- Support for quantification in MS3 data
- IDMapper
- Allows to map unidentified tandem mass spectra to features
- FeatureFinderIdentification
- Advanced multi-sample support using machine learning
- FileFilter
- Allows users to enable zlib and lossy compression (see "-lossy_compression")
- Allows users to set desired mass accuracy
- IDFilter
- Added option to filter for valid digestion products
- FalseDiscoveryRate
- Allow filtering by q-value in the tool (no need for IDFilter with "score:pep" option)
Library:
- Averagine approximation for fragment isotope distributions
- Precursor mass correction supports correction to highest intensity peak in tolerance window
- Functionality for resampling and adding of spectra
- Protein-protein cross-link spectrum generator
- Terminal modifications are now separated by "." in text output
- SQLite support in OpenSWATH
- TheoreticalSpectrumGenerator speed-up and removal of RichPeak code
- Removal of template parameters from MSExperiment (reduced compile time and binary size)
- Allow estimation of isotope distributions with predefined numbers of sulfur atoms
- Improved handling of bracket notation for modified residues (e.g. N[2457.877]VSVK)
- Improved handling of terminal and residue specificity of modifications
- Improved annotation of peptide identifications with spectrum references
- Improved handling of unknown amino acids ("X") in sequences
File formats:
- Improved mzML support for SONAR data and mzML with drift time (experimental)
- Improved support for cross-link data and unknown modifications in mzIdentML
- mzXML writer able to write MaxQuant-compatible files
- mzML files now routinely support substantial compression (up to 5x compression, see #2449, #2458)
- Support for Percolator result files based on X! Tandem searches
Scripts:
- New R script for visualizing RT transformations (trafoXML)
Databases:
- By default, decoy sequences are now denoted by the prefix "DECOY_"
Third-party software:
-------------------------------------------------------------------------------------------
---- OpenMS 2.1 (released 11/2016) ----
-------------------------------------------------------------------------------------------
OpenMS 2.1 introduces a considerable number of new features and bug fixes.
Notable changes since version 2.0.1 are:
New tools:
- ExternalCalibration -- Applies an external mass recalibration (TOPP)
- OpenSwathFileSplitter -- Splits SWATH files into n files, each containing one window (TOPP)
- MultiplexResolver -- Completes peptide multiplets and resolves conflicts within them (UTIL)
- TICCalculator -- Calculates the TIC from a mass spectrometric raw file (useful for benchmarking) (UTIL)
Deprecated and removed tools:
- PILISIdentification -- performs a peptide/protein identification with the PILIS engine (TOPP)
- PILISModelCV -- Perform a cross validation of the PILIS model parameters (TOPP)
- PILISModelTrainer -- Train the PILIS model with a given set of spectra and identifications (TOPP)
- PILISSpectraGenerator -- Generate spectra given a list of peptides and a PILIS model (TOPP)
Major changes in functionality:
- Update notification: starting with OpenMS 2.1 all TOPP tools will check for updated versions of the tools
online and will print an information message if a newer version is available. This version check occurs only
once per day and tool. Information on which tools are executed will be collected anonymously to identify which
tools are no longer used and to optimally distribute development resources. If the feature causes problems or
concerns, it can be disabled through a command line switch or environment variable (see the documentation).
- InternalCalibration:
- supports calibration using a table of lock masses and peptide ids.
- global or RT-chunked calibration
- linear & quadratic models (with intensity weighting)
- outlier removal via RANSAC
- reoccurring calibrations can be quickly applied to other files using the novel ExternalCalibration tool
- OpenSwathWorkflow
- support for metabolites / small molecules
- MapAlignerIdentification
- support for "lowess" transformation model
- AccurateMassSearch:
- support for multiple databases
- FeatureFinderMetabo
- isotope spacing model for carbon rich molecules (e.g. lipids)
- PeakPickerHiRes and MassTraceExtractor:
- support for FWHM annotation
File formats:
- Improved mzIdentML support (experimental)
- Improved pepXML support
- Improved support for indexed mzML files
- Improved TraML support
Databases:
- By default, decoy sequences are now denoted by a prefix 'DECOY_'.
Third-party software:
- update for 64-bit X!Tandem VENGEANCE (2015.12.15) NOTE: 32-bit version kept at SLEDGEHAMMER (2013.09.01)
- update for MS-GF+ Release v2016.10.14, released October 14, 2016
- update for pwiz 3.0.9935
-------------------------------------------------------------------------------------------
---- OpenMS 2.0.1 (released 4/2016) ----
-------------------------------------------------------------------------------------------
OpenMS 2.0.1 is a source only release of the core libraries and tools.
With over 300 merged pull requests, it introduces a considerable number of new features,
bug fixes and speed improvements.
Notable changes are:
File formats:
- Improved mzIdentML support (experimental)
- Improved mzTab support (experimental)
- Comet pepXML file reading support (experimental)
- Search parameter units are retained through id files
- Faster base64 decoding in XML files
Databases:
- HMDB has been updated to version 3.6
TOPPView:
- Added slight margin around data range (%2) for improved visualization
- Added FeatureFinderMultiplex to the tools accessible from TOPPView
- Some fixes to the scrollbar behaviour
Added tools:
- IDScoreSwitcher -- Switches between different scores of peptide or protein hits in identification data (UTIL)
- LuciphorAdapter -- Modification site localisation using LuciPHOr2 (TOPP)
- MetaProSIP -- Performs proteinSIP on peptide features for elemental flux analysis (UTIL)
- MzMLSplitter -- Splits an mzML file into multiple parts (UTIL)
- OpenSwathAssayGenerator -- Generates assays according to different models for a specific TraML (TOPP)
Removed tools:
- RTAnnotator -- Annotates identification files that are missing the RT field (UTIL)
Tools with major changes:
- OpenSWATH now outputs peak apices
- Improved iRT correction
- Assay generator
- UIS scoring
- Deuterium labeling in MetaProSIP (experimental)
- XTandemAdapter allows for external config file
- TextExporter can optionally export PeptideIdentification and PeptideHits meta-values
- FeatureLinkerUnlabeledQT speed improvements
- FileMerger allows to concatenate files in RT
- MzTabExporter supports protein IDs
- PeakPickerWavelet speedup
- HiResPrecursorMassCorrector supports correction of precursors to detected features
- FeatureFinderMultiplex speed improvements
Library:
- Support for user definable enzymes available in EnzymesDB.xml
- PeptideIndexing is now available as internal algorithm
- EnzymaticDigestion allows for minimum / maximum length constraints
- HyperScore and PScore implementations
- Fits allow extrapolation of data values
- QT clustering is now order independent
- Additional convinience functions to access the nearest spectrum peak in a mass tolerance window
- User defined averagine compositions
- A fast linear lowess implementation has been added
- MetaInfoInterface has been added to FeatureMap to store additional meta-values
- Calculation of Median Absolute Deviation
General:
- OpenMS writes indexed mzML by default
- OpenMS home directory can be configured through OPENMS_HOME_DIR environment variable
- Updated GenericWrapper definitions for MS-GF+ and Mascot
Third party software:
- LuciphorAdapter (experimental) PTM localization using the LuciPHOr2 algorithm (http://luciphor2.sourceforge.net/)
-------------------------------------------------------------------------------------------
---- OpenMS 2.0 (released 4/2015) ----
-------------------------------------------------------------------------------------------
Release date: February 2015
OpenMS 2.0 is the first release after the switch to git and a complete overhaul of the
build system. It introduces a considerable number of new features and bug fixes.
Furthermore, we removed the dependency to GSL and replaced the functionality using
Eigen3 and Wildmagic. Thus, the OpenMS core and the full build are now under a more
permissive non-GPL (e.g., Apache or BSD) license.
File formats:
- mzQuantML support (experimental)
- mzIdentML support (experimental)
- mzTab support (experimental)
- Indexed mzML support
- Support for numpress encoding in mzML
- Major speed improvement in mzML / mzXML parsing (up to 4x for some setups)
TOPPView:
- Support for visualizing mass fingerprinting hits from featureXML along with their raw spectra in MS1
- Improved "Tools" -> "Goto" dialog
- Improved display of m/z, RT, and intensity values 1D and 2D view
New tools:
- FeatureFinderIdentification -- Detects features in MS1 data based on peptide identifications (TOPP)
- FeatureFinderMultiplex -- Determination of peak ratios in LC-MS data (TOPP)
- FidoAdapter -- Runs the protein inference engine Fido (TOPP)
- LowMemPeakPickerHiRes -- Finds mass spectrometric peaks in profile mass spectra (UTIL)
- LowMemPeakPickerHiRes_RandomAccess -- Finds mass spectrometric peaks in profile mass spectra (UTIL)
- MRMTransitionGroupPicker (UTIL)
- MSGFPlusAdapter -- MS/MS database search using MS-GF+ (TOPP)
- MetaboliteSpectralMatcher -- Find potential HMDB ids within the given mass error window (UTIL)
- OpenSwathWorkflow -- Complete workflow to run OpenSWATH (UTIL)
- PeakPickerIterative -- Finds mass spectrometric peaks in profile mass spectra (UTIL)
- RTAnnotator -- Annotates identification files that are missing the RT field (UTIL)
- SimpleSearchEngine -- Annotates MS/MS spectra using SimpleSearchEngine (UTIL)
- TopPerc -- Facilitate input to Percolator and reintegrate (UTIL)
Deprecated tools:
- DBExporter -- Exports data from an OpenMS database to a file (TOPP)
- DBImporter -- Imports data to an OpenMS database (TOPP)
- FeatureFinderRaw -- Determination of peak ratios in LC-MS data (TOPP)
- SILACAnalyzer -- Determination of peak ratios in LC-MS data (TOPP)
Status changes:
- PhosphoScoring (UTIL -> TOPP)
Tools with major changes:
- OpenSWATH now supports MS1 extraction and labelled workflows
- OpenSWATHWorkflow single binary (high performance integrated workflow)
- IsobaricAnalyzer now supports TMT 10-plex
General:
- Removed GSL dependencies
- Introduced low memory versions of various algorithms
- OpenMS now offers a single interface for different implementations to access mass spectrometric data
- in memory
- on disk with index
- cached on disc for fast access
as well as a chainable, low memory sequential processor of MS data (using a separate interface)
- pyOpenMS now supports python 3.x
- Refactored AASequence, major speed improvement (~40x) for construction of unmodified sequences
Third party software:
- Added Fido support
- Added MS-GF+ support
Changes to the Build System / Package System:
- Restructured repository layout and build system
- Added support for Travis CI
- Simplified pyOpenMS build system
- Support for Visual Studio 2013
Resolved issues and merged pull requests:
#644 Fix header macros
#649 Fix ms numpress
#651 [INTERNAL,API] Removal of the GSL
#656 Repository layout restructuring
#657 [FIX, INTERNAL]
#658 [FIX] PeptideIndexer crashes on empty idXML (#653)
#659 [NOP] replaced c like file ending C with cpp
#660 [FIX] fix Cython 0.20 compatibility issue
#661 [BUILD,PYOPENMS] simplify pyOpenMS build system
#662 CMake and docu cleanups w.r.t. to the new layout
#664 [BUILD] build system fixes / cleanups
#665 Fix coverity errors
#666 [FEATURE] ib spectra format export
#667 [BUILD] improved handling of boost in OpenMS build system
#668 [NOP] added support for travis-ci to OpenMS
#669 [FIX] fixed AccurateMassSearch_test
#673 [FEATURE,FIX] Added min/max values to go-to dialog
#675 Checker/Test fixes and adds test for CTD writing
#677 [PYOPENMS] setup.py as minimal as possible + other improvements
#678 [FIX] fix how swath files are annotated
#679 [FIX,TEST] fixed OpenSwathDecoyGenerator / MRMDecoy
#680 [INTERNAL] Feature/CachedMzML fixes
#684 [FIX] Bugfix for threading issue in MascotGenericFile
#685 Typo fixes in documentation and licence files
#688 Fix/file size limit
#689 [FIX] disable OpenMP again for ILPDCWrapper
#690 Fix/misc
#691 further improvements to MGF::load()
#693 Major speedup of String --> Double conversion
#694 added missing index file for OMSSA test, which gets recreated when runni...
#696 [FIX] fix RAM usage when adding dataprocessing to chromatograms
#697 [FIX] proper usage of map in ControlledVocabulary
#698 Updates to FeatureFinderIdentification and the ...TraceFitter classes
#702 Feature/parallel reader
#703 Feature/aa sequence tpp
#705 [FIX] Propagate metadata in OpenSwathWorkflow
#707 [FEATURE] variable stylesheet support for qcml
#708 [BUILD] fix build system bug
#711 [FEATURE,BUILD] fix install target
#713 Fix for pepXML loading bug (#710)
#715 Feature/pyopenms wrapping improvements neu
#716 [NOP,TEST] clean up MRMDecoy, add more tests
#717 fixed 32bit memory limitation of OMSSA by chunking input data
#718 [FIX] fixed misleading warning ("Removed x peptide identifications...
#719 [CI,FIX] fix travis contrib clone problems
#721 [INTERNAL] cleanup of iostream includes
#722 Feature/mz xml consumer
#724 Feature/pyopenms mzxml consumer
#725 Fix/misc
#726 IDPosteriorErrorProbability fix
#729 Fix/coverity
#730 Feature/peak picker sn performance
#734 Feature/more pyopenms improvements
#735 [FEATURE] clang warning level
#737 [FIX] several minor fixes
#739 Feature/uids fileconverter
#741 ProteinResolver fix
#742 svn cleanup
#743 [FIX] fixed compilation error on vs2013
#747 Speedup OMSSA-XML parsing and some stats for OMSSA&XTandem
#749 Feature/python3
#750 [PYOPENMS,FIX] fixed streampos->long conversion
#751 [FEATURE] track base name when reading pep.xml files
#752 [FIX] fixed missing adaption PeptideIdentification::empty()
#754 [PYOPENMS] changed extra methods on MSSpectrum
#755 [FIX] fixed shadow warning
#756 Unity Builds
#760 [FIX-#618] fix spelling errors in headers
#761 Feature/header fixes
#764 [FEATURE] lib superhirn
#765 Feature/db removal
#768 [FIX] fixed warnings in CONCEPTS
#770 [FIX] fixed some clang warnings in stream manipulation
#771 New warnings
#773 [BUILD,PYOPENMS] fix pyOpenMS build
#775 [FIX] typos in the CMake file
#776 Fix for IDPosteriorErrorProbability on Mascot search results (#740)
#777 Memory profiling class
#779 [FIX] replaced DoubleReal and Real by double and float.
#780 [FIX] fix Swath window estimation
#781 Fix/open swath fixes
#784 [FEATURE] fix macosx pyopenms errors
#785 [FIX] VS2013 compile fixes
#786 [FEATURE] added openms_add_library function
#787 [FEATURE,BUILD] move pyOpenMS to src
#789 small fix to Win install doc for VS2013
#790 Remove "RT"; and "MZ"; metavalues from PeptideIdentification
#791 [FIX] forgot writtenDigits fixes in tests VS2013
#792 [FIX] AASequence refactoring
#794 Generic Wrapping of R scripts using GenericWrapper
#797 [NOP,DOC] removed all remaining references to FeatureFinderRaw and SILAC...
#798 Fix/py open ms testfix
#799 [DOC] removed migrated pages from doxygen. replaced by link to wiki
#800 spline interpolation of MS1 spectra
#801 RTPredict: fixed order of parameters and doc
#802 [FIX] fixed copy-paste mistake in error message
#804 [FIX] MRMDecoy: Fix neutral losses for higher charge states
#805 [PYOPENMS] added getters/setters for MZ and RT in PeptideIdentification....
#807 cubic spline implementation
#810 cubic spline interpolation
#811 [NOP] add better debug information and error handling
#812 [FIX] per cppcheck
#813 Fix/openswath
#814 [FEATURE] ConvertTSVToTraML: Support for SpectraST MRM Transition Lists
#816 Feature/cached mz ml format change
#817 [FIX] fix spline derivative for cubic spline
#819 Feature/custom i rt
#820 Fix/warnings
#821 [FIX] suppress clang warnings
#823 Feature/update numpress
#824 Fix/coverity
#826 Feature/funny pictures
#827 [FIX] fixes export macro warnings
#831 [FEATURE] fix all gcc warnings and turn warnings into errors
#832 several pyopenms fixes + updates
#833 Feature/visibility hidden
#834 Fix/fix werror
#835 Fix spline spectrum
#836 [FIX,TEST] MRMRTNormalizer_test: Windows compatibility
#838 [FIX] fixed uninitialized pointer warning
#840 [FIX] fix pyOpenMS test
#841 [BUILD] disable -Werror by default
#842 [FIX] fix dereference of iterator
#843 [FIX] fixes tests failing win debug mode
#844 [FIX] evaluation at m/z in first package now possible
#845 [FEATURE] replace String classes with StringUtils
#846 Fix/fixes from822
#847 peak boundaries and new cubic splines for PeakPickerHiRes
#850 [FEATURE] modified tests to reflect X!Tandem SLEDGEHAMMER as default
#851 Fix and tests for a bug in reading Mascot XML files
#852 [FIX] fix windows compile error
#854 [FIX] ConsensusID doesn't sort peptide hits before processing (idXML)
#855 [FIX] FalseDiscoveryRate "target+decoy"; hits should be considered as targets
#856 [FEATURE] KNIME package generation updates
#857 Fix/py open ms fix
#858 [FEATURE] ~40x speedup for constructions of unmodified AASequence
#859 Feature/SystemWildMagic
#863 [BUILD] added test for x!tandem version to enable tests only with newer ...
#865 Work-around for special modifications in Mascot (fixes #864)
#866 [FEATURE] git version embedding
#867 [FIX-#861,DOC] fixed eigen 3.2.1 problems with GammaDistributionFitter
#868 multiplex filtering
#869 [FIX] fixed problems with negative sizeof values in CachedMzML
#870 [FIX,DOC] doxygen 1.8.7 fixes
#873 [FIX] fixed macosx version query
#875 Rewrite of 'AASequence::parseString_', increasing robustness of parsing (fixes #818)
#876 [DOC] added new doc_class_only target
#880 PeakPickerHiRes peak boundaries fixed
#881 [FEATURE] mzTab 1.0
#882 [FEATURE] coding style improvements
#884 [FIX] Convert XTandem search results into .pepXML by IDFileConverter
#885 [NOP] added moc files to gitignore
#888 [FIX-#887] IDFilter errornousely removed peptidhits in multiple run files
#889 multiplex clustering
#891 [FIX] converting uniform distributed generators with normal distributions
#892 Enable loading of some pepXML files that used to cause crashes
#894 [FEATURE] improved 3rd party lib finding
#895 [FEATURE] simple search engine
#896 added scan-polarity filter to FileFilter ...
#897 (feature for Windows developers) added a small Windows .reg file
#898 More compact format for MGF files (fixes #890)
#899 [DOC] some minor documentation addition
#901 [FIX] fix MS level for DTA file reader
#902 [FIX,PYOPENMS] fix pyOpenMS after #875
#903 [FIX] mzXML fix (filterLine, basePeakMz)
#904 Feature/fix peak boundaries
#910 [FIX] fixed unity build error introduced in #845
#911 [FIX] FFCentroided replace exception handling with proper check
#914 fix index in CubicSpline2d
#916 IDMapper extension for featureMaps
#917 AccurateMassSearchEngine annotation of input map (not only mzTab output)
#919 [FIX] libc++ test fixes
#920 [FIX] fixed minor problem with knime package generation and cmake versions >2.8.11
#921 MS1 annotation in TOPPView
#922 [FIX] build system improvements
#923 EmpiricalFormula: fix (negative counts were casted away)
#924 Switch to disable tracking of Git version within OpenMS
#925 Fix/small docu improvement
#926 Feature/spellcheck
#927 PeptideIndexer: support for treating isoleucine/leucine as equivalent (resolves #872)
#928 Build System
#929 TextFile feature (skip empty lines) and docu fix
#930 check for missing peaks
#931 fix for evaluation at last node
#936 [FIX] fixed the 'variable' consumption of xslt files for a QcML file.
#938 [FEATURE] precursor scoring
#939 [FIX] fix compile error
#940 coding convention violations in MultiplexClustering fixed
#943 [FIX,PYOPENMS] fix pyOpenMS after #889
#944 [FIX,TOOLS] pyopenms parser fix
#945 [FEATURE] pyopenms wrap improved
#946 OPENMS_DLLAPI removed from GridBasedClustering
#947 [FEATURE] FeatureFinderMultiplex
#949 Fix/xml escape
#950 Feature/traml heavylight
#951 [FIX] add setOptions method for FileHandler
#955 Fix/xml escape
#958 [FIX] disallow concurrent access to the static PRNG
#959 Feature/pyopenms copyconstr
#960 [FEATURE] peptide group label new
#962 [FIX] QCCalculator now computes TIC only on MS1 spectra (fixes #96)
#964 [FIX] check for invalid charge ranges in search engine adapters (see #963)
#965 [FEATURE] tmt 10plex support
#966 [FEATURE] chaining consumer
#967 [FEATURE,TEST] mssim more ground truth in id xml
#968 [FEATURE] export PT value analogous to predicted rt value in TextExporte...
#969 [FEATURE] add a low memory FileConverter option
#970 [FEATURE] test if java can be executed
#972 Fix/file cleanup
#973 [FIX] validate presence of input file before starting executable
#977 [FEATURE] replaced pphires ms1_only flag with ms_levels parameter
#981 Feature/TextExporter_mzML
#983 [FEATURE] add library check on Windows for correct lib arch
#984 [NOP] add heavy methyl SILAC labels to unimod.xml
#985 [FEATURE] bspline support using eol bsplines implementation
#988 [FIX] simplified EmpiricalFormula
#990 [FIX,FEATURE] TransformationModelInterpolated readded
#993 Feature/sort on load (mzML, mzXML)
#994 fixes mass traces in featureXML output
#995 fixes CubicSpline2d constructor exceptions
#996 allow for SplinePackages based on just two data points
#1000 fixes problems with ">>" generated in nested C++ templates
#1001 Fix/py open ms test
#1002 [pyOPENMS] features
#1003 [FIX] fixes random fails of MSSim_test
#1006 [FEATURE] enable gui less OpenMS
#1009 update unimod.xml with newest version from unimod.org
#1010 [FIX] external code tests updated/fixed
#1011 [FIX] external project doc
#1012 [FEATURE] decreased memory footprint of Feature class by up to 44%
#1014 TOPPView: group separator for mz,rt and int values in 1D and 2D canvas
#1019 [FIX] fixed unitybuild problem on win32 with eol-bsplines
#1020 [NOP] updated copyright/license header to 2014
#1021 Feature/py open ms fixes and wraps
#1024 sorting mass shifts in FeatureFinderMultiplex
#1025 Fix/checker fixes
#1026 additional example in SplineSpectrum test
#1027 Adapter for Fido (protein inference engine), solves #808
#1029 [FIX-#184] remove public vector/map inheritance
#1032 fixes peak boundaries in PeakPickerHiRes (resolves #1022)
#1034 [FIX] improve set_peaks documentation
#1035 B-spline interpolation for peak width estimation in MultiplexClustering class
#1036 [FEATURE,API] Removed template parameter from FeatureMap
#1037 Fix/ TraML load/store
#1038 Feature/py open ms wraps
#1039 Fix/debug fix
#1040 Fix/spellcheck
#1044 [FIX:#1043]fixed featureXML reading spectrum_reference as String
#1045 [FIX] fix compile issue on win32 systems
#1046 Fix/py open ms wrap
#1047 [FIX] first probe install path, then the build path for share/OpenMS
#1048 Feature/peptide hit protein locations
#1050 Re-added B-spline transformation for non-linear RT alignment in MapAlignerIdentification
#1051 [FIX] made arguments and functions in BSpline2d const (if possible)
#1055 [FEATURE] improved purity computation for IsobaricAnalyzer
#1056 [FIX] UniqueIdGenerator susceptible to identical RNG seeds
#1057 GenericWrapper doc has minor quirks
#1058 Feature/openswathwf add
#1059 Switch to version 2.0
#1061 FeatureFinderIdentification: documentation, tests, parameter improvements
#1063 Fix/accession nr
#1065 PeakPickerHiRes docu updated
#1067 Testing/mzid
#1069 Fix and test for issue #1068 (bug in "AASequence::operator<" involving N-terminal modifications)
#1070 removing zeros in profile data caused by Thermo bug
#1072 PeakPickerHiRes: disable spacing constraints for chromatograms (fixes #1060)
#1074 'intensity weighted mean'; averaging added to ProteinQuantifier, solves #830
#1076 Adapter for MS-GF+ search engine
#1077 [TESTING] download and add MSGFPlus in travis-ci
#1078 [FEATURE] export aabefore and aaafter in peptideindexer
#1079 Linear extrapolation (and other options) for B-spline transformation
#1080 [NOP] refactored PeptideHit protein accession extraction to true member
#1082 [NOP] removed index file as these are recreated by MSGF+ anyways
#1083 Feature/mz tab fixes
#1084 [FIX] compile fixes
#1086 Update (indistinguishable) protein groups when filtering protein identifications (fixes #748)
#1087 centroided input data for FeatureFinderMultiplex
#1088 Fix FileConverter's "write_mzML_index" flag
#1089 Fix/mzid
#1090 Enable mzIdentML input in IDFileConverter
#1091 Feature/mz tab cleanup
#1092 [NOP] removed unnecessary index files
#1094 [FIX] fixed small bugs preventing a build on windows
#1097 [FIX] consistent use of wildmagic
#1098 Revert "[FIX] consistent use of wildmagic"
#1099 [FIX,BUILD] fix Windows build
#1100 Fix/windows fix
#1101 optimisation for knockout searches in FeatureFinderMultiplex
#1102 Fix/fix spellcheck
#1104 [FIX] fix compile warning from unused variables
#1108 [FIX] fix compile warnings and increase QT min version to 4.6
#1109 [FIX] removed support for multiple id formats in tools without
#1115 fix some windows compile warnings
#1116 fix segfaults in XTandemXMLFile and IsobaricChannelExtractor
#1118 Feature/swath window loader
#1121 [FIX] some VC 2013 static tests fixed
#1122 Fix PeakPicker Wavelet
#1123 [FEATURE] remove PeakType template argument from FeatureFinder
#1124 [NOP] addendum to #1123
#1125 optimisations in FeatureFinderMultiplex
#1126 [FIX] intermediate fix for win32 systems
#1127 [FEATURE] create uncrustify branch
#1128 Fix/RT meta value related bug, removed unused comment
#1131 Make BuildSystem's LibCheck fail-safe
#1135 Fix/ams mz tab export
#1136 [NOP] uncrustified
#1137 [FIX] added -b option to create new branch
#1140 [FIX] fixed bugs in AScore implementation and added deisotoping as
#1141 Fix AccurateMassSearch and visualization
#1145 Fix/spellchecks
#1147 Fix/copyright update
#1150 Added PhosphoScoring tool to TOPP documentation
#1151 Changelog 2.0
#1152 [FIX,PYOPENMS] fix and adopt pyOpenMS
#1153 minor amendmend to last fix (better console output)
#1154 [TEST] fix test
#1156 [FIX-#618] fix spelling errors
#1157 [NOP] correct version in LICENSE file
#1158 [FIX] make identifier of multiple identification runs unique
#1161 pyOpenMS 2.0 features
#1162 [FIX] fixed study variable index start at 1. Added global identifiert to
#1164 [FIX] pepXML does on some occassion contain very small fixed
#1165 Added minimal test cases for checker.php Missing test errors
#1169 [FIX] fixed segfault if searchparam requested on empty proteinids
#1170 [FIX,TEST] FidoAdapter test
#1172 [FIX] fix for the write out of mzid
#1173 [FIX] changed path String parameter to input files
#1174 [TRAVIS] added Fido executables and adapted to new directory structure
#1175 [FEATURE] add ConsensusMap push_back
#1176 [BUILD] added support for new thirdparty executables in KNIME
#1179 [FIX] added missing option to apply e-value filtering
#1180 [FIX] fix toolnames for KNIME packaging
#1181 fixed minor typo in error message
#1184 [FIX] we decided to add the missing struct mapping file and in the
#1185 [FIX] added missing elements and spike ins
#1186 Fix/docu qc mzid
#1187 [FIX] AMS: export observed-Mass in mzTab as well
#1188 [Build] Added support for new third party binaries for dmg packaging. Adapted Li...
#1189 Feature/sn
#1190 [TEST] fix test
#1192 [FIX] HMDB: removed duplicates introduced by including spike ins
#1194 [NOP] removed deprecated qc toppas workflow
#1195 [STYLE] Changed header guards mentioned by checker.php
#1196 [FIX] XTandemAdapter added option to disable isotope error flag
#1198 [TEST] fix
#1199 [TEST,FIX] changing the order of the test fixes the issue
#1201 Fix/lp wrapper param file
#1203 [TEST,FIX] set reasonable comparison tolerance
#1204 Removes debug code from FeatureFinderMultiplex
#1206 [TEST] fix test error
#1212 [FIX] and/or extension to IDFilter: Added support for old target_decoy user param in decoy filtering.
#1213 [DOC] improve linux install doc
#1215 [FIX] export AMS result as valid mzTab
#1218 [FIX] consistent use of wildmagic: TransformationModelLinear
#1219 [FIX] Map index stored as meta value in peptide identification
#1220 change parameter ranges in FeatureFinderMultiplex
#1224 updated KNIME license
#1225 [FIX][TEST] Fido replacing scores
#1226 Ammend to pull request #1212
#1228 [FIX, PYOPENMS] fixed pxd file
#1229 [DOC] merged License.txt and LICENSE for more complete description
#1230 Updated ACTIVE_MAINTAINERS with people commiting, starting in 2012. Remo...
#1231 Added Deuterium and Tritium to Elements.xml, as LIPIDMAPS contains sum f...
#1232 Fix amt
#1237 [FIX] minimum value for max_length should be 0 not -Inf
#1240 [FIX] Fix/id filter blacklist
#1242 Fix amt
#1243 fixes INIUpdater test
#1246 Updated problematic FidoAdapter test (fixes #1171)
#1247 [FIX] added missing function
#1248 [FIX, PYOPENMS] ammend to last commit
#1249 Documentation improvements (and minor fixes)
#1250 Another FidoAdapter test fix
#1253 [FIX] IsobaricAnalyzer: set charge states of consensus features
#1254 [DOC,FIX] Updated CHANGELOG, changelog_helper.sh
#1256 Fix MSGFPlusAdapter running in TOPPAS (mzid output)
#1257 Clean-up of UTILS documentation
#1261 [KNIME] adapted parameter naming for FidoAdapter in KNIME
#1262 IDFilter reports empty results
#1263 [FIX] moved TopPerc to UTILS and changed experimental status of MSGFPlus
#1266 [FIX] ammend to last commit
#1267 [FIX] fix conversion from Feature with Masstraces to MSExperiment
#1269 IsobaricAnalyzer: documentation, warning fix
#1270 [FIX] lexical cast is discouraged. Use of build in functions.
#1273 [FIX][BUILD] Fixes linking issue with boost in UTILS #1272
#1275 [FEATURE] [FIX] mass trace RT spacing
#1283 [PYOPENMS] Better PepXMLFile write support
#1284 [FIX] KNIME execution of MSGFPlusAdapter
#1286 [FIX] set low memory log type correctly
#1290 [FIX, PYOPENMS] fix python binding for MassTrace
#1305 [FIX] Fix/id mapper statistics
#1307 remove OS X specific code for opening folders
#1309 [FIX] Ammend to #1284
#1315 sync develop additions
-------------------------------------------------------------------------------------------
---- OpenMS 1.11.1 (released 11/2013) ----
-------------------------------------------------------------------------------------------
Release date: November 2013
OpenMS 1.11.1 is a bugfix release resolving the following issues with OpenMS 1.11:
TOPPAS:
- fixed bug that caused TOPPAS to crash when a connection between nodes was added under certain circumstances
TOPP:
- XMLValidator can now be used on mzML files
- fixed bug in MSSimulator/EnzymaticDigestion where amino acid "U" was leading to crash
- fixed some problems with protein modifications in MascotAdapterOnline
- fixed potential problems of TOPP help screens on small screens / small terminal windows
Build system:
- fixed issues with CMake 2.8.12
- fixed potential clang compile errors
General:
- fixed issues with MIME types in KNIME
Resolved issues:
#606 TOPPAS crashes during creation of certain edges.
#609 MascotAdapterOnline: Problems with modifications
#614 Amino acid "U" leads to crash in MSSimulator/EnzymaticDigestion
#629 OpenMS is incompatible with CMake 2.8.12
#630 Knime mime.types file should have lower case mime type names
#633 ConsoleUtils::breakString triggers uncaught exception if terminal size is too small
------------------------------------------------------------------------------------------
---- OpenMS 1.11 ----
------------------------------------------------------------------------------------------
Release date: August 2013
OpenMS 1.11 is the first release with fully integrated Python bindings (termed pyOpenMS).
For further details, please refer to https://pypi.python.org/pypi/pyopenms
File formats:
- QcML support
- pepXML exported from Mascot (added support)
- mzTab updated to 1.0RC3
- ParamXML updated to v 1.6.2
- support for CTD schema 0.3
- full support of sourceFile tag in mzML (all source files are written, SHA1 support)
TOPPView:
- handle .mzML file with mixed spectra and chromatograms (prefer spectra)
- chromatograms of all types can be displayed (not just SRM)
- link to documentation and webpage fixed
- fix a segfault when loading empty chromatograms into TOPPView
TOPPAS:
- link to documentation and webpage fixed
TOPP tools:
- MODIFIED:
- FeatureLinkerUnlabeledQT: performance (speed and memory) improvement
- FeatureLinkerUnlabeled: performance (memory) improvement (now constant in number of input maps)
- MapAlignerPoseClustering: performance (memory) improvement (now constant in number of input maps)
- EICExtractor: critical bugfix if the input map was not sorted
- PeptideIndexer: by default now demands that the peptide is fully tryptic ("-enzyme:specificity none" restores the old behavior)
- FileFilter: filter MS2 spectra by consensus map feature overlap, collision energy, isolation window width
- ProteinResolver: documentation and interface improvements
- QCCalculator/QCEmbedder/QCExtractor: multiple improvements
- WindowMower: speed improvement (movetype either slide or jump [faster])
- ADDED
- AccurateMassSearch: AccurateMassSearch assembles metabolite features from singleton mass traces.
- IsobaricAnalyzer: Extracts and normalizes isobaric labeling information from an MS experiment. This merges the previous TMTAnalyzer and ITRAQAnalyzer functionality
- QCExtractor: Extracts a table attachment to a given qc parameter
- QCImporter: Embed tables or pictures in QcML
General:
- Python bindings allow full access to the OpenMS API from Python
- TOPPTools now support passing of all parameters on the command line (use --helphelp)
- Better chromatogram support (for NoiseFilterGaussian, NoiseFilterSGolay, PeakPickerHiRes)
Search engine support:
- Mascot 2.4 is now supported
- OMSSAAdapter with improved memory footprint
- N-terminal modifications work now with X!Tandem
Changes to the Build System / Package System:
- shared linking works for all contrib packages with automated detection using CMake find modules
- upgrade of xerces to version 3.1.1
- upgrade of libsvm to version 3.12
Development:
- public inheritance from std::vector and std::set has been reduced in the
OpenMS codebase (removed from ConsensusFeature, FeatureMap, ConsensusMap,
MSExperiment)
- addition of the OpenMS/INTERFACES folder which contains proposed OpenMS
interfaces for reading/writing spectra
Deprecated:
- TMTAnalyzer, ITRAQAnalyzer -> please use IsobaricAnalyzer instead
- Several functions provided by std::vector in the MSSpectrum interface are now
deprecated (e.g. push_back, reserve etc.)
Resolved issues:
#120 Improve visual representation of edges
#151 Optimize time/memory efficiency of critical tools/algorithms
#184 Some OpenMS classes are derived from std::vector
#309 FileConverter puts incorrect/incomplete information in <sourceFile>
#343 OpenMS build system should allow searching for contrib libs also in system paths (e.g., /opt/local/..)
#382 Excessive memory usage by MapAligners and FeatureLinkers
#398 INIFileEditor doesn't save modified values if still in edit mode
#457 Use system libraries instead of contrib
#465 "-debug" option in TOPP tools doesn't show LOG_DEBUG messages
#497 Non-intuitive way to edit parameters in TOPPView/TOPPAS/INIFileEditor
#516 TOPPAS: "Refresh parameters" complains if no input files are present
#517 MSQuantification::load declared but not implemented
#519 Merge ITRAQAnalyzer and TMTAnalyzer
#520 Support linking against shared libs
#521 Upgrade contrib libsvm
#522 Make parameters from subsections addressable from command line
#523 Link to OpenMS website from within TOPPAS/TOPPView broken
#524 PeptideIndexer does not honor cleavage sites
#525 EICExtractor will report wrong intensities if input map is not sorted
#527 pyOpenMS compile issue with clang
#529 Strange naming of TextExporter parameters
#531 Upgrade xerces-c version in contrib to 3.1.1
#533 pyOpenMS
#534 MascotAdapterOnline does not support Mascot 2.4
#535 mzML with Spectra and Chromatograms
#536 MascotAdapterOnline SSL and Mascot 2.4
#537 Invalid Doxygen XML Files
#540 IsobaricAnalyzer
#541 AccurateMassSearch
#542 TOPPView: switch to 3D view should pick the data layer automatically
#544 featureXML version at 1.4 while 1.6 is the current version
#549 Problems converting Mascot XML to idXML
#552 pyOpenMS build system
#553 TOPPView's "Apply TOPP tool" functionality is broken
#554 FeatureLinkerUnlabeled(QT) - speed/memory enhancements
#556 Setting parameter may not take effect
#557 XTandemAdapter/mz-out scramble
#562 cmake doesn't check for MSBuild.exe location on Windows
#565 XTandemAdapter fails to add terminal modifications correctly to X!Tandem search
#569 Segfault of IDEvaluator and IDEvaluatorGUI
#570 FeatureLinkerUnlabeledQT regression
#574 Update ParamXMLHandler to support v1.6.2 of Param schema
#575 Upgrade TOPPBase's CTD support to new version of CTD schema
#576 Cython 0.19 does not compile current pyOpenMS
#578 Add qcML CV terms
#580 XTandemAdapter finds non-tryptic peptides although cleavage rule is set to "[RK]|{P}"
#582 Compile error with Boost 1.46
#583 MascotAdapterOnline with Mascot 2.4.0 may never finish
#584 FileFilter parameter -mz (mz range to extract) applies to all MS levels and not to a specified level
#586 ModificationsDB_test relies on raw memory addresses
#587 MascotAdapterOnline does not support SSL connections
#588 MascotAdapterOnline does not support connections to public MatrixScience Mascot instance
#591 Detection of MGF format via file content fails on our own files
#593 Parameter default of 'tab' will be returned as single space
#598 SILACAnalyzer (no label) crash
#603 TOPPView: showing peptide annotations of feature maps also shows feature indexes
------------------------------------------------------------------------------------------
---- OpenMS 1.10 ----
------------------------------------------------------------------------------------------
Release date: March 2013
OpenMS 1.10 is the first release integrated into KNIME (www.knime.org).
To use OpenMS in KNIME please refer to the www.OpenMS.de for additional information.
File formats:
- TraML 1.0.0 support
- Initial mzQuantML, mzIdentML and mzTab support (not fully supported)
TOPPView:
- Concurrent zoom
- SRM data visualization
New tools:
- Superhirn
- OpenSWATH
- QCCalculator
- IDRipper
- FeatureFinderMetabo
- IDEvaluation
- RNPxl
General:
- Better chromatogram support
- Decoy strings can now be prepended
- Filter modified peptides
- Many memory and speed improvements
- TMT-6plex support
- EDTA conversion from feature and consensusXML in FileConverter
- Filtering of MS2 spectra by identifications
Search engine support:
- MyriMatch adapter
Changes to the Build System / Package System:
- Cpplint coding convention check integrated into build system
- Integration of OMSSA search engine in Windows and Mac installers
- Integration of X!Tandem search engine in Windows and Mac installers
- Integration of MyriMatch search engine in Windows and Mac installers
Development:
- Style corrections of the OpenMS source base using uncrustify
Deprecated:
- Conversion of Sequest files in IDFileConverter
Resolved issues:
#513 Commented out the functionality of smartFileNames_() (not mature enough for the 1.10 release)
#508 allow free columns for TSV
#473 change in/out types again to csv
#507 TOPPDocumenter now expects the path to the executables and can generate doc for TOPPView/TOPPAS on mac osx
#506 added custom info.plist containing the path to OMSSA/XTandem for the GUI tools
#505 goto dialogs now act with error tolerance
#504 Fixed XTandemXMLFile loading when no encoding is given by XTandemXML file by enforcing ISO-Latin-1 (default would be utf-8, breaking the aminoacid sequence readin). Introduced enforceEncoding(encoding) to XMLFile.
#316 SpectraTreeTab is not cleaned up when last layer is deleted
#283 TOPPView: Scan view widget does not clear after closing last file
#379 MapAlignerPoseClustering: -reference:index has no effect
#384 replace zip libraries with The Boost Iostreams Library (already in contrib)
#280 IonizationSimulation_test can not be compiled with OpenMP support on Mac OS X (Unit) Tests
#368 Check Example pipelines and tutorials if they still contain the Tools using the type parameters
#341 Move IMS Mass Decomposition Code to OpenMS and remove IMS from contrib
#330 Remove static references to 10.5 SDK in OpenMS and contrib builds
#135 Remove temporary files after completion
#301 IDExtractor has no documentation
#78 Write generic Nightly Testing Script
#355 Adapt documentation to the changes in the contrib handling of the build system
#348 Update TOPP tool names in documentation
#383 iTRAQ isotope correction & simulation broken for 8plex
#333 CMake returning incorrect configurations.
#378 Intensity issue for simulation of MS2 signals
#264 PrecursorIonSelector crashs (SegFault) with minimal input
#322 PeakPicker (wavelet) writes lots of "dataProcessing" junk to mzML file
#327 Feature width not stored in featureXML
#372 Calculation of rank correlation coefficient buggy
#376 Command line parser does not recognize --help and --helphelp
#374 IonizationSimulation takes ages to complete on very high abundance peptides
#371 FileFilter should support filtering by meta values
#359 Remove type argument from SpectrumFilter
#346 Implement mechanism to convert pre1.9 toppas workflows to 1.9 workflows
#345 Implement mechanism to convert pre1.9 ini files to 1.9 workflows
#212 Nicer formatting of parameter listings in documentation
#356 PeakPickerWavelet fails for broad peaks
#332 TOPPAS: QWebView for downloading pipelines does not work behind proxy
#366 SILACLabeler should adjust all channels to have the same RT elution profiles
#365 Sampling of RT parameters in RTSimulation can produces abnormal RT parameters
#364 Improve handling of user input while downloading workflows from the online repository
#363 TOPP test need to define their dependencies to avoid wrong execution
#360 Remove type argument from FeatureFinder
#357 IDPosteriorError Prob crashes with small number of peptides
#354 Adapt documentation to the changes in the contrib handling of the build system
#344 remove TOPPBase type argument from MSSimulator
#347 Contaminant simulation might produce wrong masses when used in unintended way
#41 AndiMS for 32/64bit Windows and 64bit Linux.
#326 PepXMLFile: use RT of MS2 spectra for peptide RT
#321 Update Seqan to 1.3 Build System
#331 TOPPAS: Active tab changes all the time under MacOSX (10.6 and 10.7)
#106 Export for Workflows as image
#325 No HTML for Internal FAQ
#324 DecoyDatabase should support shuffling and contaminants TOPP
#323 MapAligner -apply_given_trafo's "invert" option only works from commandline TOPP
#209 Reading Bruker XMassFile failes with invalid DateTime String
#236 TOPP tool API change will crash existing TOPPAS pipelines
#282 TOPPAS updateParameters() might create invalid Pipeline
#298 "Open in TOPPView" broken for MacOSX
#320 TOPPAS Workflows should support a short documentation
#318 FuzzyStringComparator::compareLines_ throws exception on gcc-4.6
#317 ostream::operator<< for MSSpectrum is not working
#314 Crash when selecting empty window
#227 TOPPAS tmp directory not multi-user friendly
#178 Warn if merger node is followed by a tool for single files, not lists
#313 MascotAdapterOnline does not support Mascot 2.3
#312 FilterFilter should support filtering by precursor charge
#226 Specific isotopes in ElementsDB are generated with wrong masses
#308 AASequence(iterator, iterator) constructor is invalid, since it ignores terminal modifications
#305 TOPPView fails while opening mzML with intensities stored in an int32 array
#234 File forwarding/merging broken
#303 TOPPAS, TOPPView and ExecutePipeline: looking for TOPP tools
#302 Simulator should support picked peak Ground Truth
#300 Allow input node recycling TOPPAS closed fixed
#299 Enable automatic static code analysis of OpenMS using cppcheck
#205 TOPPAS crashes
#210 TOPPAS Merger nodes are buggy
#259 Resume button broken
#43 Discuss overhaul of OpenMS web site and possible migration to CMS Website, FAQs, Screencasts
#297 Simulation: Ionization does not consider n-term to carry charge
#295 Split OpenMS library in two or more parts
#296 PeptideIndexer might keep 1 old ProteinAccession
------------------------------------------------------------------------------------------
---- OpenMS 1.9 ----
------------------------------------------------------------------------------------------
Release date: February 2012
OpenMS 1.9 has some major changes in TOPP tool names and usage. Therefore all .ini files
for "typed" TOPP tools (i.e. those with a "type" parameter) built with OpenMS 1.8 and below
are incompatible! To fix your old .ini and .toppas files use the new
INIUpdater tool (see its documentation and the TOPP documentation in general).
OpenMS 1.9 removed support for Mac OS X 10.5.
Documentation:
- new Quickstart tutorial
- dedicated and reworked TOPPAS tutorial
TOPPView improvements:
-MODIFIED:
- ConsensusFeatures can now be colored using MetaValues
- better grid line drawing/calculation, extracted AxisPainter class
- IdentificationView:
- added automatic labeling with peptide fragment sequence
- theoretical spectrum is now hidden by default (labeling contains relevant information for most use cases)
- automatic zoom to measured MS2 data range
TOPPAS improvements:
- TOPPAS allows for interactive download of preconfigured TOPPAS pipelines from OpenMS homepage
- "Recycling" mode for nodes, useful for database input files (see docu for details)
- more flexible pipeline design for Merger nodes
- Merger nodes (merge, merge all) renamed to "Merge" (one round) and "Collect" (all rounds)
TOPP tools:
- ADDED:
- MapStatistics: statistics for low level quality control
- EICExtractor: quantify known RT, m/z locations in one or many LC/MS maps and align them
- MassTraceExtractor: annotate mass traces in centroided LC/MS maps - useful for metabolomics and top-down proteomics (use FeatureFinder tools for peptides)
- FeatureFinderRaw: feature finding on raw data
- FeatureFinderMetabo: feature finding for metabolites
- IDConflictResolver: resolve ambiguous annotations of features with peptide identifications
- MODIFIED:
- FeatureFinder: split into FeatureFinderMRM, FeatureFinderCentroided, FeatureFinderIsotopeWavelet
- FeatureLinker: split into FeatureLinkerLabeled, FeatureLinkerUnlabeled, FeatureLinkerUnlabeledQT
- FeatureLinker tools remove unneeded data after loading featureXML files to conserve memory
- MapAligner: split into MapAlignerIdentification, MapAlignerPoseClustering, MapAlignerSpectrum, and MapRTTransformer
- model parameters of MapAligner tools are now set in the INI file
- MapAlignerIdentification: don't fail if parameter "min_run_occur" is set too high, warn and use possible maximum instead
- NoiseFilter: split into NoiseFilterGaussian and NoiseFilterSGolay
- PeakPicker: split into PeakPickerWavelet and PeakPickerHiRes
- PILISModel: split into PILISModelCV, PILISModelTrainer, and PILISSpectraGenerator
- MascotAdapterOnline: now supports Mascot 2.3 servers
- ProteinQuantifier: added support for writing idXML (suitable for export to mzTab)
- IDFileConverter: when reading pepXML, fail if the requested experiment (parameters "mz_file"/"mz_name") could not be found in the file
- REMOVED:
- AndiMS/NetCDF is no longer supported on any platform
- removed IDDecoyProbability tool
UTIL tools:
- ADDED:
- INIUpdater: update INI and TOPPAS files
- TransformationEvaluation: evaluate a (RT) transformation by applying it to a range of values
- REMOVED:
- CaapConvert
- UniqueIdAssigner
- HistView
Changes to the Build System:
- TOPPAS now requires Qt's Webkit library
- Use CMAKE_BUILD_TYPE instead of OPENMS_BUILD_TYPE (removed)
- Use CMAKE_FIND_ROOT_PATH instead of CONTRIB_CUSTOM_DIR (deprecated)
- Removed AndiMS, NetCDF and dependencies
- Removed dependency to imslib, relevant classes were moved directly to OpenMS/CHEMISTRY/MASSDECOMPOSITION/IMS
- OpenMS now supports ctests functionality for optimized and parallel testing (see ticket #363)
Fixed Issues: (see also http://sourceforge.net/apps/trac/open-ms/report)
#341 Move IMS Mass Decomposition Code to OpenMS and remove IMS from contrib
#330 Remove static references to 10.5 SDK in OpenMS and contrib builds
#301 IDExtractor has no documentation
#78 Write generic Nightly Testing Script
#355 Adapt documentation to the changes in the contrib handling of the build system
#348 Update TOPP tool names in documentation
#333 CMake returning incorrect configurations
#264 PrecursorIonSelector crashs (SegFault) with minimal input
#280 IonizationSimulation_test can not be compiled with OpenMP support on Mac OS X
#322 PeakPicker (wavelet) writes lots of "dataProcessing" junk to mzML file
#327 Feature width not stored in featureXML
#372 Calculation of rank correlation coefficient buggy
#376 Command line parser does not recognize --help and --helphelp
#371 FileFilter should support filtering by meta values
#359 Remove type argument from SpectrumFilter
#346 Implement mechanism to convert pre1.9 toppas workflows to 1.9 workflows
#345 Implement mechanism to convert pre1.9 ini files to 1.9 workflows
#212 Nicer formatting of parameter listings in documentation
#356 PeakPickerWavelet fails for broad peaks
#363 TOPP test need to define their dependencies to avoid wrong execution
#360 Remove type argument from FeatureFinder
#357 IDPosteriorErrorProb crashes with small number of peptides
#354 Adapt documentation to the changes in the contrib handling of the build system
#41 AndiMS for 32/64bit Windows and 64bit Linux..
#326 PepXMLFile: use RT of MS2 spectra for peptide RT
#321 Update to Seqan 1.3
#324 DecoyDatabase should support shuffling and contaminants
#323 MapAligner -apply_given_trafo's "invert" option only works from commandline
#209 Reading Bruker XMassFile failes with invalid DateTime String
#236 TOPP tool API change will crash existing TOPPAS pipelines
#318 FuzzyStringComparator::compareLines_ throws exception on gcc-4.6
#317 ostream::operator<< for MSSpectrum is not working
#297 Simulation: Ionization does not consider n-term to carry charge
#383 Simulation: iTRAQ isotope correction & simulation broken for 8plex
#378 Simulation: Intensity issue for simulation of MS2 signals
#374 Simulation: IonizationSimulation takes ages to complete on very high abundance peptides
#366 Simulation: SILACLabeler should adjust all channels to have the same RT elution profiles
#365 Simulation: Sampling of RT parameters in RTSimulation can produces abnormal RT parameters
#344 Simulation: remove TOPPBase type argument from MSSimulator
#347 Simulation: Contaminant simulation might produce wrong masses when used in unintended way
#303 TOPPAS, TOPPView and ExecutePipeline: looking for TOPP tools
#305 TOPPView fails while opening mzML with intensities stored in an int32 array
#314 TOPPView: Crash when selecting empty window
#205 TOPPAS crashes
#227 TOPPAS: tmp directory not multi-user friendly
#282 TOPPAS: updateParameters() might create invalid Pipeline
#332 TOPPAS: QWebView for downloading pipelines does not work behind proxy
#135 TOPPAS: Remove temporary files after completion
#320 TOPPAS: Workflows should support a short documentation
#298 TOPPAS: "Open in TOPPView" broken for MacOSX
#106 TOPPAS: Export for Workflows as image
#364 TOPPAS: Improve handling of user input while downloading workflows from the online repository
#331 TOPPAS: Active tab changes all the time under MacOSX (10.6 and 10.7)
#210 TOPPAS: Merger nodes are buggy
#259 TOPPAS: Resume button broken
#300 TOPPAS: Allow input node recycling
#234 TOPPAS: File forwarding/merging broken
#178 TOPPAS: Warn if merger node is followed by a tool for single files, not lists
#313 MascotAdapterOnline does not support Mascot 2.3
#312 FilterFilter should support filtering by precursor charge
#226 Specific isotopes in ElementsDB are generated with wrong masses
#308 AASequence(iterator, iterator) constructor is invalid, since it ignores terminal modifications
#302 Simulator should support picked peak Ground Truth
#299 Enable automatic static code analysis of OpenMS using cppcheck
#43 Discuss overhaul of OpenMS web site and possible migration to CMS
#295 Split OpenMS library in two or more parts
#296 PeptideIndexer might keep 1 old ProteinAccession
#379 MapAlignerPoseClustering: -reference:index has no effect
Detailed list of changes to specific OpenMS classes:
- NEW:
- compose_f_gx_hy_t (from imslib)
- compose_f_gx_t (from imslib)
- IMSAlphabet (from imslib)
- IMSAlphabetParser (from imslib)
- IMSAlphabetTextParser (from imslib)
- IMSElement (from imslib)
- IMSIsotopeDistribution (from imslib)
- IntegerMassDecomposer (from imslib)
- MassDecomposer (from imslib)
- RealMassDecomposer (from imslib)
- Weights (from imslib)
- sum/mean/median functions added to header "StatisticFunctions"
- PeptideAndProteinQuant: contains quantification code formerly included in ProteinQuantifier (TOPP tool)
- MODIFIED:
- AASequence: removed AASequence(ConstIterator, ConstIterator) constructor, since it ignored Terminal Modifications; since there was no way to enable correct construction from two Iterators, we removed it
- MapAlignmentAlgorithmIdentification: don't fail (exception: InvalidParameter) if value for "min_run_occur" is too high, warn and use possible maximum instead
- MSSimulator: "type" parameter moved to "MSSim:Labeling:type"
- Param: added new command line parser with improved functionality
- PepXMLFile:
- added reading support for pepXML version 1.17
- set RT's of peptide identifications based on MS2 spectra, not the MS1 precursors as before (flag "use_precursor_rt" switches to the old behavior)
- fail with ParseError if a requested experiment could not be found in a pepXML file
- ProtXMLFile: set score type for peptides
- TOPPBase: added methods to turn Param objects into command line parameters
- TransformationModel: simplified handling of parameters
- TransformationModelBSpline: new option to distribute breakpoints evenly at data quantiles (instead of uniformly over the data range)
- lots more... too much to list
------------------------------------------------------------------------------------------
---- OpenMS 1.8 ----
------------------------------------------------------------------------------------------
TOPP tools:
- MODIFIED:
- MapAligner: separated data extraction from transformation modelling - this allows to combine different algorithms and models; new option "invert"; reworked parameters (please see the MapAligner documentation and update your INI files)
- FeatureLinker: now able to link consensus maps; added new experimental algorithm "unabeled_qt"; improved quality calculation in "unlabeled" algorithm
- IDMapper, FeatureLinker ("unlabeled"/"unlabeled_qt" algorithms): now consider charge states by default (use parameter "ignore_charge" if you want to avoid this)
- FileInfo: improved formatting of output
- TextExporter: unified output formats
- FileConverter: added conversion to consensusXML
- ProteinQuantifier: redefined meaning of parameter combination "top 0"/"consensus:fix_peptides"
- ITRAQAnalyzer: isotope corrected quantitation result is written to "-out" instead of the uncorrected values
- GenericWrapper: now supports arbitrary external programs, when a .ttd file is present (see <OpenMS>/share/OpenMS/TOOLS/EXTERNAL)
UTIL tools:
TOPPView improvements:
- NEW:
- Identification View (load idXML through Tools->annotate with identifications)
- 1D view now supports vector graphics export when saving an image
- Peaks in 2D view are drawn as circles at a high zoom level
- TOPPAS pipelines can be edited and run directly from TOPPView
TOPPAS improvements:
- MODIFIED:
- improved stability when using longer filenames
- minor fixes (see bug tickets below)
OpenMS library improvements:
- Stability and consistency fixes mostly (see bug tickets below)
Changes to the Build System:
- minor only
Fixed Issues:
#277 Crash upon annotation with idXML
#271 Filename generation in TOPPAS broken
#278 TOPP tools update only values from INI files, not restrictions
#273 TOPPAS appends an extra "toppas" when saving files with uppercase TOPPAS extension
#272 TOPPAS doesn't update the tab title after saving a new pipeline
#261 ProteinQuantifier: handling of mod. peptides during protein quantification
#153 "Unlabeled" FeatureLinker produces quality values that make no sense
#220 TOPPAS: mzML.gz files are not recognized as correct input
#260 InclusionExclusionListCreator creates invalid lists for Thermo instruments
#269 OMSSAAdapter crashes when run from directory containing spaces
#267 bug in StablePairfinder (distances)
#266 TOPPAS "store" button for vertex' INI files always writes default INI
#129 TOPPAS: Allow opening files in one layer
#105 TOPPAS: Split TOPPAS.ini into Resource and Workflow files
#262 PrecursorIonSelector handles input/output arguments incorrectly
#100 TOPPView memory consumption high when copying data
#257 CLang++ crashes with "SCEVAddRecExpr operand is not loop-invariant!" on EnzymaticDigestion
#233 TOPPView's updateLayer does not reload all data
#247 TOPPView: crashes if file is deleted while opened
#66 "Tools -> Go to" coordinates should default to current view
#239 seg. fault when loading featureXML into TOPPView from the wrong context
#221 TOPPView: when loading a new layer, the zoom should not reset
#222 IDMapper should support mapping charge-matched entities only
#255 TOPPView's Projection is showing only single peaks at high zoom
#253 TOPP tools should be able to write their type into ini file, without knowing it a priori
#252 OMSSAAdapter crashes when v2.1.7 and 'precursor_mass_tolerance_unit_ppm' are used
#251 XTandem Adapter ignores "no_refinement" flag
#198 add Proteowizward to Windows binary installer
#246 TOPPView: Update Layer broken
#149 Support external tools not derived from TOPPBase
#245 PeptideIndexer fails on ambiguous AA's
#244 merging by Precursor in SpectraMerger
#242 Protein coverage should be reported
#237 RT corrections via BSpline transformation is unreliable for sparse regions (e.g. borders and extrapolation)
#235 TOPPAS input file name lists should be sorted
#231 FeatureFinder has faulty Averagine model
#229 Digestor UTIL cannot write FASTA output
#27 generate publication ready figures in SVG format - 1D view
#215 FeatureFinder crashes with Segmentation fault
#213 TOPPView crashs when loading mzML and featureXML
#224 PepXMLFile produces invalid files (mod_aminoacid_mass position is 1-based)
#225 msInspect pepXML parser can not handle OpenMS pepXML due to massdiff attribute
#223 TOPPAS restores wrong parameter name when deleting an input/output edge
#217 Caching in LogStream is not thread safe
#218 FF should work on non-sorted data, but gracefully exit on negative m/z values
#214 MapAligner crashes on certain data
#211 TOPPAS: IDFilter RTPredict linking not possible
#150 TOPPAS does not use user environment to find executables
#208 Windows: hide extra console window when starting GUI apps
#207 Projections show wrong axis names
#179 adapt to command/console width
#206 Parameter names should include subsection
#204 TOPPView "Go To" Dialog should support UniqueID's
#202 "Open file" dialog: "readable files" should include .gz files
#191 changing from 1D to 2D,3D View and 3D to 2D if MS1 spectra are present
#196 NoiseFilter, PeakPicker, BaselineFilter crash on certain input-data
Detailed list of changes to specific OpenMS classes:
- NEW:
- BaseFeature: parent of Feature and ConsensusFeature
- FeatureGroupingAlgorithmQT, QTClusterFinder, QTCluster, GridFeature: feature grouping for unlabeled data based on QT clustering
- FeatureDistance: distance measure for features
- TransformationModel: different models for retention time transformations
- SvmTheoreticalSpectrumGenerator: simulator for MS/MS spectra
- MODIFIED:
- Feature, ConsensusFeature: moved common parts to BaseFeature
- StablePairFinder: moved distance calculation to FeatureDistance
- TransformationDescription: reworked, some functionality moved to TransformationModel
- all MapAlignmentAlgorithm... classes, PoseClustering[Affine/Shift]Superimposer, TransformationXMLFile, InternalCalibration: adapted to changes in RT alignment/transformation modelling
- FeatureGroupingAlgorithm: support linking of consensus maps; new algorithm "unlabeled_qt"
- BaseGroupFinder: new algorithm "qt"
- IDMapper: consider charge states for matching
- PepXMLFile: use E-value (instead of hyperscore) as score for X! Tandem results
- FileHandler: accept endings ".pep.xml" and ".prot.xml" for pepXML/protXML
- FeatureMap, ConsensusMap: "clear" also clears meta data by default
- ConsensusMap: adapted signature of "convert" for feature maps (to mirror that for peak maps)
- Param: remove() and ::removeAll() now delete empty nodes which have no subnodes nor entries (otherwise writing paramXML breaks)
- TheoreticalSpectrumGenerator: getSpectrum() now generates all selected ion types not only b- and y-ions
------------------------------------------------------------------------------------------
---- OpenMS 1.7 ----
------------------------------------------------------------------------------------------
Release date: Sep 5th 2010
TOPP tools:
- TOPP tool categories have been reorganized
- TOPP documentation now has a predecessor/successor tool section and uniform algorithms subsection parameter documentation
- MODIFIED:
- IDFilter: reworked parameter names and documentation (please see the IDFilter documentation and update your INI files)
- IDMapper: reworked parameter handling (please see the IDMapper documentation and update your INI files)
- FileMerger: can now merge featureXML
- IDMerger: new option to integrate data from pepXML and protXML
- MapAligner: improved handling of reference files, added several options to the "identification" algorithm
- SeedListGenerator: new option to use monoisotopic peptide mass instead of precursor m/z for seeds from idXML input
- Resampler: PNG image creation functionality removed and transferred to ImageCreator UTIL
- FeatureFinder: deprecated algorithms "simple" and "simplest"
- FeatureLinker: deprected algorithm "identification"
- NEW:
- ProteinQuantifier: compute protein/peptide abundances from annotated featureXML or consensusXML files
- GenericWrapper: wrap external programs (e.g. ProteinProphet) in TOPPAS
- ConsensusID: [rewritten] combine several peptide search engine results to improve precision and recall
- InclusionExclusionListCreator: creates inclusion or exclusion lists for MS/MS based on identifications, feature maps or protein databases
- REMOVED:
- TextImporter (functionality moved to FileConverter)
UTIL tools:
- MODIFIED:
- DecoyDatabase now uses "_rev" as decoy string by default (previously: "_ref"), as required by PeptideIndexer by default
- MSSimulator provides a framework for the simulation of labeled data (#88)
- NEW:
- ImageCreator: creates PNG's from MS maps
- IDSplitter: splits peptide/protein annotations off of data files (inverse operation as IDMapper)
- MassCalculator: calculates masses and mass-to-charge ratios of peptide sequences
OpenMS library improvements:
- read protXML files
- support protein groups in ProteinIdentification/idXML
- line numbers in errors of Textbased files (most formats: dta, dta2D, FASTAFile, PepNovoOutfile, MascotGenericFile, MS2File, MSPFile, OMSSACSVFile, TextImporter (csv, msInspect, SpecArray?, Kroenik))
- FeatureFinderAlgorithmPicked is now able to fit asymmetric retention time profiles (experimental)
- added generic labeling framework to SIMULATION (#88) (experimental)
TOPPView improvements:
- basic visualization of peptide identifications in idXML
- when the amount of loaded data causes memory depletion, an error is issued and TOPPView does not crash (only a problem on 32bit systems)
- zooming beyond the last zoom stack item using the mouse wheel or CTRL+
TOPPAS improvements:
- added copy/paste for workflow items
- workflows can now include other workflows (File>Include)
- several bug fixes
- split TOPPAS in TOPPAS and PipelineExecute TOPP-tool
Changes to the Build System:
- external code support for CMake 2.8:
External code using "include (${OpenMS_USE_FILE})" in its CMakeLists.txt cannot be configured against OpenMS 1.7, however, only minor changes are required to fix this. See the documentation for "Programming with OpenMS".
- nightly tests for external code
- SVN revision used to build the lib is remembered (finer version tracking)
- nightly coverage builds
- GUI testing (experimental)
- Visual Studio 2010 support
- building on Mac OS X requires CMake 2.8.1 due to bugs in CMake < 2.8.1
Fixed Issues:
[new tracker: http://sourceforge.net/apps/trac/open-ms/query?status=closed&group=resolution&milestone=Release+1.7]
- #23 implement protXML
- #44 TOPPView warning "Cannot show projections!"
- #46 All TOPP/UTILS segfault if /share is not found
- #53 TOPPAS select directory has save as dialog
- #54 TOPPAS select directory has save as dialog
- #56 TOPPAS context menu "open in TOPPView" does not work under MacOSX
- #58 Unit tests for nested classes
- #59 Test of external Code
- #61 automatic ini file Version number update
- #62 nightly tests for external code
- #63 rename methods named min() or max() to something else...
- #64 TOPPView - update_layer reload is incomplete
- #69 FileMerger needs ability to merge featureXML
- #73 Resampler: can't create PNGs with TOPPAS
- #74 Default parameters of PTModel cause infinite loop
- #76 Add deployment target for compatibility with older MacOSX versions
- #77 FuzzyDiff always returns 'true' when comparing any two PNG images
- #81 Terminal modification with residue specificity
- #85 IDMapper will crash on negative RT's or big deltas
- #87 Gzipped files work as input, but arrow stays red
- #88 Implement Labeling Framework for MSSimulator
- #90 Quantification on protein level
- #91 Simple FF crashes on very sparse data
- #92 Encoding of XML files (invalid multcharacter)
- #93 TOPPAS layer bug
- #98 display RT value when viewing 1D data
- #104 Split TOPPAS in TOPPAS and PipelineExecute TOPP-tool
- #110 "Copy&paste, include workflows in current window"
- #121 Tool categories and menu items in context menus have arbitrary order
- #122 Projection view: mouse-over text on RT projection says "m/z"
- #123 Reorganize TOPP tool categories
- #124 TOPPAS fails to load files correctly
- #127 catch out-of-memory exceptions in TOPPView
- #131 TOPP input files check too restrictive...
- #132 check all system calls
- #133 Textexporter runs indefinitely when input has no IDs and -consensus_features as output
- #134 [Windows] failure of TOPP tools in TOPPAS due to _out and _temp directory not writeable
- #136 TOPPView: #of Isotopes in TheoreticalSpectrumGenerator not forwarded
- #137 Implement asymmetric elution profile shapes for model fitting in FeatureFinderAlgorithmPicked
- #141 CMake 2.8.1 causes linker errors on Mac OS 10.6.3
- #143 Incompatibility between String and string methods
- #147 Internal Compiler Error with gcc 4.3
- #152 Remove/hide deprecated algorithms
- #154 Update TOPPAS workflows params
- #155 linking OpenMS.so using a relative contrib directory fails
- #156 use MSBuild instead of devenv for contrib building on Windows
- #158 FeatureFinder (centroided) might crash on certain input
- #159 IDMapper will crash when given empty FeatureMap
- #161 TOPPAS Output file naming can lead to wrong "merge all" behaviour
- #163 rework IDFilter
- #164 DecoyDatabase creates faulty protein names by default
- #170 TheoreticalSpectrumGenerator computes wrong prefix/suffix masses
- #171 Remove/hide entire deprecated tools
- #175 Internal Compiler error in BaseModel/FeatureFinder
- #182 INIFileEditor crashes upon execution
For more minor bugfixes visit the above URL.
Detailed list of changes to specific OpenMS classes:
- ConsensusMap, FeatureHandle, ConsensusFeature:
- element index replaced by unique id
- DPosition:
- min() renamed to minPositive()
- min_negative() to minNegative()
- DIntervalBase
- min() renamed to minPosition()
- max() renamed to maxPosition()
- String
- removed:
String substr(SignedSize start, SignedSize n) const;
String substr(SignedSize start) const;
- added:
String substr(size_t pos = 0, size_t n = npos) const;
String chop(Size n) const;
------------------------------------------------------------------------------------------
---- OpenMS 1.6 ----
------------------------------------------------------------------------------------------
Release date: Nov 19th 2009
Main improvements of TOPPView:
- Storing peak data is now possible in mzData, mzXML and mzML format
- Feature and consensus feature peaks are now configurable (icon and size)
- Added new label mode for feature layers: all peptide hits of a feature are displayed
- Added visualization of unassigned peptide hits for feature layers
- Measuring to arbitrary end points is now supported in 1D and 2D view
- file load progress bar stays responsive under load on Windows
- rudimentary chromatogram support
Main improvements of TOPP-Framework:
- Major update of TOPPAS
- TOPP tools now warn when used with parameter files from a different version
- Combining '-write_ini' and '-ini' option now allows to transfer settings with identical
path and names from an old ini file into a new one.
New TOPP tools:
- SeedListGenerator
- generates seed lists for feature detection (still experimental)
- PrecursorMassCorrector
- update precursor m/z information of MS/MS spectra based on MS1 peptide isotope fits
(still experimental)
Main improvements of TOPP-Tools:
- all tools:
- gzipped and bzipped XML files (e.g. mzML) can be directly read
- FeatureFinder
- Centroided
- supports parallel execution now
- supports user-specified seeds now
- Wavelet: removed (Isotope-Wavelet is still available)
- FileMerger: accumulated processingMethod entries, which all contained the same
information
- IDMapper
- has new default m/z tolerance and uses ppm as new default measure! Da is still
supported.
- referenze m/z of ID can now be either: 1) precursor mass, 2) [new] mass of identified
peptide
- assigns more peptides to features with convex hulls (the deltas are used)
- InternalCalibration
- supports calibration functions calculated seperately for each spectrum or one global
function
- supports peptide ids as reference peaks
- works on peak or feature data now
- MapAligner
- new "identification" algorithm for alignment based on identified peptides
(still experimental)
- PeakPicker
- support for automatic estimation of peak width
- TextImporter can now import Koenik(Hardkloer) feature files
- TextExporter
- added option for string quoting
- improved export of consensusXML
- PepNovoAdapter: complete rewrite of the code, including classes
New UTILS:
- UniqueIdAssigner can be used to assign unique ids to FeatureXML and ConsensusXML files
Main improvements of UTILS:
Main improvements of OpenMS C++ library:
- MGF file creation speedup (also affects some TOPP tools)
- removed FeatureFinder-Wavelet (IsotopeWavelet is still available)
- support for bzip2 and gzip compressed XML files
- chromatogram support
- comments and other strings of XML writers are now escaped to prevent reading problems
- fixed IdXMLFile segmentation fault if no protein identification given
Detailed list of changes to specific OpenMS classes
- [New classes]:
- UniqueIdGenerator, UniqueIdInterface, UniqueIdIndexer
- SVOutStream
- MapAlignmentAlgorithmIdentification
- SeedListGenerator
- [Removed classes]:
- FeatureFinderAlgorithmWavelet
- [Renamed classes]:
- IDTagger -> DocumentIDTagger
- String:
- improved behaviour of split(...) method
- added support for quoting and unquoting of strings
- ConsensusMap: added clear(...) method
- IDMapper:
- uses bounding boxes of mass traces instead of convex hulls now
- the given deltas are used for features with convex hulls as well
- PoseClusteringShiftSuperimposer:
- full rewrite, uses a similar algorithm like PoseClusteringAffineSuperimposer now
- TranformationDescription:
- added cubic b-spline transformation
- PairsType uses DoubleReal instead of Real now, thus can be used for m/z as well
- VersionInfo:
- includes (if available) SVN revision number that the library is build upon via support
by the build system
- SVN revision information is displayed in the TOPP tools help text
- PepXMLFile: improved handling of PTMs
Changes to the Build System:
- unit tests are now in a separate sub-project in <OpenMS/source/TEST/> avoiding huge
Solution files in MSVC IDE
- new targets: test_build, tutorials_build, tutorials_exec
- SVN revision (if available) is determined and compiled into OpenMS before the library is
built
- added real install prefix and install target to be able to do a 'make install'
Changes to OpenMS XML formats:
- FeatureXML and ConsensusXML files use unique ids now instead of running indices. New XML
Schema versions: 1.4
Changes to the contrib package:
- updated GSL to version 1.13
- updated SVM to version 2.89
- added Z lib and bz2 lib
Bug fixes:
[old tracker: http://sourceforge.net/tracker/?func=detail&aid=2857130&group_id=90558&atid=1059012]
- [2857042]: RTModel/PTModel unable to find modification
- [2857040]: Modification names with brackets fail to parse
- [2849215]: OMSSAAdapter fails with Acetlyation not found
- [2849201]: Parameters in INI files are duplicated
- [2849439]: Compilation error with Qt 4.3.x
- [2900457]: idXML files with more than ProteinIdentification might be incorrect
[new tracker: http://sourceforge.net/apps/trac/open-ms/query?status=closed&group=resolution&milestone=Release+1.6]
- #29: FilerMerger accumulates processingMethod entries
- #28: Segfault if idXML file does not contain a protein identification.
- #24: XML formats are written with unescaped special chars like "&"
------------------------------------------------------------------------------------------
---- OpenMS 1.5 ----
------------------------------------------------------------------------------------------
Main improvements of TOPPView:
- Added new labeling options for feature data
- Fixed crash when zooming in snap-mode
- Added context menu to spectra selection bar
- Feature editing mode can be enabled/disabled in the context menu (to avoid accidental editing)
- Several minor fixes and improvements
Main improvements of TOPP:
- Made mzML 1.1.0 the default format for all TOPP tools
- Added data processing information to all output files to improve traceability
- FileFilter:
- added 'sort_peaks' option
- added filtering according to scan type
- added filtering according to activation type
- FileInfo:
- added flag for data processing output
- corrupt data checks: sorting is checked now, improved speed
- Added new tool IDFileConverter, which can convert between identification file formats
- Added TOPPAS, a tool for visual creation and execution of TOPP pipelines (beta)
- TextImporter can now import SpecArray and msInspect feature files
- Added CompNovo, a de novo identification tool for combined CID/ETD experiments
- MapAligner uses a new algorithm for pose clustering with less parameters
Main improvements of UTILS:
- Added PeptideIndexer, assign proteins to peptides including target/decoy specification
- Added MRMPairFinder, ERPairFinder to extract ratios of labeled experiments
- Added IDMassAccurracy, given mzML files and identification, it calculates distributions of mass deviations
- Added MapAlignmentEvaluation, a tool to evaluate alignment results
- Added MSSimulator, a highly configurable simulator for mass spectrometry experiments
Main improvements of OpenMS C++ library:
- mzML 1.1.0 support
- Improved the precision of mass values in several file formats
Detailed list of changes to specific OpenMS classes
- New classes:
- CompNovo-classes
- StablePairFinder, which is now used by MapAligner and FeatureLinker
- Simulation-classes
- Removed classes:
- FeatureFinderAlgorithmWatershed
- PeakIcon
- FactoryProduct (replaced by DefaultParamHandler)
- DSpectrum (all the functionalty was moved to MSSpectrum)
- Renamed and moved classes:
- moved PersistentObject from FORMAT/ to FORMAT/DB/
- renamed PepXMLFile to PepXMLFileMascot
- Changes to Classes:
- MSExperiment: added 'isSorted' method
- MSSpectrum:
- added 'isSorted' method
- renamed MetaDataArray to FloatDataArray
- added IntegerDataArrays
- added StringDataArrays
- DataValue: added constructor for 'std::string' and QString
- MetaInfo: 'setValue' method takes only DataValue now
- MetaInfoInterface: 'setMetaValue' method takes only DataValue now
- Param: 'setValue' method takes only DataValue now
- ExperimentalSettings: moved DataProcessing to SpectrumSettings (for mzML)
- Precursor: supports multiple dissociation methods now (for mzML)
- MetaInfoDescription: removed comment and source file; added data processing (for MzML)
- ElementDB: isotopes are now possible
- EmpiricalFormula: isotopes are now possible (e.g. (2)H for deuterium)
- ModificationsDB: switched completely to UniMod (www.unimod.org). PSI-MOD still provided for convenience
- PepXMLFile: added new 'load' method (moved the old 'load' method to PepXMLFileMascot)
- TextFile:
- is now derived from StringList
- the 'asString' method was replaced by 'concatenate' from StringList
- MzMLFile:
- added support for integer and string binary arrays
- added support for compressed binary data arrays
- loading a file with unknown CV terms in certain tags no longer causes an error
- DBConnection:
- The 'executeQuery' method no longer sets the internal pointer to the first record of the result.
It is now positioned before the first record. A boolean flag can be used to switch to the old behaviour.
- SourceFile: changed native ID type to string
- PoseClusteringAffineSuperimposer: full rewrite, not using CGAL
Changes to the contrib package:
- Added CoinMP 1.3.3
- Added IMSlib 0.1.0
- Update Xerces-C to revision 806068 of SVN trunk
Bug fixes:
- [2778461]: mzData files containing 'supDataArray' elements no longer crash OpenMS
- [2777173]: TOPPView 2D view projections no longer forget the draw mode on repaint
- [2776386]: TOPPView snap-to-max intensity mode no longer crashes with empty spectra
- [2775912]: PeakPickerCWT no longer assigns RT=-1 to MS/MS spectra
------------------------------------------------------------------------------------------
---- OpenMS 1.4 ----
------------------------------------------------------------------------------------------
Main improvements of TOPPView:
- Drag-and-drop is now supported from the layer bar, spectrum bar and for files from the operating system
- Improved visualization of very high-resolution data
- Improved painting speed of 2D view
Main improvements of TOPP:
- Added new tool TextImporter, which can convert text files to featureXML
- TextExporter can now export peptide/protein information stored in consensusXML
- PeakPicker: reduced the number of parameters, added parallization support
- FeatureFinder: added new MRM algorithm and removed the tool 'FeatureFinderMRM'
- FileInfo: added support for idXML
Main improvements of OpenMS C++ library:
- mzML 1.1.0 RC5 support
- removed support for external memory (use the 64bit builds if you want to process large datasets)
- added support for three kinds of parallization architectures
- OpenMP
- Intel Threading Building Blocks
- Nvidia Cuda
Detailed list of changes to specific OpenMS classes:
- SpectrumSettings: several precursor peaks are now supported, added product list
- Precursor: complete rewrite for better support of mzData, mzXML and mzML
- PeakPickerCWT: cleaned up interface, improved meta data handling, improved parameters, added parallelization support
- GaussFilter: cleaned up interface, improved meta data handling
- SavitzkyGolayFilter: cleaned up interface, improved meta data handling
- MorphologicalFilter: cleaned up interface
- LinearResampler: cleaned up interface
- LabeledPairFinder: estimated negative sigma values are now treated as positive values
- FeatureFinder: added new algorithm 'MRM' for MRM feature detection; replaces FeatureFinderMRM
- ExperimentalSettings: remove native ID type (for mzML support)
- SourceFile: added native ID type (for mzML support)
- File: replaced vector<String> by StringList in all methods
Bug fixes:
- [2645436]: TOPPView - Data Filter for "Size" not available
- [2645510]: OpenMS - libOpenMS.so is built but linking fails (TOPP, tests) (on Debian "Lenny")
- [2665055]: FileFilter ignores -sort option for FeatureXML and Consensus
- [2659013]: windows contrib can fail when copying compiled libraries
- [2606068]: TOPP tools with list parameters do not work with INI files
- [2690367]: Protein references missing on peptide identifications
------------------------------------------------------------------------------------------
---- OpenMS 1.3 ----
------------------------------------------------------------------------------------------
New features and improvements of OpenMS:
- The build system is now based on CMake - supporting Linux, MacOS and Windows.
- Finalized mzML implementation (version 1.1.0 RC4)
- previously unsupported parts
- indexed mzML
- semantic validation (see FileInfo)
- Kernel: Replaced comparators NthPositionLess by the comparator(s) RTLess and/or MZLess.
- Kernel: Replaced methods sortByNthPosition() by the method(s) sortByRT() and/or sortByMZ().
- Improved the framework for meta data visualization.
- Several extensions to the meta data classes were made for mzML compliance.
- The macros used for unit testing in source/TEST have been revised.
- More consistent handling of single vs. double numeric precision, esp. in file output.
- Added ANALYSIS/PIP/PeakIntensityPredictor class for peak intensity prediction (contributed by Alexandra Scherbart).
- Added support for Intel Compiler versions 10 and 11
- Added support for Qt up to 4.5 rc1
New features and improvements of TOPP:
- Added SILACAnalyzer: A specialized tool for quantitation of SILAC experiments (contributed by Lars Nilse).
- Added ITRAQAnalyzer: A specialized tool for quantitation of ITRAQ experiments.
- Added IDMapper: Assigns protein/peptide identifications to features or consensus features.
- FeatureLinker: Added automated RT parameter estimation for 'labeled' algorithm.
- MapAligner: Added spectrum_alignment and apply_given_trafo, IdXML is supported.
- Resampler: This tool is now used for resampling raw data instead of resampling in NoiseFilter or BaselineFilter.
- FileInfo: The option '-v' now also does a semantic validation of mzML files.
- FileMerger: Improved interface
- ConsensusID: Now also supports consensus identification of features and consensus features.
- INIFileEditor: Support for string/int/double lists and input/output files was added.
- Added PrecursorIonSelector: A tool for result-driven precursor ion selection.
- FalseDiscoveryRate: corrected FDR calculations and added optional support for q-values
- Added MascotAdapterOnline: which allows queries to Mascot via network (together with Daniel Jameson)
New features and improvements of TOPPView:
- Added functionality for editing feature data
- Added support for consensus features (consensusXML)
- Added measuring and generic annotations to 1D view
- Several minor interface improvements and bugfixes
Changes to OpenMS XML formats:
- ParamXML:
- Restrictions in Param .ini files are represented by 'min:max' instead
of 'min-max' now, to avoid issues with small (1e-06) and negative numbers.
- Replaced 'advanced' attribute by the more general 'tags' attribute.
- Added support for float, int and string lists
- featureXML:
- Added tag <subordinate> to store competing features that did not qualify for the final map
- Removed <description> section
- Added document identifier
- Added protein and peptide information
- consensusXML:
- Added document identifier
- Added protein and peptide information
- idXML:
- Added document identifier
Changes to the contrib package:
- The build system is now based on CMake - supporting Linux, MacOS and Windows.
- Updated SeqAn package to revision 2666 (this fixes the STL debug error)
- Updated xerces-c to version 3.0.0
- Updated boost to version 1.37.0
- Downgraded GSL to 1.8 (because of Mac/Windows support)
Detailed list of changes to specific OpenMS classes:
- Renamed and moved classes
- Renamed MSMetaDataExplorer to MetaDataBrowser
- Renamed ProcessingMethod to DataProcessing
- Moved XMLValidator from FORMAT/ to FORMAT/VALIDATORS/
- Removed classes
- DPeakArray (moved the functionality to the classes that inherited from it)
- IDSpectrumMapper (replaced by IDMapper)
- IDFeatureMapper (replaced by IDMapper)
- FeatureXMLHandler (merged into FeatureXMLFile)
- ConsensusXMLHandler (merged into ConsensusXMLFile)
- PeakPicker (merged into PeakPickerCWT)
- MorphFilter (merged into MorphologicalFilter)
- TopHatFilter (merged into MorphologicalFilter)
- New classes
- DATASTRUCTURES/IntList
- DATASTRUCTURES/StringList
- ANALYSIS/ID/IDMapper
- ANALYSIS/MAPMATCHING/MapAlignmentAlgorithmApplyGivenTrafo
- ANALYSIS/MAPMATCHING/MapAlignmentAlgorithmSpectrumAlignment
- Changes to classes
- InstrumentSettings
- Revisited scan modes
- Added bool member for zoom scans (no longer a scan mode)
- MassAnalyzer: Removed tandem scanning method. This is stored in the ScanMode of InstrumentSettings.
- DataProcessing: Now contains Software and can handle multiple processing actions.
- Software: Only contains name and version now.
- SourceFile: Added MetaInfointerface and checksum type
- ContactPerson: Added URL and address
- Instrument:
- Can contain multiple detectors and multiple ion sources now
- Added Software
- Added ion optics type
- AcquisitionInfo: Added MetaInfoInterface
- Acquisition: integer 'number' member was changed to a string 'identifier' (for mzML)
- ExperimentalSettings
- Now contains multiple SourceFiles and DataProcessings
- ExperimentType was removed
- SpectrumSettings
- Added nativeID (from acquisition software)
- DSpectrum
- The peaks are no longer stored in a container member, but DSpectrum is derived
from std::vector<PeakType>.
- The container type is no longer a template argument. Peak type and allocator type
are the new template arguments.
- LabeledPairFinder: Added automated RT parameter estimation.
- GaussFitter: Removed several unneeded methods.
- GammaDistributionFitter: Removed several unneeded methods.
- DataValue: Added support for IntList and DoubleList types
- Param:
- Added a new remove(key) method, that removed only exact matches.
The old remove() method was renamed to removeAll(prefix)
- Replaced 'advanced' flag by a generic tagging mechanism
- Added support for IntList and DoubleList types
- File: find(...) now throws an exception, of the file is not found.
- DPeak and DRichPeak are metafunctions now, e.g. DPeak<1>::Type is a typedef for Peak1D.
- VersionInfo: Added support for SVN revision info. Slight interface changes.
- TOPPBase: Print revison info (if meaningful).
- MetaInfo: Uses double precision now.
- Date
- get() now returns a string instead of modifying a string reference.
- Made today() is static now and returns the current DateTime instead of modifying the object.
- DateTime
- get(), getDate() and getTime() now return a string instead of modifying a string reference.
- Made now() is static now and returns the current Date instead of modifying the object.
- MSExperiment: The date is now a DateTime object.
- ProgressLogger: Nested application uses indentation.
- XMLValidator: The output stream for error messages can now be set in the isValid(...) method
- XMLFile: The output stream for validation error messages can now be set in the isValid(...) method
- MzMLFile: The output stream for validation error messages can now be set in the isValid(...) method
- IdXMLFile: Adden document identifier to the load(...) and store(...) method
------------------------------------------------------------------------------------------
---- OpenMS 1.2 ----
------------------------------------------------------------------------------------------
New features and improvements of OpenMS:
- GCC 4.3 is now supported (GCC 3.4 and 4.0 are no longer supported)
- Added support for GCC STL debug mode (configure option --enable-stl-debug)
- Complete reimplementation of map alignment and feature grouping classes.
This affected some classes in KERNEL and nearly all classes in ANALYSIS/MAPMATCHING.
The affected classes are not listed in detail here.
- Added meta data arrays to spectra as the new standard way of handing peak meta information
- Improved interface of SpectrumCanvas and derived classes for easier reuse outside of TOPPView
- Added support for arbitrary modifications to peptide/protein modifications (based on PSI-MOD)
- Exceptions thrown by member functions are no longer declared in the header files.
They are however documented in the class documentation.
- Added *beta* support for the HUPO PSI format mzML
Currently only reading is supported and some features are not implemented yet
e.g. chromatograms, zlib compression of base64 data, base64 integer data, base64 16 bit data
- Added the UTILS package, a bundle of small helper tools.
- Changed handling of amino acid sequences and modifications. Modifications are taken from
PSI-MOD and are fully supported via the class AASequence.
- Added new framework for generic clustering
New features and improvements of TOPP:
- Replaced 'MapAlignment', 'UnlabeledMatcher' and 'LabeledMatcher' tools by 'MapAligner' and 'FeatureLinker' tools
- Added map alignment algorithm based on spectrum similarity to 'MapAlignment'
- Added 'PTModel' and 'PTPredict' tool for prediction of proteotypic peptides
- Added XTandemAdapter with a minimal interface (shared with OMSSAAdapter) all advanced option can be set using a
standard X!Tandem configuration file
- Changed OMSSAAdapter to same minimal interface as XTandemAdapter, advanced option are additionally available
- Added IDDecoyProbability which implements the transformation of a forward and reversed search into probability
scores (target-decoy approach)
- Added FalseDiscoveryRate, which implements FDR calculation from forward and reversed searches at peptide
and protein levels
New features and improvements of TOPPView:
- Major update to the user interface and functionality
- Speed improvements of the 2D view
- Many bug fixes
- Updated tutorial
Changes to OpenMS XML formats:
- Added TransformationXML which stores information about map alignment
- Removed map alignment information from ConsensusXML
- FeaturePairsXML is now deprecated (ConsensusXML is used instead)
Changes to the contrib package:
- Updated to NetCDF 3.6.3
- Updated to SeqAn 1.1 (r2416)
- Updated to CGAL 3.3.1
- Updated to GSL 1.11
- Updated to xerces-c 2.80
- Updated to boost 1.35.0
- Updated to libsvm 2.86
Detailed list of changes to specific OpenMS classes:
- Renamed and moved classes
- Renamed 'Exception::Base' to 'Exception::BaseException'
- Renamed all 'Peak' classes to 'RichPeak'
- Renamed all 'RawDataPoint' classes to 'Peak'
- Renamed 'KERNEL/DPeakConstRefArray' to 'DATASTRUCTURES/ConstRefVector'
- Removed classes
- KERNEL/PickedPeak1D
- DATASTRUCTURES/HashMap (replace by Map)
- ANALYSIS/MAPMATCHING/BaseAlignment (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/BaseMapMatcher (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/BasePairFinder (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/BasePairFinder_impl (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/BasePairwiseMapMatcher_impl (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/BaseSuperImposer_impl (restructuring of map alignment
- ANALYSIS/MAPMATCHING/ElementPair (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/Grid (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/GridCell (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/Group (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/IndexTuple (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/LinearMapping (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/MapDewarper (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/MapMatcherRegression (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/PairMatcher (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/PoseClusteringPairwiseMapMatcher (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/StarAlignment (restructuring of map alignment)
- ANALYSIS/CLUSTERING/BinnedRep (reimplemented in BinnedSpectrum)
- COMPARISON/SPECTRA/BinnedRepCompareFunctor (reimplemented in BinnedSpectrumCompareFunctor)
- COMPARISON/SPECTRA/BinnedRepMutualInformation (reimplemented in BinnedMutualInformation)
- COMPARISON/SPECTRA/BinnedRepSharedPeakCount (reimplemented in BinnedSharedPeakCount)
- COMPARISON/SPECTRA/BinnedRepSpectrumContrastAngle (reimplemented in BinnedSpectralContrastAngle)
- COMPARISON/SPECTRA/BinnedRepSumAgreeingIntensities (reimplemented in BinnedSumAgreeingIntensities)
- CONCEPT/Benchmark
- CONCEPT/HashFunction
- FILTERING/SMOOTHING/SmoothFilter
- FORMAT/FeaturePairsXMLFile (restructuring of map alignment)
- FORMAT/GridFile (restructuring of map alignment)
- FORMAT/HANDLER/FeaturePairsHandler (restructuring of map alignment)
- FORMAT/HANDLER/GridHandler (restructuring of map alignment)
- FORMAT/HANDLER/OMSAAXMLHandler (replaced by OMSSAXMLFile)
- KERNEL/ConsensusPeak (restructuring of map alignment)
- KERNEL/FeatureHandle
- KERNEL/MSExperimentExtern
- KERNEL/PeakIndex
- TRANSFORMATIONS/CENTROIDING/PeakShapeType
- New classes
- CHEMISTRY/ModificationsDB which handles the PSI-MOD modifications
- CHEMISTRY/ModificationDefinition class, which specifies modification search options
- CHEMISTRY/ModificationDefinitionSet class, which specifies modification search options
- CHEMISTRY/ResidueModification which represents a PSI-MOD modification
- ANALYSIS/ID/FalseDiscoveryRate class, which calculates FDRs on peptide and protein level
- ANALYSIS/ID/IDDecoyProbability class, which implements a target decoy probability estimation
- DATASTRUCTURES/Map class and replaced HashMap usage with Map
- ANALYSIS/MAPMATCHING/BaseGroupFinder (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/FeatureGroupingAlgorithm (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/FeatureGroupingAlgorithmLabeled (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/FeatureGroupingAlgorithmUnlabeled (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/LabeledPairFinder (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/MapAlignmentAlgorithm (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/MapAlignmentAlgorithmPoseClustering (restructuring of map alignment)
- ANALYSIS/MAPMATCHING/MapAlignmentAlgorithmSpectrumAlignment (new map alignment type using spectral alignments)
- ANALYSIS/MAPMATCHING/TransformationDescription (new map alignment type using spectral alignments)
- ANALYSIS/CLUSTERING/AverageLinkage (new framework for clustering)
- ANALYSIS/CLUSTERING/ClusterFunctor (new framework for clustering)
- ANALYSIS/CLUSTERING/ClusterHierachical (new framework for clustering)
- ANALYSIS/CLUSTERING/CompleteLinkage (new framework for clustering)
- ANALYSIS/CLUSTERING/SingleLinkage (new framework for clustering)
- COMPARISON/SPECTRA/BinnedSpectrum (Binned represenetation of a spectrum)
- COMPARISON/SPECTRA/BinnedMutualInformation
- COMPARISON/SPECTRA/BinnedSumAgreeingIntensities
- COMPARISON/SPECTRA/BinnedSpectralContrastAngle
- COMPARISON/SPECTRA/BinnedSharedPeakCount
- COMPARISON/SPECTRA/BinnedSpectrumCompareFunctor
- COMPARISON/SPECTRA/CompareFourierTransform
- COMPARISON/SPECTRA/PeakAlignment
- COMPARISON/SPECTRA/SteinScottImproveScore
- DATASTRUCTURE/DistanceMatrix
- FORMAT/ControlledVocabulary
- FORMAT/HANDLER/MzMLHandler
- FORMAT/HANDLER/UnimodXMLHandler
- FORMAT/HANDLER/XTandemInFileXMLHandler
- FORMAT/MSPFile
- FORMAT/MzMLFile
- FORMAT/OMSSACSVFile
- FORMAT/PepXMLFile (only for Mascot output, not complete implementation of pepXML)
- FORMAT/TransformationXMLFile
- FORMAT/XTandemInfile
- FORMAT/XTandemXMLFile
- MATH/STATISTICS/GammaDistributionFitter
- MATH/STATISTICS/GaussFitter
- TRANSFORMATIONS/FEATUREFINDER/FeatureFinderAlgorithmIsotopeWavelet
- TRANSFORMATIONS/FEATUREFINDER/FeatureFinderAlgorithmWavelet
- Changes to classes
- Changed AASequence to support PSI-MOD modifications
- Changed Residue to support PSI-MOD modifications
------------------------------------------------------------------------------------------
---- OpenMS 1.1.1 ----
------------------------------------------------------------------------------------------
Bug fixes:
- [1953335]: TOPP - TOPPView: Filter bar is not updated when deleting a layer
- [1953339]: TOPP - TOPPView: Crash when pressing cancel button of the DB password dialog
- [1948699]: TOPP - TOPPView: Opening a file from command-line containing spaces fails
- [1948080]: TOPP - MascotAdapter: Variable modification were added to fixed modifications
- [1941268]: TOPP - TOPPView: Crash when displaying files with intensity 0 peaks only
- [1941270]: TOPP - TOPPView: Recent file paths in TOPPView are wrong under certain conditions (Windows only)
- [1941273]: TOPP - TOPPView: Crash when loading an INI file without type in TOPP dialog
- [1934199]: OpenMS - SpectrumWidget: Crash when painted without layers
- [1933097]: OpenMS - TOPPBase: Invalid default values of string parameters were not handled correctly
------------------------------------------------------------------------------------------
---- OpenMS 1.1 ----
------------------------------------------------------------------------------------------
New features and improvements of OpenMS:
- Added support for Windows XP
- Improved configure
- prefix option now works as expected
- Fixed several bugs in handling of Qt
- Fixed several minor bugs
- Added support for large datasets through a custom allocator
- Added support for XML schemas, which allows validation of files
- Added optional schema version tag to all OpenMS XML formats
- Removed classes: DataReducer, MaxReducer, SumReducer, SavitzkyGolaySVDFilter,
MSExperimentExtern, BaseMapping
- Added classes: StringList, SuffixArray, DataFilters
- Renamed/moved classes:
- ExternalCalibraton -> TOFCalibration,
- SavitzkyGolayQRFilter -> SavitzkyGolayFilter
- FORMAT/Param.h -> DATASTRUCTURES/Param.h
- Refactoring of FeatureFinder framework
- Refactoring of MapAlignment framework
- Refactoring of XML parsing classes
- Refactoring of the visualization widgets
- Reorganization of the OpenMS documentation
- Lots of minor bug fixes and improvements to documentation
New features and improvements of TOPP:
- Added support for advanced parameters and parameter value restrictions
- Added file type/name checks before use of input/output files
- Improved parameter handling of the tools that offer different methods:
FeatureFinder, NoiseFilter and SpectraFilter
- Lots of minor bug fixes and improvements to documentation
- FileFilter: Added option to sort data points according to RT and m/z
- FileInfo: Added validation of files against the XML schema, added check for corrupt data
- Added TextExporter: exports featureXML, featurePairsXML, consensusXML and idXML to text
files for import to other tools
- Added FeatureFinderMRM: performs peptide quantitation using Multiple-Reaction-Monitoring (MRM)
New features and improvements of TOPPView:
- Refactoring of the interface: Moved a lot of functions to context menus
- Added data filters (intensity, quality, ...)
- Lots of minor bug fixes
- Added tutorial
Detailed list of changes to specific OpenMS classes:
- BoundingBox2D
- Added constructor from PointArrayType
- DataValue
- Simplified to Int, DoubleReal and String types only
- Direct cast to all data types is not possible anymore
- DefaultParamHandler
- Added support for restrictions
- Added support for advanced parameters
- String
- Improved implementations of implode and substr
- Renamed implode(...) method to concatenate(...)
- DSpectrum
- Added method to find the nearest peak to an m/z value (findNearest)
- Feature
- Added support for convex hulls of individual mass traces
- Param
- Added support for value restrictions
- Added support for advanced parameters
- Replaced STL iterator by Param-specific iterator, which is aware of the tree strucure
- The getValue method now throws an exception in case of a non-existing name.
Use exists(...) to check if a parameter exists
- FileHandler
- Added support for IdXML, ConsensusXML and mgf format
- Factory
- Added methods to find out which products are registered
- MetaInfo/MetaInfoInterface/MetaInfoRegistry
- Names are automatically registered now
- FileHandler
- Renamed some of the Type enum values to make them consistent
------------------------------------------------------------------------------------------
---- OpenMS 1.0 ----
------------------------------------------------------------------------------------------
- Kernel redesign (improvement of usability)
- Removed Boost dependencies
- Qt4 port
- Experimental support for MacOS 10
- Experimental support for Windows (XP & VISTA via MinGW)
- New OpenMS and TOPP tutorial
- Redesign of protein and peptide identification datastructures
- New format for protein and peptide identification: IdXML
- Release of annotated schemas for all OpenMS XML formats
- New features and improvements of TOPPView
- Visualization of peaks, feature and feature pairs has been speeded up
- Meta data browsing and editing
- TOPP tools can be invoked via TOPPView
- Visualization of protein/peptide identification annotated to LC-MS/MS data
- New features and improvements of TOPP
- Added INIFileEditor - A GUI editor for TOPP configuration files
- Added ConsensusID - A tool to unify protein and petide identification from several
search engines
- Added Decharger - Decharging feature maps
- Added MapAlignment - Multiple alignment of LC-MS maps
- Added MapNormalizer - Normalization of peak intensities
- Added InternalCalibration - Calibration of peak m/z using reference masses
- Added ExternalCalibration - Conversion of flight times into m/z using external
calibrant spectra