msureil/DiffCoRank
GitHub: msureil/DiffCoRank
一个用于脑植入相关组织反应中差异基因共表达分析和 Hub 基因发现的综合生物信息学框架。
Stars: 0 | Forks: 0
## DiffCoRank:发现 Hub 基因和脑植入相关组织反应中差异基因共表达的综合框架
**作者**:Anirban Chakraborty1,3 (chakra96@msu.edu), Erin K. Purcell1,2,3, Michael G. Moore3
**所属机构**:
1. 密歇根州立大学 电气与计算机工程系
2. 密歇根州立大学 生物医学工程系
3. 密歇根州立大学 定量健康科学与工程研究所
### 概述
**DiffCoRank** 是一个集成框架,用于识别差异共表达基因模块并确定与植入设备组织反应相关的关键调控因子(Hub 基因)。该流程结合了:
- **RNA-Seq 数据预处理与基因过滤**
- **基于相关性的模块识别**
- **使用 UMAP + DBSCAN 的混合聚类**
- **基于多准则 Hub 基因排序**,利用中心性度量(度、接近性、中介、特征向量)

本仓库附属于我们的论文:
## 全文请访问:https://rdcu.be/eyoGv
### 功能特性
- **以基因为中心的方法**:专注于单个基因间的相关性,而非仅进行模块级分析。
- **UMAP + DBSCAN**:增强的聚类功能,用于处理非线性高维数据,揭示细微的共表达结构。
- **基于网络中心性的 Hub 检测**:通过多个中心性标准对基因进行排序,揭示组织反应的关键调控因子。
# 🐳 DiffCoRank Docker 部署指南
## 使用 Docker 快速开始
按照以下步骤使用 Docker 启动并运行 DiffCoRank。
1. **从 Docker Hub 拉取官方镜像**
docker pull anirban1231/diffcorank:latest
2. **运行容器**
docker run -d -p 8501:8501 \
--name diffcorank_app \
anirban1231/diffcorank:latest
3. **在浏览器中打开**
访问:
http://localhost:8501
4. **停止并移除**
docker stop diffcorank_app
docker rm diffcorank_app
## 💻 特定平台说明
### 🐧 Linux (Ubuntu/Debian)
```
# 安装 Docker
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
# (可选) 允许您的用户在无需 sudo 的情况下运行 Docker
sudo usermod -aG docker $USER
# 注销并重新登录,或运行:
newgrp docker
# 拉取并运行 DiffCoRank
docker pull anirban1231/diffcorank:latest
docker run -d -p 8501:8501 \
--name diffcorank_app \
anirban1231/diffcorank:latest
```
### 🍎 macOS
1. 从此处下载并安装 **Docker Desktop**
[https://www.docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop)
2. 打开 **终端** 并运行:
docker pull anirban1231/diffcorank:latest
docker run -d -p 8501:8501 \
--name diffcorank_app \
anirban1231/diffcorank:latest
3. 浏览访问:
http://localhost:8501
### ⊞ Windows
#### Docker Desktop (推荐)
1. 从此处安装 **Docker Desktop**
[https://www.docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop)
2. 以管理员身份打开 **PowerShell** 并运行:
docker pull anirban1231/diffcorank:latest
docker run -d -p 8501:8501 `
--name diffcorank_app `
anirban1231/diffcorank:latest
3. 访问:
http://localhost:8501
#### WSL2 集成
1. 确保已安装 **WSL2**,且 Docker Desktop 已配置为使用 WSL2 引擎
2. 在你的 WSL2 发行版 shell 中:
docker pull anirban1231/diffcorank:latest
docker run -d -p 8501:8501 \
--name diffcorank_app \
anirban1231/diffcorank:latest
3. 在 Windows 浏览器中打开 `http://localhost:8501`
## ⚙️ 本地构建与开发 (可选)
```
git clone https://github.com/msureil/DiffCoRank.git
cd DiffCoRank/DiffCoRank_App
# 构建并标记
docker build -t anirban1231/diffcorank:latest .
# 运行
docker run -d -p 8501:8501 \
--name diffcorank_app \
anirban1231/diffcorank:latest
```
## 📚 用户指南
按照以下步骤加载您的数据,运行完整的 DiffCoRank 流程,并查看结果。
### 1. 准备输入文件
- **Rlog 归一化计数 (CSV/TXT)**
经过对数转换的归一化表达值矩阵。
- **行:** 基因 ID
- **列:** 样本名称
- **原始计数 (CSV/TXT)**
您的原始基因计数矩阵。
- 形状和样本顺序需与 Rlog 文件一致。
- **样本元数据 (CSV)**
将每个样本链接到实验条件的元数据。
- 必须至少包含两列:
1. `sample`(与计数文件中的列名匹配)
2. `source`(例如 "near" / "far")
### 2. 启动应用
```
# 如果您正在使用 Docker:
docker pull anirban1231/diffcorank:latest
docker run -d -p 8501:8501 --name diffcorank_app anirban1231/diffcorank:latest
open http://localhost:8501
```
或在本地运行:
```
pip install -r requirements.txt
streamlit run app.py
```
### 3. 上传数据
1. 在 **上传您的数据** 部分:
* 拖放(或点击)上传:
* **Rlog 归一化计数**
* **原始计数**
* **样本元数据**
2. 一旦三个文件都显示出来,**运行过滤** 按钮将被激活。
### 4. 过滤阶段
1. 在侧边栏的 **基因过滤参数** 下,调整:
* **最小原始计数阈值**
* **最小归一化计数阈值**
* **每个基因的最小样本数**
* **最小基因长度 (bp)**
2. 点击 **运行过滤**。
3. 查看 **过滤摘要** 表格,其中显示了保留/排除的基因数量。
### 5. 相关性与 SCG 选择
1. 查看您所选 FDR 水平下的 **显著性相关性分布** 直方图。
2. 在 **连接性散点图** 中,拖动以检查分布情况。
3. 在 **选择 SCG 的最小相关性数** 下:
* 拖动滑块或输入数字。
* 点击 **应用阈值** 以锁定该值。
* 点击 **运行强连接基因选择**。
4. 您将看到 SCG 的数量和百分比。
### 6. 聚类向导
使用 **下一步** 和 **返回** 按钮逐步操作:
* **步骤 1:邻接矩阵 & TOM**
进度条显示邻接矩阵和 TOM 的计算过程。
* **步骤 2:UMAP**
在 2D 中可视化 SCG。
* **步骤 3:DBSCAN 模块**
使用 DBSCAN 识别彩色模块。
* **步骤 4:Hub 基因摘要**
查看并导出您的 Hub 基因列表。
### 7. 导出与重置
* 在 **步骤 4** 中,点击 **📥 下载完整 Hub 基因列表 (CSV)** 以保存结果。
* 完成后,打开 **⚠️ 危险区域** 展开项并点击 **🔄 全部重置** 以清除状态并重新开始。
## 🎥 视频教程
[](https://youtu.be/xfu7GI95Nlo)
## ▶️ [在 YouTube 上观看完整教程](https://youtu.be/xfu7GI95Nlo)
## 📖 更多资源
- **环境要求**:Python 3.8+, Streamlit, pandas, numpy, networkx, matplotlib
- **配置**:在 `.streamlit/config.toml` 中自定义主题或端口
- **故障排除**:
- Linux 上遇到权限错误?请将用户添加到 `docker` 组
- Windows 问题?请确保在 BIOS 中启用了虚拟化
- 端口冲突?在两个命令中将 `8501` 更改为其他端口
### 许可证
本项目基于 [MIT 许可证](LICENSE) 授权。
### 联系 / 支持
- **Anirban Chakraborty**:chakra96@msu.edu
如有问题、错误报告或功能请求,请在本仓库中提交 issue 或通过电子邮件联系作者。
### 致谢
- 本研究在密歇根州立大学电气与计算机工程系、生物医学工程系及定量健康科学与工程研究所进行。
标签:DBSCAN 聚类, Docker 容器化, Hub基因, Kubernetes, Python, RNA-Seq 数据预处理, Streamlit, UMAP 降维, 中枢基因发现, 关键调控因子识别, 基因共表达网络, 基因过滤, 差异共表达分析, 无后门, 混合聚类算法, 生物信息学, 生物医学工程, 神经工程学, 网络中心性指标, 脑植入物反应, 计算生物学, 访问控制, 请求拦截, 逆向工具, 量化健康科学