#python #snakemake
Вопрос:
У меня есть набор входных данных: [A, B, C, D]
И набор выходных данных: [1, 2, 3, 4]
Я хочу, чтобы пары ввода/вывода были: A1, B2, C3, D4 для правила.
Как мне это сделать в змеином файле?
Ответ №1:
Это помогло бы дать более подробную информацию и несколько примеров кода вашей проблемы. В любом случае, я бы поместил пары букв/чисел в словарь или фрейм данных и использовал лямбда-функцию для доступа к номеру, соответствующему букве:
numbers = ['1', '2', '3', '4']
letters = ['A', 'B', 'C', 'D']
ln = dict(zip(numbers, letters))
rule all:
input:
expand('{number}.txt', number= numbers),
rule out:
input:
letter= lambda wc: ln[wc.number],
output:
'{number}.txt'
shell:
"""
echo {input.letter} > {output}
"""
Комментарии:
1. Да, это сработало идеально! Я настроил его для своего варианта использования, но отображение ключей и значений в качестве вывода:ввод работало как заклинание.