Я использую conda env, который создаю вручную, а не автоматически с помощью Snakemake.Я делаю это, чтобы сохранить более жесткий контроль версий.
В любом случае, в моем config.yaml есть следующая строка:
conda_env: '/rst1/2017-0205_illuminaseq/scratch/swo-406/snakemake'
Затем, в начале моего Snakefile, я читаю эту переменную (чтение переменных из конфигурации в вашей части оболочки, похоже, не работает, я прав?):
conda_env = config['conda_env']
Затем в части оболочки я приветствую такой параметр, как этот:
rule rsem_quantify:
input:
os.path.join(fastq_dir, '{sample}_R1_001.fastq.gz'),
os.path.join(fastq_dir, '{sample}_R2_001.fastq.gz')
output:
os.path.join(analyzed_dir, '{sample}.genes.results'),
os.path.join(analyzed_dir, '{sample}.STAR.genome.bam')
threads: 8
shell:
'''
#!/bin/bash
source activate {conda_env}
rsem-calculate-expression \
--paired-end \
{input} \
{rsem_ref_base} \
{analyzed_dir}/{wildcards.sample} \
--strandedness reverse \
--num-threads {threads} \
--star \
--star-gzipped-read-file \
--star-output-genome-bam
'''
Обратите внимание на {conda_env}
.Теперь это дает мне следующую ошибку:
Could not find conda environment: None
You can list all discoverable environments with `conda info --envs`.
Теперь, если я изменил {conda_env}
для его параметра непосредственно /rst1/2017-0205_illuminaseq/scratch/swo-406/snakemake
, он работает!У меня нет проблем с чтением других параметров с использованием этого метода (например, rsem_ref_base
и analyzed_dir
в приведенном выше примере правила.
Что здесь может быть не так?
С наилучшими пожеланиями,
Freek.