Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions Docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
## Docker镜像使用说明

STABOX所需的依赖环境已提供为Docker镜像,方便用户快速部署。

## 下载 Docker 镜像

请从以下链接下载STABOX的Docker镜像压缩文件(XZ格式):

[下载链接](https://drive.google.com/drive/folders/1E1u3BdQH5oguPvfY2y2kxDWnYbStZSoJ?usp=sharing)

下载完成后,使用以下命令解压文件:

```bash
xz -d -T0 zhanglab_stabox.tar.xz
```

其中,`-T0`选项表示自动选择多个CPU进行解压,以加快解压速度。

## 加载 Docker 镜像

确保你已经安装并配置了Docker环境。然后使用以下命令加载镜像:

```bash
docker load -i zhanglab_stabox.tar
```

可以通过以下命令查看已加载的镜像:

```bash
docker images
```

应该可以看到 `zhanglab_stabox` 镜像。

## 运行 Docker 容器

运行容器时,可以通过以下命令启动容器:

```bash
docker run --gpus all -it -v /mnt/disk1/LZJ/project/STABox:/home -d zhanglab_stabox
```

- `--gpus all`:表示允许容器访问宿主机的所有GPU。
- `-v /mnt/disk1/LZJ/project/STABox:/home`:此参数将本地的STABox代码目录映射到Docker容器的`/home`目录,便于在容器中运行代码。

## GPU 支持问题

如果你遇到以下错误:

```bash
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
```

说明你的Docker环境目前不支持GPU。要启用GPU支持,请按照以下步骤安装 `nvidia-docker2`:

1. 安装 `nvidia-container-toolkit`:

```bash
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
```

2. 更新 apt 包列表并安装 `nvidia-container-toolkit`:

```bash
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
```

3. 配置 Docker 使用 NVIDIA GPU:

```bash
sudo nvidia-ctk runtime configure --runtime=docker
```

4. 重启 Docker 服务:

```bash
sudo systemctl restart docker
```

## 运行 STABOX

完成以上设置后,你就可以在Docker容器中运行STABOX进行训练、测试、预测等操作。
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ conda create -n env_STABox python=3.8

#activate your environment
conda activate env_STABox
详细步骤见同级的README_DETAIL.md文件

```


Expand Down Expand Up @@ -104,3 +106,6 @@ Q: How to install **PyG** from whl files?

A: Please download the whl files from https://pytorch-geometric.com/whl/index.html. Note that the version of python, torch, PyG, and cuda should match.

Q: Would it be more convenient if the dependencies for STABOX could be packaged into Docker images?

A: Yes, using Docker containers can simplify environment configuration and dependency management. Here are the basic steps to create a Docker image:[here](/Docker.md)
109 changes: 109 additions & 0 deletions README_DETAIL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
```
# 从零开始搭建STABox环境

1. 创建并激活环境:
```bash
conda create -n stomics python=3.10
conda activate stomics
```

2. 安装必要的包:
```bash
pip install 'scanpy[leiden]'
pip install requests
```

3. 查看显卡驱动版本:
```bash
nvidia-smi
```

输出示例:
```
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
```

4. 安装 PyTorch:
```bash
pip3 install torch torchvision torchaudio
```
> 注意:此时 torch 版本是 2.4.1,后面安装 dgl 库会删除 torch 2.4.1,转而安装 torch 2.4.0,影响不大。

5. 查看已安装包:
```bash
pip list
```

6. 安装其他依赖:
```bash
pip install progress
```

7. 处理缺少模块:
```bash
pip install pyyaml # No module named 'yaml'
pip install torch_geometric
pip install hnswlib
pip install intervaltree
pip install annoy
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.4.0+cu121.html
pip install POT # No module named 'ot'
pip install dgl -f https://data.dgl.ai/wheels/torch-2.4/cu121/repo.html
```

8. 再次查看已安装包,确认 torch 版本:
```bash
pip list
```
> 可以看到 torch 版本已经变成 2.4.0。

9. 安装 R 环境:
```bash
conda install r-base # 安装 rpy2 前先用 conda 安装 R 语言环境
```

10. 进入 R 语言环境,安装 mclust 包:
```R
R
install.packages("mclust") # 随便选一个源,我选的是 20
q() # 退出 R 语言环境
```

11. 安装 rpy2:
```bash
pip install rpy2
```

12. 至此,可以运行以下链接成功:
- [T1_DLPFC](https://stagate.readthedocs.io/en/latest/T1_DLPFC.html)

13. 安装 louvain:
```bash
pip install louvain
```

14. 至此,可以运行以下链接成功:
- [T4_Stereo](https://stagate.readthedocs.io/en/latest/T4_Stereo.html)

15. 运行以下链接:
- [Tutorial_STABox_STAligner](https://stabox-tutorial.readthedocs.io/en/latest/Tutorial_STABox_STAligner.html)

16. 图形界面需要额外安装以下包:
```bash
pip install ttkbootstrap
pip install opencv-python
pip install upsetplot
pip install gseapy
```

17. 本地安装端口转发工具 XLaunch,把服务器端图形界面 export display 到本地电脑,通常会有些卡顿:
```bash
cd STABox/src
python -m stabox.view.app
```

> 至此,STABOX 界面可以启动成功。
具体 pip 环境见 requirement.txt 文件。
```
2 changes: 0 additions & 2 deletions STABox/Renv_setting.yaml

This file was deleted.

Loading