annotate plotly_tabular_tool/plotlytabular.xml @ 1:449c918bc4cd draft

Uploaded
author fubar
date Fri, 28 Jul 2023 03:44:26 +0000
parents 7c166107a2e2
children 08cc7a481af8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
1 <tool name="plotlytabular" id="plotlytabular" version="3.0">
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
2 <!--Source in git at: https://github.com/fubar2/galaxy_tf_overlay-->
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
3 <!--Created by toolfactory@galaxy.org at 28/07/2023 13:36:22 using the Galaxy Tool Factory.-->
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
4 <description>Plotly plot generator</description>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
5 <requirements>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
6 <requirement version="1.5.3" type="package">pandas</requirement>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
7 <requirement version="5.9.0" type="package">plotly</requirement>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
8 </requirements>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
9 <stdio>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
10 <exit_code range="1:" level="fatal"/>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
11 </stdio>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
12 <version_command><![CDATA[echo "3.0"]]></version_command>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
13 <command><![CDATA[python
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
14 $runme
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
15 --input_tab
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
16 $input_tab
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
17 --htmlout
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
18 $htmlout
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
19 --xcol
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
20 "$xcol"
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
21 --ycol
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
22 "$ycol"
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
23 --colourcol
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
24 "$colourcol"
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
25 --hovercol
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
26 "$hovercol"
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
27 --title
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
28 "$title"
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
29 --header
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
30 "$header"]]></command>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
31 <configfiles>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
32 <configfile name="runme"><![CDATA[#raw
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
33
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
34 import argparse
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
35 import sys
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
36 import math
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
37 import plotly.express as px
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
38 import pandas as pd
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
39 # Ross Lazarus July 2023
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
40 # based on various plotly tutorials
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
41 parser = argparse.ArgumentParser()
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
42 a = parser.add_argument
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
43 a('--input_tab',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
44 a('--header',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
45 a('--htmlout',default="test_run.html")
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
46 a('--xcol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
47 a('--ycol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
48 a('--colourcol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
49 a('--hovercol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
50 a('--title',default='Default plot title')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
51 args = parser.parse_args()
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
52 isColour = False
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
53 isHover = False
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
54 if len(args.colourcol.strip()) > 0:
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
55 isColour = True
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
56 if len(args.hovercol.strip()) > 0:
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
57 isHover = True
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
58 df = pd.read_csv(args.input_tab, sep='\t')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
59 MAXLEN=35
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
60 NCOLS = df.columns.size
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
61 defaultcols = ['col%d' % (x+1) for x in range(NCOLS)]
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
62 testcols = df.columns
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
63 if len(args.header.strip()) > 0:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
64 newcols = args.header.split(',')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
65 if len(newcols) == NCOLS:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
66 df.columns = newcols
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
67 else:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
68 sys.stderr.write('#### Supplied header %s has %d comma delimited header names - does not match the input tabular file %d columns - using col1,...coln' % (args.header, len(newcols), NCOLS))
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
69 df.columns = defaultcols
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
70 else: # no header supplied - check for a real one that matches the x and y axis column names
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
71 colsok = (args.xcol in testcols) and (args.ycol in testcols) # if they match, probably ok...should use more code and logic..
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
72 if not colsok:
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
73 sys.stderr.write('replacing supplied header %s over existing %s' % (testcols, defaultcols))
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
74 df.columns = defaultcols
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
75 #df['col11'] = [-math.log(x) for x in df['col11']] # convert so large values reflect statistical surprise
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
76 if isHover and isColour:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
77 fig = px.scatter(df, x=args.xcol, y=args.ycol, color=args.colourcol, hover_name=args.hovercol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
78 elif isHover:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
79 fig = px.scatter(df, x=args.xcol, y=args.ycol, hover_name=args.hovercol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
80 elif isColour:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
81 fig = px.scatter(df, x=args.xcol, y=args.ycol, color=args.colourcol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
82 else:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
83 fig = px.scatter(df, x=args.xcol, y=args.ycol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
84 if args.title:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
85 ftitle=dict(text=args.title, font=dict(size=50))
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
86 fig.update_layout(title=ftitle)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
87 for scatter in fig.data:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
88 scatter['x'] = [str(x)[:MAXLEN] + '..' if len(str(x)) > MAXLEN else x for x in scatter['x']]
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
89 scatter['y'] = [str(x)[:MAXLEN] + '..' if len(str(x)) > MAXLEN else x for x in scatter['y']]
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
90 if len(args.colourcol.strip()) == 0:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
91 sl = str(scatter['legendgroup'])
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
92 if len(sl) > MAXLEN:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
93 scatter['legendgroup'] = sl[:MAXLEN]
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
94 fig.write_html(args.htmlout)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
95
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
96
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
97 #end raw]]></configfile>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
98 </configfiles>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
99 <inputs>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
100 <param name="input_tab" type="data" optional="false" label="Tabular input file to plot" help="" format="tabular" multiple="false"/>
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
101 <param name="xcol" type="text" value="sepal_length" label="x axis for plot" help=""/>
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
102 <param name="ycol" type="text" value="sepal_width" label="y axis for plot" help=""/>
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
103 <param name="colourcol" type="text" value="petal_width" label="column containing a groupable variable for colour. Default none." help="Adds a legend so choose wisely "/>
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
104 <param name="hovercol" type="text" value="species_id" label="columname for hover string" help=""/>
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
105 <param name="title" type="text" value="Iris data sepal length by sepal width coloured by petal width with species_id as the hover column" label="Title for the plot" help="Special characters will probably be escaped so do not use them"/>
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
106 <param name="header" type="text" value="" label="Use this comma delimited list of column header names for this tabular file. Default is None when col1...coln will be used" help="Default for Galaxy blast outputs with 25 columns. The column names supplied for xcol, ycol, hover and colour MUST match either the supplied list, or if none, col1...coln."/>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
107 </inputs>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
108 <outputs>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
109 <data name="htmlout" format="html" label="htmlout" hidden="false"/>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
110 </outputs>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
111 <tests>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
112 <test>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
113 <output name="htmlout" value="htmlout_sample" compare="sim_size" delta="5000"/>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
114 <param name="input_tab" value="input_tab_sample"/>
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
115 <param name="xcol" value="sepal_length"/>
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
116 <param name="ycol" value="sepal_width"/>
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
117 <param name="colourcol" value="petal_width"/>
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
118 <param name="hovercol" value="species_id"/>
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
119 <param name="title" value="Iris data sepal length by sepal width coloured by petal width with species_id as the hover column"/>
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
120 <param name="header" value=""/>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
121 </test>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
122 </tests>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
123 <help><![CDATA[
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
124
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
125 This is a specialised version of a generic tabular file plotter tool plotlytabular
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
126
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
127
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
128
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
129 .. class:: warningmark
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
130
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
131 NOTE: Long strings in x and y tickmarks WILL BE TRUNCATED if they are too long - ".." is added to indicate truncation - otherwise some plots are squished.
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
132
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
133
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
134
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
135 .. class:: warningmark
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
136
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
137 NOTE: Blast evalues WILL BE TRANSFORMED using -log10(evalue), so they are scaled in a way that doesn't confuse plotly.express with the tiny values.
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
138
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
139
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
140
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
141 ----
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
142
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
143
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
144
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
145 The main reason to run this tool is to have an interactive hover text specified so it appears when hovering over each data point to supply useful information.
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
146
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
147
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
148
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
149 Assumes you want a hover display for an interactive plot to be informative
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
150
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
151
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
152
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
153 Column names are auto-generated as col1,...coln unless a comma separated list of column names is supplied as the header parameter.
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
154
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
155
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
156
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
157 For example, using a Galaxy blastn output with 25 columns, the following comma delimited string supplied as the "header" parameter will match the names of each column.
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
158
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
159 qaccver,saccver,piden,length,mismatch,gapopen,qstart,qend,sstart,send,evalue,bitscore,sallseqid,score,nident,positive,gaps,ppos,qframe,sframe,qseq,sseq,qlen,slen,salltitles
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
160
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
161
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
162
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
163 When a header is supplied, the xcol and other column names must match one of those supplied column names.
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
164
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
165 So for example, xcol = "qaccver" for the blastn header example rather than xcol = "col1" when no header is supplied.
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
166
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
167
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
168
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
169 Relies on Plotly python code released under the MIT licence: https://github.com/plotly/plotly.py/blob/master/LICENSE.txt
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
170
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
171
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
172
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
173 .. image:: pbsample.png
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
174
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
175 :height: 400
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
176
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
177 :width: 400
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
178
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
179
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
180
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
181 ------
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
182
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
183
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
184 Script::
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
185
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
186 import argparse
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
187 import sys
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
188 import math
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
189 import plotly.express as px
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
190 import pandas as pd
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
191 # Ross Lazarus July 2023
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
192 # based on various plotly tutorials
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
193 parser = argparse.ArgumentParser()
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
194 a = parser.add_argument
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
195 a('--input_tab',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
196 a('--header',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
197 a('--htmlout',default="test_run.html")
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
198 a('--xcol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
199 a('--ycol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
200 a('--colourcol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
201 a('--hovercol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
202 a('--title',default='Default plot title')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
203 args = parser.parse_args()
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
204 isColour = False
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
205 isHover = False
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
206 if len(args.colourcol.strip()) > 0:
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
207 isColour = True
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
208 if len(args.hovercol.strip()) > 0:
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
209 isHover = True
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
210 df = pd.read_csv(args.input_tab, sep='\t')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
211 MAXLEN=35
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
212 NCOLS = df.columns.size
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
213 defaultcols = ['col%d' % (x+1) for x in range(NCOLS)]
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
214 testcols = df.columns
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
215 if len(args.header.strip()) > 0:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
216 newcols = args.header.split(',')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
217 if len(newcols) == NCOLS:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
218 df.columns = newcols
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
219 else:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
220 sys.stderr.write('#### Supplied header %s has %d comma delimited header names - does not match the input tabular file %d columns - using col1,...coln' % (args.header, len(newcols), NCOLS))
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
221 df.columns = defaultcols
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
222 else: # no header supplied - check for a real one that matches the x and y axis column names
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
223 colsok = (args.xcol in testcols) and (args.ycol in testcols) # if they match, probably ok...should use more code and logic..
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
224 if not colsok:
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
225 sys.stderr.write('replacing supplied header %s over existing %s' % (testcols, defaultcols))
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
226 df.columns = defaultcols
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
227 #df['col11'] = [-math.log(x) for x in df['col11']] # convert so large values reflect statistical surprise
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
228 if isHover and isColour:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
229 fig = px.scatter(df, x=args.xcol, y=args.ycol, color=args.colourcol, hover_name=args.hovercol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
230 elif isHover:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
231 fig = px.scatter(df, x=args.xcol, y=args.ycol, hover_name=args.hovercol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
232 elif isColour:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
233 fig = px.scatter(df, x=args.xcol, y=args.ycol, color=args.colourcol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
234 else:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
235 fig = px.scatter(df, x=args.xcol, y=args.ycol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
236 if args.title:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
237 ftitle=dict(text=args.title, font=dict(size=50))
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
238 fig.update_layout(title=ftitle)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
239 for scatter in fig.data:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
240 scatter['x'] = [str(x)[:MAXLEN] + '..' if len(str(x)) > MAXLEN else x for x in scatter['x']]
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
241 scatter['y'] = [str(x)[:MAXLEN] + '..' if len(str(x)) > MAXLEN else x for x in scatter['y']]
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
242 if len(args.colourcol.strip()) == 0:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
243 sl = str(scatter['legendgroup'])
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
244 if len(sl) > MAXLEN:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
245 scatter['legendgroup'] = sl[:MAXLEN]
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
246 fig.write_html(args.htmlout)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
247
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
248 ]]></help>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
249 <citations>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
250 <citation type="doi">10.1093/bioinformatics/bts573</citation>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
251 </citations>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
252 </tool>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
253