參考文章:https://www.cnblogs.com/liaohuiqiang/p/9380417.html
本文的初衷是對之前建立的snakemake conda環(huán)境在不同服務器上進行轉(zhuǎn)移养匈,首先從官方網(wǎng)站上下載的environment.yaml,并進行conda的安裝與配置,建立本地snakemake分析環(huán)境;然后將本地snakemake分析環(huán)境進行導出保存為snakemake.yaml,可以在不同服務器上建立自己的snakemake分析環(huán)境涕侈,達到可移植效果。
查看自己安裝的conda env
conda env list
# conda environments:
#
rna /root/miniconda2/envs/rna
snakemake-tutorial /root/miniconda2/envs/snakemake-tutorial
root * /root/miniconda2
查看rna環(huán)境下安裝的包(-n , 即--name,指環(huán)境的名稱)
conda list -n rna
# packages in environment at /root/miniconda2/envs/rna:
#
asn1crypto 0.24.0 py27_1003 conda-forge
backports 1.0 py_2 conda-forge
backports.functools_lru_cache 1.5 py_1 conda-forge
更新指定環(huán)境下的包
conda update -n rna
進入conda環(huán)境
source activate snakemake-tutorial
退出conda環(huán)境
source deactivate
導出conda 下snakemake的配置環(huán)境
#通用格式
conda env export -n 項目名 -f environment.yaml
#在env外導出
conda env export -n snakemake-tutorial > snakemake.yml
#在snakemake-tutorial 環(huán)境內(nèi)導出
conda env export > snakemake.yaml
#查看snakemake.yaml文件
cat snakemake.yaml
name: snakemake
channels:
- conda-forge
- bioconda
- defaults
dependencies:
- _libgcc_mutex=0.1=main
- asn1crypto=0.24.0=py35_3
- bcftools=1.3.1=h84994c4_5
- bcrypt=3.1.4=py35h14c3975_0
- bwa=0.7.12=1
刪除環(huán)境
conda remove -n snakemake-tutorial --all
Package plan for package removal in\
environment /root/miniconda2/envs/snakemake-tutorial:
The following packages will be REMOVED:
asn1crypto: 0.24.0-py35_3 conda-forge
bcftools: 1.3.1-h84994c4_4 bioconda
根據(jù)導出的snakemake.yaml文件渴庆,新建環(huán)境
conda env list
# conda environments:
#
rna /root/miniconda2/envs/rna
root * /root/miniconda2
#根據(jù)文件創(chuàng)建環(huán)境變量的通用格式
conda env create --name snakemake --file snakemake.yaml
#創(chuàng)建snakmake環(huán)境
conda env create -f snakemake.yaml
/root/miniconda2/lib/python2.7/site-\
ackages/conda_env/env.py:68: UnsafeLoaderWarning:\
The default 'Loader' for 'load(stream)' without further\
arguments can be unsafe.
Use 'load(stream, Loader=ruamel_yaml.Loader)' explicitly if that is OK.
Alternatively include the following in your code:
import warnings
warnings.simplefilter('ignore', ruamel_yaml.error.UnsafeLoaderWarning)
In most other cases you should consider using 'safe_load(stream)'
data = yaml.load(yamlstr)
Fetching package metadata .................
Solving package specifications: .
zlib-1.2.11-h5 100% |##############################################################################################################################| Time: 0:00:00 345.02 kB/s
bcftools-1.3.1 100% |##############################################################################################################################| Time: 0:00:00 795.08 kB/s
pyasn1-0.4.6-p 100% |##############################################################################################################################| Time: 0:00:00 5.59 MB/s
dropbox-9.4.0- 100% |##############################################################################################################################| Time: 0:00:00 1.32 MB/s
#
# To activate this environment, use:
# > source activate snakemake
#
# To deactivate an active environment, use:
# > source deactivate
#
conda env list
# conda environments:
#
rna /root/miniconda2/envs/rna
snakemake /root/miniconda2/envs/snakemake
root * /root/miniconda2
codna channels的添加
conda config --add channels conda-forge
conda config --add channels bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
#查看channels
conda config --shwo channels
#或者
conda config --get channels