Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Galaxy project as Community partner #105

Open
B0r1sD opened this issue Nov 7, 2024 · 2 comments
Open

The Galaxy project as Community partner #105

B0r1sD opened this issue Nov 7, 2024 · 2 comments

Comments

@B0r1sD
Copy link

B0r1sD commented Nov 7, 2024

Hey there Bioimage zookeepers!

We would like to explore the possibility into making the Galaxy project an official community partner at the BioImage Model Zoo. This proposal originates from the Image Analysis Community that makes use of your service, with the Galaxy tool wrapper Process image using a BioImage.IO model which uses Galaxy's computational resources to analyze images with models from your database.

We would like to strengthen this connection, so it's easier for Galaxy users to fetch data from BMZ, and preferably also easier for users to contribute models/data back to you.

  1. Description of your software, organization, company or team.

Galaxy is a free, open-source system for analyzing data, authoring workflows, training and education, publishing tools, managing infrastructure, and more.

  1. Description of the resources that you plan to contribute. Please also include the URL to your project repo.

The Galaxy users interested in this tool could contribute their model/image creations after this connection has been implemented. On our side, we would create a tool that gets data from BMZ and redirects the user back to history with the data in their history, ready to run analyses.
Examples where such connection already exists are UCSC Main tool, EBI SRA,... which you can find in the tools tab of https://usegalaxy.eu, https://imaging.usegalaxy.eu/,... as tools are maintained in a seperate repository such as https://github.com/galaxyproject/tools-iuc.

Main Galaxy codebase: https://github.com/galaxyproject/galaxy
However the imaging subdomain is part of the European Galaxy instance, not the .org one.

  1. Description of future plans on how your project will be maintained.

Galaxy has an active community with a bunch of contributors. @wm75 is the expert on these data source implementations and can help with the technical details. The Image Analysis Community will be on top of this connection and internally distribute maintenance.

If this request makes sense to your team, we can discuss further how this could be implemented technically on both sides. Let us know if you need more information, and I'll be happy to provide it. Thanks for the consideration!

@FynnBe FynnBe transferred this issue from bioimage-io/collection-bioimage-io Nov 8, 2024
@FynnBe
Copy link
Member

FynnBe commented Nov 12, 2024

Hi @B0r1sD !

Thank you for your request! We can proceed just like in #104.
I've been told to encourage prospective community partner to contribute their compatibility check script before fully joining as a community partner (with icon on the website, etc.), as we aim to have a high proportion of the community partners to have compatibility checks set up.

So here is the full checklist details:

  • add your info to the bioimageio_collection_config.json analog to this example
  • compatibility check script, example
  • compatibility check workflow (example)

Happy to help along the way and welcome onboard!

@FynnBe
Copy link
Member

FynnBe commented Nov 12, 2024

Small update:
I have refactored the ilastik example to provide script_utils.check_tool_compatibility:

def check_tool_compatibility(
tool_name: str,
tool_version: str,
*,
all_version_path: Path,
output_folder: Path,
check_tool_compatibility_impl: Callable[
[str, str], Union[CompatibilityReportDict, "CompatibilityReport"]
],
applicable_types: Set[str],
):
"""helper to implement tool compatibility checks
Args:
tool_name: name of the tool (without version), e.g. "ilastik"
tool_version: version of the tool, e.g. "1.4"
all_versions_path: Path to the `all_versions.json` file.
output_folder: Folder to write compatibility reports to.
check_tool_compatibility_impl:
Function accepting two positional arguments:
URL to an rdf.yaml, SHA-256 of that rdf.yaml.
And returning a compatibility report.
applicable_types: Set of resource types
**check_tool_compatibility_impl** is applicable to.
"""

This simplifies the compatibility script needed from a partner, e.g. ilastik example, so now almost only an analog to

def check_compatibility_ilastik_impl(
rdf_url: str,
sha256: str,
) -> CompatibilityReportDict:
"""Create a `CompatibilityReport` for a resource description.
Args:
rdf_url: URL to the rdf.yaml file
sha256: SHA-256 value of **rdf_url** content
"""

is needed to implement the compatibility check.

Hope this makes things easier now and more maintainable in the future!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants