This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Source incompatible with Sink

csp.cwl

#!/usr/bin/env cwl-runner

cwlVersion: v1.0
class: Workflow

requirements:
  - class: ScatterFeatureRequirement
  - class: SubworkflowFeatureRequirement

inputs:
  pdb_id_array: string[]
  pdb_filename_array: string[]
  pdbH_file_array: string[]
  CS_path_array: string[]
  CS_file_array: string[]
  temp_file_array: string[]
  chain: string
  py_buildPDB: File
  cfg_file: File
  add_hydrogen_script: File
  shift_predict_script: File
  pH_value: float
  temp: float
  outputFormat: string
  cs_predictor: string
  task_insertCS: string
  task_buildPDB: string
outputs:
  output_files:
    type: File[]
    outputSource: subworkflow1/output_files

steps:
  subworkflow1:
    in:
      pdb_id: pdb_id_array
      pdb_filename: pdb_filename_array
      pdbH_file: pdbH_file_array
      CS_path: CS_path_array
      CS_file: CS_file_array
      temp_file: temp_file_array
    scatter: [pdb_id, pdb_filename, pdbH_file, CS_path, CS_file, temp_file]
    out: [output_files]
    run:
      class: Workflow
      requirements:
        - class: ScatterFeatureRequirement
      inputs:
        pdb_id: string
        pdb_filename: string
        chain: string
        py_buildPDB: File
        cfg_file: File
        temp_file: string
        pdbH_file: string
        add_hydrogen_script: File
        CS_path: string
        CS_file: string
        shift_predict_script: File
        pH_value: float
        temp: float
        outputFormat: string
        cs_predictor: string
        task_insertCS: string
        task_buildPDB: string
      outputs:
        output_files:
          type: File[]
          outputSource: [create_pdbFile/pdbFile, protonate/pdbH_File, predictChemShift/CS_file]
      steps:
        create_pdbFile:
          run: buildPDB.cwl
          scatter: [pdbID, pdbFilename]
          scatterMethod: dotproduct
          in:
            pdbID: pdb_id
            pdbFilename: pdb_filename
            Chain: chain
            cfgFile: cfg_file
            pyBuildPDB: py_buildPDB
            taskBuildPDB: task_buildPDB
          out: [pdbFile]
        protonate:
          run: addHydrogen.cwl
          scatter: [tempFile, protonatedPDB]
          scatterMethod: dotproduct
          in:
            addHydrogen_script: add_hydrogen_script
            pdb_to_addHydrogens: create_pdbFile/pdbFile
            protonatedPDB: pdbH_file
            tempFile: temp_file
          out: [pdbH_File]
        predictChemShift:
          run: shiftPredict.cwl
          scatter: [chemical_shiftDir, chemical_shiftName]
          scatterMethod: dotproduct
          in:
            shiftPredict_script: shift_predict_script
            protonated_pdb: protonate/pdbH_File
            chemical_shiftDir: CS_path
            chemical_shiftName: CS_file
            format: outputFormat
            pH: pH_value
            temperature: temp
          out: [CS_file]
        populateDatabase:
          run: populate_database.cwl
          scatter: [pdbID]
          in:
            pyInsertCS: py_buildPDB
            pH: pH_value
            temperature: temp
            csPredictor: cs_predictor
            chemicalShifts: predictChemShift/CS_file
            Chain: chain
            pdbID: pdb_id
            cfgFile: cfg_file
            taskInsertCS: task_insertCS
          out: []

csp.yml

pdb_id: [2TRX, 1UB4]
pdb_filename: [2TRX.pdb, 1UB4.pdb]
chain: A
py_buildPDB:
  class: File
  path: /local/PycharmProjects/CSPworkflow/code/usage/resources/buildPDBfile.py
cfg_file:
  class: File
  path: /local/PycharmProjects/CSPworkflow/code/usage/configs/query.cfg
