Digital Trials pipeline configured for WES

Source-only snapshot of the cluster branch for WES execution. Large
reference files (HPA/MANE/ensemble FASTA, model weights, ~597 MB) are
omitted: they are baked into the container images at build time and
mounted from the dreamdock-data PVC at runtime, and exceed the Gitea
request size limit.

Pipeline entry point is main.nf, which orchestrates the biotransformer,
conplex and tissue modules as a single workflow. Ligand inputs are read
from the eureka workspace; protein_zarr and chembl_db come from the
dreamdock-data PVC.
This commit is contained in:
Olamide Isreal
2026-07-27 21:59:52 +01:00
commit 9e75f44f1a
86 changed files with 10142 additions and 0 deletions

90
nextflow.config Executable file
View File

@@ -0,0 +1,90 @@
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: WES injects its own profile.config via -C, which supplies the
// executor, namespace, service account, workDir and PVC mounts. Anything set here that
// WES also sets is either overridden or conflicts, so keep this deliberately sparse.
//
// NOTE: the dreamdock-data PVC must be mounted by the WES-side profile for
// params.protein_zarr and params.chembl_db (/mnt/dreamdock-data/...) to resolve.
k8s {
process.executor = 'k8s'
}
// 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],
]
}
}