Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1631 commits
Select commit Hold shift + click to select a range
90c5485
feat(pyOpenMS2): core classes fully working with lambda-based bindings
timosachsenberg Jan 27, 2026
09ec5dc
feat(pyOpenMS2): add libclang caching and C++20 support
timosachsenberg Jan 27, 2026
af2585e
feat(pyOpenMS2): implement review suggestions for generator improvements
timosachsenberg Jan 27, 2026
8fd7c6f
fix(pyOpenMS2): address CodeQL code quality issues
timosachsenberg Jan 27, 2026
478e82a
refactor(pyOpenMS2): remove v1 emitter and doxygen mode, use libclang…
timosachsenberg Jan 27, 2026
b31923b
feat(pyOpenMS2): add batch parsing, wrap_ignore checks, and fix build…
timosachsenberg Jan 28, 2026
6e357a1
fix(pyOpenMS2): improve API compatibility for MSSpectrum methods
timosachsenberg Jan 28, 2026
96f88d1
Add LogType and FileType enum bindings to pyopenms2
timosachsenberg Jan 28, 2026
fa29831
Enable DataFilters/ProteinInference, fix template class bindings
timosachsenberg Jan 28, 2026
9122e94
Fix pxd type mismatches by adding Qt and OpenSwathAlgo includes
timosachsenberg Jan 28, 2026
16f3865
Add missing MSSpectrum methods and content-based hash for Peak types
timosachsenberg Jan 28, 2026
ee46eeb
Add pyOpenMS2 test suite for nanobind bindings
timosachsenberg Jan 28, 2026
e20685d
Enable Peak2D and ChromatogramPeak bindings
timosachsenberg Jan 28, 2026
7c179fc
Add nested type support to libclang parser
timosachsenberg Jan 28, 2026
22e4e9e
Enable MobilityPeak1D, IsotopeDistribution, GaussFitter bindings
timosachsenberg Jan 28, 2026
ffc1cc4
Add wrap-static support and fix struct member parsing
timosachsenberg Jan 28, 2026
42a1f9c
Add FileType enum binding with FileTypes class
timosachsenberg Jan 28, 2026
c7d830e
Auto-generate enum bindings from pxd files
timosachsenberg Jan 28, 2026
bc9c3e4
Add C++11 scoped enum (enum class) support to generator
timosachsenberg Jan 28, 2026
ea3261b
Use libclang to auto-detect overloads, abstract classes, deleted cons…
timosachsenberg Jan 28, 2026
f95ea76
Auto-detect methods using incomplete (forward-declared) types
timosachsenberg Jan 28, 2026
df32a8b
Auto-skip Qt base classes when generating bindings
timosachsenberg Jan 28, 2026
0df833a
Fix enum parsing and duplicate registration issues in pyOpenMS2 gener…
timosachsenberg Jan 28, 2026
3e82a92
Reduce hardcoded SKIP_CLASSES/SKIP_METHODS by leveraging auto-detection
timosachsenberg Jan 28, 2026
2201a3a
Detect abstract classes from pxd comments as libclang fallback
timosachsenberg Jan 28, 2026
15f83e6
Fix all pyOpenMS test failures against pyOpenMS2 (583 passed, 0 failed)
timosachsenberg Jan 29, 2026
f13a7f2
Unblock 124 classes from SKIP_CLASSES and add template instantiation …
timosachsenberg Jan 29, 2026
8368de7
Remove unused Tuple import from type_registry.py
timosachsenberg Jan 29, 2026
d7b0640
KISS/DRY refactoring of nanobind emitter and loader addons
timosachsenberg Jan 29, 2026
ca5f501
Fix generator compilation errors and enable new class bindings
timosachsenberg Jan 29, 2026
bb3d567
Add fromStringPermissive binding to AASequence SPECIAL_METHODS
timosachsenberg Jan 29, 2026
ddd21b4
Document generator include dir gotcha in pyOpenMS2 CLAUDE.md
timosachsenberg Jan 29, 2026
80b011e
Auto-generate 22 previously handwritten class bindings
timosachsenberg Jan 30, 2026
1e2a481
Fix template instance generation and pxd parser bugs
timosachsenberg Jan 30, 2026
bc6fb73
Clean up template type map and review issues
timosachsenberg Jan 30, 2026
b06167f
Fix template specialization false-positive incomplete type detection
timosachsenberg Jan 30, 2026
5af4084
Auto-generate std::set<enum> and nested type methods, rename emitter
timosachsenberg Jan 30, 2026
cbddbb6
Auto-generate overloads, output params, rv_policy, fields, and single…
timosachsenberg Jan 30, 2026
6110fdc
Fix review issues: output param safety, rv_policy, field filtering, s…
timosachsenberg Jan 30, 2026
84fab76
Remove dead hardcoded enum qualification map from _normalize_type
timosachsenberg Jan 30, 2026
922f18c
Auto-generate container protocols, getter/setter pairs, and singleton…
timosachsenberg Jan 30, 2026
ae7d1cd
Remove ~27 SPECIAL_METHODS entries via auto-generation improvements
timosachsenberg Jan 30, 2026
5798f9e
Support single-module generation when num_modules <= 1
timosachsenberg Jan 30, 2026
49fd4d2
Fix rv_policy for reference returns in templates, operator[], and Exp…
timosachsenberg Jan 30, 2026
c177410
Restore reserve/resize SPECIAL_METHODS and allow clear through for ve…
timosachsenberg Jan 30, 2026
576d8b7
Add working .pyi stub generation with PEP 561 support
timosachsenberg Jan 30, 2026
331ae4d
Add comprehensive docstring validation tests for all wrapped classes
timosachsenberg Jan 30, 2026
21d4d32
Add zero-copy Arrow export module for pyOpenMS2 via C Data Interface
timosachsenberg Jan 30, 2026
c4b8fec
Add comprehensive README for pyOpenMS2 binding system
timosachsenberg Jan 30, 2026
2a6c031
Replace hash-based module split with domain-based naming and remove C…
timosachsenberg Feb 1, 2026
f0c7bae
Fix NanobindEmitter() call in test_libclang_integration.py
timosachsenberg Feb 1, 2026
9c83412
Add py-build-cmake packaging for pyOpenMS2
timosachsenberg Feb 2, 2026
3ec67a4
nop
timosachsenberg Feb 2, 2026
5c3f62b
[pyOpenMS2] Add AASequence default overloads and fix empty Arrow tabl…
timosachsenberg Feb 4, 2026
d80461f
[pyOpenMS2] Add support for standalone namespace functions as static …
timosachsenberg Feb 4, 2026
690df9b
[pyOpenMS2] Add backward-compatible API for legacy pyOpenMS tests
timosachsenberg Feb 5, 2026
a728269
[pyOpenMS2] Add missing classes and fix legacy test compatibility
timosachsenberg Feb 5, 2026
8a2bfe4
[pyOpenMS] Add wrap-doc documentation to 228 pxd files
timosachsenberg Feb 5, 2026
5f6926e
[pyOpenMS2] Fix pxd_parser to flush class doc before processing wrap-…
timosachsenberg Feb 5, 2026
d746cb4
[pyOpenMS] Fix wrap-doc formatting and add test conftest files
timosachsenberg Feb 5, 2026
4682a31
[pyOpenMS2] Use C++ raw strings for multi-line docstrings
timosachsenberg Feb 5, 2026
338b48c
[pyOpenMS2] Format raw string docstrings with R"doc( on new line
timosachsenberg Feb 5, 2026
db4607f
[pyOpenMS2] Fix Arrow export class name and enum value parsing
timosachsenberg Feb 5, 2026
c4f4477
[pyOpenMS2] Add namespace-level static functions and ProForma addons
timosachsenberg Feb 5, 2026
256ad9a
[pyOpenMS2] Add feature export methods and fix QPX schema compliance
timosachsenberg Feb 5, 2026
7f7417d
[OpenMS] Require Arrow 23+ for parquet file compatibility
timosachsenberg Feb 5, 2026
dc66b5c
[pyOpenMS] Replace Cython/autowrap with nanobind bindings
timosachsenberg Feb 5, 2026
4bc88b0
[pyOpenMS] Remove legacy Cython files, merge test suites, update docs
timosachsenberg Feb 5, 2026
1869102
[pyOpenMS] Add IMSDataConsumer trampoline, fix mutable refs and docst…
timosachsenberg Feb 5, 2026
d95bd50
[pyOpenMS] Remove code generator, hand-maintain nanobind bindings dir…
timosachsenberg Feb 5, 2026
42f4b5a
[pyOpenMS] Fix CI: nanobind version, xerces namespace, Arrow string type
timosachsenberg Feb 6, 2026
6a56a74
[pyOpenMS] Fix ~50 mutable reference output parameter bugs across all…
timosachsenberg Feb 6, 2026
f3dbc92
[pyOpenMS] Wrap TransformationModel::DataPoint, fix skipped tests
timosachsenberg Feb 6, 2026
46f2570
[FIX,API,TEST] Modernize pyOpenMS Python-3 compatibility and wrappers
timosachsenberg Feb 6, 2026
527ab2a
[pyOpenMS] Fix wheel packaging and nanobind enum abort in CI
timosachsenberg Feb 6, 2026
f18cbb6
Remove obsolete ExamplePlugin.py code example
timosachsenberg Feb 6, 2026
840b070
[pyOpenMS] Add DataArray __setitem__, default args, IM tests; remove …
timosachsenberg Feb 6, 2026
7af2c51
[pyOpenMS] Add ~100 missing default arguments across all nanobind bin…
timosachsenberg Feb 6, 2026
36a5b8a
[pyOpenMS] Fix MRMTransitionGroup bindings to return references inste…
timosachsenberg Feb 6, 2026
6def87c
[pyOpenMS] Guard Parquet bindings behind WITH_PARQUET; add getChromat…
timosachsenberg Feb 6, 2026
6355ec9
[pyOpenMS] Optimize nanobind binding performance for set_peaks, set_d…
timosachsenberg Feb 7, 2026
f18ad82
[pyOpenMS] Replace element-by-element data array access with bulk get…
timosachsenberg Feb 7, 2026
fafaeae
[pyOpenMS] Fix set_peaks() std::bad_cast when passing Python lists
timosachsenberg Feb 7, 2026
cffdbb6
[pyOpenMS] Fix stale sdist include path for binding sources
timosachsenberg Feb 7, 2026
219a9b4
[pyOpenMS] Remove nb::is_arithmetic() from all enums; fix docstring R…
timosachsenberg Feb 7, 2026
ad005f2
[pyOpenMS] Fix memory safety, correctness, and performance issues in …
timosachsenberg Feb 7, 2026
00cd985
[pyOpenMS] Fix Windows MSVC compilation errors in nanobind bindings
timosachsenberg Feb 7, 2026
9d998ac
[DOC] Remove stale Cython/generator references from AGENTS.md and CHA…
timosachsenberg Feb 8, 2026
4405c18
[pyOpenMS] Fix .pyi stub post-processing: None_ type and RST code-blocks
timosachsenberg Feb 8, 2026
9badb58
[pyOpenMS] Fix type annotations, docstrings, and stub quality in nano…
timosachsenberg Feb 8, 2026
5435695
[pyOpenMS] Fix broken RST code-block in MSSpectrum docstring
timosachsenberg Feb 8, 2026
d3f1ea6
[pyOpenMS] Fix 59 failing test000.py tests with missing bindings and …
timosachsenberg Feb 9, 2026
406b2d1
[pyOpenMS] Fix 6 failing tests: add missing SpectrumAccess bindings a…
timosachsenberg Feb 9, 2026
3e0e404
[pyOpenMS] Add missing docstrings to 8 enums, SysInfo, and SimpleOpen…
timosachsenberg Feb 9, 2026
17c611a
[pyOpenMS] Close API gaps: add missing methods, classes, enums, and s…
timosachsenberg Feb 9, 2026
eaa54ac
[pyOpenMS] Add ~57 missing method bindings to close API gaps (P2)
timosachsenberg Feb 9, 2026
94e0318
[pyOpenMS] Add ~75 missing props, enum members, free functions, and s…
timosachsenberg Feb 9, 2026
a1b0026
[pyOpenMS] Add __copy__ and __deepcopy__ to 292 nanobind-wrapped classes
timosachsenberg Feb 9, 2026
f4ebb8f
[pyOpenMS] Add getMapping, __static_* wrappers, ~40 missing methods, …
timosachsenberg Feb 9, 2026
65ef6ea
[pyOpenMS] Close remaining nanobind API gaps: properties, inits, over…
timosachsenberg Feb 10, 2026
9207fa2
[BUGFIX] Fix segfault in FalseDiscoveryRate::applyBasicPeptideLevel w…
timosachsenberg Feb 10, 2026
6daf252
[pyOpenMS] Split MSSpectrum/MSChromatogram/MSExperiment into separate…
timosachsenberg Feb 10, 2026
3aebac3
[pyOpenMS] Fix 4 test failures: get2DPeakData, DriftTimeUnit int(), s…
timosachsenberg Feb 10, 2026
caaf0ea
[pyOpenMS] Fix XPASS: move xfail from AMSEAdductInfo class to just th…
timosachsenberg Feb 10, 2026
f4a6816
[pyOpenMS] Add docstrings to 11 enums; remove 2 test skips
timosachsenberg Feb 10, 2026
1f6d6af
[BUILD] Fix pyopenms_wheel CMake target: propagate Python_EXECUTABLE …
timosachsenberg Feb 10, 2026
935aca1
[pyOpenMS] Wrap MSSpectrum.rasterizeIMFrame in nanobind
timosachsenberg Feb 10, 2026
d1ec4d9
[pyOpenMS] Wrap MSSpectrum.rasterizeIMFrame in nanobind
timosachsenberg Feb 10, 2026
e5fa748
[pyOpenMS] Fix cp312 test failures: iterator __module__ and IntEnum d…
timosachsenberg Feb 10, 2026
66664fc
[pyOpenMS] Expose SpectrumRangeManager.byMSLevel() in nanobind bindin…
timosachsenberg Feb 11, 2026
6c3b80b
[pyOpenMS] Document wheel building process and common pitfalls in README
timosachsenberg Feb 11, 2026
82360a0
[pyOpenMS] Move __repr__/__str__ and Param dict API from Python addon…
timosachsenberg Feb 11, 2026
dfb3d6d
[pyOpenMS] Consolidate README_WRAPPING_NEW_CLASSES into single .md file
timosachsenberg Feb 11, 2026
23501cb
Update copilot-instructions.md to reflect current pyOpenMS architecture
timosachsenberg Feb 11, 2026
9e58f1f
[pyOpenMS] Fix parquet import and add BUILD_WITH_INSTALL_RPATH
timosachsenberg Feb 11, 2026
4fdc394
[pyOpenMS] Optimize get_peaks() and fix -Os compiler override
timosachsenberg Feb 13, 2026
74d8a6c
[pyOpenMS] Wrap OpenSearchModificationAnalysis, QPXFile, and expand P…
timosachsenberg Feb 14, 2026
dacef3a
[pyOpenMS] Fix binding overloads and add missing FileHandler methods
Feb 14, 2026
80f9ff1
[pyOpenMS] Document priority module load order constraints
Feb 15, 2026
a0efedf
[pyOpenMS] Speed up MSExperiment.to_df() with C++ fast paths
Feb 15, 2026
b91373e
[pyOpenMS] Replace get2DPeakDataLong Python addon with C++ binding an…
Feb 15, 2026
24be16f
. (#8802)
satyam102006 Feb 26, 2026
82057e4
feat(nanobind): Implement zero-copy Eigen mapping for MatrixDouble (#…
satyam102006 Feb 27, 2026
635a873
[pyOpenMS] Wrap new Arrow IO classes and remove deleted CrossLinksDB …
timosachsenberg Feb 28, 2026
f1b0a22
[pyOpenMS] Add regression tests for Arrow IO bindings
timosachsenberg Feb 28, 2026
dbbe0d8
[pyOpenMS] Fix build errors and test failures for Arrow IO bindings
timosachsenberg Feb 28, 2026
3e94ef6
[pyOpenMS] Fix Arrow linking for standalone wheel builds
timosachsenberg Feb 28, 2026
598e7dd
pyopenms: add zero-copy get_peaks_struct() for MSChromatogram with tests
Srikanthkn0 Mar 1, 2026
117c649
Update src/pyOpenMS/tests/unittests/test_mschromatogram_struct_view.py
Srikanthkn0 Mar 1, 2026
38ded21
Throw ElementNotFound for missing ProteinIdentification DataArray nam…
krrishverma1805-web Mar 2, 2026
9036141
feat(ProteomicsLFQ): Add -in_feat parameter to bypass internal featur…
satyam102006 Mar 2, 2026
8ab4f52
fix(OpenSwathWorkflow): correct batch counting and loop bounds (#8790)
ItzDEXX Mar 2, 2026
4eb7516
Modernize TransformationDescription: use std::unique_ptr (#8826)
krrishverma1805-web Mar 2, 2026
5e1a21a
fix(ci): register local channel for Bioconda pyopenms build
timosachsenberg Mar 3, 2026
dfc1230
Add daily agentic workflow to keep documentation in sync with code ch…
Copilot Mar 4, 2026
e526ade
(fix,osw): disable auto_irt when linear iRT file is provided (#8830)
singjc Mar 4, 2026
2933fb7
Refactor FileHandler: prefer empty() over size() checks (#8827)
krrishverma1805-web Mar 4, 2026
0eeb980
Fix massdev_score denominator to count only observed transitions (#8831)
timosachsenberg Mar 4, 2026
5d77ae9
Add functional tests for IDMapper::annotate (#8667) (#8820)
satyam102006 Mar 4, 2026
6753403
fix(OpenSwathWorkflow): replace unique run ID generation with provide…
singjc Mar 5, 2026
30f2e5b
docs(pyOpenMS): fix module count (10→13) and README_WRAPPING_NEW_CLAS…
Copilot Mar 5, 2026
be7efde
Forward Declaration in ConsensusMap.h (#8835)
codemaster1104 Mar 5, 2026
3f3445a
refactor: replace Qt headers with STL/Boost equivalents (#8840)
timosachsenberg Mar 5, 2026
dfc9660
Improve parameter documentation description in TOPPDocumenter (#8839)
ronak-15 Mar 5, 2026
38a397d
pyopenms: add zero-copy get_peaks_struct() for Mobilogram with tests …
Srikanthkn0 Mar 5, 2026
205cb35
Update pull request instructions in doc-sync.md
jpfeuffer Mar 6, 2026
9905132
Initial plan
Copilot Mar 6, 2026
7530c2e
Fix doc-sync workflow: set base branch to 'develop' instead of defaul…
Copilot Mar 6, 2026
c92c980
Merge pull request #8847 from OpenMS/copilot/fix-documentation-sync-a…
jpfeuffer Mar 6, 2026
3efb237
refactor: replace Qt Network with libcurl in core library (#8841)
timosachsenberg Mar 7, 2026
a145e39
Update StatsHelpers.cpp
satyam102006 Mar 7, 2026
6fa930a
fix: allow subset of experimental design in MSstatsConverter (#7314) …
satyam102006 Mar 7, 2026
8317056
Merge pull request #8848 from satyam102006/refactor/8126-vectorize-math
jpfeuffer Mar 7, 2026
46c250f
Fix doc-sync safe output base branch configuration (#8859)
Copilot Mar 9, 2026
e8bb5d3
Preserve identification data processing in IDMapper annotate methods …
Copilot Mar 9, 2026
804e336
(feat,osw): OSW Parquet (.oswpq) format (#8813)
singjc Mar 9, 2026
661f3fc
docs: update CHANGELOG with 19 recent merged PRs (#8860)
timosachsenberg Mar 9, 2026
5a67093
feat(devcontainer): support arm64 architecture (#8862)
timosachsenberg Mar 9, 2026
b324e50
fix: enable DatabaseSuitability tests by removing broken CometAdapter…
Copilot Mar 9, 2026
a874cab
(feat,osw): Convert XIC sqMass files form OSW to the XIC parquet (#8829)
singjc Mar 10, 2026
9a99712
Fix ChromatogramPeak IntensityType consistency and unify zero-copy AP…
timosachsenberg Mar 10, 2026
562fddb
docs: update AGENTS.md for Qt Network → libcurl refactoring (#8868)
github-actions[bot] Mar 10, 2026
38917a3
Fix/osw run id blob (#8869)
singjc Mar 10, 2026
6d8691a
Fix DO_PACKAGE boolean bug in CI workflow (#8867)
t0mdavid-m Mar 10, 2026
1012db2
feat(MaRaClusterAdapter): annotate consensus spectra with original na…
timosachsenberg Mar 10, 2026
39b7883
fix: enable test-only hooks for class testing in OpenMS library (#8877)
singjc Mar 10, 2026
c542846
Correctly locate a locally installed nanobind (#8874)
pjones Mar 10, 2026
cf6631d
fix: use tmp_path fixture in parquet tests to avoid Windows file lock…
timosachsenberg Mar 10, 2026
332cd3b
docs(pyOpenMS): fix get_data_view() empty behavior description in REA…
github-actions[bot] Mar 11, 2026
8b864c8
fix: exclude MSVC runtime DLLs from runtime dependency resolution (CM…
timosachsenberg Mar 11, 2026
d416348
fix: suppress pyopenms test output on CDash and split into categories…
timosachsenberg Mar 11, 2026
05b4c7e
fix: increase CDash passed test output cap to 50KB and fix Windows pa…
timosachsenberg Mar 11, 2026
1fd220f
docs(pyOpenMS): document zero-copy API naming conventions (_view, _st…
github-actions[bot] Mar 12, 2026
9d43db1
feat: add multimer detection to MetaboliteAdductDecharger (#8888)
timosachsenberg Mar 12, 2026
7b07e36
add links to onboarding and readthedocs developer documentation (#8885)
poshul Mar 12, 2026
66fce6e
Update Contributor Onboarding Guide link
poshul Mar 12, 2026
d3b51ff
(fix,osw): remove ZAF testing only hook (#8893)
singjc Mar 12, 2026
049f130
fix: remove BUILD_WITH_INSTALL_RPATH so dev builds find libOpenMS.so …
timosachsenberg Mar 12, 2026
88f2819
(feat,osw): Save extracted ion mobilograms to parquet C++ (#8871)
singjc Mar 12, 2026
bdc4417
docs: update documentation for libcurl refactor and multimer detectio…
github-actions[bot] Mar 13, 2026
4c934ac
(feat,pyopenms): add XIMParquetFile pyopenms bindings (#8894)
singjc Mar 13, 2026
c97de2d
docs: fix AGENTS.md pyOpenMS section factual errors (#8908)
github-actions[bot] Mar 16, 2026
b29ee41
Rename FeatureFinderMultiplex/MultiplexResolver parameter `missed_cle…
Copilot Mar 16, 2026
a4e5565
Add nightly changelog-sync agent workflow (#8913)
Copilot Mar 16, 2026
819795d
Expose getPeptideResults and getProteinResults in pyOpenMS (#8543)
Copilot Mar 16, 2026
1cafe71
fix: guard FuzzyDiff tests against zlib-ng compressed output differen…
timosachsenberg Mar 16, 2026
e48dbea
docs: sync CHANGELOG with recent changes (2026-03-17) (#8917)
github-actions[bot] Mar 17, 2026
ed51308
docs(MaRaClusterAdapter): document consensus spectra metadata annotat…
github-actions[bot] Mar 17, 2026
981220a
Optimize adduct iteration in AccurateMassSearchEngine when specific a…
Copilot Mar 17, 2026
a5b6b85
Add rank aggregation resolve method to IDConflictResolver for replica…
Copilot Mar 17, 2026
9ffc9f8
fix: silence MSVC C4244 double-to-float narrowing in Peak1D emplace_b…
timosachsenberg Mar 17, 2026
d12d512
IDMapper: prevent duplicate spectrum reference insertion (#8905)
ronak-15 Mar 18, 2026
5a8dd4a
docs(OpenSwathWorkflow): document out_mobilogram parameter for XIM Pa…
github-actions[bot] Mar 18, 2026
145414a
docs: sync CHANGELOG with recent changes (2026-03-18) (#8928)
github-actions[bot] Mar 18, 2026
0bcae36
fix(pyOpenMS): patch nanobind __forceinline on MSVC to fix compile-ti…
timosachsenberg Mar 18, 2026
355bef5
refactor: replace QJson with nlohmann/json in OMSFileLoad (#8936)
timosachsenberg Mar 18, 2026
1ff4dd0
Refactor: Vectorize cross-correlation in Scoring using Eigen (#8126) …
satyam102006 Mar 18, 2026
cfefc50
cleanup: remove dead Boost.Test scaffolding from openswathalgo tests …
timosachsenberg Mar 18, 2026
9eba1a9
fix: handle NaN/Inf and add error checking in formatWithGroupSeparato…
timosachsenberg Mar 18, 2026
72101f7
cleanup: trim transitive includes from KERNEL and METADATA headers (#…
timosachsenberg Mar 19, 2026
2d7efc6
docs: sync CHANGELOG with recent changes (2026-03-19) (#8948)
github-actions[bot] Mar 19, 2026
a064988
refactor: replace QDateTime/QDate/QSysInfo/QLocale with std::chrono (…
timosachsenberg Mar 19, 2026
f2c73fa
cleanup: clang-tidy performance, emplace, and bugprone fixes (#8951)
timosachsenberg Mar 19, 2026
bbefc93
fix(ci): resolve Apple Clang via xcrun to avoid Homebrew LLVM shadowi…
timosachsenberg Mar 19, 2026
e5943f9
refactor: replace QDir/QFile/QFileInfo with std::filesystem (#8938)
timosachsenberg Mar 19, 2026
7030099
refactor: replace QProcess/QObject with boost::process (#8939)
timosachsenberg Mar 19, 2026
b325da5
docs: sync CHANGELOG with recent changes (2026-03-20) (#8957)
github-actions[bot] Mar 20, 2026
04119ae
docs: sync CHANGELOG with Qt refactor changes (#8936-#8939) (#8958)
github-actions[bot] Mar 20, 2026
9d15bee
fix: segfault in FeatureLinkerUnlabeledKD with charge_merging=Any (#8…
timosachsenberg Mar 20, 2026
a04bfea
fix: remove /Od /Ob0 override for Windows CI Release builds (#8932) (…
timosachsenberg Mar 20, 2026
3ef1a3b
refactor: remove Qt string API from core library (breaking) (#8940)
timosachsenberg Mar 20, 2026
c23b814
refactor: remove Qt dependency from OpenMS core library (#8965)
timosachsenberg Mar 20, 2026
eb804dd
docs: sync CHANGELOG with recent changes (2026-03-21) (#8966)
github-actions[bot] Mar 21, 2026
88a8ffe
docs: sync CHANGELOG with recent changes (2026-03-22) (#8968)
github-actions[bot] Mar 22, 2026
149cc66
docs: update developer FAQ to remove obsolete String::toQString() API…
github-actions[bot] Mar 23, 2026
4721c83
feat: centralize Arrow/Parquet schemas in ArrowSchemaRegistry (#8970)
timosachsenberg Mar 23, 2026
c9a2677
feat: add QPX directory export to ProteomicsLFQ and IsobaricWorkflow …
timosachsenberg Mar 23, 2026
2df98e7
docs: clarify Qt6 is optional for core library and pyOpenMS builds (#…
github-actions[bot] Mar 24, 2026
b806741
docs: sync CHANGELOG with recent changes (2026-03-24) (#8976)
github-actions[bot] Mar 24, 2026
bae1edb
feat: align QPX parquet output with quantms template schema (#8974)
timosachsenberg Mar 24, 2026
c6d428d
Add ModifiedSincSmoother for profile data smoothing (#8217)
timosachsenberg Mar 24, 2026
9e3b9f2
Remove GenericWrapper (#8981)
Copilot Mar 24, 2026
d9c156c
[DOC] add design spec and plan for biosaur2 seeding in ProteomicsLFQ …
timosachsenberg Mar 24, 2026
4f472a6
Address review feedback from #8981: remove remaining GenericWrapper l…
timosachsenberg Mar 24, 2026
41ce6cf
experimental opentims integration (#8975)
timosachsenberg Mar 24, 2026
8dde56c
avoid unused symbol error; (#8988)
cbielow Mar 25, 2026
9a2f352
docs: add ParquetConverter to TOPP.doxygen file converter list (#8989)
github-actions[bot] Mar 25, 2026
1ac2733
docs: sync CHANGELOG with recent changes (2026-03-25) (#8990)
github-actions[bot] Mar 25, 2026
573199f
Make Arrow/Parquet a required dependency (#8991)
timosachsenberg Mar 25, 2026
3a2c532
Rename IMFormat::CONCATENATED → IM_PEAK and MULTIPLE_SPECTRA → IM_SPE…
Copilot Mar 25, 2026
fdf7aba
fix: resolve nlohmann_json target conflict in Docker build (#8996)
timosachsenberg Mar 25, 2026
d4d039c
Fix TOPPView performance when right clicking in large mzML (#8997)
cbielow Mar 25, 2026
2df411d
Feature/tims calibration tiered (#8999)
timosachsenberg Mar 25, 2026
aa7ecda
docs: sync CHANGELOG with recent changes (2026-03-26) (#9000)
github-actions[bot] Mar 26, 2026
3f8956f
refactor: split IMFormat into IMFormat + IMPeakType (data layout vs p…
timosachsenberg Mar 26, 2026
16af919
fix: upgrade Docker image from Ubuntu 22.04 to 24.04 (#9006)
timosachsenberg Mar 26, 2026
4e73a9f
refactor(IMTypes): remove IMFormat::MIXED, require ms_level in determ…
timosachsenberg Mar 26, 2026
0806855
docs: remove stale Cython/autowrap references after nanobind migratio…
timosachsenberg Mar 26, 2026
ff4eabe
Fix Sphinx doc warnings: RST markup issues in docstrings (#9012)
timosachsenberg Mar 26, 2026
0cd0635
fix(TMT32/35): use identity matrix until calibrated correction values…
timosachsenberg Mar 27, 2026
d360fc6
feat: add IM_PEAK format checks to Resampler, FeatureFinderCentroided…
timosachsenberg Mar 27, 2026
3ff5dae
Remove some older files that are no longer used
pjones Mar 27, 2026
1a1ae79
Remove the ACTIVE_MAINTAINERS file since we don't keep it up to date
pjones Mar 27, 2026
cb6c7d1
feat: integrate BrukerTimsFile directly into OpenSwath chromatogram p…
timosachsenberg Mar 27, 2026
22e9c8f
docs: sync CHANGELOG with recent changes (2026-03-28) (#9026)
github-actions[bot] Mar 28, 2026
b88276d
feat: add Bruker .d file support and built-in IM centroiding to PeakP…
timosachsenberg Mar 28, 2026
e7a7998
docs: sync CHANGELOG with recent changes (2026-03-29) (#9031)
github-actions[bot] Mar 29, 2026
396a983
fix(ci): trigger container deploy from nightly update workflow (#9032)
timosachsenberg Mar 29, 2026
2d22938
feat(ProteomicsLFQ): add Bruker .d (TimsTOF PASEF) support with Biosa…
timosachsenberg Mar 29, 2026
277948c
docs: sync CHANGELOG with recent changes (2026-03-30) (#9035)
github-actions[bot] Mar 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
6 changes: 6 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# TARGETARCH is set automatically by Docker BuildKit (default since Docker 23.0).
# Falls back to amd64 when BuildKit is not available.
# ARM64/Apple Silicon users: if auto-detection fails, add to devcontainer.json:
# "build": { "args": { "TARGETARCH": "arm64" } }
ARG TARGETARCH=amd64
FROM ghcr.io/openms/contrib_manylinux_2_34:latest-${TARGETARCH}
4 changes: 3 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@
# XML files with potential byte-counting indices that will lose function
# if the windows CR byte is added
*.mzML binary
*.mzXML binary
*.mzXML binary

.github/workflows/*.lock.yml linguist-generated=true merge=ours
58 changes: 58 additions & 0 deletions .github/ISSUE_TEMPLATE/01-question.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Request for Help
description: Ask a question or request support
labels:
- question
body:
- type: markdown
attributes:
value: |
<br>
- type: markdown
attributes:
value: "## Please Read Before Continuing"
- type: markdown
attributes:
value: |
Before opening an issue *please* consider using the following options instead:

* [Search existing issues](/OpenMS/OpenMS/issues) for similar requests.
* Start a [new discussion](/OpenMS/OpenMS/discussions/categories/q-a) in the Q&A section.

Thank you!

<br>
- type: markdown
attributes:
value: "## Details About Your Environment"
- type: input
id: os
attributes:
label: Operating System and Hardware
description: What operating system are you using? Which version? On what hardware?
placeholder: "Example: Windows 11 on x86"
validations:
required: true
- type: input
id: version
attributes:
label: OpenMS Version
description: Which version and distribution of OpenMS are you using?
placeholder: "Example: pyOpenMS 3.4"
validations:
required: true
- type: markdown
attributes:
value: |
<br>
- type: markdown
attributes:
value: "## Describe Your Request"
- type: textarea
id: description
attributes:
label: Your Question
description: |
Please provide a detailed question along with any information
you think we would need to help you.
validations:
required: true
69 changes: 69 additions & 0 deletions .github/ISSUE_TEMPLATE/02-bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Bug Report
description: Create a report to help us improve OpenMS
labels:
- bug
body:
- type: markdown
attributes:
value: |
<br>
- type: markdown
attributes:
value: "## Details About Your Environment"
- type: input
id: os
attributes:
label: Operating System and Hardware
description: What operating system are you using? Which version? On what hardware?
placeholder: "Example: Windows 11 on x86"
validations:
required: true
- type: input
id: version
attributes:
label: OpenMS Version
description: Which version and distribution of OpenMS are you using?
placeholder: "Example: pyOpenMS 3.4"
validations:
required: true
- type: dropdown
id: installer
attributes:
label: Installation Method
description: How did you install OpenMS?
options:
- "Official Installer"
- "Docker"
- "Python: Conda"
- "Python: Bioconda"
- "Python: pip"
- "Linux Package"
- "Other"
validations:
required: true
- type: markdown
attributes:
value: |
<br>
- type: markdown
attributes:
value: "## Describe the Bug"
- type: markdown
attributes:
value: |
When describing the problem you are experiencing please provide as much information as possible, including:

* What triggered the bug?
* The full text of any error message.
* Output from the tool you were using.
* Screenshots of misbehaving GUI tools.
* Example source code for problems with pyOpenMS.

Thank you!
- type: textarea
id: description
attributes:
label: Bug Description
description: Please describe the problem you are experiencing.
validations:
required: true
12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE/03-feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Feature Request
description: Suggest an idea for this project
labels:
- enhancement
body:
- type: textarea
id: enhancement
attributes:
label: Enhancement Description
description: Please describe the feature you would like added to OpenMS.
validations:
required: true
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/04-maintainer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: OpenMS Maintainer Report
description: A way for OpenMS core team members to submit reports.
body:
- type: markdown
attributes:
value: |
**NOTE:** This form is for OpenMS maintainers and core team members. If you want to file a bug report or request help please use [another form](/OpenMS/OpenMS/issues/new) instead.
- type: textarea
id: report
attributes:
label: Report
validations:
required: true
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
156 changes: 156 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
# GitHub Copilot Instructions for OpenMS

## Important Build Instructions

**DO NOT attempt to build OpenMS unless asked to do so** - The build process is extremely resource-intensive and costly. Building OpenMS requires significant computational resources and time.

## Project Overview

OpenMS is an open-source software C++ library for LC-MS data management and analyses. It offers an infrastructure for rapid development of mass spectrometry related software. OpenMS is free software available under the three-clause BSD license and runs under Windows, macOS, and Linux.

### Key Features

- **Core C++ library** with modern C++20 standards
- **Python bindings** (pyOpenMS) for rapid algorithm development
- **150+ command-line tools** (TOPP Tools) for MS data processing
- **Visualization tools** (TOPPView) for 1D, 2D, and 3D data
- **Support for major file formats** (mzML, mzXML, mzIdentML, pepXML, mzTab)
- **Comprehensive quantitation support** (label-free, SILAC, iTRAQ, TMT, SRM, SWATH)
- **Integration with workflow systems** (KNIME, Galaxy, nextflow)

### Architecture Components

1. **OpenMS Library**
- Core data structures (MSSpectrum, MSExperiment, Feature, FeatureMap)
- Signal processing and analysis algorithms
- File format handling and conversion

2. **TOPP Tools**
- Command-line tools built on the OpenMS library
- Standardized parameter handling via CTD scheme
- Tools for identification, quantification, and data processing

3. **User Interfaces**
- TOPPView for data visualization
- TOPPAS for workflow creation
- pyOpenMS for Python scripting

4. **pyOpenMS**
- Hand-maintained nanobind C++ bindings (no code generation)
- 13 domain-based modules compiled in parallel
- Pure Python addon system for DataFrame export and convenience methods
- Custom type casters for OpenMS::String, DataValue, ParamValue, DPosition
- Integration with scientific Python ecosystem (numpy, pandas, pyarrow)
- Located in `src/pyOpenMS/`; see `src/pyOpenMS/CLAUDE.md` for detailed binding guide

## Development Guidelines

1. **Code Style**
- Follow the existing C++ coding conventions in the codebase
- Use the established naming patterns for classes, methods, and variables
- Maintain consistency with the surrounding code

2. **Testing**
- Write unit tests for new functionality
- Ensure existing tests pass before suggesting changes
- Test files are located in `src/tests/`

3. **Documentation**
- Add Doxygen comments for new public methods and classes
- Update relevant documentation when modifying existing functionality

4. **Common Patterns**
- Use OpenMS data structures (e.g., `MSExperiment`, `FeatureMap`, `PeptideIdentification`)
- Follow the established error handling patterns
- Utilize OpenMS logging mechanisms

5. **Performance Considerations**
- Be mindful of memory usage when processing large datasets
- Consider algorithmic complexity for data processing operations
- Use appropriate OpenMS containers and algorithms

## Key Directories

- `src/openms/` - Core library source code
- `src/openms/include/OpenMS/` - Header files
- `src/topp/` - TOPP tools (command-line applications)
- `src/tests/` - Unit and integration tests
- `src/pyOpenMS/` - Python bindings (nanobind)
- `doc/` - Documentation

## Project Structure

```
OpenMS/
├── cmake/ # CMake build system files
├── doc/ # Documentation
├── share/OpenMS/ # Shared data (enzymes, mods, CV, etc.)
├── src/
│ ├── openms/ # Core library
│ │ ├── include/OpenMS/ # Header files
│ │ └── source/ # Implementation files
│ ├── openms_gui/ # GUI components
│ ├── pyOpenMS/ # Python bindings
│ │ ├── bindings/ # Hand-maintained nanobind C++ binding files
│ │ │ ├── bind_kernel.cpp # KERNEL/ classes
│ │ │ ├── bind_spectrum.cpp # MSSpectrum
│ │ │ ├── bind_chromatogram.cpp # MSChromatogram
│ │ │ ├── bind_experiment.cpp # MSExperiment
│ │ │ ├── bind_metadata.cpp # METADATA/ classes
│ │ │ ├── bind_chemistry.cpp # CHEMISTRY/ classes
│ │ │ ├── bind_analysis.cpp # ANALYSIS/ classes
│ │ │ ├── bind_format.cpp # FORMAT/ classes
│ │ │ ├── bind_processing.cpp # PROCESSING/ classes
│ │ │ ├── bind_featurefinder.cpp # FEATUREFINDER/ classes
│ │ │ ├── bind_datastructures.cpp # DATASTRUCTURES/, MATH/ classes
│ │ │ ├── bind_ml.cpp # ML/ classes
│ │ │ ├── bind_misc.cpp # Everything else
│ │ │ ├── binding_utils.h # Helper templates for inheritance
│ │ │ └── type_casters/ # Custom nanobind type casters
│ │ ├── pyopenms/ # Python package
│ │ │ ├── __init__.py # Module imports and addon injection
│ │ │ ├── addons/ # Pure Python addon methods
│ │ │ └── _dataframes.py # DataFrame mixin (pandas optional)
│ │ └── tests/ # pyOpenMS tests
│ ├── tests/ # C++ test suites
│ │ ├── class_tests/ # Unit tests
│ │ └── topp/ # TOPP tool tests
│ └── topp/ # TOPP tools
└── tools/ # Development and CI utilities
```

## Testing Infrastructure

- **Class tests**: Unit tests in `src/tests/class_tests/openms/source/`
- **TOPP tests**: Integration tests in `src/tests/topp/`
- **Python tests**: pyOpenMS tests in `src/pyOpenMS/tests/`
- Test naming convention: `ClassName_test.cpp` for C++ class `ClassName`

## Build Commands

```bash
# Full build
cmake --build OpenMS-build -j$(nproc)

# pyOpenMS only
cmake --build OpenMS-build --target pyopenms -j$(nproc)

# Run C++ tests
ctest --test-dir OpenMS-build

# Run pyOpenMS tests (from /tmp to avoid import shadowing)
cd /tmp && PYTHONPATH=.../OpenMS-build/pyOpenMS python3 -m pytest .../src/pyOpenMS/tests/ -v
```

## Assistance Focus

When providing code suggestions:
- Analyze existing code patterns before suggesting changes
- Respect the established architecture
- Consider cross-platform compatibility (Windows, Linux, macOS)
- Be aware of OpenMS dependencies and external libraries
- Use existing OpenMS data structures and algorithms
- Follow the established error handling patterns
- Maintain consistency with surrounding code style
- When CI tests fail, investigate the root cause first before patching reference files
- For pyOpenMS bindings, follow patterns in `src/pyOpenMS/CLAUDE.md`
18 changes: 0 additions & 18 deletions .github/stale.yml

This file was deleted.

Loading