pdbH_file: [2TRX_protonated.pdb, 1UB4_protonated.pdb]
temp_file: [/local/PycharmProjects/CSPworkflow/code/usage/temp.pdb, /local/PycharmProjects/CSPworkflow/code/usage/temp2.pdb]
add_hydrogen_script:
  class: File
  path: /local/PycharmProjects/CSPworkflow/code/usage/addHydrogen.sh
CS_path: [/local/PycharmProjects/CSPworkflow/code/usage/2TRX_chemicalShift.csv, /local/PycharmProjects/CSPworkflow/code/usage/1UB4_chemicalShift.csv]
CS_file: [2TRX_chemicalShift2.csv, 1UB4_chemicalShift2.csv]
outputFormat: CSV
pH_value: 7.0
temp: 298.0
shift_predict_script:
  class: File
  path: /local/PycharmProjects/CSPworkflow/code/usage/shiftPredict.sh
cs_predictor: shiftx2
task_buildPDB: build_pdb
task_insertCS: insert_cs

buildPDB.cwl

#!/usr/bin/env cwl-runner

cwlVersion: v1.0
class: CommandLineTool
baseCommand: python3

inputs:
  pyBuildPDB:
    type: File
    inputBinding:
      position: 0
  taskBuildPDB:
    type: string
    inputBinding:
      position: 1
      prefix: --task
  pdbID:
    type: string
    inputBinding:
      position: 2
      prefix: --pdb_id
  Chain:
    type: string
    inputBinding:
      position: 3
      prefix: --chain
  pdbFilename:
    type: string
  cfgFile:
    type: File
    inputBinding:
      position: 4
      prefix: --cfg_file

outputs:
  pdbFile:
    type: File
    outputBinding:
      glob: $(inputs.pdbFilename)

addHydrogen.cwl

#!/usr/bin/env cwl-runner

cwlVersion: v1.0
class: CommandLineTool
baseCommand: sh

inputs:
  addHydrogen_script:
    type: File
    inputBinding:
      position: 0
  pdb_to_addHydrogens:
    type: File
    inputBinding:
      position: 1
  tempFile:
    type: string
    inputBinding:
      position: 2
  protonatedPDB:
    type: string
    inputBinding:
      position: 3

outputs:
  pdbH_File:
    type: File
    outputBinding:
      glob: $(inputs.protonatedPDB)

shiftPredict.cwl

#!/usr/bin/env cwl-runner

cwlVersion: v1.0
class: CommandLineTool
#baseCommand: [python, /usr/software/SHIFTX2/shiftx2.py]
#baseCommand: [bash, /home/nmrbox/lcraft/Desktop/caricWorkflow_FM/shiftPredict.sh]
baseCommand: bash

inputs:
  shiftPredict_script:
    type: File
    inputBinding:
      position: 0
  protonated_pdb:
#    type: string
    type: File
    inputBinding:
      position: 1
#      prefix: -i
  chemical_shiftDir:
    type: string
    inputBinding:
      position: 2
#      prefix: -o
  temperature:
    type: float
    inputBinding:
      position: 3
#      prefix: -t
  pH:
    type: float
    inputBinding:
      position: 4
#      prefix: -p
  format:
    type: string
    inputBinding:
      position: 5
#      prefix: -f
  chemical_shiftName:
    type: string
    inputBinding:
      position: 6

#outputs: []
outputs:
  CS_file:
    type: File
    outputBinding:
      glob: $(inputs.chemical_shiftName)

populate_database.cwl

#!/usr/bin/env cwl-runner

cwlVersion: v1.0
class: CommandLineTool
baseCommand: python3

