WDL-第3学

作者: MR来了 | 来源:发表于2021-03-29 16:22 被阅读0次

接下来多个章节都是基于 v1.1语法

主要的介绍方法有点类似借鉴Python Cookbook,采取提出问题-解决问题,从实战中学会WDL

  • 问题1: 通过egrep抓取文件中含有特定pattern的行
  • 解决代码:
    • 运行的脚本:egrep.wdl
version 1.0
task hello {
    # 定义输入
    input {
        String pattern
        File in
    }
    # 相关命令
    command <<<
        # 当执行有问题立刻终止
        set -e
        egrep '~{pattern}' '~{in}'
    >>>
    # 相关输出
    output {
        Array[String] matches = read_lines(stdout())
    }
}

workflow wf {
    input {
        File infile
        String pattern
    }
    call hello {
        input: 
            in=infile,
            pattern=pattern
    }
    output {
        Array[String] matches = hello.matches
    }
}
  • 输入json
{
    "wf.pattern": "^[a-z]+$",
    "wf.infile": "/Users/your_name/cromwell/00.question1/file.txt"
}
  • 执行及输出信息
$ java -jar cromwell-57.jar run egrep.wdl --inputs egrep.json
...
[2021-03-29 17:59:48,60] [info] SingleWorkflowRunnerActor workflow finished with status 'Succeeded'.
{
  "outputs": {
    "wf.matches": ["abcdef", "fhhh", "hhh"]
  },
  "id": "c8898489-99f0-41f2-bec4-7a3d0a36c6dc"
}
...
  • 问题2: 通过egrep抓取文件中含有特定pattern的行,并行处理文件
    主要是修改wf地方:
workflow wf_parallel {
    input {
        Array[File] files
        String pattern
    }
    scatter (path in files){
        call hello {
            input: 
                in=path,
                pattern=pattern
        }       
    }
    output {
        Array[Array[String]] all_matches = hello.matches
    }
}

多个文件输入的json文件如下(一定要用绝对路径)

{
    "wf_parallel.pattern": "^[a-z]+$",
    "wf_parallel.infile": ["/Users/liji/cromwell/00.question1/file.txt", "/Users/liji/cromwell/00.question1/file2.txt"]
}
  • 执行及输出信息
$ java -jar /Users/liji/cromwell/cromwell-57.jar run egrep2.wdl --inputs egrep2.json
...
{
  "wf_parallel.all_matches": [["abcdef", "fhhh", "hhh"], ["abcdefaaaaa", "fhhheeee", "hhhgggg"]]
}
...

相关文章

  • WDL-第3学

    接下来多个章节都是基于 v1.1语法[https://github.com/openwdl/wdl/blob/ma...

  • WDL-第2学

    本节主要讲述如何配置Cromwell和运行一个简单的hello world的WDL脚本,主要分下面:本节内容来自F...

  • WDL-第5学

    问题:用bam2fastx将bam文件转成fastq格式,这里面学到的知识: 学会写parameter_meta,...

  • WDL-第4学

    问题:用flash批量完成数据的拼接,这里面学到的知识点 用struct构建reads的批量输入 可选择参数 解决...

  • WDL-第1讲

    WDL后续一系列学习笔记均来自官方文档[https://cromwell.readthedocs.io/en/st...

  • 《传播学教程》第3章框架

    《传播学教程》第3章框架总结:

  • 魏华林保险学第3版课后习题答案

    魏华林《保险学》(第3版)笔记和课后习题(含考研真题)详解 内容简介 魏华林主编的《保险学》(第3版)(高等教育出...

  • 陈培爱广告学概论第3版课后习题答案

    陈培爱《广告学概论》(第3版)笔记和课后习题详解 内容简介 本书是陈培爱《广告学概论》(第3版)教材的学习辅导书,...

  • 《新闻学概论》第3章框架

    《新闻学概论》第3章框架总结——新闻真实性

  • 保险学 持续行动第一天

    #早起读书现学现卖#第12期保险学专题 书籍:《保险学》 第1章 页码:3-20 1月18日 持续行动第1天 (答...

网友评论

    本文标题:WDL-第3学

    本文链接:https://www.haomeiwen.com/subject/ncqhhltx.html