日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Conda solving environment一晚上还不能完成有解吗?

發布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Conda solving environment一晚上还不能完成有解吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

生物信息學習的正確姿勢

NGS系列文章包括NGS基礎、轉錄組分析?(Nature重磅綜述|關于RNA-seq你想知道的全在這)、ChIP-seq分析?(ChIP-seq基本分析流程)、單細胞測序分析?(重磅綜述:三萬字長文讀懂單細胞RNA測序分析的最佳實踐教程 (原理、代碼和評述))、DNA甲基化分析、重測序分析、GEO數據挖掘(典型醫學設計實驗GEO數據分析 (step-by-step) - Limma差異分析、火山圖、功能富集)等內容。

Conda為什么越來越慢?

Conda中包含的軟件越來越多,而且軟件的不同版本都保留了下來,軟件的索引文件越來越大,安裝一個新軟件時搜索滿足環境中所有軟件依賴的軟件的搜索空間也會越來越大,導致solving environment越來越慢。

Conda是如何工作的

  • 從設定的通道 (channel)處下載通道中所有軟件的索引信息 (repodata.json) (Collecting package metadata (repodata.json))

    "packages" : {"moto-1.3.7-py_0.tar.bz2" : {"build" : "py_0","build_number" : 0,"depends" : [ "aws-xray-sdk !=0.96,>=0.93", "backports.tempfile", "boto >=2.36.0", "boto3 >=1.6.15", "botocore >=1.12.13", "cookies", "dicttoxml", "docker-py", "flask", "jinja2 >=2.7.3", "jsondiff 1.1.1.*", "mock", "pyaml", "python", "python-dateutil", "python-jose <3.0.0", "pytz", "requests >=2.5", "responses >=0.9.0", "six", "werkzeug", "xmltodict" ],"license" : "Apache-2.0","md5" : "17b424658cd07e678b5feebdc932eb52","name" : "moto","sha256" : "5924666f8c1758472dc4c3d22b270b46cd1c4b66c50a9ba50d5c636d2237bdd1","size" : 399973,"subdir" : "noarch","timestamp" : 1552438392680,"version" : "1.3.7"} }
  • 解析repodata中的信息獲取所有依賴的包的信息

  • 采用SAT-solver算法決定需要下載包的哪個版本和它們的安裝順序

  • 下載并安裝包

  • Conda哪一步慢?

    主要是第3步,確定待安裝包的依賴包之間的兼容和已安裝軟件之間的兼容,獲得需要下載的包和對應版本。

    如何提速Conda

    • 采用最新版的conda (Conda4.7相比Conda4.6提速3.5倍, Conda 4.8應該不會比4.7慢)

    • 安裝時指定版本減少搜索空間 conda install python=3.7.4

    • 安裝R包時指定R的版本也會極大減小搜索空間 (R包因其數目眾多,也是生物類軟件依賴解析較慢的原因之一) conda install r-base=4.0.2 r-ggplot2=3.3.2

    • 采用mamba加速軟件依賴解析 [mamba采用c++重寫了部分解析過程,這個提速效果是很明顯的] (安裝好mamba后就可以用mamba替換conda進行安裝了)

      conda install mamba -c conda-forge mamba install python=3.7.4
    • ,默認conda解析軟件依賴時優先考慮允許的最高版本,設置通道優先級權限高于軟件版本新舊后,conda會能更快的解決依賴關系,避免defaults和conda-forge通道的奇怪組合導致軟件依賴解析遲遲不能將結束的問題: conda config --set channel_priority strict (這個命令只需要運行一次)。

    • 創建一個新環境 (conda env create -n env_name)再安裝軟件,這樣就不用考慮與已有的軟件的兼容問題了,也可以大大降低搜索空間和提高解析軟件依賴的速度。

    • 如果安裝的軟件提供了environment.yaml那么用起來,文件中對應的軟件版本都很明確,解析依賴關系時更快。(具體導出方式見Bioconda軟件安裝神器:多版本并存、環境復制、環境導出)。

      channels:- qiime2/label/r2020.6- conda-forge- bioconda- defaults dependencies:- _libgcc_mutex=0.1- _openmp_mutex=4.5- _r-mutex=1.0.1- alsa-lib=1.1.5- arb-bio-tools=6.0.6- attrs=19.3.0- backcall=0.2.0- bibtexparser=1.1.0- binutils_impl_linux-64=2.34- binutils_linux-64=2.34- bioconductor-biobase=2.42.0- bioconductor-biocgenerics=0.28.0- bioconductor-biocparallel=1.16.6- bioconductor-biostrings=2.50.2- bioconductor-dada2=1.10.0
    • 添加Bioconda通道時,注意順序,給予conda-forge最高優先級,其次是bioconda。如果之前已經添加好了通道,自己在~/.condarc中調整順序。

      conda config --add channels defaults conda config --add channels bioconda conda config --add channels conda-forge
    • 綜合以上組合,之前嘗試多次都沒安裝好的工具,直接搞定。

    下載提速

  • 國內鏡像,見軟件安裝不上,可能是網速慢!Conda/R/pip/brew等國內鏡像大全拿走不謝~~

  • 換個網或從朋友處拷貝已經下載好的壓縮包一般在anaconda_root_dir/pkgs下,拷貝放在自己的anaconda3/pkgs下面,再次下載時系統會識別已經下載好的包而跳過 (并不總是有效)。

  • 獲取所有相關包的名字,從朋友處拷貝下載好的安裝包。

    如果拷貝過來未能自動識別,可手動安裝 conda install --offline local_path。

  • mamba install r-base=4.0.2 r-ggplot2=3.3.2 --dry-run >package_solving_result# _anaconda_depends pkgs/main/linux-64::_anaconda_depends-2020.07-py37_0 # _r-mutex conda-forge/noarch::_r-mutex-1.0.1-anacondar_1 # binutils_impl_lin~ pkgs/main/linux-64::binutils_impl_linux-64-2.33.1-he6710b0_7 # binutils_linux-64 conda-forge/linux-64::binutils_linux-64-2.33.1-h9595d00_17 # brotlipy conda-forge/linux-64::brotlipy-0.7.0-py37h516909a_1000 # bwidget conda-forge/linux-64::bwidget-1.9.14-0 # gcc_impl_linux-64 pkgs/main/linux-64::gcc_impl_linux-64-7.3.0-habb00fd_1 # gcc_linux-64 conda-forge/linux-64::gcc_linux-64-7.3.0-h553295d_17# 獲取所有包的名字 grep '::' a | sed 's/.*:://' | sed 's/$/.tar.bz2/'# 手動安裝 for i in `grep '::' a | sed 's/.*:://' | sed 's/$/.tar.bz2/'`; do conda install --offline /anaconda3/pkgs/$i; done

    使用conda-pack直接從已經安裝好的地方拷貝一份

    安裝conda-pack

    conda install -c conda-forge conda-pack # pip install git+https://github.com/conda/conda-pack.git

    打包已經安裝好的環境

    conda pack -n my_env_name -o my_env_name.tar.gz

    拷貝打包好的環境my_env_name.tar.gz到目標機器,并解壓到任何目錄,一般推薦放到envs目錄下 (anaconda_root/envs)。(注意:anaconda_root改為自己的conda安裝路徑。)

    # 解壓打包好的環境 # 默認是全都解壓到當前目錄,場面很壯觀 # -C 一定要指定 mkdir -p anaconda_root/envs/my_env tar -xzf my_env.tar.gz -C anaconda_root/envs/my_env# 激活環境 source my_env/bin/activate# Unpack conda-unpack# 至此環境就完全拷貝過來了# 去激活 source deactivate

    目前在同樣的操作系統 (Centos)測試可以通過,不同操作系統如centos-ubuntu尚未測試,各位可以測試下提供下反饋。

    References

  • https://www.anaconda.com/blog/how-we-made-conda-faster-4-7

  • https://github.com/bioconda/bioconda-recipes/issues/13774

  • https://github.com/TheSnakePit/mamba

  • https://medium.com/@marius.v.niekerk/conda-metachannel-f962241c9437

  • https://www.anaconda.com/blog/understanding-and-improving-condas-performance

  • Conda軟件安裝 core dump error/Segment fault/段錯誤 怎么辦?

  • 軟件安裝不上,可能是網速慢!Conda/R/pip/brew等國內鏡像大全拿走不謝~~

  • 用了Docker,媽媽再也不擔心我的軟件安裝了 - 基礎篇

  • Linux學習 - 又雙叒叕一個軟件安裝方法

  • https://conda.github.io/conda-pack/

  • 封面來源于:https://pixabay.com/photos/motivational-quote-try-and-stop-me-3403638/

  • 往期精品(點擊圖片直達文字對應教程)

    后臺回復“生信寶典福利第一波”或點擊閱讀原文獲取教程合集

    總結

    以上是生活随笔為你收集整理的Conda solving environment一晚上还不能完成有解吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。