- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 conda 在 Snakemake 包装器中指定包的最佳 environment.yml
做法是什么?我了解 channel 应该是:
channels:
- conda-forge
- bioconda
- base
但是,指定包的好选择是什么?我没有指定版本吗?完整版?
以前使用完整版导致使用无限/超长 conda 环境解析问题。但是,不固定版本会带来隐式升级到软件包不兼容版本的风险。
我是只指定直接依赖项还是应该将 conda env export
的输出放在那里,这样所有东西都被卡住了?
最佳答案
对于包版本数字,我通常会选择固定主要和次要版本。这样,用户在创建环境时将获得最新的安全补丁和错误修复,而不会以向后不兼容的方式进行任何更改(只要开发人员正确遵循 semantic versioning)。
另外,我会只指定直接依赖项,让环境求解器处理任何隐式依赖项。这提供了一定程度的自由来满足不同包的不同需求,而通常包的配方应指定对特定版本的任何限制。
另一种避免( future )冲突和快速创建环境的方法是使环境尽可能小且细化 (see Johannes' comment below)。如果不同的规则只共享一些依赖项而不共享其他依赖项,我宁愿为每个规则创建单独的最小环境,而不是重用更大的环境。无论如何,Snakemake 包装器都会这样做,因为每个包装器都有自己的环境定义。
As Johannes pointed out ,同样适用于 channel :只指定您实际使用的 channel ,不再需要指定base
channel 。而在使用mamba
时,可以指定bioconda
为第一 channel 。
谈到mamba
:如果速度很重要,我目前会使用mamba解决环境问题——它通常比 conda 快得多,并且更能确保您获得最新版本的软件包。在 snakemake
中,您可以通过 --conda-frontend mamba
使用它正如 Maarten's comment to the question 中也指出的那样.
但是,当然一切都取决于。如果您知道包的配方未处理的版本不兼容,则可能需要指定和固定隐式依赖项。如果您的软件可以创建可以随补丁版本更改的输出,那么您当然必须固定补丁版本。
关于conda - Snakemake 包装器中(生物)conda 版本的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64594146/
如何修复 Hero.h 中的错误? GCC C++ compiler flags : -c -fmessage-length=0 -std=gnu++11 ; 我将 g++ 更新到 4.8.1 /
使用 conda 在 Snakemake 包装器中指定包的最佳 environment.yml 做法是什么?我了解 channel 应该是: channels: - conda-forge
这里所有与模式识别相关的帖子都涉及面部、手部、字符识别。我想知道,是否有人成功地使用 OpenCV 识别显微镜图片上的细胞。我目前能够做的是使用阈值和形状检测(更改阈值、计数形状、丢弃具有无效大小的形
我是一名优秀的程序员,十分优秀!