comparison paracords_plot.py @ 1:7b21a9b5922f draft

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/plotly_parallel_coordinates_plot commit 7ba5d8f0e920dccbc82588e4f4a7b9039dc3ea36
author bgruening
date Wed, 10 Oct 2018 02:29:28 -0400
parents 7b2455348edf
children 9958188c6195
comparison
equal deleted inserted replaced
0:7b2455348edf 1:7b21a9b5922f
2 import argparse 2 import argparse
3 import plotly 3 import plotly
4 import plotly.graph_objs as go 4 import plotly.graph_objs as go
5 import pandas as pd 5 import pandas as pd
6 6
7 def main(infile, col_dimensions, col_color): 7 def main(infile, col_dimensions, categorized, col_color):
8 """ 8 """
9 Produce an interactive paracords plotting html 9 Produce an interactive paracords plotting html
10 Args: 10 Args:
11 infile: str, tabular file 11 infile: str, tabular file
12 col_dimensions: str, comma separated index numbers. For example: "3,4,5" 12 col_dimensions: str, comma separated index numbers. For example: "3,4,5"
16 16
17 dimensions = [] 17 dimensions = []
18 col_dimensions = [int(x)-1 for x in col_dimensions.split(',')] 18 col_dimensions = [int(x)-1 for x in col_dimensions.split(',')]
19 for col in col_dimensions: 19 for col in col_dimensions:
20 values = df[df.columns[col]] 20 values = df[df.columns[col]]
21 if all(type(e) is int for e in values ): 21 if categorized == 'boolfalse' and all(type(e) is int for e in values ):
22 dimensions.append( 22 dimensions.append(
23 dict( values = values, 23 dict( values = values,
24 tickformat = ",.2r", 24 tickformat = ",.2r",
25 label = df.columns[col]) 25 label = df.columns[col])
26 ) 26 )
27 elif all(type(e) is float for e in values ): 27 elif categorized == 'boolfalse' and all(type(e) is float for e in values ):
28 dimensions.append( 28 dimensions.append(
29 dict( values = values, 29 dict( values = values,
30 tickformat = "g", 30 tickformat = "g",
31 label = df.columns[col]) 31 label = df.columns[col])
32 ) 32 )
33 else: 33 else:
34 unique_values = list(set(values)) 34 unique_values = list(set(values))
35 unique_values.sort()
35 dimensions.append( 36 dimensions.append(
36 dict( range = [0, len(unique_values)-1], 37 dict( range = [0, len(unique_values)-1],
37 tickvals = list(range(len(unique_values))), 38 tickvals = list(range(len(unique_values))),
38 ticktext = [str(e) for e in unique_values], 39 ticktext = [str(e) for e in unique_values],
39 values = list(map(lambda e: unique_values.index(e), values )), 40 values = list(map(lambda e: unique_values.index(e), values )),
75 76
76 if __name__ == "__main__": 77 if __name__ == "__main__":
77 aparser = argparse.ArgumentParser() 78 aparser = argparse.ArgumentParser()
78 aparser.add_argument( "-i", "--input", dest="infile", required=True) 79 aparser.add_argument( "-i", "--input", dest="infile", required=True)
79 aparser.add_argument( "-d", "--col_dimensions", dest="col_dimensions") 80 aparser.add_argument( "-d", "--col_dimensions", dest="col_dimensions")
81 aparser.add_argument( "-t", "--categorized_datatype", dest="categorized")
80 aparser.add_argument( "-c", "--col_color", dest="col_color") 82 aparser.add_argument( "-c", "--col_color", dest="col_color")
81 args = aparser.parse_args() 83 args = aparser.parse_args()
82 84
83 main(args.infile, args.col_dimensions, args.col_color) 85 main(args.infile, args.col_dimensions, args.categorized, args.col_color)