From 1feba7367dfb76b61cda4577c9978737ccc72a57 Mon Sep 17 00:00:00 2001 From: Narges Rezaie Date: Wed, 24 Jan 2024 11:59:56 -0800 Subject: [PATCH] update docs --- PyWGCNA/wgcna.py | 3 +- docs/doctrees/api.doctree | Bin 576857 -> 578906 bytes docs/doctrees/environment.pickle | Bin 272794 -> 273385 bytes docs/doctrees/suggested_reading.doctree | Bin 5180 -> 4726 bytes docs/html/_modules/PyWGCNA/geneExp.html | 2 +- docs/html/_modules/PyWGCNA/wgcna.html | 84 +++++++++++-------- docs/html/_sources/suggested_reading.rst.txt | 2 +- docs/html/api.html | 10 +-- docs/suggested_reading.rst | 2 +- setup.py | 4 +- 10 files changed, 58 insertions(+), 49 deletions(-) diff --git a/PyWGCNA/wgcna.py b/PyWGCNA/wgcna.py index 4933c83..3d80fb0 100644 --- a/PyWGCNA/wgcna.py +++ b/PyWGCNA/wgcna.py @@ -65,7 +65,6 @@ BOLD = "\033[1m" UNDERLINE = "\033[4m" - class WGCNA(GeneExp): """ A class used to do weighted gene co-expression network analysis. @@ -2360,7 +2359,7 @@ def orderMEs(MEs, greyLast=True, greyName="MEgrey", orderBy=0, order=None, useSe :param MEs: Module eigengenes in a multi-set format. :type MEs: dict :param greyLast: Normally the color grey is reserved for unassigned genes; hence the grey module is not a proper module and it is conventional to put it last. If this is not desired, set the parameter to FALSE. (default = True) - :type greyLast:bool + :type greyLast: bool :param greyName: Name of the grey module eigengene. (default = "MEgrey") :type greyName: str :param orderBy: Specifies the set by which the eigengenes are to be ordered (in all other sets as well). Defaults to the first set in useSets (or the first set, if useSets is not given). (defualt = 0) diff --git a/docs/doctrees/api.doctree b/docs/doctrees/api.doctree index aa14ba920271bcbc814d3ab6fc588eb9de997eeb..da81149a2fd927ebed42eee2dd67afcf92228a9d 100644 GIT binary patch delta 69802 zcma&PcYIaF^FHqGxi^KL&>=uV2qB>*5PA*0lh8v;g49q0p$Jk!5kU~)3Mleg7ST4=H%WRxu4(b#~*CY?#?{3WoBn~_ndp-<;aU~Mmpv= zS6Vw9?^JXhf2Wx1V0aPN8}Ed=(taxGS{4!Qs#xi4zWil33%P29&+*NB_foi868b^< zxN$?%v(m$>*?+{iYFC`+ThGJui?*UCxr1y9>(cCVXgwz zsu2^y_|OMqZ?(BPtT;78m2oZKS5B8HE(r0(xvy#!_w<#nTilg?E*domf)e#k7$xt- zzDxhkWX z6H3u!{xm^#Bm%R&u`0;3sLw|m)jH-u!mnobtC{_yuz=cXr-%JEX1`0=uNL;Jnf+?l zj8Arhl(?_*<$hWHa1mA#qm9m3FS0zFxwl4|kSjzSmvXPn}knxZwMp zFW+ca(=%&ygOaRXbxX2()h$UAQ#xFCK|e#2JC^j!PSuUsqcTlSBp6&(*VX0hZv3C~ zWrB_?>7AO-ett~P7w&U}`yA%pMz0pet9%%*VaBLOj8QM7kX6BzbMBFv!+dAje8bP5 za%El=Z9OSWPufhc3)Am>nEuF2QID7+fwToqmX!IvWVq{_3w2!UFRWK58RBCf(T`r- zttz@AzKzx8N>RV4a;}Ig(J~F|x^{dUtKv{v$rX2^sjgRwrXgyie@FG=uU5eSw=R7^ zq?m)MG-^h=?rf{&YV^$}HJZ7O5UwM@wJlmm3}<>6&J~6unBfR!IKtKa>In@hVmQ>p za9!>^^&T_aB@B0gp*^EdGS`niTu%$vUCebCbKT`y{oN=HQsTP9!*$WM>8{Wpq>mvz zSzT3H>{YqaJR?e%_RI(!R+^iyT*{xztbTuH`q!t2K=Dl8uyh>n(j#P<|AYA8iyY zeQ5EfUt;yYJ|I>Z?wubQ1QgVQA6<)XXXAfr!S_BbSbpbu)d(CSc`d3}hI_tV8S0^S zXfRl-&iG$uT@o|as6}%d330CHT6Hg*9%w-8Fsli_UU7Z?n{@hIsWtcA)%TrBOmaw_H1ZkEREzyVX-S^^axhqNnbcBI}ndYm^J4scxe%R^7z^ zBJW+17d1&N0aCQ+>4DZOVcKOWv?gH6ZFsQC}CBhbz$Xb^{i=QDe3!P- zte{clo_Jzp`HT_n^kB6~sl^6q1ruHni}N$?76nyhr8W^^30KR0rSv)&&4RINo8+Vw zl$;mi)B(;h;Tx=)R7o|7RjbYX!fJr}(o20-sIPgcDF@W|e5jEHYQ4IgxmzqKw(v6~ zpBib649j?_oXL5{N;fV47Z7M(DXMDdXUdu6vVmoFHkw&dw<%k;JO*uK?8qKm8-x`) zD>QCiIioJ9STnJh$_b7}9ppuocZCe9YsQDDCAxBX6LDORR*g-3IrQwDAu2Gq0aYVR zS8~fFb2C&OF|AA4Ly=sbr*Lw48T1S$ z42|Whu$~R1u$rOo`xgK#NB|@xzy@=vjQWV4NPxAz0+`(EDn@mntXSOueY9Q0=!Ehn zy}s_M{^gp|R}VaWmD@eWU8lT?)4FIF`ZwMxpHawUS3;+5oT&o!122=@-Bxc^Q_8r* zW5etYH#zU9$*L6<(afginD{G>nŸQnjr5#|BKv8sueImUNKb@cs&Q>q|I8BsyU z(8wmXRdox`%QuU%+p5yURh?E9OUJfzhCPRXZp7NL3^q!UCE)k)gRQmZabGL@o zST7E9b?=pI&a?+qT%`I?y-w(?7|;Nl0Tv%bsZmf14~t)f#SMCAM6C#w8 zj;;$^)ynFxmJ88RA==<2S}H_u3lYi%36fSXyqJbt^m=WW=ylRpuu;i1Fnbn*EC5~1kz!Z6Y6sG2Gz_*>M0USF+Xc3i;7V1UX7vi4uDAlm&K3uZP})1`v% zQRT3VwPCE?O=_#j=4iZVw<=_E>Zo$MP(@y#44nO7Q!6L1s){l@YQuoiI#rqe6g>}# zu83*lqvw~*-KMGx=vmE>keU@T_2N|uWs;f&o8^r$HUSk`$4k~xbJSqs7_0gVc>jt% z3)mzt?gYkVt!P}4lssgzfAs!>j)c(rn*s^yDUByW@0$<3Ks{yD{{(%rpl|j?KkP+6 z@EH0L|LB_q9SP8bHlq@S>}GHS)zI{ApxS7ZkR-3=lO(*M8m;~mN$!gz_w7O8fUdAf zZ;37{K#5oeyAO(1@;d_eMG7R;2ltJmvFfYwM96pZA%ELg-B4|buQ+OnmDs>1R-!3T z)qJzS5sp4&^uCXw5A=(!5=}@V7GkiXK1f6*?t?qc)OzznGxa8wkR;6omTbN~AIh{) z`_&4sG|!7P&sSoHU2PUYUVBWCt^NghUIYOb>W1e{$3*qB#uI@*=L;_O-s15Vdwmb8 zLq`901u^=!xVjkqpMWMR1fy?qTB{HBzm;s8|3K=o&Ht&AhXY&!Ce&(|d zwngqme^ysX=ARB~u$tg0&||{cBF>T=vc{AHFJuYlh!2A-GFC}uRwvaD<|L1;-XzrT zdZ{S~)Hy!X$P((mI;#wI(M$cMQ2*$mhI@3qi)x^L_n}55vaU&JC3!&2&>e(b zGO8P#AGDsGpN8RLBr8OCjbwMC5hK|+oQV#TlUg)jrhP)(A%6L(v?j2#CSrAZF zgOVn14~8>IF9iiD2m@~^yN`OxSShxfwpS$FOA@wKXT8FmX5rY1&Vwv)mA>#VA~=wU zdqu>(W_&-Ds*y?PdmcmYouVe0&j#4&0hQT?1YoJ4V6T!%OtTk{F#1yrm<=CM*>4Yl z1;GcHhym!K0MlZC8iXVyRV65k`S~_Ja-iA<+s-iLD)tlsdR7**F~%#vsK*2t=U)J@ zAOU)c06k6n!RjMCu>eV40Ze8p>~a_B5K?;hWyp#&hu724i0#-(^<#s#0ZAqmnT>U6 z>asps*)|)8g(aJfZI#7rG>kCpD&`9LH+kgjC7Pp8A`B!SabARvk0=ui?vwNdVxQYS zoWBvySc*tS*M#Iijfu~0V&i}Qvzs`NW(ZrQn8-Y<6cZ^{sm3r>Pw7^XCik+H zpgTpH%vSI{@tl1V{nFgr9amfo zXS4h1rFQnBNU~RY4H9^Ci%iZa)ktrRG$EZ-ON~OZG-J)E47e9ZY?6bKuH2>7(KwSW0SXMnX8+(z1bm5r zFEQh%z{Nl&VK4H*uHx=8RV`Ck{1}74;rdg%F9d9P}%s zge$q(%z6&$HS;;u5pJBP(n1dpR&U=XMTvTki_(GS;1U%{J;5HtA#^`76yEGTKAy#Vct1528=LB8JY)@7NgU=8_SjM#| z*7)aNP&*K!QZbzb>7T0d+W1pd*+8*O$O@F)!7`&&@3Uz{>Xu|(sqvQBSUjzTzQSPu8(SfR|a3|b`(Tv+LTGr%bFK##bv$~a0CYqzF zp8oMcPwQbrvtt!(O+)wTRq8uMTuFd>%#F{FYynK8)#?iD0Jo0t7YP1>Xjziid-2!g z$KU85AM}L3K=2p1m#$G!intQ~TtE2huvPe_7yqo_pJjae2<~UE5I^P@;+B6Qz=VW2 zD?*$#g*RaH5}72!>BnWbyg_X@j#q83s8Tf^flAe6RpXY!VeRE2&U9EcigM0rGn=VzOj0Y0FSYO7kGi^J_fwdKQLGj z@E8ULL-%KY1-zt)GeM8?K4;BQ!SK7VT zz3fdaS{k{8zQ-3`On$B?L{d2@#2Kh41#%~=iZfQm5f8pDE`4Hrq2RgUOb+dq;a*&|`#Y z1kbzDy@h$3{LFb3fL-BLAjiin!-mr;0H(YOl%XlgtH3g#%PO!eMpl7AJFthXx5P-S z_*#s4=O@I98+Ra9Z1pZ;#Y2QF+uHkLI3zqNITR974uZO`IY;*A_K}FywL8Yl?xgx+ zKfyzON658_aAT&?6G)5EQwbrx!=%b>X6{j4R1BB!etJ|a12+)Ls8|#7ZD1UBBD|z9 z(Wjsmw6W+mH{Ebx27Af-$C}LB7&OAg2F3aJR0}oThq%8lF{F<++n=!X&k}7x`Dj}?VJC@gn zmiyH+`psBc70R3N)PU~TJm(hi-rFIn8}!Z~=R{6g1tF zriPa-1rMG$xQexEA9^1Qd>z59vFr$f7W$!)(Bg2xoI9j0&=aZ0mv*O|)TQ+2z(A~6 zF9)-6-Z9$?jW*dIVAC(Uy4aYb-(!0)fpcN;YXX9N3pSw zC&I5nOk(q(|N0Iae$!0$M;Ns%0nVy!a;~ApOTEC09|K^ZkpNhO)7|gY^GF#v z(+9bVJNJazpwtHfog>gW)nzrh=!HK281yCo&^ZE)1keR?P>D9V`azpNRj;@=exm+X z8imva2U!sHIZeq(6W7xbsLsf!+1#LurtlBSGFPu`PXa=$VZ^}1aN&i*gs?(}c zsX!8nwZBGFOh5<|0SP;A$Yk4g;)C78mzQ>3sOX6DBbi09Kv4a-Hd(O?U0eK|Q`nm#H>hagK-P&u>x8`WNaB{=75O2DxJ zj1jI~^pAH)@Q@JRA#?SL8lmw-c>D9=ow}-C(8X$T%L>&psv7VPUjtrLEpAukTKVvz zYx!+op<3KNB%~gNP>IxINh_0k6#+rScPd$<4Cp$z7GHbFYc5#`v+KHT6;oSyi`CD)IwH;&cVn&UQ5{S zu0?F4ix3M>VJ{PZ1Dg$)WvuDV^G#r0={I1o>6mTx{u5Dq!AVowqpKK@26+LCEtM%+nNKb=n>s;0ZL95B z;A>Jp@Y=3xn}`u};3{4FE#X}PlM?+K20v{6}YqfMo|Dnobk1S5csFT_Bz#b#Yv-io) z{E2WbHO}5ABY9+e2AeB?;YfHg6OrEpQz7&;Mq|xefAh*oSzNlvWIsd)t&#dPPK)A9 zw=s@bwUx3G@yH!L))ajR$|GLB2Zi#CrhP2wcH?)^v&3oa4QeIFXn?i26I-zlTx zR*r+aQZ$}7(^R~uVHK*1t+Y5cz>}5E)UD##Of`>Z1Kd2GT^QXL%r?d7UMPeCP63&( z0WKUbn`iNC9zY875Y!x%_>gKxS6#uZwy=qb5;7G{;>A2Q1O}{eM~9wdz6;QD2WE)? zFNr71Z{IU~UC>{NXETYIX_Hge3f=5q3NRoeg@laM5)&VwXVMcPFUpTxFHld?m!-iM z1owh3?mfZ1ogeqUe_SwNk5OQMM_t>~aV6I8OigH~Uf+WQKOK~g z60A7GHi&# z5<#|DJr2#F{m@s1CU~Pw1KDt!MZbq;rKOm(Csifgzb>oZuDZNj;%1iKVe{I^yx{qO zr5sE^93I%$eYzUMLLu;RAkn}c2a*izP5O%m_GVof*g6$);HsSoVss0eO%d8&7@a0Q zQb(IPBeX-S1lbTp_tZACD(V0;AzU}sl@nx`Rf1=jBh0;UJr6oTjM&sB(4W;|B~M1+ z0#%ZyKzB*twQ{iJkPSx8@|AVS6p$3ORN}}8QdHM*31-<-&R*!+JiaYODc{LeOMPu{{?X1UYj~kqP-L@Wu zv~rg~m#fFNxio6PHiy;2xcOWlIg`K>1cb0oN}2T9x`I;fuGJ~QWsP`^E4a1*wA=Y0 zfpGY<18s6)2bjuugGya9Y4vqC{h*$x@SlLBF>+&!UJ1~J>SKuMSR=T; z*wjDk$^O_is0yiZY<;1NuJ0Y&81qd-tDbIAKd%pIU#o?-N2>`~ZmMjqwh9PRHq+?( zVyLfqWM*THIm9~sFPR82pAiY7)3qTk>2z)CAvV?%A%N)g#QLJsA&I)0($CcwopzZC ztuVduNVYm?A;}A#W?Kin(99Tty{;!)>jrvDebME-a`eS!^KENAMIQtsGTHCfmlKXX zW_ugmL4RpypRLbk`5F=&C7v}i+UnZ+UVS-yL?L;dd+M8F4^>-L&>(n~4Yj}qto>yr zhqOPifjCmwxI-mT|3I9~+jbp1*sl8uSYPzFQrW;j6V?IF$U<~I8TYv+y@PIx+mf3* z=oj^Tj1}qdh>m(h@Sq0hfbtmw8n6x*=%g3ve%M{3+no~#IW~AK)j;#>dmJbnpP&Q= z_lqDC(M6Zj3meET&_+8S_ZimFpY}oIE8yU(uYDRoU(2Wl>`W|dz^>Fn)cKDqg%T{| zYQ8X~`##wXyx!EkBvB!CPGmUO!0S!n=tKmBAV0Gpd^)%rxQKP{_!FnJJ}2@ZA*bq` zX_*A)22Uiz*~esHzp83Owpf)Lvc;<0&?|v%(vU4yL%2hD15De{%^LdYiP9Pj$ge^I zXe6d$uzs2z$&IOm)dMeTscag2dn0HT%fqLWaOXMy%n}`_GaC4KSlJE5!6Wb5=vq z;tY~2mSz)c?|fU+SQ63R-3>&0chi8d_I^!(ydr;%RwGp1+_Rt7`nQJSY5jxa54tIU zXO4jGn%w^SA066Al=Ut(R18FjsX9iv*Wv$Xklr`LB4~8-w8l_w4mUdawMy#>j zkie0`6Bb=Pu#spi9x1|Py54%SO_C`j^Mr(+usOBdCcz^qd3YnUe!T9d-?VAo5SsUd z=8Z;X`UKrvAGe86Y7?qx;)GqmOA-zGe0g(XZ%VFwz%PdDq6u zMa-fn_22XR|Z!Duyx3P>0p4tD6Zfus`b0)0g|nfKZz3CyAtrM?T)sYL-FTg%JJ~etgr*^_aAPZKZN@Fqj zFMaL&A$V;Qo*FMVVS|7BlYoi;t!|pg7Us4lVn5y@im;6Kjd=msJy}0x(x=(}%kd^` z`i?j8an`PY^`;no2`z)OmJ4cMAJ8K{$lZS)?>Eo!x*8lcY-Pl~8s@qWsS(T$r z#C+P1@7?pdQwg?R>h_O*bQF>Ku(H5^%6o)gqvK`z#%)^fD&E zI?3`qXUq4R$hRrKd~f)d?>UhV3CZ`IyHmD405?WJpUnqqo}Z@|>Pv$8m0*6=RJN7x z3g$2QF@N=s`ITTIA^cT7|>o&{0O1haWF9)~8) z@{L2wW`4&3v@{Wr5N4D+8~3|3JrZc;W_jZP74mwq`T*t|1(R=)p4dmMTbs!3ocYaU z+GYb!rY$Xd^Oox0^hyZEZtRL?vQ}j`6E_yL?8d%p({9g4d!-?6seS0%nwn-@BdfT! z=khUXuUyc{u^Dd{#@Ij06P#UHs1`4VRea1JtR{u0_n~d%%HAh^;l=O)br>7q2j~Xc zw+&dKOJa^T7grY7B3IerDdq8sSj=p7>GyPeb1}2UntRM_oZ0%KUaZTCob^{WQ8V^Gb8kw=nfY~dvQN0zv{rY=K{Tji zaig7@FRvc`4ko@v>doe4q;Q&@xlWhWU!$p*n_ru)>tLhtgsBPbAQ@cbmYxF$Y}5Gl zdX=u(f;0k0*6|x)nPOT9?!*ncrf$`O)uKfUaS4N4us7PKg+FLevRWV^=os_tM!lRe zNh_+h5Sw@o6M^11IxFqvYoIykB07w~#_VPt&D%21wh)C_03_+D-0s!f&%Tb1bQgO~ zf3NjwNXB}x3i6TA;u(Z(e?GGp4P~%h2vXvaV_1aKcohWUVLCP z-X)CnL5NB38(~CQAqx9UR7_=3h+u${LIhI>u|hnezgQt2p$AAIo_P~mt;@6&g}}>w zd-4E_nVPSp;=6jRa!JXud?nw#s|Vl}5~kVgEeUE3X|N39 zt&&}s-iLPq^QhE1WSMqSb-l*P{l5P1)?jO)^sZXTjM81+g z59)OFos?Y3SF+;}+V((7{_vJ~Tk!T_9d6z_tXu2it;FRk+DhEi)~0=q9-*t-+0mZt zfFpW=Zf$3`kZj!=(~hjA@3d&$_Os@={){5=rlvZpnaf^iQWsyK}^(UF|$<3jIba zUcO&x#YXa#R&1>3)n&a8EaAhwhYD%^Lk@t{*F0vL&jPJ78g#Vp^@_p!kQI-xs7if^?^q>=y)^oU<6(0804A2yQqeU(>Zh3bytO2yz0v zBY=0zfKT-dJTc%cU%;wn&`JF}UMT|ONK@=3>@l_GHa2VRjnUzeGknj-;QRT7SItc3 z=U5J!wPu^#%>ChMovP@O)`P~3Me6~!;Lzr(xH6%i!5J!vz;ClJ77-Tvitwt4u<0sY!5!g&$lysrr8KN^HvkBM;4uLv5% zv${I!Vzw^-nl^!I22vJZ#wqK`LO6-id}CU^jlVI)u?BZ4B%>CcchC4ruT$X2P5R=$ zO)?uU>boZM8#@5#YIa<~GTXI{&!`Uf3IT)tA0bBi6#@)+wM9Zgbagu~!`q=;>eo)f z&}U?iexr}ztu!!?RWFMOFZ+t{Zk`C-NBMeTw|@a%76Fiu057}$zN&+j#$#gbgva0) zf2+U6z81s(An-rlR3jg_ZtHId^bZ1#gus7r=U&r+igKy-*B*l(e_d}j z**EM6Frlr=d5ZGDCS!$Jadq9mUH-TexH1Az3KP^^TuEI@*J?nlH|cp`ipA^t3W zmgrTK`|J(fL*eX$^XbK%?6$1i*}fuRSV#o(maw4?fnh_$O#__@C(#HB^rPw@0jPE);2Sz zkX6833$os&3M5Pnv*+vfc`H=K0@i9c79N3~5`mtw1zO=1XjwjiUi2>z$Vnh1G!##n zT7|5wcrrWA1tvTO?jBs&s;<<>Ui9OFe%waC;zhrd4?WjEI>-qf385d~Q_M1oo~Z3d zAA>g)L#<1?bO&~Tig#d|;_f!Zt$3yJ2qImqgO3YS)jTX=oz;m#(5!=a6CEVHqqnVf zpAPIY_3R+K9=0dbuY=#Q0|OEk2?^WG-M+L{7_Ni>H_iv_{<@6S1Rqrp>DpKT>uBnw)}_R5V8 z;!a)%hPacoy>h6cwO;=XVK|KZ1N}m@*E@Ja&%dO(LG(Zj~rZCaFTILqS!7#Jp%laiddSEE1#4AAX2y2>_?^%I` zLwo`}goG4Wo`FM*z_R2S@@hG-OoJ>ESf;s`SGM*mJ-s8xhk8m!d1Ja}q*d7TE)`hR zRF1Ne@C65;^JgXWQq*j1CE&XtoJAjfS=td>Bh^K~Gu2h0!c(ZNaxn2M>@VFPKUNj` zJ;mIuYL(LyAV1w4{{YqUzQ*z_k=TBGN6+rQ+ZAo?P{E&5Vfl>D@Bud3-k<2Ld#a;s z?@yvE4qV|;8q~A~<7}Jw@Rn0N{aGEK zF+pPA!S$`*N&04RYaC!Mt!2gH)Sf%&FX};O*GO=C&uA-{_y$E!cH)g~aDbA*?_Zu^RY0;W!PC!^%3uiuXyf-^{uiBF+G};fMADP!5pr5IFNGbkj|o*MLPR7j`uFB zb{3no-y}A&T54O;%AGyiGnG2C!s7J%ZX|BQ&V1-{0tpUX=n1Dg=Q_)o%Wi52-+;oo=?g8b9{LxX>?a|6 zC}cl%mQ(fuW_hBOh&SYX$Q~s^8}QwzM47z0QWxG5jh7rcqo*8Pv1uX1l}vJLOzvzm zv$fS8uk0`(s^Mbroz_-8g}}sSg&eyo!5Ov@dHsTUIj6JeL8-P@3q1~FM`!qWU8=3s zw(OEFUK=rox>9V!Xbe7`>HpQ%S{M8>>cBj_)P=VN-p>x?Zx+OwHtnsddSw^V2m3XX zw@rHIJf(P(s0f_*2l{ugR+_ZVwx4#a3#-L3+&{ucL2;9o$XFvT(x0LcAy>e`S0i3D z%agE80AgBpkkGPo%na>hoxqa`vB>f73?(=S_Sit>+wrBk@{%0dl@UX`GNP{Dl^54) zU1cKU?cc#xt&o~s{Q`n0o|<09ooR5Sb*^Yv**q0Yck^ymZDkVr*bPk; z*i;*Kn!rxZ4?Ep2tV%WiCR=g(1)%{8zS6Tv9@pn*@#_C4i@m-qqRgBga4$ZVyc7BP zeCn5vMl-0(kx-YXx|j4sD??LJSr&zEBP(>9JS1bKIoZp~)VI5u<-Jv%Vs}xF^(XJ^ z5vgWwZ)+wop?(`E{f3R@v_94=CNjnDu~2-K4_`+N?dElb@PbuxD$GbVN+guX8?bKv z1`IFI;mc~ogT)OsGx}MR=n1&0C^3>G&!dU_~ggH zr~3y_6>xAtUj?P262~zY2Us2OaSE#!@h3qBJ|@Up1Fh|*Zo1tOZ;2Rhu^3g&$Ahej zcyWk3;>csNobW4)2Jxe04Ao_(qeotb%BRA7{35)5evH>0zr1iZ#+?eWXb!w(8l_nu zfFrkMD>30t#dyLLd5_lAJ~0Wr!o104azPAV(P5p(*B@X)c+-BgZOX-Dv2S&+i>wFt z$Q1B;(6T%JVn3rLHixlkZ|)7TZs?Tm;$ZdeF0UEBIMkYk8%K#5wx@uPA!OJFd?f!V zR&DHQbsS{2Jw# z&v>Of+sZR7(pZz^4(MWfjj_V%1gZ(&bj6lZ$QZb}e=rfh?Rj6=e&=P& z$0m@DN1z9>6gLmu!6OiyWFMO(<&8jX`in=Pc9M+1fw9&d-62UvpiPpwGaM%v!^d0M zIyFg_;sHs#6zjg6R+ZNv+klac)+b3iAD_MmG*>2A(Hd;H^IIfI=Py9zyw2}Kgwpwm z5RW?l%}i@lu#57`XDm~QAYNw#nHcqmJ>wQVQ zLb#LI@VJx2&Yl62O?Y7!g}8Na7G%Cl(b6P#&Ok$U5eex8UN4<&HJ~RlaJ#^Wf|gey z0S)2CB=O7&njKH&jebzFSDN2+Sh79%_%tU~A)V3qP(mI#$2^UF$Q$^O#~O0Ya7z@V zY$NseNpe9_WW_lYN@DRjK`-wHUfw(n&{;eU5~-798em{}8h{y}o_$Xp!HPH+;4%&7 zCd)KvGsC*B*Cfj{Fu1W!)1cTQE7)9}VL8m5r>*9N4T&tQwHz6Ip**) z)^boKF15;98KZhg_isauyzZYvwQUEnhspUWpt|{ep*1G>0Ogm@*oW4k`wxE%qql#7 zRZKo=^&S|J2A;8d>LgW$U)Y1Y`_3Y3p#B~`bvH)m_FxUnMc2^f<-e)3@aYfg#{QuX zLFTK0?j9z+YG4`kBcC4NqvlJ{kD%p6y9z(z(?`e^Z7AB4kH@R_^vlNNE`h@U0Z5N? zP1&VZG!pbgg8s%Hsgp8N9|M=Zzd4v#+wtE3F!eTR>hsniJ-(-{%VVS-uYUtf`U(gM z7OcukeON5c$D%?U%;3{6V3mHww*{onwM>!aR)}`@pa~VQ9%OjIBciRNv|itn`mMAX zw;ZqY;=`ogmdjE4RWBV@21p_w09fNA;9?dKn`oGn60f~SonXgnqiN*q$#4CL-i+m$)f$E%PL}8uR=%} z(TnGBp(lEIAj8cktE?YzRt)-Bh1Wfp4UU|3?Oq1oYv~2sM@71GFOI7QaSeV;ka7@L zjTRcdZh|bjZUWNt2dzQ46wIV^Amlk`b-Uh|&eBRKH~LV{@lf_VZ1ttjK@jL}0X@ML z8I*DWdd`OwSpZdd$z!dR1_z8Oe-g@v9!f-w>FeOMA%XX7!f}bVWr-AO+0-Jf+B#-qwFP=2q5z)dkJNhP@-HQZ*RnY#ZoWf zA|YJkA=H$ER&EtSJV~#v`q9e7dwm|ngT3j4Sn`aw`b^TRXy7+OgfbzLvuxiX@8#o? zJ^vb9GRzcS93J44XmtI@*@w=upEf*mk~Uib`X9_latJ!!?WcF%xcCrQG8-TmLH%6e(3BsA@u?aC)lH*#dD=<85P zSVnj+GGFd0?;=9OZA%cok(usZ5fedMw&p83Mp5fie{I)hUUw8-9pJ3>+m!nY=7zjayv1!B6V z`dc5_V7Y4sAD|s0yrxUph5PbON+l%NNuej~q}1#ycWd!TbL+18@}Mpq`a*-!hzk;mKt56w-QA|cmJ-no>c<_|xt~dX)vBdO+jO0M=|oq2hXyX~ zGu9|G^+Pz%NBW4G9Kd9Ony3}4KC)c;5atD`#-Wd_4}v!J!>E?e*nnjmTbliuXfZ7|-oDSz>$WUbHvDeOA2O1#{URYIqDRN|4%?-%ArpRBkbs};3? zmEw@klV!u&Le6 z*l(;a^@J2zm%4-4)`{`vxhvR!dL~6C|J)RDvu366qNLZ``7fhMc)#*3Bv1-^!gPH< zMYb1TCJ_Ggv<4kd+0Sjd(?XXkbf;6yo+FqOw{61HzJxSy=^Dik_5$JP&kF>uPEZbQ zFgp74RHV8dHd==l%fd-a3=&|}?^tr2^d$O)DE)UVIpqe3YL%vvu#E93P_1fi>ksRig)K1< z(UMbbfGjzs2S}V)Vt{B@N1M1^9x=TL8*8E;!n+zgfYpnR!t}lVq+a-VQO-XIzWRe3 z`H)Eut8*9}P>9bq#WG1T+Rsl6CDM{lz+bZ~*J@?y8PLxb1^JxNOxew9>MFJR;)?zVb(J z`k;iDxzEi<%JCis7QJXMbDvX3$ujq=`A9p4>jDEsr2_`aGN;W#%h69)wzDe^WQ~qP zf>%f?njsEHGu<3taHsErqLB1M4-`Y~%Y1;$)6GstwEi5uMYHr2dVvh}FcTNxcut=| zOUY9I5a2i(oHdZA$;5#iUEvn<96f%Z#8e9h$_$xLRl+iU9l(3-eS;kn^eYexG1dBk z98;|yNaM;sBck14gt%%KDj=@f3sT>>YV1HZx1gh)4J3$&3am#Zz6?;$JYUceW2O{z zbfq%d=U6jPHo#v35;omC6>>bS?+Ex!0lzs=f-mkI{-#{iH_;o7IPfY z0|(h*8m1UzGyEQF2a{gh5lbvMOq=e*VyX`d3G;C$#BPd2S>5JZCAD-S&gZznbiVwo z5C5qi{ygI`n7nA6@tJ^_rgXIYDaMy#{!eL;IJ`PSUBxs0$RInsD&gp>^w$V?@bOzX zZh*88S-&P6IbNLznr5x&f7iI~U|vX;`B0Ddr6xwQuj|{ML85OTgkewS z{2FPe=wN!?dV|Ew@#HDEA-*PtZ%ra&vNr;)Xq`0 zu#7(jvCf?gcNp_|q@#)}?w24nn3e7}epA3!IxNfaHSqltr&%85sBXGfcEp7iNXLx2P(Pow%3^?)JshRK{+WO4#ji zCzWw~5^fD$A(i#5pI>C$N6oF_zCj}cz%EXeyGQuN6l(6qe6X+khg~eN;D81PEk-3iFzFua7--tXIz|$25@F$EBGjwy z7=i1kEEx%LUW7Q$ZI|Cnx+8+z$|uM@|AL$sLBNH2{=6w$(~(R(3H%EWxVk}8&VF(B zx(o<^K@Bes*TN({JD4qxuAe5hxo%qCJi+R1ihbyCx*ybXEU@rKKz1ERf^L&0-Z6GG z>IgY|$HQ#$A$jETA&cp0vL;tZ6?4PC$zso(DQO-Td6La^2s6dSLK2x@8NyU%Yx9N2 zAYclMwE<7IHWjFQ*xI}ea64{H6KhkazN0mw$22>7OcN*hxXEtru)k(;BuzGcXE$^t z!yJ9q(9xvO5o$zU2wA3)!|1=jfkVi&ybv<5v170bF}Y1JZwlkrAz(D{iP0voLFBm> zPL~fo)#NO;9LQsT@UD5biK8Eaa3*afq}a&GBW;z=Rs&su9HB%Ot4Gy2wj8HQf{&?nuC`PcP}zJW#Z_dSTy&rHP&4BaG;ljv}UZ3uqI%gID+iY2tq# zL_@}6$D&dzM@fAMgG^56$d-;^6?`(C4bLa(YTUw8x^MR+8L+$QY`{*n zcbw1@AsSwD8fS7kK<;rvI;GVEI;Izej#zTIkPJ?_@>YZ3%keuk-We2^LgZ#kKQMuBO%fE znUL=260lo-8Iv!+=&4DLNhY_4ZFS?HWMd!yq&QfeOh_M6b9|U{m+*few6*z9-Z2RW@v1GaGvE zsQg_NE^`h^cEvTV{p*J03ac}Z^wDa;O`-WV#cwg(TB00^a^LsM2i=@_dkTLga*s)r z!^BUJRSMtB-IL*{hx;d#BTEe`32Fb)jtL0cQ4*`8hx33n@=`{du4AzHwD+MzC87Lb zjHACw6Uu=?InG0=k<$mq)k>jUE|l=hY-#oK;j*Ug@F7JlA-y=> z(FX@XEbeh3{mM&<9Qu~jbstJ(fs*Ffq9%w)9tr6KAuVj~PO(>V%E27N59m#S8sSOs z&P;R+!2K<*M!P|A_#s#P(jjj9=Mlz@5OHzOfGANxD7$4jGH{*ELpe++r+O)e*^~=} z5*38<>&b{!)_W;m7RtB0l*plWzAuD$vYW_n-T5l?Q2C6)qp6PS8rsiGe(9mI5M45FW+hrx8QyfrD?*f5XH-=P08= zjI}`FM;+%n@Qb_d5wje4KODKV0+be3v;vd>2tp5Qj^j5IGT%lXDaa#7O5lM@mk@Z> z-M}Emz z{=u+QLPD$ICy&W+#=i{ULo)0Z8FssWc*e0!5qFYd=YM4|6&5*uF~yeJJ)lQ%-|JD* z1LaM~QhPNnLx0LSwA}|4M)@59u%Oi#2|R%U8kKn4Wuu8(IMiL_={`zgvXNeSVAlR4PlkVaz=GsKLY_%?cjya_-xNKP2)J^&6n)RL zp^AIy3dbmgh|dGRc9eXJ%!c3Xh2QxYyxTwgT7gGG@N3;;SK^#oAZ@8Df>{y^Q9(N2)@C7!j*E(+M z#u@Ct);BxW!GEovA^vN3#?)OhBxbXRKG{ED{S5AEBm`LB{ct@DB3Mydb=?ecVC}xX zywQO-xfTlOJOQ0&gRT|O)%ii!`v;wu;mRIWRte@j_vKd|y|qRrVb1Zzj52%Qa6Hmq z2;>=oJcD0e#T7|?Lm;o`hy2+;+5pKkNeku%IVcbQ8g5n5)|z=QT13c0_*I<~tp^dY{0$ z1=cOFE$8S6eMVqU=7&A&9~Sfk>t@&jZd76`;xfrQ9WR=$#~s0@>2Akrjd~=>uKbb= z+~e40R_wJq-7&^wCkK_oXCwKQ+zKY-pl#I3nN9n!r)1CSN@M(XykiW{Y9tu#0uEGS zQPR!$J&qyf)_d5gMj52QR}8_~wkA>TYkM7*GQ|$sQY4RI)0#X+OlyW$iV^vw7~@|G zkdqlhLUS(JJ$S!krlLmz#!t_9fz6PEj{WA{92U_36ioGQk*O zA{-hz;97ao(Xo(TFxHL}@v}O_nBUCG9P7(OzWj?%%?dJc+UUb6#uWeBahAeqyB+4( zWrzG)9naaY%8z}Z?tuTk+a>MaWw#$uMy<<^(&q4I*yQ=Ut+SkYc*)_?s6~Cb!$;nY zUU@mLz3U_DFZo2J%bRA`6_F2@G~=!~T4JY>+%mi@mHs`P=VIea(emZ#j9!fJ4 zw+Jtb4!rK@0e_2#^p0`t^B?63e4`1W$q$Zr^_h@xEV~1nM00RQ>$4vm?dYl$5ndO< zKRtxVkr#0SO!m)tp&0Ur5)JA<+nIvhMJl53T9+RW;Og`oi@+r0Cr5i+q4pA%$1#Ku z-kRe~$J;g@!XzS$#U2fjYCKW2Fu{j3Nk~n%n~rYSTJ#Vu5JDq_3&zVveA+)*h? zS&15t47&Xec2uiLHR_-$6S$rAy@XXJ2yh!A#G{RQbDk65eIouum?DIuy@bf2PI^k{ zQap4VQu)p&j26Aw$mjXp@1uJ$139khI8NfKjT7W3A2YIe0LN9GP3CWoKZCYS;E3vN zlli;jpnh|LgiuFV2LAo&phHw6ECXS5AE*7z;P5{k$LRL~NpkF=>I)Ni$+<8=A}PFa zLM8H3IQ%Dm3Mb?~`1l4=TkxywPW%SW1U9xv$k<*mlm3S9geS5O_+daWGU5DFIKV(4 z_16Q(RXWjEPHYWiGHi6FtaSK1i*m}A9=;`}oDxI?W^y3aD$_4ISdghlLg>-%q<=A= z>5<^^^L@mS!nn^FePu=Gw|L2g!LtNBE0Y%c>SmI1R>Ac@j|7V!lVF*D3BZRWKtd8^ zx#wsnB)}s{kog}8s<^v4oI{k^8SIp^q#ThVCzHHO`&ZH~dZjr3m=u@%O94J41rkVs z#NF{VCqDm)XAb$S$na~TGTh1K3?*-10t{1ik3Gjf4;&NpP zFnZ%Zz*GDK?BZc|0a#rMJBO#UvQFm z_x6M@Hpy>S1d}YN6$B&~$z40r*;Ki!Mmjs-M>i&s9J<9Mi8FZ2tGIu6 zJEOIBP2xafnTW9rubSgmsPq<*;B}7#tnP36ZM_C9Nq~f=`LapwmHV7~EP5u?CHYZL z*KkhP`l_H_64XmJ>TiO2&x2}qbl3k^yFp8+NJzymxev!VM>*(`KreVe#SuIsHjj@A z4#6DLQNjKRa!%SLi_b}e8fJM-a*TU-edmaZx=R*0fw<+=F-xv@G|ci4^C@YDO+3Pf z7zdnvo#N*OLTT`gaLj8q%QL{v{(#&xo8bsALw2IDSg;e-*~hVg14NfGz>K`8l7VDx z*o)c;RPmyAx|8}jiz(drNKbLr#pPLSm(?HOY-!G>ILGTxve;WvC(Nw=&TYZzV~1s> zw@J@RHYS)o+cYbMW;4@ZyZN6~XR6+9ldSaM@B)8=21-tXFJ#FAKQ!Ih zTA#?0wfzXj0~evnT$&6;8W}sX2Uh6|L?gHKj+yWw&c(q$p%j-_f1J!)rq_o!*Xr*l z(<(3TA?tr8%bfa~>Vd)Lh@nn}&qZWrz`&BBD`A$8gtaL#MON9GQbJpW_(i`Ar)-mk z)}E5z++3T?C#5B(@YF{_3I`smhdaMO%GL%kPX-KokttZ&tJuHyHrxx0Lp=f>GDQ}Z z8D8LN49xqat)}objhX)8hX_0pz!w;TN*t8s`^`5LlIctJ5he;RB04kikvmT(Y!g|w zaVJEXvm>4L@Vg9LOg-_zV*-8bU!ZLw5E3#4+svI&&dwT7Bmust>gkRsb0ou=t)H06 zdu0y={oxcbc_pW^!4I7(2H)<2(o_A8z(YYqLWmE|`(vETHJ%9ZuY8DS$2!;Pu8gQV zPGwu)aVqz{9wLaT`4NZuM+7aIJ0w61>WE6z=_YZ4v#V)1!I?rOWck`n6(e6{idepa z+@BHx|BWe1mhTVfO}Z6BQ|tVF6H zR4KEa{S{8_h^n4Ywf9ohd&)GJ1Gc?|3KfLv<{Y@U2sMZ*L#UqiQXz-pA^6q=g(nbE zM;yE5=!LxvrrID>JG@jIo|5qEkdUE*O?GKAuF>G6j=;VUvg=+lEuu#+%-k@E$8e5#z4)nDw)41RGs8~zp3+3@oZb)D&t z&48rI&cbrEwhX_&O0OGko-RwkYeW&2al?dsniuJ%EOE}&M^Nuw%=_tV6An)2C{LdU z<4rO83p41+#-ko7reGM;xnsqsYmzi&G0Ki4MwBT4E`BITsPvIc~O)rkzHl_QzE;YfWVE|=ox;I3(a6;BtQm3ck;j31i>F{ z`GQTvCPXMU^fZ@qr5YsADKog0DK_*(FZB4wptJl#g9RBtBm@mk3syR_=#gwLUNiAQ zp1lgu%$tJzh9JLTBOmf2^X>^W%WUwG)B-Gt+823xgf9Q#TU(E;H_+{r}dfT0P z`&R+})dntPHf^(eJDC2=*V{#&_S@TFLBL1|7(YF~*13qD2>6aK@X89#?^GLjeZXz` zGX_DeeMz0_Qip0=)W|09*VE00!z_Kv~5CsHN@>uVI11MgZe4_Q8*GM{jnZg^m$)s)BY{z5%{>-hs3AT z(KET{qi0Ibm9#KD5lkx_DTs$3rxsr6O5PUy@*Y9D;qYv8c#uvBfjf2;)kdRlmX}ZL- z@8idG=t~oBaLQYFVoke`oqO~rkc-3F5Ag+1qIJ*m&~i9?!=}CNLp#{iJ!^-vH>Yzr ztL=5@Z)&EzP4kD%@Vb{FhqG7>*~L8W`EpqH)#?QuI>|(~xcE_J` zZc@6_Y&j3WJN)OJ@>&7qv4`1iwn;zZJfKI+X6LeSJCNJXlJD` z444cm{6GrAL@LtDXS44GI}ZMQ(|7r7@oaVo5%2k<7I_e$rQb=xwIrrJF0@~HXw`A^ z{uj67Q2$v8k^(g#9{&rw{lVIRzvUnnilS#oy^wQSn6Upl+tb`sa- z+evd+>{ed-IOO136TVskjzW$so1A}LZ_Zd3m5<*o5v z7o9O0!@zD+;%sr7-ZED%I+yC!v&C)VA8FY)hux;VbJ%U#cM1N_o;lulS)C%-O7fP> zCsa2qWB6>oT~zZMX9mupsF;rezn{bU{{0+sV(g1H|4Q*497R5$KL><9k)2=Hcg1Z;D)Xj-n^BG2hxE&=2ZenPcK#RaM=Ot~$#r-5{GSP2Fsw(si><=WKn- zEDXkb+%3Oz<|2pnGcH>qFA$S{;$x}YCO$X(1dWA`BD&><;MeQuF1*^~uJyfhh$A=) z;$k~tVm7)5-#!V)16+XtlSW8xeiJwluz$i zx50~byEu&l>-InN7wh&v=qCyvBW^n{D_v@?gpU>H%1!=K=I-xK`zC+rT)M^jm99Hi z6g+e;8ZLV`b>_O?x#z5?bVtzB#m=^KC4NktYohKu2kCS>f6!bGCdMN{Ffj;+xfG7g zL`uKaj<=6~#|{;U=mQRVl})rlh+Y#SdU`Ql*(57GBo+U_Hq$3I$q6C3z$EI#sz0&4 z{DVz$!b7s*PiIg41TM@_#48j<=0UP*1y`!PR|OxM$$x=3Y@Uet&_i6}Z)cjWhikX= zig&yTc?8K@6LpM^M}mMSS!n2yG#AZ!;Y2_Wonh19x+T#}6Pn@k%(#aLd!Dh0hI@z# z{NwDeH`qkD6+lF93(*<@+Go??(FS_J=fj8!ZxDI5=-LPeEi? zOf+7IA_CE>@km646H}x|<^(l#x2T}`X!fI|?F5oD3IxLk> zLH=FX_%)D?8x^ww1k}DDqW0y2?p5F1OHV}i(?Gh<+-_#zc#e^Gnmiz^TCZW+t=IVc zSoG-dnZyy1^d6j27`UdQqNf?$=4Ke7qEcv$L|h6F>*cqbV{oUi`2>9fGjx(65$4@= zA}4Q$n{QwZx0jyy;q%8i9Fz-e$kNLsjuQ&0NSTR4C)FplvFhBMJhabJM zkvT&buB}`Z^J3;q`b;e0e8ZbqTGiNGZM@}U>7*3VN&h0cAS`|Q50)-f%+g6=38<)s zPU@vi%_xN@;^6qr9Jn_$GrOXRTFcr~Yc1DMEo=kybZ%AawX6{>*ZK)*yP9h&svQMD zKE-n_k;ap|M|1NM`Y~%+JZh{B(87$n%q;bU5S}cAC$Hsk8?``azTi)@ZRnzki2{}+ z5)lyvisDx0VR|HyoES*+Mx^J#asXZ zae;`6d*C{EzpmyKgPw_UzjdBEmLA-fFN?GG0jxju;NE{(dT?3mq!q{n5orZzS=!w_ z%vH8J3U;^)_v$(U&RpjY+(Q4S7tXMHuAf<3opsQZ3!3tm(U{cL@AWg=R=$c?x;$Jp z&<*;VE%p8(X5GYVpWhBEtLODMN29~dw){)Vd$YtQ^~~E`<E{mVawdIO z-3b4W?^8NBY1&v7beBTI#{It<{;r$!|3Hg<#Cc>(*+-0s!aw#ABcjAdj2>v-VW@ke z*#A=}D`O%yu> zVI@fCnLzAEFfxJIE=rt&FCQ@H1iwS?!(DGju~QKLpt(W432@IeqH&4Xa5i0>r?e5S zeo^ca(9yzl!xMeJc1qbs6ie>!Q6#zjG2(l03`&K1L?QIo+3{U#eW32V5k=i1j988Y z>*{x86jBQubiOd{;T(;8{mMkBslb^@BOf+f=q)471-N#DDbVW70qdFefc0#ja4?;h z_5}LdMm1m0W6D!1q)y?8L?1RuE-PG6_K%n-zM;s?HxoHmc9j*xT0X{~547k5UBu(~Ib_ZsbZuhAl` zbCJ#?talQO2y2aK5!N-6%%b3B^gi6RB$|bF`D5nGY9YWq!m8qtn0(h*N*Cd}Gnx)! z(*K%ly45ale7%**jAlW}1Shn}qyU&Qa3>c&Vy>eIVE%I*3!=Hp4j8H}guGn7~-DLH08mTZfr|0efr_Cz81GJ* zW;Vo)GcnRJy(32EHSx@&PW5AS@71_1V9G2r6i4ow{ZzLY>7LdHCWlf9SXC+k%KxtxXKT=aY?W1%NuC6g`P@a0m zoT}c6;d(k5!}WABMtr{>^UUVz0??tdK1B*t)+H*mUsR<^>s-GgbS1@bWdV>X3lUY; zN!@RbIhmfQvW}y4aqYJ%0dg!kY&F;1i8U(M=fm>SYRB3em}cz_KAM=;<v0RsS^BZ%B8kSog;`n{4TB!O$Q+JC51OuWn$r;aE6wS3;G(3LIAZ`++IxildYSp6fz>(q$|ruzjb(|M8!OEY z%<(GtdTTfXatmrS;Qgia{#b7A=IZiQXzl<{A_DkxE6nHVk<9)xLcaZBT(JiNkkmS( zj51`_OSf3)7RUOWM4Z*Z#LqHuUP6-!T9DF@D`ufsSO6+w0jM5)*jQAnnDWcD<~`3o z=IF{vX3fOLlkUK>xBJlwl4i7v^Fs4H!4wC2k_Va(2hls@Oj-Aqio&^A zxvl2YL8RE#yf}6y=}gJl4%$gRw5%+U08*CfCH~@jeLY4MfRJ@1mCBQKWe-S;uIz~u zUD*_EzF?@*II-Jr;fg0ZaSP9^EJbm$B_8rtN4JhOho}pxun6z|q&(t<&$vV!DKl<~^9H^CoQKO^CyD z8poT7#=YK;s@q0(K!?g3azMLn)LjzHBrKC93@I6n zN4U<%vHGpk<}@622)0E1@;0*iJ%8r zR3joK0HO`AnnUT4^zewFq7jNipaeZ6{a01vsfEHpP4m*t2Fi?Q-B*p{xp9iX00oT| zeYugxikik(NY;#JvWSQ*P_X*rky@#scxj~^nvJ$&U~Qbx94$0Q$FqyAW(mz1fi!1V zOmno*M0D_th8RcrE7csR@KpY0XFPGc=uo`0-&~}23dMAxnC?(KCKQhbQY@&LV!BX7 zM7act)46av@JPAb?xiV);s6zPq)LSxkW0JOsYYCl0MX#)E8kB?pine__vJ=W$uFsP zStY9_cvP}lf~aKhP7_z<+?gOM*#;M|K_#Ic2lF5seECw71l_wDmZU%stLw+I&0xJ_ zmpM%J!7w{?Go%SnI=b0AL3iD4mZ)*SM#?!lft9n?a3mr9Yqc_IX;RCltHg}c?c>eP z`p=zcMvm@5t2oDjn3=%-^HN0cpJyiMMSIO+6^*NsXf9wTbH(R?4HpLa9-BZ8c-pJ? zKC_bo`jlIZ5_-cE zMajYvxq*AQV!A*;x{Zj$4|rI&@koTbBr;)4z(Ee=AS?BG0=G2SX~pkO$0$p^n;>n~ zrbH>3WYCh5@w8QHFPP%tkX>MvTB_tkX{i9qE!7(i>^6=9%9PF)z43u{Glo|xY3Hr>C-9A;0XZ{e=-M6aPfy)39+h^whD{W#sI%xo9ZjNV9IKoxnB8`kR0 z!+Xidv-FR>(`Pv&4T6A1cZdw??Jg`fA2N&>$Q*_z#4S$cV?d4~cF=j|mYZwHasleaAdD0y4$m$w1O&3Lf{56ee*#4^AgRcb=C>=OAoz;))8!RnSLQl1S3C$ zw}rtbBS?o{K;CfGns*f5h>*|MFxnL+f7`ziqOO1zJn%*-6|xYN!Ym*n0|j*5-#0rW zCLWARj79bmA3(iOCovltBm=V*#Y3IMO?Xd(4JfWY@L5B?3aDzf1y@jbWDBlPDX=Y= zP0X;E%}!xkpr@WS|59sHSX|Vq6xrf>`#EzC&V@myWsq|V{cVkruZ!o*fyPnaheP~9 zr2w9~YO8?Wk@Msfu^ha6vEfHBT0qX?uq=hm$L*gXu}8&{2~boF*KmAfZnD3nH`w8z zr+kby@(aLtWCHgvQ*DTk_y;A6a3!NO(M7xMQw+b}u18*RI`wrl%SIh7qmpgq3-#wC z7)I)(0&{@ zCet~Ti+!|lp%yVnV+nmV%gEA-SpW)R0THnPOp`8}I2B%4m>j@@_)*p59S;Qjfg&Sk z3WKX8yUvmiDoGZX6;yCyl2BDFE`7C#OJCxK#pNCP$KvvimZoFnWplHkzQlomv`ZRS zXk9_g;*q;JpKB4H_b!{YbXfh$HS~b1W_J~|NsQ6wz~+!toAeu3&96yaesN^1F8!6B zf9NK?B+7UTL)zZ2s5-x|SS-<0m#jDL#W1ip$$)?)m%cKeG^YB#;@nd|1ZiKRy;$h` zipf8}uULQ3Ku`I`9HRGLb4D#TcoW#6n;^H;-)i+OdMZn!jjFoiw`O--0pVpO%bQvu zFRU7YnP)eSRpZX9Fqg@*j4*}LWBoXT^iSWJ$?76%g$CDhzc*JI!52UrYVp}7 zJ@sRAmp*+N(96CzP4)36_Tn(40xp~(`yVNBgiCE=<@oj|IIq<=vnOZk(m!Fv?9DRQ z-E?ze{1=f1zF}Vdj?IDkfKx#$Tel-^VxKR=kOs17+ekz6TRQh=nEc&8WBh`?!+ciR zEap>fX06El1=D@wh3HrzI@TdNXER&sS)0Y5>#~_UP4g;E^b&dnt4Nul*PEsJ{yFYeM|mX6e8MZ{hr#Fs{^Tbn;(qONFI> zO=uz_n%8vIzs#=`o`~cRfh4(u~3MNQ8TA@vG}Q-FGSrqjUgwbS20RdHXE>atZlnNC|hN{LQ{`}G=DJ3|fH>hvP| zZoU@%Yl&ksrr`8opym-(U=zNVxR@xVV*y&0<=b(PvhnmK` zusJ{DH_xQe#Q+PI@WkY-+7l+Q~%ut7cd`pzggEZ z4RwAiIhm2@$^3fbFrAEW(9DAj7S4^*p$Qn>lwIYtr0pqP$VSkpbrm zAK_+31H#|U?7fX$2*8l+AR^@fXv;>{EP5o_d1jlQdJqG~zzgpoysYUI!vrUXeDhR;0{HS8O#X=Vm$!xK{)WjO3@I+(_JY>bId}^Br+*pt%X&sHv zB&`wKr7Xg>`^utW;_2)V_u*#NEm8L{9df(;Se#O>nE zRBvhFwuJ2M;{EQ~E;DO?x3@xd_xr5d^tD#jVpX=CJ4{B2p4ZlDt;)Bv)RrK^%Ds!* zW$>nim}{*HwkKX1H%$G<0r^!x%v1*XRY2<-yC42KuoimGy&X?obx>)WTGs_pRbn#g4^N;s{s%c6KhRbhI|AY%q;s zqCL8_BQ$dl4wj^abfrKCRVl_ts7e{Y{8eQ^Dyzz#R8|#4q$(5*Tt*RzY*wl?GnuK0 zmj^CXe+ZS|gvxKJ;@j8I@x3iMo}{|`CI9*yutQHm({3h;qf~LQkP!V%h$4Dta5sgB zi2mXuO8VL80c$-DCnXyCS_}>aN|Tj|X+nLXk2>y$Ax8YDKlTsmoaKILoMl9m<$h_p z(L>gL#6%u@otP9Kl9CD0pdMgas_1Ggs)KYj8t-|!IaQP(D?k)j3C^LiND0nSsk0L7 zCuZ2C-=8K*Fy>y|4y4{l6D2516CWNGZ|XMpS*dhO8D)rOkv~Zz;lxA&-eBuIp0H&9 z4~NyXpte|yPNQ={gD6ZThWHd?9Kb^D!>ufj;?{dH^(u{LN-_eXR$xd zoFg%x>su+_p$Jpu<)3}0ybq6bHoA; zh@iiIEG(>;1)v}n5D^Q D(#Vqro63*wXIbD78n^u4Gl>J#sBN*ogmsJuQjeDYd= zw6OAAPZ#C6P8Gq*^A_>M%JWtRDNhsKy|-$vvqxADRzK(cb}mDgFR>fyxn1ps?)yjL z2u|aod;BQtV?zaJ$|zoFrc4gvnS0JvGO6hqnG$Dp)5FHV6=;!3>exun>S0HORLS&8 za`Q}mb&Pet>dfDJRuA|xYpnIM8VV9LJuxto8TPk;Ck81twW>DrJ)5G}kpBwVH-?0SBH@oaV%hXphPi?RoxD zYhUmddLQoEl<8?#22)18_tGWg`}(u+|RNq*^cHNeUQc_MgB>Hvz-~N25jGIRN`hUsk`Y9}TV`w}3qYG(i~=ISR`N3aV=H-iCt1ll zR2St#J$w|MgJPOV}*5(dIy7@bc5TQ;Eh^^o7CkuzBH
hF>os6)vjTo<_p^xjogU;W4`D_ON9 zII4x_yQCKC?2=jtMLSOyZ4Pu0^z$H)T9~lQR||hp=~UE2j019~79Muc_w%9WS^%$H z3#S5#iE2U30A*5+8K5lH5J&&G8scy=fxmL3t+f^y$?n_NSxpVKcbB;1S-W)DIxAf! zX0wQYsR#EiKTRlIk9t5#u7@;m=c$KgKC|^MU_JHVCOlFP(8UBRLT`+=`UQVRuftuR zP;p`xXofGxxgG7 zm~%$!w^Gsw*Im2W;~9}`JxPcAZ-SXWvYY*lBfDiP3FrC)h!1wax&FvHuQqIb8u0#J z&&%{&kw^m_HL{4Pkv*c@YHJKVkq3Q9a8nQB0H~tp8@$PSN?Ci@@d?_)j09nIJ6%v8 zv4ust%4b7eR69a=ZqbBlZc8}WgNTn-@pdb2f_CRks!!V>3ZhpS3^#Q8Y@L80aE z*?QzQ6vtK+9vRt9yJf8E@jYT6CWEjPAT7^$dn?@N=fEMGhPhywoQ27Iys&H<;vLvn z53KI6-I}U)NtSSZ*K6CYzTy9~C^M-9WT{4)Lm}2jfvp3onyo`+s$S6@NHAFkU~ifR z8-0Z;if#1ARCKI8A0zAj#^FGk^^(U%yC8Cx(hR`a>EGLQ};N6UPZ@e zTdlFY8E+z0mA!B_Z50zdk8GB=*I$j!w>XhFX*^n`(ah<6+LwzMx|fj4pI|D=pfyO2pyz$ zugKsWZhy?hKnBX^;OEvbHRu)TRP_^>F#^*MiD?JK6An;6FHn=K)_AqV0a_qH>jh|m z1GLEjTHpmr{laRbKMAq>se=w=jzE?OWX>x(<2JjaddGpx@j}Mt!XEy06eBiYgc!}$ z=K}UCgW+I-MF*|nhSDR8oZ81LPwv|g0IYZVR+WL6IB)8)0XDHR)iXoK$f z?N)VNly8M$=Z%-Clgt#Y!G`3od<#9nQ@6_60bvcRA;B8X5iBXNRwH7@VEZWBevG|c zXsuS2ve_{IDP{C0GbW2+Ro!g1&b0uE`9%*i^|NoWoPd(b=}%$iPyI%*m53*1=Egsm zxm;p>s2&t%hGbKPVQRkoO`Kkgox8!hU8&VVJuVDQ4rFNBtuh3()LbB<=3+>;`@Z93 z2JuY2!-3h-RyeixRhjjX+9Ld<2tO$|^K(G>$qwY_;H~llw8T$Jw(c{`Y8VVKnxKqX zlXAjZtIxg;#}p}uwL~v#dg>C4wp@S1+N{13-mVC5SBST9>QCY5Mj%Ij-6}^wMjRoc zhW&~TJ!NIk6EShg%LGex_P?!Fs&fttPx~BJu=Y8!Eow*(%gw-?0J#~KbBl5VG$Yeh zn2|$FRBaD1E*7*f@520ycn5tA5G0n`<^)vP@OQ06YNfEWl%dtq939@o-iVk176k&d zK8-nteFCss^03>Hztubd8x(8m_bC$0Qb-q_AGiNX0Cgg(V^$8LSul? zq4C~6`?*^C>=$Oxf_s=5_YY%I9Gs8IJPWyB!l8?S^O@b86po!#qE>+QyiI4c9F7)Q+AQE_XoO2AAW+- zPiNG}z4lWp$WSNuOE0Q)zkaBS9jjM-W7X0VGcjAe;Joz%2Hv?ys1Naxj=unp3D+rH zLX-2+e({)ap8{tHQyX}fSh}RO-gD8KisfGiuZXLqLJshhNMm_JvlAf)WDjp!desN} zU*~-R%x86*%YYo{gX}Ai5BnhdI*^YGWM2QN3I)rIzxBN~vD1uKhKf(k?!5yrUvEP-)aPD@9E^UdfsLe!bnf z-&j2rYLvTXh5IY?O(x~~e3LVTM|_jw{oGm!?q$&6g~O~Pv1t64sRowQHp z`ur4Q8F4B7Gu!FZ)Z0&XY z9~h1TUMjZs0OMk7qu>1*h6arFq;F)daFsG~0hh{CYSb#?<`yq=ONF_m4s$qvmzYcZ z2XmWlmAR$D9PkozOFhi_H;(v5%wfRyCg!NQ!v+8kb1hDJpjDHWNvo4qCM6#~Q;C1P z4drP%zU!33`4!>((my!=;#N67C7hpP&K2--lZZ!R7IT|7F^g8Qm%jfmtBT%Pqe^X^ zb_Sw=8!!KMYQ6p;uJ!tdL{-|;mq=6yBL7-%-SN;Z);bW9FaqJovDj#GNPqHwSZaf} z#9kdC>{rq6{AFoe3gqQyn(#Bt;b*DvgEMh&;%E7-@&km#4#LSMQgwb+`p4~&7OPkK3P^i&n|1`XQzHb%Xs<)7+pPgJHrO7c zW;ig@1!lg$&=dOMs~r$r)Cdsu`yuIvr#diO1SVTxwjeR}!}A@WEnXn*ho5nP-V>n9 z0`#5(^pgYho)^g5565Qh@`ko7eW-kxTd;cahFY-7hq*hB-DH%AhgEQ(c1EPlLy^d3 z-x~Hzy{w*X>T?b48r%+c7c9ekSh^n;SL0DXEZzOFT&rof4!Md7b=tz;4h6P_HFatz zO6V#ipN8Qt9;&cGTyfafApSc51ZnGU6Y+ zjJZ`_dg#zrC>G!)UVxW7b9f|Px(Z<$<2eMgK>az~r$W5UJ!>1n%36n&bYTTo%H32f znYYRcjsqiB)-o%`T0Nwdok35;2@ZlHveaUt0f~gxw;x^E!dMjPFgH_}y1;v0;Y(Ui zlf*CBd=Z zcZari4Z~=rLpwWmxsjXgGMW~8Lw325Tc2oW_eM3+E3wOsboo7wU2Z_H8*AQMYq?>? zWZ*N*?Ppd)+uNP7>1*CSc36;0xhu4&(*f(5PzxhGVo@u*#iIV$-d-F09K8>B&2zIw zJ=nq4YBsQWhCgvw1bA^Q>MBYb;R$8$PF=8QISO&D})E~ zLS|DU_CoCH#H_dAxQb6A<22QIk_dAZ|4#q7ihp-=6<4OYK;5CYY8#?xR!|UNNfRN! zx|zmZ?MC%}#utIFoaceBj3fQAqRNdGRXC0-B+s4P&35Bp+&q#CStO-8<~U%!f9Vm@2`C&g1M+lQPx~1)F;85TM}U(q{CJpSXAM+fdaMZyyOX;87_vq4?sbpJJh|4zLC`4x!Jhv1Ks5|44DEWk zoF{9)hYr93GY|8FfY_N;>+hiMB&e}OA1sQwK}oW?X-_36qJ%nTQM#;G478ipyG(_{ zqPPqkh$t>QMxr!UhYYfRRQi~o043tfe~gj3$&>b-Bt@3~Xs}&fmkzdvs$HD0M@S;& zL}+ClqiN{c`l%uIWL0=fgeng>Xv4!{-Ds%YTb*@YpO)9^FwoG@#!YBEVuty!5yMa| z;Dn_t_LxZ79#Hj2Sr&01QnnGrOEWDY55Uw|`FJ1hs*=y5hU0BkE0r&z)*xT%u|6e< zaAh51pKahn_LJ(Kd=|A1`7CN3@kT!#z$fd~UBoWSam~01PdQfg?tQ3dSOhh*> zgWk}9Q@2U>qi_wlFnBR`TmknDqf;KU6EQXB1w0{u=LGPCt~c4IviekeCN`b$^UTWa42D$E1^S28_A(4B(+BQywJT%?p|`vt z2ccb|{%MUp1@~T4BAE|IDq0W=cvetf`M8!8kYnJq1Ir7f9dIG0-q!R2(a_~6PmhK! zp|TYXeX2k-w8nIML-0$5c#p%n3Ry!xnr<&wOAA>;F@y(B96um|l0|?lv~;-pnP?l= zo8Mb#{qfvDmJofPu6Jiz{7r zLmZFV*kyMzYGo5ymI%+;Pww?`z^%S3l*6BXKmugZbNExXj-LaM0h?ZlG&zb`u{6hS zp%=#6FQ||rwkyF!%xrKGF*{H-D`JzibERjP*WBn-O|v{ue14tEu0-! zQlRuMfyWfvMyJ9Z^ zS{sAwG5RdQ`Tb9Mt&wYqUb)1^^*4oL);=K-X0x^s^u??#EOx`Joi6YXPpwU}+fNqQ5BC*6IL{fKc!IAs%t6g0eb zK#zaPj=_c(FX-0-`Uitz@NC8^djrOarf%?95+o4F=`Y(48%_BO8={6KO!RJfLx!kf ziSD%;J(XTQaHF9P-RAUE4(RV!V_apd55*`!G0lf!REgNKXZ=u&@}f`&P#olN_!md9 zpFP`AEcPrGG3*&G=-#-_?i;oPrROnc=~R+p&Z3LOoYjr8_Xh7O!TWI6&Js3f@NH*N z8&XYAUT#~m5H6!ctlKf-&6zwoN>CB5bUiW+J0vcRG&(sZ?kp!_6L-3Vt;XpRKNI&2 zeU8M%CWvI@DD*p^@;7hkx`T#!12pLqB2whjCGI9JyQ5L-G!d@IzSVe*?OSN*YXSBR z@K86bfF<6^zNu4S3tkM_H}ZEj<2A;*RNL2>+qSQ)S z*abMTi-_0-7B+KuBl_XJS5K2`Iv4o9tX{fAnVJnq=Y{XTq_e z!KK_*n5EKIIE7fPw8BCJ0xCpAppV`0SzGKQ^h9O&gO@z6&4F$?Lm6*y#mZ2|QF;$M zP$GWe@KW}d?FT^2Bdd|_ueRA^3^fI8u}?UuRQfy*l!{3MF!yBwf9?_TDX}iL^M_I$bI_iIaqT{b9Ph6Z{k$H0a^w?!OS1K;kHBj-`m>-Cu*qDz{e$=UHw#%MrcRh~x zSU#r9_t_owvCpaumEIZH4HX;H@wnKSp~O{VITL0OK}EQJDCI77-97eGxCfR#^94Q= zjLMSciyF}Z_)o8t?92tM^7pyoJI z*UYhp;kr4_B%M7JbzJ1kontpr4&%7GgTME_Tn!Bx^TKR?%2co@1H?quP^c_x9|Z^k z_cwr;`x{YII4o-|$~>~xqD*9M=>hv)H2cP3Soo4@(3;c)Z2Ce@5aAw2=+ z2-$;WB4pEWWuzlyQ|PbEqfF$#GF}%5$#o0865Ti0oE@e!y)H$CHjfU%4~kiB!A65BYUF%fvR- zI3a!c>L>hp3Oa@{nJandwKqB8*r$dk#6DF&;YGmq={^TR&j1AI@z>S`{q6dCc|Hap zMxPL?`wcQhM@syj4+ZuxJscz)d-Z@rq^FMvuX#o(vH*3Xk`qgUN@f89N*17Rs7P3V z)_@Z+R%=d>05x>4EJPQ=IO6`j*#0c2MI3#PLGWBm@NBv|eBs>b&*7*=7kzl>xu=_8 zy4w|_ZydM(y?kW@q+LV7>IekuDd^S&K`#or-+|yh3QC$II6*;LD+D_!xVH_0J`||C z5!e)TZ;#+U3U+ivu!n*_J0UPSBY3F`g0&QU*A2n-Zp#ri>w(}d3aZ_Qpe6-1dLyVq z!Q3GTUZmg#1%FX6V;F+j6pR>-UGzBw8A(&0Ue@7#z^e}>=u?UV+ zF!a$%m6p4PBXqqx0l^sx-k*fvLkfzfAUIAz{b>jyC>Syu!9x@re;xr{P3}4|9|7G^ z>*_T!00O#!z!efr?>LCTKRP$uRkVBqLOQS6l@~|P6oe-rphGNO zjgt`2;exK0D4_HBTwhQ?r^vaMr68aK#9Ze!0y;0rRkRfW9RT9mu^j=Ob>J#aLqL1G zT^BPDd_qB`Oa$1!y1bIB!A|_8t$nWR6wu}|*PFDthc+>}(r9}MZKH81T69mlKV09? zqI+5b?JC67x{H<_xh@_;K$ET*{YOCa1g;PoO|&U!M*$5LyJ9gS*LW+&IZKoC=T){NQHlZKfw=5upic=n0u zNqnChb=@8OM^||9zoFZlvhPsMFoJN(#&%C1-id4 E1Ks+XL;wH) delta 69346 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 z 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 F^p~;LQ)&M=C1$+Pi delta 408 zcmeySvPXlpfpw~($VOH(q52HY9=_tr;*!+d_}tXu;>7gSDU+vYHcqLXqLIOx!Ir@u z3uNfR1bU=GGD~t&6-x6`Qj2mj^HLQ`^79pnGxCc{^rnE+W{BZc(mDlUvUHX!BLgGD z@DPJv|lZ+!TeN)Wnp` zymT&G7=SqduNqVrgo15M%#f>{GP#07Op~)BH^-{DATc?0N)JatQEG8&QCaGg(hRMv zV4%tjh!ZnpGPEZbaLIbI=A@RT=1lQs>R~CVEC6a@4|fdm^Yn9{(!&A@9FPoKaeiqL h(6|h3kSPveQ!;om7&Dkb#$?EPGnFPKPPP`Z1_0mSh*$ss diff --git a/docs/html/_modules/PyWGCNA/geneExp.html b/docs/html/_modules/PyWGCNA/geneExp.html index 6a5c09b..9137c88 100644 --- a/docs/html/_modules/PyWGCNA/geneExp.html +++ b/docs/html/_modules/PyWGCNA/geneExp.html @@ -123,7 +123,7 @@

Source code for PyWGCNA.geneExp

     :type species: str
     :param level: which type of data you use including gene, transcript (default: gene)
     :type level: str
-    :param anndata: if the expression data is in anndata format you should pass it through this parameter. X should be expression matrix. var is a sample information and obs is a gene information.
+    :param anndata: if the expression data is in anndata format you should pass it through this parameter. X should be expression matrix. var is a gene information and obs is a sample information.
     :param anndata: anndata
     :param geneExp: expression matrix which genes are in the rows and samples are columns
     :type geneExp: pandas dataframe
diff --git a/docs/html/_modules/PyWGCNA/wgcna.html b/docs/html/_modules/PyWGCNA/wgcna.html
index c5ed54d..b2dfb70 100644
--- a/docs/html/_modules/PyWGCNA/wgcna.html
+++ b/docs/html/_modules/PyWGCNA/wgcna.html
@@ -187,8 +187,8 @@ 

Source code for PyWGCNA.wgcna

     :type level: str
     :param outputPath: path you want to save all you figures and object (default: '', where you rau your script)
     :type outputPath: str
-    :param anndata: if the expression data is in anndata format you should pass it through this parameter. X should be expression matrix. var is a sample information and obs is a gene information.
-    :param anndata: anndata
+    :param anndata: if the expression data is in anndata format you should pass it through this parameter. X should be expression matrix. var is a gene information and obs is a sample information.
+    :type anndata: anndata
     :param geneExp: expression matrix which genes are in the rows and samples are columns
     :type geneExp: pandas dataframe
     :param geneExpPath: path of expression matrix
@@ -331,11 +331,13 @@ 

Source code for PyWGCNA.wgcna

             if np.size(goodGenes) - np.count_nonzero(goodGenes) > 0:
                 print(
                     f"{OKGREEN} {np.size(goodGenes) - np.count_nonzero(goodGenes)} gene(s) detected as an outlier!{ENDC}")
-                print(f"{OKGREEN}Removing genes: {', '.join(self.datExpr.var.index[[not goodGene for goodGene in goodGenes]].tolist())}{ENDC}")
+                print(
+                    f"{OKGREEN}Removing genes: {', '.join(self.datExpr.var.index[[not goodGene for goodGene in goodGenes]].tolist())}{ENDC}")
             if np.size(goodSamples) - np.count_nonzero(goodSamples) > 0:
                 print(
                     f"{OKGREEN} {np.size(goodSamples) - np.count_nonzero(goodSamples)} sample(s) detected as an outlier!{ENDC}")
-                print(f"{OKGREEN}Removing samples: {', '.join(self.datExpr.obs.index[[not goodSample for goodSample in goodSamples]].tolist())}{ENDC}")
+                print(
+                    f"{OKGREEN}Removing samples: {', '.join(self.datExpr.obs.index[[not goodSample for goodSample in goodSamples]].tolist())}{ENDC}")
             # Remove the offending genes and samples from the data:
             self.datExpr = self.datExpr[goodSamples, goodGenes]
 
@@ -497,27 +499,12 @@ 

Source code for PyWGCNA.wgcna

         """
         print(f"{BOLD}{OKBLUE}Analysing WGCNA...{ENDC}")
 
