From 91163471c866e61c4f607955e477a99591224a07 Mon Sep 17 00:00:00 2001 From: clinte14 Date: Wed, 6 Sep 2023 10:56:19 -0700 Subject: [PATCH] Introduced .html ouput file, various bug fixes --- __pycache__/blast_parse.cpython-310.pyc | Bin 0 -> 3211 bytes __pycache__/blast_parse.cpython-39.pyc | Bin 0 -> 3193 bytes __pycache__/correlation_calcs.cpython-310.pyc | Bin 0 -> 4168 bytes __pycache__/correlation_calcs.cpython-39.pyc | Bin 0 -> 4160 bytes __pycache__/create_visuals.cpython-310.pyc | Bin 0 -> 2403 bytes __pycache__/create_visuals.cpython-39.pyc | Bin 0 -> 1935 bytes __pycache__/housekeeping.cpython-310.pyc | Bin 0 -> 3161 bytes __pycache__/housekeeping.cpython-39.pyc | Bin 0 -> 3141 bytes correlation_calcs.py | 1 + create_visuals.py | 31 +++++++++++++++--- housekeeping.py | 14 +++++--- main.py | 2 +- 12 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 __pycache__/blast_parse.cpython-310.pyc create mode 100644 __pycache__/blast_parse.cpython-39.pyc create mode 100644 __pycache__/correlation_calcs.cpython-310.pyc create mode 100644 __pycache__/correlation_calcs.cpython-39.pyc create mode 100644 __pycache__/create_visuals.cpython-310.pyc create mode 100644 __pycache__/create_visuals.cpython-39.pyc create mode 100644 __pycache__/housekeeping.cpython-310.pyc create mode 100644 __pycache__/housekeeping.cpython-39.pyc diff --git a/__pycache__/blast_parse.cpython-310.pyc b/__pycache__/blast_parse.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..13507de006e631680672926cdff40532ce4cd609 GIT binary patch literal 3211 zcmZ8jTaVku73Pd6ilQ!iiR&AjfT+`KR5V&QY0$!0Z0o%^ULaY!UbovaHUzF_BypD_ zwKLRS6cQ+~=}Up2K>7!?kNq9}7kurL(dWJxZJck0@_N@4#JTXyIdjgO?>iGW8jgYI z^H=|3f15Xqf2+aehhp$M{N*FOn88SBctuM*qQ}&uXlYm)nx09DZ)MM7C1!qWcokM= z7FwHCn2ol|$d1vfzJxYoyG8QK_WIh^pT7FCOVrHlDWSFTU&mj5k5>Z2QN;;BeH*K$e$f!rTYCD{|gNj zXlQB;<&>U7;_^CX?HE|Oc6p_mYuWxoY}s+~>~LRn2d*D6SMXtc#NDO!r<)I+ZFc^+ zwYlr|L_BoYzI?Fr%x#|xLpO*<?Oq7x5T6da-a-RCafF+wS9T z*Ox&Y`C)jfXJ?w?C=4R*9*ZF1@`}AB7)WAQYfc9IvgLT3DAUJ5GH|2V^`(rvfuC^Z zF0HICxryJGztC{p-aZBE`_54j&H3**sj!-C6kn8^F?H(6fR zA8OD5_UJU9>nhJW`uIDrQ&uUhj4W2?iA|d1&JXiu zo&5B*Sj6NN6wG1b0tG8bw!p|pU*$N^aLdR_Km`RVN*9PIosrB;N>ej6&q-EJ%Nxdv zNoJ+iemSf3jg+L76$2v+^TW(e?fuHsW>}w9(<zJFBJjw8pF(#;=X6o;XQuT4&YNIj4~K-;VT(MnsvDHD*$^nN+5w^him; zS{>HWV-42)EAXB*v2HGFrVTcK!$@m4fNHc&vB9XH+I~;Ry>f$sLj^y6jSduEGk+?%7cOQrAM*a{e80-93 zXm5ArksI{fPr9y3CHL5uz{OE~z}XDXPkezj2^UgZ{N&=%!%O*h-(^8JDIld(KM;Ml z$V`B5Kx?)kA6N*eHx3MSfLBT^R z?cJqsvZZ#r{feySCBb_SUy)QO7WT~T#~W*t>hrHZZvXtZt>-Vi>h|NEC!6bAn>(0I zi`g_M?d_NUd;R*gSKEI4{22mgfaAdZHR#Q}9 zMX1ykRrOLe1|U|D@oaq{oq&0c9|rws$fHE&DV^ zo>zK7#6Xj|<&QuBtTiVZQ0&zT*6R#{M2e=GsVcl{O7R@k9e}w*?$uOZ@NO)aEIt$i zud4E(qw>J3LQ6+)#&Zg!E44WpIEUP+O8=6*%*Mf3(K|9+S za?$4nH(bZGT*b?5n8c<{aD#)^QZ23PnI@elCi?Sq5$!zv5bv9`N$Fqcf9U`1TNW{i zxC<3s70@?N9UTjQT}$ubd{r&g*dSBNC@Xzyq=u@U8^##{6QF|bn+Yo6zI8@aCH)SS zG^y;{(`rhX1ze(#pO>-{Dy^fq2bI)d)oCp)G3UmtI;++D^=Tt%o|EYu>M|H zE1Z-nPX&B%U(xkj0zOwLTVYKFdk24c2d@CZec@nhDzGFmK-aip{DU6SoubyXXii5g zw|2Nd&Y(Wg_Px9WxaVcf1n*{!v!W;i{4`qqy)vSX`i?Pqzl(C0pe*_Al`!u5pf@=<}`UB!*=(z~B=U5GV> z%%dO<6J)xa5d?N{+@T``}hk$9^0{xs}8n zc&q6sw`TVO3pM<7#PgC&gpvpYiF<`olUw5`07vCz;UDoZukvV&&>;3X#ofaKvxbr1 zs^_NW8_ht~S?pNPYg}|YED)Y@n)N!fpn);;P{ha510Uj(=M>*Mu;SI;^p%q(Na@IV zmXZv_yO~nGNQrIuEme?ha+6*o*T5``bkVZO2NX9DYMb-q8n}hNu9wue>qKlqxaEis z(1_3RLLg41SH-ojy{7Ir1!co97*`4ve|>$??4uW7+KjsF2+ex-$}nc*kguwAl!};c N8lX0io4ru~&5vPbWuE{5 literal 0 HcmV?d00001 diff --git a/__pycache__/blast_parse.cpython-39.pyc b/__pycache__/blast_parse.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f28175965d31bb7943ed6d425c4adbad08721cef GIT binary patch literal 3193 zcmZWsTW=f372a7cm*kR^D8=;+O|XECC=3$PxwH)oL9KOhqQa3~%dOgt4Q9m|k}EHF zshOcJ%g{d(Oo z@ciuTNBZZ6Vf<4KEGpzFb=-FkWB%Od@fbXMF?W?uc6N4J?!#`^ z7eO5PVR)=(XPn|F3?k+p@<1|iN!}6!$k^4K<$zt39FL_EeHh4r8^x|KMBEL0$*8-u zyt3pvyfGLq2KQu_#rgN zEOiQ5876k9Fa5t692sDoZMFyTkhQyTv23sNc(fZIwI2=E+h2VCWG()jMXWR8@gD2S zwi>L(IHfV?Eb6lMZs-fyQ4V9R(Q!84RhD)1@pmAnr~NN zBOys?*}%xge3q7z@?L3Lrr4iWk_zVjo;ry$tx)Wy#pfpfTB>oG+DZcd{?#`vL3%Z6 z&~jQ$YDtya*Nk5nX-zt^I<3)4;+&eG|KasW@2E!>b<+Bbsyd@O(^Pt-s35Hd>G+~` zI`=1JdOC-F^XXhtr;TeyQoV+JMn8vs;TohWtFW)0U>`B|zutea|0z7PsPVx#L5?R1 zY~GsuN5|P(933z&#Vo}3$BZAlI7!J6*qiH1LWMJec8I|4<6zy$A0h+BI`&njx4PoM z4SMc}T~~#Xd*}<~#6kR=(OE7(@;UZM#)X#n;rXM77h>`>ej&Bdld?6or6%_{^ z6$f4gTsm4A&&jh~vCYUJGwH5Z`0eJpR}v%E4H#I=qN=mGt|29F7L>6I+StyJ@jlCO z;VP!ZXK0MNMJ%&S=70+hdYhC@ht$-JIY%0%h3^JgG%d8Z(Ox&NfYK)X7WQ_PD_=bd zVQjp*e%`^!s`{z3f=o?n(!#e!VyJq#Zk!Nc0IKGmB~ktM>=UA@=Xa={vb0y8RuV#O zWF(6BX(273x;hGVP(2M=nO2hmb*{}Svf8~@o7UyrDVffr76Xf>jZ;-=$#fwx6YGY7 z^~F=rU!Ve3y`tJPlVW1gDx}-sU(*`Dl>kwIP#-)s(^6WN7$@Z$&>M4CF;__)Y601< zBu-N9najrhKlXpX_$LZQz9Zmt*^YVGQB7>vQJvY*fF0G>c2EPDv9L9{`6bRs6{S3J za7WQqTOe^RfwjsqrN8`k`29y{3Di(izt) z%RdT4X6K2J)$V-Ud33LXGRcFZNka!A&7)9Z+vMFmZ+8?Xx=U{^}}78fBVxJxKDnLUmIU{hA){s9ZK3X8^Y4Sb)OxNq1%)G+d!wan5uqmidF z^BwJZ_4CgT4Y;R_roGP0X+R1+V90fH1wY4Jv==dY2k)F!2A*62mekY=;rBt=boe{y_|MV64adT(;G)-B zRX3U(s38_OE4cE$zO-oM(VH)*qV7;!V_kW97}IgcR#Y$w^*`e}sX=^sq5RqZ0LgD- Af&c&j literal 0 HcmV?d00001 diff --git a/__pycache__/correlation_calcs.cpython-310.pyc b/__pycache__/correlation_calcs.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb4791c3593cfaca922bdb5deb472d423029c26f GIT binary patch literal 4168 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 literal 0 HcmV?d00001 diff --git a/__pycache__/correlation_calcs.cpython-39.pyc b/__pycache__/correlation_calcs.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be02ddc4b511791d7f05a6f14a1fc84fdcda28e3 GIT binary patch literal 4160 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 SoupYauuMuXexNrR@BIhH5Sdv3 literal 0 HcmV?d00001 diff --git a/__pycache__/create_visuals.cpython-39.pyc b/__pycache__/create_visuals.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..331bf971e92557bb2b6a256dd9e5b23800e278b8 GIT binary patch literal 1935 zcmb_d-EJH;6drqi_cxn#n>3}ATp?CM4MG&5s%nuEsl9-JpaN+mG@6XPyPnL9r?xlA zZf7N=a+^2cVsptA55ZelTp%GK_64}8#Lw~URs>M*@Mu2!oa3>NkI#1|?sS?Kw7V~U zAm4W_>t`ceZ5V_P;gyd8h(%Clg$R0_;oJ@#w9>huSKIv1ulpcu)O|B-5}P>RSYeB} z#Dl&~(C5~`U&3nE(Ew?$oR%3^iER|?=0k7Z19;_+0Ln@cK?Iw%F6_Bo;X~`I`*TO( z$|3HqMZCWC9L-(gFYJ}(63xBJP92bfT??=Q=vE$SUVzU}`(SgGm->sKLZk&Nv@bE~ zTp+aCt4lWix4pi8^M5; zh_h&=kZ=(V!URne7t`?eE8R($NVs{m6&iD?oiYZ0oRqU-;A`(omPTZ#Tf;0KMW=B#p;EVt)#0OzNu~X@q!A0dX1Pd> zS#nZPDZ_5Ug`gQ9MG{8zJ4?I{Cx7wL{+Q=(t^HCIt0@CTTFTv z&AD5-X}5A08uJ^lkH2}P;7Cd z@@nfY*;(8)V{&5$$Y=@!B=@f2xJ%Tuq)&ti0(%>>b6{(`nB>|YvXNvn8rq~}OT+Y~ zsYU}7`mu}>2(@S!<)6^%)Exh0bXnpBrR__7dO{$} zH)m9E2^oJvwR6mQrZ<&flZX|BB~(U3!E7!*+funXSC2R*y*{c2iYVqB#^I= z;U;0HR6wB^MP-~(*go{vzJ(i-s_0w+f$A8^us<@2JWjc|qOGS*uPEwi(|=EMr%<+} zcoU8v24-aw7jfN$WZS@wG59h*rQo!7OSldtwm>=Xg`tnwHSiXIwqb@C)FVM<_%fIg z6s4NfE4XbYbk~GjpUHeKKLD`orVUiIJ=8|QAK1pfdySs!ApD;v_|5BXp)J(Kebhwa z0em~?z@I2CNGvrjiEcvmGQXva9ScKa@jd_?g~rER6ylyynR99v(zu+8ca37hfMI^U h;uW_|RT8!D!Tp?*Nk$)-5-s6>YX!#J)zb=g{sP5M7^wgN literal 0 HcmV?d00001 diff --git a/__pycache__/housekeeping.cpython-310.pyc b/__pycache__/housekeeping.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b6f06e5da54f42b956613b0d541a8947a3bdf508 GIT binary patch literal 3161 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 Tov9>|%ihw#-8bEDxoiIc0)kl2 literal 0 HcmV?d00001 diff --git a/correlation_calcs.py b/correlation_calcs.py index 37bc16b..7e12e02 100755 --- a/correlation_calcs.py +++ b/correlation_calcs.py @@ -68,6 +68,7 @@ def correlation_calcs(flag_values): #need print statement here to console return Wij_df + def calc_mrs(Wij_df, flag_values): Wij_outerDict = {} gene_names = Wij_df.dtypes.index diff --git a/create_visuals.py b/create_visuals.py index bba942a..234bc0a 100755 --- a/create_visuals.py +++ b/create_visuals.py @@ -4,6 +4,8 @@ import os import numpy as np import graphviz +import networkx as nx +from pyvis.network import Network #https://towardsdatascience.com/visualising-stocks-correlations-with-networkx-88f2ee25362e #https://www.cl.cam.ac.uk/teaching/1314/L109/tutorial.pdf @@ -14,27 +16,48 @@ #https://stackoverflow.com/questions/32303217/how-to-use-pearson-correlation-as-distance-metric-in-scikit-learn-agglomerative #https://stats.stackexchange.com/questions/275720/does-any-other-clustering-algorithms-take-correlation-as-distance-metric-apart #https://online.stat.psu.edu/stat555/node/85/ -def create_network_map(Wij_df, flag_values, network_list): + +def create_network_map(flag_values, network_list): + #breakpoint() + for count, value in enumerate(network_list): + network_list[count][2] = '{:.4f}'.format(value[2]) +r # Create 'dot' engine style graphviz network visual network = graphviz.Digraph('Maximum_Related_Networks_dot', engine='dot', comment='') for i in network_list: edge_thickness = str(i[2]*5) - correlog_score = '{:.4f}'.format(i[2]) + correlog_score = i[2] network.edge(i[0], i[1], penwidth=edge_thickness, xlabel=correlog_score) network.render(directory=os.path.join(flag_values['output'], '05_final_outputs')) - # Create 'circl' engine style graphviz network visual + #DG = nx.DiGraph() + #DG.add_weighted_edges_from(network_list) + nx_graph = nx.DiGraph() + for item in network_list: + nx_graph.add_node(item[0]) + for item in network_list: + nx_graph.add_edge(item[0],item[1],label=item[2]) + + nt = Network('800px', '1080px') + nt.from_nx(nx_graph) + nt.toggle_physics(True) + nt.show_buttons(True) + os.chdir(os.path.join(flag_values['output'], '05_final_outputs')) + nt.write_html("MSR_network.html",notebook=False) + + # Create 'circo' engine style graphviz network visual network = graphviz.Digraph('Maximum_Related_Networks_circo', engine='circo', comment='') for i in network_list: edge_thickness = str(i[2]*5) - correlog_score = '{:.4f}'.format(i[2]) + correlog_score = correlog_score = i[2] network.edge(i[0], i[1], penwidth=edge_thickness, xlabel=correlog_score) network.render(directory=os.path.join(flag_values['output'], '05_final_outputs')) + #need print statement here to console def create_heatmap(Wij_df, flag_values): diff --git a/housekeeping.py b/housekeeping.py index a72700f..9c2c69e 100755 --- a/housekeeping.py +++ b/housekeeping.py @@ -1,6 +1,7 @@ import os.path import argparse, datetime, json import pandas as pd +import sys def create_folders(dir_path): dirs = ['00_log', '01_blast_input', @@ -43,9 +44,14 @@ def parse_flags(): arg_dict=vars(args) # Convert relative paths (eg './' in BASH) to absolute paths - arg_dict['input'] = os.path.abspath(arg_dict['input']) - arg_dict['output'] = os.path.abspath(arg_dict['output']) - arg_dict['common_name'] = os.path.abspath(arg_dict['common_name']) + if arg_dict['input']!=None: + arg_dict['input'] = os.path.abspath(arg_dict['input']) + + if arg_dict['output']!=None: + arg_dict['output'] = os.path.abspath(arg_dict['output']) + + if arg_dict['common_name']!=None: + arg_dict['common_name'] = os.path.abspath(arg_dict['common_name']) print("dir_path: " + str(dir_path)) return arg_dict @@ -107,7 +113,7 @@ def convert_protID_to_common_names(flag_values, hits): # Rename keys that are protein IDs with common gene names. Using lists from comment above. for k in common_name_list: for hit in hits_list: - if k in hit: + if k == hit: print("Common name:'{}' is in hit name: '{}'".format(k,hit)) hits[common_name[k]] = hits[hit] del hits[hit] \ No newline at end of file diff --git a/main.py b/main.py index c1b4fa9..76f2834 100755 --- a/main.py +++ b/main.py @@ -45,7 +45,7 @@ def main(): Wij_df= correlation_calcs(flag_values) network_list = calc_mrs(Wij_df, flag_values) - create_network_map(Wij_df, flag_values, network_list) + create_network_map(flag_values, network_list) create_heatmap(Wij_df, flag_values) if __name__ == "__main__":