Files
digital-trial/nextflow.config
Olamide Isreal 724c7d8987 Mount the dreamdock-data PVC in the k8s profile, and probe for it
The PVC holding chembl_36.db and protein_seq.zarr was never mounted into task
pods: WES's injected profile.config supplies no storage config (verified across
a full run's logs). Without /mnt/dreamdock-data, sqlite3 raises 'unable to open
database file' and every GET_FINAL_METABOLITES_STATIC task exits 1.

Restore storageClaimName/storageMountPath, and add a probe that reports what is
visible before opening sqlite so the failure names its own cause.
2026-07-28 11:04:46 +01:00

102 lines
3.1 KiB
Plaintext
Executable File

manifest {
name = 'Digital Trial'
author = 'omic'
recurseSubmodules = true
homePage = 'https://gitlab.com/omic/next/registry/tools/digital-trial.git'
description = 'Digital drug protein interactions'
mainScript = 'main.nf'
nextflowVersion = '!>=21.04.3'
defaultBranch = 'master'
}
docker {
enabled = true
temp = 'auto'
remove = true
}
process {
withLabel: 'gpu_process' {
containerOptions = '--gpus all --rm'
pod = [
[nodeSelector: [gpu: 'yes', 'gpu-type': 'geforce-rtx-3090']]
]
}
withLabel: 'cpu_process' {
containerOptions = '--rm'
}
}
profiles {
// Minimal k8s profile for WES. WES injects its own profile.config via -C, which
// supplies the executor, namespace, service account and workDir — so those are
// deliberately left out here to avoid conflicting with it.
//
// The storage block is NOT optional. WES's injected profile does not mount any
// PVC (verified: a full experiment run produced 468 KB of logs with zero
// references to dreamdock/storageClaimName/volumeClaim). Without it,
// /mnt/dreamdock-data does not exist inside task pods and every process that
// reads params.chembl_db or params.protein_zarr fails immediately —
// GET_FINAL_METABOLITES_STATIC dies with
// sqlite3.OperationalError: unable to open database file
// and exit status 1, on every task, regardless of input.
k8s {
process.executor = 'k8s'
k8s {
storageClaimName = 'dreamdock-data'
storageMountPath = '/mnt/dreamdock-data'
}
}
// Full standalone k8s profile for running this pipeline directly (not via WES),
// e.g. `nextflow run main.nf -profile k8s_standalone` from a pod on the cluster.
k8s_standalone {
process.executor = 'k8s'
process.namespace = 'bioinformatics'
process.debug = true
workDir = "/mnt/dreamdock-data/digital_trials/workdir"
executor {
queueSize = 0 // Increase to desired concurrency
// submitRateLimit = '1 sec' // Recommended to prevent K8s API timeouts
}
k8s {
serviceAccount = 'nextflow-sa'
namespace = 'bioinformatics'
storageClaimName = 'dreamdock-data'
storageMountPath = '/mnt/dreamdock-data'
pullPolicy = 'IfNotPresent'
cleanup = true // delete pods after Ctrl+C or finished?
imagePullSecrets = 'omic-registry-secret'
// RUN AS DIFFERENT USERS
// securityContext = [fsGroup: 1000]
// securityContext = [
// runAsUser: 1000,
// fsGroup: 1000,
// runAsNonRoot: true
// ]
}
// Pod-level customization
process.pod = [
[env: 'NXF_DEBUG', value: '0'],
[label: 'omic-app', value: 'dreamdock'],
[imagePullSecret: 'gitlab-registry-secret'],
// [nodeSelector: [gpu: 'yes', 'gpu-type': 'rtx-3090']],
[hostPath: '/mnt/ZINC-22/', mountPath: '/mnt/ZINC-22/']
// [volumeClaim: 'conplex-index-builder-data', mountPath: '/mnt/conplex-index/']
// [privileged: true],
]
}
}