Snakemake не распознает несколько файлов в качестве входных данных

У меня проблемы с запуском змейки. Я хочу провести контроль качества некоторых массовых образцов RNA-Seq с помощью FastQC. Я написал код таким образом, что все файлы, соответствующие шаблону {sample}_{replicate}.fastq.gz, должны использоваться в качестве входных данных, где {sample} — идентификатор образца (т. е. SRR6974023), а {replicate} — 1 или 2. Ниже приведены мои небольшие сценарии:

configfile: "config.yaml"

rule all:
  input:
    expand("raw_qc/{sample}_{replicate}_fastqc.{extension}", sample=config["samples"], replicate=[1, 2], extension=["zip", "html"])
    

rule fastqc:
  input:
    rawread=expand("raw_data/{sample}_{replicate}.fastq.gz", sample=config["samples"], replicate=[1, 2])
  
  output:
    compress=expand("raw_qc/{sample}_{replicate}_fastqc.zip", sample=config["samples"], replicate=[1, 2]),
    net=expand("raw_qc/{sample}_{replicate}_fastqc.html", sample=config["samples"], replicate=[1, 2])
  
  threads: 
    8
  
  params:
    path = "raw_qc/"
  
  shell:
    "fastqc -t {threads} {input.rawread} -o {params.path}" 

На всякий случай config.yaml это:

samples:
  SRR6974023
  SRR6974024

Каталог raw_data с моими файлами выглядит так:

SRR6974023_1.fastq.gz  SRR6974023_2.fastq.gz  SRR6974024_1.fastq.gz  SRR6974024_2.fastq.gz

Наконец, когда я запускаю скрипт, я всегда вижу одну и ту же ошибку:

Building DAG of jobs...
MissingInputException in line 8 of /home/user/path/Snakefile:
Missing input files for rule fastqc:
raw_data/SRR6974023 SRR6974024_2.fastq.gz
raw_data/SRR6974023 SRR6974024_1.fastq.gz

Он корректно видит только последние файлы, в данном случае SRR6974024_1.fastq.gz и SRR6974024_2.fastq.gz. Как бы то ни было, другой видится только как SRR6974023. Как я могу решить эту проблему? Я ценю некоторую помощь. Спасибо вам всем!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

yaml настроен неправильно. Он должен иметь -, чтобы превратить каждую строку в список:

samples:
  - SRR6974023
  - SRR6974024

Другие вопросы по теме