forked from OpenMS/OpenMS
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCHANGELOG
More file actions
3158 lines (2849 loc) · 170 KB
/
CHANGELOG
File metadata and controls
3158 lines (2849 loc) · 170 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
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:
- macOS Intel builds discontinued; macOS deployment target raised to macOS 14
- Ubuntu CI runners updated to 24.04
- macOS code signing and notarization integrated directly into CI (#8486, #8494, #8527)
- Parquet support enabled across all platforms (#8370, #8422)
- Modernized TransformationDescription to use std::unique_ptr for memory safety
- Fix undefined behavior in ProteinIdentification get*DataArrayByName by throwing ElementNotFound when the name is missing
- Removed leftover traces of removed doc_internal target (#2256)
Dependencies:
- PyOpenMS: Autowrap/Cython replaced with nanobind; nanobind 2.10.0+ fetched automatically (#8699)
- Eigen minimum version updated from 3.3.4 to 3.4.0 (#8366)
- Qt6::Network replaced with libcurl for all HTTP operations in the core library (#8841)
- minizip-ng replaced with libzip for ZIP64 archive support (#8808)
TOPP tools:
Changes:
all:
- BREAKING: Command-line duplicate parameter behavior changed (#8670, fixes #5345)
When a parameter is specified multiple times on the command line, the LAST occurrence now wins
(previously, the FIRST occurrence was used). This enables the nextflow pattern of using ${ext.args}
at the end of commands to override hardcoded defaults. A warning is issued when duplicates are detected.
Example: tool -param default -param override # Now uses 'override' (previously used 'default')
- Improved error messages for command-line parameter errors (#8670)
CometAdapter:
- Merges compatible variable modifications for improved search performance (3x+ speedup) (#8407)
PeptideDataBaseSearchFI:
- Expanded fragment index open search with modification discovery and FDR filtering (#8414)
ProteomicsLFQ:
- Removed unnecessary group reindexing, added stricter validation (#8752)
- Arrow/DataFrame/Parquet export for ConsensusMap (#8729)
- Added -in_feat parameter to accept pre-computed featureXML files, bypassing internal feature finding (#8796)
MetaProSIP:
- Added detailed documentation of CSV output column formats (#4400)
Flags with trailing arguments now produce clearer warnings instead of cryptic "trailing text arguments" errors.
PyOpenMS:
- BREAKING: Binding backend replaced from Autowrap/Cython to hand-maintained nanobind C++ bindings (#8699)
- Python-level API is backward compatible (same class names, method signatures, return types)
- 544 classes wrapped across 10 domain-based modules for parallel compilation
- Custom type casters for OpenMS::String, DataValue, DPosition, etc.
- Addon system preserved: pure Python methods injected via @addon("ClassName") decorator
- PEP 561 type stub generation (.pyi) for IDE autocompletion
- Smaller binaries, faster builds, and improved error messages
- Pythonic convenience methods added:
- __len__() for ConsensusMap, FeatureMap (#8510)
- __str__() and __repr__() for NASequence, FeatureMap, ConsensusMap, ConvexHull2D, DPosition, DRange, FloatDataArray, IntegerDataArray, StringDataArray, Residue (#8503, #8501)
- __hash__() for 40+ classes enabling use as dictionary keys (AASequence, EmpiricalFormula, Peak1D, PeptideHit, Precursor, etc.) (#8576)
- append() and extend() for ConsensusMap, FeatureMap, PeptideIdentificationList (#8510)
- DataFrame support:
- get_df() methods for MSSpectrum, MSChromatogram, Mobilogram, MSExperiment, ConsensusMap, FeatureMap (#8520)
- get_df_columns() method for column discovery (#8436)
- MRMTransitionGroupCP: get_chromatogram_df(), get_feature_df() (#8520)
- Arrow/Parquet export with to_df(), to_chromatogram_df(), to_feature_df() methods (#8655)
- Zero-copy Python interop via pyarrow for MSExperiment (#8655)
- PSM DataFrame export from PeptideIdentificationList (#8632)
- Arrow/DataFrame/Parquet export for ConsensusMap (#8729)
- New wrappers:
- Math.getPPM(), Math.getPPMAbs() (#8525)
- MSSpectrum.getType(bool) (#8589)
- DRange1 with conversion provider (#8504)
- Drift time accessors: get_drift_time_array(), get_drift_time_unit() (#8423)
- SpectrumNativeIDParser with static methods for native ID parsing (#8637)
- MSExperiment.rasterize2D() for rasterizing 2D ion mobility data (#8739)
- String handling: Functions now accept both str and bytes via libcpp_utf8_string (#8602, #8604)
- Backward compatibility restored for file I/O methods in IdXMLFile, PepXMLFile, MzIdentMLFile (#8553)
- Static methods modernized using @staticmethod decorator (#8562)
- Type hints added to docstrings for 133 functions (#8483)
- Build system modernized with py-build-cmake and cibuildwheel for PEP 517/518/621 compliance (#8530)
- BREAKING: Metadata enums converted to strongly typed enum classes (#8604)
- BREAKING: Activation methods enum handling changed (#8405)
- BREAKING: DataFrame methods renamed to Pythonic conventions: get_df() → to_df(), get_df_columns() → df_columns(), etc. Deprecated aliases provided for backward compatibility (#8655)
- Fix: getAAFrequencies() loop bug in AASequence addon (#8502)
- Fix: ~50 mutable reference output parameter bugs fixed across all bindings (#8699)
- Fix: ~100 missing default arguments restored (#8699)
- Test: Docstring format validation tests added (#8674)
- ProForma v2 support: Full Python bindings for ProFormaParser (#8648)
- Parse ProForma strings: Peptidoform.fromString(), PeptidoformIon.fromString()
- Serialize back: toString() with LOSSLESS/CANONICAL modes
- Convert to/from AASequence with configurable policies (FAIL_ON_LOSS, DROP_UNLOCALISED, BEST_EFFORT)
- Mass calculation: getMonoWeight(), getMZ(), canCalculateMass()
- JSON serialization: toJSON()/fromJSON() for AST persistence
- Pythonic API: __str__, __repr__, __len__ on Peptidoform and PeptidoformIon
- USI support: Python bindings for Universal Spectrum Identifier (#8684)
- USI class with constructor from string, tryParse(), isValidUSI()
- PeptideIdentification.buildUSI() for generating USIs
- PEFF support: Full Python bindings for PSI Extended FASTA Format (#8690)
- PEFFFile class for reading/writing PEFF files with batch and streaming APIs
- PEFFEntry with rich annotations: modifications, variants, processed regions
- PEFFDatabaseMetadata for header information
- Conversion methods: toFASTAEntry(), fromFASTAEntry(), toProForma()
- Sequence accessors: getSequence(), getModifiedSequence(), getVariantSequences(), getProcessedSequence()
- Param to_dict quality-of-life improvements: dict-like API for parameter access (#8631)
- Fix: FileTypes wrapping updated with missing enum values and static methods (#8720)
- XICParquetFile: Python bindings with multi-file support and filtering for reading XIC data from Parquet files (#8737, #8738)
- Zero-copy get_peaks_struct() accessor for MSChromatogram and Mobilogram (#8825, #8842)
- Complete FileHandler wrapper: 14 new load/store methods for FeatureMap, ConsensusMap, identifications, and transformations (#8762)
TOPP tools:
Changes:
MapAlignerIdentification, MapAlignerPoseClustering, MapAlignerTreeGuided:
- Added optional spectra file transformation (-in_spectra_files, -out_spectra_files) to transform mzML files along with alignment (#8536)
FileInfo:
- Now prints both assigned and unassigned peptide identification counts for FeatureXML and ConsensusXML files (#8395)
- Added sequence length stats and nucleic acid support for FASTA files (#8643)
FileConverter:
- Added MSP file format support (#8650)
- Added OpenSwath sqMass to XIC Parquet conversion support (#8829)
IsobaricWorkflow:
- Fixed mzTab export when processing multiple mzML/idXML pairs (#8519)
- Handles MS2 spectra without corresponding MS3 in SPS-MS3 workflow (#8592)
- Arrow/Parquet export for ConsensusMap (#8729)
SageAdapter:
- Fixed thread handling - removed duplicate parameter registration (#8441)
OpenSwathWorkflow:
- Priority peptide sampling for iRT calibration (#8373)
- Decoy generation speed optimizations (#8569)
- Added SRM support (#8700)
- Added Parquet chromatogram output support (#8737)
PeakPickerHiRes:
- New parameter to allow peak cores with no leading flank peaks (#8649)
FileMerger:
- Documented input/output file type combinations (#8615)
TextExporter:
- Added support for XIC Parquet files (#8737, #8738)
OpenMS Library:
Added:
- Statistical functions ported from PyProphet (#8524)
- KernelDensityEstimation: FFT-based kernel density estimation using Silverman's algorithm
- RankData: Rank computation with multiple tie-handling methods (average, min, max, dense, ordinal)
- MultipleTesting: FDR control and multiple testing corrections (computeModelFDR, pEmp, qValue, pi0est, lfdr, pNorm)
- PeakFileOptions: setPrecursorMZRange()/getPrecursorMZRange() for precursor m/z range filtering (#8526)
- OnDiscMSExperiment: Full PeakFileOptions support with filtering (#8512)
- ParamIterator: STL-compatible iterator type aliases (iterator_category, value_type, etc.) (#8362)
- PeptideIndexer settings stored as metavalues in SearchParameters (#8489)
- LightTransition methods for MRMAssay, MRMDecoy, TransitionTSVFile, TransitionPQPFile (#8544)
- SpectrumAnnotator: addPeakAnnotationsToPeptideHit() method (#8421)
- iRT/CiRT transition files in share/OpenMS/CHEMISTRY/ (#8372)
- CalibrationWorkflow: refactored OpenSwathWorkflowCalibration workflow logic into a separate reusable CalibrationWorkflow class. (#8743)
- Fragment index open search expanded with modification discovery and FDR filtering (#8414)
- CCS (collisional cross section) support for ion mobility data (#8735)
- Rasterize2D function for MSExperiment to rasterize 2D ion mobility data (#8739)
- SequenceCoverage: Reusable API extracted for computing protein sequence coverage (#8728)
- Arrow/DataFrame/Parquet export for ConsensusMap with batch and streaming APIs (#8729)
- PSM DataFrame export from PeptideIdentificationList (#8632)
- SpectrumNativeIDParser class for parsing spectrum native IDs (extractScanNumber, getRegExFromNativeID, isNativeID) (#8637)
- ArrowExport helper for exporting MSExperiment to Apache Arrow/Parquet formats with configurable layouts and compression (#8655)
- ProFormaParser: Full ProForma v2 notation parser with AST representation (#8648)
- Recursive descent parser for peptidoforms with modifications, cross-links, and chimeric spectra
- Supports all ProForma v2 features: CV accessions (UNIMOD, MOD, RESID, XLMOD, GNO), mass deltas, formulas, glycans, info tags
- Bidirectional conversion: parse() and toString() with LOSSLESS/CANONICAL write modes
- AASequence integration: toAASequence()/fromAASequence() with configurable conversion policies
- Mass calculation: getMonoWeight(), getMZ() for peptidoforms and ions
- JSON serialization for AST persistence and interoperability
- Theoretical spectrum generation via tryGenerateSpectrum() for single-chain and cross-linked peptides
Uses TheoreticalSpectrumGenerator for linear peptides, TheoreticalSpectrumGeneratorXLMS for cross-links
- MzPAF: HUPO-PSI mzPAF (Peak Annotation Format) parser and serializer (#8686). Parse fragment ion annotations: MzPAF::parse("y4-H2O^2/3.2ppm*0.75"). pyOpenMS bindings included
- USI: Universal Spectrum Identifier support per HUPO-PSI standard (#8684)
- USI class for parsing and building USI strings (mzspec:collection:msrun:index_type:index[:interpretation])
- Static methods: tryParse() (non-throwing), isValidUSI(), createFromScanNumber(), createFromNativeID()
- Uses SpectrumNativeIDParser for robust scan number extraction from vendor formats
- PeptideIdentification.buildUSI() for generating USIs from identification results
- TextExporter USI output with optional dataset_id/ms_run parameters
- pyOpenMS bindings included
- OpenSwathWorkflow:
- Added Parquet-based archive (.oswpq) to store spectral library information and multi-run feature scores. (#8813)
- FeatureFindingMetabo: Added ion mobility support with local_im_range parameter for coeluting mass trace filtering (#8758)
- IDMapper: Preserve upstream identification data processing metadata when annotating featureXML/consensusXML (#8852)
Changes:
- BREAKING: Matrix<T> no longer inherits from Eigen; uses std::vector<T> for storage (#8511)
- BREAKING: Eigen moved from PUBLIC to PRIVATE linking - downstream users no longer need Eigen headers (#8511)
- BREAKING: IDFilter::updateProteinReferences() renamed to removeDanglingProteinReferences() (#8500)
- BREAKING: Exception::InvalidSize constructor requires mandatory context message parameter (#8437)
- BREAKING: FileWatcher moved from OpenMS/SYSTEM/ to OpenMS/VISUAL/ (GUI library) (#8591)
- BREAKING: PeptideAndProteinQuant channel identifiers changed from Int to UInt (#8516)
- BREAKING: Plain enums migrated to enum class (Sample::SampleState, OpenMS_OS, etc.) (#8622)
- ILPDCWrapper: Performance improvement using std::unordered_map (~3.5x speedup) (#8618)
- OpenSwath: Use unordered_map for O(1) lookups, improving performance (#8651)
- DataValue: Enhanced conversion error messages with type and value context (#8572)
- BayesianProteinInferenceAlgorithm: Now requires single merged ProteinIdentification run (#8480)
- EMGScoring: Default init_mom changed from false to true for consistency (#8593)
- ElementDB: Standardize map lookup pattern (#8660)
- IDFilter: Eliminate code duplication (#8662)
- Iterator patterns, container checks, and memory allocation optimized in hot paths (#8656)
- Simplified redundant boolean return statements (#8659)
- OPENMS_LOG_WARN now writes to std::cerr instead of std::cout (#8754)
- External Enzymes.xml is now optional — enzyme definitions are built-in by default (#8409)
- Date class refactored from QDate inheritance to composition (#8710)
- Thread-safe logging with OPENMS_LOG_* macro optimizations (#8620)
- MetaInfo: Iterator support and merge optimizations (#8621)
- BREAKING: QuantmsIO renamed to QPXFile; PSM Parquet export rewritten using QPX pattern (#8756)
- Vectorized dotprodScoring and manhattanScoring in StatsHelpers using Eigen (#8848)
- Data provider pattern extracted for ModificationsDB, RibonucleotideDB, ProteaseDB, and RNaseDB (#8775, #8779)
- Use unordered_map in PrecursorPurity, PeptideProteinResolution, and PeptideIndexing for faster lookups (#8806, #8763)
- OpenSwath scoring speedups: cap XCorr maxdelay, vectorize DIAScoring, hoist loop-invariant computations, pass SwathMap by const& (#8787, #8785)
Fixes:
- Fix inverted use_all_hits logic causing NucleicAcidSearchEngine crash with multiple hits per spectrum (#8542)
- Fix LogConfigHandler: flush buffers on stream removal and restore streams when lowering log level (#8440)
- Fix Heavy path decoy duplicate detection to use modified sequences (#8575)
- Fix decoy generation with improved duplicate detection and speed optimizations (#8569)
- Fix MetaboliteSpectralMatching GNPS library compatibility and COMPOUND_NAME support (#8163)
- Fix uninitialized variable warning for best_rate in MetaProSIP.cpp (#8396)
- Fix spectrum/chromatogram filters to properly handle DataArrays (#8645)
- Fix UniqueIdGenerator seed collision in parallel pipelines by mixing process ID into seed (#8678)
- Correct defaultArrayLength in MzMLFile_negative_offsets.mzML test file (#8672)
- Remove unused variable block_start in FileFilter (#8399)
- Fix SIMD type mismatch and unaligned memory access in Base64 decoding (ARM64 crash) (#8689)
- Fix empty GENE table causing PQP file reading to return zero transitions (#8688)
- Fix PeptideIndexer AhoCorasick segfault for short peptides (#8685)
- Fix redundant PRAGMA foreign_keys execution in OMSFileStore
- Fix potential memory leak in SwathFile::loadMzXML on exception by using std::unique_ptr
- Fix: disable auto_irt and ignore tr_irt_priority_sampling when linear_irt_file is provided in OpenSwathWorkflow (#8830)
- Fix MSstatsConverter to allow subset of experimental design files (#8846, fixes #7314)
- Fix massdev_score denominator to count only observed transitions instead of total (#8831)
- Fix OpenSwathWorkflow run_id mismatch between Parquet/mzML XIC files and OSW/sqMass output (#8833)
- Fix OpenSwathWorkflow batch counting and loop bounds for empty compound sets (#8790)
- Fix OpenSwathWorkflow run_id type mismatch between FEATURE table RUN_ID (INTEGER) and RUN table ID (BLOB) in OSW-Sqlite output (#8869)
Documentation:
- Comprehensive documentation for Targeted Quantitation algorithms (#8588)
- Retention time units [s] added to TOPP tool parameter descriptions (#8597)
- FileMerger input/output file type combinations documented (#8615)
- ProteomicsLFQ automatic median normalization behavior documented (#8438)
- ProteomicsLFQ FAIMS support documented (#8478)
- pyOpenMS wrapping guide for classes with deleted/private constructors (#8561)
- Parameter direction annotations (@param[in], @param[out], @param[in,out]) across 95+ header files (#8507)
- AGENTS.md AI coding guidance added and improved (#8537, #8560, #8563)
- Test creation documentation updated with modern test file template (#8548)
Build System:
- macOS notarization with timestamping integrated into CI (#8486, #8494, #8527)
- CMAKE_PREFIX_PATH handling fixed for Parquet support (#8370)
- Qt subpackages used instead of full Qt metapackage on macOS (#8368)
- OpenMP validation: CMake fails if OpenMP requested but not found (#8368)
- External libraries from Debian repos to prevent deb package conflicts (#8496)
- pytest fixtures replace fragile import env hacks in pyOpenMS tests (#8594)
- Security patterns added to .gitignore (#8545)
- setuptools deprecation warnings fixed for pyOpenMS data directories (#8484)
- Configure return value checking in CI packaging (#8515)
- pyOpenMS build system modernized with py-build-cmake and cibuildwheel (#8530)
- Claude GitHub Actions workflows added for CI automation (#8675, #8676)
- IsoSpec and eol-bspline converted to proper CMake library targets (#8331)
- Arrow 23+ compatibility: removed version pin, CURL workaround (#8679)
- uv made optional for isolated build environments (#8706)
------------------------------------------------------------------------------------------
---- 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
- 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::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