如何在 Snakemake 中引用 anaconda 环境中的可执行文件
How to refer to executable inside anaconda environment in Snakemake
我正在使用 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
环境中它将具有用户特定的绝对路径。有没有一种简单的方法可以获取 vep
的路径,以便我可以参考 --vep-path
?
您可以像这样使用 unix which
命令:
veppath=`which vep`
vcf2maf.pl --vep-path $veppath ...
[vep path is] stored inside the conda environment which will have a user specific absolute path
变量CONDA_PREFIX
包含当前conda环境的路径。所以你也可以这样做:
vcf2maf.pl --vep-path $CONDA_PREFIX/bin/vep ...
我正在使用 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
环境中它将具有用户特定的绝对路径。有没有一种简单的方法可以获取 vep
的路径,以便我可以参考 --vep-path
?
您可以像这样使用 unix which
命令:
veppath=`which vep`
vcf2maf.pl --vep-path $veppath ...
[vep path is] stored inside the conda environment which will have a user specific absolute path
变量CONDA_PREFIX
包含当前conda环境的路径。所以你也可以这样做:
vcf2maf.pl --vep-path $CONDA_PREFIX/bin/vep ...