From e18b417ae822fb9913e99711b38fa76695886e38 Mon Sep 17 00:00:00 2001 From: Brandon Duane Walker Date: Mon, 13 May 2024 14:54:00 -0400 Subject: [PATCH] elm --- docking/elm.wic | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 docking/elm.wic diff --git a/docking/elm.wic b/docking/elm.wic new file mode 100644 index 00000000..fa64110b --- /dev/null +++ b/docking/elm.wic @@ -0,0 +1,83 @@ +steps: + download_pdb.wic: + in: + #pdb_id: !ii 1r4l # ACE2 + #pdb_id: !ii 1ntp # trypsin + pdb_id: !ii 1uao # chignolin (for speed) + setup_pdb.wic: + in: + input_pdb_path: !* protein.pdb + pdb_path: !ii pdb.pdbqt + box_path: !ii box.pdb + box_buffer: !ii 20 # Angstroms + water_type: !ii spce + forcefield: !ii amber99sb-ildn + out: + - pdb_path: !& pdb.pdbqt + - box_path: !& box.pdb + download_ligand_database: + in: + database: !ii /NCIOpen.sdf + extract_molecules_sdf: + in: + first_molecule: !ii 1 + last_molecule: !ii 1 + # out: + # - output_sdf_path: !& ligands.sdf +# NOTE: We need to extract the models first, before splitting them into separate files. +# If we try to do both simultaneously, obabel ignores -f and -l and outputs ALL models. + split_sdf: +# in: +# input_path: !* ligands.sdf + out: + - output_sdf_path: !& ligand.sdf # Array type + docking_stability.wic: + scatter: [sdf_path] + in: + # NOTE: sdf_path is currently only necessary + # due to a limitation of the inlineing implementation. + sdf_path: !* ligand.sdf +# NOTE: Do not add scattering arguments here, add them to the wic: metadata annotations. +# (We want this information at the call site, not inserted within the subworkflow.) + +wic: + steps: + (1, download_pdb.wic): + wic: + inlineable: False + (2, setup_pdb.wic): + wic: + inlineable: True + (4, extract_molecules_sdf): + wic: + graphviz: + label: Choose Ligands from\nCheminformatics Database + (5, split_sdf): + wic: + graphviz: + label: Split Ligands into\nSeparate Files + (6, docking_stability.wic): + wic: + # Scattering changes the input/output types and thus creates a barrier to inlineing. + inlineable: False + +# Beware 0 vs 1 -based indexing! JavaScript (and thus CWL) uses 0-based indices. +# If you accidentally use 1-based indices, the last array access will be out of +# bounds and return null, which causes the following nasty error message: + +# Cannot make job: Expression evaluation error: +# Expecting value: line 1 column 1 (char 0) +# script was: +# ... +# "index": 2 +# }; +# var self = [ +# ... +# ]; +# var runtime = { +# "tmpdir": null, +# "outdir": null +# }; +# (function(){return ((self[inputs.__index__]));})() +# stdout was: 'undefined' +# stderr was: ''