annotate lifelines_tool/lifelineskmcph.xml @ 0:dd49a7040643 draft

Initial commit
author fubar
date Wed, 09 Aug 2023 11:12:16 +0000
parents
children 232b874046a7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dd49a7040643 Initial commit
fubar
parents:
diff changeset
1 <tool name="lifelineskmcph" id="lifelineskmcph" version="0.01">
dd49a7040643 Initial commit
fubar
parents:
diff changeset
2 <!--Source in git at: https://github.com/fubar2/galaxy_tf_overlay-->
dd49a7040643 Initial commit
fubar
parents:
diff changeset
3 <!--Created by toolfactory@galaxy.org at 09/08/2023 17:43:16 using the Galaxy Tool Factory.-->
dd49a7040643 Initial commit
fubar
parents:
diff changeset
4 <description>Lifelines KM and optional Cox PH models</description>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
5 <requirements>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
6 <requirement version="1.5.3" type="package">pandas</requirement>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
7 <requirement version="3.7.2" type="package">matplotlib</requirement>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
8 <requirement version="0.27.7" type="package">lifelines</requirement>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
9 </requirements>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
10 <stdio>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
11 <exit_code range="1:" level="fatal"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
12 </stdio>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
13 <version_command><![CDATA[echo "0.01"]]></version_command>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
14 <command><![CDATA[python
dd49a7040643 Initial commit
fubar
parents:
diff changeset
15 $runme
dd49a7040643 Initial commit
fubar
parents:
diff changeset
16 --input_tab
dd49a7040643 Initial commit
fubar
parents:
diff changeset
17 $input_tab
dd49a7040643 Initial commit
fubar
parents:
diff changeset
18 --readme
dd49a7040643 Initial commit
fubar
parents:
diff changeset
19 $readme
dd49a7040643 Initial commit
fubar
parents:
diff changeset
20 --time
dd49a7040643 Initial commit
fubar
parents:
diff changeset
21 '$time'
dd49a7040643 Initial commit
fubar
parents:
diff changeset
22 --status
dd49a7040643 Initial commit
fubar
parents:
diff changeset
23 '$status'
dd49a7040643 Initial commit
fubar
parents:
diff changeset
24 --cphcols
dd49a7040643 Initial commit
fubar
parents:
diff changeset
25 '$CPHcovariatecolumnnames'
dd49a7040643 Initial commit
fubar
parents:
diff changeset
26 --title
dd49a7040643 Initial commit
fubar
parents:
diff changeset
27 '$title'
dd49a7040643 Initial commit
fubar
parents:
diff changeset
28 --header
dd49a7040643 Initial commit
fubar
parents:
diff changeset
29 '$header'
dd49a7040643 Initial commit
fubar
parents:
diff changeset
30 --group
dd49a7040643 Initial commit
fubar
parents:
diff changeset
31 '$group'
dd49a7040643 Initial commit
fubar
parents:
diff changeset
32 --image_type
dd49a7040643 Initial commit
fubar
parents:
diff changeset
33 '$image_type'
dd49a7040643 Initial commit
fubar
parents:
diff changeset
34 --image_dir
dd49a7040643 Initial commit
fubar
parents:
diff changeset
35 'image_dir']]></command>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
36 <configfiles>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
37 <configfile name="runme"><![CDATA[#raw
dd49a7040643 Initial commit
fubar
parents:
diff changeset
38
dd49a7040643 Initial commit
fubar
parents:
diff changeset
39 # script for a lifelines ToolFactory KM/CPH tool for Galaxy
dd49a7040643 Initial commit
fubar
parents:
diff changeset
40 # km models for https://github.com/galaxyproject/tools-iuc/issues/5393
dd49a7040643 Initial commit
fubar
parents:
diff changeset
41 # test as
dd49a7040643 Initial commit
fubar
parents:
diff changeset
42 # python plotlykm.py --input_tab rossi.tab --htmlout "testfoo" --time "week" --status "arrest" --title "test" --image_dir images --cphcol="prio,age,race,paro,mar,fin"
dd49a7040643 Initial commit
fubar
parents:
diff changeset
43
dd49a7040643 Initial commit
fubar
parents:
diff changeset
44 import argparse
dd49a7040643 Initial commit
fubar
parents:
diff changeset
45 import os
dd49a7040643 Initial commit
fubar
parents:
diff changeset
46 import sys
dd49a7040643 Initial commit
fubar
parents:
diff changeset
47
dd49a7040643 Initial commit
fubar
parents:
diff changeset
48 import lifelines
dd49a7040643 Initial commit
fubar
parents:
diff changeset
49
dd49a7040643 Initial commit
fubar
parents:
diff changeset
50 from matplotlib import pyplot as plt
dd49a7040643 Initial commit
fubar
parents:
diff changeset
51
dd49a7040643 Initial commit
fubar
parents:
diff changeset
52 import pandas as pd
dd49a7040643 Initial commit
fubar
parents:
diff changeset
53
dd49a7040643 Initial commit
fubar
parents:
diff changeset
54 # Ross Lazarus July 2023
dd49a7040643 Initial commit
fubar
parents:
diff changeset
55
dd49a7040643 Initial commit
fubar
parents:
diff changeset
56
dd49a7040643 Initial commit
fubar
parents:
diff changeset
57 kmf = lifelines.KaplanMeierFitter()
dd49a7040643 Initial commit
fubar
parents:
diff changeset
58 cph = lifelines.CoxPHFitter()
dd49a7040643 Initial commit
fubar
parents:
diff changeset
59
dd49a7040643 Initial commit
fubar
parents:
diff changeset
60 parser = argparse.ArgumentParser()
dd49a7040643 Initial commit
fubar
parents:
diff changeset
61 a = parser.add_argument
dd49a7040643 Initial commit
fubar
parents:
diff changeset
62 a('--input_tab', default='', required=True)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
63 a('--header', default='')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
64 a('--htmlout', default="test_run.html")
dd49a7040643 Initial commit
fubar
parents:
diff changeset
65 a('--group', default='')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
66 a('--time', default='', required=True)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
67 a('--status',default='', required=True)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
68 a('--cphcols',default='')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
69 a('--title', default='Default plot title')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
70 a('--image_type', default='png')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
71 a('--image_dir', default='images')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
72 a('--readme', default='run_log.txt')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
73 args = parser.parse_args()
dd49a7040643 Initial commit
fubar
parents:
diff changeset
74 sys.stdout = open(args.readme, 'w')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
75 df = pd.read_csv(args.input_tab, sep='\t')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
76 NCOLS = df.columns.size
dd49a7040643 Initial commit
fubar
parents:
diff changeset
77 NROWS = len(df.index)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
78 defaultcols = ['col%d' % (x+1) for x in range(NCOLS)]
dd49a7040643 Initial commit
fubar
parents:
diff changeset
79 testcols = df.columns
dd49a7040643 Initial commit
fubar
parents:
diff changeset
80 if len(args.header.strip()) > 0:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
81 newcols = args.header.split(',')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
82 if len(newcols) == NCOLS:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
83 if (args.time in newcols) and (args.status in newcols):
dd49a7040643 Initial commit
fubar
parents:
diff changeset
84 df.columns = newcols
dd49a7040643 Initial commit
fubar
parents:
diff changeset
85 else:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
86 sys.stderr.write('## CRITICAL USAGE ERROR (not a bug!): time %s and/or status %s not found in supplied header parameter %s' % (args.time, args.status, args.header))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
87 sys.exit(4)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
88 else:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
89 sys.stderr.write('## CRITICAL USAGE ERROR (not a bug!): Supplied header %s has %d comma delimited header names - does not match the input tabular file %d columns' % (args.header, len(newcols), NCOLS))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
90 sys.exit(5)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
91 else: # no header supplied - check for a real one that matches the x and y axis column names
dd49a7040643 Initial commit
fubar
parents:
diff changeset
92 colsok = (args.time in testcols) and (args.status in testcols) # if they match, probably ok...should use more code and logic..
dd49a7040643 Initial commit
fubar
parents:
diff changeset
93 if colsok:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
94 df.columns = testcols # use actual header
dd49a7040643 Initial commit
fubar
parents:
diff changeset
95 else:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
96 colsok = (args.time in defaultcols) and (args.status in defaultcols)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
97 if colsok:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
98 sys.stderr.write('replacing first row of data derived header %s with %s' % (testcols, defaultcols))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
99 df.columns = defaultcols
dd49a7040643 Initial commit
fubar
parents:
diff changeset
100 else:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
101 sys.stderr.write('## CRITICAL USAGE ERROR (not a bug!): time %s and status %s do not match anything in the file header, supplied header or automatic default column names %s' % (args.time, args.status, defaultcols))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
102 print('## Lifelines tool starting.\nUsing data header =', df.columns, 'time column =', args.time, 'status column =', args.status)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
103 os.makedirs(args.image_dir, exist_ok=True)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
104 fig, ax = plt.subplots()
dd49a7040643 Initial commit
fubar
parents:
diff changeset
105 if args.group > '':
dd49a7040643 Initial commit
fubar
parents:
diff changeset
106 names = []
dd49a7040643 Initial commit
fubar
parents:
diff changeset
107 times = []
dd49a7040643 Initial commit
fubar
parents:
diff changeset
108 events = []
dd49a7040643 Initial commit
fubar
parents:
diff changeset
109 rmst = []
dd49a7040643 Initial commit
fubar
parents:
diff changeset
110 for name, grouped_df in df.groupby(args.group):
dd49a7040643 Initial commit
fubar
parents:
diff changeset
111 T = grouped_df[args.time]
dd49a7040643 Initial commit
fubar
parents:
diff changeset
112 E = grouped_df[args.status]
dd49a7040643 Initial commit
fubar
parents:
diff changeset
113 gfit = kmf.fit(T, E, label=name)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
114 kmf.plot_survival_function(ax=ax)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
115 rst = lifelines.utils.restricted_mean_survival_time(gfit)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
116 rmst.append(rst)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
117 names.append(str(name))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
118 times.append(T)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
119 events.append(E)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
120 ax.set_title(args.title)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
121 fig.savefig(os.path.join(args.image_dir,'KM_%s.png' % args.title))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
122 ngroup = len(names)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
123 if ngroup == 2: # run logrank test if 2 groups
dd49a7040643 Initial commit
fubar
parents:
diff changeset
124 results = lifelines.statistics.logrank_test(times[0], times[1], events[0], events[1], alpha=.99)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
125 print('Logrank test for %s - %s vs %s\n' % (args.group, names[0], names[1]))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
126 results.print_summary()
dd49a7040643 Initial commit
fubar
parents:
diff changeset
127 elif ngroup > 1:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
128 fig, ax = plt.subplots(nrows=ngroup, ncols=1, sharex=True)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
129 for i, rst in rmst:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
130 lifelines.plotting.rmst_plot(rst, ax=ax)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
131 fig.savefig(os.path.join(args.image_dir,'RMST_%s.png' % args.title))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
132 else:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
133 kmf.fit(df[args.time], df[args.status])
dd49a7040643 Initial commit
fubar
parents:
diff changeset
134 kmf.plot_survival_function(ax=ax)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
135 ax.set_title(args.title)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
136 fig.savefig(os.path.join(args.image_dir,'KM_%s.png' % args.title))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
137 if len(args.cphcols) > 0:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
138 fig, ax = plt.subplots()
dd49a7040643 Initial commit
fubar
parents:
diff changeset
139 ax.set_title('Cox PH model: %s' % args.title)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
140 cphcols = args.cphcols.strip().split(',')
dd49a7040643 Initial commit
fubar
parents:
diff changeset
141 cphcols = [x.strip() for x in cphcols]
dd49a7040643 Initial commit
fubar
parents:
diff changeset
142 notfound = sum([(x not in df.columns) for x in cphcols])
dd49a7040643 Initial commit
fubar
parents:
diff changeset
143 if notfound > 0:
dd49a7040643 Initial commit
fubar
parents:
diff changeset
144 sys.stderr.write('## CRITICAL USAGE ERROR (not a bug!): One or more requested Cox PH columns %s not found in supplied column header %s' % (args.cphcols, df.columns))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
145 sys.exit(6)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
146 print('### Lifelines test of Proportional Hazards results with %s as covariates on %s' % (', '.join(cphcols), args.title))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
147 cphcols += [args.time, args.status]
dd49a7040643 Initial commit
fubar
parents:
diff changeset
148 cphdf = df[cphcols]
dd49a7040643 Initial commit
fubar
parents:
diff changeset
149 cph.fit(cphdf, duration_col=args.time, event_col=args.status)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
150 cph.print_summary()
dd49a7040643 Initial commit
fubar
parents:
diff changeset
151 cphaxes = cph.check_assumptions(cphdf, p_value_threshold=0.01, show_plots=True)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
152 for i, ax in enumerate(cphaxes):
dd49a7040643 Initial commit
fubar
parents:
diff changeset
153 figr = ax[0].get_figure()
dd49a7040643 Initial commit
fubar
parents:
diff changeset
154 titl = figr._suptitle.get_text().replace(' ','_').replace("'","")
dd49a7040643 Initial commit
fubar
parents:
diff changeset
155 oname = os.path.join(args.image_dir,'CPH%s.%s' % (titl, args.image_type))
dd49a7040643 Initial commit
fubar
parents:
diff changeset
156 figr.savefig(oname)
dd49a7040643 Initial commit
fubar
parents:
diff changeset
157
dd49a7040643 Initial commit
fubar
parents:
diff changeset
158
dd49a7040643 Initial commit
fubar
parents:
diff changeset
159 #end raw]]></configfile>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
160 </configfiles>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
161 <inputs>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
162 <param name="input_tab" type="data" optional="false" label="Tabular input file for failure time testing." help="Must have a column with a measure of time and status (0,1) at observation." format="tabular" multiple="false"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
163 <param name="time" type="text" value="week" label="Name of column containing a time to observation" help="Use a column name from the file header if the data has one, or use one from the list supplied below, or use col1....colN otherwise to select the correct column"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
164 <param name="status" type="text" value="arrest" label="Status at observation. Typically 1=alive, 0=deceased for life-table observations" help="Use a column name from the header if the file has one, or use one from the list supplied below, or use col1....colN otherwise to select the correct column"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
165 <param name="CPHcovariatecolumnnames" type="text" value="prio,age,race,paro,mar,fin" label="Optional comma delimited column names to use as covariates in the Cox Proportional Hazards model" help="Leave blank for no Cox PH model tests "/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
166 <param name="title" type="text" value="KM and CPH in lifelines test" label="Title for this lifelines analysis" help="Special characters will probably be escaped so do not use them"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
167 <param name="header" type="text" value="" label="Optional comma delimited list of column names to use for this tabular file. Default is None when col1...coln will be used if no header row in the input data" help="The column names supplied for time, status and so on MUST match either this supplied list, or if none, the original file header if it exists, or col1...coln as the default of last resort."/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
168 <param name="group" type="text" value="race" label="Optional group column name for KM plot" help="If there are exactly 2 groups, a log-rank statistic will be generated as part of the Kaplan-Meier test."/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
169 <param name="image_type" type="select" label="Output format for all images" help="">
dd49a7040643 Initial commit
fubar
parents:
diff changeset
170 <option value="png">Portable Network Graphics .png format</option>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
171 <option value="jpg">JPEG</option>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
172 <option value="pdf">PDF</option>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
173 <option value="tiff">TIFF</option>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
174 </param>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
175 </inputs>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
176 <outputs>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
177 <collection name="image_dir" type="list" label="Images from $title on $input_tab.element_identifier">
dd49a7040643 Initial commit
fubar
parents:
diff changeset
178 <discover_datasets pattern="__name_and_ext__" directory="image_dir" visible="false"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
179 </collection>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
180 <data name="readme" format="txt" label="Lifelines_km_cph $title on $input_tab.element_identifier" hidden="false"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
181 </outputs>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
182 <tests>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
183 <test>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
184 <output_collection name="image_dir"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
185 <output name="readme" value="readme_sample" compare="sim_size" delta="1000"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
186 <param name="input_tab" value="input_tab_sample"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
187 <param name="time" value="week"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
188 <param name="status" value="arrest"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
189 <param name="CPHcovariatecolumnnames" value="prio,age,race,paro,mar,fin"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
190 <param name="title" value="KM and CPH in lifelines test"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
191 <param name="header" value=""/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
192 <param name="group" value="race"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
193 <param name="image_type" value="png"/>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
194 </test>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
195 </tests>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
196 <help><![CDATA[
dd49a7040643 Initial commit
fubar
parents:
diff changeset
197
dd49a7040643 Initial commit
fubar
parents:
diff changeset
198 This is a wrapper for some elementary life table analysis functions from the Lifelines package - see https://lifelines.readthedocs.io/en/latest for the full story
dd49a7040643 Initial commit
fubar
parents:
diff changeset
199
dd49a7040643 Initial commit
fubar
parents:
diff changeset
200
dd49a7040643 Initial commit
fubar
parents:
diff changeset
201
dd49a7040643 Initial commit
fubar
parents:
diff changeset
202 Given a Galaxy tabular dataset with suitable indicators for time and status at observation, this tool can perform some simple life-table analyses and produce some useful plots. Kaplan-Meier is the default. Cox Proportional Hazards model will be tested if covariates to include are provided.
dd49a7040643 Initial commit
fubar
parents:
diff changeset
203
dd49a7040643 Initial commit
fubar
parents:
diff changeset
204
dd49a7040643 Initial commit
fubar
parents:
diff changeset
205
dd49a7040643 Initial commit
fubar
parents:
diff changeset
206 1. Kaplan-Meier survival analysis - see https://lifelines.readthedocs.io/en/latest/Survival%20analysis%20with%20lifelines.html
dd49a7040643 Initial commit
fubar
parents:
diff changeset
207
dd49a7040643 Initial commit
fubar
parents:
diff changeset
208 This is always performed and a survival curve is plotted.
dd49a7040643 Initial commit
fubar
parents:
diff changeset
209
dd49a7040643 Initial commit
fubar
parents:
diff changeset
210 If there is an optional "group" column, the plot will show each group separately. If there are *exactly* two groups, a log-rank test for difference is performed and reported
dd49a7040643 Initial commit
fubar
parents:
diff changeset
211
dd49a7040643 Initial commit
fubar
parents:
diff changeset
212
dd49a7040643 Initial commit
fubar
parents:
diff changeset
213
dd49a7040643 Initial commit
fubar
parents:
diff changeset
214 2. The Cox Proportional Hazards model can be tested, if a comma separated list of covariate column names is supplied on the tool form.
dd49a7040643 Initial commit
fubar
parents:
diff changeset
215
dd49a7040643 Initial commit
fubar
parents:
diff changeset
216 These are used in as covariates.
dd49a7040643 Initial commit
fubar
parents:
diff changeset
217
dd49a7040643 Initial commit
fubar
parents:
diff changeset
218 Although not usually a real problem, some diagnostics and advice about the assumption of proportional hazards are are also provided as outputs - see https://lifelines.readthedocs.io/en/latest/Survival%20Regression.html
dd49a7040643 Initial commit
fubar
parents:
diff changeset
219
dd49a7040643 Initial commit
fubar
parents:
diff changeset
220
dd49a7040643 Initial commit
fubar
parents:
diff changeset
221
dd49a7040643 Initial commit
fubar
parents:
diff changeset
222 A big shout out to the lifelines authors - no R code needed - nice job, thanks!
dd49a7040643 Initial commit
fubar
parents:
diff changeset
223
dd49a7040643 Initial commit
fubar
parents:
diff changeset
224 ]]></help>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
225 <citations>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
226 <citation type="doi">10.1093/bioinformatics/bts573</citation>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
227 </citations>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
228 </tool>
dd49a7040643 Initial commit
fubar
parents:
diff changeset
229