-        datTraits = self.getDatTraits(self.datExpr.obs.columns.tolist())
-
         print(f"{OKCYAN}Calculating module trait relationship ...{ENDC}")
 
-        self.moduleTraitCor = pd.DataFrame(index=self.MEs.columns,
-                                           columns=datTraits.columns,
-                                           dtype="float")
-        self.moduleTraitPvalue = pd.DataFrame(index=self.MEs.columns,
-                                              columns=datTraits.columns,
-                                              dtype="float")
-
-        for i in self.MEs.columns:
-            for j in datTraits.columns:
-                tmp = stats.pearsonr(self.MEs[i], datTraits[j], alternative=alternative)
-                self.moduleTraitCor.loc[i, j] = tmp[0]
-                self.moduleTraitPvalue.loc[i, j] = tmp[1]
-
-        if self.save and self.datExpr.obs.shape[1] != 0:
-            self.module_trait_relationships_heatmap(metaData=self.datExpr.obs.columns.tolist(),
-                                                    show=show,
-                                                    file_name='module-traitRelationships')
+        self.module_trait_relationships_heatmap(metaData=self.datExpr.obs.columns.tolist(),
+                                                alternative=alternative,
+                                                show=show,
+                                                file_name='module-traitRelationships')
         print("\tDone..\n")
 
         print(f"{OKCYAN}Adding (signed) eigengene-based connectivity (module membership) ...{ENDC}")
