diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 38c7b0d361..f068a786da 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,7 +7,7 @@ on: types: [run-all-tool-tests-command] env: GALAXY_FORK: galaxyproject - GALAXY_BRANCH: release_25.1 + GALAXY_BRANCH: release_26.0 MAX_CHUNKS: 40 jobs: setup: @@ -105,7 +105,7 @@ jobs: repository-list: ${{ needs.setup.outputs.repository-list }} tool-list: ${{ needs.setup.outputs.tool-list }} additional-planemo-options: --biocontainers --skip version_bumped - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: ${{ failure() }} with: name: 'Tool linting output' @@ -145,7 +145,7 @@ jobs: path: ~/.cache/pip key: pip_cache_py_${{ matrix.python-version }}_gxy_${{ needs.setup.outputs.galaxy-head-sha }} - name: Get number of CPU cores - uses: SimenB/github-actions-cpu-cores@v2 + uses: SimenB/github-actions-cpu-cores@v3 id: cpu-cores - name: Clean dotnet folder for space run: rm -Rf /usr/share/dotnet @@ -162,7 +162,7 @@ jobs: galaxy-slots: ${{ steps.cpu-cores.outputs.count }} # Limit each test to 15 minutes test_timeout: 900 - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 with: name: 'Tool test output ${{ matrix.chunk }}' path: upload @@ -181,7 +181,7 @@ jobs: # This job runs on Linux runs-on: ubuntu-latest steps: - - uses: actions/download-artifact@v7 + - uses: actions/download-artifact@v8 with: path: artifacts - uses: actions/setup-python@v6 @@ -200,7 +200,7 @@ jobs: mode: combine html-report: true markdown-report: true - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 with: name: 'All tool test results' path: upload diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index c323c233ff..1ac7fb0397 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -17,7 +17,7 @@ on: - '*' env: GALAXY_FORK: galaxyproject - GALAXY_BRANCH: release_25.1 + GALAXY_BRANCH: release_26.0 MAX_CHUNKS: 4 MAX_FILE_SIZE: 1M concurrency: @@ -167,7 +167,7 @@ jobs: repository-list: ${{ needs.setup.outputs.repository-list }} tool-list: ${{ needs.setup.outputs.tool-list }} additional-planemo-options: ${{ env.EXTRA_SKIP }} - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: ${{ failure() }} with: name: 'Tool linting output' @@ -200,7 +200,7 @@ jobs: run: pip install flake8 flake8-import-order - name: Flake8 run: echo '${{ needs.setup.outputs.repository-list }}' | xargs -d '\n' flake8 --output-file pylint_report.txt --tee - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: ${{ failure() }} with: name: 'Python linting output' @@ -239,7 +239,7 @@ jobs: echo '${{ needs.setup.outputs.repository-list }}' | xargs -d '\n' -n 1 ./.github/styler.R --dry off git status git diff --exit-code | tee rlint_report.txt - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: ${{ failure() }} with: name: 'R linting output' @@ -267,7 +267,7 @@ jobs: cat file_size_report.txt exit 1 fi - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: ${{ failure() }} with: name: 'File size report' @@ -314,7 +314,7 @@ jobs: path: ~/.planemo key: planemo_cache_py_${{ matrix.python-version }}_gxy_${{ needs.setup.outputs.galaxy-head-sha }} - name: Get number of CPU cores - uses: SimenB/github-actions-cpu-cores@v2 + uses: SimenB/github-actions-cpu-cores@v3 id: cpu-cores - name: Clean dotnet folder for space run: rm -Rf /usr/share/dotnet @@ -330,8 +330,8 @@ jobs: chunk-count: ${{ needs.setup.outputs.chunk-count }} galaxy-slots: ${{ steps.cpu-cores.outputs.count }} # Limit each test to 15 minutes - test_timeout: 1800 - - uses: actions/upload-artifact@v6 + test_timeout: 900 + - uses: actions/upload-artifact@v7 with: name: 'Tool test output ${{ matrix.chunk }}' path: upload @@ -350,7 +350,7 @@ jobs: matrix: python-version: ['3.11'] steps: - - uses: actions/download-artifact@v7 + - uses: actions/download-artifact@v8 with: path: artifacts - uses: actions/setup-python@v6 @@ -369,7 +369,7 @@ jobs: mode: combine html-report: true markdown-report: true - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 with: name: 'All tool test results' path: upload @@ -393,7 +393,6 @@ jobs: needs: [setup, lint, combine_outputs] if: ${{ (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' ) && github.repository_owner == 'bgruening' }} runs-on: ubuntu-latest - environment: toolshed-deployment strategy: matrix: python-version: ['3.11'] @@ -429,9 +428,8 @@ jobs: deploy-report: name: Report deploy status needs: [deploy] - if: ${{ always() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' ) }} + if: ${{ always() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' ) && github.repository_owner == 'bgruening' }} runs-on: ubuntu-latest - environment: toolshed-deployment steps: # report to the PR if deployment failed - name: Get PR object diff --git a/.github/workflows/pr_without_tool_change.yaml b/.github/workflows/pr_without_tool_change.yaml index edff41005f..b2e2a5b2bb 100644 --- a/.github/workflows/pr_without_tool_change.yaml +++ b/.github/workflows/pr_without_tool_change.yaml @@ -4,9 +4,13 @@ name: Fallback # see https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks on: pull_request: + paths: + - 'deprecated/**' + - 'docs/**' + - '.github/**' + - '*' concurrency: group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true jobs: determine-success: name: Check workflow success diff --git a/tools/3dtrees_forestmamba/.shed.yml b/tools/3dtrees_forestmamba/.shed.yml new file mode 100644 index 0000000000..285c3baab7 --- /dev/null +++ b/tools/3dtrees_forestmamba/.shed.yml @@ -0,0 +1,11 @@ +name: 3dtrees_forestmamba +owner: bgruening +description: Forest instance segmentation with ForestMamba. +homepage_url: https://github.com/3dTrees-earth/3Dtrees_ForestMamba +long_description: | + Performs forest instance and semantic segmentation on LAZ/LAS point clouds using the + ForestMamba model. +remote_repository_url: https://github.com/bgruening/galaxytools/tree/master/tools/3dtrees_forestmamba +type: unrestricted +categories: +- "Geo Science" diff --git a/tools/3dtrees_forestmamba/forestmamba.xml b/tools/3dtrees_forestmamba/forestmamba.xml new file mode 100644 index 0000000000..7acf570a9c --- /dev/null +++ b/tools/3dtrees_forestmamba/forestmamba.xml @@ -0,0 +1,101 @@ + + + Forest instance and semantic segmentation of point clouds using the ForestMamba model. + + + 1.0.0 + 0 + + + ghcr.io/3dtrees-earth/3dtrees_forestmamba:@TOOL_VERSION@ + + + + \$_GALAXY_JOB_TMP_DIR + disabled + + + + + + + + + + ^[A-Za-z0-9_]+$ + + + ^[A-Za-z0-9_]+$ + + + ^[A-Za-z0-9_]+$ + + + + + + + + + + + + + + + + +## What it does + +This tool runs ForestMamba on one LAS/LAZ point cloud and writes a segmented +LAZ output with ForestMamba prediction dimensions. + +## Parameters + +- **Input LAZ/LAS point cloud**: the point cloud to segment. +- **Bluepoint iterations**: `0` runs the normal one-pass prediction. `2` enables + the dense-forest bluepoint flow: first pass, then an optional second pass on + points that remained unassigned. +- **Bluepoint score threshold**: optional model confidence threshold override + for bluepoint runs. Leave empty to use the model/config default. +- **Second pass threshold**: fraction of first-pass non-ground points with raw + `instance_pred == -1` required before the second bluepoint pass runs. The + default `0.01` means more than 1%. + +## Outputs + +- Segmented LAZ with `PredSemantic_FM`, `PredInstance_FM`, and `PredScore_FM` + by default. +- JSON summary of the wrapper run. + +Valid ForestMamba instance IDs are preserved. Raw negative instance IDs are +written as `0` in the final LAZ. + + + + + + 10.48550/arXiv.2606.01549 + + diff --git a/tools/3dtrees_forestmamba/test-data/mikro b/tools/3dtrees_forestmamba/test-data/mikro new file mode 100644 index 0000000000..37743aacaf Binary files /dev/null and b/tools/3dtrees_forestmamba/test-data/mikro differ diff --git a/tools/3dtrees_potree/3dtrees_potree.xml b/tools/3dtrees_potree/3dtrees_potree.xml index b86d835d83..baf1c4ab7a 100644 --- a/tools/3dtrees_potree/3dtrees_potree.xml +++ b/tools/3dtrees_potree/3dtrees_potree.xml @@ -1,7 +1,7 @@ Convert LAS/LAZ point clouds to Potree octree format for web visualization - 1.1.0 + 1.2.0 0 @@ -33,7 +33,7 @@ --special-coloring-palette '$special_coloring.palette' --special-coloring-n-colors '$special_coloring.n_colors' --special-coloring-n-neighbors '$special_coloring.n_neighbors' - --special-coloring-instance-attribute '$special_coloring.instance_attribute' + --special-coloring-instance-attributes '$special_coloring.instance_attributes' --special-coloring-ground-id '$special_coloring.ground_id' --special-coloring-ground-color '$special_coloring.ground_color' $special_coloring.sidecar_json @@ -78,7 +78,7 @@ - + @@ -88,8 +88,8 @@ - - ^[A-Za-z0-9_]+$ + + ^[A-Za-z0-9_,]+$ @@ -112,7 +112,7 @@ - + @@ -153,21 +153,40 @@ - + - + + + + + + + - + - - + + + + + + + + + + + + + + + @@ -196,7 +215,7 @@ This tool converts LAS/LAZ point cloud files to the Potree octree format for eff 3. **Flexible sampling methods**: Choose between Poisson, Poisson Average, or Random sampling 4. **Web-ready output**: Generates files that can be directly served for Potree viewer visualization 5. **Optional web page generation**: Can generate a ready-to-use HTML viewer page -6. **Special instance coloring**: Optionally adds a display-only ``coloring_id`` attribute from ``PredInstance`` while preserving original RGB +6. **Special instance coloring**: Optionally adds display-only coloring attributes from one or more instance attributes while preserving original RGB ----- @@ -211,14 +230,14 @@ This tool converts LAS/LAZ point cloud files to the Potree octree format for eff - **Keep Chunks**: Preserve temporary chunk files after conversion - **No Chunking**: Disable the chunking phase - **No Indexing**: Disable the indexing phase -- **Special Coloring**: Add a ``coloring_id`` point attribute for neighbor-aware instance colors. +- **Special Coloring**: Add point attributes for neighbor-aware instance colors. - **Special Coloring Palette**: Built-in palette name (sky, sea, cozy, fairy, winter, rainbow, pastel, candy, boring) or custom comma-separated ``#RRGGBB`` colors - **Special Coloring Color Count**: Number of non-ground coloring IDs - **Special Coloring Neighbors**: Number of nearest instance centroids considered when avoiding nearby color reuse -- **Special Coloring Instance Attribute**: Point attribute containing instance IDs, default ``PredInstance`` +- **Special Coloring Instance Attributes**: Comma-separated point attributes containing instance IDs, default ``PredInstance_SAT,PredInstance_FoMa`` - **Special Coloring Ground Instance ID**: Instance ID treated as ground/background, default ``0``. Negative instance IDs are also treated as background. - **Special Coloring Ground Color**: Ground/background color as ``#RRGGBB`` -- **Write Special Coloring JSON**: Write ``special_coloring_mapping.json`` and patch generated Potree HTML viewers to use the sidecar colors. +- **Write Special Coloring JSON**: Write ``special_coloring_mapping*.json`` files and patch generated Potree HTML viewers to use the first sidecar color mapping. - **Generate Page**: Create a web viewer page with the specified name - **Viewer Title**: Optional title shown in the generated viewer page @@ -232,7 +251,7 @@ The tool produces a collection containing: - **hierarchy** (binary): Binary file containing the octree hierarchy - **octree** (binary): Binary file containing the point data - **log** (text): Conversion log file -- **special_coloring_mapping** (JSON, optional): Mapping from ``coloring_id`` to colors and from ``PredInstance`` to ``coloring_id`` when Write Special Coloring JSON is enabled +- **special_coloring_mapping*** (JSON, optional): Mapping from coloring IDs to colors and from each instance attribute to coloring IDs when Write Special Coloring JSON is enabled When **Generate Page** is specified (e.g., "viewer"): diff --git a/tools/3dtrees_potree/test-data/mikro_multi_segmented.laz b/tools/3dtrees_potree/test-data/mikro_multi_segmented.laz new file mode 100644 index 0000000000..712043643b Binary files /dev/null and b/tools/3dtrees_potree/test-data/mikro_multi_segmented.laz differ diff --git a/tools/instagraal/instagraal.xml b/tools/instagraal/instagraal.xml index 7d37b3dcce..bf474fcaf9 100644 --- a/tools/instagraal/instagraal.xml +++ b/tools/instagraal/instagraal.xml @@ -1,15 +1,16 @@ - + Large genome reassembly based on Hi-C data - - instagraal - - 0.1.6 + 0.2.0 0 + 25.0 + + instagraal + - quay.io/galaxy/instagraal:0.1.6 + quay.io/galaxy/instagraal:v@TOOL_VERSION@ 10.0 3.0 1 @@ -42,90 +43,105 @@ ln -s '$info_contigs' hic_folder/info_contigs.txt && instagraal ./hic_folder $ref_genome - ./outputs/ - + -o ./outputs/ --level $level --cycles $cycles --coverage-std $coverage_std --neighborhood $neighborhood - -$circular -$bomb -$pyramid_only -$simple + $circular + $bomb + $pyramid_only + $simple + $save_matrix && mv ./outputs/*/test_*/genome.fasta ./outputs/genome.fasta && -mv ./outputs/*/test_*/info_frags.txt ./outputs/info_frags.txt +mv ./outputs/*/test_*/info_frags.txt ./outputs/info_frags.txt && + +mkdir -p matrix_previews && +( mv ./outputs/*/test_*/matrix_cycle_*.png matrix_previews/ 2>/dev/null || true ) && instagraal-polish -m polishing -i ./outputs/info_frags.txt -f $ref_genome - -o ./outputs/curated.fasta + -o ./polish_out -j $gap_string - ]]> - - - + - + - - - - - - - - - - - - - - + + + + + + + + + + - + + + + save_matrix is True + - - - - + + + + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -155,6 +171,8 @@ After the scaffolder is done running, whatever path you specified as output will * genome.fasta: the scaffolded genome. Scaffolds will be ordered by increasing size in fragments, which roughly (but not always) translates into increasing size in bp. * info_frags.txt: a file that contains, for each newly formed scaffold, the original coordinates of every single bin in that scaffold, in the format chromosome, id, orientation, start, end. Each bin has a unique ID that provides a convenient way of tracking consecutive stretches. Orientations are relative to one another, and when "-1" is supplied, it is understood that the reverse complement should be taken. +If *Save a contact-map preview (PNG) after each cycle* is enabled, a collection of per-cycle contact-map preview images (matrix_cycle_N.png) is also produced. + ]]> diff --git a/tools/kat/.shed.yml b/tools/kat/.shed.yml index 05a46ede9d..6a23a97d46 100644 --- a/tools/kat/.shed.yml +++ b/tools/kat/.shed.yml @@ -6,7 +6,7 @@ long_description: | using k-mer frequency analysis. It includes tools for generating k-mer histicity plots, comparing k-mer spectra between datasets, filtering sequences by k-mer content, and analysing GC/coverage distributions. -homepage_url: https://github.com/TGAC/KAT +homepage_url: https://github.com/EarlhamInst/KAT remote_repository_url: https://github.com/bgruening/galaxytools/tree/master/tools/kat type: unrestricted categories: diff --git a/tools/kat/kat_comp.xml b/tools/kat/kat_comp.xml new file mode 100644 index 0000000000..bfd210b4fa --- /dev/null +++ b/tools/kat/kat_comp.xml @@ -0,0 +1,506 @@ + + compares k-mer count hashes + + macros.xml + + + + + + + + + + echo @TOOL_VERSION@ + + + +
+ + +
+ + +
+ + +
+ + + + + + + + + + + + + + ^[0-9]+(,[0-9]+)*$|^$ + + + + + +
+ + + + + + ^[0-9]+(,[0-9]+)*$|^$ + + + ^[0-9]+(,[0-9]+)*$|^$ + +
+ + +
+ + + + +
+ + +
+ + + +
+
+ + + + + + + + output_options['output_type'] == 'png' and not output_options['density_plot'] + + + + output_options['output_type'] == 'png' and output_options['density_plot'] + + + + output_options['output_type'] == 'pdf' and not output_options['density_plot'] + + + + output_options['output_type'] == 'pdf' and output_options['density_plot'] + + + + + + + + output_options['output_hists'] + + + output_options['output_hists'] and output_options['output_type'] == 'png' + + + output_options['output_hists'] and output_options['output_type'] == 'pdf' + + + + + output_options['output_hists'] + + + output_options['output_hists'] and output_options['output_type'] == 'png' + + + output_options['output_hists'] and output_options['output_type'] == 'pdf' + + + + + input3['use_input3'] == 'yes' + + + + input3['use_input3'] == 'yes' + + + + input3['use_input3'] == 'yes' + + + + + + +
+ +
+
+ +
+ + + +
+ +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+
+ +
+ + + +
+ +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+ +
+ + + +
+ +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+
+ +
+ + + +
+ +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+
+ +
+ + + + +
+ + + + +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
\ No newline at end of file diff --git a/tools/kat/kat_gcp.xml b/tools/kat/kat_gcp.xml new file mode 100644 index 0000000000..93756c439a --- /dev/null +++ b/tools/kat/kat_gcp.xml @@ -0,0 +1,261 @@ + + GC vs Coverage analysis of k-mers + + macros.xml + + + + + + + + + + echo @TOOL_VERSION@ + + + + + + + + + + + + + + +
+ + + +
+
+ + + +
+
+ +
+
+ + + + output_options['output_type'] == 'png' + + + output_options['output_type'] == 'pdf' + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
\ No newline at end of file diff --git a/tools/kat/kat_hist.xml b/tools/kat/kat_hist.xml new file mode 100644 index 0000000000..52254c71e0 --- /dev/null +++ b/tools/kat/kat_hist.xml @@ -0,0 +1,171 @@ + + creates a histogram of k-mer occurrences + + macros.xml + + + + + + + + + + echo @TOOL_VERSION@ + + + +
+ + + +
+ +
+ + ^[0-9]+(,[0-9]+)*$|^$ + + +
+
+ + + + advanced_options['output_type'] == 'png' + + + advanced_options['output_type'] == 'pdf' + + + + + + +
+ + + +
+ + + + + + + + + + + + + +
+ + + +
+ +
+
+ +
+ + + + + + + + + + + +
+ + + +
+ +
+ + + + + + + + + + + + + +
+
+ = the last bucket's lower bound. + +This tool is similar to the `histo` command in Jellyfish, but the output includes metadata that makes the histogram easier to plot and interpret. + +----- + +**Input** + +- One or more **FASTA** or **FASTQ** files (gzipped accepted) +- Or a single pre-computed **Jellyfish hash** file + +----- + +**Outputs** + +1. **Histogram** (tabular) - tab-separated count/frequency table with metadata header lines prefixed with `#`. +2. **Plot** (PNG/PDF) - visual plot of the k-mer frequency histogram. + +----- + +**Tips** + +- The default k-mer length of **27** works well for most short-read sequencing data. +- For diploid or polyploid genomes, distinct peaks correspond to heterozygous and homozygous k-mers. +- If the hash size is too small, KAT will automatically double it (increasing runtime and memory). Increase it if you expect many unique k-mers. +- For multiple input files, provide different 5' trim values as comma-separated numbers (e.g. `5,10`). + ]]> + + +
\ No newline at end of file