Я хочу знать, можно ли определить правило ввода, которое зависит от различных подстановочных знаков.
Чтобы уточнить, я запускаю этот конвейер Snakemake для разных файлов fastq, используя qsub, который отправляет каждое задание на другой узел:
- fastqc на оригинальном fastq - нет зависимости от других заданий *
- адаптер / качественная обрезка для создания усеченного fastq
- fastqc_after при усеченном fastq (вывод из шага 2) и отсутствие зависимости вниз по потоку
- конвейер «звезда-ршем» на усеченном фастк
- rsem и tximport (вывод из шага 4)
- Выполнить multiqc
MultiQC - https://multiqc.info/ - запускается в папке результатов, в которой есть результаты fastqc, star, rsem и т. Д. Однако, поскольку каждое задание выполняется на отдельном узле, иногда Шаг 3 (fastqc и / или fastqc_after) все еще работает на узлах, в то время как другие этапы заканчиваются (шаги 2, 4 и 5) ИЛИ наоборот.
В настоящее время я могу создать правило MultiQc, которое ожидает результатов из шагов 2, 4, 5, потому что они связаны друг с другом правилами ввода / вывода.
Я прикрепил свой конвейер как png к этому сообщению. Любые предложения помогут.
Что мне нужно: я хочу создать «сортирующий» шаг, на котором я хочу, чтобы MultiQC дождался завершения всех шагов (от 1 до 5). Другими словами, используя мой прикрепленный png в качестве руководства, я хочу определить несколько правил ввода для MultiQC, которые также ожидают результатов от fastqc
Заранее спасибо.
Примечание : Основываясь на комментариях, которые я получил от ' colin ' и ' bli ' после моего исходного поста, я поделился кодом для различных правил здесь.
Шаг 1 - fastqc
rule fastqc:
input: "raw_fastq/{sample}.fastq"
output: "results/fastqc/{sample}_fastqc.zip"
log: "results/logs/fq_before/{sample}.fastqc.log"
params: ...
shell: ...
Шаг 2 - bbduk
rule bbduk:
input: R1 = "raw_fastq/{sample}.fastq"
output: R1 = "results/bbduk/{sample}_trimmed.fastq",
params: ...
log: "results/logs/bbduk/{sample}.bbduk.log"
priority:95
shell: ....
Шаг 3 - fastqc_after
rule fastqc_after:
input: "results/bbduk/{sample}_trimmed.fastq"
output: "results/bbduk/{sample}_trimmed_fastqc.zip"
log: "results/logs/fq_after/{sample}_trimmed.fastqc.log"
priority: 70
params: ...
shell: ...
Шаг 4 - star_align
rule star_align:
input: R1 = "results/bbduk/{sample}_trimmed.fastq"
output:
out_1 = "results/bam/{sample}_Aligned.toTranscriptome.out.bam",
out_2 = "results/bam/{sample}_ReadsPerGene.out.tab"
params: ...
log: "results/logs/star/{sample}.star.log"
priority:90
shell: ...
Шаг 5 - rsem_norm
rule rsem_norm:
input:
bam = "results/bam/{sample}_Aligned.toTranscriptome.out.bam"
output:
genes = "results/quant/{sample}.genes.results"
params: ...
threads = 16
priority:85
shell: ...
Шаг 6 - rsem_model
rule rsem_model:
input: "results/quant/{sample}.genes.results"
output: "results/quant/{sample}_diagnostic.pdf"
params: ...
shell: ...
Шаг 7 - tximport_rsem
rule tximport_rsem:
input: expand("results/quant/{sample}_diagnostic.pdf",sample=samples)
output: "results/rsem_tximport/RSEM_GeneLevel_Summarization.csv"
shell: ...
Шаг 8 - multiqc
rule multiqc:
input: expand("results/quant/{sample}.genes.results",sample=samples)
output: "results/multiqc/project_QS_STAR_RSEM_trial.html"
log: "results/log/multiqc"
shell: ...