@@ -547,7 +534,8 @@ 

Source code for PyWGCNA.wgcna

         if self.save:
             print(f"{OKCYAN}plotting module barplot eigengene...{ENDC}")
             if self.datExpr.obs.shape[1] == 0:
-                print(f"{WARNING}There is not any sample information in given object! Skip running barplotModuleEigenGene() function.{ENDC}")
+                print(
+                    f"{WARNING}There is not any sample information in given object! Skip running barplotModuleEigenGene() function.{ENDC}")
             else:
                 for module in modules:
                     self.barplotModuleEigenGene(module, metadata, colorBar=metadata[-1], show=show)
@@ -629,7 +617,7 @@ 

Source code for PyWGCNA.wgcna

         """
         Checks data for missing entries, entries with weights below a threshold, and zero-variance genes. If necessary, the filtering is iterated.
 
-        :param datExpr:expression data. A data frame in which columns are genes and rows ar samples.
+        :param datExpr:expression data. A data frame in which columns are samples and rows are gene.
         :type datExpr: pandas dataframe
         :param weights: optional observation weights in the same format (and dimensions) as datExpr.
         :type weights: pandas dataframe
@@ -1852,7 +1840,7 @@ 

Source code for PyWGCNA.wgcna

                                     useObjects = ColorsX in np.unique(labelsOnBranch)
                                     DistSClustClust = distM.iloc[InCluster, useObjects]
                                     MeanDist = DistSClustClust.mean(axis=0)
-                                    useColorsFac = ColorsX[useObjects]#pd.Categorical(ColorsX[useObjects])
+                                    useColorsFac = ColorsX[useObjects]  # pd.Categorical(ColorsX[useObjects])
                                     MeanDist = pd.DataFrame({'MeanDist': MeanDist, 'useColorsFac': useColorsFac})
                                     MeanMeanDist = MeanDist.groupby(
                                         'useColorsFac').mean()  # tapply(MeanDist, useColorsFac, mean)
@@ -1871,7 +1859,7 @@ 

Source code for PyWGCNA.wgcna

                                 InCluster = np.where(SmallLabels == sclust)[0].tolist()
                                 DistSClustClust = distM.iloc[InCluster, useObjects]
                                 MeanDist = DistSClustClust.mean(axis=0)
-                                useColorsFac = ColorsX[useObjects]#pd.Categorical(ColorsX[useObjects])
+                                useColorsFac = ColorsX[useObjects]  # pd.Categorical(ColorsX[useObjects])
                                 MeanDist = pd.DataFrame({'MeanDist': MeanDist, 'useColorsFac': useColorsFac})
                                 MeanMeanDist = MeanDist.groupby(
                                     'useColorsFac').mean()  # tapply(MeanDist, useColorsFac, mean)
@@ -1893,7 +1881,7 @@ 

Source code for PyWGCNA.wgcna

                             basicOnBranch = branch_basicClusters[onBr - 1]
                             labelsOnBranch = branchLabels[basicOnBranch]
                             useObjects = ColorsX in np.unique(labelsOnBranch)
-                            useColorsFac = ColorsX[useObjects]#pd.Categorical(ColorsX[useObjects])
+                            useColorsFac = ColorsX[useObjects]  # pd.Categorical(ColorsX[useObjects])
                             UnassdToClustDist = distM.iloc[useObjects, obj].groupby(
                                 'useColorsFac').mean()  # tapply(distM[useObjects, obj], useColorsFac, mean)
                             nearest = UnassdToClustDist.idxmin().astype(int) - 1
@@ -1905,7 +1893,7 @@ 

Source code for PyWGCNA.wgcna

                                 nPAMed = nPAMed + 1
                     else:
                         useObjects = np.where(ColorsX != 0)[0].tolist()
-                        useColorsFac = ColorsX[useObjects]#pd.Categorical(ColorsX[useObjects])
+                        useColorsFac = ColorsX[useObjects]  # pd.Categorical(ColorsX[useObjects])
                         tmp = pd.DataFrame(distM.iloc[useObjects, Unlabeled])
                         tmp['group'] = useColorsFac
                         UnassdToClustDist = tmp.groupby(
@@ -2054,7 +2042,8 @@ 

Source code for PyWGCNA.wgcna

         if expr.shape[1] != len(colors):
             sys.exit("moduleEigengenes: Error: ncol(expr) and length(colors) must be equal (one color per gene).")
         if len(pd.Categorical(colors).categories) == 1:
-            sys.exit(f"{WARNING}All your genes ended up in one modules! Reconsider your input parameters in order to get more modules.{ENDC}")
+            sys.exit(
+                f"{WARNING}All your genes ended up in one modules! Reconsider your input parameters in order to get more modules.{ENDC}")
         # TODO: "Argument 'colors' contains unused levels (empty modules). Use colors[, drop=TRUE] to get rid of them."
         if softPower < 0:
             sys.exit("softPower must be non-negative")
@@ -2874,6 +2863,7 @@ 

Source code for PyWGCNA.wgcna

 
 
[docs] def module_trait_relationships_heatmap(self, metaData, + alternative='two-sided', figsize=None, show=True, file_name='module-traitRelationships'): @@ -2882,6 +2872,8 @@

Source code for PyWGCNA.wgcna

 
         :param metaData: traits you would like to see the relationship with topics (must be column name of datExpr.obs)
         :type metaData: list
+        :param alternative: Defines the alternative hypothesis for calculating correlation for module-trait relationship. Default is ‘two-sided’. The following options are available: 'two-sided’: the correlation is nonzero, ‘less’: the correlation is negative (less than zero), ‘greater’: the correlation is positive (greater than zero)
+        :type alternative: str
         :param figsize: indicate the size of plot
         :type figsize: tuple of float
         :param show: indicate if you want to show the plot or not (default: True)
@@ -2891,9 +2883,26 @@ 

Source code for PyWGCNA.wgcna

         """
         datTraits = self.getDatTraits(metaData)
 
