CWL 주위의 Requirements 일주일: In line Javascript Requirement

5004 단어 cwlcommonwltech
이 글은 CWL Advent Calendar 2020의 다섯째 날의 글이다.
Common Workflow Language(CWL)에서는 워크플로우 실행 처리 시스템을 충족해야 하는 기능 외에도 Process requirements라 불리는 optional features를 표준화[1]했다.
이번에는 CWL v1.2에서 정의한 InlineJavascriptRequirement에 대해 간단한 해설을 하겠습니다.또 각 샘플은 가능한 한 공식 기준도 테스트에 사용된 파일을 인용한다.

독자 대상

  • CWLrequirements을 뜯었지만 잘 몰라요.
  • 즉 중급자 이상을 대상으로 한 것이다.
  • 초보자향CWL Advent Calendar 2020의!
  • 예제


    첫날 기사 : Conformance test #14 :
    #!/usr/bin/env cwl-runner
    
    class: ExpressionTool
    requirements:
      - class: InlineJavascriptRequirement
    cwlVersion: v1.2
    
    inputs:
      i1:
        type: Any
        default: "the-default"
    
    outputs:
      output: int
    
    expression: "$({'output': (inputs.i1 == 'the-default' ? 1 : 2)})"
    
    InlineJavascriptRequirement에 기술된 경우requirements와 $()에 포위된 부분은 해석tests/null-expression1-tool.cwlJavaScript의 코드로 사용되었다.
    위의 예
  • 입력 매개 변수${}를 제시하지 않았을 때i1를 "the-default"로 평가(입력 매개 변수의 값은 inputs.i1에서 참조할 수 있음)inputs.パラメータ名 필드의 자바스크립트의expressionexpression에서 평가한다.결과는 ExpressionTool의 출력 매개변수1로 반환outputs.output됩니다.
  • 1 이외의 i1가 교부되었을 때 "the-default"로 되돌아오다outputs.output.
  • 2 매우 강력하지만 독자들에게 큰 부담이 될 수 있으므로 InlineJavascriptRequirement 등의 대체 수단이 있다면 그것을 사용하는 것이 좋다.

    덤


    Zenn의 코드 블록이 CWL을 지원하지 않아서 슬펐어요.
    각주
    즉, Processrequiremens를 포함한 작업 흐름과 도구 정의는 CWL 표준에 부합되는 모든 작업 흐름 실행 처리 시스템에서 실행될 수 없다.자세한 내용은 [2]를 참조하십시오.[3]
    이와 비슷한 복잡한 규격은 별편 보도이 있다.outputBinding.glob 자바스크립트로 해석하느냐 파라메터 레퍼런스로 해석하느냐는 유무$()에 따라 판단할 수 있기 때문에 다른 사람이 쓴 CWL을 읽을 때 주의해야 한다.↩︎
    JavaScript를 실행하려면 Parameter references가 필요합니다.↩︎ 중 Node.js와 InlineJavascriptRequirement 두 가지를 지정하면 다운로드몇 개의 처리 시스템를 받고 실행하기 때문에 약간의 주의가 필요하다.DockerRequirement

    좋은 웹페이지 즐겨찾기