inputs:
  pyInsertCS:
    type: File
    inputBinding:
      position: 0
  taskInsertCS:
    type: string
    inputBinding:
      position: 1
      prefix: --task
  pdbID:
    type: string
    inputBinding:
      position: 2
      prefix: --pdb_id
  Chain:
    type: string
    inputBinding:
      position: 3
      prefix: --chain
  cfgFile:
    type: File
    inputBinding:
      position: 4
      prefix: --cfg_file
  csPredictor:
    type: string
    inputBinding:
      position: 5
      prefix: --csp_name
  chemicalShifts:
    type: File
    inputBinding:
      position: 6
      prefix: --cs_file
  pH:
    type: float
    inputBinding:
      position: 7
      prefix: --pH
  temperature:
    type: float
    inputBinding:
      position: 8
      prefix: --temp

outputs: []

Error:

usage$ cwl-runner csp_shiftx.cwl csp_shiftx.yml 
csp_shiftx.cwl:57:9:   Source 'CS_path' of type "string" is incompatible
csp_shiftx.cwl:100:13:     with sink 'chemical_shiftDir' of type {"items": "string", "type": "array"}
csp_shiftx.cwl:58:9:   Source 'CS_file' of type "string" is incompatible
csp_shiftx.cwl:101:13:     with sink 'chemical_shiftName' of type {"items": "string", "type": "array"}
csp_shiftx.cwl:92:17:   Source 'pdbH_File' of type {"items": "File", "type": "array"} is incompatible
csp_shiftx.cwl:99:13:     with sink 'protonated_pdb' of type "File"
csp_shiftx.cwl:50:9:   Source 'pdb_filename' of type "string" is incompatible
csp_shiftx.cwl:77:13:     with sink 'pdbFilename' of type {"items": "string", "type": "array"}
csp_shiftx.cwl:49:9:   Source 'pdb_id' of type "string" is incompatible
csp_shiftx.cwl:76:13:     with sink 'pdbID' of type {"items": "string", "type": "array"}
csp_shiftx.cwl:105:17:   Source 'CS_file' of type {"items": "File", "type": "array"} is incompatible
csp_shiftx.cwl:114:13:     with sink 'chemicalShifts' of type "File"
csp_shiftx.cwl:49:9:   Source 'pdb_id' of type "string" is incompatible
csp_shiftx.cwl:116:13:     with sink 'pdbID' of type {"items": "string", "type": "array"}
csp_shiftx.cwl:82:17:   Source 'pdbFile' of type {"items": "File", "type": "array"} is incompatible
csp_shiftx.cwl:89:13:     with sink 'pdb_to_addHydrogens' of type "File"
csp_shiftx.cwl:55:9:   Source 'pdbH_file' of type "string" is incompatible
csp_shiftx.cwl:90:13:     with sink 'protonatedPDB' of type {"items": "string", "type": "array"}
csp_shiftx.cwl:54:9:   Source 'temp_file' of type "string" is incompatible
csp_shiftx.cwl:91:13:     with sink 'tempFile' of type {"items": "string", "type": "array"}
csp_shiftx.cwl:82:17:   Source 'pdbFile' of type {"items": "File", "type": "array"} is incompatible
csp_shiftx.cwl:68:11:     with sink 'output_files' of type {"type": "array", "items": "File"}
csp_shiftx.cwl:68:11:     source has linkMerge method merge_nested
csp_shiftx.cwl:92:17:   Source 'pdbH_File' of type {"items": "File", "type": "array"} is incompatible
csp_shiftx.cwl:68:11:     with sink 'output_files' of type {"type": "array", "items": "File"}
csp_shiftx.cwl:68:11:     source has linkMerge method merge_nested
csp_shiftx.cwl:105:17:   Source 'CS_file' of type {"items": "File", "type": "array"} is incompatible
csp_shiftx.cwl:68:11:     with sink 'output_files' of type {"type": "array", "items": "File"}
csp_shiftx.cwl:68:11:     source has linkMerge method merge_nested
cwl

Thank you Michael! Been testing the waters with CWL for the past few months and am now expanding to batch processing. Fingers-crossed I can get over this hump in transitioning.

0 answers

No answers yet.

Log in to answer this question.