feat(diann): add --strip_unknown_mods to recover hydroxyproline / non-standard PTMs #389
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: nf-core extended CI | |
| # Job dependency chain: | |
| # test-default (1.8.1, fast, public) → test-latest (2.2.0, all features) | |
| # → test-singularity (1.8.1, Singularity) | |
| # If test-default fails, downstream jobs are skipped to save resources. | |
| on: | |
| push: | |
| branches: | |
| - dev | |
| - master | |
| pull_request: | |
| release: | |
| types: [published] | |
| workflow_dispatch: | |
| env: | |
| NXF_ANSI_LOG: false | |
| NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity | |
| NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity | |
| concurrency: | |
| group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" | |
| cancel-in-progress: true | |
| jobs: | |
| # ────────────────────────────────────────────────────────────────────────── | |
| # Stage 1: Default tests — DIA-NN 1.8.1 (public, fast, no auth) | |
| # Must pass before any other job runs. | |
| # ────────────────────────────────────────────────────────────────────────── | |
| test-default: | |
| name: "Default [${{ matrix.test_profile }}] DIA-NN=1.8.1 NXF=${{ matrix.NXF_VER }}" | |
| if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'bigbio/quantmsdiann') }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| NXF_VER: ["25.10.4", "latest-everything"] | |
| test_profile: ["test_dia", "test_dia_dotd"] | |
| env: | |
| NXF_ANSI_LOG: false | |
| CAPSULE_LOG: none | |
| TEST_PROFILE: ${{ matrix.test_profile }} | |
| EXEC_PROFILE: docker | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
| - name: Set up Java 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Set up Nextflow | |
| uses: nf-core/setup-nextflow@v2 | |
| with: | |
| version: "${{ matrix.NXF_VER }}" | |
| - name: Disk space cleanup | |
| uses: jlumbroso/free-disk-space@v1.3.1 | |
| - name: Run pipeline with test data | |
| if: github.ref != 'refs/heads/master' && github.event.pull_request.base.ref != 'master' | |
| run: | | |
| nextflow run ${GITHUB_WORKSPACE} -profile $TEST_PROFILE,$EXEC_PROFILE,dev --outdir ${TEST_PROFILE}_${EXEC_PROFILE}_results | |
| - name: Run pipeline with test data (master branch) | |
| if: github.ref == 'refs/heads/master' || github.event.pull_request.base.ref == 'master' | |
| run: | | |
| nextflow run ${GITHUB_WORKSPACE} -profile $TEST_PROFILE,$EXEC_PROFILE --outdir ${TEST_PROFILE}_${EXEC_PROFILE}_results | |
| - name: Gather failed logs | |
| if: failure() || cancelled() | |
| run: | | |
| mkdir -p failed_logs | |
| if [ -f "${TEST_PROFILE}_${EXEC_PROFILE}_results/pipeline_info/execution_trace.txt" ]; then | |
| failed=$(grep "FAILED" ${TEST_PROFILE}_${EXEC_PROFILE}_results/pipeline_info/execution_trace.txt | cut -f 2) | |
| while read -r line ; do cp $(ls work/${line}*/*.log) failed_logs/ || true ; done <<< "$failed" | |
| fi | |
| - name: Set timestamp | |
| if: always() | |
| run: echo "TS=$(date +%s)" >> $GITHUB_ENV | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() || cancelled() | |
| name: Upload failed logs | |
| with: | |
| name: failed_logs_${{ matrix.test_profile }}_${{ matrix.NXF_VER }}_${{ env.TS }} | |
| include-hidden-files: true | |
| path: failed_logs | |
| overwrite: false | |
| if-no-files-found: warn | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| name: Upload log | |
| with: | |
| name: nextflow_${{ matrix.test_profile }}_${{ matrix.NXF_VER }}_${{ env.TS }}.log | |
| include-hidden-files: true | |
| path: .nextflow.log | |
| overwrite: false | |
| if-no-files-found: warn | |
| # ────────────────────────────────────────────────────────────────────────── | |
| # Stage 2a: Latest DIA-NN (2.2.0) — all features | |
| # Only runs after test-default passes. | |
| # ────────────────────────────────────────────────────────────────────────── | |
| test-latest: | |
| name: "Latest [${{ matrix.test_profile }}] DIA-NN=2.2.0" | |
| needs: test-default | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test_profile: | |
| [ | |
| "test_latest_dia", | |
| "test_dia_quantums", | |
| "test_dia_parquet", | |
| "test_dia_qpx", | |
| "test_dda", | |
| "test_dia_skip_preanalysis", | |
| ] | |
| env: | |
| NXF_ANSI_LOG: false | |
| CAPSULE_LOG: none | |
| TEST_PROFILE: ${{ matrix.test_profile }} | |
| EXEC_PROFILE: docker | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
| - name: Set up Java 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Set up Nextflow | |
| uses: nf-core/setup-nextflow@v2 | |
| with: | |
| version: "25.10.4" | |
| - name: Log in to GitHub Container Registry | |
| env: | |
| GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} | |
| if: env.GHCR_TOKEN != '' | |
| run: | | |
| echo "${{ secrets.GHCR_TOKEN }}" | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin | |
| - name: Disk space cleanup | |
| uses: jlumbroso/free-disk-space@v1.3.1 | |
| - name: Run pipeline with test data | |
| if: github.ref != 'refs/heads/master' && github.event.pull_request.base.ref != 'master' | |
| run: | | |
| nextflow run ${GITHUB_WORKSPACE} -profile $TEST_PROFILE,$EXEC_PROFILE,dev --outdir ${TEST_PROFILE}_${EXEC_PROFILE}_results | |
| - name: Run pipeline with test data (master branch) | |
| if: github.ref == 'refs/heads/master' || github.event.pull_request.base.ref == 'master' | |
| run: | | |
| nextflow run ${GITHUB_WORKSPACE} -profile $TEST_PROFILE,$EXEC_PROFILE --outdir ${TEST_PROFILE}_${EXEC_PROFILE}_results | |
| - name: Gather failed logs | |
| if: failure() || cancelled() | |
| run: | | |
| mkdir -p failed_logs | |
| if [ -f "${TEST_PROFILE}_${EXEC_PROFILE}_results/pipeline_info/execution_trace.txt" ]; then | |
| failed=$(grep "FAILED" ${TEST_PROFILE}_${EXEC_PROFILE}_results/pipeline_info/execution_trace.txt | cut -f 2) | |
| while read -r line ; do cp $(ls work/${line}*/*.log) failed_logs/ || true ; done <<< "$failed" | |
| fi | |
| - name: Set timestamp | |
| if: always() | |
| run: echo "TS=$(date +%s)" >> $GITHUB_ENV | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() || cancelled() | |
| name: Upload failed logs | |
| with: | |
| name: failed_logs_latest_${{ matrix.test_profile }}_${{ env.TS }} | |
| include-hidden-files: true | |
| path: failed_logs | |
| overwrite: false | |
| if-no-files-found: warn | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| name: Upload log | |
| with: | |
| name: nextflow_latest_${{ matrix.test_profile }}_${{ env.TS }}.log | |
| include-hidden-files: true | |
| path: .nextflow.log | |
| overwrite: false | |
| if-no-files-found: warn | |
| # ────────────────────────────────────────────────────────────────────────── | |
| # Stage 2b: Singularity — default tests only (public containers) | |
| # Only runs after test-default passes. | |
| # ────────────────────────────────────────────────────────────────────────── | |
| test-singularity: | |
| name: "Singularity [${{ matrix.test_profile }}] DIA-NN=1.8.1 NXF=${{ matrix.NXF_VER }}" | |
| needs: test-default | |
| if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'bigbio/quantmsdiann') }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| NXF_VER: ["25.10.4", "latest-everything"] | |
| test_profile: ["test_dia", "test_dia_dotd"] | |
| env: | |
| NXF_ANSI_LOG: false | |
| CAPSULE_LOG: none | |
| TEST_PROFILE: ${{ matrix.test_profile }} | |
| EXEC_PROFILE: singularity | |
| steps: | |
| - name: Check out pipeline code | |
| uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Set up Nextflow | |
| uses: nf-core/setup-nextflow@v2 | |
| with: | |
| version: "${{ matrix.NXF_VER }}" | |
| - name: Set up Singularity | |
| run: | | |
| mkdir -p $NXF_SINGULARITY_CACHEDIR | |
| mkdir -p $NXF_SINGULARITY_LIBRARYDIR | |
| - name: Install Singularity with defaults | |
| uses: singularityhub/install-singularity@main | |
| - name: Disk space cleanup | |
| uses: jlumbroso/free-disk-space@v1.3.1 | |
| - name: Run pipeline with test data | |
| if: github.ref != 'refs/heads/master' && github.event.pull_request.base.ref != 'master' | |
| run: | | |
| nextflow run ${GITHUB_WORKSPACE} -profile $TEST_PROFILE,$EXEC_PROFILE,dev --outdir ${TEST_PROFILE}_${EXEC_PROFILE}_results | |
| - name: Run pipeline with test data (master branch) | |
| if: github.ref == 'refs/heads/master' || github.event.pull_request.base.ref == 'master' | |
| run: | | |
| nextflow run ${GITHUB_WORKSPACE} -profile $TEST_PROFILE,$EXEC_PROFILE --outdir ${TEST_PROFILE}_${EXEC_PROFILE}_results | |
| - name: Gather failed logs | |
| if: failure() || cancelled() | |
| run: | | |
| mkdir -p failed_logs | |
| if [ -f "${TEST_PROFILE}_${EXEC_PROFILE}_results/pipeline_info/execution_trace.txt" ]; then | |
| failed=$(grep "FAILED" ${TEST_PROFILE}_${EXEC_PROFILE}_results/pipeline_info/execution_trace.txt | cut -f 2) | |
| while read -r line ; do cp $(ls work/${line}*/*.log) failed_logs/ || true ; done <<< "$failed" | |
| fi | |
| - name: Set timestamp | |
| if: always() | |
| run: echo "TS=$(date +%s)" >> $GITHUB_ENV | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() || cancelled() | |
| name: Upload failed logs | |
| with: | |
| name: failed_logs_sing_${{ matrix.test_profile }}_${{ matrix.NXF_VER }}_${{ env.TS }} | |
| include-hidden-files: true | |
| path: failed_logs | |
| overwrite: false | |
| if-no-files-found: warn | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| name: Upload log | |
| with: | |
| name: nextflow_sing_${{ matrix.test_profile }}_${{ matrix.NXF_VER }}_${{ env.TS }}.log | |
| include-hidden-files: true | |
| path: .nextflow.log | |
| overwrite: false | |
| if-no-files-found: warn |