ClusterGVis——时间序列聚类可视化

ClusterGVis——时间序列聚类可视化

ClusterGVis 提供了时间序列的 RNA-seq 数据的模糊 c-means 算法和 kmeans 算法聚类的可视化,还可以实现对 WGCNA 输出的可视化,同时可以使用 clusterProfilerenrichCluster 完成每个 cluster 的富集分析,直接生成发表级图形。

**官网:**https://github.com/junjunlab/ClusterGVis

安装

可以直接在 r 中完成安装,重新安装可以获取新功能。

# Note: please update your ComplexHeatmap to the latest version!
# install.packages("devtools")
devtools::install_github("junjunlab/ClusterGVis")

如果出现某些依赖项无法安装的情况,可以使用如下相应命令使用 conda 完成安装,如果仍然出现错误可以尝试创建新环境运行。

# 此处可能需要创建一个新环境才安装成功
# conda create -n demo
# conda activate demo
conda install -c bioconda r-monocle3 r-seurat
conda install conda-forge::r-magick 
conda install bioconductor-org.mm.eg.db 
conda install bioconductor-clusterprofiler
conda install -c conda-forge r-terra
conda install -c conda-forge r-devtools

在实际的安装中,可能会出现 jjAnno 包(https://github.com/junjunlab/jjAnno)无法安装的情况,一般情况下按上述命令完成对应依赖项安装后在 r 中重新运行如下命令即可成功安装。

devtools::install_github("junjunlab/jjAnno") 

使用

1. 输入

输入数据为标准化的 tpm/fpkm/rpkm 表达矩阵,结合源码和 Mfuzz 包(http://193.136.227.155/sysbiolab/mfuzz/)的文档,此处在 cluster.method == "mfuzz" 时也可以使用其他方法标准化后的数据,如 edgeR/DESeq2。

image-20240828152513477

# 载入示例数据
library(ClusterGVis)
data(exps)

image-20240828152809964

2. 确定最佳聚类数目
### 时间序列聚类可视化的方法和工具 #### 方法概述 时间序列聚类可视化旨在帮助理解不同类别的时间序列模式及其特征。常用的技术包括降维技术、热图展示以及特定库提供的内置绘图函数。 对于子序列聚类和时间点聚类,可以采用多种方式来呈现数据结构与分类结果[^1]。具体来说: - **降维投影**:利用主成分分析(PCA)或其他类似的降维算法将高维度的数据映射到二维平面上以便于观察。 - **热图表示法**:通过颜色深浅变化直观反映各个时刻数值大小差异,适用于大规模多变量数据分析场景下查看趋势走向。 - **轮廓图(Silhouette Plot)**:用于评估样本与其所属簇之间的紧密程度,并能有效比较不同数量的簇的效果。 #### 工具介绍 ##### Tslearn 库 Tslearn 是一个专门针对时间序列处理而设计的强大 Python 库,在此之上实现了丰富的机器学习模型和支持向量机等功能模块。其内部集成了方便快捷的操作接口来进行各类任务操作,比如读取文件、预处理清洗噪声干扰项等前置准备工作;更重要的是提供了简单易用且高效的 API 接口完成从训练预测直至最终效果展现整个流程中的每一步骤[^3]。 ```python from tslearn.clustering import TimeSeriesKMeans import numpy as np import matplotlib.pyplot as plt # 假设 X 为已准备好的时间序列数据集 (n_samples, n_timestamps) model = TimeSeriesKMeans(n_clusters=3).fit(X) plt.figure(figsize=(8, 6)) for i in range(len(np.unique(model.labels_))): plt.plot(X[model.labels_==i].T, alpha=.2, color=f'C{i}') plt.plot(model.cluster_centers_[i], label=f'Cluster {i}', linewidth=4, color=f'C{i}') plt.legend() plt.show() ``` 上述代码片段展示了如何使用 `tslearn` 中的 K-Means 实现基本的时间序列聚类并绘制出各簇中心曲线及成员分布情况。 ##### Yellowbrick 可视化扩展包 Yellowbrick 提供了一系列专为 scikit-learn 设计的视觉诊断工具,其中就包含了对聚类性能评价的支持——SilhouetteVisualizer 就是用来生成轮廓系数图表的理想选择之一[^2]。 ```python from yellowbrick.cluster import SilhouetteVisualizer from sklearn.preprocessing import StandardScaler scaler = StandardScaler().fit_transform(X.reshape(-1, 1)).reshape(*X.shape) fig, ax = plt.subplots() visualizer = SilhouetteVisualizer(TimeSeriesKMeans(n_clusters=3), colors='yellowbrick') visualizer.fit(scaler) visualizer.poof() ``` 这段脚本说明了怎样借助 Yellowbrick 来创建更加专业的聚类质量报告页面,从而辅助决策者挑选合适的参数配置方案。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值