Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
fb3557d
Show file load/store progress in all TOPP tools (#8041)
cbielow May 14, 2025
6499d8d
Potential Runtime Improvement of GaussTraceFilter.cpp^
Mar 28, 2025
60442f0
patched
Mar 28, 2025
44fefeb
modified XMLHandler.h/cpp Changed Implementation of appendASCII added…
Apr 9, 2025
d35a043
added test for XMLHeader, Debugged it
Apr 11, 2025
9a2d0b4
t rid of print statements in function
Apr 14, 2025
ee6bd12
Moved the function in the right part of the String Manager Class
Apr 15, 2025
c3155c4
fferent Impelmentation of append/isAscii with potentially silghtly le…
Apr 17, 2025
109411a
Test formatted to Conventions
Apr 17, 2025
9229e84
Changed the packus_epi16 function with the shuffle function for impro…
Apr 22, 2025
7faf6a1
Implemented strLength function with simde for potential runtime impro…
May 13, 2025
8c2a1b6
Added strLength Method using simde for Potential runtime improvement.…
May 13, 2025
c0e1284
Added Description of strLength method for documentation
May 13, 2025
fdf5629
code is now up to the coding conventions
May 13, 2025
99e5c3d
Fixed the bug that led to several tests to fail. It was an implicit c…
May 14, 2025
e26fb11
Add doc (#8044)
timosachsenberg May 15, 2025
597aaf8
avoid "unknown pragma" warnings on MSVC (#8045)
cbielow May 15, 2025
e5c3cb2
refactor: FFIDmoves many of the external id related functionality in …
timosachsenberg May 15, 2025
4a57f59
Cleanup tags (#8036)
poshul May 15, 2025
0a3375a
Added a test to the XMLHandler_test that would cause the previous ver…
May 15, 2025
acea49e
Beschreibung von strLength test angepasst
May 15, 2025
970bfbe
TOPPView: fixes a few error messages boxes (im IM frames, and 2D proj…
cbielow May 15, 2025
36744db
refactor: separate ranges (#8021)
timosachsenberg May 16, 2025
dc7037f
Pjones/backports (#8051)
pjones May 16, 2025
bed0db7
fix: r^2 is zero (#8052)
jcharkow May 17, 2025
e88b120
Feat/option to toggle tdl (#8055)
SGSSGene May 20, 2025
8b30bf3
refactor: Store IDs outside of spectra. (#7974)
timosachsenberg May 21, 2025
ccfd1a0
mplemented all changes suggested in review
May 22, 2025
e53497c
Fix_pms (#8063)
timosachsenberg May 22, 2025
b04f586
Merge branch 'develop' into testpatch
timosachsenberg May 22, 2025
35bd2c1
Update cibuild.cmake
timosachsenberg May 22, 2025
e72422d
Merge branch 'develop' into testpatch
timosachsenberg May 22, 2025
4c93e28
Impelmented Changes provided by mr. Bielow and Code Rabbit
May 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 60 additions & 31 deletions .github/workflows/openms_ci_matrix_full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -413,6 +413,7 @@ jobs:
BUILD_TYPE: "Release"
OPENMP: "ON"
BOOST_USE_STATIC: ${{ steps.set-vars.outputs.static_boost }}
COMPILE_PXDS: ${{ startsWith(matrix.os, 'ubuntu') && github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'develop' && 'ON' || 'OFF' }} # test generation of pxds
# BUILD_FLAGS: "-p:CL_MPCount=2" # For VS Generator and MSBuild
BUILD_FLAGS: "-j${{ steps.cpu-cores.outputs.count }}" # Ninja will otherwise use all cores (doesn't go well in GHA).
CMAKE_CCACHE_EXE: "ccache"
Expand Down Expand Up @@ -670,7 +671,7 @@ jobs:
- name: run GHA release action.
id: create_release
if: inputs.do_release
uses: ncipollo/release-action@v1.14.0
uses: ncipollo/release-action@v1.16.0
with:
bodyFile: RELEASE_TEXT_GH.md
tag: ${{ github.ref_name }}
Expand Down Expand Up @@ -941,7 +942,7 @@ jobs:
mkdir -p ~/.ssh/
echo "$PASS" > ~/.ssh/private.key
sudo chmod 600 ~/.ssh/private.key
ln -s ./$folder latest #create link to the release folder
ln -s ../$folder latest #create link to the release folder
rsync --progress -avz -e "ssh -i ~/.ssh/private.key -p $PORT -o StrictHostKeyChecking=no" latest "$USER@$HOST:/knime-plugin/updateSite/release"

do-release:
Expand All @@ -963,36 +964,65 @@ jobs:
shell: bash
run: echo "RUN_NAME=${{ github.event.pull_request && github.event.number || github.ref_name }}" >> $GITHUB_ENV

# NB we create the tag for the OpenMS repo next in a separate action.
# We created the draft release during deploy-installer step. Now we want to publish it.
- name: Publish OpenMS release
id: publish_release
if: inputs.do_release
uses: ncipollo/release-action@v1.16.0
with:
tag: ${{ github.ref_name }}
draft: false
allowUpdates: true
artifactErrorsFailBuild: true
makeLatest: ${{ inputs.mark_as_latest }}
omitBodyDuringUpdate: true
omitNameDuringUpdate: true
updateOnlyUnreleased: true


# NB we create the tag for the OpenMS repo next in a separate action.
# SPW TODO: Move the script here to a file once its stable
- id: bash_create_tags
name: create tags for other repos
shell: bash
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
run: |
function createGitTag() {
function handleGitTag() {
REPO=$1
SHA=$2
gh api \
--method POST \
TAG_NAME="${{ env.RUN_NAME }}"

# Check if the tag exists
TAG_EXISTS=$(gh api \
--method GET \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/${REPO}/git/refs \
-f ref="refs/tags/${{ env.RUN_NAME }}" \
-f sha="${SHA}"
}

function updateGitTag() {
REPO=$1
SHA=$2

gh api \
--method PATCH \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/${REPO}/git/refs/tags/${{ env.RUN_NAME }} \
-f sha="${SHA}" \
-F force=true
/repos/${REPO}/git/refs/tags/${TAG_NAME} 2>/dev/null || echo "TAG_NOT_FOUND")

if [[ "$TAG_EXISTS" == "TAG_NOT_FOUND" ]]; then
# Tag doesn't exist, create it
echo "Creating tag ${TAG_NAME} in ${REPO} pointing to ${SHA}"
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/${REPO}/git/refs \
-f ref="refs/tags/${TAG_NAME}" \
-f sha="${SHA}"
else
# Tag exists, check if it points to the same SHA
EXISTING_SHA=$(echo $TAG_EXISTS | jq -r '.object.sha')

if [[ "$EXISTING_SHA" == "$SHA" ]]; then
# Tag already points to the correct SHA, do nothing
echo "Tag ${TAG_NAME} already exists in ${REPO} and points to the correct SHA: ${SHA}"
else
# Tag exists but points to a different SHA, throw an error
echo "Error: Tag ${TAG_NAME} already exists in ${REPO} but points to ${EXISTING_SHA} instead of ${SHA}. Manual intervention required."
exit 1
fi
fi
}
DEOPENMS_SHA=$(curl -s -X GET https://api.github.com/repos/OpenMS/de.openms.knime/git/ref/heads/develop |jq -r '.object.sha')
GKN_SHA=$(curl -s -X GET https://api.github.com/repos/genericworkflownodes/GenericKnimeNodes/git/ref/heads/develop |jq -r '.object.sha')
Expand All @@ -1003,15 +1033,14 @@ jobs:
TUTORIAL_SHA=$(curl https://api.github.com/repos/OpenMS/Tutorials/git/refs/heads/master | jq -r ".object.sha")
DOCS_SHA=$(curl https://api.github.com/repos/OpenMS/OpenMS-docs/git/refs/heads/develop | jq -r ".object.sha")

createGitTag OpenMS/contrib $CONTRIB_SHA || updateGitTag OpenMS/contrib $CONTRIB_SHA
createGitTag OpenMS/pyopenms-docs $PYDOCS_SHA || updateGitTag OpenMS/pyopenms-docs $PYDOCS_SHA
createGitTag OpenMS/THIRDPARTY $THIRDPARTY_SHA || updateGitTag OpenMS/THIRDPARTY $THIRDPARTY_SHA
createGitTag OpenMS/Tutorials $TUTORIAL_SHA || updateGitTag OpenMS/Tutorials $TUTORIAL_SHA
createGitTag OpenMS/OpenMS-docs $DOCS_SHA || updateGitTag OpenMS/OpenMS-docs $DOCS_SHA
createGitTag OpenMS/de.openms.knime $DEOPENMS_SHA || updateGitTag OpenMS/de.openms.knime $DEOPENMS_SHA

#FIXME reenable these after we get the correct access permissions
#createGitTag genericworkflownodes/de.openms.knime.dynamicJSViewers $JSViewer_SHA || updateGitTag genericworkflownodes/de.openms.knime.dynamicJSViewers $GKN_SHA
handleGitTag OpenMS/contrib $CONTRIB_SHA
handleGitTag OpenMS/pyopenms-docs $PYDOCS_SHA
handleGitTag OpenMS/THIRDPARTY $THIRDPARTY_SHA
handleGitTag OpenMS/Tutorials $TUTORIAL_SHA
handleGitTag OpenMS/OpenMS-docs $DOCS_SHA
handleGitTag OpenMS/de.openms.knime $DEOPENMS_SHA
# Uncomment when permissions are fixed
# handleGitTag genericworkflownodes/de.openms.knime.dynamicJSViewers $JSViewer_SHA

- name: Merge to Develop
if: inputs.mark_as_latest
Expand Down
50 changes: 4 additions & 46 deletions .github/workflows/update_version_numbers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,52 +21,10 @@ jobs:
# Update files with new package version numbers
- name: update files
run: |
# setting variables
package_version_major="${{ github.event.inputs.major }}"
package_version_minor="${{ github.event.inputs.minor }}"
package_version_patch="${{ github.event.inputs.patch }}"
package_version="${{ github.event.inputs.major }}.${{ github.event.inputs.minor }}.${{ github.event.inputs.patch }}"
echo "Setting version $package_version"

# update main cmakelist
sed -i '' "s#.*set(OPENMS_PACKAGE_VERSION_MAJOR.*#set(OPENMS_PACKAGE_VERSION_MAJOR \"$package_version_major\")#" CMakeLists.txt
sed -i '' "s#.*set(OPENMS_PACKAGE_VERSION_MINOR.*#set(OPENMS_PACKAGE_VERSION_MINOR \"$package_version_minor\")#" CMakeLists.txt
sed -i '' "s#.*set(OPENMS_PACKAGE_VERSION_PATCH.*#set(OPENMS_PACKAGE_VERSION_PATCH \"$package_version_patch\")#" CMakeLists.txt

# update version info test
sed -i '' "s#detail.version_major =.*#detail.version_major = $package_version_major;#" ./src/tests/class_tests/openms/source/VersionInfo_test.cpp
sed -i '' "s#detail.version_minor =.*#detail.version_minor = $package_version_minor;#" ./src/tests/class_tests/openms/source/VersionInfo_test.cpp
sed -i '' "s#detail.version_patch =.*#detail.version_patch = $package_version_patch;#" ./src/tests/class_tests/openms/source/VersionInfo_test.cpp

# update vcpkg.json
sed -i '' "s/\"version-string\": \".*\"/\"version-string\": \"$package_version\"/" vcpkg.json

# update test write ini out:
sed -i '' "s#<ITEM name=\"version\" value=\".*\" type=\"string\"#<ITEM name=\"version\" value=\"$package_version\" type=\"string\"#g" ./src/tests/topp/WRITE_INI_OUT.ini
# update INIUpdater version
sed -i '' "s#<ITEM name=\"version\" value=\".*\" type=\"string\"#<ITEM name=\"version\" value=\"$package_version\" type=\"string\"#g" ./src/tests/topp/INIUpdater_1_noupdate.toppas


# update INIs in tests topp:
find ./src/tests/topp/ -type f -name '*.ini' -exec grep -q "<ITEM name=\"version\" value=\".*\" type=\"string\"" {} \; -exec sed -i '' "s#<ITEM name=\"version\" value=\".*\" type=\"string\"#<ITEM name=\"version\" value=\"$package_version\" type=\"string\"#g" {} \;
# Update Changelog
# Define the new section using a here-doc
section_header=$(cat <<EOF
------------------------------------------------------------------------------------------
---- OpenMS ${package_version} (under development) ----
------------------------------------------------------------------------------------------


. # ends with a period for preserve trailing newlines
EOF
)
section_header=${section_header%.*} # remove the period

# Get the line number of the first line starting with more than 10 "-"
line_num=$(grep -n "^-\{10,\}" CHANGELOG | head -n 1 | cut -d ":" -f 1)

# Use perl to insert the text at the specified line number in the file
perl -i -pe "print '${section_header}' if \$. == ${line_num}" CHANGELOG
bash tools/update_version_numbers.sh \
"${{ github.event.inputs.major }}" \
"${{ github.event.inputs.minor }}" \
"${{ github.event.inputs.patch }}"

# Check for changes
- name: check for changed files
Expand Down
16 changes: 11 additions & 5 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ Parameters - list of algorithm or TOPP tool parameters that changed in this rele
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


- Libary:
ID information got factored out of MSSpectrum

- removed outdated tools:
SpecLibCreator, SpecLibSearch, IDMassAccuracy

------------------------------------------------------------------------------------------
---- OpenMS 3.5.0 (under development) ----
------------------------------------------------------------------------------------------
Expand All @@ -18,21 +25,20 @@ General:

Dependencies:

OpenSwath:

Misc:
- show load/store progress for files in all TOPP tools (#8041)

Fixes:

Library:
- Removed `assignRanks` and `sortByRanks` in PeptideIdentifications and sort and filter by score instead. Also removed `updateHitRanks` in IDFilter (#7991)
- Remove ranke member in PeptideHit and store ranks as meta value (for backwards compatibility). (#7997)

- removed tools:
Removed tools:


------------------------------------------------------------------------------------------
---- OpenMS 3.4.0 (under development) ----
---- OpenMS 3.4.0 (May 2025) ----
------------------------------------------------------------------------------------------

General:
Expand Down Expand Up @@ -75,7 +81,7 @@ Library:
- 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:
Removed tools:
- XTandemAdapter
- MascotAdapter (note: MascotAdapterOnline still exists) (#7927)

Expand Down
11 changes: 8 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ set(CMAKE_AUTOMOC_COMPILER_PREDEFINES OFF)
# General CMake definitions & helper
#------------------------------------------------------------------------------
SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)

#------------------------------------------------------------------------------
## CMake sanity check: sometimes CMAKE_SIZEOF_VOID_P just vanishes when
## updating CMake.
Expand Down Expand Up @@ -83,7 +82,13 @@ option(ENABLE_DOCS "Indicates whether documentation should be built." ON)
option(WITH_GUI "Build GUI parts of OpenMS (TOPPView&Co). This requires QtGui." ON)
option(NO_WEBENGINE_WIDGETS "Do not use QtWebengineWidgets. Disables Javascript views in TOPPView." OFF)
option(WITH_HDF5 "Build HDF5 parts of OpenMS." OFF)
option(ENABLE_CWL "Build and validate the CWL description files for all TOPP tools." OFF)
option(ENABLE_TDL "Load dependency and compile against TDL (required for CWL file support)." ON)
option(ENABLE_CWL_GENERATION "Build and validate the CWL description files for all TOPP tools (Requires ENABLE_TDL=ON)." OFF)

if(ENABLE_CWL_GENERATION AND NOT ENABLE_TDL)
message(FATAL_ERROR "ENABLE_CWL_GENERATION requires ENABLE_TDL to be ON.")
endif()


if(MSVC)
option(MT_ENABLE_NESTED_OPENMP "Enable nested parallelism." OFF)
Expand Down Expand Up @@ -476,7 +481,7 @@ endif()
#------------------------------------------------------------------------------
# CWL generation (updates openms/share/commonwl/*.cwl files for all TOPP tools)
#------------------------------------------------------------------------------
if (ENABLE_CWL)
if (ENABLE_CWL_GENERATION)
include(${OPENMS_HOST_DIRECTORY}/cmake/cwl_generation.cmake)
endif()

Expand Down
2 changes: 1 addition & 1 deletion contrib
Submodule contrib updated 1 files
+11 −12 CMakeLists.txt
8 changes: 5 additions & 3 deletions doc/code_examples/Tutorial_GUI_Plot1D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
#include <OpenMS/openms_data_path.h> // exotic header for path to tutorial data
#include <QApplication>

#include <boost/make_shared.hpp>

using namespace OpenMS;
using namespace std;

Expand All @@ -20,13 +22,13 @@ Int main(int argc, const char** argv)

QApplication app(argc, const_cast<char**>(argv));

PeakMap exp;
AnnotatedMSRun exp;
auto exp_sptr = boost::make_shared<AnnotatedMSRun>();
MSSpectrum spec;
// demonstrating how to load a single spectrum from file formats which only contain a single spec
// alternatively: use FileHandler().loadExperiment() if you need an experiment anyway
FileHandler().loadSpectrum(tutorial_data_path, spec, {FileTypes::DTA});
exp.addSpectrum(spec);
LayerDataBase::ExperimentSharedPtrType exp_sptr(new PeakMap(exp));
exp_sptr->getMSExperiment().addSpectrum(spec);
LayerDataBase::ODExperimentSharedPtrType on_disc_exp_sptr(new OnDiscMSExperiment());
Plot1DWidget widget(Param(), DIM::Y, nullptr);
widget.canvas()->addPeakLayer(exp_sptr, on_disc_exp_sptr);
Expand Down
19 changes: 15 additions & 4 deletions doc/code_examples/Tutorial_MSExperiment.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,23 @@ int main()
}
}

// update the data ranges for all dimensions (RT, m/z, int, IM) and print them:
// updateRanges provides a fast way to update the ranges of all spectra and chromatograms in the experiment.
// Once updated, the data ranges for all dimensions (RT, m/z, int, IM) can be printed.
exp.updateRanges();
std::cout << "Data ranges:\n";
exp.printRange(std::cout);
std::cout << "\nGet maximum intensity on its own: " << exp.getMaxIntensity() << '\n';
exp.getMinRT();
exp.spectrumRanges().printRange(std::cout);
std::cout << "\nGet maximum intensity on its own: " << exp.spectrumRanges().getMaxIntensity() << '\n';
std::cout << "Get minimum RT on its own: " << exp.spectrumRanges().getMinRT() << '\n';
std::cout << "Get maximum RT on its own: " << exp.spectrumRanges().getMaxRT() << '\n';
std::cout << "Get minimum m/z on its own: " << exp.spectrumRanges().getMinMZ() << '\n';
std::cout << "Get maximum m/z on its own: " << exp.spectrumRanges().getMaxMZ() << '\n';

// Printing the IM ranges is only possible if the spectra contain IM data (would throw an exception otherwise)
if (!exp.spectrumRanges().RangeMobility::isEmpty())
{
std::cout << "Get minimum IM on its own: " << exp.spectrumRanges().getMinMobility() << '\n';
std::cout << "Get maximum IM on its own: " << exp.spectrumRanges().getMaxMobility() << '\n';
}

// Store the spectra to a mzML file with:
FileHandler fh;
Expand Down
3 changes: 0 additions & 3 deletions doc/doxygen/public/TOPP.doxygen
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@
- @subpage TOPP_NovorAdapter - De novo sequencing from tandem mass spectrometry data.
- @subpage TOPP_SageAdapter - Identifies MS/MS spectra using Sage (external).
- @subpage TOPP_SimpleSearchEngine - A simple database search engine for annotating MS/MS spectra.
- @subpage TOPP_SpecLibSearcher - Identifies peptide MS/MS spectra by spectral matching with a searchable spectral library.
- @subpage TOPP_SpectraSTSearchAdapter - An interface to the 'SEARCH' mode of the SpectraST program (external, beta).


Expand All @@ -117,7 +116,6 @@
- @subpage TOPP_IDDecoyProbability - Estimates peptide probabilities using a decoy search strategy. WARNING: This utility is deprecated.
- @subpage TOPP_IDExtractor - Extracts n peptides randomly or best n from idXML files.
- @subpage TOPP_IDMapper - Assigns protein/peptide identifications to feature or consensus features.
- @subpage TOPP_IDMassAccuracy - Calculates a distribution of the mass error from given mass spectra and IDs.
- @subpage TOPP_IDPosteriorErrorProbability - Estimates posterior error probabilities using a mixture model.
- @subpage TOPP_IDScoreSwitcher - Switches between different scores of peptide or protein hits in identification data.
- @subpage TOPP_PeptideIndexer - Refreshes the protein references for all peptide hits.
Expand All @@ -126,7 +124,6 @@
- @subpage TOPP_ProteinInference - Infer proteins from a list of (high-confidence) peptides.
- @subpage TOPP_PSMFeatureExtractor - Creates search engine specific features for PercolatorAdapter input.
- @subpage TOPP_SequenceCoverageCalculator - Prints information about idXML files.
- @subpage TOPP_SpecLibCreator - Creates an MSP-formatted spectral library.
- @subpage TOPP_StaticModification - Allows to attach a set of fixed modifications to an idXML file (MS/MS search results), e.g. to add 15N (N15) labeling post-hoc.


Expand Down
2 changes: 0 additions & 2 deletions doc/doxygen/public/developer_tutorial.doxygen
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,6 @@ The extensible %OpenMS library implements common mass spectrometric data process
- Database search:
- Peptides (Tool %SimpleSearchEngine and its classes - started simple but is, by now, rather complete peptide identification engine)
- Protein-Protein cross-links (Tool OpenPepXL)
- Spectral library search:
- Tool SpecLibSearcher and its classes
- DeNovo:
- Tool CompNovoCID and its classes
- Quantification:
Expand Down
2 changes: 1 addition & 1 deletion dockerfiles/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ RUN <<-EOF

# copying only the binaries that are relevant to Linux
cp -r THIRDPARTY/All/* ${THIRDPARTY_DIR}
cp -r THIRDPARTY/Linux/64bit/* ${THIRDPARTY_DIR}
cp -r THIRDPARTY/Linux/x86_64/* ${THIRDPARTY_DIR}

rm -rf THIRDPARTY
EOF
Expand Down
Loading