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

container for micro-sam #588

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Conversation

CaroAMN
Copy link

@CaroAMN CaroAMN commented Nov 6, 2024

Submitting a Container

Hi we would like to submit a container for the tool micro-sam which we would like to use in several nf-core pipelines.
Micro-sam is already in conda-forge but we cannot use this version of micro-sam because it cannot be run in a container. It contains some dependencies like napari that broke the container. Therefore we provide a conda.yml file with the adjusted dependencies.

We cannot change the conda package because our use case is more specific ( nf-core pipelines) and the tool would lose many functionalities for which it was designed but our pipelines don't need.

I opened the PR to ask if adding the container would be possible given this situation.

Check BioContainers' Dockerfile specifications

Checklist

  1. Misc
  • My tool doesn't exist in BioConda
  • The image can be built
  1. Metadata
  • LABEL base_image
  • LABEL version
  • LABEL software.version
  • LABEL about.summary
  • LABEL about.home
  • LABEL about.license
  • MAINTAINER
  1. Extra (optionals)
  • I have written tests in test-cmds.txt
  • LABEL extra.identifier
  • LABEL about.documentation
  • LABEL about.license_file
  • LABEL about.tags

Check BioContainers' Dockerfile metadata

@mboudet
Copy link
Contributor

mboudet commented Nov 7, 2024

Hi,

But we cannot use this version of micro-sam because it cannot be run in a container. It contains some dependencies like napari that broke the container.

Do you have more information on what doesn't work in the container, to make sure it will not occur here?

You should probably fix the version of the tool when pulling from github. Not really fond of the conda install, since deps will not be fixed, meaning rebuilding the container will not be really reproductible.
Any reason not to use the conda.yml provided in the git directly?

@biocontainers-bot
Copy link
Collaborator

about.license field is not in spdx list: https://spdx.org/licenses/, if it is a typo error, please fix it. If this is not a standard license, please specify Custom License and use about.license_file label to specify license location (in container or url).

@biocontainers-bot
Copy link
Collaborator

No biotools label defined, please check if tool is not already defined in biotools (https://bio.tools) and add extra.identifiers.biotools label if it exists. If it is not defined, you can ignore this comment.

@biocontainers-bot
Copy link
Collaborator

No test-cmds.txt (test file) present, skipping tests

@CaroAMN
Copy link
Author

CaroAMN commented Nov 8, 2024

Hi,

But we cannot use this version of micro-sam because it cannot be run in a container. It contains some dependencies like napari that broke the container.

Do you have more information on what doesn't work in the container, to make sure it will not occur here?

We could not build the container when some packages like napari were installed. They were removed from the conda.yml that we provided here. With this conda env i could build and run the container. We think it's because those packages open a GUI. But for the purpose of automatic segmentation we don't need the GUI anyway.

You should probably fix the version of the tool when pulling from github. Not really fond of the conda install, since deps will not be fixed, meaning rebuilding the container will not be really reproducible. Any reason not to use the conda.yml provided in the git directly?

I fix this regarding the version. The conda.yml provided by the repo has the dependencies that cause the container to break while installing. The conda.yml that i included in the PR is the adjusted conda env and only excludes the dependencies that cause a problem while building the container.

But yes i see the problem with rebuilding the container. Right now i don't have a better idea how to approach the problem.
But open for any suggestions :)

@mboudet
Copy link
Contributor

mboudet commented Nov 8, 2024

Ok. It's not that big of a deal to be honest.

Maybe storing something like the result of 'conda env export' after a successful install, and using it in the Dockerfile?

@CaroAMN
Copy link
Author

CaroAMN commented Dec 6, 2024

i defined a specific commit that includes all changes that we need for the cli when in stalling the tool, which should fix the reproducibility issue. The conda.yml is also included in the directory and i was able to build and run the container.

Comment on lines +38 to +41
RUN git clone https://github.com/computational-cell-analytics/micro-sam.git \
&& cd micro-sam \
&& git checkout 9b055c3 \
&& pip install -e .
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can do this in a single line by installing directly from git using pip

pip install git+https://XXXXX

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Would avoid keeping the git in the image)

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

Successfully merging this pull request may close these issues.

3 participants