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

MedSAM Segmentation Extension #2092

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

rasakereh
Copy link

This module implements MedSAMLite and several of its variant for universal 2D and 3D image segmentation.

New extension

PLUGIN DEVELOPER'S NOTE: The repository has been active for around a year and we have a large number of active users (only ~150 stars at github at the time of submission). As the URL is advertised at numerous places before we become aware of your naming convention, it is not safe for us to rename it. It is MedSAMSlicer instead of SlicerMedSAM. Hopefully it can be admitted the way it is.

  • Extension has a reasonable name (not too general, not too narrow, suggests what the extension is for)
  • Repository name is Slicer+ExtensionName
  • Repository is associated with 3d-slicer-extension GitHub topic so that it is listed here. To edit topics, click the settings icon in the right side of "About" section header and enter 3d-slicer-extension in "Topics" and click "Save changes". To learn more about topics, read https://help.github.com/en/articles/about-topics
  • Extension description summarizes in 1-2 sentences what the extension is usable (should be understandable for non-experts)
  • Any known related patents must be mentioned in the extension description.
  • LICENSE.txt is present in the repository root. MIT (https://choosealicense.com/licenses/mit/) or Apache (https://choosealicense.com/licenses/apache-2.0/) license is recommended. If source code license is more restrictive for users than MIT, BSD, Apache, or 3D Slicer license then the name of the used license must be mentioned in the extension description.
  • Extension URL and revision (scmurl, scmrevision) is correct, consider using a branch name (main, release, ...) instead of a specific git hash to avoid re-submitting pull request whenever the extension is updated
  • Extension icon URL is correct (do not use the icon's webpage but the raw data download URL that you get from the download button - it should look something like this: https://raw.githubusercontent.com/user/repo/main/SomeIcon.png)
  • Screenshot URLs (screenshoturls) are correct, contains at least one
  • Homepage URL points to valid webpage containing the following:
    • Extension name
    • Short description: 1-2 sentences, which summarizes what the extension is usable for
    • At least one nice, informative image, that illustrates what the extension can do. It may be a screenshot.
    • Description of contained modules: at one sentence for each module
    • Tutorial: step-by-step description of at least the most typical use case, include a few screenshots, provide download links to sample input data set
    • Publication: link to publication and/or to PubMed reference (if available)
    • License: We suggest you use a permissive license that includes patent and contribution clauses. This will help protect developers and ensure the code remains freely available. We suggest you use the Slicer License or the Apache 2.0. Always mention in your README file the license you have chosen. If you choose a different license, explain why to the extension maintainers. Depending on the license we may not be able to host your work. Read here to learn more about licenses.
    • Content of submitted json file is consistent with the top-level CMakeLists.txt file in the repository (dependencies, etc. are the same)
  • Hide unused features in the repository to reduce noise/irrelevant information:
    • Click Settings and in repository settings uncheck Wiki, Projects, and Discussions (if they are currently not used)
    • Click the settings icon next to About in the top-right corner of the repository main page and uncheck Releases and Packages (if they are currently not used)

This module implements MedSAMLite and several of its variant for universal 2D and 3D image segmentation.
@lassoan
Copy link
Contributor

lassoan commented Dec 12, 2024

Thanks a lot for your contribution!

This is very close to be ready to be added to the extensions index, there are just a few items to address:

  • Integrate Fix installation issues on Windows and improve GUI/logic separation bowang-lab/MedSAMSlicer#51. I've spent a lot of time with the module, first separating the GUI and logic a bit more cleanly (not perfect, but much better now), and trying to make the module obvious to use (without having to read the documentation), but still allowing adjusting all important options. I'm fairly confident that all the changes are for the better, except the last commit where I removed the optional precomputation of the embedding (always performing it when needed, instead of showing a popup to the user that he should precompute). I decided to do this, because with the popup that was displayed each time made the single segmentation mode so inconvenient that I concluded that probably nobody routinely used that.
  • You could consider adding a specific example in the instructions (https://github.com/bowang-lab/MedSAMSlicer?tab=readme-ov-file#usage) about which Sample Data set to use for first testing, and what structure to designate with the ROI. For example, MRBrainTumor1 / tumor; or CTLiver / kidney or liver?
  • Update the documentation based on the final implementation.

Extension repository name not starting with Slicer gives us some extra work, but it's OK, we can manage.

Finally, a quick question: is it possible to specify points to include or exclude? That could help fixing segmentations when the segmentation leaks out or incomplete.

@jamesobutler
Copy link
Contributor

PLUGIN DEVELOPER'S NOTE: The repository has been active for around a year and we have a large number of active users (only ~150 stars at github at the time of submission). As the URL is advertised at numerous places before we become aware of your naming convention, it is not safe for us to rename it. It is MedSAMSlicer instead of SlicerMedSAM. Hopefully it can be admitted the way it is.

@rasakereh Changing the repository name wouldn't cause you to lose stars on GitHub. GitHub will actually automatically redirect from say https://github.com/bowang-lab/MedSAMSlicer to https://github.com/bowang-lab/SlicerMedSAM so there wouldn't be concern of the published URL suddenly going broken.
https://docs.github.com/en/repositories/creating-and-managing-repositories/renaming-a-repository

@lassoan lassoan mentioned this pull request Dec 13, 2024
20 tasks
@lassoan
Copy link
Contributor

lassoan commented Dec 16, 2024

@rasakereh Let us know if you want to proceed with merging the pull request and addressing the few remaining minor points. We could make the extension available by pointing the Extensions Index to my fork (that contains the required fixes), but it would be nicer if we could use your repository.

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

Successfully merging this pull request may close these issues.

3 participants