Как справиться с конфликтами версий / пакетов python в snakemake?

#python #conda #bioinformatics #snakemake

#питон #conda #биоинформатика #змеиный пирог

Вопрос:

Я пытаюсь построить конвейер с использованием snakemake. Я создал среду conda, которая использует python версии 3.9, а также содержит программу snakemake. Для моей первой пары правил требуется версия v3.9. Все правила работают отлично, пока я не перейду к своему 3-му правилу, называемому rule3, где я хочу использовать pysam, который в настоящее время недоступен с python 3.9 и, следовательно, не может быть установлен в основной среде conda. Я знаю, что snakemake должен иметь возможность решать подобные проблемы, имея возможность использовать несколько сред conda. Поэтому я включил yaml для среды python, в которой есть как pysam, так и python v3.8. В rule3 я включаю следующие строки

 conda:
        "Env2.yaml" # used for running pysam

run:
        import pysam
        import sys
        import os
        .
        .
        .
        .
 

Когда я пытаюсь запустить snakemake, я получаю следующее сообщение:

Среды Conda разрешены только с директивами shell, script, notebook или wrapper (не с run).

Это означает, что вы не можете запускать python в snakemake с другими средами conda.

Учитывая описанную выше проблему, мой вопрос таков: каков правильный способ решения конфликтов версий / пакетов python, учитывая, что вы не можете запускать код python с различными средами conda в snakemake?

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

1. Используйте script: директиву .