Nextflow的基本认知(系列之二)

基本概念

Nextflow,灵活的,优秀的,框架与DSL (Domain specific language)
其实我觉得,对于我目前的认知来看,那么有点应该是:

  1. 缓存
  2. 并行(自动处理好中间文件,不会导致文件覆盖)
  3. 模块化
  4. 管道(管道正如文件一样处理)
  5. 高度流程可重现

步骤与管道

Nextflow流程可用于合并不同的处理步骤。每一个步骤可以使用不同的语言(如Bash, Per, Ruby, Python, etc.). 而每一个步骤之间会有自动化的异步IO,使得不同进程不会有写入冲突(亮点)。此外每个步骤可定义多个输入输出(也是亮点)。
一个Nextflow脚本示例:

params.query = "$HOME/sample.fa"
params.db = "$HOME/tools/blast-db/pdb/pdb"

db = file(params.db)
query = file(params.query)

process blastSearch {
    input:
    file query

    output:
    file top_hits

    """
    blastp -db $db -query $query -outfmt 6 > blast_result
    cat blast_result | head -n 10 | cut -f 2 > top_hits
    """
}


process extractTopHits {
    input:
    file top_hits

    output:
    file sequences

    """
    blastdbcmd -db ${db} -entry_batch $top_hits > sequences
    """
}
配置一些参数

随着环境的改变,总是需要配置一些参数

process {
  executor='sge'
  queue = 'cn-el6'
}

env {
  PATH="$PWD/bowtie2:$PWD/tophat2:$PATH"
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,933评论 18 139
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,009评论 3 119
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,027评论 2 89
  • 2015年 4月9日,卖货郎商城与中融投签订战略合作协议 共推农村电商及互联网金融 中融投执行总裁盘轩岐表示:卖货...
    中融投阅读 1,279评论 0 1
  • 几天跟一个初中同学打电话,到了最后,她忽然问了我一句,“你还记得小红么?”,小红啊,我当然记得了,小红跟电话那头的...
    喝假酒的狼阅读 233评论 6 1