Configure pipeline for WES execution on k8s cluster

- Add main.nf as WES entry point with PVC-based paths
- Update nextflow.config with k8s/k8s_gpu profiles (eureka-pvc)
- Update params.json defaults to /omic/eureka/digital-patients/ paths
- Remove stageInMode 'copy' from corto and vcf2prot for k8s compat
- Add reassemble.nf for one-time chunk reassembly on PVC
This commit is contained in:
2026-03-26 17:58:28 +01:00
parent 9e6a16c19b
commit 88627edc25
6 changed files with 371 additions and 325 deletions

View File

@@ -1,98 +1,47 @@
manifest {
name = 'digital patients'
name = 'digital-patients'
author = 'omic'
recurseSubmodules = true
homePage = 'https://gitlab.com/omic/next/registry/pipelines/digitalpatients'
homePage = 'https://trs-gitea.cluster.omic.ai/omic/digital-patients'
description = 'generative digital patients and multi-omics pipeline'
mainScript = 'main.nf'
nextflowVersion = '!>=21.04.3'
defaultBranch = 'master'
defaultBranch = 'main'
}
// docker {
// enabled = true
// temp = 'auto'
// }
// process {
// withLabel: 'gpu_process' {
// containerOptions = '--gpus all --rm'
// }
//
// withLabel: 'cpu_process' {
// containerOptions = '--rm'
// }
// }
def sharedPod = [
[env: 'NXF_DEBUG', value: '0'],
[label: 'omic-app', value: 'digitalpatients'],
[imagePullSecret: 'gitlab-registry-secret'],
[volumeClaim: 'avatar-new', mountPath: '/mnt/Avatar/'],
]
profiles {
docker {
docker.enabled = true
process {
executor = 'local'
withLabel: 'gpu_process' {
maxForks = 1 // Only one GPU task at a time on single GPU system
containerOptions = '--gpus all --rm'
}
withLabel: 'cpu_process' {
containerOptions = '--rm'
}
}
}
k8s {
process {
executor = 'k8s'
namespace = 'bioinformatics'
debug = true
pod = sharedPod
withLabel: 'gpu_process' {
pod = sharedPod + [
[nodeSelector: [gpu: 'yes', 'gpu-type': 'geforce-rtx-3090']]
]
}
standard {
docker {
enabled = true
temp = 'auto'
}
}
workDir = "/mnt/dreamdock-data/digital-patient-data/work"
k8s_gpu {
process {
executor = 'k8s'
pod = [[nodeSelector: 'nvidia.com/gpu.present=true']]
accelerator = [request: 1, type: 'nvidia.com/gpu']
}
docker {
enabled = true
}
k8s {
storageClaimName = 'eureka-pvc'
storageMountPath = '/omic/eureka'
}
}
k8s {
serviceAccount = 'nextflow-sa'
namespace = 'bioinformatics'
storageClaimName = 'dreamdock-data'
storageMountPath = '/mnt/dreamdock-data'
pullPolicy = 'IfNotPresent'
cleanup = true // delete pods after Ctrl+C or finished?
// cleanup = false // delete pods after Ctrl+C or finished?
// RUN AS DIFFERENT USERS
// securityContext = [fsGroup: 1000]
// securityContext = [
// runAsUser: 1000,
// fsGroup: 1000,
// runAsNonRoot: true
// ]
process {
executor = 'k8s'
}
docker {
enabled = true
}
k8s {
storageClaimName = 'eureka-pvc'
storageMountPath = '/omic/eureka'
}
}
// Use container image
// process.container = 'harbor.cluster.omic.ai/omic/faiss-indexer:latest'
}
}