Files
chai-lab/main.nf
Olamide Isreal 9ffba5cb2c Production config: disable MSA, 1 sample, errorStrategy ignore
- Disable MSA to reduce GPU memory for large complexes
- Default to 1 diffusion sample to fit within GPU VRAM
- Add errorStrategy 'ignore' so pipeline completes even if
  individual tasks fail (standard bioinformatics pattern)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 20:29:24 +01:00

47 lines
1.1 KiB
Plaintext
Executable File

#!/usr/bin/env nextflow
nextflow.enable.dsl=2
params.input_dir = 's3://omic/eureka/chai1/input'
params.outdir = 's3://omic/eureka/chai1/output'
params.use_msa = false
params.msa_server = 'https://api.colabfold.com'
params.num_samples = 1
process CHAI1 {
container 'harbor.cluster.omic.ai/omic/chai1:v3'
publishDir params.outdir, mode: 'copy'
stageInMode 'copy'
maxForks 1
errorStrategy 'ignore'
input:
path fasta
output:
path "${fasta.simpleName.replace('.fasta', '')}", emit: output_dir
script:
"""
OUTPUT_DIR=\$(basename ${fasta} .fasta)
mkdir -p \$OUTPUT_DIR
# Construct MSA parameters
MSA_OPTIONS=""
if ${params.use_msa}; then
MSA_OPTIONS="--use-msa-server --msa-server-url ${params.msa_server}"
fi
# Run CHAI1
chai fold \\
\$MSA_OPTIONS \\
--num-diffn-samples ${params.num_samples} \\
${fasta} \\
\$OUTPUT_DIR
"""
}
workflow {
fasta_ch = Channel.fromPath(params.input_dir + '/*.fasta')
CHAI1(fasta_ch)
}