我想使用nextflow查找所有 *.fq.gz文件。我的目录有四个.gf.gz文件(BF1_1.fg.gz、BF1_2.fg.gz、BF2_1.fg.gz和BF2_2.fg.gz)。我使用以下命令,但nextflow仅将 * 识别为字符,而不是特殊命令
hmtdttj41#
这是因为 params.reads 只是一个常规的java.lang.String,而您需要的是一个Channel。如果您需要一个通道来发出文件对,您可以使用fromFilePairs工厂方法来获取一个元组,该元组包含作为第一个元素的组键,以及作为第二个元素的与glob模式匹配的文件列表:
java.lang.String
params.reads = "/home/tzfeng/test_files/*_{1,2}.fq.gz"workflow { reads = Channel.fromFilePairs( params.reads ) reads.view()}
params.reads = "/home/tzfeng/test_files/*_{1,2}.fq.gz"
workflow {
reads = Channel.fromFilePairs( params.reads )
reads.view()
}
结果:
$ touch /home/tzfeng/test_files/{A,B,C}_{1,2}.fq.gz$ nextflow run main.nf N E X T F L O W ~ version 22.10.0Launching `main.nf` [sharp_borg] DSL2 - revision: 3461b43146[A, [/home/tzfeng/test_files/A_1.fq.gz, /home/tzfeng/test_files/A_2.fq.gz]][B, [/home/tzfeng/test_files/B_1.fq.gz, /home/tzfeng/test_files/B_2.fq.gz]][C, [/home/tzfeng/test_files/C_1.fq.gz, /home/tzfeng/test_files/C_2.fq.gz]]
$ touch /home/tzfeng/test_files/{A,B,C}_{1,2}.fq.gz
$ nextflow run main.nf
N E X T F L O W ~ version 22.10.0
Launching `main.nf` [sharp_borg] DSL2 - revision: 3461b43146
[A, [/home/tzfeng/test_files/A_1.fq.gz, /home/tzfeng/test_files/A_2.fq.gz]]
[B, [/home/tzfeng/test_files/B_1.fq.gz, /home/tzfeng/test_files/B_2.fq.gz]]
[C, [/home/tzfeng/test_files/C_1.fq.gz, /home/tzfeng/test_files/C_2.fq.gz]]
1条答案
按热度按时间hmtdttj41#
这是因为 params.reads 只是一个常规的
java.lang.String
,而您需要的是一个Channel。如果您需要一个通道来发出文件对,您可以使用fromFilePairs工厂方法来获取一个元组,该元组包含作为第一个元素的组键,以及作为第二个元素的与glob模式匹配的文件列表:结果: