目录

Python从零开始第五章生物信息学⑤生存分析(log-rank)

==================================================

==================================================

正文

生存分析(Survival analysis)是指根据试验或调查得到的数据对生物或人的生存时间进行分析和推断,研究生存时间和结局与众多影响因素间关系及其程度大小的方法,也称生存率分析或存活率分析。

生存分析适合于处理时间-事件数据,生存时间(survival time)是指从某起点事件开始到被观测对象出现终点事件所经历的时间,如从疾病的“确诊”到“死亡”。

生存时间有两种类型:完全数据(complete data)指被观测对象从观察起点到出现终点事件所经历的时间;截尾数据(consored data)或删失数据,指在出现终点事件前,被观测对象的观测过程终止了。由于被观测对象所提供的信息是不完全的,只知道他们的生存事件超过了截尾时间。截尾主要由于失访、退出和终止产生。

生存分析方法大体上可分为三类:非参数法、半参数方法和参数法,用Kaplan-Meier曲线(也称乘积极限法Product limit method)和寿命表法(Life table method)估计生存率和中位生存时间等是非参数的方法,半参数方法指Cox比例风险模型,参数方法指指数模型、Weibull模型、Gompertz模型等分析方法。

非参数法(log-rank)

Log-rank test to compare the survival curves of two or more groups(通过比较两组或者多组之间的的生存曲线,一般是生存率及其标准误,从而研究之间的差异,一般用log rank检验)

导入必须的python包

%reset -f

%clear

# In[*]

from matplotlib import pyplot as plt

import numpy as np

import pandas as pd

import lifelines as ll

from IPython.display import HTML

%matplotlib inline

import matplotlib.pyplot as plt

import seaborn as sns

import plotly.plotly as py

import plotly.tools as tls

from plotly.graph_objs import *

import os

from lifelines.estimation import KaplanMeierFitter

kmf = KaplanMeierFitter()

from lifelines.statistics import logrank_test

os.chdir("D:\\Rwork\\third\\Fig2")

读取数据

sur = pd.read_csv('entropy_surival.csv',header=0,index_col=0)

sur = sur[['sample','entr','PFI_status', 'PFI_time']]

sur['entr'] = np.where(sur['entr'] > sur['entr'].median(), 'high','low')

sur = sur.dropna(axis=0,how='any')

#sur_high = sur.loc[sur["PPP2R2B"] >sur["PPP2R2B"].median()]

#sur_high = sur_high.loc[:,['futime','fustat','PPP2R2B']]

#sur_high.head(5)

sur['entr']

绘制两组的生存曲线,且比较其P值

# In[*]

f_low = sur['entr'] == 'low'

T_low = sur[f_low]['PFI_time']

C_low = sur[f_low]['PFI_status']

kmf.fit(T_low,event_observed=C_low)

kmf.plot(title='low entr')

# In[*]

f_high = sur['entr'] == 'high'

T_high = sur[f_high]['PFI_time']

C_high = sur[f_high]['PFI_status']

kmf.fit(T_high,event_observed=C_high)

kmf.plot(title='high entr')

得到的结果如下所示:两组的生存存在不同(p< 0.05)

t_0=-1, alpha=0.95, null_distribution=chi squared, df=1

test_statistic p

7.5138 0.0061 **

---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

两组的各自生存曲线

