基因表达量聚类分析:K-means算法应用与结果可视化

本文介绍了使用K-means算法对基因表达量数据进行聚类分析,并使用Python代码实现。

1. 数据读取与聚类

import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import seaborn as sns

# 读入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)

2. 聚类结果可视化

  • 聚类热图
# 绘制聚类热图
sns.clustermap(X, cmap='coolwarm', method='ward', col_cluster=False, figsize=(10, 10))
plt.show()

该代码绘制的图是基因表达量的聚类热图,其中每行代表一个样本,每列代表一个基因,颜色的深浅表示基因表达量的高低。通过聚类算法将相似的样本聚集在一起,形成不同颜色的聚类块,便于观察样本之间的相似性和差异性。

  • 散点图
# 绘制散点图
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')

# 设置坐标轴标签
plt.xlabel('Gene expression 1')
plt.ylabel('Gene expression 2')

# 设置图像标题
plt.title('Clustering result')

# 显示图像
plt.show()

3. 聚类效果评价

  • 轮廓系数
from sklearn.metrics import silhouette_score

# 计算轮廓系数
score = silhouette_score(X, labels)

# 输出轮廓系数
print('Silhouette score:', score)

轮廓系数是一种评价聚类效果的指标,其值介于-1到1之间,值越大表示聚类效果越好。

  • 聚类中心
# 获取聚类中心
centers = kmeans.cluster_centers_

# 绘制散点图
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')

# 绘制聚类中心
plt.scatter(centers[:, 0], centers[:, 1], c='red', marker='x')

# 设置坐标轴标签
plt.xlabel('Gene expression 1')
plt.ylabel('Gene expression 2')

# 设置图像标题
plt.title('Clustering result')

# 显示图像
plt.show()

聚类中心表示每个聚类中所有样本的平均基因表达量。通过观察聚类中心,可以更好地理解不同聚类的特征。

总结

本文使用K-means算法对基因表达量数据进行了聚类分析,并通过聚类热图、散点图、轮廓系数和聚类中心展示了聚类结果。该方法可以帮助研究人员更好地理解基因表达量的差异和相似性,为后续的生物学研究提供支持。

基因表达量聚类分析:K-means算法应用与结果可视化

原文地址: https://www.cveoy.top/t/topic/nfF7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录