nextflow.enable.dsl=2 // Digital-trials pipeline WITHOUT biotransformer. // Metabolites are supplied externally (e.g. the consolidated final-metabolites // dir from prior gabe runs). Otherwise identical to test.nf. // // New required param vs test.nf: // params.metabolites - dir of `_out.txt` files matching ligand `.csv` // Dropped (no biotransformer/chembl): // container_biotransformer, container_chembl, bt_* knobs, chembl_db, mode params.container_conplex = 'harbor.cluster.omic.ai/omic/digitaltrials/conplex_dig_pat@sha256:7a3523dba6fa01e3adc9cb79af5e1dcbd2a19d9f92e37cd10df462766078ede3' params.container_tissue = 'harbor.cluster.omic.ai/omic/digitaltrials/tissue:1.0.6' params.container_preprocess = 'harbor.cluster.omic.ai/omic/metabolite-screen@sha256:872c395e21abd4afea4185b269a8218da4737bd7adbb2cbe2bdf9a1b9c70db17' params.container_mass_screen = 'harbor.cluster.omic.ai/omic/metabolite-screen:adaptive-1.1.1' params.containerOptions = '--rm' params.project_name = 'test_no_bt' //CONPLEX params.keep_enst = 'false' params.conplex_initial_memory = 5 params.conplex_growth_memory = 15 params.conplex_max_retries = 1 params.conplex_fail_action = 'ignore' params.threshold = 0.65 params.protein_network_threshold = 0.65 // NETWORK_ENRICHMENT (string-db) params.string_max_forks = 5 params.string_max_retries = 1 params.string_fail_action = 'ignore' params.string_initial_memory = 1 params.string_growth_memory = 2 // TISSUE_DISTRIBUTION + BIO_METRICS params.tissue_initial_memory = 5 params.tissue_growth_memory = 5 params.tissue_max_retries = 2 params.tissue_fail_action = 'ignore' params.bio_initial_memory = 5 params.bio_growth_memory = 5 params.bio_max_retries = 2 params.bio_fail_action = 'ignore' // ========================================= FILEPATHS =================================================== params.outdir = '/mnt/omic-next-apis/wes/digital_trials/' params.ligands = '/mnt/dreamdock-data/digital_trials/input/test_multitaget' params.metabolites = '/mnt/dreamdock-data/digital_trials/input/test_metabolites' params.mutated_protein_fasta = '/mnt/dreamdock-data/digital_trials/input/blank' params.protein_zarr = '/mnt/dreamdock-data/digital_trials/zarr/protein_seq.zarr' // ===================================================================================================================================== include { CONPLEX as CONPLEX_ALL } from './main_conplex.nf' include { PREPROCESS_PROTEIN } from './main_conplex.nf' include { NETWORK_ENRICHMENT } from './main_conplex.nf' include { TISSUE_DISTRIBUTION } from './main_tissue.nf' include { BIO_METRICS } from './main_tissue.nf' workflow { lig_ch = Channel.fromPath("${params.ligands}/*.csv") metabolite_ch = Channel.fromPath("${params.metabolites}/*_out.txt") protein_fasta = Channel .fromPath("${params.mutated_protein_fasta}/*.fasta") .collect() protein_zarr = PREPROCESS_PROTEIN(protein_fasta).collect().map { it[0] } pre_protein_zarr = Channel.fromPath(params.protein_zarr) merged_zarr = protein_zarr.concat(pre_protein_zarr).collect() lig_with_id = lig_ch.map { csv -> [csv.simpleName, csv] } metabolite_with_id = metabolite_ch.map { txt -> def name = txt.simpleName.replaceAll(/_out$/, '') [name, txt] } matched_ch = lig_with_id.join(metabolite_with_id) CONPLEX_ALL(matched_ch, merged_zarr) conplex_interactions_ch = CONPLEX_ALL.out.map { id, drug, interactions -> interactions } NETWORK_ENRICHMENT(conplex_interactions_ch) TISSUE_DISTRIBUTION(conplex_interactions_ch) biometric_ch = matched_ch.join(CONPLEX_ALL.out) BIO_METRICS(biometric_ch) }