Как обратиться к исполняемому файлу в среде анаконды в Snakemake - PullRequest
3 голосов
/ 21 января 2020

Я использую vcf2maf для аннотирования вариантов как части snakemake конвейера

rule vcf2maf:
    input:
        vcf="vcfs/{sample}.vcf",
        fasta=vep_fasta,
        vep_dir=vep_dir
    output:
        "mafs/{sample}.maf"
    conda:
        "../envs/annotation.yml"
    shell:
        """
        vcf2maf.pl --input-vcf {input.vcf} --output-maf {output} \
            --tumor-id {wildcards.sample}.tumor \
            --normal-id {wildcards.sample}.normal \
            --ref-fasta {input.fasta} --filter-vcf 0 \
            --vep-data {input.vep_dir} --vep-path [need path]

        """

В среде conda есть два пакета: vcf2maf и vep. Для vcf2maf требуется путь к vep для правильной работы, но я не уверен, как получить доступ к пути vep, поскольку он хранится в среде conda, в которой будет указан c абсолютный путь пользователя. Есть ли простой способ получить путь vep, чтобы я мог ссылаться на него для --vep-path?

1 Ответ

4 голосов
/ 21 января 2020

Вы можете использовать команду unix which, например:

veppath=`which vep`
vcf2maf.pl --vep-path $veppath ...

[путь vep] хранится в среде conda, в которой будет указан пользовательский c абсолютный путь

Переменная CONDA_PREFIX содержит путь к текущей среде conda. так что вы также можете сделать что-то вроде:

vcf2maf.pl --vep-path $CONDA_PREFIX/bin/vep ...
...