Conversation
- Add GPU support for DEobs and DErand processes with --use-gpu flag - Enable crash recovery with -resume flag and publishDir directives - Configure work/ as working directory for all processes - Enable comprehensive execution reports (report.html, timeline.html, trace.txt, dag.svg) - Update container to igvf/pyspade:pyspade_0.1.7 from Docker Hub - Add .gitignore for work/, logs, and temporary files - Add OPTIMIZATION_NOTES.md with usage instructions Co-authored-by: mnzima <23222682+mnzima@users.noreply.github.com>
- Add GPU_IMPLEMENTATION_NOTES.md with troubleshooting guide - Update README.md with optimization information and execution reports - Document GPU flag requirements and container compatibility - Include testing recommendations and rollback instructions Co-authored-by: mnzima <23222682+mnzima@users.noreply.github.com>
|
@copilot to be clear, the GPU options on my SLURM system are: GPU, GPUp40, GPUp100 |
…100) - Update queue configuration in main.nf for DEobs, DEobsFDR, and DErand processes - Update documentation in OPTIMIZATION_NOTES.md and GPU_IMPLEMENTATION_NOTES.md - Add GPUp40 and GPUp100 partition options to GPU queue lists - Update testing instructions to include all GPU partition options Co-authored-by: mnzima <23222682+mnzima@users.noreply.github.com>
Updated the GPU queue configuration to match your SLURM partitions. The three GPU-enabled processes (DEobs, DEobsFDR, and DErand) now use: queue 'GPU,GPUp40,GPUp100,256GB,256GBv1,384GB,512GB'This prioritizes your GPU partitions (GPU, GPUp40, GPUp100) and falls back to memory-based queues if GPUs are unavailable. Documentation updated in OPTIMIZATION_NOTES.md and GPU_IMPLEMENTATION_NOTES.md. Commit: aacc85a |
|
@copilot create a container image with the updated codebase |
- Add Dockerfile for building custom nf-pySpade container - Add Singularity.def for HPC environments - Add build_container.sh automated build script - Add CONTAINER_BUILD.md comprehensive documentation - Add .dockerignore to optimize build context - Add GitHub Actions workflow template for CI/CD - Update README.md with container build instructions - Container includes helper scripts at /opt/nf-pyspade/script/ Co-authored-by: mnzima <23222682+mnzima@users.noreply.github.com>
Created container build infrastructure for nf-pySpade. You can now build custom images with the helper scripts included: Quick Build: ./build_container.sh docker # Docker image
./build_container.sh singularity # Singularity image
./build_container.sh both # Both formatsFiles Added:
The container includes all helper scripts at See CONTAINER_BUILD.md for detailed instructions on building, testing, and deploying to Docker Hub or HPC systems. Commit: 36737bc |
|
@copilot manually build the container here in github so that it can be pulled manually |
I cannot directly build and push containers from this environment, but I can set up GitHub Actions to automatically build and publish the container to GitHub Container Registry (GHCR). Would you like me to:
Alternatively, you can manually build and push using the existing files: docker build -t ghcr.io/hon-lab/nf-pyspade:0.1.7-nf .
docker push ghcr.io/hon-lab/nf-pyspade:0.1.7-nfLet me know which approach you prefer, or if you'd like me to activate the automated GitHub Actions workflow. |
|
@copilot for the container code, create a version that can be built with podman since i do not have root access |
- Update build_container.sh to auto-detect and support Podman - Add explicit 'podman' build option for rootless environments - Update CONTAINER_BUILD.md with comprehensive Podman documentation - Add rootless build workflows and HPC deployment strategies - Include Podman installation instructions and troubleshooting - Update README.md to highlight Podman for rootless builds - Podman fully compatible with Dockerfiles, no daemon or root required - Ideal for HPC systems without Docker access Co-authored-by: mnzima <23222682+mnzima@users.noreply.github.com>
Added comprehensive Podman support for rootless container builds (no root access required). Quick Start: # Build with Podman (rootless)
./build_container.sh podman
# Or auto-detect (prefers Podman)
./build_container.sh dockerManual Build: podman build -t nf-pyspade:0.1.7-nf .
podman run --rm nf-pyspade:0.1.7-nf pySpade --helpKey Features:
Transfer to HPC: # Save as tar
podman save -o nf-pyspade_0.1.7-nf.tar nf-pyspade:0.1.7-nf
# On HPC: Load or convert to Singularity
podman load -i nf-pyspade_0.1.7-nf.tar
# OR
singularity build nf-pyspade.sif docker-archive://nf-pyspade_0.1.7-nf.tarSee CONTAINER_BUILD.md for complete documentation including installation, HPC workflows, and troubleshooting. Commit: b173a96 |
Optimize the nf-pySpade pipeline with GPU acceleration for hypergeometric tests in DEobs/DErand processes, enable automatic crash recovery, add comprehensive execution reporting for SLURM deployments, and provide container build infrastructure with rootless Podman support for custom deployments.
Changes
GPU Acceleration
--gres=gpu:1resource allocation, and--use-gpuflagCUDA_VISIBLE_DEVICESfor GPU visibilityGPU,GPUp40,GPUp100,256GB,256GBv1,384GB,512GB(prioritizes GPU partitions, falls back to memory-based queues if unavailable)process pySpadeDEobs { queue 'GPU,GPUp40,GPUp100,256GB,256GBv1,384GB,512GB' clusterOptions = '--gres=gpu:1' script: """ export CUDA_VISIBLE_DEVICES=\${CUDA_VISIBLE_DEVICES:-0} pySpade DEobs ... --use-gpu """ }Crash Recovery
resume = truein config,-resumeflag in execution scriptpublishDiron all 14 processes withmode: 'copy', overwrite: falseExecution Metrics & Reporting
Infrastructure
./workfor all Nextflow caching and stagingdocker://igvf/pyspade:pyspade_0.1.7with auto-pull (60min timeout).gitignore: Excludes work/, logs, reports, container cacheContainer Build Infrastructure
/opt/nf-pyspade/script/Build custom containers with:
The custom container includes all helper scripts (calculate_FDR.py, filtered_local_df.py, find_DErand_range.py, randomized_sgrna.py) bundled at
/opt/nf-pyspade/script/with scripts added to PATH for easy access.Rootless Container Builds with Podman
Build rootless with Podman:
Documentation
Notes
--use-gpuflag. If unsupported, remove flag from three processes—GPU resources still allocated for parallelism. See GPU_IMPLEMENTATION_NOTES.md for removal instructions.Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.