Змееныш: исключение MissingInputException

#python #input #snakemake

Вопрос:

Я пытаюсь создать простой рабочий процесс создания змеи, и у меня возникли некоторые проблемы. В моем файле возникают следующие ошибки:

 MissingInputException in line 29 of /home/agalvez/data/workflow-workshop/test/Snakefile: Missing input files for rule hmm: hmmsearch --tblout output_tblout_egf --noali -E 99  MissingInputException in line 49 of /home/agalvez/data/workflow-workshop/test/Snakefile: Missing input files for rule create_archive: output/EP00771_Trimastix_marina.out output/EP00759_Prokinetoplastina_sp_PhF-6.out  

Это первый раз, когда я пытаюсь использовать Snakemake или что-либо, связанное с Python, поэтому я не понимаю, почему это не удается. Любая помощь была бы очень признательна. Заранее спасибо!

 ARCHIVE_FILE = 'output.tar.gz'  # a single output file OUTPUT_FILE = 'output/{species}.out'  # a single input file INPUT_FILE = 'proteins/{species}.fasta'  # Build the list of input files. INP = glob_wildcards(INPUT_FILE).species print(INP)  # The list of all output files OUT = expand(OUTPUT_FILE, species=INP) print(OUT)  # pseudo-rule that tries to build everything. # Just add all the final outputs that you want built. rule all:  input: ARCHIVE_FILE  # hmmsearch rule hmm:  input:  cmd='hmmsearch --tblout output_tblout_egf --noali -E 99',  species=INPUT_FILE ,  hmm='hmm/EGF.hmm'  output: OUTPUT_FILE  shell: '{input.cmd} {input.hmm} {input.species} {output}'  # hmmsearch #rule hmm: # shell: 'hmmsearch --tblout output_tblout_egf --noali -E 99 hmm/EGF.hmm INPUT_FILE OUTPUT_FILE'  # create an archive with all results rule create_archive:  input: OUT  output: ARCHIVE_FILE  shell: 'tar -czvf {output} {input}'  

Ответ №1:

У тебя есть:

 rule hmm:  input:  cmd='hmmsearch --tblout output_tblout_egf --noali -E 99',  species=INPUT_FILE ,  hmm='hmm/EGF.hmm'  output: OUTPUT_FILE  shell: '{input.cmd} {input.hmm} {input.species} {output}'  

cmd это строка, содержащая команду, а не входной файл, отсюда и ошибка. Может быть, вы хотите чего-то подобного:

 rule hmm:  input:  species=INPUT_FILE ,  hmm='hmm/EGF.hmm'  output:   OUTPUT_FILE,  params:  cmd='hmmsearch --tblout output_tblout_egf --noali -E 99',  shell:   '{params.cmd} {input.hmm} {input.species} {output}'  

Комментарии:

1. Отлично! Это решило проблемы с ошибками! Спасибо вам за помощь! Теперь у меня есть проблемы с hmmsearch, но я думаю, что они не имеют никакого отношения к Snakemake. Большое спасибо!