抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

SylensHub

吃饭, 睡觉, 打游戏!

在使用pixi管理生物信息学分析环境时,经常会遇到一些Bioconductor的R包安装后出现依赖缺失的问题。目前暂不清楚这个问题的原因,用了pixi一年了,这个问题到目前为止(2025.10)也木有修复,因此本文介绍如何通过pixi tasks功能来解决这类问题。

问题描述

在最近一年的pixi使用中,发现部署生物信息学分析环境时,Seuratmaftools这样的依赖GenomeInfoDbDataBSgenome.Hsapiens.UCSC.hg38获取基因组数据R包的依赖总是有问题,即使在依赖处显式的指定并安装这些包到pixi环境中,实际载入的时候还是会显示这些包并不存在,因此还需要配置额外的内容来补充这些依赖。

解决方案

我目前是通过pixi的tasks功能,将安装依赖的命令变成一个任务,以在部署环境后快速修复依赖问题,实际的配置文件示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[workspace]
name = "azimuth_demo"
version = "1.1"
description = "workspace with azimuth and jupyter"
authors = ["Sylens Wong <qiumin14@163.com>"]
channels = ["conda-forge", "bioconda"]
platforms = ["linux-64"]

[environments]
label = ['kernel', 'label']

[feature.kernel.dependencies]
r-irkernel = '*'
jupyterlab = '*'

[feature.label.dependencies]
r-base = '*'
r-azimuth = '*'
r-BiocManager = '*'

[feature.label.tasks]
GenomeInfoDbData = {cmd = 'Rscript -e "BiocManager::install(\"GenomeInfoDbData\")"'}
BSgenome = {cmd = 'Rscript -e "BiocManager::install(\"BSgenome.Hsapiens.UCSC.hg38\")"'}
EnsDb = {cmd = 'Rscript -e "BiocManager::install(\"EnsDb.Hsapiens.v86\")"'}
JASPAR2020 = {cmd = 'Rscript -e "BiocManager::install(\"JASPAR2020\")"'}
r_dep = {cmd = 'echo "bio dep for R done"', depends-on=['GenomeInfoDbData', 'BSgenome', 'EnsDb', 'JASPAR2020']}

激活pixi环境后,执行pixi run r_dep就可以完成依赖修复,然后开始工作了。

评论

留下友善的评论吧~