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.jsInlineJavascriptRequirement 두 가지를 지정하면 다운로드몇 개의 처리 시스템를 받고 실행하기 때문에 약간의 주의가 필요하다.DockerRequirement

    좋은 웹페이지 즐겨찾기