寻找生存分析的最佳基因表达分组阈值

昨天我们提到了任意更改基因表达分组阈值生存分析结果大不一样:

集思广益-生存分析可以随心所欲根据表达量分组吗

看到

https://www.proteinatlas.org/ENSG00000111801-BTN3A3/pathology/tissue/breast+cancer

文字版是:

Based on the FPKM value of each gene, we classified the patients into two groups and examined their prognoses.

In the analysis, we excluded genes with low expression, i.e., those with a median expression among samples less than FPKM 1.

The prognosis of each group of patients was examined by Kaplan-Meier survival estimators, and the survival outcomes of the two groups were compared by log-rank tests.

To choose the best FPKM cut-offs for grouping the patients most significantly, all FPKM values from the 20th to 80th percentiles were used to group the patients, significant differences in the survival outcomes of the groups were examined and the value yielding the lowest log-rank P value is selected.

得到的K-M图如下:

image-20190516092236980

如果是在 http://www.oncolnc.org/ 出图如下:

a=read.csv('BRCA_10384_50_50.csv')
head(a)
a$event=ifelse(a$Status=='Alive',0,1)
library(survival)
library(survminer)
sfit <- survfit(Surv(Days, event)~Group, data=a) 
ggsurvplot(sfit, conf.int=F, pval=TRUE)

phe=a
phe$time=phe$Days/365

## 批量生存分析 使用  logrank test 方法
mySurv=with(phe,Surv(time, event))
log_rank_p <- lapply(2:8, function(i){
  thr=sort(phe$Expression)[round(nrow(phe)*i/10)]
  phe$group=ifelse(phe$Expression > thr,'high','low') 
  print(table( phe$group ))
  data.survdiff=survdiff(mySurv~group,data=phe)
  p.val = 1 - pchisq(data.survdiff$chisq, length(data.survdiff$n) - 1)
  return(p.val)
}) 
log_rank_p=unlist(log_rank_p)
log_rank_p

i=8
thr=sort(phe$Expression)[round(nrow(phe)*i/10)]
phe$group=ifelse(phe$Expression > thr,'high','low') 
print(table( phe$group ))
sfit <- survfit(Surv(time, event)~group, data=phe) 
ggsurvplot(sfit, conf.int=F, pval=TRUE)

遗憾的是,因为数据源不一样,使用oncolnc的数据也不太可能画出 proteinatlas 一模一样的图:

见: TCGA数据库生存分析的网页工具哪家强

(0)

相关推荐

  • MySQL数据库Group by分组之后再统计数目Count(*)与不分组直接统计数目的区别

    简述问题"统计最新时刻处于某一状态的设备的数量" 1. 首先子查询结果,可以看到每个设备最新的状态信息 2.1 在子查询的基础上,对设备状态进行分组,进行统计每个状态的设备数量 2 ...

  • order by和group by的区别

    order by: 用来对数据库的一组数据进行排序   desc:降序   asc:升序 group by: "By"指定的规则对数据进行分组,所谓的分组就是将一个"数据 ...

  • Console 对象

    Console 对象提供了访问浏览器调试模式的信息到控制台.方法描述assert()如果断言为 false,则在信息到控制台输出错误信息.clear()清除控制台上的信息.count()记录 coun ...

  • 集思广益-生存分析可以随心所欲根据表达量分组吗

    很久以前我们提到过TCGA的各种网页数据库的生存分析结果冲突的问题 TCGA数据库生存分析的网页工具哪家强 现在又有人提出来一个新的问题,如下:   根据基因表达量的中位值把样本分成高低表达量的组别, ...

  • 学徒数据挖掘之谁说生存分析一定要按照表达量中位值或者平均值分组呢?

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了! 下面是<生信入门第6期>学员的分享 呃提笔来写这个总结,貌似是上周发生的事了,但是不太想回忆,学习新东西会抱着满满的热情,但是 ...

  • KM生存分析如何取最佳的cutoff

    欢迎来到医科研,这里是白介素2的读书笔记,跟我一起聊临床与科研的故事, 生物医学数据挖掘,R语言,TCGA.GEO, SEER数据挖掘. KM生存分析 如何取最佳cutoff KM生存分析中通常取中位 ...

  • 生存分析有必要把连续值依据中位值进行高低分组变成分类变量吗

    前面的教程:estimate或者CIBERSORT结果真的是很好的临床预后指标吗,我们针对 estimate 的StromalSignature 和  ImmuneSignature 这样的打分值进行 ...

  • R语言生存分析: 时变竞争风险模型分析淋巴瘤患者

    原文链接:http://tecdat.cn/?p=22422 在本文中,我们描述了灵活的竞争风险回归模型.回归模型被指定为转移概率,也就是竞争性风险设置中的累积发生率.该模型包含Fine和Gray(1 ...

  • 【文献摘要】前庭神经鞘瘤的恶性转变:临床研究与生存分析

    <Frontiers in Oncology>杂志 2021 年4月14日在线发表四川大学华西医院的Jiuhong Li, Qiguang Wang, Menglan Zhang,等撰写的 ...

  • 生存分析,你真得了解吗? |

    在医学或者公共卫生研究中,慢性疾病的发生.发展.预后一般不适用于治愈率.病死率等指标来考核,因为其无法在短时间内明确判断预后情况,为此,只能对患者进行长期随访,统计一定时期后的生存或死亡情况以判断诊疗 ...

  • 应该知道的生存分析参数(收藏贴)

    在做生信分析的时候,尽管各种分析多到让人眼花缭乱,但是最重要的无外乎表达差异和生存参数,其余都是点缀.表达差异是前提,但是光有表达差异还不行.若A基因在肿瘤和正常组织中表达有差异,但是不影响生存参数, ...

  • R语言生存分析可视化分析

    完整原文链接:http://tecdat.cn/?p=5438 生存分析指的是一系列用来探究所感兴趣的事件的发生的时间的统计方法. 生存分析被用于各种领域,例如: 癌症研究为患者生存时间分析, &qu ...