From cb4c143896bb89cef139fd605f0484372cadbf9d Mon Sep 17 00:00:00 2001 From: sronilsson Date: Wed, 31 Jul 2024 11:20:47 -0400 Subject: [PATCH] buttons --- simba/SimBA.py | 16 ++++++++-------- simba/assets/icons/add.png | Bin 0 -> 896 bytes simba/assets/icons/analyze_blue.png | Bin 0 -> 1155 bytes simba/assets/icons/analyze_green.png | Bin 0 -> 1124 bytes simba/assets/icons/archive.png | Bin 0 -> 1047 bytes simba/assets/icons/heatmap.png | Bin 0 -> 1564 bytes simba/assets/icons/reverse.png | Bin 0 -> 1257 bytes simba/assets/icons/skip.png | Bin 0 -> 883 bytes simba/assets/icons/skip_2.png | Bin 0 -> 789 bytes simba/assets/icons/visualize_blue.png | Bin 0 -> 1101 bytes simba/assets/icons/visualize_green.png | Bin 0 -> 1071 bytes 11 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 simba/assets/icons/add.png create mode 100644 simba/assets/icons/analyze_blue.png create mode 100644 simba/assets/icons/analyze_green.png create mode 100644 simba/assets/icons/archive.png create mode 100644 simba/assets/icons/heatmap.png create mode 100644 simba/assets/icons/reverse.png create mode 100644 simba/assets/icons/skip.png create mode 100644 simba/assets/icons/skip_2.png create mode 100644 simba/assets/icons/visualize_blue.png create mode 100644 simba/assets/icons/visualize_green.png diff --git a/simba/SimBA.py b/simba/SimBA.py index 7aba102c7..06a2b1d5b 100644 --- a/simba/SimBA.py +++ b/simba/SimBA.py @@ -277,8 +277,8 @@ def __init__(self, config_path: str): self.standardize_roi_size_popup_btn.grid(row=2, column=0, sticky=NW) self.roi_draw = LabelFrame(tab6, text="ANALYZE ROI DATA", font=Formats.FONT_HEADER.value) - analyze_roi_btn = SimbaButton(parent=self.roi_draw, txt="ANALYZE ROI DATA: AGGREGATES", txt_clr='green', font=Formats.FONT_REGULAR.value, cmd=ROIAnalysisPopUp, cmd_kwargs={'config_path': lambda:self.config_path}) - analyze_roi_time_bins_btn = SimbaButton(parent=self.roi_draw, txt="ANALYZE ROI DATA: TIME-BINS", txt_clr='blue', font=Formats.FONT_REGULAR.value, cmd=ROIAnalysisTimeBinsPopUp, cmd_kwargs={'config_path': lambda:self.config_path}) + analyze_roi_btn = SimbaButton(parent=self.roi_draw, txt="ANALYZE ROI DATA: AGGREGATES", txt_clr='green', img='analyze_green', font=Formats.FONT_REGULAR.value, cmd=ROIAnalysisPopUp, cmd_kwargs={'config_path': lambda:self.config_path}) + analyze_roi_time_bins_btn = SimbaButton(parent=self.roi_draw, txt="ANALYZE ROI DATA: TIME-BINS", txt_clr='blue', img='analyze_blue', font=Formats.FONT_REGULAR.value, cmd=ROIAnalysisTimeBinsPopUp, cmd_kwargs={'config_path': lambda:self.config_path}) self.roi_draw.grid(row=0, column=1, sticky=N) analyze_roi_btn.grid(row=0, sticky="NW") @@ -287,8 +287,8 @@ def __init__(self, config_path: str): self.roi_draw1 = LabelFrame(tab6, text="VISUALIZE ROI DATA", font=Formats.FONT_HEADER.value) - visualizeROI = SimbaButton(parent=self.roi_draw1, txt="VISUALIZE ROI TRACKING", txt_clr='green', font=Formats.FONT_REGULAR.value, cmd=VisualizeROITrackingPopUp, cmd_kwargs={'config_path': lambda:self.config_path}) - visualizeROIfeature = SimbaButton(parent=self.roi_draw1, txt="VISUALIZE ROI FEATURES", txt_clr='blue', font=Formats.FONT_REGULAR.value, cmd=VisualizeROIFeaturesPopUp, cmd_kwargs={'config_path': lambda:self.config_path}) + visualizeROI = SimbaButton(parent=self.roi_draw1, txt="VISUALIZE ROI TRACKING", txt_clr='green', img='visualize_green', font=Formats.FONT_REGULAR.value, cmd=VisualizeROITrackingPopUp, cmd_kwargs={'config_path': lambda:self.config_path}) + visualizeROIfeature = SimbaButton(parent=self.roi_draw1, txt="VISUALIZE ROI FEATURES", txt_clr='blue', img='visualize_blue', font=Formats.FONT_REGULAR.value, cmd=VisualizeROIFeaturesPopUp, cmd_kwargs={'config_path': lambda:self.config_path}) ##organize self.roi_draw1.grid(row=0, column=2, sticky=N) @@ -323,10 +323,10 @@ def __init__(self, config_path: str): spontaneous_alternation_pop_up_btn.grid(row=9, sticky=NW) label_outliercorrection = CreateLabelFrameWithIcon(parent=tab4, header="OUTLIER CORRECTION", icon_name=Keys.DOCUMENTATION.value, icon_link=Links.OUTLIERS_DOC.value) - button_settings_outlier = SimbaButton(parent=label_outliercorrection, txt="SETTINGS", txt_clr='blue', font=Formats.FONT_REGULAR.value, cmd=OutlierSettingsPopUp, cmd_kwargs={'config_path': lambda:self.config_path}) + button_settings_outlier = SimbaButton(parent=label_outliercorrection, txt="SETTINGS", txt_clr='blue', img='settings', font=Formats.FONT_REGULAR.value, cmd=OutlierSettingsPopUp, cmd_kwargs={'config_path': lambda:self.config_path}) - button_outliercorrection = SimbaButton(parent=label_outliercorrection, txt="RUN OUTLIER CORRECTION", txt_clr='green', font=Formats.FONT_REGULAR.value, cmd=self.correct_outlier, thread=True) - button_skipOC = SimbaButton(parent=label_outliercorrection, txt="SKIP OUTLIER CORRECTION (CAUTION)", txt_clr='red', font=Formats.FONT_REGULAR.value, cmd=self.initiate_skip_outlier_correction, thread=True) + button_outliercorrection = SimbaButton(parent=label_outliercorrection, txt="RUN OUTLIER CORRECTION", txt_clr='green', img='rocket', font=Formats.FONT_REGULAR.value, cmd=self.correct_outlier, thread=True) + button_skipOC = SimbaButton(parent=label_outliercorrection, txt="SKIP OUTLIER CORRECTION (CAUTION)", txt_clr='red', img='skip_2', font=Formats.FONT_REGULAR.value, cmd=self.initiate_skip_outlier_correction, thread=True) label_extractfeatures = CreateLabelFrameWithIcon(parent=tab5, header="EXTRACT FEATURES", icon_name=Keys.DOCUMENTATION.value, icon_link=Links.EXTRACT_FEATURES.value) @@ -405,7 +405,7 @@ def activate(box, *args): label_trainmachinemodel = CreateLabelFrameWithIcon(parent=tab8, header="TRAIN MACHINE MODELS", icon_name=Keys.DOCUMENTATION.value, icon_link=Links.TRAIN_ML_MODEL.value) - button_trainmachinesettings = SimbaButton(parent=label_trainmachinemodel, txt="SETTINGS", txt_clr='darkorange', cmd=self.trainmachinemodelsetting, thread=False) + button_trainmachinesettings = SimbaButton(parent=label_trainmachinemodel, txt="SETTINGS", img='settings', txt_clr='darkorange', cmd=self.trainmachinemodelsetting, thread=False) button_trainmachinemodel = SimbaButton(parent=label_trainmachinemodel, txt="TRAIN SINGLE MODEL (GLOBAL ENVIRONMENT)", txt_clr='blue', cmd=self.train_single_model, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False) button_train_multimodel = SimbaButton(parent=label_trainmachinemodel, txt="TRAIN MULTIPLE MODELS (ONE FOR EACH SAVED SETTING)", txt_clr='green', cmd=self.train_multiple_models_from_meta, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False) diff --git a/simba/assets/icons/add.png b/simba/assets/icons/add.png new file mode 100644 index 0000000000000000000000000000000000000000..5bb6459133e669b64cf53603ef6c968d1c73e9f0 GIT binary patch literal 896 zcmeAS@N?(olHy`uVBq!ia0vp^{2!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBDAAG{;hE;^%b*2hb1<+n z3NbJPS&Tr)z$nE4G7ZRL@M4sPvx68lplX;H7}_%#SfFa6fHVkr05M1pgl1mAh%j*h z6I?a_0%imor0omOHjpPd3p^r=85p>QL70(Y)*K0-X_1*B5hW46K32*3xq68y`AMmI z6}bft z&@)i7<5EyiuqjGOvkG!?gK7uzY?U%fN(!v>^~=l4^~#O)@{7{-4J|D#^$m>ljf`}G zDs+o0^GXscbn}XpA%?)raY-#sF3Kz@$;{7F0GXSZlwVq6tE2?72o50bEXhnm*pycc z^%l^B`XCv7Lp=k1xYMq~f7*dJ}uz%MUMRxOY6bu$y(AT*{nO|8qNhb6-7tUbNG>QSaOt3BkEp z6K!7~=AKx$^3v?(kNY=o)1MWx`si^pv4BB*Nh~MpA(lhaa^L>7 zT4Jkg-jI;jo8a~5m1>FE^trtzwM&;c-IM>4^Jaz8zx3zb+0QHAB^>KJlOuR=Vfp&I vrrxub@lGm~dDFqcXFG%S{qN&fo0Gl>mu=0rsx-c521-|+u6{1-oD!MaVqgWc85q16rQz%#Mh&PMCI*J~Oa>OHnkXO*0v1AfjnEKjFOT9D}DX)@^Za$W4-*MbbUihOG|wN zBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o3raHc^AtelCMM;Vme?vOfh>Xph&xL% z(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjoGZknv$b36P8?Z_gF{nK@`XI}Z90Tzw zSQO}0J1!f2c(B=VNya^7XJBA5_H=O!(GblI+Mg|wC{Szs`|$(`RV^(+NAAasy{(F^ z9O(-uJmFfaqw9Lq{(#yX&EOStBUW@obSQWfsXIDexaM_%nVF46HA_JtY0~Z8b3fK@ zFIPII`R(>x`S*J(e{)J`zPcX!#N^0qE*^uYit#NUVy`^Neq_Y8eJ0Q3^NrUF?__&i zdAwTJe)k3WpZ8}jDmW1Q%))&05V-2| zq*M6k8My5^A5-($v-fxLjkwk{m!8bf){^$5`MVvTEoS-~V8YK;{hv3FK~*_SvwTLi z$_?nPS1WlG(kvHi#_0QN{9`?aGzV_6k>fu`{o3-`z7QY2LG> zaF+iMvz(7u&AWLdgn_r!V8)3T-iEuci^>NXN~wqL^=d1ayz5hC-mYJaQjtQRQ@wmM zpYR#(DV)m1n0N81)Y9v_b}(jSpW#<2i0ktcTf*k1rL((i-CwrDo9>*AexiO2loLH& L{an^LB{Ts5GES9Z literal 0 HcmV?d00001 diff --git a/simba/assets/icons/analyze_green.png b/simba/assets/icons/analyze_green.png new file mode 100644 index 0000000000000000000000000000000000000000..e41b365b0fb85b2d85536e547af8cb8ca04b2a0c GIT binary patch literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^{2aVqgWc85q16rQz%#Mh&PMCI*J~Oa>OHnkXO*0v1AfjnEKjFOT9D}DX)@^Za$W4-*MbbUihOG|wN zBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o3raHc^AtelCMM;Vme?vOfh>Xph&xL% z(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjoGZknv$b36P8?Z_gF{nK@`XI}Z90Tzw zSQO}0J1!f2c(B=VNya^7XJB9w@pN$v(Gbm@WSbr0DAIP{c(-APTW6P7(}LE*gU1d{ zaBA5aV6ee8hvelX`WE%RAemb6eQNwG=6Gpwm;!P=<{xY>9(y5t!X1BH{{$;_X* zTU^B0;QP5bmhX?xv0P@7R(kPF-;C(lciEOLFOWNSOXNpg`RBxbyQRWaOVU?e-_26puEhyeMT-C2-I5h>WyY=8gh0dagvSeb zu9ZlvihVQv>+CI7A`xj<+mt?SuRr+G?P|f^AYbkPQ5V?{{C!qGZ){;Px#}V{Dg0FB z{l9No>aD}VZ(Mig@wF)X-4n02um8vEIoH*>>lc5rid|50$+4Vad9GGX>x~9hX~pLW z=cvEcAM_qg@7bc(47F~B(y>waiuOM4Z)<>*iy<9mV zTc`1DsNp*89=LP0Z(`hhNiT*2 zbE-+b)2wIiu|Wx69>4Mp+PZQl&wZxP;`3I_zuRabr5bP0l+XkKxX6h9 literal 0 HcmV?d00001 diff --git a/simba/assets/icons/archive.png b/simba/assets/icons/archive.png new file mode 100644 index 0000000000000000000000000000000000000000..9604a96dab0b108c7217b619da0ad41195348e33 GIT binary patch literal 1047 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-HD>V7}<-;uum9 z_jay--em`o_IhDG2JU}%7&yfa?9y>i2(VyUz;blrtAM~h2TLZ`rRzf6EtvWoSeXto zT|2;}lIQS}NzZ{jNYlal_Vek_6KDOp{`O3D{DN!6+r6csY|^hyo;Ue5KCKbC9W?jW-4Zdm?;K%{2OgGf zoO9M&a1l^}A7h2GYSQm*Ea${3zm=JrEoumxq-XI!jqx>S#e;(i=hJ+cZh8LVI$&8_ z>GtQ*w_PVTe-2}eXOvMpw~=FwXl29PYTpv_tq5=Y<2|+!Aaa=l4Es+gV@jDess!cV`y+6u||u2bQdy zAhw|FpU8q3Mv(<9VWs68TcjEjRO!pomgXyJjkA_5W{rp#kfacaD+sbG+x zY0K)-!n8fuA>lw!71sm~*1Y8n2O5@s5m6B2y5q;#$mso&puzjaS!y2MOtj95(*5*i zhRVnH-wgMOU#VvM;XO;~>&w^k#D6|YJzH~?DeCUa%I9}=eJAev^7Y((c^&<;S#IxGtIJhi1hy$pu(?z)TXm_;p@J!ndztIJA6#skt<&>+>64ADJgYx< z9Pa(UEBw`oLv!^Gt1(IoO)5FX94=eHbl{}a9LsHN4;HiASw84230YY3-*M{11 qCJ}+k)&K@p7d3&MHsz@FAAfe&%KA%JI{pB2I)kUHpUXO@geCxCvcx$6 literal 0 HcmV?d00001 diff --git a/simba/assets/icons/heatmap.png b/simba/assets/icons/heatmap.png new file mode 100644 index 0000000000000000000000000000000000000000..66ee5912b34d6ddde4806dd569ec19832ea703cf GIT binary patch literal 1564 zcmeAS@N?(olHy`uVBq!ia0vp^{2(yEr+qAXP8FC>0+>{umUo3Q%e#RDspr3imfVa zmB1>jfNYSkzLEl1NlCV?QiN}Sf^&XRs)CuGfu4bq9hZWFf=y9MnpKdC8&o@xXRDM^ zQc_^0uMhH0xiQEi`i7R4mih)p`bI{&Koz>hm3bwJ6}oxF$`C_f=D4I5Cl_TFlw{`T zDS*sPOv*1Uu~kw6Sp)}AcjgwrEy^o~`U>bj{ffi_eM3D1eQcUaGSd*wL(v72foKE! z3SyZJFlelti&7Iy@{2<9^K@UbSS}Q1T`cYJVDeuKcUKgBRF59wtLaTOcXVZTt zu}6od@`reZH%V-m;*>3}H)%(vHkXu(Z|>wfv#(^xsqN&?e{XaCd3kc-!^Xqq=Xmz3 z8<%7yJjlvFG}Ei|>@>M!uV=YNsyBv({t@AE`@eHveAJvDZ|}W0QChR%i{V;7xhOU{ z8IQsbyS228?d-JJPOOZ)Q&lQ+{`>cbt8d$HF|hjddZO@sKFxXeudJAH@pm%+@h>4+ zO}%{!S4!;&*tYVM*3;HDr?AF=wI+slubzylS6o#6YhPt?>g|PkJ@aGV>h{*kWu1Mq zgDvUufvvn-j-JS9yUUiX?xd#Aep;~L#;Q+;9;K|d?%lA7P3tuuQ@Pp#zS%pb_^+HX zb*A@2p^n3R3hxh|deS22RekDfmza+9w&pFt=egh8>s9>YHTY_DxcGES)Pn=T38C|y z6~7xU`lZAlhr2Mwqwo_*H7dm9mnEJ`;hKk@!mjWN2 zBMa~4@qE3#;Fi?P#`n6X>Yr`+|CKA1`NH3;bw_M#e-tJD{(p*3Tet1{)VDqBG>)F< z`P}m*(t=}Nsj!Z3`c2{T_U7Xa*#}oobLA9Bm8ksZXUX|RE$z*e+ubuN+9!Uqc(!h} z-iKe@y9)9&?&=r1pPIL`ckvTT-$~CF>Zn~j^>WvY2+>VZ)n0SHg+#X;P0c$}&9x!- zinA8ORg+9h$JMixdIjA#goQeZuuh7r>QM2Ok>qk}ov}M|?!TQCGu!?i^wgU(J-jmX z%3bMScfP4#4rTiOLe^{Ne1SyIZ+Wa1Ldnf@HhUd3X;z={=kxJy;fDEd{r~L}oj3EB z>X+=PU*1Wn)m=C5+4+tAbi8ZIv7?{3Hh*OBmR`Ku`pRc@q0EZ=cIiJ}E}s6_ywG#q a`|Hs%ErFA{|E>!L6^Nd$elF{r5}E)27ENLR literal 0 HcmV?d00001 diff --git a/simba/assets/icons/reverse.png b/simba/assets/icons/reverse.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe4ad1a908feac5c39c4a6bb1a818dc54111f25 GIT binary patch literal 1257 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 a{VujgVyorft;pR4$~B&@elF{r5}E)|%5D$< literal 0 HcmV?d00001