统计检验用于比较各组间的免疫浸润差异,通过定量分析特定免疫细胞的浸润水平,评估它们在不同条件或组别下的显著性变化。常用方法包括t检验、Mann-Whitney U检验、ANOVA或Kruskal-Wallis检验,选择依据数据分布及样本特点。这些分析可揭示免疫微环境特征,助力探索疾病机制、预测治疗效果或筛选潜在生物标志物,为精准医学提供数据支持。
在 Python 中,统计检验可用于比较不同组之间的免疫浸润情况。常见的分析方法包括 t 检验、单因素方差分析(ANOVA) 和 非参数检验(如 Mann-Whitney U 检验、Kruskal-Wallis 检验)。以下是实现过程:
假设你有一个数据集,包含以下信息:
以下是数据框的结构:
Sample ID Group Immunoinfiltration
1 A 0.8
2 A 0.6
3 B 1.2
4 B 1.5
...
首先安装常用的库:
pip install numpy pandas scipy seaborn matplotlib
import pandas as pd
import numpy as np
from scipy.stats import ttest_ind, mannwhitneyu, f_oneway, kruskal
import seaborn as sns
import matplotlib.pyplot as plt
# 假设数据保存在 CSV 文件中
data = pd.read_csv("immune_infiltration.csv")
可以先使用箱线图或小提琴图观察各组免疫浸润的分布:
sns.boxplot(x='Group', y='Immunoinfiltration', data=data)
plt.title("Immune Infiltration Across Groups")
plt.show()
或者小提琴图:
sns.violinplot(x='Group', y='Immunoinfiltration', data=data, inner='quartile')
plt.title("Immune Infiltration Across Groups")
plt.show()
group_A = data[data['Group'] == 'A']['Immunoinfiltration']
group_B = data[data['Group'] == 'B']['Immunoinfiltration']
t_stat, p_val = ttest_ind(group_A, group_B)
print(f"T-test: t-statistic={t_stat}, p-value={p_val}")
u_stat, p_val = mannwhitneyu(group_A, group_B)
print(f"Mann-Whitney U Test: U-statistic={u_stat}, p-value={p_val}")
groups = [data[data['Group'] == g]['Immunoinfiltration'] for g in data['Group'].unique()]
f_stat, p_val = f_oneway(*groups)
print(f"ANOVA: F-statistic={f_stat}, p-value={p_val}")
h_stat, p_val = kruskal(*groups)
print(f"Kruskal-Wallis Test: H-statistic={h_stat}, p-value={p_val}")
pip install scikit-posthocs
import scikit_posthocs as sp
# 进行 Dunn's 检验
posthoc = sp.posthoc_dunn(data, val_col='Immunoinfiltration', group_col='Group', p_adjust='bonferroni')
print(posthoc)
结合上述代码,可以顺利完成各组免疫浸润的统计分析和可视化。如果需要进一步扩展,还可以结合机器学习模型进行特征关联分析。