#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. Большое спасибо!