add nextflow d30e48d

This commit is contained in:
2026-04-29 23:01:54 +02:00
parent d0b12d668d
commit 97cc9058d3
2840 changed files with 730250 additions and 0 deletions

View File

@@ -0,0 +1,131 @@
#!/usr/bin/env nextflow
/*
* Copyright 2013-2024, Seqera Labs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
nextflow.enable.types = true
params {
n_samples: Integer = 3
save_bam_bai: Boolean
}
process fastqc {
input:
id: String
output:
record(id: id, fastqc: file('*.fastqc.log'))
script:
"""
echo ${id} > ${id}.fastqc.log
"""
}
process align {
input:
id: String
output:
record(id: id, bam: file('*.bam'), bai: file('*.bai'))
script:
"""
echo ${id} > ${id}.bam
echo ${id} | rev > ${id}.bai
"""
}
process quant {
input:
id: String
output:
record(id: id, quant: file('quant'))
script:
'''
mkdir quant
touch quant/cmd_info.json
touch quant/lib_format_counts.json
touch quant/quant.sf
'''
}
process summary {
input:
logs: Bag<Path>
output:
record(
report: file('summary_report.html'),
data: file('summary_data/data.json'),
fastqc: file('summary_data/fastqc.txt')
)
script:
'''
touch summary_report.html
mkdir summary_data
touch summary_data/data.json
touch summary_data/fastqc.txt
'''
}
workflow {
main:
ids = channel.of(1..params.n_samples).map { i -> "sample${i}" }
ch_fastqc = fastqc(ids)
ch_align = align(ids)
ch_quant = quant(ids)
ch_samples = ch_fastqc
.join(ch_align, by: 'id')
.join(ch_quant, by: 'id')
ch_logs = ch_samples
.map { sample -> sample.fastqc }
.collect()
ch_summary = summary(ch_logs)
publish:
samples = ch_samples
summary = ch_summary
}
output {
samples {
path { sample ->
sample.fastqc >> 'log/'
sample.bam >> (params.save_bam_bai ? 'align/' : null)
sample.bai >> (params.save_bam_bai ? 'align/' : null)
sample.quant >> "quant/${sample.id}"
}
index {
path 'samples.csv'
header true
sep ','
}
}
summary {
path { r ->
r.report >> './'
r.data >> './'
r.fastqc >> './'
}
}
}