new module: cellpheno/nis#12179
Conversation
| // It has no Conda/Bioconda package and requires a CUDA runtime, so it is | ||
| // distributed only as a dedicated GPU container image (cf. the parabricks and | ||
| // numorph/3dunet modules, which likewise ship a vendor GPU image with no conda). | ||
| container "quay.io/wzq10101/cellpheno-nis:1.0.0" |
There was a problem hiding this comment.
do you have the dockerfile for this image?
If so, please add it here and request nf-core to upload to their registry, similar to how numorhp did it https://github.com/nf-core/modules/blob/master/modules/nf-core/numorph/3dunet/main.nf
mashehu
left a comment
There was a problem hiding this comment.
for modules that don't support conda, please add them to the .github/skip_nf_test.json file
…f-test Address review (@mashehu): - Add a self-contained Dockerfile that clones and builds the C++/LibTorch NIS binary from source (analogous to numorph/3dunet), plus a README, so nf-core can build and upload the image to quay.io/nf-core/cellpheno-nis. - Point the container at quay.io/nf-core/cellpheno-nis:1.0.0. - Add modules/nf-core/cellpheno/nis to .github/skip_nf_test.json (no conda support).
|
Thanks @mashehu! Addressed both points:
|
|
Status after the latest push:
The Happy to coordinate the test-datasets + Zenodo follow-up, or open the module without the |
The nf-core/modules submission (PR nf-core/modules#12179) publishes the NIS image to ghcr.io/chrisa142857/cellpheno-nis:1.0.0 (quay.io/nf-core push access pending), so point the module's container line there. PR_BODY.md holds the submission description. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BjA3vZUv5qkJdZnmjpRpiY
- Dockerfile: build against CUDA 12.1 / LibTorch 2.5.1+cu121 (was 12.8 / 2.7.0+cu128). No custom .cu kernels, so LibTorch's fat binary covers sm_50..sm_90; this lowers the NVIDIA driver floor to >=530 and matches the postproc image. Use the non-cuDNN CUDA base (LibTorch bundles cuDNN). - tests: fetch the (device-independent) TorchScript models from a stable Zenodo archive (10.5281/zenodo.21284682) instead of test-datasets, which only holds the small tile now. Stub test uses dummy dirs (no downloads).
|
Update — the test-data follow-up is now complete, so this should be ready for another look:
Recap of your two earlier asks, both done: added the self-contained Could you please, when you have a moment: (1) merge test-datasets#2136, and (2) trigger the nf-core build/upload of the Dockerfile to |
There was a problem hiding this comment.
since you are the author of the upstream software, could you not make a release and publish it on bioconda? Just building from main is not good practice for reproducibility
Build the NIS binary from the tagged v1.0.0 release instead of the moving main branch, so the container is reproducible (per review feedback).
|
Good point on reproducibility — agreed, building from
Would you be OK merging with the pinned-release container now (reproducible via |
Draft a bioconda recipe (conda-recipe/) to package the NIS C++/LibTorch/CUDA binary, so the nf-core module can consume a versioned conda package / BioContainer instead of building from source (per nf-core/modules#12179 review). Validated locally against conda-forge libtorch 2.12 + libopencv 5.0: all sources compile cleanly (no LibTorch API drift). Recipe declares the CUDA compiler and nccl (libtorch_cuda references NCCL symbols) and installs the binary as `cellpheno-nis` (upstream `main` must not go on the global PATH). cpp/CMakeLists.txt: bump cmake_minimum_required 3.0 -> 3.18 (CMake 4 removed <3.5 compatibility) and drop the hardcoded personal TORCH_LIBRARIES path (find_package(Torch) sets it; located via CMAKE_PREFIX_PATH). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BjA3vZUv5qkJdZnmjpRpiY
|
Bioconda recipe submitted: bioconda/bioconda-recipes#67064. It builds the C++/LibTorch/CUDA binary against conda's |
Closes #11311
Description
cellpheno/nisruns whole-brain 3D nuclei instance segmentation on a single lightsheetmicroscopy tile: a 2D U-Net per slice, 2D→3D flow conversion, flow-following to
obtain instances per depth-chunk, and GNN gap-stitching across chunks. It wraps
the C++/LibTorch CellPheno NIS executable from
https://github.com/Chrisa142857/Lightsheet_microscopy_image_3D_nuclei_instance_segmentation.
This is a GPU, container-only module (no Conda package), following the
established
parabricks/*andnumorph/3dunetpattern: a single vendor container,no
environment.yml, an in-script guard that errors under-profile conda/mamba,label 'process_gpu', and versions via thetopic: versions+evalmechanism.PR checklist
topic: versions.label(process_high+process_gpu).nf-core modules test cellpheno/nis --profile dockernf-core modules test cellpheno/nis --profile singularitynf-core modules test cellpheno/nis --profile condaNotes for reviewers
parabricks/*.process_gpuemits a non-standard-label warning (as it does for every GPUmodule); paired with
process_high.eval("cat /usr/local/share/cellpheno-nis/VERSION")because the binaryhas no
--version; the Dockerfile writes that file from the sameARGas theimage tag to keep them in lockstep.
quay.io/wzq10101/cellpheno-nis:1.0.0(my personal Quay namespace — I'm a newnf-core member and don't have
quay.io/nf-corepush access yet).nf-core modules lintis clean (42 passed, 0 failed) under the defaultquay.ioregistry. Happy tohave the team re-host it under
quay.io/nf-core/cellpheno-nisduring review — I'llupdate the
containerline to match.