python做生物信息学分析_Python从零开始第五章生物信息学⑤生存分析(log-rank)相关推荐

  1. python 做表格分析_Python 处理分析 128 张 Excel 表格竟不到3秒?| 附数据集

    原标题:Python 处理分析 128 张 Excel 表格竟不到3秒?| 附数据集 有不少旁友想要了解怎么用Python提升处理数据的效率,或者说怎么用Python自动处理多张Excel表格,于是乎 ...

  2. python做meta分析_python的MetaClass的代码分析。基于廖雪峰博客代码

    1 #一张表一个类,表内每一行就是一个实例 2 ''' 3 一个单独的元类使用的程序分析.4 ''' 5 6 classField(object):7 def __init__(self, name, ...

  3. 用python做频数分析_Python统计如何进行DNA序列整理

    Python统计在我们的使用中有很多的障碍,其中在DNA序列上的相关问题就需要我们不断的去学习.下面我们就向大家介绍有关的问题,希望在以后Python统计的使用过程中有所收获. 给定一堆DNA序列,即 ...

  4. 用python做频数分析_python实现读取类别频数数据画水平条形图

    1.数据分组-->频数分布表 环境配置: 1 importpandas as pd2 importnumpy as np3 import matplotlib.pyplot as plt 按照你 ...

  5. python做生存分析

    这里跟大家分享一下生存分析,并且介绍一个用python做生存分析的包. 生存分析 应用场景 生存分析最早在生物医学中使用的最多,用来预估某个群体的存活时间,后来被推广到了更广泛的领域.一个做生物的专家 ...

  6. 用python做舆情分析系统_如何用Python做舆情时间序列可视化?

    如何批量处理评论信息情感分析,并且在时间轴上可视化呈现?舆情分析并不难,让我们用Python来实现它吧. 痛点 你是一家连锁火锅店的区域经理,很注重顾客对餐厅的评价.从前,你苦恼的是顾客不爱写评价.最 ...

  7. Python编程从入门到实践第五章部分习题

    Python编程从入门到实践第五章部分习题 5-8 5-9` names = ['admin','zhang','li','zhao','song'] for name in names:if nam ...

  8. python中成绩分析函数_自学Python笔记:用Python做成绩分析(1)

    有朋友会问,刚学了一周,什么是面向对象都还不清楚就可以写程序?还有Python不是写"爬虫"吗? Python是面向对象的语言,函数.模块.数字.字符串都是对象,并且完全支持继承. ...

  9. python程序内存分析_python 如何测量运行中的程序内存 -- Valgrind

    介绍 通常我们可以用python profiler去分析应用程序中哪个模块被多次调用和那个程序部分运行的速度较为缓慢,但是并不能够准确给出我们应用程序在运行中在内存中占用的大小. 比如说在金融数据中会 ...

  10. 如何用python进行相关性分析_Python 数据相关性分析

    概述 在我们的工作中,会有一个这样的场景,有若干数据罗列在我们的面前,这组数据相互之间可能会存在一些联系,可能是此增彼涨,或者是负相关,也可能是没有关联,那么我们就需要一种能把这种关联性定量的工具来对 ...

最新文章

  1. FragmentTabHost中子项Fragment加载题
  2. 解决SSH连接Linux超时自动断开
  3. 皮一皮:一直情绪不稳的原因终于找到了!
  4. grub引导iso光盘[可用于ntfs]
  5. 线程间通信之eventfd
  6. php面向对象受保护,php面向对象二之封装,protected ,public,private权限管理
  7. 北京44岁程序员失业,感叹:编程估计没戏了,想去卖煎饼果子点背锅走人~
  8. Android Multimedia框架总结(五)多媒体基础概念
  9. Node.js因为OpenSSL安全问题推迟更新
  10. php无限极 left right,PHP超牛逼无限极分类生成树方法
  11. 计算机软件实习项目四 —— 校园一卡通管理系统 (代码实现) 12-27
  12. 小程序中集成赞赏功能
  13. 搜索词分析工具-网站关键词挖掘
  14. 回顾 丨破解初创科技企业的融资问题思享会
  15. java:下拉列表框组件
  16. Kvaser Leaf light HS v2 | 如何使用Excel发送和接收CAN报文数据
  17. linux实现cp拷贝命令的思路和源码
  18. JAVA实现MD5带盐加密_MD5加盐加密
  19. 华为RS升级变成datacome的问题
  20. POCO C++库入门指南(翻译)

热门文章

  1. 摩托罗拉linux软件下载,摩托罗拉手机软件驱动下载
  2. 摩托罗拉为什么要限制自家linux手机,很明显,这是一款配备Linux系统的智能手机,但摩托罗拉将其变成了功能机...
  3. 【零基础学JS -2】 适合编写JS的编辑器
  4. SpringMVC工作原理与工作流程
  5. vue+element+springboot前后端分离项目整合pageoffice实现在线编辑Word和Excel跟签章等
  6. 隐马尔可夫模型(HMM)推导详解
  7. 【杭电5053】the Sum of Cube
  8. 吊打本地搜索神器everthing,最快 最强的电脑本地搜索神器!
  9. dBm、dBW和W转换
  10. 矩阵与矩阵的转置相乘