Я использую следующий формат файла конфигурации в snakemake для некоторой практики анализа последовательности (у меня есть множество выборок, каждый из которых содержит 2 файла fastq:
samples:
Sample1_XY:
- fastq_files/SRR4356728_1.fastq.gz
- fastq_files/SRR4356728_2.fastq.gz
Sample2_AB:
- fastq_files/SRR6257171_1.fastq.gz
- fastq_files/SRR6257171_2.fastq.gz
Я использую следующие правила в начале моего конвейера для запуска fastqc и для выравнивания файлов fastqc:
import os
# read config info into this namespace
configfile: "config.yaml"
rule all:
input:
expand("FastQC/{sample}_fastqc.zip", sample=config["samples"]),
expand("bam_files/{sample}.bam", sample=config["samples"]),
"FastQC/fastq_multiqc.html"
rule fastqc:
input:
sample=lambda wildcards: config['samples'][wildcards.sample]
output:
# Output needs to end in '_fastqc.html' for multiqc to work
html="FastQC/{sample}_fastqc.html",
zip="FastQC/{sample}_fastqc.zip"
params: ""
wrapper:
"0.21.0/bio/fastqc"
rule bowtie2:
input:
sample=lambda wildcards: config['samples'][wildcards.sample]
output:
"bam_files/{sample}.bam"
log:
"logs/bowtie2/{sample}.txt"
params:
index=config["index"], # prefix of reference genome index (built with bowtie2-build),
extra=""
threads: 8
wrapper:
"0.21.0/bio/bowtie2/align"
rule multiqc_fastq:
input:
expand("FastQC/{sample}_fastqc.html", sample=config["samples"])
output:
"FastQC/fastq_multiqc.html"
params:
log:
"logs/multiqc.log"
wrapper:
"0.21.0/bio/multiqc"
Моя проблема связана с правилом fastqc.
В настоящее время и правило fastqc, и правило bowtie2 создают один выходной файл, сгенерированный с использованием двух входных данных SRRXXXXXXX_1.fastq.gz
и SRRXXXXXXX_2.fastq.gz
.
Мне нужно правило fastq для создания двух файлов, по отдельности для каждого из файлов fastq.gz
, но я не уверен, как правильно индексировать файл конфигурации из оператора ввода правила fastqc или как объединить расширение и подстановочные знаки команды, чтобы решить это. Я могу получить отдельный файл fastq, добавив [0]
или [1]
в конец оператора ввода, но не запускать оба отдельно или отдельно.
Я возился, пытаясь найти правильный формат индексации для доступа к каждому файлу отдельно. Текущий формат - единственный, которым я управлял, который позволяет snakemake -np
генерировать список заданий.
Любые советы будут с благодарностью.