annotate PanExplorer_workflow/Python/Heatmap.py @ 1:032f6b3806a3 draft

Uploaded
author dereeper
date Thu, 30 May 2024 11:16:08 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
1 import numpy as np
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
2 import pandas as pd
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
3 import seaborn as sns
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
4 import plotly.express as px
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
5 import xarray as xr
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
6
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
7 import sys, getopt
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
8
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
9 np.bool = np.bool_
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
10
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
11
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
12 def main(argv):
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
13 inputfile = ''
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
14 outputfile = ''
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
15 try:
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
16 opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
17 except getopt.GetoptError:
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
18 print ('Heatmap.py -i <inputfile> -o <outputfile>')
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
19 sys.exit(2)
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
20 for opt, arg in opts:
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
21 if opt == '-h':
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
22 print ('Heatmap.py -i <inputfile> -o <outputfile>')
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
23 sys.exit()
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
24 elif opt in ("-i", "--ifile"):
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
25 inputfile = arg
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
26 elif opt in ("-o", "--ofile"):
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
27 outputfile = arg
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
28 print ('Input file is "', inputfile)
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
29 print ('Output file is "', outputfile)
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
30
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
31 data = pd.read_csv(inputfile, sep='\t')
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
32
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
33 #data.drop(columns=data.columns[0], axis=1, inplace=True)
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
34
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
35 data2 = pd.read_csv(inputfile, sep='\t', header=None)
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
36 data2.drop(index=data2.index[0], axis=0, inplace=True)
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
37 data3 = data2[data2.columns[1:]]
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
38 data3_transposed = data3.T
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
39
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
40 myList = list(data.columns)
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
41 del myList[0]
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
42
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
43 myClusters = list(data['ClutserID'])
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
44
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
45 fig = px.imshow(data3_transposed,
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
46 x=myClusters,
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
47 y=myList,
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
48 labels=dict(y="Strains", x="Clusters"),
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
49 height = 900,width = 900,
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
50 color_continuous_scale=["lightgrey", "red","green"]
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
51 )
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
52
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
53 fig.update_traces(hovertemplate="<br>".join(["Cluster: %{x}","Strain: %{y}"]))
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
54 fig.update_coloraxes(showscale=False)
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
55 fig.update_layout(xaxis_scaleanchor="x")
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
56 fig.write_html(outputfile)
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
57
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
58 if __name__ == "__main__":
032f6b3806a3 Uploaded
dereeper
parents:
diff changeset
59 main(sys.argv[1:])