Nextflow 快速搭建生信分析流程(四)- Channel

本节我们介绍Nextflow中的Channel类型,Channel是nextflow中process之间进行数据传递的通道。

Channel主要有两个属性:

  1. 采用异步操作的方式进行数据传递;

  2. 数据接收采用block的形式,直到数据流信息传递过来之后才会“转交”给接收的process;

Channel类型介绍:

  1. Queue Channel

Queue Channel采用非block的形式进行存储(FIFO),用于连接两个process,Queue Channel通常是通过factory的方法产生,包括from, fromPath等方法。Process的输出也经常以Channel的方式进行存储;

注意:Queue channel只能使用一次。

2. Value channel

Value Channel是一个数值型的通道,可以无限次的使用,同时可以被多个process调用。可以产生value channel的操作符包括first, last, collect, count, min, max, reduce, sum。

Channel方法介绍:

  1. Of 方法:

of 方法可以创建任何类型的数据,例如:

ch =Channel.of(1, 3, 4, 6, “hello world”)

ch.view{ “value:$it “ }

2. Value 方法:

Value方法用于产生数值型的channel:

Exp1 = Chanel.value()

Exp2 = Channel.value(“Hello there”)

Exp3 = Channel.value([1,2,3,4,5])

3. fromList 方法:

fromList 用于产生一个含有元素的列表:

Channel

.fromList(['a’,'b’, 'c’])

.view{ “value:$it”}

4. fromPath 方法:

myFileChannel = Channel.fromPath( '/data/ *.fp' )

fromPath方法支持正则表达式,方法中可以添加的参数如下:

参数名称

参数描述

glob

是否支持正则表达式,默认为true

type

返回的类型,file, dir, any 默认为file

hidden

是否显示隐藏文件,默认为false

maxDepth

读取目录的深度

followLinks

是否读取链接文件

relative

是否使用相对路径,默认为false

checkIfExists

是否检查路径是否存在,默认为false

5.  fromFilePairs 方法:

fromFilePairs方法可以使用正则表达式的方式匹配双端测序文件,Channel可以以列表的形式每次释放一对文件。

Channel

.fromFilePairs('/my/data/SRR*_{1,2}.fastq')

.view()

方法中可以添加的参数如下:

参数名称

参数描述

type

返回的类型,file, dir, any 默认为file

hidden

是否显示隐藏文件,默认为false

maxDepth

读取目录的深度

followLinks

是否读取链接文件

size

每个item中的元素个数,默认为2,设置为-1时不加任何限制

flat

当设置为true时,将会把元素转成单个释放

checkIfExists

是否检查路径是否存在,默认为false

6. fromSRA 方法:

fromSRA方法可以直接下载NCBI中的SRA数据,并且将SRA直接转成fastq文件。

ids = ['ERR908507', 'ERR908506', 'ERR908505']

Channel

.fromSRA(ids)

.view()

方法中可以添加的参数如下:

参数名称

参数描述

apiKey

NCBI中的API key

cache

是否缓存API信息, 默认为true

max

并行下载数据的数目,默认没有限制

7.  watchPath 方法:

watchPath方法会监控一个目录中文件的变化,当文件名称与watchPath中定义的表达式相匹配时,就会释放匹配到的元素,默认情况下只会监控新产生的文件。

Channel

.watchPath( '/path/*.fa' )

.subscribe { println "Fasta file:$it" }

可选参数如下:

参数名称

参数描述

create

监控创建的新文件

modify

监控修改的文件

delete

监控删除的文件

(0)

相关推荐

  • 初识Nextflow (系列之一)

    写在前面 每个人的时间都是有限的. 昨夜反思,当我发现博士生活已经过了一年半,而我也需要耗费一定量的时间在实验上的时候,我开始有顾虑.我认知中的 成长是需要时间的,浮沙筑高楼是不可能持久的. 这类观点 ...

  • Nextflow 快速搭建生信分析流程(八)- Combine Operators

    本节我们介绍Nextflow中的Combine Operators类型.Combine-operators-合并操作符合并操作符包含以下类型:joincrosscollectFilecombineco ...

  • Nextflow 快速搭建生信分析流程(七)- Splitting Operators

    本节我们介绍Nextflow中的Splitting operator类型.Splitting operators-分割操作符分割操作符用于将channel中的元素分割成不同的块儿,这些块结构将会下游的 ...

  • Nextflow 快速搭建生信分析流程(六)- Transforming operators

    本节我们介绍Nextflow中Transforming operators类型.Transforming operators-转换操作符转换操作符包括buffer, collate, collect, ...

  • Nextflow 快速搭建生信分析流程(五)- Filtering operators

    本节我们介绍Nextflow中的Operator类型,Operator用户连接不同的Channel或者按照用户指定的规则进行数据的变换操作. Operators分为以下7种类型: Filtering ...

  • Nextflow 快速搭建生信分析流程(三)- 实例讲解

    在前面的两节内容中我们介绍了Nextflow的安装和流程监控平台Nextflow Tower, 大家如果对软件安装还有疑问可以查阅平台中前面两节的内容.这里我们以nextflow的一个具体运行脚本来进 ...

  • Nextflow快速搭建生信分析流程(二)-Tower

    在第一节中,我们介绍了nextflow的平台支持和安装方法,这一节我们将介绍流程监控的利器nextflow tower. 相信之前自己搭建过生信流程的小伙伴对流程监控的重要性都非常清楚,俗话说:&qu ...

  • snakemake搭建生信分析流程

    像经常处理生物信息大数据的同学,肯定有自己一套的分析脚本,也就是常说的pipeline了.在我刚开始的时候,也是按照大伙的分析流程,一步一个脚本,后来熟悉了一些,会把经常用到的脚本放在一起,再用变量名 ...

  • 用集成了anaconda的docker快速布置生信分析平台

    前言 众所周知,conda和docker是进行快速软件安装.平台布置的两大神器,通过它们,在终端前敲几个命令.点点鼠标,软件就装好了.出了问题也不会影响到系统配置,能够很轻松的还原和重建. 不过,虽说 ...

  • 生信分析流程构建的几大流派

    导言 构建生信分析流程是生物信息学从业人员必备的技能之一,对该项能力的评估常常是各大公司招录人员的参考项目之一. 在进行ngsjs项目时,我做了一张示意图来表示一些高通量测序数据分析项目重现性的要点( ...