snakemake: MissingOutputException в докере - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь запустить конвейер в докере, используя snakemake. У меня проблема с использованием инструмента sortmerna для получения {sample}_merged_sorted_mRNA и {sample}_merged_sorted выходных данных из control_merged.fq и treated_merged.fq входных файлов.

Вот мой Snakefile:

   SAMPLES = ["control","treated"]
   for smp in SAMPLES:
       print("Sample " + smp + " will be processed")
  rule final:
       input:
          expand('/output/{sample}_merged.fq', sample=SAMPLES),
          expand('/output/{sample}_merged_sorted', sample=SAMPLES),
          expand('/output/{sample}_merged_sorted_mRNA', sample=SAMPLES),

  rule sortmerna:
       input: '/output/{sample}_merged.fq',

       output: merged_file='/output/{sample}_merged_sorted_mRNA', merged_sorted='/output/{sample}_merged_sorted',

   message: """---SORTING---"""
   shell:
      '''
         sortmerna --ref /usr/share/sortmerna/rRNA_databases/silva-bac-23s-id98.fasta,/    usr/share/sortmerna/rRNA_databases/index/silva-bac-23s-id98: --reads {input} --paired_in     -a 16 --log --fastx --aligned {output.merged_file} --other {output.merged_sorted} -v
     '''

При запуске я получаю:

Waiting at most 5 seconds for missing files.                                                 
 MissingOutputException in line 57 of /input/Snakefile:                                       
 Missing files after 5 seconds:
/output/control_merged_sorted_mRNA
/output/control_merged_sorted  

 This might be due to filesystem latency. If that is the case, consider to increase the wait $ime with --latency-wait.

 Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message
Complete log: /input/.snakemake/log/2018-11-05T091643.911334.snakemake.log

Я пытался увеличить задержку с --latency-wait, но получаю тот же результат. Забавно, что два выходных файла control_merged_sorted_mRNA.fq и control_merged_sorted.fq создаются, но программа не работает и завершает работу. Версия snakemake - 5.3.0. Любая помощь?

1 Ответ

0 голосов
/ 05 ноября 2018

snakemake завершается ошибкой, потому что выходные данные, описанные правилом sortmerna, не создаются. Это не проблема задержки, это проблема ваших выходных данных.

Ваше правило sortmerna ожидает в качестве вывода:
/output/control_merged_sorted_mRNA
и
/output/control_merged_sorted
но программа, которую вы используете (я ничего не знаю о sortmerna), по-видимому, производит
/output/control_merged_sorted_mRNA.fq
и
/output/control_merged_sorted.fq
Убедитесь, что при указании параметров --aligned и --other в командной строке вашей программы это должны быть настоящие имена созданных файлов или, если это только базовое имя, и программа добавит суффикс .fq , Если вы в последнем случае, я предлагаю вам использовать:

rule final:
    input:
      expand('/output/{sample}_merged.fq', sample=SAMPLES),
      expand('/output/{sample}_merged_sorted', sample=SAMPLES),
      expand('/output/{sample}_merged_sorted_mRNA', sample=SAMPLES),

rule sortmerna:
   input: 
       '/output/{sample}_merged.fq',
   output: 
       merged_file='/output/{sample}_merged_sorted_mRNA.fq',
       merged_sorted='/output/{sample}_merged_sorted.fq'
   params: 
       merged_file_basename='/output/{sample}_merged_sorted_mRNA',
       merged_sorted_basename='/output/{sample}_merged_sorted'
   message: """---SORTING---"""
   shell:
       """
       sortmerna --ref /usr/share/sortmerna/rRNA_databases/silva-bac-23s-id98.fasta,/usr/share/sortmerna/rRNA_databases/index/silva-bac-23s-id98: --reads {input} --paired_in     -a 16 --log --fastx --aligned {params.merged_file_basename} --other {params.merged_sorted_basename} -v
       """
...