comparison lifelines_tool/plotlykm.py @ 2:dd5e65893cb8 draft default tip

add survival and collapsed life table outputs suggested by Wolfgang
author fubar
date Thu, 10 Aug 2023 22:52:45 +0000
parents 232b874046a7
children
comparison
equal deleted inserted replaced
1:232b874046a7 2:dd5e65893cb8
96 kmf.fit(df[args.time], df[args.status]) 96 kmf.fit(df[args.time], df[args.status])
97 kmf.plot_survival_function(ax=ax) 97 kmf.plot_survival_function(ax=ax)
98 ax.set_title(args.title) 98 ax.set_title(args.title)
99 fig.savefig(os.path.join(args.image_dir,'KM_%s.png' % args.title)) 99 fig.savefig(os.path.join(args.image_dir,'KM_%s.png' % args.title))
100 print('#### No grouping variable, so no log rank or other Kaplan-Meier statistical output is available') 100 print('#### No grouping variable, so no log rank or other Kaplan-Meier statistical output is available')
101 survdf = lifelines.utils.survival_table_from_events(df[args.time], df[args.status])
102 lifedf = lifelines.utils.survival_table_from_events(df[args.time], df[args.status], collapse=True)
103 print("Survival table using time %s and event %s" % (args.time, args.status))
104 with pd.option_context('display.max_rows', None,
105 'display.max_columns', None,
106 'display.precision', 3,
107 ):
108 print(survdf)
109 print("Life table using time %s and event %s" % (args.time, args.status))
110 with pd.option_context('display.max_rows', None,
111 'display.max_columns', None,
112 'display.precision', 3,
113 ):
114 print(lifedf)
115 outpath = os.path.join(args.image_dir,'survival_table.tabular')
116 survdf.to_csv(outpath, sep='\t')
117 outpath = os.path.join(args.image_dir,'life_table.tabular')
118 lifedf.to_csv(outpath, sep='\t')
101 if len(args.cphcols) > 0: 119 if len(args.cphcols) > 0:
102 fig, ax = plt.subplots() 120 fig, ax = plt.subplots()
103 ax.set_title('Cox-PH model: %s' % args.title) 121 ax.set_title('Cox-PH model: %s' % args.title)
104 cphcols = args.cphcols.strip().split(',') 122 cphcols = args.cphcols.strip().split(',')
105 cphcols = [x.strip() for x in cphcols] 123 cphcols = [x.strip() for x in cphcols]