+        moduleTraitCor = pd.DataFrame(index=self.MEs.columns,
+                                      columns=datTraits.columns,
+                                      dtype="float")
+        moduleTraitPvalue = pd.DataFrame(index=self.MEs.columns,
+                                         columns=datTraits.columns,
+                                         dtype="float")
+
+        for i in self.MEs.columns:
+            for j in datTraits.columns:
+                tmp = stats.pearsonr(self.MEs[i], datTraits[j], alternative=alternative)
+                moduleTraitCor.loc[i, j] = tmp[0]
+                moduleTraitPvalue.loc[i, j] = tmp[1]
+
+        if set(metaData) == set(self.datExpr.obs.columns.tolist()):
+            self.moduleTraitCor = moduleTraitCor
+            self.moduleTraitPvalue = moduleTraitPvalue
+
         if figsize is None:
-            figsize = (max(20, int(self.moduleTraitPvalue.shape[0] * 1.5)),
-                       self.moduleTraitPvalue.shape[1] * 1.5)
+            figsize = (max(20, int(moduleTraitPvalue.shape[0] * 1.5)),
+                       moduleTraitPvalue.shape[1] * 1.5)
         fig, ax = plt.subplots(figsize=figsize, facecolor='white')
         # names
         xlabels = []
@@ -2902,15 +2911,15 @@ 

