Spearman检验组间相关性及SCI风格绘图

Spearman检验组间相关性及SCI绘图

1. Spearman 秩相关系数

比较组间相关性,适用于非线性关系或非正态分布数据,与 Pearson 的区别:不要求数据线性相关,只关注秩次的单调关系。
结果图
分析结果

2. 数据模拟+Spearman检验+SCI相关性绘图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
from matplotlib.patches import Rectangle

# 设置字体
#plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False  # 解决负号显示问题

def generate_mutation_data(n_samples=20, random_seed=42):
    """
    生成肿瘤和正常组织的突变数量数据
    
    参数:
    n_samples -- 样本对数
    random_seed -- 随机种子,确保结果可重现
    
    返回:
    DataFrame -- 包含样本ID、肿瘤突变数和正常突变数的数据框
    """
    np.random.seed(random_seed)
    
    # 生成基础变异水平(不同样本的个体差异)
    base_mutations = np.random.gamma(shape=5, scale=10, size=n_samples)
    
    # 肿瘤组织突变数(基础水平 + 肿瘤特异性变异 + 随机噪声)
    tumor_mutations = base_mutations + np.random.gamma(shape=3, scale=5, size=n_samples) + np.random.normal(0, 5, n_samples)
    
    # 正常组织突变数(基础水平 + 随机噪声,通常低于肿瘤)
    normal_mutations = base_mutations * 0.6 + np.random.normal(0, 8, n_samples)
    
    # 确保突变数非负
    tumor_mutations = np.maximum(1, tumor_mutations).astype(int)
    normal_mutations = np.maximum(1, normal_mutations).astype(int)
    
    # 创建数据框
    data = pd.DataFrame({
   
   
        '样本ID': [f'S{
     
     i+1}' for i in range(n_samples)],
        '肿瘤组织突变数': tumor_mutations,
        '正常组织突变数': normal_mutations
    })
    
    return data

def calculate_spearman_correlation(data):
    """
    计算Spearman相关性和p值
    
    参数:
    data -- 包含肿瘤和正常组织突变数的数据框
    
    返回:
    correlation -- Spearman相关系数
    p_value -- 对应的p值
    significant -- 是否显著相关(p<0.05)
    """
    x = data['肿瘤组织突变数']
    y 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信与基因组学

每一份鼓励是我坚持下去动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值