使用K-Means聚类对HIV基因表达数据进行分析和可视化
使用K-Means聚类分析HIV基因表达数据并进行可视化
本代码示例展示了如何使用Python的Pandas和Scikit-learn库对HIV基因表达数据进行K-Means聚类分析,并通过绘制散点图、3D散点图和热图等图表进行可视化展示。
代码示例
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
# 读入Excel表格
data = pd.read_excel('C:\Users\lenovo\Desktop\HIV\DNN神经网络测试\HIV数据 - 副本.xlsx', index_col=0)
# 提取基因表达量
X = data.iloc[:, 1:].values
# K-means算法,K=3
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
# 获取聚类结果
labels = kmeans.labels_
# 输出聚类结果到Excel表格
result = pd.DataFrame({'name': data.index, 'label': labels})
result.to_excel('C:\Users\lenovo\Desktop\HIV\DNN神经网络测试\HIV聚类结果.xlsx', index=False)
# 可视化展示
# 1. 散点图
import matplotlib.pyplot as plt
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel('Gene 1')
plt.ylabel('Gene 2')
plt.show()
# 2. 3D散点图
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=labels)
ax.set_xlabel('Gene 1')
ax.set_ylabel('Gene 2')
ax.set_zlabel('Gene 3')
plt.show()
# 3. 热图
import seaborn as sns
sns.clustermap(X, cmap='coolwarm', row_cluster=False, col_cluster=False)
plt.show()
代码解析
- 导入库: 导入必要的库,包括Pandas用于数据处理,NumPy用于数值计算,Scikit-learn用于聚类算法,以及Matplotlib用于绘图。
- 读取数据: 从Excel表格中读取HIV基因表达数据,并指定索引列。
- 提取基因表达量: 提取数据中除了索引列以外的所有列,作为聚类的输入数据。
- K-Means聚类: 使用KMeans算法,将数据分成3个聚类。
- 获取聚类结果: 获取每个样本所属的聚类标签。
- 输出结果: 将聚类结果保存到新的Excel表格中。
- 可视化展示:
- 散点图: 使用matplotlib库绘制散点图,将每个样本用不同颜色表示,直观展示不同聚类的分布。
- 3D散点图: 使用mpl_toolkits.mplot3d库绘制3D散点图,将每个样本用不同颜色表示,以便观察数据在三维空间的分布。
- 热图: 使用seaborn库绘制热图,展示基因表达量的变化趋势,并根据聚类结果对样本进行分组。
总结
本代码示例展示了如何使用K-Means聚类分析HIV基因表达数据,并通过可视化展示不同聚类的分布和基因表达量的变化趋势。 这些分析结果可以帮助研究人员更好地理解HIV感染机制,以及不同基因表达模式与疾病发展之间的关系。
原文地址: https://www.cveoy.top/t/topic/nfFI 著作权归作者所有。请勿转载和采集!