// Nextflow configuration file manifest { description = 'Synthea Module Generator Pipeline' } // Load parameters from params.json def paramsJson = new File("$baseDir/params.json").text def paramsData = new groovy.json.JsonSlurper().parseText(paramsJson) // Merge with defaults params { disease_name = paramsData.disease_name modules_dir = paramsData.modules_dir ?: "/Users/richman/workspace/synthea-alldiseases/modules" output_dir = paramsData.output_dir ?: "output" population = paramsData.population ?: 100 gender = paramsData.gender ?: 0.5 min_age = paramsData.min_age ?: 0 max_age = paramsData.max_age ?: 90 seed = paramsData.seed generate_patients = paramsData.generate_patients ?: true publish_dir = paramsData.publish_dir ?: "published_output" // Additional params max_cost = 5.0 timeout = 300 anthropic_api_key = null batch_size = 1 help = false } docker { enabled = true runOptions = "-v $baseDir/$params.modules_dir:/app/src/main/resources/modules -v $baseDir/src/main/python:/app/src/main/python -v $baseDir/src/main/resources:/app/src/main/resources -v $baseDir/.env:/app/.env" } process { container = 'synthea-module-generator' containerOptions = "-e MODULES_DIR=/app/src/main/resources/modules -e PYTHONPATH=/app -e ANTHROPIC_API_KEY=${params.anthropic_api_key}" } trace { enabled = true overwrite = true file = "$baseDir/trace.txt" } profiles { standard { process.executor = 'local' } }