Dear OpenMS-Users,
we are proud to announce the release of OpenMS 3.5. Grab it here A couple of things are different this time:
- This will be the last release for MacOS Intel, we will continue providing docker images for AMD64 processors here: https://github.com/OpenMS/OpenMS/pkgs/container/openms-tools-thirdparty . If that doesn’t work, and you desperately need continued MacOS Intel support, please reach out to us at info@openms.de
- We now have ARM64 Linux support! Both for OpenMS and pyOpenMS. These also run on MacOS silicon.
- We will be using Github as opposed to our traditional archive as the primary repository of installers.
- We are now a 501c3! For any nonprofit nerds out there, we’ve put together a legal entity to ensure the long term stability of OpenMS.
In the following you find all important changes to the previous version:
NOTICE: 3.5.0 is going to be 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 - PeptideDataBaseSearchFI - Experimental peptide database search engine using a fragment index (FI) and the new PeptideSearchEngineFIAlgorithm - 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.
- PeptideSearchEngineFIAlgorithm (experimental): Library algorithm leveraging FragmentIndex for peptide database search; used by the PeptideDataBaseSearchFI 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::vectorEnzymaticDigestion.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)
Best regards, The OpenMS-Developers