annotate plotly_tabular_tool/plotlytabular.xml @ 2:08cc7a481af8 draft

Uploaded
author fubar
date Fri, 28 Jul 2023 06:01:53 +0000
parents 449c918bc4cd
children 51a0c2e0fbdf
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-->
2
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
3 <!--Created by toolfactory@galaxy.org at 28/07/2023 15:52:28 using the Galaxy Tool Factory.-->
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
4 <description>Plotly plot generator for any small-ish Galaxy tabular data.</description>
0
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:
2
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
73 sys.stderr.write('replacing first row of data derived header %s with %s' % (testcols, defaultcols))
1
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"/>
2
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
101 <param name="xcol" type="text" value="sepal_length" label="x axis for plot" 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"/>
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
102 <param name="ycol" type="text" value="sepal_width" label="y axis for plot" 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"/>
1
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 "/>
2
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
104 <param name="hovercol" type="text" value="species_id" label="columname for hover string" 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"/>
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
105 <param name="title" type="text" value="Iris data" 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"/>
2
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
119 <param name="title" value="Iris data"/>
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
2
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
125 This is a generic version of the plotlyblast specific blastn Galaxy search output file plotter.
0
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
2
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
137 NOTE: Columns with very small scientific notation floats will need to be pre-scaled in a way that doesn't confuse plotly.express with their values.
0
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
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
174
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
175 ------
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
176
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
177
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
178 Script::
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
179
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
180 import argparse
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
181 import sys
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
182 import math
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
183 import plotly.express as px
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
184 import pandas as pd
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
185 # Ross Lazarus July 2023
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
186 # based on various plotly tutorials
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
187 parser = argparse.ArgumentParser()
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
188 a = parser.add_argument
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
189 a('--input_tab',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
190 a('--header',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
191 a('--htmlout',default="test_run.html")
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
192 a('--xcol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
193 a('--ycol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
194 a('--colourcol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
195 a('--hovercol',default='')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
196 a('--title',default='Default plot title')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
197 args = parser.parse_args()
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
198 isColour = False
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
199 isHover = False
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
200 if len(args.colourcol.strip()) > 0:
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
201 isColour = True
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
202 if len(args.hovercol.strip()) > 0:
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
203 isHover = True
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
204 df = pd.read_csv(args.input_tab, sep='\t')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
205 MAXLEN=35
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
206 NCOLS = df.columns.size
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
207 defaultcols = ['col%d' % (x+1) for x in range(NCOLS)]
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
208 testcols = df.columns
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
209 if len(args.header.strip()) > 0:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
210 newcols = args.header.split(',')
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
211 if len(newcols) == NCOLS:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
212 df.columns = newcols
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
213 else:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
214 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
215 df.columns = defaultcols
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
216 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
217 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
218 if not colsok:
2
08cc7a481af8 Uploaded
fubar
parents: 1
diff changeset
219 sys.stderr.write('replacing first row of data derived header %s with %s' % (testcols, defaultcols))
1
449c918bc4cd Uploaded
fubar
parents: 0
diff changeset
220 df.columns = defaultcols
0
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
221 #df['col11'] = [-math.log(x) for x in df['col11']] # convert so large values reflect statistical surprise
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
222 if isHover and isColour:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
223 fig = px.scatter(df, x=args.xcol, y=args.ycol, color=args.colourcol, hover_name=args.hovercol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
224 elif isHover:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
225 fig = px.scatter(df, x=args.xcol, y=args.ycol, hover_name=args.hovercol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
226 elif isColour:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
227 fig = px.scatter(df, x=args.xcol, y=args.ycol, color=args.colourcol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
228 else:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
229 fig = px.scatter(df, x=args.xcol, y=args.ycol)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
230 if args.title:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
231 ftitle=dict(text=args.title, font=dict(size=50))
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
232 fig.update_layout(title=ftitle)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
233 for scatter in fig.data:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
234 scatter['x'] = [str(x)[:MAXLEN] + '..' if len(str(x)) > MAXLEN else x for x in scatter['x']]
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
235 scatter['y'] = [str(x)[:MAXLEN] + '..' if len(str(x)) > MAXLEN else x for x in scatter['y']]
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
236 if len(args.colourcol.strip()) == 0:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
237 sl = str(scatter['legendgroup'])
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
238 if len(sl) > MAXLEN:
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
239 scatter['legendgroup'] = sl[:MAXLEN]
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
240 fig.write_html(args.htmlout)
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
241
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
242 ]]></help>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
243 <citations>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
244 <citation type="doi">10.1093/bioinformatics/bts573</citation>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
245 </citations>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
246 </tool>
7c166107a2e2 Uploaded
fubar
parents:
diff changeset
247