Source code for PyWGCNA.wgcna

         ylabels = datTraits.columns
 
         # Loop over data dimensions and create text annotations.
-        tmp_cor = self.moduleTraitCor.T.round(decimals=2)
-        tmp_pvalue = self.moduleTraitPvalue.T.round(decimals=3)
+        tmp_cor = moduleTraitCor.T.round(decimals=2)
+        tmp_pvalue = moduleTraitPvalue.T.round(decimals=3)
         labels = (np.asarray(["{0}\n({1})".format(cor, pvalue)
                               for cor, pvalue in zip(tmp_cor.values.flatten(),
                                                      tmp_pvalue.values.flatten())])) \
-            .reshape(self.moduleTraitCor.T.shape)
+            .reshape(moduleTraitCor.T.shape)
 
         sns.set(font_scale=1.5)
-        res = sns.heatmap(self.moduleTraitCor.T, annot=labels, fmt="", cmap='RdBu_r',
+        res = sns.heatmap(moduleTraitCor.T, annot=labels, fmt="", cmap='RdBu_r',
                           vmin=-1, vmax=1, ax=ax, annot_kws={'size': 20, "weight": "bold"},
                           xticklabels=xlabels, yticklabels=ylabels)
         res.set_xticklabels(res.get_xmajorticklabels(), fontsize=20, fontweight="bold", rotation=90)
@@ -3114,7 +3123,8 @@ 

Source code for PyWGCNA.wgcna

         """
         sampleInfo = self.datExpr.obs
         if sampleInfo.shape[1] == 0:
-            print(f"{WARNING}There is not any sample information in given object! Skip running barplotModuleEigenGene() function.{ENDC}")
+            print(
+                f"{WARNING}There is not any sample information in given object! Skip running barplotModuleEigenGene() function.{ENDC}")
             return None
 
         height_ratios = []
diff --git a/docs/html/_sources/suggested_reading.rst.txt b/docs/html/_sources/suggested_reading.rst.txt
index 3d952c3..47a6073 100644
--- a/docs/html/_sources/suggested_reading.rst.txt
+++ b/docs/html/_sources/suggested_reading.rst.txt
@@ -1,5 +1,5 @@
 Suggested Reading
-=========
+=================
 
 If you are unfamiliar with R refrence WGCNA, we suggest reading the original WGCNA publication:
 
diff --git a/docs/html/api.html b/docs/html/api.html
index 05f0a2c..f0233e4 100644
--- a/docs/html/api.html
+++ b/docs/html/api.html
@@ -127,7 +127,7 @@
 
  • species (str) – species of the data you use i.e mouse, human

  • level (str) – which type of data you use including gene, transcript (default: gene)

  • -
  • anndata – if the expression data is in anndata format you should pass it through this parameter. X should be expression matrix. var is a sample information and obs is a gene information.

  • +
  • anndata – if the expression data is in anndata format you should pass it through this parameter. X should be expression matrix. var is a gene information and obs is a sample information.

  • anndata – anndata

  • geneExp (pandas dataframe) – expression matrix which genes are in the rows and samples are columns

  • geneExpPath (str) – path of expression matrix

  • @@ -195,8 +195,7 @@
  • species (str) – species of the data you use i.e mouse, human

  • level (str) – which type of data you use including gene, transcript (default: gene)

  • outputPath (str) – path you want to save all you figures and object (default: ‘’, where you rau your script)

  • -
  • anndata – if the expression data is in anndata format you should pass it through this parameter. X should be expression matrix. var is a sample information and obs is a gene information.

  • -
  • anndata – anndata

  • +
  • anndata (anndata) – if the expression data is in anndata format you should pass it through this parameter. X should be expression matrix. var is a gene information and obs is a sample information.

  • geneExp (pandas dataframe) – expression matrix which genes are in the rows and samples are columns

  • geneExpPath (str) – path of expression matrix

  • sep (str) – separation symbol to use for reading data in geneExpPath properly

  • @@ -718,7 +717,7 @@
    static goodSamplesGenes(datExpr, weights=None, minFraction=0.5, minNSamples=4, minNGenes=4, tol=None, minRelativeWeight=0.1)[source]

    Checks data for missing entries, entries with weights below a threshold, and zero-variance genes. If necessary, the filtering is iterated.

    -

    :param datExpr:expression data. A data frame in which columns are genes and rows ar samples. +

    :param datExpr:expression data. A data frame in which columns are samples and rows are gene. :type datExpr: pandas dataframe :param weights: optional observation weights in the same format (and dimensions) as datExpr. :type weights: pandas dataframe @@ -876,12 +875,13 @@

    -module_trait_relationships_heatmap(metaData, figsize=None, show=True, file_name='module-traitRelationships')[source]
    +module_trait_relationships_heatmap(metaData, alternative='two-sided', figsize=None, show=True, file_name='module-traitRelationships')[source]

    plot topic-trait relationship heatmap

    Parameters
    • metaData (list) – traits you would like to see the relationship with topics (must be column name of datExpr.obs)

    • +
    • alternative (str) – Defines the alternative hypothesis for calculating correlation for module-trait relationship. Default is ‘two-sided’. The following options are available: ‘two-sided’: the correlation is nonzero, ‘less’: the correlation is negative (less than zero), ‘greater’: the correlation is positive (greater than zero)

    • figsize (tuple of float) – indicate the size of plot

    • show (bool) – indicate if you want to show the plot or not (default: True)

    • file_name (str) – name and path of the plot use for save (default: topic-traitRelationships)

    • diff --git a/docs/suggested_reading.rst b/docs/suggested_reading.rst index 3d952c3..47a6073 100644 --- a/docs/suggested_reading.rst +++ b/docs/suggested_reading.rst @@ -1,5 +1,5 @@ Suggested Reading -========= +================= If you are unfamiliar with R refrence WGCNA, we suggest reading the original WGCNA publication: diff --git a/setup.py b/setup.py index a6c74b7..7d21d88 100644 --- a/setup.py +++ b/setup.py @@ -3,14 +3,14 @@ setup( name='PyWGCNA', # the name of your package packages=['PyWGCNA'], # same as above - version='2.0.1', # version number + version='2.0.2', # version number license='MIT', # license type description='PyWGCNA is a Python package designed to do Weighted correlation network analysis (WGCNA)', # short description author='Narges Rezaie', # your name author_email='nargesrezaie80@gmail.com', # your email url='https://github.com/mortazavilab/PyWGCNA', # url to your git repo - download_url='https://github.com/mortazavilab/PyWGCNA/archive/refs/tags/v2.0.1.zip', # link to the tar.gz file associated with this release + download_url='https://github.com/mortazavilab/PyWGCNA/archive/refs/tags/v2.0.2.zip', # link to the tar.gz file associated with this release keywords=['PyWGCNA', 'WGCNA', 'bulk', 'gene clustering', 'network analysis'], # install_requires=[ # these can also include >, <, == to enforce version compatibility 'pandas>=2.1.0', # make sure the packages you put here are those NOT included in the