From c79073ab0910f9a0e35e8a9c1f3cecf6c88a3606 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Thu, 21 Jan 2016 11:31:15 -0600 Subject: [PATCH 1/1] import mrbayes --- documentation/Manual_MrBayes_v3.2.pdf | Bin 0 -> 7061126 bytes documentation/commref_mb3.2.txt | 3305 ++++ documentation/release_note.txt | 46 + examples/avian_ovomucoids.nex | 113 + examples/codon.nex | 47 + examples/cynmix.nex | 705 + examples/finch.nex | 222 + examples/hymfossil.nex | 1371 ++ examples/primates.nex | 22 + examples/replicase.nex | 21 + examples/sceloporus.nex | 146 + src/CompileInstructions.txt | 196 + src/Makefile.in | 31 + src/bayes.c | 1000 + src/bayes.h | 1700 ++ src/best.c | 1788 ++ src/best.h | 29 + src/command.c | 15097 +++++++++++++++ src/command.h | 33 + src/config.h.in | 40 + src/configure.in | 181 + src/gpl.txt | 674 + src/install-sh | 238 + src/likelihood.c | 9765 ++++++++++ src/likelihood.h | 134 + src/mbbeagle.c | 1258 ++ src/mbbeagle.h | 24 + src/mcmc.c | 19069 +++++++++++++++++++ src/mcmc.h | 34 + src/model.c | 24216 ++++++++++++++++++++++++ src/model.h | 60 + src/proposal.c | 15022 +++++++++++++++ src/proposal.h | 83 + src/sumpt.c | 8525 +++++++++ src/sumpt.h | 51 + src/utils.c | 13999 ++++++++++++++ src/utils.h | 270 + 37 files changed, 119515 insertions(+) create mode 100644 documentation/Manual_MrBayes_v3.2.pdf create mode 100644 documentation/commref_mb3.2.txt create mode 100644 documentation/release_note.txt create mode 100644 examples/avian_ovomucoids.nex create mode 100644 examples/codon.nex create mode 100644 examples/cynmix.nex create mode 100644 examples/finch.nex create mode 100644 examples/hymfossil.nex create mode 100644 examples/primates.nex create mode 100644 examples/replicase.nex create mode 100644 examples/sceloporus.nex create mode 100644 src/CompileInstructions.txt create mode 100644 src/Makefile.in create mode 100644 src/bayes.c create mode 100644 src/bayes.h create mode 100644 src/best.c create mode 100644 src/best.h create mode 100644 src/command.c create mode 100644 src/command.h create mode 100644 src/config.h.in create mode 100644 src/configure.in create mode 100644 src/gpl.txt create mode 100644 src/install-sh create mode 100644 src/likelihood.c create mode 100644 src/likelihood.h create mode 100644 src/mbbeagle.c create mode 100644 src/mbbeagle.h create mode 100644 src/mcmc.c create mode 100644 src/mcmc.h create mode 100644 src/model.c create mode 100644 src/model.h create mode 100644 src/proposal.c create mode 100644 src/proposal.h create mode 100644 src/sumpt.c create mode 100644 src/sumpt.h create mode 100644 src/utils.c create mode 100644 src/utils.h diff --git a/documentation/Manual_MrBayes_v3.2.pdf b/documentation/Manual_MrBayes_v3.2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..91a1e62e349afeaafe22edadcc596c87c41a05d5 GIT binary patch literal 7061126 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 o0*9sUjFJ~DVw?K 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 rTS9PW|hjWZmVAY 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≶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πQf zcOxSeSD>jXV~Aaj5MXPrs?c5)A-Qt`jdhDmAD!tqzyY?zZ^Wo?e_y zgrVG<+42^Es-c?pIy-icv!CgP+cFT-*0~Ms`#js$8RT$6`D#GZ16E=|@eE}|Nhq4q z&EUC{DPpO3G^JJykZb#KM&NNy`J(i)?tVh;BfgS_=L=@Rf&9 z%qNoe0w13{Nf+9m)*}3rKB=9h+aMV1XI!`>XCuLs5-ptr#%deu{r3zniL>zb7jMU62wYwX2U#V@g zj)LK(3l)-AdbMPs7O#|yp4B9rMr%u`CmK!qW!RWmsA-HO5$23m-rn^PcZ-Fsgw9c3 zMsf9VvNU(7cfyHl>YLohyuBu0S*Idy#LH@53VrqO8!e7?cx4ymRl(X#DR_S}$G zc#`UZI67-rWR~3IeZG3dz(PQ~rhOGuZJIoB&iKQ+r)0MJL&z!4%mcv~v?#hk83$tI z9elgNKme@)+g`F{LCvyXNC-!JUIlB^RLfux_pu^^?!)NN~NMG61~(Ia7W0OVlkl3 z0bVM`tRk`_1=^y9?F9sTg8Vq!PuXEc8r!o+wIHbq0u;`Guq6G3T%OUOr;#kplB{$2 zJ@%Y1N3w_E{KGrX8})+Bx3U@PJwn%{ z8_)D56m?g3Am56;8+w)j>@iD}r8Ck6?|I7=61e$HxA!!WhQEUFZfyv8Z4FRXRwO1+ zY4rGZdPcIq!AjS}KVd^$ISIV#)>>_)I2Wo*#ZD3`y$L9-Yl)*O_Uz z$L>d)4F?;+X>b}W3~4>fHfK`9Z?Fh(FF#f(cL&eckPOad^Y(Vk3o_#w`}tK0RR zwap;w(m<;8^LlmQXcE1`$W4X%0ZN~+C5OKk@IwVi3bLY@3tDGBkQ3aL?CfY*e=YX2 zB2%Q{)`D{o+{j1VvalxlUi~{mg=n-HW$tlJP z@kmmo^bD88b>}P!C90<3GIpFd1E+_}7ip(+s>Dji#6(?Q zY1pP|bK}`eerC$x+etY^xS<0#iaZEkse$*s75f?_thM%~GJ8a?1;#Yde+=laOvutk z9}{y}6&q6n;XF3?9({ToHN4?=#bX}%ym*7HB?KH+SEMr(^@mu7;>}?i-IM#4TKF!gGQk)6i$4M zqd=c7IM1^A)mlKmPZ!L;Nmv_4DeFDhmBTXJkwk+l-}xH~tFuqAz-qsqzYqrTOlHHw(V{8@hk^siW@Q$MaU zhass{^goD>Clz1SV#JgNFGaGtqcBOzQ7v*xP9%C6cXziKoJ2Wl$!jb@ad%Gmb=$}g z1tEV}9-D5J2_5YObX(t+v*sK*^#qk9&3pu7AM!{i4WYmKEKx*?JGu4qM(GZl5MMe?&%7R8i$Dl>}>Kb$8(tqjX$u*dAI+7Y9IEwCq}hJ{yU=UgFApeDI8X(l~Uj)EFViHv?N%!^bBDYf1qJf#&oN}CtjL@>wA?#D0R z(+dAoWpdC%H_&U5K0_wS;*7|=_f8+xmrFO4&ki!q3=qGZG`glq{beb~va*!47tX3< zlIFP$K4pzY&ASfe06^xTBOU@YA(dOcPd=y4v`ZdgjE%WWW0?hV8Gj1WS0%wLlyDpE zPkUN<`ZO(U+yZWY|3y*$`}CPL>EYzHI7g#=&}27TA?hkbC$@^eKrE(um6 zSCBSrTkb|FL^t&R!`M9r+tPH2qF%ObYcJcjZQHijUbb!9wzZdS+qTbszti34>%Qm4 zy}xF}h^(BmGRMq_s>-K^$;W)949OnC(-(B$PM$>zaJ1<4KnJ+9JW7xLOJica&;fC6 zJTc|MgY@saW%j*ymob7?fi)(`UMhzjc66zxFIYxw;u%%Kwd!oM*)x>}!NK$%yMw24 zorI5WWoYp;=aMHgL8xY}oN(aBF2gR)+3F%9G{4QyKK4d!{g;C+_qpq=MVepZ+Y)`! z{=@>XA5VtC5(_lB$MnGkONY!DOP!1^jolcq)x;*q{n_w03nuHOqrU-e>u|bh6+qgO zp2%Iiqvzi}xPD@DsKFXuKS;)E6P8?5KN>Tw$^0+QNdY8fq84u_aQI^RDOHaV$`acZtQ+oS+b5Q z3R2m6VFSk)OFGISII;IvCr!Y5g7wm|V7 znlh7P9DbVykAA*ReBMJ0y^GIe8x^ZU-0X_D=2OACyWOs(QnWGPNA^%(fXa_pCbZU* zJJY8V&6WFeC-lTEvemvDd+#U!u4<92SatuF{-#vE;><6D$F@XXh_c}+>J>Y_vbja` zn!{Z5Tw0{Xd1GU++yYG%Bb)%8-jI7Jxq4j%W8Vg^aCMMEI=jmWPxF3WkL|fTlx%H9 zZJLUEc-MIQs`-}Xy?``o*4@9RlHen+**-&+RAkCTDt-(c@+BQjlO%bw=D)8YHfbp;EMquC+0CG-wBtrn$sP@C0d%%4=j<_VtXw4QBH3)?l*P z6dkGyOZsie?~~GSK;7fZk<_&hSqUe3U-V1gP0N0H9eCpmJr)3~7As80OBSm{<2kr2 zyeM_1>g1{Ms5<~JgwyU*8lm?mkuiqbGf&4|o3*j+TCJ+_2#0D0^(y55(mfOVe)s2u3t+_7h* zJiK9a29RNZ_LUadk?oaui67QZ;I`ioD06i zuZ!8R?&&7m!5^rRim z4V`ixHn?<@DeZh{1~9rnnq2Ci8lBvJCg!ab)p2c#f<(+as_e7G*~eoGeG*)tm67hd zp=BA#(nB}+BULoCa~dSZ^n}u1i?TN(R!EgqMyI3_tK7>%a?F=juj41H%JMMp@5O72 zKS$Ba@mtUvLZNq%h1ZL;6p}H|b(d;)Rz$$V0IgtrJ%Xva9p9TqSy7$IpkV5zh$};| zJO=HFa*y;Ho%ry?71PC8=1nr76}(QD`To!VM()*FH$(nN=#K~pJg{k*`7%PBwgJ>h z%SC8y2TUe6D>-Fwg2ea8S|6t2au{e!sFE}(8AHKfmLNAz+x?0bV##2?t><9fJ`(M$ ziIeTp@2D{FT3HI8RdfH|(?RdC!lf+2f}oJ_+nhl0PU9qP%JMF()7?111FWkSW6Wud zQ-3g;(DX%QEP3owDBmJ(Yn{yOrdcFxxbfTs6{7Xt1x8Y4IzrAGwoFa>itLxo-Cx{? z8%}XKx79X({yvsI6vf!Pjx<@(mdGEgclL@5acS^myDs){x{bh>Z2uVdy z*tO=!PiWv;1Jv0bD7dJFqPATNpE7YpA6eH8tw2%`_N5_D`>_PyaburOlJB<575h*f z%FXsm)ygu<`o0i;EOazEgB9Vt<;ArNV&GWoVF5JzcVZbJOy@HJx+UgR#tIuafKWVo z*V4|+{*A-(8`ZM+BmOSs)XKH-rXhY%)_r526LH8)=;L`4Ug^|T`zjw3f2sF^2}rJm zC4gXX$ukvk7!~ScitWxYe-*~#JRb~~gXiusZ>&%%Y5I4>oUAqDA5G@+l*e&i)pV3u z+#-}X#-vW#1+q0ohD5W4`syv|NI`yH9y-0-$%A(y0CJ+IX?D)J`r6g<@`_rk?qv+% zH#Z!YJQvqbnM^Y05XHLcm>%~GWx5})aW&fRr&9Sq*mF2`FpP4p;XelF3(@J~uBCN7 znrf(3veFeQjoo@;(sqUR-pL8!Oq&@zY8WFpw^1D0e=pmzt`)t~ z(UT{U=Ikx7*C+<9s9t=Ofv}k#Q(uRkF&!E}74URMGK$a9g!h$M)%)C7rvYX(&07!f zH%^T1YeXBV6$^2}k(hK0Jo(e+i=q%Nz>}3kMPHTzZZBZC;Q_Z(&sm={%nAq52zXpj z>-|y2jx`#IP0}sCR>>Ny7mVx+Xtg82C1VqkK)I3JYOY%2`UkyjhAGs8O@cz>2zm#| zaRGC?9ACN7Hk8tlcW9jZ^Q#CH1ZBYzWqrp1W6LQqrjDeKzTDbBzUgl8JjSu<1Tg9< zouO^hA)imTE9I`dC%BHvpiHc@h<%ciqdxe=le{1saFcP-?Zq~<5m$)OXaO~gK{$PuzZ`emh~hdfQL z#mO;9mGvD+mjgC2O4mjZtH21 zZg)=>YS)&<`c}z}B7)_H^=Hw2Vb8bPz4Z_l8LB@G&pv82XL$|J7R`}m5w2(vGP*h`+oN3Ef<^(=`HcDG!MRdX2;NtWNE!~aVl=~pW57&tlj?0r@>x+NYq0|c+>#| zn7pp$d!cXn5Dnfh!UA3zzJ%*D2ey^zV=+Y5H4)^UoD~eSWO>AzSPFFe5qC2uZ*a8r zmPhFW_TTF4d~!84#k~+IQj*QxKlIIaxX53j#)eS=(M017<%z4VlOOuV9MQkwmeYBq z+JN+eZOU@r60-6NPPRK(^dMcAhEMFwuV*F<`9?BUe3n~kfif}dYPt(3A{v2Nkj6tZ zG*l5I-ACHXFCn}$Y5ls)*V%Ao9pOw28R_UTmf1iNyQs?xw8^*c>23^Ro^yka>-} zUdfm|^WHu5%*e(8-bMJI4{`+4YV?W)Y9_3bsoRZZEbf{JH9-s|-!bt_}Fk`gaWa~D)a6j*+xMS9*0fCyqC z0izz=7kdLSIwb|=S0Sn11iNLC`I!JX+|Af3O&ET9m=t^V1dWS{0;9WoT>Lsvv)ov# z3;|{vw#kM&p;GWVgoRl!a}KPJh)U=bWGTAa4$=NNB2o5m4daN!;<`{a0~4D~*1)pa zerYbcL%53(W}Jnei17Xa_42+@PxIoJU*Eku)}R4iB|8Yfp#geWy+Qu=@qREZ8C1GM zitN@G%S=uleF^!94jC(tpMo-#f|kAI0X*G9vz$W9UN$6uE@Iwl%qsr`Z$ro&q3HxQ zoqzBw^Qf~*;;s-%_T7OJVv(y7QIdXq5YSGu^-2X;Qtdp3rw z=a&~$dn11?+kL?s`EsWm#?&mhv8oMiX!BoR56wc-&fD`WVpVKmaA}-dqLle0kF!w3mC_#WQq%VDNB}-l}|T4$&Mw3B7BW zbk3sc$`5XlQ?Au(+e0vALo}G>796mqwR5%E10mnd=xK@rLgwiFE9%<=%8^@sX%;R% zhe}O(pmgI4#S_P_T_QZsr32zASRY7P0|DVjEG?6&tIxcf?>RP6xJtBKt33+;y3DdS z#=-Nq5wL3Z_AOk6v6iQjTr@y`m#S(m_T(4lvXHLc54S@$BPPQrHRl2oyROUBq30Ub z!p3(MJxQvr@wvz%X4CtAClCYO5?+$RP*l>KPW6&sCzKMZvC>HWE(uA3#W4B5Oy3E3 z3}_>Llt#{6_SY0YLclZVh;B)~Q#if4_~72=fE||>HIFSOJ5U{HV;;1Q8%^!$crGpwl6rpenW(NKD@bL3H^CJyXZD+yDC{PD-Su$0n82e!(?>DeQz+ZtWd*cqx>RZ! z6?|s{S$cQ;R*^2`lDSV!rw#Z5qL&7*{c%2?KNdKa1Sn+GYh4W(PbYF$6GpbR&c#)s zvB6eGsI$>VTG+9gn`;NV*W!U>!%#^Lg*C}8R~+Hqj@Z=)>-O6P;Wmy;NECZ72vez! z64RerYkk)A+Ze=SIRa_UbS<5%GYjcik&KXXdvQa>pUjT8q;V4;zi?5qf#exOB~AYG zL=>$&D$weVa@aIby>#g`bl4r!`Rq*af-g1~u+@>&mf8LEhl^K2B>FwCbwQGUx&YAI zOvYMPSx9M+^9yuT*U?CW!09x8&mzUSzcVtITTzs?t)Nni>TFKx8*pSnN?SsnjQ%d0 zY%38>M4|u6iPEcKB3S#05V#hLnSOP@k1@EQVD@K){IxW@YUfP%1=&1_M|WQM8GTtm^6soECE^qI=t0@sR*NZ3rS?s_Y@J3j{>|JKp?lTHW;SZLca{nXiY1J`U= zkBbD0f%1Uf_cu-fmajUa zp!L10qqoi&9&O$g)hG*_f+KwX}V(-^4 z%|E`mQCMAA>l)NPesiff+S52nwRDuIR;vY$IF~1Z+q#L$fl#C#V%Qd3m~at-ia{zu zyaP0eWE3toC)6a^Lvb85s1?ocHC*u!z9hTnN~4{g)%7+CQ{y|_8?^6P5^6TPs@Ee7 z$*UvClf_?K>&)tJrIcGR&Qqa)pQv4sP4Ow+eV}UFt=8Y4hnG=1kju2i7v@neIOJ)8 zqkQm8T4GFT$W!UrGx7F$+E2B&YY4ZXY52C+F3S=(*N=-WJg)JH$eWkG)bP?T6S9PE z=SoWL*G;2|sG??p^`AD|ugVNF<%5thX_Y_Paqzi$#K_>@9MJfOQ|Z56(s9v}DX^15 zIE@r+)bgB-WJ?4;P0asZ9muSx3_Wqcc{+aP5zG}AQwDvRrFkDA!?PDS<&j}74sf4K zv!HfzvfO@p7>#FM&pTHArmb~S_J2nprL6M5gPkicju3q6vq86>GQGhiW0HbEP68s- zr1ru>Cf#$Ac-kWJ(Nf-`r;RkS+>LlXVZX(;bJL{sYiz`2B&h-il3x@F8ed{QME_Hb zrz;_d9LdFMO1$D6UPR0Us~5^%x7L@n*!ilZCBVk}Fch^bR^qmt2qDe3UY0k&PGeHv z@#}A`b41SNeHd>3cnJ#%VANiREUS%o-Oy zV9;LIfJO|PB zqEk&kBlj{D9(?Nt?_HAQBv;S@yxdG2b7E0!sHz4jgnG(D&@A}w>uc;8C&#Ddw9=ua zpZVrKDTnS8Uw>DfWc~=-^~w0JmgXY$Y+S1eeUE^K%-6e0`}FjK%%+)56r5=GFQpTt z%#N=7d}MQK#jQqjxl^aCY$y1}rLc2aT%*Uc9WT_JFezvWV0uDlu4hN$OJU))T15xg zrxN|pLTe-R^rN8nc051Vc;^i`l2aKz0*G6Hq6&SCx2wi!FuyOiBwhsC5NNuyMPVlg zL&`&x|$yXRoP}j9j-NL8Hibiz=G0~ zT6R`ZbXA^Ra%}Cc7hq5MsSoEL(H@dKixN*oNoJZ7bf6eFb|b5o5YqiQJ1@6pa~Epu zSbD5MG;m3Q9@Rd(>iGkfV03(ONlXq9tv9_+$LgPk`eJQ5mW&?*-`$v=^&|^T#XGSM z6=^jqq8O{FqT$Ky<~S^s#rZi8==nOq?KR-fA^`Rwi=8TzWLzEUjmqaGY_Ph}t`@!r zV=GNU76U3%xWSgK)S)X2H3Y<|3-ID}$7;DtYzn_V=ndU#aU9&$ej;@f>98ybj zCLlQkj^NE_9S3G1r5;+;`>-qZY2(z>ERL+@jDd9h)+=6IFS+HN=Z1`aCNUjs+?h})<()k)hrt?FkEm|BOiOX;J(!3sO>(n$ zxR}h#`y-3_+JqL{HllQsD?F#<_|{W~jx(W}mF6>AjdQ+IE0&=W;ut()k_25L* zjZ5yb&SiJb;EGk^rf2X-CtDwN0g=OQ6~G74B6ihPNMWWk_xT?_o#5uswQj)rn+b+D zSjWNLRW`1#nVV^A?FTapy(glt>dR|wEWs+d+ykJW^G-O2h2mgd9cQWC5!8Jre{eDr z7MA_mQ_pn1U5@JIj0|!NCtz2$W&<=d()Z%Lo4ds_@;d=%qHqd5#cm+8BX8y4)^7i%5B@7c0gK^mymN!{3ibzD0^c$Jcd&CHiHshyr zPuO@5jq!2wp7KoU?LTLgcCiJos!ozP4he8WRfUI|wCnCO$GL9{KY+TqowSjbc)%(| zdwxxkR*nkdND*9@S0WC_|CI2t6)1NHk7qB%5^gY2iciEuqgA==H9P6Wu~o46T1Gz1 z@WM6@J{uV3l24S#8v3TfSNQbzVcmPE!qCfbhI=lF<>FM{8|7wU8KymXSAr@|wS0g} zP2zpaq7zW1BBfx$XX!QCwo_ioYs0jelevd9?i$7nv*}Zh`a;=m17AuRpeL`3@WCjK ztMt7u_V-J9uRQ!x0{& znVfurN{PcU?U{qAIvf_a=PqnZf6*sgZL(1M&qRLR15j;@+`{;5yX09Q@CX5mXlR;; z!g_!9wP4!7;WN2h9KNj;&4H7Vh^IKtvqUSuS8Q14tITpSXow(WLu108{Tg9FjS)Bk z*sPesb4@E?^vIl)I~A&eu=l))_hLq1!mw?GdATkwHg4ZBy|82h43dOrcbLenlD49p zhdQjrF-=M^7fv%jl1I!gPqjw`rg4#tTi|-<#pbf%TFQQ1y!TYwG68z1-wP;9gOd#~ zwj>1F`SqgW#{T9>2>1`jnH=CD;oX9k(E;;L zRetR76OM@ej{V(aq(cXo2~Btu~vfP!PIB-BV{Okt^K%#K6)(f8fs?8ii?8$iz)8A^rP!(ciSeUo7ACNE%;_r)yUHRWw~_dhFo|2J^H>;;xdJa z#BTc8O_N|etA|mg#!i;o4xz@QAE%jwq%hE)2NcmH?@`BN>788fhoef&^;FVhe4D5o zZ2mjF&Ke!v;=NhS0*GC`#FgrYy_f8bz@~MPYP9v4O8SauIu90Cig5hZAR3Z}OUtw= z6}egD4U9dc3ILsX>U!KWkPJ*u%?c+7zKR==YN+ZP0%XL9gH#t2j3rDAW6(RFfu(BJ#&WgHzOZKtWzp)=>N2w^S|k5`H? zlsjdcFL_esWRfv#7B8KG;7~fCif5Q&Eva$^ewXncvH~~DJ8wN=##v==YX4+ls}&dQdU%GK|MF9Oe+X5)+u?s8b8i)5<)Lfe&>VV<8=xFKSD9#Oo`!XD3lz>`2xwv5QL9do-v6*&g>B2ifGUbg~4ZQ-$Z>3;UqhfkviR90SQD zQ225tyejjx#=4;rCmCC#8QV){3JGN1vYr)mM2#Ah0v%ZIl9h?U^u?5JfVZS%1@Spf zWi=3()f~`6NP~0Q3=UkY)~>vXk8_&f9LSKO5xM7iD);xw=ZIA3hs@%2iQp@>PVD3w z=98gT*?1{UfW->o7p;3-W+E`np+EpMrIcxe!kEBP`b9sBtQJ3xRLsjvhtwKpJg7#L>*{fyBb_IH=2>_ z88Y=}KN5zEH2u|$!OX_J+bVkjh7!JWi0b3D=w@FoUYo>kOqH^AHpj(3n(NfmkN4-H z$EmMOE_5%kS)^rCn?N4y`9uB%>ytn5_=i8>JP$v1w{{`ld;`FLkgWA@%#BR+?fgIe z0G&9)zy2vY@8s-gVqo)s%Fq7`3;sh08JHPaIsPsF4;lO?&d5N|{BPm^tX9v!M9;wb zZ}I;u?*88xEYpAV@&BK}Dygdo3XA+@u!{e81^cgR@&Be^|4+{%wnlcw7Pe-8{iTJe zsfnYBt&xcnfffN169Jv6>A!#|0iCj)imk=pb|(LT$A8tC{|7ueIynoO8#w-}>3^x& ze~$YX#Qdid7B+_eNlgDa`u{;MS^sgVihtRrg|)MZ01{Ia`o&am1leW|=J?z~H)I1$xs6_>Yf&TlwN3URpZ%;JDMv zdb}Kg9gcM@q^Mks10s4vR+L|yS)25x&Kzkv>Z$%(}Ut?p5uKvB@ zV8Gl6SCi07i-5tE_FBo_k=JM@#Q;%rSh!K|t<3NnQ_(n79#`5AUYk+rFH+vtusCd! zf^M~j{yn5<5mx4Wd6~kcqXN)`53{R2`s*>J$|awWlZ+o1D9xVNGGn#l&64YUG#XIu zJtGx{p?m#od_Nd_$$zrqf2P^L2IgPs#K`n-S@X|y{^uYnd)S-&Z}9qmce?*0HU7nP z|AJakJ6mT#K|6N>EtaQXZU|*x@>@qlH5E1M-IX0)AdxhWqHb+`iS#y5a z`nH$*mp~6eGv^FxKG&C~+2CDn?(o>yIP{ku) zGND3OlKS0VAI)^C=Ngy2_5*R7YWq{rM_pW2P?ab3bL0Chg=1nw#f9!77uwtSjrvIk zv;0l>^gXbf!lB^-@Ti`quKs)XemD2$v*d@bndDOXYO3n854gV{lHS#k@mUx^4h+Kq zpvxbCii;`kFM9?go18Q@y8)^J0I=GJrf+opo;;|qiCqkaZ= z08ShJA;1G@9NGzs1nr}K0|x}0RP-aRlNw)LUVgO$MyL9%@eXeYOh54{a0y_##s?uS zdkqhinD`UecZl*$K+iG!Pw32U2-Y<36Wo8S{8K=mw!#k~Epi zq2+%7AeT zf#E-TAH8<|Kg>zs+FOq|^l96t*4^0X?|jW8Ui!|;3xQOviy!5oI&-Ze>BFP z)#5_SqwBAB$Oxd-)BUEddP7jWB^WY)fCH$~Gqt|L!Pv$(Kjj2(MaDnj*}&O*+mko& z@B4aT{02C_p<3Ns-Vsdq!Zj86FNnZAvW0qB|=8$JfJVYSDmmzED}Csz06aBk_sFMnvq;HE8p zVpaNjNgQ4ez*g+(U4hoVR>bQAl|ColcYue%N_GJp89~>+(s^BP!TMRLKKP6V;g%=+ zN1pJJA5te{{8kP>q1ywpemqydG5VXnjhGwVehzluQU|v|jZF<7^hnnFy6v66S`Yl( z171GqX8bb!`EMiq9?>AsZs8^1Zi&p|s+at75pQLnS~|W82XS^urguNy_?RZ((1zEJ zbDdy80$AP(5x~`@(WS^|bEh4C|J}v>vp`IMkTv*p6U9&9PQCdJ*gyGK@7^BFe3o*@ zp=NDA;Oo|D>-q_~+LO`6E%Zu#y$F4+C=pXy-t0|5pe4kkP9}tAV)qUA?|R z+~vRtE*AWft*`NFIS{&42#{CfEyxt;-;M!e#sJV-e4k8!Yg zsQs`N{lL_v0a;hWgv#-PGk)nOr?823Vk^Z#kYvIxJd)rP;cK7+lf6&27+QkYUlHGV zI&EKiF%GeJw2(4gH4h42R;-V&C@A4b@iTzeaubu0{H>b{^ZbDVwj$l@X|Z!1@vRJz zn)>>FcWf@I4$ozkqqJjd=sV}wzdSO}&M29YlTA`VPu5uc^j6LosbL;b9ZyL+Wh+ZS zHJ7GTkj`!3dr00R=hK3(G`p^SYM#@@MWuA*Ytiz6l~W)KpQm3;^Nk|#1cJT5S75xbw#t2;jtkkDYR-Dfib%>i{XGt%PIr5mE-LbdDOG) z!}IkuD&AC8QRQ3}_MJO^FavXJ21)*8bnA>-r@$vubid|orlB^TY?hZG)qb?LofQLp z_cX9|DGf{d-bq9C1xMpO>D*-oZdvq*ETaPK59$OB`yPo3B>!d;73(R6&nq~$A(m33BX z(OmRuS`sD4IYWoBeZkwD&INtYVw-u!4jAHCn$1(bX^c!*%6%>uXW>vVV2Cbn;D=hZ zva90rw#Vi{d(sve-j^fYG-9AZ#wUHPjs+JUJ03Z6o%gBe=!s8m%n&FLbV^K$UHZI6 zdoj`Dk7{M5{_EuA;07Ul4<1V0;`Ym8NSE47Lb};}C%(gW100ZT!`8<-y>H~8PskZWIAw4>b!j!0?JSh~j?VxDQ{=J4pshfkf3kpWd@$ zp{6?_J^NRTs-xlcxs9q!BSiuTcAaa?D+mrX{;gj}_8q9FwoCcyBa>Xn7Wisu#`NmH z74zT2ku7gSir!vOx2Zi`0!C+w0aeZvCDj65#^)Z9ci>bN5H6faHb|tmeb=Z#P(R*A zvW2TNX%6T$-c~l89TPMBsms;sQIh4kO^o~h-Xn}6OzAh6+oW;^DZELlA3PY*H-}uS z?Ov9`X5MUdQkKECV>GZxHhWAljCMTWs%8ji-t+p=S zhmZ-&xw}tQd>AkE6_xc7T!Z0Eb?R8O;G@M`oARJxfadv$?xer9K*-ERFi)qzz8rA% z=SftM^6bOb-euAC!pVQ5vqHSywcVjL&Lr|G+*jL$Bt zai5J1Si~%QOxYevEU%3`LRcvkaYy8)7t-qv*9z(?Xs4NlQAeJtK^@0TC@HS9+SU4g z3Om!T8pmIsg5(+E{%ESP?*$AoHdzxUh6HC~z;V&B0VP8Sou`6E69v znL&k{&ZV1jTC_p8jKCen?XoLPS|L=0w&=HWXh`!muj1eo52U0Yp=y(okcsm5!WHw5 zM~VNRv~1sknzxeW+4JSG2^A4qWFd@LT>D3G#3(HJs{YCS0p9&UoSRfAh%)FQpXApGZWAT)ALwY6^RMrvG;$qX-%Ph&h4%y(=aNb&5=9Dm_B=ei()^1$1y_%1xWx zD;q1=)?I1eGRu}7X43$73vl-)X)Sz8s$h%Af{C@IpXd1|E2my# z%S0BuCm;aWMG%i?97;m?w}$KBd=IZJVdS|@$G$gGH}<|WkNt*6$)P)IcPn3cAp&01 z{a6Q9CW#v;T3{ow7z1=J%99ijmHx#7JkpQ=+x*0?C``*(`%6UNB2S94fQF{MH>5kF z7TaFKyMtj4mG2>J@ZXZ)S)SZgh(fZ(l4nIO4d>^CC}-!a1jj1Ws_zO&3d|m+`UY3c z3&EIOlM>ZYNJpkCQe2W-~J41nz^) z8~F6jq7{ z@^rjD?N9qp1X9fqIpRLxoT9_~%37k~6a8C!hd&+0asvf@^)+HO_%5TP0em^u!~&QW zn>Cm93VGb;&PC%KkUDy@JtVbY{dz7tMZ++B`c(?NJ>3QvAr*_0t{Q|W*!*mzAKO!b zj2;`6)X1cCsjD}vVDViOQ!06s+Cmuwr+*m)gh;vR2^ge)C9j$<>neVY#t5`=7{9h? z!Wu72JzO+o7x<@r1z4OFEuvdBU>xCzt;Cb+ziC)~Ta|S=rUN%>kw#5{JBM;&jeYke z(*zxsSQ|PnWG1MGzL51=xbjZOt%-ZDI{;w5j@h&~0BAwpXzz?(`CiqZn_Kvqcp?$; zPsB4>k%apW;NQa7+J1Kt_koz4mAKycBSIB#pDKFnWnkkREpItk^n0HEez=2)uZrhA ze9#)k6%rjO0v&IgT{ncs-`>7mIoCk1D>OrsI>_o^)Nu z9^VEUl{RIEdpL>HlrSrU%H3wKJuprPW{*l&w#N@+Q}1fqTeU&5Q+`v2ni4%*IvJHh=V4=P#`soRuGsEXu z$HpVlc~Ba|_AgcT<0dR}>55owUyhPML>>y$1)~jFYFRbh7ph>6{eVGL>f=1o>Qn?5 z#mW35>D@A&+^9b-Ds=1|0qTUb$PQ^`l?}+oa_}-H4MLO>B!XP<@Rlm-m-gn)@Eylu z*~J#~02`^9gSk34?jVCheo`4d+fG?*ZQ`pRrXVVP$2+{L8<)jf4PvVcrQ{fC8gaDU z!#hSjb>oi392DE;&$HCy6&r*}NIG%alX<}Fn19$b-gw}G-Hec zm*sTL%Vy+M5*i=B9>kWYBG~^6@=mCcieg$klHXZ?sF@7GDk8n-$dI6LT}aGp!od%8 z>`FffiPUz))HDY^aH|bcI~qf z$NS4)ar!Y9Wac4C$^bPN^F4x;O`rB-?Oy9VM@2}=hIeujB=V#zJ!@8cuhd+F2chPs z1NrJTGwu6(d@i;zCwwz<5M_Gq%14BZfatIp9$w(mQP8_$eYtv1?mlpr9F;M*t!g=w z&NVI(pg#W;vjZ>7R}8bM!R*it=6T0|-)kR*{tn*{c~mfYMbOR!aZX4Z^)Ai;k&?v# zukUJ{JBwQ_k)yyC`T?wOtrdJeh~z15-3DUs&*R0O-|WB>t^%pHYsHg~v5zqA9X0!W zg|=}-T{#%uR7Dkeietr`zA6dzyB=&b0rvw(dshm`5EVTPNnpUK2Bf7KO@gpHE8mwW z^82lh>?7`Jnc0RH{2~63W+7Fc5`FkZ4a;!do0oFUI;ir{^4YF zIXeu#o$hNAR4e6HY8dC`mXKSm?p)!=ZVEh|_?6R0mT@^P9zO`g zKMWbo>eZ^^%9$2UEhQUP*d(vA?K0i-1kyDJQi|^3kuQ4lmhFU2C{%EpF47ArYNC*x z^sR0>vT{Vwi^dPT55*E(m%L9VChl;5$Pm6xu-K|^ISQBC(mkOwz{!)SC{m2iD(<10 z2R)Em=ZhL(>^P{e)+RlUZaqL$q*NJz^hM42X#BSRCdt;0(S64DcGfMO7&W?2I4TM0 z_M8S{# z4pGoQBqC%+x3sE^!xZQw3Zd^U1~uOLdu`neqSbQPk(*TPsdSQ!^V7OT=O!}|r``Zf z0T0Vsyy`incGVG_CG;0)24P4b=-}^uu4Ut@Rz8xqWN?@qIDWXL0cFYsT+h?M`@qfgETf5A*?-8Yt+DBvuUXcpIr+kR zPe&hmBjPP5-wo1X=b(Oi62$Fb#Uc9b9-F}e{2C23pE1?l7 z7)}RI43rJ6L&xQ9y6w7Oj zgUaiRGx18Mtv~UcCjo*Dzy@$V(A)%Z8w8=}5JLq{E0ufJ_YJpafWUs7aVWMD9><$q zilskcsAeNCAbQIoIy0G_M{nX{C+X8VowHW-_V#QQ@ls$pGiq&@&_mUsCjBa7W)YEC zd*0%&YX{RrV^vZ3y_am#re@L8Ew)AhyhftPf?`2)6|*D1$7w7)1|I|)@EMB#m_kt4 zgZ8orRBW?+6d_|yRzuF5!XdPT)yhsHQ@S88jY~V=1yPIGE!OZzL4a_+zc<9$`C>9e z)=27({F0V|z6^l>y?j$BHeEkv9btyK=uMFX3wYaUSQ`)I7mPXisEe7)#0IDD;5 zR4Hs{f1RO!gd>f(C*K`mF;IZKBzhsOE)ct{!Kv6qXWF}$)<_`NvJceuy_l^l{VJNu>EFpJze7@f zEu~b5dy66FMhot@O6bNXX^q61(!cJDsZ?K<% zZ&OS-fx{(}dfc-0;kzp?yJJDpVmxPI_ljha>YR;DXn3zw(5|Gzq;tKcKg@+nUJJO( z+9A7+dGUP8SMiqQ@+(th`z$NoHf?{nk=kJo;*rRfz`L!VWd zCKgaNKFe?ZxsHb3irk-ML}1eH8V^W$`Eu-D*2NfR`6LYQ4K$&{YROgbh^IvE#u!!1 zT=tr}&!%vcN*3mdWwy|>i#%3pRl(1Rzld0Y6_SmHLdF>aP2o0ko>`RBp(QIf_}a?; zbqggn!gy)APa97;Q&nV*JU@SuR&G;CQ>hzLu+1l_M~+j37i(J@e6;ShG{UpSyDfZY z|F#X+$!ATTe0ZFt3qnqOhq%$*u1&)lUxKAMNz+#Y2M$**?mt^Q%Gu{}GnEqTmm?@XTtAveRTdBqr!o}hvp1n89!6o96mP&A;9B;@i z%E{XRL{EY%^F}AATy6+P#B9IraqYS?6$IAe5Yy;Z5F~kSwtJ2Az5SF4`Hm-_%4IHf zK>30CamojOGsXA9Nk~+pn|t`XTdtVDM8b$YFwS9}2k^^}oIKCA_hIe%rvWFN7!82e zuezzpoRh}H8tJ*VUct1MsW=_EZo5KhSgyZiTai$o_YliKK{NqlOF&CH2;PlkjqsjZ zT0;#SzWsfXR~55Kg@o@6oS&zBPVg-Tupf-1APQ>Fr2$rc5Js4WxAEVS z1ce&1Yp;2#m6dk}29B*iT(5iC@iwsmwFs3>RjOI4s3<&o)LjU|(7tg8;Z;+;Nk98U zXoceSTS`euP~iKVe}35Dd=FbH&|9wrBT?c|-#NV0JF>90D z#PfzS&x2`$C1?iXqw&O8L&b)sj0kE}VRF9<8Mb=0KIuA=+G(J= z-Mi#Bej2Zyk4*6C-~CM%ge6Gy+qrrZVpJfphAAL z(|)?TnRi;*+@M;T#1EsxTx+ZKb#YBJVP|AP)q3V{`#JU4uDqnM4Xe_Qj&nCk(y=j( zi<3IeWpiBKo&K1zX9{IPAgamcBJTWm_9pn=Pc<^VXE+i_05AIITdFPv5H2R9raw=j z)Iap(^)Fbyj{pk6X_|lJyk^E)_B(ZGps||@?Zn+}t~m`+WV%?>>XmoC$RRSm<_9%V zmn^0WFXkH_-{RL`S`0c8PG5Vu+-B#SySr-I8a6#}4Z(oP%P4^$DHypFhW&~#O{U+7G*%&SeAUi3)8Vt9$yZ~#TK?YtvE%in$H(& zGr*6o#4~gk`lh<@v&ldcfg6UH{fx_wm|DR#7}fKkgLn_F{G4GkV$Rp}ad-0#X3^R5 z^ia#TLNJ;ol2bs7*0c!ZQaP2&$$dh{7S0-r!Hj)t-|rb13=A=OZd72F5H0K zdXX%%Zc^azvnaPeQFAepUS*3gWRS#w7B=YdB)r<}m$kXyHBd*##_J-W4a7P8=sH6P zUF~M=y@!FF`Q>S9$6FgAoB>KWV~>V*9)oRbryYvg1+9|-A|n@+d9N8>*i>N}(w(gQ z+UNe?HB3KC2fPPT8+utI1E0po1G@MY%+o0{D1x#=%a8p$nx+n4_w@01H{+9NaFOj3 z4sj$>vp8d3i2LOE#bn#-A<`u<5ndBykA?~SUXav9u*=fv=^;NpYlBzqPpA3N!VbUwPjfk&5%7os`;56|_NH3pbuH<|?T}oLNT*Uw4>>gljdD_RpkLQl=*tTuk zwr$(CZQHhI?%1|%&mD8;`@Z|`5BYDh*_`Bb<*7<{S9Rwkr@HI&WO=In0X>e1c_MnH zGEmdRx}N1VxnDN{JLJvKk%xCo-NMkw>dftiYl+y)iQjFpUgLoP_UXc!=Nq^*-(BuX zL8%`OS)Pt!&7YEw?P^>%Xo)l; zIlo#fB|HPDPhjv=e|sIZ|8{sFF}zDI7#EpkBoRs&-YaM~!t3}^Jjy1Pj)Am(3%Eoq zQ4?8*bJT-#UoaVG^SAHv9zEOi0EN-u=`fsw2xo5%F2Yncz8CITQn6A7hyvZQ_;kNx zu{$#a0Ykp#^TuRkxSfp4^|vwYXl+l%sYttJFYtH{j_Ac1p>cp&8|ut{bw6G2oVI9n zbbl)GHr(;IUf|^5QDP9$feO|u+&q1_6~uz=BXy^4?1+yj9(oP_dSiVY7kAeuh<#9d zFP&;A-I%6>q?~N=<`U#)J9dY1~0m8kZ>b)F@BekM(8blG$#b zuVS(7-Vy6Yr8~9Cb?$L4HcHqhC!g?i^n;KS zvd{zr8cA?#*5nmDX|!|mjtGJ=PDKye5g+Ca0&$-j{qMU@x4aRCbO+L}%dU8sVRrSr z&4S#Z@Pi5F@j_=Y4|1>vE5asZPXE`KAh_+?ED$(?+12!{S(l5hjTWN-bJ;i4v@HM+m$ zIL_3h^Ar(QHiC;yvSat$kq?2^%KqVzw`7BQftq<=3rh9YXkRwyXWM>_SkzMlr}#?e z(1qZ-;b#hp<-z4@0Wk4>w%|<1dSFfJKG@?_Yt5aqitQ+FC%%}bz@U|$dCIN#?D466 zFmm-oY!*_PVITvOR5}GVC|J`q0_hRgQ{;_9A$Lto>0fssz}tzJJ>0`V1JJ_~-%0?T zr(}Ms-X!#t?XTU5AIw=wVK9v2SSI1sr<63FQg#|!Q08}D7$g8J@ZoLo8F*;t*XeNa z1A^<>b}~@i=P-|&`jB8Kw6X&IP}s$1e+3>(b?c>dlVR2m4BDQ-p`I2ceyijs<{cY;@IKR_-*+@V7^OvYMyf{@)VADZ( zrUOy?(nZ_D7M5o}jjfMELVrZ?yAmn)#Jr*(!*tPjkJgln&gF~|} zwevx96xUpz{D62OK8gXJY3*#!Xgt^gZlYDcn2 zX#N*i=m*_K=mbT_C2OrG;#aC)V_6~fro+rp@LPpzyRZayZ%1rS4rDxF6!@YgtVDq4 zV(Ru8rjFQX>3y2K8?f){GTn=)7Bic+=E#%3liD29DWq&mbju&|Jneh|UpVMt3v7Ok zNv}j|4t2jxl_CAm`#T_#wZKh-J+0^uC`K>1`RzAmt(v|_?=^?`612lF{;qx2aTT^h-CmFv^ z2F}lm?DX<+f{((EL?gs$%K-OTPTka|WM!h#>YjBe*{N-&Tb+_g{}}P)g!ZOi&*{Cs z-El&Md8mFZBt6qFhOw5xbYbiYnLRR_{XePPGWj51zGyYYs!vT5FQs1sGUt3 ze-8zxAnRb}K3t&tS%ddY5(ZzH;%E1_Y9cL`-cDaJLisT?xMp@Pi2-=8*#FKs|835# zL0x$tQ-XedGmR}QkpL{ws0gapY(GR)`Cwg*9nqlkLP<3G(Lh*rj;OS1pXtED;F43{ zKx=DozGWykQ@-FzeMeCN&iP@!EGBflr8P{+$J}Vs2m<>3?qL36#gT_sHV-E3rV^ZK z3_+e=tJR2q?CZ>PrJ_M)R^*D&Jg1Exb{)g}+h1Sg#n=WRqRd2+Z9CnYjYVEbX`&0E zx

    W(|HUe(@a`HEMl*}rgb{}Xx3kJ2E;7teb~q!=`s}7trBwa!(3MD-Ho01ozr=@G3OqXQx=S+EZ z7pEwXZZ3R!J^HJ3c5>EpR+LVMX5EoeZtnrW_WJgMfq2t;sqa%%Yle#SLmKJj2vgbZ zX;j|2^r{rz-$U)Row_l-k1B)C7Vl9EO*AUMXi;uo4*%8|a}g;3&`GMH=x_hI5O^ob z3Ki9ib*t{cjBDjC%dFSGoH#vY689ik#xeHM2}%3ug~&RN%4zZ%PN3gQQ}aRaklfa3 z8bC@wmu*m*en$t+z!FJeg#4x4?F>16Z+{UH;V3EGuB$dDRd2v)L^e%bP$)^h$0kml z)4X@<1*P=uaWH$c-vCJZRb*^r5^^^m>qu;D$G)D^lg|8sb5(nm1hwE_7U-dRS}Va% zD0b?Oh7?dO#tJi_G*x?t7kFIOWI=_rsdyc`1`@>1hwDh{ct$VS?W>r2=Dx({3wS`} zJs`>Kq&u}vb`2n|yoB>B9TL_ms@~R37Wn#5KR21q&iOxQ7q)VW?jNJAiCVEei_5jG z8$oI5VH8^vP~=sqP%B#-loa@F``w>DsXof}*cmh@m_k$E_z<}9y#p|67x&)qCBAGqWbrIx7G;~DEu5)psV2m^d5&RYhBYFQ= z@Tq;~@gRAW6Z+13nhrCbTRB&7S-P;Hdtq|Y4st8JdaFwJc+Z7Fi!ZXmdO=8wa1Yo+l%sBweV#)KwnSq9e8jHDZuYe~$mq zofGhXBqYl^k?AP80fb|u1M*z4#IvYXvNqaUKuj&v1SklEJeo6U(3x8AkFz;!LdwrmZ zA6iVNC#!;v97L%N!AZO=y|HK0q9wn-7EwDhX6^+FH?gTN_=UcgRH*$<6RCiua`u-TZMf4V3#=q()GDsj+HNObA@4Jc(G!(O z0byfP^2kW1v?ES=K5I$>c}aE+|E+l7at5WA)x2Sqrf?)RRqXAcg3QcIUDXX91<-z9f?gLK|H5?f?M0-= zbG5V6jU4R?x|;)9EnC_5&EIyMl}QoE;#vGIj12WD!XtW7c1$|_8psyq{W4{9b3UHf zt$f?^uo`lQ0&j%wwt1h`*;+hVwbVrKIotUe5?5AT+mqbEIL zx;TO@2a8Z7txrYdSk|Lb5z~^nn~_+;$L}MkzieUZ$~QnMlAIG{%b~fpfK-v!UT_+q zopw(rx#n_oVRTdz(k$6o7i+ko^6z`xHw7XTyq`uY(7nS~ZCE94Hxs*G8@`pVsm$rW zLgdzhz=wAGX2_h~a~7~thzN3Eg&~4EmDYk4F$(BwUu)2>z+@=}(gbd@c&kd0!g^T= z4}*gWbYGsNZ>ahd=`C-QQj$>b+jT`Ei>@zM_*3B-zw0Zzs3-Mz4x)vUT7hkkFGoAO zKh;VRniuQU2m}x8a>VfYvG3buKR<*Vo*V9M)vE{sXhwzYR!@alsp91O&@UK1vJ^-F z*mvd+uosPEkf+#R?$!J1hW_qm`5!H(t)pqkwzxDjVRer%iU$AkqydFn0j}q2am^Mx zf@4;fT83btC0qaQ458wwa1TY?=Wx+Z^wtt3;nCR=RZW z1u`nv#hb4LpuV6BpCS9b08L;Z94f$bYdse5!ShR|_hWHaEIUPF2U31ZP!}Rl&m4-+ zOR;;yq<<1&d-JenA9-rEDs}~SJfY9L*yi-sCU?Y9A((*>UmbW8>VvbcC_7ek2CUHY z1zX>>ZX||@1BOuz6EYt9s*`#6lq0{-Xj_Efbw5oRCc(NLP&f{B-Ns};r15yLvA%dE zJ?{5?5iYva4?!Y=3BzvGbjHJ(Z?YOwjQI2@3Co~%ThLZ z3jAtWW{p3S+RH%u=dxb9zjcWS-k1=ecvW`~(&8fh=1_RE+jkZ;d>{Tse^@1+s|(MC z{H<8|F3Qk4gKrgf_>qO#xn<5H^a`1sN+V;C<*OZ2?**H0MCd_|VY)J@5 zj-(b-1}aYsYs0@50hk{b&?^TSGS^Jqht39HhGdYKO{i?Sb!U z?GexQ%&j*npC5Hd*6w|CN5~VSals#;Yzs2N}gH@9|1go(Cnu zYy_yn5h;r(lJHtAe#isJvTZOh_cgSdAXjT5eBxZ9+36bS_f?NVJ4}!WRuc;;D*=Cp zOv+52u=xrDb7xG9Y>HAsd3_vIcs(=}bxChaod*xcN<3y(^8y4T)SP8D+yq9e|91|~ zKI-k>{kV*?9jWTZPTCWbMURAiuLxYXex9H6ayC1Zxz{fa4i)u@&PUU@T9o^WDk*#E z1miw2J#`Xyqz%jDg*Us6r;F3`MP@Jeg(RO)>_C8i|%HsRYJ2QcStkrb+Jza5}YKCvj^gccl zk1Ni*jrEH(o-P%eI%3j-*gf@?#`NDI^FI}9S5GMsuZ>lM1IiEEcbpfI+ToT z!{SA@u1GFUOl{&2KDhJ%oCMQ4Y;}JbM<>!@DGtlq$rP=tMal$2k95V^Z&rh%(0Odo zj!8l9osxJ<-Q{Lnt6jT$m0OkC+-vsRb==IAfhCH0uVdVG$ApT`3IhXJ|9&bfw}s5FLuA z!MoRA3Ae~MQ%KP9o5NlN-jmk&?Fi-ZlAR%iUN>iXxns3yD?wj!&(w6rHHG^3FT%nl z2Xiov0{imaqLQSQCQx>i);8LmljRq|5h8J&g3`SP(B(`ad&AI5QCwXMdpg!s`;#Nq z&OjY1EDmm6elg1Jfnjp~`nt^UF!_%B&FiSgF|$k(2si(@n9{S-2n_#^kIZ0=jP@d_ zrcbR{D>Pc_6dgZv5l!JJ4fkLD@++T+eND*aC5D;GB3Fn z^RvU*O!Wb z_B>Qb>DEIGqH8uHfQegRakr=)i+coU1XqqX6$&cWsjjgW(-6GPpaaJs#7+k{hTZO( zN@T=iZ_{uG$}^x*b}oSb?%QN0^~FLE7KUUYcyWE2oLGmGM|$(`qKyT8mMTo z#kAesYXG{5Cq|<$^XIt;Dzn1{LK$6S2<4LLgLZYiQ5Du!CEb~ET#Slx2VAvm@JZ0r z8#X8{m1E9AW<9X|;Qnmq($hnSE%XTX1+lKodMxHez$V|4c?0yz2 zQSIQ9e7!so%B?nii-KuIK@bh*A6KTB^iUJO@<2}QgiKC)$T3=6cKc=f5ithoVb!dC zr4`FrgfjO>lO=;jG{k<(us`oP7a1Cim3++gO`j_IEHjwpE{ulFX@9qzwr)#Tl5LOb zYbsqe?G1zTTiwePZd%iga7ml!V!{z2pvXCE1eWCRJjWw4tM(M85;1tVwDhA5Q10N& z3wq&{%EJy$k$Nt;4P&LAF1{qD>Pc>_cyY2ydmm$7UAny^QCk2|b$y5zb=U|TVkWnL zmA*A7%Bw(ifOzCkH=SQRVC9zIz=mgmz{m@wWL2nGE@RA@sS0nlZt zKSS%P)QsUKwP%e^TM)=5?)YH^Lkk!gOeKZ=5nHg{%1?aDS!s4PJdJfOdW;H373A1=zfe z1>7sCl*_^ybG!dm={1_W?{zzY7~_MnD7zbnTUw3whK9J2a$?%j0lbJ1;XXRUXSRND z@9eYZ1u1SJmtwt`p~%1?d5FO$?D%(Kk_>)6?IK>kCpx>7-aQMdaIL%)L%hwwdUF8V zcL;?Wx_xxpA6mz(=d4{*NCSZqL1Kzew~Zzl#3jt~ys@tnxEk=`2wg9I}z zs7}#m3*5ZU6l*8BLJ3aC<7m8vh}e%sWPKj5G;epe2AVc2_Y|`LRjXR{bEYOy_#ytqT4jVqWXCm#se@i0Z=%9@v<4}GtSrW? z_1k@wXwXmv>MTKxK2MzY+W@@LbdasfQ7Jog{w-Jfh!MOyVKE9{jElCfJN@^mpb{#c zRZ(^!*`W+U%-S~MFTrdQgLzH!q#R2lji92KmmA8X`4v}_!Jj#`R=mO4Q8H|Ws30v4 zgQi!VIc*7P$LeT=O8sO1^3>Nqk42HuMx{=p0TKQF0{>T(BG0~t6rVNq-nZ#ha&z)46bg4}m$}nu(wtv2H zo<0DuL;U1B!B_>y%MD_YgfrrEQUln+i(RUD7jlU_k4cM80;j;tY2SQm{rkrsoPND6 zE+>u>W{m~&wbay5FOvObLO_qv*yBQ{f&2U395XLmH>VXdp!ROUB03OR4;8CLuFl8} zN<^i+ykI5Mh^*^fbc&^o?jf&PHwq$6@F*hblAa?jc;!c29KxX>yb2b7c4v)h>u&!y zE3z=$7@UOLAmY)uLZI``&Q9az1f3k1c|YRWD)l08M|nmgl595zcOOJcnSW;by$3Ry zx2zR2J8drgK!3B&!PV1NO=pe$#LD1vzHl1D<-~j2ZqU^tuDN~M#X8MX&lm>1k(;LU zw?S72Fl^i4^xhp2orjW%Pr{#80+J@>%e+JmZ=0hl@l-#8TKr}}8;iBZ%pF?LRP)gR zM}%uhuz^jx$^uc|M&m?!$4gyGCuchwTH(n=<;~H4(7^J-Bc=1bL2|;K=pWDD2*HPpON~_th0ME^kk?_;L=-k-1 z^ZD>r(dM~0=8I|Q50G;Hl?vg4wi}+iHopnM5~>jInV@Tn1mL_wMv^Kl2`UNsOHFNo zJa>b&{5x++cNW3CLG2j}#BOto7(&%#1<+DwpS?Dj_A4_!%>d}cjgeJH#pqmAiwS3H ziqYwrBh|lzB1TJCRSILbhtKD|y-cx4=4m={V>W*LX<_CCv2J^M%nMD`|qGut%lwR zOuTU==X&dR;cSU2Gv_G0 z-1!BJtlMwwu27O9H5a|rhg5mxODXk4E1(@0>Sq}{d|!r}e-F&MM$s({2)#1;>NgmJ zBt}49Z57&*j*~{gm_LyB59P{(%#*i%I{bg__tY{M zjU<7WGD_1h9&}lOHq}bA$6U++R&H~AGOV{QCY+x4=Y)p}T1%loZOKV=Z^&%%0-}X) zC0}3hzA_fG_;wjAIn=am*E`_QlBWo6_x$&-s-rK1(TW6k4gLYnGWmNpq9RGzS%(AI zJt<8!E#eg^GS7s|;j$bOZvuj|vAmk8i%d@RrokVoH;30~)Gl?3*DVCKb!(V_^?2W_ zzye>?H&>i+`H%QK|4Fn5YqOED1^h0^H(zYcyVXp1ngPHpSb%J>vy73{n*=8}7&S!vnpo-GXt%$ky|*UjxrxRYMzj z|IO$I_r%TSYr)J*Xq$#wT@u1>65C+f6zqo$kqSMcmOu{$(Fttw)+E7A`AvyqdcPdl z_8>Ttmuwl$@ppI$KS6*#WUtg+_W*79lMaw?l-ia!jrQ{O2GE_*`Ey5ZBre?VNrJrC z(k(nBUPwe$bi*gi$~fGyO(GXaL>l4=W1_x!LLIjqVdNeDZ$G`?{AMEQ#1?<&8-)Gv zTvZl@AAQ9Ch(#B+Um$uUd_{QwUikCzkZ7&UMCelg+b)rjLqR}^`DL&}JFrkta`dU0 z89I_=TwcFI2V$(?#QkTs>@38OGE6+2HmWdv;si2S>k8>e;b|E`xVV!#txr`RdM?#u z$zgT59hG6`|Y`e{Ub?vp? zGVYkk6-(C88#Hb_WCg@H+Q|^YZs)r^V-H5Ocl1axY(sba>Adb6`{l(G- zBay5AwLAE#wkNi+r;An3+w7`l!(P%s;Qbr9T4wC^@9D-QFc`MNf&dF; z8GAQ5+eJ?AABVne)8k1RUg%!{G(h)Yg^+moOj7;$?4-=~WkkHJ^<I#~aE_#cDfU(K1B+1dVE^ZyVr|HFLwPvifRS^g0^ zenbst1E+rpAOAQXKj4OdzN7KKYm_8JR74ei%ohQ*|0DXs@~>R={|$Zl!8Z&QY_0We z{>yy%FT{oENALK55EuF%2;{#M7e-cQJVts($bXO)Iy~lob@$)f|CIk-^Z)kE#`eEz z{_j2gujs$_{+}2#(?2rKKObiLe{_$3AL-{T{wcFF{c}Ee?2K%XEDX&5s{3b4hsX4T z(=h#jBTS6{2q|=UY(K5E@qPrEA6n(#7w%t!@=x)9j`RPSPWj&>{4YC&k>P*fDL;zI zzws1$R=WTHcnS;q&w&3MPoby#DXNJXo12s7^_{RX)3|wjVWR1;%PKdzYq9JD{^u5>L!7K=2k$D-c8=Zrfcp_t5L4_cZgn zLUaJ8u_C8Jy>VGFk{$)7xB@IPEjSTfZGCJm8*~&B2|$c2`~rv_fKSB*2?GN{m2Pxv zcuXGQ@HYwo!0W3&06i=v05~VWDB+(m;y+Wt0zcU?9iHr)>l<9aXC>)Ae(!^ZvHNLT zPyS335XW^guL33vU>U*A+A*{OcD~mE4PIUWp7+YO0WS90=&8!qfl@-k{i>^@cLh)L zueQRHU-e;3aBOk{y8W84+S~iEO(k7jf)Rk^gT)^M@RMt@b7*=7RP&>jUrox!YyJaA z^6eY17rJxyEr0fX0M5R;`u=hAixk`x*0qk3Z|uj`K7ZNC=h*cnC%HDV zz1!hoca7_gZci&r=0^MTRoh~Zg3Gx&x8M8rO})VjvZ|!i zOgyBV{`JiD4KIppbZ}a8cJM)Zb#v-VC-lB^{y7{M-@fh!485wpw&oxA7PsU3ZTz4+ zRD?B^O=X3J4-3Ky3vhT2dC%|9g$_3ea|;S&g+={m8=#Igh#s@DFp;we2!J4*_s{&; zPtGGY_clN)gI?)x0WJWRyWTL=KO}dkcYv!z-vmAYnTxoC6TkHmzasqrSkimLfd7!Z zquK+l9)1zf0AzmXf|S?1pz>ExehSB(kNd(Gb&TT{}$BR?|1ZFVyVbU;V<*umM`kEVH^Gcj=$Pa5=}maIAx-KQ9%wGk-5stt54If|S8xTLK`kRj?%xsxwdU>~(8*mN3r5D-n63+Yb z3k#q@Q0PUr0WKKp%fmnJ`nzO51k1U}{$t|zODAS2@19oNfXw#*jQ-8X3XJ$Mv;!#T zdLZ@Iw+24>SN)fz?w2MDO<2=(T=dxk?mjSnb>|2B=wD2Czbzly16~n4xPlSiGSDEV zo2QWp82nQ(m%7(n#ZWEju%*AeOa~!E_JLY2yheD@ooj)cUyv{$0xzG|0hseaoz0Xl zwM?6FCR^QK7Qi3^4sIV~zd!_>o|Ug3^{jy<4U zzSSyxJO2IN*52Qj+3ul=1CI;_?nn4_cnE&$(D?p6^M_Ycasd0#4A7zZ#qgyYc#2yK zU(xaVL>WZA_Io&mCC(Tc%rkIGUL`ea5_G_dah-qyxF~{GwU1FCQnQ(qg7takxgey5 zh<_tBnzD_~hUJV$$@IYBa^ObMjXR-j=;5VYT3i>TlgNaI=f*SR+O+qIXs&x)<$lev zqyvh(@6txIjr}M@C4D2SOlpY|eYzWqom{Cnb&-ott279M?$!!@6yjiSDS5hOB?8*E z;HXGxWZbDdYCmH0wqHUzWFrj%rY>6OTua%Ll+>(r%9n)1rYN3jilt{8q+WRcXy-EnlJq6ijYJc@ZoA79~(3bh)NBNXbHKmGL)Mo;LRR+4Oq<{-X;yD5N}l?3)<5F7H%HH>IG^csw1&=sQ>jq56^E`pa=N8*Zrxd2{7rVz62!yV?=Ig7bF91F^uX}yx;Er3 zP44=eZTyHiw+@)kG*R=gDRnki1XxLMII6l3&LDnAUDtx+_bH~%p;gsb)3j~w`5!K3 z`QU&ww3 zb0R{LMpGYKa0WgbqiOZ`FGdux_$Wby%wjDKN;a}~*-^b_%`Yv6#NJY-Zt2Unrss%4 zbT>8}b90ct4lCKiq`-*{5@A+#aYf~WKEYcHTe}f&y&H*&^hd;1iPKp*=1bdHMNqWC zV{j83jZxR|3@_h>J%@PdZ67y_nCY_orocXh3!U0~eOY0IE*zt7iSnY-C7za6iA&06RP( zsvG6P0{zn?5zYLhTAWTB?DHAA9@oCuy!h(*et_Sm$f&|<;3yV>-175O68(nB8_u46 zs_p!ZQ1-6k+y2F%cNxhR;(4QUG*Nx!KQ@sW!T~uL3yyL@77nWm(U#RnCuvJa2j*+> z?FP~s)!l&(R|&`?gOjdZmmxj8Rp)wxcsa-IS%m7AGBV3lxYW|A{{&p7`%%cfR8G-( z#s2)?d$HMuLgsdcFkMsH5CietU^9e7%3q{!k3To7XqW7UzJzmyUc4EwCa-A zjb&IiHDf_Yi)DMUBy!Uj;_dChb&cBTSJ#-5#doy407J5=RFZfof4U2%x|ST6dElkA zA2qeU2>(>yI%!|xHo;*_;)=A*nEuECBqqgXorgCcs)bi9`X$mgD_QiRgY#WvgKAp$ zx$b9ZqIceo!RKw>R}trw;}`y>%J%@k5fkQ0?G?hJtpsk=sMoWC}xzy zHQ_ZFpSSBgY@vkCq{Pn8!fkC8S9SA(=%T9-LY?6jmJ z>5Lr7-MiF_g|i}08p`B^nk5gSNf38R^cgYQt?BM={a%lyxh^J!5^}f$2FW-Ce-4Uyb0%`K;}B zCj}#dbsKEY+JB(V{++P0S+W7oNs$RSw$MsFm~U8pooP=u#QFOeD1*{94{6;JyW3oIE5hIzUFCDcd$Rwrz$3f(@-h;p?M+@~xJ+aP`IEM4lFz2$o<3U69BRk` z8AFgkR^$611qEEV*FELL$|4eG(j&vrYZX7|`&NTzTO7LA{TbP__z3VVQkKN~k?B*F$y1(5yRl91uBVnYkFSYT*sfV3CI;5mx z%4}N#s1%8)$Pi{bQJ&K`xsGb~dB80Px!$c1)dH*4ooRnOFO9W^({9^yWs_p|v08Oe zdymPb5sJ)+o5e_-ZSbxu&>O9L;`dUJZ)n|sP`WG~>t!X0nek~GFGp#Db0?rjCOgqi z4I3)+@pZZ)>KU_1QwHhZ`2Kz)O#hwI+1nhXf{9Y;!;eF^n`)>me3{$_3JP-Tn6OLo zOp(P_-g{V63oWOagMKLkxtrT^$;O!{3qzh(SLU2vDU__^g)!vIw{T_T=!Sjx zrtb` zdB9Bs`wNesxw-l8&?Ss3%uMlYr-j6<9io!2R*O}!zT}!pzpZ)^ram_042Ku}tzP&D z8C3L^Vmv~Ndp?s+O+RW}XS`$TllB$hUj^c7QpHo;H*G;Fm_NwQt*N<)-4EWk*&Gt* z>5r1!p=PeC$Dog|Flydgnb9w_JO6X?+bll8;XM`i9BL0JJF90@Wg%(*OU;^91%lA) z*})l7=LLivy?H}`yMVoY+PDnRv~6#Zo+9KSh zuGa-au_}25?5P5tk`##=uViWS~>72kuSWmO2Ca=P9&JW zctIEx>-UgidA`=1uDEZAS}|ucx7^U9A|Fo?k&NCQilCVq6mp;Wh~cqZvY}Z?nmw-) ztGa;i#Lm=;X`-lODZE38s(cAl#a#&#M<2|Uv5vM;7m=J3(M8{4oyaqReW9uL*2C^B zC3hCUyT`F$K7R}lszaKCY|)1!#|qH`Cd(|`YqHZcWDUN9^0)`ow=UUJHx<-UZwoaM zMGY48kSAw_^^S7^iv5ke6qAD(5y|Zn6DwTSBm>@G+bAc8nvD}Ot4%Hfg`&hyL295q z1@-$&UPAA7W(wUH+iAW{?2Vx=#XPV#>`3R5Q8m$w{z<-1B`NhcxN#S@^kH90QD66~ z%08BEDnN9Nda6#Kr9?Frxb<6BqR`#4Kv|7!_qX-{4vf}x1~t`+i#1hRe3&DK^K*CL zY~Bf+IL&)ou%b2NYL>Q2swk)ipsoL;u_z1Qz?{z}IFK`?aaa&Xq=vXhhI zQgm040g?iW9akXiAe9^iy}OktIlV=hvW+Y8Y%2+&o;$9Z2h|u$qIqH`z5?rWlLZ}DXtG+>Di095L@pCEwtTwAUa&!M z4MJZt>M}X?iwilZW0b0QC5-Zwhe(3%b*w!yIsz;2tXDkRn8-{1R=9Yx#@0E78l^Y3 zL@}Ka*MfYVliZ1PBt-nsR;>X;X~PR@vg#J4kEgtdp)RfmHOcc9 z>g>0=+siqyOw^sTuZR}GWL90@H_=u<(1{<03@L8;*yJZ2j0!jByF}emtksbF$is6@A{1MC}lbC+0988iHyde__aZ zS{t+85Nrj5w<6Py-U*Bs#>w*Wlb0SQ%o|zyE((du=9@93&xYZSg>Qvu<+T*|_kUj+ zaA%b65y1u%ygnTaj8ocIDW#8LLowRqXXd^ zHDBxKDBo^jou!rSg__89HHwq-3Ar~fpA$ez9CgJ9r%K*UHBB|$tY4txPBJ|bS_Tbd zkarKgQn}P3?g@iXdkE5FYJ~gPG5>%ju4%JTQs|;sGH>#bB93ax8hRUl%yL84;9thW z62dc_qb&=#t;TE`P01|;%kF~g{fkzvcE>dK0M+ry4nHk1c23+MOYO8eHe&qZ*QNv` zlyn#GUDFxh3)qe=>Qlr+R3pyftz_+t(85291$bUeARJ{JVPMYTLz$==92u z{!2d}+q9RaRP4&%EdyQ>2Dci09A2dP2T#`kM{|J5ux0V!}{P5aS4X+slBW|zO3SM#jZBtlNx>5rvK>|crosrMOXPR z@|tm_rmh837u~X-yZ~pGfS&wDM4dvH&r?)ry?!&19gPJCoOt!!$ zYiKJx89#z&eXw<}h|}0CrnuDTMN9Go!`EsaggeiWvB^4kNyjW^n3*2^c zK{sC2dqRJb1q4&1uLTXW)N>`0XIW4HPY{%!AzSmf@AS=fzBjzAVMSm$wc7auEG)_R z3z?4;#J_FJYVZMDX996%*IH5yg&>%xuklO`y_(O9YiNv&UU;h-etp~&KeM@v1}16E zjF6}L{WV|OFrVOPyrLekGmhamL6b)ByLj#tBW!(W8x^9KWXE&Vaawx(BOg#um9NuH zj=KANw+~hgy&>akPK6*BvlwM@+mQ+r?XraY8lGZ*4RhD*}7s>+y|!kW}pO3}`H zT))@ONq?4|x#TRM3pRPDWAt}CywiVTx#cL1boa0Mro4qUYS<3 z4^?z-xV8xuQ*3nu|FgMHdDAk!V<(eIHy?rj6$`=oQAH!px=*AUIi6dQdyaQV8a-=nl@e#Y7AxCh z=yh7d(U~zCac1d_&r@h@o1*<#zhdR?yvcl>3k|>lj>sg*g?^+yBiAA87AyCq?=&y! zA23pGp?;;nND0_3(*_0>P;4~|<*cnXd{N#8=NbOQ3X0H4gEsaf`95Is z=oTb%%}&!Tv2%U`e@WAwkqUfb8{=7iSci>R!6H-|1b?1lgHM`6Hz%C${6PX=KSy zdY@yP;{@72>^v%j7u#17?qJI=9R)^Ql}4U^a+@VrUyOdOWm}2&lqL~B6Eso6^+F=o zvwsjq{{Feh*4Z`{Z6Mw#rOl=48OxeA+IiG+O2f5n@4~*f$}wCLD+EF4l1qX^#y3J3 zFGZe{t0|z%SSJ(BW4m|6W4(281UY!V)azBA6rO5^R%AtXdbe2sp1Yf5Ie^5bO8Q?#^5S`ISM zf{=hk__ROb)QKD=iwoqFb(Y@+xHseIOQtVG;73aiWPUoVh8NYPY!5$5fEp67b z14Hfk^VmgXp}$&C@KB9RoiGw_C{fR282WD5&U+rZk}CI!RZ`x+Kx-7*_XvIDk^ z`7BAp$GCGW4gJ^K=&X*tx7fMco@_DM*XrksG+bD$-JZKOy!7y%ScckPL5^V!W9Fau z$<0?ohFj*6`0j_oA8;99-#~#&T^ruHDN@y$ajBEZSm}OLA!~KQZ)9T|Gok7aiHR0m zPvIEw6Q5J98AGQQ%Z<7yU!dYlQDyU}$>M_H8lPRM8 zA0_pG$v!!%v-bw`Y};2s;xpjheiYw_gL(?lIZqRE_}Fb%I!!nGY)(}&xk~J-R^^p` zvHT6 zQ>Mc_nLkxpGBR|xe$fHJ&+KR4P@zfvdKwOx@DBDEn`fgsK)JO#<$XgQPZzu!9}Lmn zaWsmIb7p6&>a*1+WqkFuzGR_gwrg+gBX~qgipTkLzE`?B@Q^-oCL9nNe6}T#r3x(* z*6@EZc27aFc5R}rOS5cy7G~MDZQHhO+qP}nwr$L^ZLIpgUfsL9cgNlxc{U;s@_jQR zGh^hqo|{&t2E+5aEUFu}ZY%D1T9wYAH1rQQPH~mEBgRG_Q#gBsXDwiZt-H8V`og86 z5Gkec{PzOA>0FAC@enm!2Pj`tOtBh|BDKi#tvmp%aes8}Z?jX<#g{t0#(Z^Cm4HU) z?*W8G$XDcrlTJp@6wErvp0|#OcMHHJ@@=;y@UiWjLG&}ViI$HfX>r0Aakx67oBMm1 z5~zsMC8+4;ey`h@_B$1X%ZMXVr`w4jaJ-HC>fqQHI+LK+rE|`sbj}XIQu@SEBN9oj zym+s?A+WK`Bzy(N3w@?WMKNnHP5F^OfRdkI<6ujDDE3Ge%3*Pm(?6$P;ecJ#xa!9Q zAsBlGi+AD@N~p03H<2aJ70#rP_`W)v{H2@OnDrz;#_PNisrdAF`}HhCD;fpD)iURP z7XX36MkLf6(il}Ov1i-EDPT^oNVexDSL-JM24Mw&h4ypbvz{pPIYR(O8djBne^szjjW1rJSsGDRd)&CcTjF=>t=#=Sm6xT96B`N7v6Z!$z6*4UaaWK^jC44j~l((QxWRRpD&OuoO~Jp(J0_Z zAmEy6$zB=$kdJxnesrACQACTIfhS3Cm1|tS2{>=sAs+A4B8!GiDAm08dlV)M{|?V3 z!dCypTpFn=_rJRksi(a_|BG%F{$*h6#(#dHAF&!%P7$mg!6N_%JdS zi@o4OM2vD0JBEFiZOEE9;59JvGRi7x)q3_d#2<={b@Xm?N)R&}jRj27zHFSVpLVI{ zC3Hcui-~s`k`HHT!H{tbUl{4%D|~7E6pj-;r)XXttE^~3ZHl11CEG(6{53)*rs!l` z%f--DBVUT<8d3lf+o`slO-$t1R{i!Q^S0hzHtdM7O6eV`H9jopQetR8>?(#?YRN@3F! zk>%?)r$`ftwhRkUrn}El(%L3TyS=u#k$dwn($Q8_EUrIJa9(64LIOU6F2sy?PZfiP zl|QC-lX`i-g+Al*@R!$grO9=ZLW24Wy2XoonL#O5QZP4Px?`MuJ4B5D%}kX>H2#P?rO5B zLVa?<7qsm|A22$QqAugprRrXt!0yh+l-dO(veMY?R(&}{A)=y(D>Kg+uuvJl@qEx~ zAp5Bw9nBhKa5Mdf-?Vafe9LX1Bf<<-}=p*v2_Q8sZQ#$B6lqRjHl z;@NSQ;jJm`aAa<4Q<=tQt_$0!s0hnn&cJ02c|1PLY>n5E7O)A&C9QxTBr>Dw_#J?S z@J}IS38DBt5eSWpGURhZe_`_`dzX&iRjUlZPOeu@dNt~ifSx-c+z?S)IH@b-F_^wU zv$e-j#-syj*9eRjJL$M7s5px}kr$cu`WY3G9qgSBT-M#j%GaND=t30fdw14FD^sPQ zcGOXVS-?jlP*U*l_in7^kM_CB9 z=0lt6O~CB-@)33CnGxdB&izLhjL6WE91>+;lR1xNcCrylp?R(Wrj@TpQl23EbVr#R z%?mog$}RFfNk(2f6=hyTUr@0)eYieR}qJyJM&j*vS?*sv2+PA7O!4Zn2n zlP+X#+*ZsJAXZql4+;om#R*6?yII6&I1;6OZrWkP((rABO69Zd4x0D{os&&?FHGFN zyQ;dP!I<5LvE-7pW;*xt07k35mwJO%0}&Ts$- z`wXBt5)T7tOky-;3Kq^91*n$l@ZIHwXQ4tb>P!@@+L19ZA29B59ZbO zX_NR^Ps7zFYxEvDXcLjYdA1H^+T-YqxpR_{_i_nV?B4=xB&62l8h|kg-O-mb9@OEf zh88?TYk;}1bC0yjV47r~uXZzy$|6h_k`&uRVma;KU&F<+j}?ztN6DY4eNvVqCL>aC znt@X|zzRgdY*_r+k3fXM@lhB@>f7m=Cwg{b&|o%l0eaVA*ulR8Y3a$r_xt1`$Nh=Y zt2tH|3TK&yQvcDC9Jl!pVbKX`dGQ6;Ed1<=TEftc-A=`Eua;nr3vc?QsZ%&W=TR@h z!8?gnQFZiVPz<7M^DLUofbIzgG3MQ1u002XaP7l(lAJ8u(RtKOQkk5}Imh1%eV{a$Rf6mF}4=YE20;F@JN2qw)>?Df{?-#OuSTU^t;D z+?9zw+;Ed#2J!HOK|BBU6+qbQ<~2<6xzGc_z`e0tmEmCGQsaKY0qRR#*iz(%d~wRu+LcEG$r2{yG6B&*;I%p6Aq;b9TNYpsWRAc473 z^OHfCVK)d`moV2K{-`D|4}kp?{&#L!CjEg2ai+TjSlCZzY#^-1)Ggf-sitcF*Mcg& zSXG#qUfao(VOk6q3}Oge`6Q*j{f-B-I<5Dlrmw*>Xg4MdVnz@0iadUE%ob6Ep!89k z$O$#Zsb{jdE5gXEb=b(&R4Nc8MuWRCk-tv;nYM*@T}2Q6yfLNX6pML~No?pk_38O@PQjJ)%X{@A zqbug z_4Nd!sDnKBXy5Azf7Wca>4ju1faMO_$BPrVhR7kqNNh3a5Zy0}@h^Dy1ii`rnJL|p zGmBCn@(^w*t#yZF>*rhK%<+x`WW_CcQD8#kY*7d3zvw1teW9H@{Z&Xkaq_gn0v5CN z5oU_Gqb?;YtlALp{HFa9R2$Fz#?I~!>9j8DJqemp@!SiBzFxsEW{mX11AxRy3>*-o zc*NtRq+?Fa=k+em!rZ~ifrk(Eaxc{P6jrsiuCt~-huKpZ)}<(#;XvyVlh${K(Hbim z2gmh4kR;1A80xxpb>N7Dxo&h~^L$H!daZ+y47&=<3M|s!uUu+~E32jcN{Su_709;J zpFwD&nhTT{5cI31{?gmXINGH%4lGI`VsD=~kFytmu}TR+zQew#e3BBbWJT^y%!p!K zL{prNQeeD}HT+db?ZHVx9Q^i|{42Fx$+&++w> zg@bonmzMEJ#~2m8b;V!BWfP(9G8=FiN;kd@q8!FAk(X$;tYpoM# zP13sZpFogSYy_H4v$ys{^No(xx;Zf(u4&>V>Y)|JViC|rreH2#MjB!kzC4y&i)Nc&7%u z*X~Uk&iRU26hZm9JZ~%{KB_k5B=1CrQv2h&NDdH`06!NP^w=jL>KM%uuTGl=cHgb> zBa(~h=Lv?K!fxH3LCnfT`tF~UkUluynitcBcSPt|ufeQ^39ilrQz|phLH8$s9bNlJ z;KYrHCS9++oUH3~PPWe&k$p?hYzY_HaSq0SY5J8>;Zw5J^14Vq6S&>=MKqqy5r0cS z?yy!@-n&bq^$Ux&NSAH|bxTvIOze>))bK`=e?|t$okE>q) zT{gDrd#nILGV9eVcKkc8z5kQC^_a#8#f0|3XRq&~6m+)y7;DoNk+gu@>z?L%d6np2JBFm%RRz*Xum9DYC(K|PlGvfHWFux?g8$RET-$7Ma(D%Y(is~rWJ zVfNc|mQhh5SeS)mIn)9-q#p5+YJtdDPP!Sdsl75o631O8qrjVb*N(n)!KzQp+Akt` zK5)uY*>nStye5oFfpUyiH0=e>A^%F+a^jk_Vqdk-!P_OxfmyyByDZyBaQS4F8JYc! zLEzlyq3#ah=mt)!HbJJqSFI$W0qk5U#`*`~$$si3@|&JFMLY6Lo&yQo?2-%#k0wpm z%`z=KPsqHQ&QT0sr-Qpz^aACe9*5%RtTlBDTxO(p0qCuFegqtobId4m z&uoZcTXdLL>dr5ZCO8hAEp46c@!7NR49T&HeC54kBFep-5mBk%(^zNnJ_amX^Zm}_##f5Go+Zr?=HYz8(vFCaYUjy&dr; zhew1dgpiyuZ#xoKXv}`=KW)^=h5@7M*aai?-dGLJ@6~ldyGXyj8mmxIdjxIO?s|bb z0pV6}Ob+}tMiYyvtGS|EDp^1YEM=zn)Ct6*IBo>R0vVO{gxElJI80RC$va_*XF&>V zoCQG}zTxLgDhddf^(OMBQx_1vU$49ghsAmMlKms-q$IMLP-l<&hd6b0tEf>ZtO-S7 zUW8RKemu zTh}ziu3L>nu3S6#pD{q^)a)buBFEdB$|J~cQ!LtHf?>^EKMBGkX=6a|?G;XkQEcpN z&hIBzim`@CvogfOAvo-V1#fRw67~uC;-~;U?fcbJ5Y7>4619!rJ>bq1%D2K=B6w)5 zt1)sj2tZ;+^6EVcLbRMKABSR3dmiiWHzP>3Q)$K>n`vDP<9cnmT$Vy5KzWRxUNK)$gH+=_34IoE z*>4ZsslCR_bpc($)WolSpp5M}WyM~UC)b>e9*K;OO3En&M+C1eX_tkM)>ce53Lct(B}he#u|T(`2EYD~)kHj>s0mC#J)7pcrz zb)f`DfXQ!{JPcKEfU>&csw|0;EYlqUI`k?C; zs3lmR0?hU92s0BNiw+%Guvb!olppU&6T%S6YGy=W;XpIhxj6(mq({f+PLEu!vK}_| z<@3V#%JZ`Jt<&3s{F6KdbMT-YUD_H0JTMQr>j7Y5?Q!~-Ao+jAdH+4bOGnQ{%krO$ z$-g&_=~x;6Q|tL3Rq>BPp<|@|PafzWTk)^;|KfrE9SQwcr}F>hfz*{G`S}HZJdl*w z|LB2O{^{oaZ#@tT^N$G8`@e-}I=UZi@*h=a=6?_k?T_MNX84y2`QJR4epCzNKhf-e zS)L!i!|*Tg^siNVHu`@&5aU1h;m7bW{`Y3|KQH`$Yj*zoUHG5O&QDkP$L##r7g{Ek z|H14~{p)J^91M(p{MCO?9{&W81@vtHP3PeKUz?+h_Y)WX53)nW@MCj+pw_>s9r~Z= z{6EcOIy%<>qIOvREnNJcfzm%q|9-Lmp>|mQb+_dI-RS&F?fjUm|FrUt+WE(O{rhwN zQ9J*jp#T5o@nwsWs^-QrmAEYlye5D>PZXa3hPx~0|>I#>#6(mF#@CWaZv^uC- zjkk42Ul$LhyeATIQ))k{Mu+MjA&{i7(JqS_Mv$Et_`rHtmOJ)8JHg49>TZ)m#t+0 zT zml}uPw>H>D`bP@1&*`%ZF0YZ3osbj6+xOOb50gBo+A4d6+iC#dO=MTt8*!KCAP|MWJP*=+YTx)LX!r2PbF@FoCrX;93Vj zX(`ov1yK90G0aP>!ExLI?#p822~g}D9qRL#lmHBX{AzLf(?144eh+8`f6#O#|dT(2gLC`@u8f0%VQkf6Ppz^_4|Fp3j{#w z3%|D02?YEL&GY`brPPOFv>y~8-S4X_>we1mX~oE!Bl^35VPYcK7@8a@1YgfZ>*$3R_RV~0WQu2$Ib>~SnAS?50ua>qa$?P7iz7xUn z``3=<>L>8pwt0O6V8-X|$Q^U3@6$It>-PRePZUlE4|!d;lHqqv{MY=@UJeW;rOo4a zT)<T zT279`g+`d!7=VysWJ62O8){~#@8aGE@w-i>d>T&!DYjsY2g+wl-T+NRq_*mQN8#QI z-~*1i$u$E*x0YiS-Og@$I+bRXzKN`HQzie#CH6|ZND9#~ox}*&d^AeBqd;$Xki=Hr!Q`85w{_Lr2eMbs+Kd?& zp`SwWIPb=9_e6K+PAk%>n6Cn;)j*vKq9=E+ZO0Ni6g_oOLWPV-cU#DUU7OCYhPA_e z?wcnAVToFKTl%-~(bmI{At^$g+e>5>D2a~QGi{Kv4n{qWh34@yX5(PI6BK5j+biVb z*P%DCY*rcBbs(-ggevHImNV3MgKV!t4ePZYuhpSLa5WJE!Ht}HMg_%Fvcs^gB$d!F zZoFZ~y+agEN2#|4kNUR*h%Dioss-0MZBx@8gn2f~$@~hQb*N9E@ zB-JQkS7(D6={@kF+M9&tE`;;4H{gnlEXz`wu=5A=Hx&@h=$FdQI%#WsMU<`URdE+a zIkWkMoUN1iqcs%L`?I_2cEe9q@}gNo-%82bc&N>&c>;xW<<>zV-dLGX2 z>$d^ZHxvU^Jy!~wycEXIMEPmGpCmnlIM;+!%SxQaFor~licB?hK3o~_c8@ikkkWp? zcwvNXoJ~ zJ0Qy7-WSgWW1I4daT-;2qiF)eCUYz*m>6HJa5M%X6rKv_Z3@A>(?25)xq3HiTEEOp zE%y-Rp9Oq0VX@h-Z)+0-b9)GTA)x3*GS7{n*C8Mk_5;UzeDQxAEfLCsXS{*m6PmgW z*6}+*$`2Gt<=lE#^Z<~%17W3g!$R2eCoq04M;QSVU!Waw((q^`ELx?MK@5TUmN7^v z)p|PDmSilVc|cyiBp<+N;x^@(YvzaVb`R|VNSMmgV~jX0Rso^~0cj^xRWyP6ZvxN| zY9jw4ZU4Q23=)NIndc;0Eu5aON>h(DRX)JEM>XpA_oP(e0h43tvU(>(r%GeWKvSkk zVq-e8$=w)55-TRW0Z4PsxZoOh(^Rut$1!5NB_p}=wK6;n;0U9LohOx-xYh@6PWL48 z-LanHU5oNXyMrTs$H7jFboz%`GAfLx#3iXQ;AK6phPY`g9RNcFda40 z=L@A^;n*yyt^Sv{VNIM&C1&zle0r)g-$N2$;48j_A+(K|>xJGnR3nzaXr9EFFDf;m z%#B=~Y&G*4^v~yFh^1&`ZD1neN)K0vOBDG7S54sd1Imn2Dh*_b8Af81{c(lNia!X# zv=gSq0Lk4z&W`wZAy@-+%B6w$_oE1lAtq~MABjvemT+EHr%Mj!N&m}3hB6Rt$_->x z<1`LsKbeGet(3r9wuhE#h#EOh2yX0Ryj?Is5ky*~CGK57vC#y!Qpr78XTd0E_wS%xuHE6~C!;KXQY zt;051w352 zfx@jP(mx}W&JrPO-_na#Yd2w-ihKi%#4CtsRD4y_iVkXUb>V8fGMO_*>>ED12FQPj zRIqyYTtm_x*(Iw!&?^ucYzPuad6fuNYnfVBy2T$f3v9!P?BvePvoOSLg-!?Zr%vKD zuAj-Qqx}`T_Ia2dIyG>~ zn()pp3fEf|qd$1y9Pt^ERqq)#6765Tx%Kq2Uc4(ojuZ4}og?x`dw;|*2cy(Puz2JB zW$x^_qDW0s+-OOSQ(IFN#$6kTBq0u(gc_~D$E@*m^QutDqV$8NSL)rxyBckf%LT86 zbe11K2;e@6^M!#2P!8z0xk}(#*nJ?@gEG!bY80`T=YOAvhun^d5_>~kq*?Aw1mAJ| z%xtt#Y__1WSV@CZUGQ}}xeH3#9|^c~(r!+(No6dNRxyvnOrG#C&!*7GUMJw3!uOJl zxy;VN5soy(dUfIk`((0v1j^rdE)k%hqg_m)nHXNTd~ZPcTV+a5kXu>CZ;0p-(@xD? z_gX1Nl`>hW>xzbI)qjPJFlLA!!K>K^S|PgZLO!r)H{9eaPPYQ(jx&))wp%Vxms>tX zG)ssI-9}{0mN3Jx6vr>I+6jl{+J1zr%xgk^#xGQ^K(KWwcimH}Bq|`*-JHq_<#xk$ z5L~u@t9=L3-PD)Ew}t@c53~S>FTH=G9^^SACb|d!+6Xi*qiJUPe#g?>px-TFq#`Y|#i#U~}9NCJdJO$kI?3N3-j%{?#DRuYTK} zYfO!dem6+bvP#bfUY-LNTQRXT8j#{bR=A?uL8RpVtEg?Z0D}?@4Y92{gZ|K<<>#Gc z6OTA4N%3R!czg*&3tC9bbB!4q>z3ZyG_AeC=$_m;F<3Y;_w+#stmS(GJ37F={Ln@G>j z*|NZczi=NrZ#*!~syGOXae~Pq6UMd_k(Y7=dRo<_t?>gWZ4QDm^iIy>DJ|>yyrnu7 z6VR7A1vB2YKWtI6W)hZX>*MmRz%n>;zh#SAP|Ndq{i=Q@Q>$rrG}@D}%!c+mCwMZV z*AhETKVvfZP^iZosfeNYQ_auavhLmYzMPKD|HUc8&#P$gc$j&P?cz}nbW%IPH|hs8 zU}jE~U>^V0A_6}n2)l)@yd8PnY-JcyT{X^(uvf=BnvarN&BY`b*NXKFmb7EQvQM_b zeO{(xlmxkRKFx+b*2-F-=b&9N^x|&j{%T8|&Y+exJUKUj{BZ}rE_t`x5Qlme0;;-b zd^cq^{uIl&U(CG;e^Rb%MhG%SV_z}{NeYD;F}d$ zB9rk0R(axIk$We8h3On6vrv4w#lhE34tskL8Yaa*L(bdN@ZxDy)$4)>I-p703(&b& z1Yf-Lo?O52(>RLfOk|6n;hR5EBlqia$Mm2~z_2|%cfn>-xoj|cM9U#yC^mhLjan(; zsYKvKqnn>10}1-Rw7!4-uXL)lw0Gxf=C}5YPh@T{P3+@z+#NTOevq?y_!<xRa@ zb1}1NfU21rRbub?#Cad_P`tgf1o#@`DLN=XPF6vwn|{ zwH%31u6{!RoVYRu_fjQFeDu}w+HyY*iNIrsirFxxH5=~@3m?FPQAhET2VOV*9ieO< z^wtb4l6-$&P6FYWVjyaYS_-{(B*f};8}%j`r{;<2nSgZE zRHOrAAf5^vD}L&9$s_gW7PbtPKQ@3_O64X89NijaT0key^H^%BH&Zf9mNA!9r%>OY z#{u*+J3s6-Xd$DEn1!5vBRlwkRCz$pk)BP%7LEIXHqc2iZi7!sLvMu8ppk_en+rqJegrYxKd_DC0{fSrqx z2)`gfcb`yy3h%dAsW$2Ksq<%$WIs^Z-L50{>e@PF1I=>HUi6-1xAW05WVW+9@N_Y| zoY%j<>8OAEEl;ohHr_gLcR$^~(rhxH$>jN?W(~U;ak4U{hlNYL0ftF^grLG1Q$vDO zN-9F@hMyL9`FHsUL6DE$@_AIutqMI$u4I(CU~m)s;&*r*s9rrMLW%d=NqMOJ$%5&h zK?1Wx`nraRyfky-SFid*+ZiH}k(bIvgaiFh#JD?;`4B#A@xKmm3d`5;*o=*duu;mP{PByk^@xG(|hzi-84GA@m8RirJ7o=-S+j$Y7Kx03M_y%f%LQ@S4c zd7C;?c*5U`tzxh@Re&vut&aOmf_Pp{&*ptl46-r*P=Wgd=cY0{Si`c!mHP6i)lO8I z>;_b9Z75H9*rFx+(a_b7 zln+n!xd_P@d;#W)7Fwo7$w0b=A$v{MZ%+)ie{qaCUrnmQz0-O?Voj*vktSJB>v;+# zB$4=3AON~ZU}1)}RqVPT(2GB!5`a;eqr)Kgv+S zJY05b+3COWb8SU=X4y=IYWW4#KU}yRYvKRGs-8H1h=o%)3%!P zm&tbwW_0h~@&kU8R_8A|?R;mR7Ce%E%K>#p0!-@%uK+s~V0WytWmE*F6oOW7k8G zH^62{&WQu|Rjz#LB&wl z7siMLyP1S9jA_quPORHrrg|!isAC8Koc5*0x-Z5y7e2RugXRF@tB&UNtsc)gM`1mV ze$g}KIwOBvCdpl@{g?DBhZ~AsAQOxS(e-nfyeM2yJX(y0$_{YC$Mue8al_SKwUvDM zF4~P}Yvmm{;evC*&~HAMTSv39C*SG)*PXfbva}F3_1z&Nqm*rPO^wFU0g%g9gK>C7 zp3#(6lvWM&e^Q@!n@Q~H6t7clA6e}Zbes{V{u@Esjdu$Vfr&{gM+RmQecosdA{Iui z%K{r`Ne#84D&^pd?zJ4v5znLEydikx&lQjT-FmRMqzG47(|Q1W4sh?xMS=Wp1||wQ z?+hhKj);0evEwt#M- zG#f(ki!*R?ag@^9zoV|4{0YRpi2)}NJ+3(6fSTW1I@*+C1Z)w{B1msJyQ{sX2(f>| zRl-VmNeQMQs!EsI{OlK}E`-bFC|FgSd!Xgp+S^SYv>H{4)Tr;esdAVFGingKV$afn zG-WV?a={QN(9plG0hBZR*<(WWoaNPa+IS*w+xH{$DvcFeO>*uKi5!>hmf+?EW_+R% z9ff;BLBFn6y?jzq|6@dbp(9>vaQv`jYSxIHRg)Q>&^DY#SmWtndn{bQthyh>*)ua) za6p7}%N{li8_Kk=ad5CveqrlJb#0G`W6`L#7{jE!nn022EMApPDlL}loolMv%zjov z8Q(B+^%d;W=PE8F8>a|kSIL$RG!k#UWoj;BFyYQcZP8Ql)+=JYP03;oShI1YlO!=m zliC$1c%Ix{OuRV|BTK_y-hj><7$J8m^h^I4x4(uqq~lGmQgumIDqD$DPe`u`-YPiU zFHf?g0L_hpm=cQz&)hFeqH?852rrIUE>+c*+m}%y4wNGATUtcbePVvN0A)Unab+R! zXU|BYBc3X7LDgxE{m+zsUPe(z(QN!@hRh0Fn{!#h(1~+#E~JT=;SXD24F?ZAMr32lvl;*58vYoT8ny`gKhjC7v;2V%iU)ep@S;fDl5B ziG56RU@Je{8%KW@O&-#)L&zraz-n4G5h6@_BRWK6cC$txC`4WCLU5wnw}Ci9Y#%-g z95sfI*mCbKdU(@#l@J~%P%xX`vA8=->=6(1#zsO{2+`@W~1ZHlOw z`V}g;z9fLtr+{#&&mTO7FG-VE2F(m0QL}k9vOFRH6X@f{j=mI@ThyF2$c*uo)u~(E z_HVj0&d(spI&pf&6AF_9KKs#xsMA#ZURB)&k{R)QFfk!j4pi|_c zC~Bus&08C*ha0Fl_9bHVes5_H!Sywwh zRLTwop{G_@TCim!lQfsszQ6yUkl|)kL&lcG+Y#DQVGH7 zvEkWym*m`}ywm+t94`DWmVsamS#%E8i8i83$cCvRY$BSI?gFa^qD^pdK)erHu4sAJx+2*I8x%f8M>)l?2BVGk)#C2+Qs0z`c zu@e>>%OO5-3l;}DU>Qv)B=ul!h=R_dGki zlp$9~H}t@;3>BBkBR6Xb(#js7!HL@U{c<)vArBo1b$d4JNT_4`s9B6)l_}9zmjz=^ z`hOG3PS^rRcs88@*D>(F1QCUNCQ*YR3#5j&Vks@y`;6mHOum4whgQUSegJT4D>2$V z9+AvOmCL){)D?ut4{v6HQQ-yi6XFX_z6`!ppPHf_VH?eaq zEqH`fN6?!3av8s56qJp{AU`|5xR<_mHh&O1eSs%Hx?fHD>QEOB~ikv4e$pds}aM1&e=Bw-7HpgQt0 zI^7(cl)Gm=@&LD_SwBibb!J%n%>EZeM@XE$qJHDzrFD@mlsB^Zr*Br5C1I96Q^RFXe4tW56IYk?Q4dkRbJcKxsKyQ$ibj@a17K6=GG=&_o5DR2c) z49c+9Ng*xGg-p2@Z&_SxqaELP-EO&1-mip7s~85*-iziU*SmT^^}E#OcMZzy=^jmE z1!~)SmeUR{m9QT?(rd4`OiY^|1Twi~5<(CAh}<@?%SE+x=gXe2mAEv>JZI*T+9=`L z^E2ZFC+$C|N~sa`ZR8Qy$hm^$VHlE2^%rSYj9w8w2oW`{rq(WtG6lXB6s5O5IgOob#PY^N_lNXg!6p`HmI<|~(u)J8Zl3Bi2 zuoslH^z}xu#wGl*0XqZyrF+~`w;?P1T*_8;`W))g#5%O{J4#cG4W}2V!8FG{-r&V- zloBlRFt%6&wWnV;+hqmyrQfso@9Osf&Yr+EBv0NRb$ z5?3*dxwG@tt9n&xyrj+%km{e@mG{W8{Gm-v0D(xB*6+u-1N`#6PWd*Q>yEAK>>7Bc z5jYiQMD6O$`$Q<_cL_+t{7{^CxjfuBWjEWH8Dxflti4%&D3dQT^Ac}p1uld<^ogk` zI#UB(-&>3}CZ3Wl+MU0WHyoH5N!OvJgPV(u2Kth-Li4|~?b&?Z zvytwZK$poVYQsPL8;?0Aa>XVj@qfnP5^oJ+iWf+qVClEN5?CJJ-JOSI>35LyZ91|B z_$nuN!Gw^$M_J(Av1QlDR3z6eu55p)oFp>pM98GOVa;8G?5NS@k3lW)JwQ~In$@uy z!~D_C^!C7y))Lpc%^syLKmKEsaY4`vG1CXce7=u)J=>b?Mhe|tqzlB4iAWoq5J&P2M7*g{rESyBHAVhf1Et;rt7$Y5T@%xQUneh{LDpK@yheSp@hiqCBREgM2+=RsTL-BWm@!i0n2fba8&yE1r;&y z)nRKQ4XzmrWhhryIe!VwuUWF947MX-JLg_};)9A>s zn9rhO7IhHYRgAZ#qc!#mEqtva2#KkpQ5EX}1F9r@D(-lOfFL_=5Q`LBSISKvW#3ey z)tP@;678~obX<1&KE%c?89H5}X3Etnjz0DGH0EGU(%aQm?MjJR0+sW8-lZ!#2)j~@BZ%+F7F*sY<(_1pMlvEk4So*VlDmfu@33q@@61959-U5oEg#4+ge;fOO}*mz z#n1$1?fuzeGN|w^dOBft1zkCFd!}0C#Iop#KW7Jq3|N=T%Sl@!H?sC^YAJ&LKAF2y zgfg2~4)?Ov&=Q3&Qk3XL2f*23Gwb^jsgtF$<1VD3n3|Oc4uQu7?DJ7$6{vVr4i)V~ zumRDgwY?v(txX;X8&_wn0tGT7XQ4OIT{8+vna_|@Yycws z;(7-?uRgf1N=@)9vuV&zJ>7&lpyUj|>k*2-#gYf&2|r;j3Gjy}B;^F}-Dvjy&(GoXTDUB*H^ z@ZV>Iw#4Davee&ol)eGh^N+`zQ*8=0lEZb`imy&%xO)>|{CIFrpluR=5))hD!!*WH z-H)Y?8U%18|4vn(-@hn;)Dbsz(5RBsm(Y1#aPo61+gps^I@dQDPCk|tiX4JMSDZ(G z8J~6oZkm1Mfkl#Q$1>w~Fc)A+M&No(03{AzNd9WvEU>`uDcjOrLk5!@Y{1iCgaP5q)>tG z(LDHW45P>_nVj9@qFzkzen@e@C+k75eZOVBRKLr`t!jwGg;Xc|ntQ65Br#ibpJjb_2}YRV@wf8 zjYBlCXL=(2AaJi_?$ukY$p1D@l@WFV*Ug%oyK%0-r9Mq!VDK7z&?v9N30i3{o5^YY znS9WWaM^FPjj#Ry7-Xdfx@G}a+a)bgRGQW6A)yVaX09pQ)HuMJV&I4@UXUGAv0;3_ zCsC81SP?u9Oku9z-kf4^@EMN>jt?Dy=WNO7#3Q?=6>)?nW*vmiKhk3MnqiuQnsqtx zd|H)OML8l@pamaMa)nsyTC2%*$+_VNew{7e;U@?U- z74AmR<_~kmjTBBZPTt%Xoj31=4be@843>@pb!bT+Hg4baJXC_i zBm)-ftyfrRlhd|Xxjg?#dJQL*@w0E%>DU^8f?6d`a6^WH9_ojooRY*@rZFVWub zylHAARLK_}!~X^5FUo}&r2{E+L*2&b%QO?$Q%Y(yGbZ>rEVwH{O$E`~uIc z9YfW!YsZkOCQ~r-*Qq+eC8-zP&=c2@n3SzIqMQ;$)nd@BA~vYnRNXL#sq_|aYITM1 zMa#lJ^Qh>r1~PW7L)*t-I~{yyVozLeTicYD$$d0ZA9Fuhg`YF1PR_Hft|>vf@it{p z8VUt({cb^T%a8+Ke==YqeXT|j2^7bn)c(z5ziTg>QJLCyUHOJ%RNqCNBj(-i*c!YZ z+7O;|1!W(ph3&zv9qK3I{zeMnM8Jxp7=#3iILXEGX6 z+vG8CuNRXsk{udaS2J#Vjxs3=%;Gw_Ik4r5L$o~x6Ed7n4(}fL$_cTR@e6TT-proS z9ewRy=T!;%yl#LFq_yGrI>m!9vDu#OE%{{jB3>me&my97AvkzUh=;{JB0CFNr5Ag| z&2mexq)hVdU?|se#FcZ6re+8{|Fff0(VvV*x6{5O#VaVFgeQ)DGk%sf2kSHhNq5;V zW#VgV@y6dX)zh z&7C*rozqRQA%x5E*hA|3#wE0U#!ywgQ?ccNZ`OL)#kH(jeU6p{OgO(ix=}!${K@#E zyPaaqM>-fK%WJT<73iCL1=UK4TlF(?eqrvqwNf4946%m^MT{K>M9>xF<6-_E_TB<0 zu5DY?#@!{j1xawHaS!h9?ruSXOMu{n0KpxC2MF#Kf`{9ogOE_i!+*i*>LE%htJVq1x*{ISys`} z@Vn|(Dkh4FJVh(f@1$nrsgt11ue>_UWr9ExkB#SIcjfcX)KuYiLA7U`W|}?)cGGV5 z(J1z3KKbIo~6?!s@8x{>iC|NZy=qQhJ8#;$lO-0ykOqOlrvSFY<~^X#xN zDqKN5yk6R$%XTS*zGqwwdVb5L=4D=NiGSJD8l*0t-Bz+t*ExZ#ZdcQ-E80~7ONx$S z%R$Nq2rXTx3R`q5Q6`PYFKXLp(Y-Kgjq1lla!0qsZY!PN5?L}0;%}-TxkgYn=a**m z$o+OEl<%@)q0ehz0LrI8JtedbHM5LCsQ2t=P*&#?? zseZ8vsG+}B>6{iE*dLdnov?1XJBhUA)*R5^uDe2)^=cJX%v^RsuWboXF z&_THntg1UuZm2(RyZ@^QX^*==ov_*t;G)<`}1B~K^UmZ zX~!hl)L-+w-&As9KHu`2;bvJ@HS`=3kj;@V1M5Qk@ir$MjPv_R*Eh-I=@oM~ff85= z)bdsA;Y8-|rIwsXFRQ83J}~w*!#d#v$Y-k!T$8h$nJ;sFYM^$;(23QWnPYFda7ML> z;A}+Z0u%h3h4M zb)8hT7_}{>h2j=3Bjxi6w#c!Qt0KYnU{EZO#75vW$5d{e;MJ4G6LPSxW@d0Fb zY$NkqWUFjrZfI*{{Lm{0@JD}H^7zM}XbCF=!#^6fJnj8oc!;NtG7mh& zL-&)1V?R7v={p$<8$TZLvE9obq>d}7c2uiPJ28szzDFnFh)@8*X>e45QnZH|`sgmS zo|>lEso&VeLNh%IAok4!IPqa*toxX7>!@`RAmlt+(xwlHJ zTuCpD0jE2NDRRgw=RAx zb!R@D?Sm=L>>4nh&)fZ&-`uhO4Amh^>dUzV8@pC!*|$Ini~{oqCCC?khx;M|?5{j- z7L|3#yyG{eibF@8qU7~V>uj%)E6peuV2KJtNaCQkZ$P~B?4{wywmQv}_E-v>Y4{7z*PWsfusEyu&2zX3FC><>K5BPgRn%>Elf!^-#oAN}NK zSRS_ji=Sa)0Q^kbKf2yLFg%YC%e<9F!B&3hndKM)yAT@FSG*^^*C$@KYrQj$gZFdH z>vPRx&s34Yse^anrz_Mwz`^45peE$F&rlCQKtsFC%qNK%zU5V@R}mAjfy3nHLbOOM zK%)eMq*|E-14!R9YWN@~kqU2k-FfIGg-3i8hAR5VAeiSz;{$edt52cf561+8%odAu z{8p_cq!nbQ^M$JqSD$}0KX#h|3C^*#~z)=%&613$@zPQzm(m_||3HLra4UJ;;3A-VByHF1FO zzy^J31tX%Crf}ZY8zHY3OsD6SINJ%0<5Ymz8wm;y1z|`t7hH4W?v%>IgB_@~=~2MP z501m_3LB(8^ny2dR};-Ii`}EqJuQ5W$WfcA8#BA&B2^FxVIjUZWKxom6TB>R37ddG z5E<%hxy+Rtlst1kO_w)~rNU5t5+!978XHXM<#KMr`PWmdXpkpsX$dMfMW&?Zahw5%0QrpM{+(>@Wkes&cb7 zTw~NJ3=zuO=h=8YnbIzDs#4_0h06A*b);k~^NZ&{1nY4*3YDgoDbO5E+O)>>3VsxC zUu$ef%n@{?ggBt&b6HzpGaczpOr)=Shzujo+mgAx{vuepd2q0oCIK_=g{@h6XwYFB z-{Nz;I-fr+6KDrdMZ4x)NET?=OeZ;g&eU8klUt$iE?sYO*xJ$Jt_^qHWD`9QLtt|! z0q#Bqojo>s{cC?pG18@wycDeZXdeS0%|R*?-t1n7v&Tdp-7 z6>RMSb-Cp?CR+Qg16@@WL#t;rE^}99GZDJQG`w18r8R`dGYezU`R@te5Q$N7znfRM z9oe2JTB286OfD{5)mhib_EdQ_H4}x}0jbf_dJ8?Cd&aHBoW9zHg@iD#^xgZ@N6-E- z2fDWMDfpz}H_gvMRXqngGIT$)`U^6qwh__edoy3rH;%1a4t(T)E$8sWe^N+~2SUnHA)EHkNLtW|Y!+ z)CkdPCebD1#6@TzDD5V23`t&*)4I=3i}LN1l486Sr3cjeJ5uCZ^T}4TtobUU;=;L2LJAx zbh8*PhNVwAWJR{r`s+<8Va zLR2Y&B?(owLrP&CZor!?C;jeTf8Jx9F}u-+1{qnaSfb5mCJVO$G|17#0e%0&=6-PD zc|F5qmGpD|@~s!~5$~)Lcq`wi-ft9Wr}SUt(6Q2w(qZju1B?<&Yt9BjUW9I<`{HyX zwb`HNz0nF{9{TK-aXGV-u#GL=Uy-1@{-HRbxN-H6nsSsw@5T|JAOC*!nTFl2aw&Jv zeOxYC&&103EH%-QSi8hhZ(CqGQ^z6b^WmfsoFNg$@(%5;87ibfWNXp*Z zF{g&iMKE6aqI#5T@)ke&HWMOEINnb)^h6YTSCTD`UI$;ptcfVc{#DS%-gn(Y`uG@9Pv0x zmZVt406KJwjE^rp$T(fehRf|i-+0=eYOL05>uAG`jat4>sUt_u4T|bUt#0VGk^Qh8 z)da0IX1h<@loPF69W-9VY1gDbL&GZoW{w<%8LQ)&`%K>yzk7og;|m2c;${QpsiTDq zr}Es+_T8Q5iH3D`e>-t*~CX56C^eL}z%zObSQhS2kZ-g-&Q`7cMtzq)rav9L1!Rf;{010TnW z9PGcb`cGrQ$0#F!jp4VAe^L2=E5sh_n_nZ&$1a^ehp7J!)mK&!719uVLiPUu!v9u> zvH!Dk=U>D2e^-YY7(40zv;KM<#r{cwJN$w3|C{=YgY6&n*VEp=uI^7B{bAhxG*Mw-AeeSoBvl-7faY&?7s8&BaYm7k?F9?gl69?fRoiWqwW|LgD++Q>E#jWoZ!}I#z zq?@_-F82v@K}GX-Ksp)Uu0zMw^c^T^$a49^_Q$joD?3ujyC>5jv2r~ zj91F8ChfZ5#8P6O-SFE}{q=2mPP#4;M?mFdg5%6{E<)<|wTCsVFFND!ok;oc;`^{y zO!|Tui6Vu)uiz2((kj8*Yg|$_iX~V*EbiMW%`TUi-)p~Pm!1_u)BwBi8C1^s*yCU6 z1!A3Ohw?A8>{q4rxBBbp3;p#W{*@xXed)i|U;jvse^Gw1vi{*OV0;h_0N5G-UHQfO zP(b}zem!_9elNcs+yp<1uZP0_zwsA5c02v6{$hMckKenFvi~gY|5ktf{=ebReBt<8 zN72Xn>!Eu5t=f95zc~I@qdnGN98Wdce^7tL8*3@KS9fiGz{u7|*~I0{5z_l6AYlO| zf{kqwoIy?oDZVMfA0-m?elH4R^Sulxs<2?~M(rTSI>&kE@mf<|TK##_t+wUu_5J+fc7D-ZGl!`5~HDkO|)4LfxPTPiXcO~Ar}X~#D~@UA%m_pUD(UEsabg~6 zQ(!^tOGY&_0?19)cInc*2eaRUz_rKYd7gvH!O8MX2{qPRJL5$+l=` z5Pe2_kd9HzC20rJ zcW}1?XdnWs&0=W8pN?LL!+=7J-e)Ey52TT~#f;pC27vlOc}KtGA3C5%gNDJq6&D1= z%3c7LQ$RO18@Fnw!F6mCzR>! ztptEx(Y?X;a?I6Zp#O+Cyo1prLeW8zLsvAR%j#VO5kDQySp3rH(}RF7F|1|oJ;JK! z_?5g6_A%qDmv6xvK5$=FsMMzK8kWgAy$+GR@@VzTV8-wyQ<|Y4X}t(yb6<;7yX9z1 zF_KY7)vTb|9yo0Xa>bW zyfv&UetAxJr!ebCzM}NXyl+I-_C7ghTkB?_hW|aqDYqz|`_}0&>1j{4P{|VEw;Mr= z^B6^N9w~}C0(+xbB}-7&dU%{M+vn6lBQgFyqd)yLHxJMCCmcYwSsOM(Mx4- zY>Dqol)epIsA+1vdz&|3k@+qfx!(B&X4I}pa&|F?xNmyr7FF9TJO-jS#iQlx`gF>U zF+zw!auZ)dK{nx))EpR6Ex`+A0wJ3OgW8#fkx%ym)LRff5c zHg98lvnaGkd-|PC*;>Sg@V=S*s`!SKEs~uY8u(_Z&n@XfN~>L2xxv z$JUyxum+f3#ed*Dg6L~+r!2n_-usj=Gd!-3U@80Bt~1U5*=rL<*+7X;G&YwX)u9ES z$Gj+9rFTfiI!dyg?GX#W$~t*@6Gl%L2pu6MYKnb=tJ|i8&Q@~le9%-i{+971X+IXK zaMR(7j&`Hu_FYFbS&lE}=EnV!;^F1&yUWXGHyltRkrP${ ztOwHud87ywGFh2c8bvt6^^*tMITkF?=!WHfoeoTC({)_BLLU!omK~~{Fs<3}pm(p2 z7iA!uTE7f_(-u9)y_V!Pz!UP>x7|TcRNLc|d}4KN?_vEb$9(3cg46D%L3h+9og?bb z06MDdn>EzvRTG!C=9*;&^;CwSX%1KCLh9biZ$qcDnX6TuoR_;2ADFOJ;VDYYxLyrG z`zEFuBh^*NejICrDWCe@6~s^t2kr**k+EeRts!CE)qmQu9ei@UO3ac#=!_)XV7O;c z3kx;wP6@7J3!A_E#~3MpQk{t3ny_uQTIzR8DcE5oL@BDSpxH(RmFHP;)0Si4Gdlj_ z?5)S~${_t6swUefS6!tx;T_pZXNW^&b)=-opR}@$DtSI$7ORMj`C$`rRD}j24D+$b zB&^0auW#Q(+b@J6AZs>v>jz9`DdeL|5O$eoAe~>@P?uIktn^gz*D#|)M3pHLRohn= zw|;53tzv0>t3{JEa2`H+IWJ>TWwUae|JH7VZB5snq(}`Szlin03ble}1eCBHrPQJg&Jnnq*n z78Eu)s7VSNXFCG7L8@wJqSolE;@jlVyUJ^(YTnDR`t{9oXB!VX)+NI0h0hM<@M~_3 z*9Yi!Xx_se{vCwd((xtk@vQBiCA;dOL%dRmn;8L_XE=(oIkej=u$+hsI9xK#@0MQL6n` zuFA8sPY*qk8cacEw2-Ai3o;^M-?blY2P}(W@{?4IHa$%_vuw$xPDZ2k3%Mlz@Va)Y z=GnV!Ks7&!07bWb>bM=|*O9Zg{LY-X;GE|6jfIPEUpUtV#IGk_cp|*ZnSc4b^Bix@ zI%lL>^pt7`l5(yr4ZTqmK_Yheuu+mg9=b%G!YaAJS>fYN6E4ru+GGlRc8?5f2~7UW ze$A4j9paHY_OX>fUmJpfy$P<-5~Bq+ETrAc3<3epDU!3VS1;Zp^@2?ljWHSsPw?!L7)K$yXdRSaXgM8Q`T> zd)cSR$7;^oIHXEAcPq#_GF-EppVc`i@iA}IHRUn30}=Gv_>^4{p>}e}BTIuLqik!% zn)K@k-tK-*ygRO#&;tHRuFin0}h>s+@cA?Gba1f0!g9M#` z6g%{it2u`(F2VW{N0b^K4e6lMDXuQ=+gke{Mp0UBb%)=o)p6r%icj*PP-?!5loh2p zAyMF@+nQvx1L}pBPuKKD^6_`BX1G^*bCj*X!6h`_*Hhdz^bQ$~s5o{SiAaUzt1r37 zU!rYqe_0%^0;mqNqZGxt91hmy)RL1g*Wxp=EV%_Cs8c^T>I1X$ps%}41csp zhOOYSFFV=uo^7_+>niD_mOG=t^#h-uJC_?M8^>lNI*Pd|S9D8yLWO=MbMXu0{gw<< zslh_UQOUCMY!h~!nmiQ^0JkLi)c_Oc%4*s|8P_y z;ij0x3=!FzPSjb4T00pN8r)aQo%K8}THG9zEa2@)a*>scoB3TW?&30z(egN2X}aFl zP&(2Q6O&85Zrxs7xI#l#MWQ<6!m)3-hDx+UZBw2ziX_q}Lg*3TwO-1zkSD*o^SI8- zmQlqOnsGApOEaRGyc0>>j}n0v|Bh8_)8|9Kizswbzp66z91`xV*D6aCJQTN-=^*xN z4Sb5~AmV$}VZAw=U_?+D7e%i{R7>A>RJ_k7XdJBXgsw=TcA!QC@7m! z@ftXz0Sbg~@Yih`Y$@3dO%hK=j|7*e^nH7GmyvFPifmp zDAiM@Cs)dA^6$2NE4dY|bl)|-YbJ-)2DeWGqz=tA+7|3K@xYQxDPQE$dEGZg_C5TI;e?vHy_XF?F$Sb{DwG$A z>*w)rx#!0)oymMXLXtx|A~At$d)4k*O^z-;se*(csZ;~7dx;KtsW~!Ww`6j3FELAQ z1%&dbXoso%_-YgaAm7i7Dp+ukD1=9~s^_K9Baz{x$&oifTP(tN{XqRJs^SK#vCj>8 zUU40EeH6W&n-a%jD;>_YljK)2#m1YL>XYRs44xy?OAo7Xh!(QfGivGD#2*wI6wov) z6Tp@&3yB{UIB%YGsgsxQqh(Ipr#~NW(!HYp~NW?RIkN+S`oT zi%sSdMRQCoUq;Ng(C-UniyfKQzxBEAKKH$AZ{nqKnnXaXdS4gW9SYe;+p!KC>6gFG z`|b0*sqvgj`xx_Zzo$OY2P$q#_~+>!hp+0UH%3#*zOu$v+lsOX%&ty;cI@}tv%+q4 z0aT@ijAV=kXzD=4?1VgM%!m)l#J5tnKbIQ1=ZSikBO{(&4CZw(z;%>}>yRT5aNL}z z;{n`YvQSJZX%zG{e+(^g8p-rh-LqaQ;|Eb}BVE0Kly3^`XCu}%xZPAEA} z&6S8WVcoegEOK0Z|EPCYyNZ-Y_%=cNd(p@h=QKB030mk&-e3%K>9jD%Qpyz=1pEoi zORWl)rZQ^{T52t7W};DJ+@wZL$k+Cv%IR?}fuEE=v$-G2$v?x7cyltLg~`HDd;CH! zA=4vprKG{E)!<~79He@@U731;SzWWFEbk?6i)P)H<{ALs|$k*o5ib72-gWIovk$ z8>i~lj4jK>ty5h}*(L7RX)0Cb-laU-GfJk!``zJ#9qwkLx_qLjd>#N#R(y7^efZ6n zrb7Y4ddaSP#*E_p5nDHMAZ@qlg6j2h=cj#2xve$=o-L~Gm$4rbba+x9n%-|m7%FS= zq#r2s68rN<$sCZMC?<4WFVBW7g+%6CFotl~zET)VobA&hoAUcMuvG>5PN7pB!FklYPH3GEi;|zewykTt&OPPY0q{B16_ZbPhqSR1 z{ODIp@vRg_Du~UH06Uw)`4do0YZE zk$F0cmZ(xA)ZKwftB`i8<>6b0^#V8BOEwttCY&W_$@8edY+BAxzS1!0TB@T^GiCqT zu2dvvbDwOsjJPftw-b{`iK=l?S?I|*?1G)z*WjSjck3oN@3^4C%}N@%t&$X`;3XV; zJ3!erx-F**v?3b`H({YsC9~h!f5%V7AZNqc%kG#iU0HBNOP^M%;2;QX3ZtSg(W@+& zj!m&V)_IMTDj%;|l|&#=s+`6{-#eQr_klK-2ac?Y!5M#&u_pB(G0yhd%5KW4E<%UB z?{%RV$3lNiouWlJwAGu@aP$OdDlC1ICH>sm@5L$LcR`^Wd@H{9x(7i*_o5!31zLzp z%s!xZj7D!XgN#l<6#lDQ;!pQ}A8&rMKCJ8cYcA#K2JmB;k%8&AwQf&$fgi&x>&b@etHv@Kj&lE{xm25H9zvWtm)s)yeLSiDN2g{_mX6er$s>jzn8%MH&ZVhe=Z>U z52jvNng22M^0fEkH9ub7U$@f#(EI|YUYs0^^{szPs9&om|2FmV^o9QV5dWvCmw#r* zznFXZU*nGEc$(Jx+uFCM(64L#D`EbatNR&vntS;anQM+4o_KzB6I9Sw9x1KrU;cQnu)4Rl8X-O)gIG|(LlbVmc-(Li@J&>anQ zM+4o_KzB6I9Sw9x1KrU;cQnu)4Rl8X-O)gIG|(LlbVmc-(Li@J&>anQM+4o_KzB6I z9Sw9x1KrU;cQnu)4Rl8X-O)gIG|(LlbVvWc?2hL6Ws>@bJDTH{V2SZ}cl6H{{Eut@ z8UN;v{<)6-G5))*NBFNN{jVij|2*9%lH*Zk^#}<4 z@3I&J7=EgVf3s-)4E?&+UnB>B;ctfG2a*H8@B|qBqJthRS^$PW@SvYNJ&_!L`rrP& zD|;7cF$P+Uffi$+#TaNY23m}P7Gt2r7-%v6UuQA?IRtzh82-&-{Bs=m82;U2{Btb$ z82y{Y81T?U~Gri;+K@!mvDe zX8$Y*m;jHp#l!D^76iX4q`%|;|GFUf=gI!df`IW4uPy^C;QxqMm+iNvCbY~vhQ~p0N|mG&u`rJV@1IDPp>Y3@tlK(-smb_3aNAlnUOyMb&s zknIMt-9WY*$aVwSZXnwYWV`<#X1jkb+kXNxm>3zD|7>CRbMgLD{BLac(+d8l@ZZ_) zr*-^~@!vrX=0_ypG5B{X;@`2|;-asV#l;^$4uyv!JrUBsF%%C-!9RN<{#&%08Sop& z@z9FzH;{v!@exjDfMaH7B!2vPJkv+GgPDo#>5+k$<)K;Rub;`yK69$sU6JTicZk(l*?Gx@d0Z|?^8>-pmm zAGcv)X8rS#>4CZb6@NV6$G=$_0Z-@rcuh~+|FPe%t7Ch*!pB!0w|qR}rOJOzzTeX6DZOO$t&NH4|B-h8lE`6wByt|Ob_Pa{ ze?jCh5Yr1d8X7;e`~GfM*D;t~%5vnONc z610G;<=?<@-sJAE=hHgj6P` z2Kmbsme{}$T<+HLEi*sn3W9?J zcmg8{h%X2;wIY@e?6(j#SIxp#-ZNjTRM=AQ0WEW5t)q}D5OSXZ z;2e{;wx6DD%==OL^c87Y-;Yx-8(0|{QyG}*gM)p(ao1HDc&|c8%xp}Jr6}oBTNci| zq3ax#GIePkeUnYwQNvx#U17iJ;K->{pnrXLL7&> z8_0>;M>RE{g`Q}jBh!7b5)cr}C3uEv7r~3dlw^Dmljvrtdy!-ilVQGK_!gQoXnXLFo%h6qAQc_+ z!J&{XG?&nzpnVG7q@N{wCdS4tY{9Xpebldz4ZsHxUGd?UIp|1)@V4XhQu>ng6?c-Rovs-+Pu1 z&|0%6`wU2SOp5M!2W7XBX#@?Tir3!G(BHsv&CXmvqA>f0``}g}9I71d3?XI7nKx`< zQn}Z>iE{5(Aj|#G{jK`LQfTiZz{>s9{g8Y4tdqT0?VTWXrS8?c&s3v=^25t^=P8Kc z)e^k>cbfw-Jj5B3?!o=26OuG<-$4O-W^QB!4_@`$AOoP;n`>jIiH=&D5xmJZ-zuUQ|>qZ(dzmHUIX(qG3ScV$6 zV{itWyd4)S^H;p-y_yH_gvwn2abSX+yiMSBK7eXvqrT=dY)2aFYyEmkgnk^~7vVj= zasyxMmwf+b;tsp@%bg)hh0Fc&!exB>9Hfzn!LcscWJ{x+({1xaz4gH{Zk}v;3 zi1*1em}dvb;z$S2O{0oOz0*(+q~WUSZnN6)7sv({t}pqRdy$@XPOhanB0~7FUS^>{ zt4U!=z8Fdyu=jc8Vt+qEN{o`+e!3sVPwYxFa|hbmH*?Q_usnE^#~p>4JaMk$U^80n)2z&G6(rX)$YaAU~ zh$&SZxKwu}qx04mFRjBJ0eSc+63lp6tKyum_{!;_WR7CZJ4TW9#>M7OH)==EjRNf) z%q2}G%mUtyDU?MQWae_jdFvx$+_eR_`}n-*&QiF z@~e7U>RTjQSAz_&=IbvnhniZiw;FQrWM9Nf?$ca?_y?oE549F=KN0?J(D?bdlHkKN z6f8z3%T!GX%QK5w3Wbs%w0rVLj&g!L2)0W!G38&mO9>0UtnD*vdP(6XZ|0d-W?z`( zhRJdc(qqqU^HwHs!7o?YByF;T20G-W@Z`@Jp_AlsZ^=fP+h?{JV9DuwV-}4sD0^Nm z0^I1rw{#qr}4&O7;2E~#KkA{OL_XECGIlw_Ul%Mn6(GEjRX^Iowh z&7HI1C|Oo`#77H@WSSn|IONax^?rz3F1hhfms*&jRnpivJ_!%)!Xn9#b-1$`?!;US ziqDP0*)E4Yz(bW_(O8>xHs;JtfHhnutxgCy=|9#L(ZU?6tlKLd{f=RSMu0{=z%y@L z@yzI(;XRwkNo7lvNtBKUH-><)o2t1f=(~bRn4DIxsB15cLkUI;ff$uV&*sfFp)ZF* zx^@@XMXQ}t!_!4ch6=yRMArU?vi9Y#dS zwiQpq==vBvTpY-_#tYQGuQ{gA*CZZ}}Ql9fqYj=Ee8-&E*BRDH3t)lolQ zl5H`*uii_tGnk{*{)(1!DAdSU4TK0X{N6T)9}eXhZ-v=kS6UY|tFTQ9db2_f#zx3j zVzSj%sl~nL=clf3GcK92uWs&rYg{@Q(Y&=gRPuZXZ}H#-)&c3bS%=>l=oRt|QtWCa zqcS)B>qe>pk#e0+#I6V~I}IPD~X(FGQBXR&Uq8)aVfIa;H=sbny>4JrslSuE=nhE{lurOzf z4O28!cb8hNO4XEJO}sscuUDf@Rwa86^223-+TQB$rNO3Frv~Q6o5eo96lRDJ6nk>c zmOPC&nNtM8Q)8^LUiK-_R!AP2vu0EXU1Z;9URb$s(KTzF*cg0qL8DU2$_tLpnXt%*iH)q7c!6!4x##@kLeei?lCmUi*^!c3y)gtp=;HLGzP`?I=8hsA^>Qq4n)WD>9 zpL|}#e9padp*`5X@G201d?x{&{D!*-RY)dBVl(@7`PLQ*#^x3q@tQJ?%9T8tJd2x& zp8js-$XlF-KJnr(v{jSw7q}wiz0qZ+(ZXxIMsGB8dx-D~!&@Rz_GooYDQ*&)h~7;*^&-L8o~_E69&cRQm|zuhKJ1nYy##pM zNS)NigBhMwD5_FO>d+KVTOtxU$HW!#DAoiq3Jy@}`vpq6=nCk^-^Naujp-=dc0~x( za2Q=wX&@SnNgi*Pr)2tmy!A8R%>IF8S&qF*C^{ZZu6LLX$kKAKEF1 z6Sw=WC6+c|CD+QpVI=9jTF^N~v$->Guk56l$CNz?&PBI%Z8?Z0?7r4~*RI!Y*_N5P zxA7aa=ls3V%$8*DyxNEk5NvGj8c16pj5l+g_kB^}a^^M^+!hn@@K?uX?af=?Z1@}> zB19KO^R66gb`l7Qe9eaJsTrCwKqi`-I~d`j_@fY3xbhn(xlAQGX_H83Q zpX^+p^Aujs99Wl>2|Lp9dX$E^=_k0fIrh?JqxWyw!xEJ2h=KuX4K<4s)@ZgWmmzYe zX{Wy1GaExwZW{e@Oq0vah2k+V-r1}~5cv|0LPMI*_mD@T-dGaeu@GF(&5DynGTlqc zEn)~yTy9|Tl1vM2+C;n+omrH0_%Ty8anRj4S|qKs9FgzP_)+h5lxV1=O%U7&E6slP zebc*PQzD)zJi_PN$BNx}zIjUC+$7nr8$u>($HK%>(K~{5py&cet0oMVgbG+9uMsd6 zTR7J>>lL6y@RPntcvKCJp| z{qfS3@h*zhq5%+bj2NnsiZe0XV=s;WV!beYsFo_n%GgUUSYAZxkhgO}Cn}k@7{W#e zPSGLMBxH52iMN}kf8Q0CB_OiKmuIxeJu(1?guHj7DQSH!zIa&uhrdl3>JenO{qS~R z|K8;HjzJ>~q-4iEUVx!vZcudeQ~)4GS+JE7_E4yT`sILFD8G}y^GXU7%aDYoRRiLz zDIrn!UVCrI?p?hAG;*7-CMK!K{Yjt$c-Qk41@ZHhN@Qe#9S1>=f~m3MMcE_& zg%_AiX*ES-N%YQ9F(73b8#r}@$zGy3U&>8aToBIYeV5#qFc=PrywSS^W5)$;jZue% zv@j2&^iio;^$A;cd$^OiRbx0ZZQzfgS|+QZzXy<=Mon46EPgxLUi2PnJ0*}O*K#g6 z^)&JnraPoz|6ZVF6!JMAim<<+=tZ1E!LXhR8O@b0VmLAPF-L7f97G2-0|J@9--bG@ zg(>ZOVOKW3TM_iD18tcTf{jn6)9%PCL>(Gg)ai;0@3u==J3n8#tGnS#kJHJ6B~n!y z*lLd+iSQT45mL>RLL{t7)?RZqW8l+!-dtd05t>}%+C=w8f*WDAMGtSPs&dg)oL^Ya zUf<-$nmseAFIWDwf2|_Hdez(|z!amJsyV`e{zhSQV`+x6LG!mk`viZ_-6R^t{56gL)r{i#G2319s1;Qcfo z)GJ@WZSsRbNI?UGV!dTz#(|9^gh3>_)3qa#crW*=FD7Q5`&ydhqLc%`VcK)!=CCsR(E76S`j*D zcpgqVdA(hRNAFj20~_BAfK8Fmh-yx*hXKY=2J@Aw;2ATP3^Z|KspksIJ^?_H6@;>6 zcu(Hr=9HCP0jT9|Zv*lvY>fmjU*`|zwpS;^i=qh>Ru^^1VTf)_8q^7Lndr3WLEwpr z&hVBByaWLJTjUxfTS)`u^;VvfuwYqO7DnL+)ISeoXwHE&ntiCPDg=wdnRUS zcP*nj3D7Z{v?x(^^g{F)2w(9)B^--AY^TRd#q4%=M$@-^O#;);wW~H+CU}76RemkmYKO>E50I_L=jubD^vbZyJ z#)ZV9IeT#W78m&u-j(rSzgpN3^o}=2{J@b^NGE$8<@1e$LFdJ_%T^BUJhHsf6CuFd zxz#fyI;mBtF6Kqj-t5myftd`FK=3YG$|NDaj;!%oIS^(_(JfME1eNCM83V&sQ&n$upk z2kYmAv}bAMSp__SD|zDBUN)$sb3L_pJ%B;8;Jykf%fZffu{-t`B6>bK#^v9L15{>8 zu3y6mEVbjRz8SfS!LZoFUM}3*-V`fjp8Xchx$Y-e4z7>X1kX(zHBB6}1=Eq~I9|AD zbyR+^2@3Ab8HHgZ?zT45ppbVTjA{Dy971<2PTrl+2 zr-#uhwKzGB$H4J4GR;8K}BbgI|rqdijggaI_K zY=4ySNWwsHUR{+(*?QqHhL%X^e5I6P+Bm8i)@`kR8tN@wi{l=wi!i$mq50{7m=YlVQglSg-~5|brD zv4VY~&Q7@yiRbjKXOo*J%ioh!%py3z7ImS6_MRYd;ghgJV~cB@^1@Lp`xMLT3=Nrr zgV|P^gdkX5lr~#$@qAej{Ufq<4oNRQmvsDE)$Fy`f|$&_Ia!s_u(|C8nsK~S3Lc5U zkz!`8qBgVk-mG3H7v_sn&;_zER+57w1XIci!7rta)1^R6F2*H%bcDj#bUK=5d ztp^icLcXuF9Ca34<;j)ZH^LM(li8zbvCitEmON!$w|ka$7qb|VAx5JEEn0+1Nh+@N=e|D)`lV?_DZe!=%{+qP}nwr$(yZriqPyL-27+qT_(_wUSm?mhR; zJDHi(KTn>lRI*kjRjIX-&-b-7!n4M^EqrJHwhhP0XHA}LXq=@BTuyw4sL|c7O~V>b zf~7f0(^mr<7Dq1bK};XIbdx8mss5^dWhfmJRWxdQ;~hCI_mdw($9_}!{UMLP#n18C zJIar|)6rRCqn5$8PgeJl62rveGK&oG%3EpXhRrStdv8?v=%66w33lTkA;)hL8Yesx z7|$iEZt1yVE^5_~*ML3n4ots$6wY=X8%NL2|F|4oH>4KjPKV<^G@x8DT5|wD?9{%o@E9Nhe z&|(jabC~A={PM#m&$I1+F!%h^fD%rO`oZc~-PB~xNn&D+^jur7pj*pSoQ_<#T_H6r z*Wa?Oh^fzeh-4tan}Dz+pd=jx?}oF6dCx7aA^Q*CCT_l~m`y4qd}m<&JmqtOZ_$DL zpd|&7QF<;7F!O`Z!!*<-(h(F2_jpU!RS_h})sS3!%~P$cyfe_TZT(?;-OG-*i43Sk zsBEfI%~C~0;n1S)Lf{AYjXMagn(9sZ*e60O6tCY>N=kwP-{<`E!v^Mi*is>8W;5o` zXu}~Cw+VCm(6AbqhYF8L#)=sI8a+j460UXF@FrII@lZVi-2>=;SgFT82{*FlJ(d-0 zeREA=dHZ5~Ff$_Z=_?1ahLV&P^BGq9xEAf_^j-(Z&>`TM)(16xxL~;^tkU5w9R?Tn zhz>!XFE8kdszm+oYpU!z-~}W8K1m(3Hpxv~Z%Fez=r$PqWCBN~~c=dc_f=`*TjV%aD5b3vb^(Mrq zR%nKLqnaQE@aK&4H~(0C3(Ajq-W7ld`OQxI>FQ?QX=QVRXlW8Xj0|zDt=8AYHPM8f zkp@-knZNDl)ML5wlE5^qN;^8v-6%=N#xyQY>NuCpad~(8W5}K6JOCSQg=$~(?x)gxBn2?zMJc&~O(391_VER4+C>t>jJ51{>d-)8 zH5J;4yW3oI8Y0Vdv8L54?|hMgXMD{MXre4xOc!3vH$1+@uR*sMbR?X<_Hwz+&Np{= z)wDHidf*s>0+E$r7(#2P#w;d@);s0H8B!DgzP=$@QNulx>gL}m9|OTx#YpUK$Y4?i zw2fuS2fQ#H8|Crk0AFljsnd#+x2pMku{Hzz=t?|8b)jvl3qPCmH{rXXi`mb(?1-rq zT!T_QA3BKl;KKrEG0xt!d`6sViI zUdgYd`hV(Dme493FFXL$?6`!lJK(_f+pQPLGV3M<4n2!<`x7=7BkEPQ2tx!(^lM>( z98bcj&3;*%`&|QebZopX{;~l-hZ|XE2%)RptiAUzurt3rP3?GVBY-tP4rlDq(9UD9 zZSAx}R=c2eGC*MDf;8_n!ws7%Ohderm0$bZ|N9Qp&(Z1$cd44h3_IikT2}Fq71ks~m z0=E|=brI~cbb5NokH^~JRr}LvKKQWaVXKu3pez`d8vNkiA7eORuD%0c!*L^R7a*}e zSIu1ZnWC3gOUf;KLiF;+io|zfGwn&(eoBd2;6EHI8tn7uog|kg6mtdRxKYoNS^4fH zZ;Sw^Svd}N*U1&&+87SuZT_o(URVz_8w5Jw7>oRKGEDEe71ph1t^03W; zwkNZbO{rsKjmp^Z3fw6E_MoKhtdJJc;#OBios}TzmCQ!O*B^O8Z)RYcXgH*o&oNhW zKAtY6EDJUw%S-(a$Z<@}Gw~a>p}H3K^(>$1{kkdWAzy~B0)kWO7N%xaXKpuqOT=DI z{BDcQ8ZQKpZx{AF|G=fi?s8Wu@2cfaGhQE6byvYXQHfc0dRBUm@>1bjnS;nH=`=T2 ziZm7F_h7&!x<6ecq1Oajc?&}R0l`{{eGapQ)qebH@2S1Bjuk8y6!hMivtD)5(^!J7mIKAj@UFR->Fxw^Ne$|Q^7qu`-Z1u9E6;xbO<`0 zmS?VL&>KL199xYjwQgYL)Ap{Chb9=(N`cw1C9mMipr2cGL=cW~DS6V3__AyeO8C|o z{M>cA=Z!F?JCc20cE!UCb7XVMO3T&T6VkXjipk6_i(-!r`%HR|@6EFKb~+?c`HH zF!l$Nh8qec`xvwg7c~*D(La>qy3ml#Q$|?Z3N1FtjotG^J_g#T_=iW{k`L+!YUO<| zDA(Jdf7@c5ZU1h>rkNrZLhfn zWpU??NeaM<5Z)G_fscNEoem#AAhe!sFALRu4)dgC011jpCnwksg;RX?Aox_OS1+TN z46}Y<*!BVj^}IkDrY&YA2?ckUQ=N!D_~aA^tG=%T`~ud4WK3WB$Uwa`lN`YWF1 zQd2=?^oB$WBjau^iS&Bg5$5U!vad;#7UXO-GTL4kVpRR~=6~INtp<_C8KYMVjd(o7swigwA~hZaYB{ zS1?gSVJYNrh#rusidneO{4k6b{d7>ir$sQLCAv~sPYaRrv5v9VWPA%*rMxyifKaLA z>fEql*F>Ym&H9vL#c2TAumhM=FoPp*9#VhIWKk>c4 zAkVWHuu*V9uPuh+;oKY<9h>!NTn?I}xaay51|$**Pz~{==Jh%$VU3?z5xsDaAwaDa zL>1k&2l{`u<*80Z>@Arq@Mpi=UD6CMrQTu8wEMpp3@fw3ce`VzTrGYpQqo=EJk;1Qm z!aIKENOYqN{Kr_w#lVF_`az+ALy!0UV<2maCuT^-T-Wfcsp-k;M_)v|e2yEnEd#>K zQE+V|KczjXW{C5aA>NC;hM8^2%0#90J=;>U zbK6X}1{JfxG1AEi-A%u~^GAKV(}XC?Q2nMxQx`~hY%*`IP1Bq)^|^g*j=8P3X8hKg z(sxTA*(Em$>!s@rsC#0;2OHi>-BQQoa(i+;@`8yk@-V{3ov048z*&^O-oD*8ea!FzBh8l~v z#aTIawPCR@2&x5LQ|rL(9z`vO`WM%IV`tIP4j|XHO=&Ho1feyP#uqH?UD9}x7CJJO zB<7D&;HA&JrtF9Xk#SMM+S#P>k5Dj5@(vcB!v*@{V#*)VFoepK-}Vnx6KSyw_6AB3 zDo>%oHM4U`j6i$E{&z0zF=2{syA2 zCbozXWu{W>+vz^+tP0A?6J3baB?^*WE@Qx%<}!-n5qteLt<&L0v;JZm=bY>22VL;X z_HKHRFMB3W+?C$&+4S|$(lc$DC(o(#Bxah8s%cU&z~)gO!^Zx|m!WX(m5_@kuit4r zfgtuM-H7VgU4%jobsOp#rLxv+Lt#5ED_qIE!cOj(zjBhP3#;ztTf|AQ=@n`bI4>C6 zlI);T3>IYuv8@caMiGx=F75v|p;P~k7US{b z^ly!^5S0c1nWP?y{_&p+L2#z3P*uxVx9$$ixK`=1%6fa?!tE)Oya&!QiE)TdNZL;? zMA3CpNmI~t2KiZb^}H$x@qQ$N=5oJHgW2b=CfNbByHe;i`AR`4nW$kDr+m7kh}R*M`~*~_WhEc zbmk9~tJbq5q>b>pzyQ_LS_yVSxl?yEq=;rYR+s^$rPe#V!0Wmu2O_LP&F9oLkRX0O zTt`~RJ9@$4P{rIc_bonOzzeM42}y1*)2V&3YY1`WEs|g9n6Oq+^}cSpz~6`VwaI*T zF7P$Gu$5DE{}gRQ+=}B>T&`o&2tvmIqtu#!s-Q-VR@vI1tSDgD@A3Ra{aLQh!KgLC z9Gd#hkH|yd6M$vSlOR6dQ_Z#eP;%|WqT~PydAs0kuKlUP)bAT^{Odr1wD(0@G%77# zYAV3^NzCfzAS8%>V*MnXzDn_w`QT}?!sucP`c`dph5XwQ7pHSo*|+5DNli!e8$ zp(9#uotq04bEGkd5LN<|^y72ExAukClk`bm_$TjqI?QBlB5%&mDyP*(8Vaz zjdsG5bs^|{%wWlF;{LbLMgB=BlD z&i>~BLiX|v9yuvT8zFZA1j<>v5yC&y(!Q5>XeLI_s*EvObbb7w&FRQ|9BkHRo}8G9 zY@z;APi0J-p2P;km{B49CH_-yPSF2}h&<~=(qGtp>9ap+e<1M2r#ik{+^32$`Hf{` z_?@^HlC*xrI0iRbXg`PC1nl++-qbZYytL!B?`ByM&QHt(5#avlYy`tM?ZtGwszVfD zNe`RkHKl?aAC}6OWlu-K`x9N_&~h?8Sq)_5AWD4*Uh;kEogt% zFjYYoU!V4{Ncq7CbZ&V27~QsKm(P|G*Vvjd`7z;6f}H3^ix+j8XayX#i@(%p!<`;^ zU?l~Uc5$Wlc00uiMW0cOzL;bRFgv@lXGS`eJxR*TSyK}5YqDE7tkQw&8I*cf^M-Yr z;*s=Jv5&8SWv;q7I6M1>N?NB_SI*0K$fQ*1=W6cL_3$w-dSJ57?)y__L3iK=JZcb?RY!$zEf4gxuW+gz&7m2$taHUJOX-5{P!3tiq9Wz7>&USx?GE%u5#T#^MQ|ut!i2>|q)z zH-ITpTodHWp}BUys3Whv;Wa@z?VnF_E#&FL=&2`UShKS(*6>0VKK6KS3PdUSzKm6& zdxx*uuuI%;CU(C!{3_p4S<=BnMOfwCJlBDqJ@)Mf$WYiM?1T})JqYY7wgptg%0d<#0dm&?%UbYCovc-?!Sv2GY;MLH1wrfKv3A^59?oSL^N90o7$v7EZ{O_V| zr=pOWWFFkqzjm!1$=PLndF6hH&$YB?t2@OR;1$l36#sWTh!DV|t z7k9<8QzUmF6}E)*AOiI*p!mI&x;ISwClR+d4{P>OrdF$BSK!7I`Yc+`mAoEoqrA<{ z@djx@s}E~bB5`>8pp&ha#NYXRk@(^j*Wkl8r?)nFB900{ z4TbsZz?#q=UG&5_u%k2JgkLV$`>ypOF-;vYjcb@u@G(}MEyAaq1bj!^B80B{Y0Iz( z*X;qraiQxrCi@{x#)C}^Bq|y3e(sC#Fr+6>7I;-BNSMcW_Jb+5e%qan7{6e>C+xj& z3G5Jm9s=X&Gnx7wo8`GKWmBXetd?cg_%o}&4zzzQ>!h3{aTx8fB z3U7A*$%01cBiQHEQ3ncYmvFx=!@p493@2^thQ|g(VKHzid8qQfWqX8+|oT1 zJ{E9fCpgEI<(X(7uF2j(#HJ0q;SH%2^I}rNGQ)TV*nc!d82aTkaOl(2F0Hi7R7&ku z?-Dybh*DD28~{{G#{soFZCU2OxQpre$=Ji(gPfdXy8uxi7U%!?ysU_~zBa=gs49mO z!Qx9d-oOK`05}ePbV$RVgm^?T7>Clbk!1>XBDDDBZsrAL7KR|%AXY@cP`UrYH6m)G zX*A=TQw@xglrRW70)S|2!?Rj?mr*OS1%<~AWp4c8Kov(W7_V-y6+NeiDjOKa>j_&9 zWM|SaZu#0?jqSPqFp@`?6{l-8#nbB1CJS?=5UTJhFC}ABJ{-)_E+Zr-Fs;H$7&nfC zK!w)8;C;kKB88gU%ut{w850Y{Kfz8@T$e9=K~cV0Rm0|Zb9vTI;0V@*t*`dkDDu9B zVNP}u;z=|}e*xGImEYQf(9_x@k?WOPZ(Ke<4!2MDp(1UlL^u|0%hHvb1HN}b#y^Iw z5RB=M!{&NT0gt82gjfaMkL=00QIe%dU_z8@yj%N>u^ExN2Y-79rz)4M`LzGWF!eaU zJs9I%7odxR>Yev=rKP}&8eu*HSmA`6MI1?VEgnDQ324@>LlP6-a!pPDY6C;>tau)wy~4;%xu{s>Ch_*-))fh+hsYM1Iof1 zoRd>kW1{oPEUp&yzM@LnK_a`P95?E&_Tq1gC z@eCtPgs}e|t>-){$=d}H+X`EIHU0vgwm|2F(r{IEHUpCAp`e?t=k3J$<+U+#4KKc# zL{fwe{0Mr{eT7T?jb>%ZyWoz=NCuMTmc5=&zYRVK^*5?B%@_JEAMxJjDsEYPzeQ&z z5TK2^o`9Ddu5-=sjk*5kSK@KSdAEr{k>>NIQd37vnn+MwHiBy<Ey{CQ*V+Le^Di;qfuO(L|*;EQdJNvZAoV#=8=PGXqdg<4-88)nPJpGaSi zLN&=Db|{y3s$&V07ka|*cQjio3D!)xiKD)fZJfKC`5FbkCA+T9g#gGVQlcjfD9tM= z2J+1*HyGOo$gF2uM7-=vr^j2I)ALqER)~yaT&yxuO-(PG{vu7$puxC$8EYJ=y5KmL zTi$B(31|je(hWVIj7uSPGxHVk3}l@n?{3+^+1{ULa)0q$9rqJ(&Ag`YA^x40gG6Z* zYz*o?5|ymqhnRQ!)m=0yhA{6w>J~<8_tTPX>UM1f+lYj64);wb!Q&om`K8nCE;Mmq ziE7GW`+yV&{Vehy7o$VTD7LKL9aa)>e4WhE zdfH^nFbv37T>a)XsEVD(hV59C3_dA|w=`YuCbc@XyH~kYsm;CSux{h#Zj7u^EPEZ} zZab#b^wuya@+yHOO4VCmUI=Ohakh?h74Vg;!p^hixQj#g5ikavAxhYr>FKAhqC}Un z6vl3Oo47-pNvA6nFM$|PybV6R{>peoewo5TPCuLuq6l7eChte6PnR5wDGYi!%gY_B zOSCzG=izbn+XRM>sHs; zh-(VnX3&FS65*tSnZRv#O(innbF^uC0OlFd?@QMjZ$Hpp8E`Z2f{s_T_&WIT&h0o2 zzEFUAqsQ3ncXXD?l(1!IquN!?yb2y(hwN2vcXPs~l6YbDq|W_uLWF$5cw-(Taf`-J z7v&{8TjqCm!Fc{8SpyL(ww$)VdkerY^}=lQWBEE4MPqTiKrEwg453;wd(^3pH?G3o zs-!42}63qA>&ddC5wqjt(!$gBr)7~G%jTzY=&u!A1KxggP#U5~}Oh_t2UwOr97O~9Z$#luE5gn=DD(ufk&P9eMQzbu3ebbk!0qYD_ zxhs=VbK1j}^VV(YO0wNieNCmCmV;4neyc~B;!SJ1F&cPm5l42Xu2!I}Q{TX^!rB)0NnFCvN;$oL=1q|P}n*0icj11l}oo91#KsX`n zNA4bomIN=2PdSJ~EdO23z}F71gMxQ_c_bcndQ~*E8J{tuwTP$LYdLX_8_5S*t#H>E zy7dc?^PCS6aq}{7*hRc&2M)KE_F`&z-uUXsm>-L(hgU{9zICWhYt%%2Yd zet-znP;SAYkE`{dh-Y?U>UpNTMy~#f;zJA%*|)W}-3SXH2(zKly>Y6b6z=B7!2Olh zcLa^80J{01)C8=86d;Q>Rxt0RQf^BZtnL0=<+o^_zPIfJ63kDgqU>&59vOAI8(NY^ zs)=bUN3bFy#QW$B-`V=Xy|b^LSLC>bT*~!g#v((<xuFaptlBn`Z=q~b!+9->q#P?_&7h)~*Bh#%`4uQ9;_AhD~p}b2^eTPSw$fl?KQD<*9Ffo{A!)jZ2+J10wqUDYC;j zXwn#G4kJzWU#MYxY7h3v6=~F0H(plF>Ypsh{ZS}iW1>MC%owEvGf6=8 zUOK5W=~J6DRbbe+?f(4WK7Rt>g#1?M1Z5K%FE@-u7RiXuNey5RFLtfwTgWB$IwmVR z37i78pnLbN_3s~lbOwK4TuvM%${GviZ>g!FStNg8M#PBG+~dZeg@5>Hj+qy!o70XN zQ2#Jx6&r}Ghlpw(@Kn&M8wHjjd=iy%P0x`Ky82C0 z9Kxw6vI-i1c4vcT=i%^>6+#V6a)|=;mdouDix@Vr}>}UpS5Fdg8NfKj>x| z*W5nsYLn)rZvunS$U|ESYuMER1lKk=y>~}U@2PC+oA9TVkhDqVGB1(S$M)z-BK0?6 zEkW}yTg$b^%pE$AREyC8C&X(h(1A^4`0rEdzoXAEz)%3#%%v!ZNeDP zk&^0Nxzblr4vZ(qNC^8xJ8Mwuy|As(yQP46R*0D`B$96W4WK5c*35mXJ~ZjwX|-Q{ ztn*Yn4OE^6g8)XI*g6k*-Dli+69!q(L|P{(zYgpiOz{J9Lb z_!*dWi=tl`5PoCwGiWdYPK<4JSyANCQ-J89~3h$ z<}?4$t%6}biwmW7x0HeR_cYwNuHpfrUp%u>XUXbDaF@PH^6JuQOpJuwRR^zaw^*V!I5E0&3c>>*LqZl9wo6_xuld)zP=%Xhi~o zroaGKnZi9gagmhVtm6UPp0t*_Hpz-KxmUvFa9Iwi4(($K+ws14fhB>MU# zM+6ok0nO}s}S8p7Q4HDKSNazBV$t-WzZ-b>sv6oT`fo-zcqVQ(-wI}4L)$df>yi+6lh_B-rrw+F$Hz2(YikAK2T1PB8RAbX|nx(DdOpLGHKqSUt}Xmysa zHvsR1&tE!nBk|y2CkgXnOSkZm`5=+hFpQqDD&z3RHi=y!k!VRKOo;pDiFDm}L{N4F zetzr23Yd$glUP2?H;DYkcT-&ydGeL`BOYDYeu3nf@Ezd;yYT1pG0{eanaH&s);^Jm zQ&CWv<#n(_C$LaRYV^681v-*+T*0717hXC8v_3Tj=($wWCCAm}b~MI)Gs-#c^q2tu#r!ng2*>&8!wLP(oJzZ@2KIT_78xB&Af*(I9 z)v{x652qWGK%h8^3xcdvWgOiU>=!w`e;oU^&5kE&`Jll8XaVm*3nB3dn5Fv(ILKJ) z%ZT~d>d7;q073!0-~ZuaoSYp^3~c@bj`@c-`G=!mVCA4^`H%j;qkb6~+5WTr@8nzt z78VZn{}}%7klFtYl=%m0`8Rd(|1B963zzJ7DfWLX4WS7G=Ep(|EGTP*RG*c|G!Wa$iJnM zvx$xPU(Mz}?Gwho)A&#Oa+PHT+=IWm%tH*v@uW+icxlZTtpNmE z=xDz|&80TBwjclnii`=ZEdUxA87om?5)<$xWbi;yUky9~Kx!U78h`&3=AS8u-F>9} zJ>>npep6uaKAi5X{AJb}08@&T9f?l>2(U1wML=kvvfny3_^@G^sQO;NNjCu@9iH|9 z#8)?f_u;P-VJYqZW-prR&n7pi_h6LEKt6sOKTGaBue0nt+Ix+Cy z4>t|HjX#Eiu%Fj^cB0le+70DA_IgCcY&(+W!L-JQR2}7kl%4Vvfcgqo!}RS z2axnG1PGA#h=&LaVDe4iD+?h14CnCcx1(Pe7C_RE5Zy2SV7?%EwRa(Km!p4*x4*^G zKgCBVF#P$sA9#MvT`2r{-rv^Brw}(l-ZGw```ot>I31@S_@2lM96{IV7eNr(m!CNN z-q0@IzKF5rpDTpYBRw2ZYsA}|y$`a0TVoKH&`${g^_GB6jvu650rti_$0q+zEsP)n zbmZp~0^A^|*IuUnP@+`~z{XJZ_V4nb(RE$`WNCvBA{qMg zyujEJU>j$yqbu%{CGx38Oz#UO>moBRB53E*PS*Dle;SXsTPQ;bItijnn?unMiE}7d z0BCC7)yOkTzWP4T0fWvU`VNzrdgSJZdl=W-83){xoG8Kd2&uk4V_$_BA#KcY54<&a zfq5q1)1vv|4jBMzj!m|9D)Djs>?Lz#F-wI^AzL40sU8`JO;0;+?mqcrbK~)eC-C`Sorjutg{`=5%mJcWVl@={c+mz zuq?4^UQ1mA*<=q~EV^)iG=Zo~dAslQmE*W$UcR9~&YtKZNZrD=Ptz@8?jF!Toxhsc zo0)SDAWA452oO&5yg8}HxaU%{wGopCPRKXapz=s{z5!*&s$$ePW3cSDw&@1y;mPeA zKFZBzb?RxgPspZRbj`w99UH`8YWjHvuD$?10|EXZuK)5hMO{MFndD28-`&g-W?K?8 zq~&vYu4J~=eG>E8YHDSK*DJ7q%1|guAR<$-4U~D{RU9eh39vD*-Iy?!C%SB`B@n@0 zxUa{J?-`_rTz*ilA)dKx2Q6{$*^f1HDqkbDtARcRVO}3qedeo}y2%1`>*rC+d1kj-mqemJxkTkvAyul%gm^OLuAnj2>DuomTcw&`q389% zWo@w%pW^GU^D^ZpKe&_)N6|R8lycpft6!Q2TtqW7Dn@2{>kS;?NjzgztyMe4{%AG4 zRKv9?Q+c}?-=9P}08JTlH&<(q#RdL=Y+*|6jAweO}8kDJ-nwgAT3OVPAN zmC?uggohj4g{$WjMyJNf_0lssr2%V9AlLm5&y{ zZpt1VUmR$DI$(+)t)2W=Nd?S70#iirQ_U<-BR%JJFA|JoSCz$L|HH@h)!38@FW2ru zd|-~5Pnv2npezIuM<#F$>OM5r+lyNzW)m1`3i#D)lQH=nZ{Vv-IPM-eS+mluo-tUq z2wfD#*rI-r2ljLaz$iu^X z3+5qb(tcHInZx87D=-^@&SN8S=0!%8xJc|{tLnc-MrJTE7yB_{bp45}G^nn;5w{*~ z)FO$L?NBHtb zu`j?1GRFlpQRLLNohDo-c;?!@yrneqrV~8Yc}ylL^W}IH4S3oFZr9VeC;GauEwO`* z#FF_4NS9(8OoAS+xm=lx5|u~PfA%Vb;skW~!hD(>`sbO;#tQ9_=z^-0%h9ZQ7abbq z*VD5)JWvlz)6;<-tsOte%^HZt-Yt_I70sV9L5h`x2rhao3pX?2{^`b+HDf%O@HRd!+=)Y7}JQp0AI@rWtrn}LmRVv$&{~M*=lUvQIFOcBO_Upye-@PrKT7!ly09hp_ins zLV`jixxdeOFUI!;i(gAEgI!XY!@ur^24D{ZTA444v_muh%X`M!fVR z4CDTk2a)$nv3F_q9+!lN&A+J0SU z_*gW(aVxf@q_y-^r32Q_P3cVhqHMQG{ko^S8Ir@n`uFo17A02N7)0dB#%N|1ak|J6 z6POpUPMe0XtHNw@rkT;Smh%bIngkbm5>@WM=UzNoi}=c^Es?ZSSFx05kJiEN-J^Yd zOWLOBX~3CVk%JgLc6KH$hSG{6)V%D@Ev)v#6B%}0-gum{XAT&@jx*$wk3&;!CesI}D$0f+a(5RgA>TX_jlqmCzc+jB8`UgD0 zQ5GgVwi^*lh?`|Au%~#7@KermTuBaZN`k|Jv8%E3l(PbAN;V5xf9MlJjAd}k`o2oN z@a0Ry28YW{OlO@MJou=`hiQVF+1H-1=Su|jsNMKPg5>@a0mU0PD8cSJu<`(|mWOXq znwi6MmZtd%shxGC=()gWr%?i~tTinFK$H;U$!f*vxfe65+}LCzW-^ND5R0JR|5lQ= zGT|9bV9py>PnknIqax1`Wt=X!=1vIHkEZx$pjz;*DG@VdVir(#xtClf#A>p7#1_^@W?9sgA8CACt%cIQ^LRkKZ?*q| z0|#}b&Ek!8=LqADff|ps)UG+KQk`}wBe)?xOraDz=ssAYE@~E~g?iPW$oZbY=`|da zeCP|WIL=*j+KJk*SgdUA8rZ(V01WW>)oFGX{IixGuW53%ylhr>l0KZIj!f;gogq9J zLZ}LS52sEc1&=GC_UOL!eBx!bBCWG)F;{Cm+HW%r-%0It;+rvQQP!ds#~r+W{Kk;+ z=^nF^yIig)6N6>fTTSL&$0W3?FMO}~V@}Q!iK1)>^opyX8_?WTFYGd(`-bocD7Ogr zg5lD{0x4wiEedH}mPlXG-q8c%>fpIzhcdSxMCOWQ3kuz${_|LVnxT)Mj5m5q*%svl zi6_=+VHRv497e0%Ab_n_w<6xgcQN~cVt^N+dNEYM!pRqKF>5y$q`LNXtM$FIofv-S{BiM;g}1IS2EOCwpWA2siT=;3BBiSTJs(I>3;)Gi!pIgt@Jxn0L|Xs!ZHhI?#83<~ShMaosxEAnXUjSj23OVW48SP z(rwlnuW#szOyHM@Q8=c_>TmDrRU3Q0WvD_f65FpFxTf{4!>YQqBG^b66si%Pxwy|9 zT)0^t)Ll_fd-(vg=)h7`9t~Gk zGRav^BkU`lnk@x=ZRXLRggOfXMfxtD)F(&3(lvfStgaD)_=9j;6*4)5blf4V?Ml{p zv*)J(X`w-O=y&9VRGjj>H>W6>)R&Q>oJr>3aONA^`Rog`+0pmpP+84TpUYyinTat@ zu`M_lkt#;(Bb*EqW}DR$?BgW=Q@e^vcVi;<($8a{)UCwZre^c2l8Z1|zVQJ=Zed6Z zs8_fPIt@KUgvM`vFGzk#a<4lEW# zIOhRalJ}0_w?Bqm*x%JL)mcZ3v-g}A-h&JCHI}>&z~y*-Ru}M%_$xA-1EU1tnL7 zJuU`nai49UEzJfj7Oqbp8Y`pTih+hdk{^ZRj#Mc-_+TY=lRv9P7q)Cj%Xqy7@FAk! zyQpB6u^STTB97#uJBN*E6R8x>kgoYf;T_?Wt2u$0;dVydw8d&RZslsWmu{kbKy3>J zSDE$pYP;O)bwwM#JyQ-|=bks09V4VTOGg@CF$z$;Em`+Exj1_5TYoXN5O}*Tzrudu z?XWxckVxaQLk9t&K5Lxx6cY<2*EM+DcQcb;*rAd!*uOdl=6dbiE)VBJN@bqj-^J!% zX7E;gy4ZaBgAE~O_LAC76A|Tw|8}kYlrdYEWKZ>_+XR1TM}w4cWM(*O>r-a2Wkh^9 z2QcE<8#+fbJp;6Ad!sdCSY1&iH1sCj#%bJA_54GwihEet)2EVJH=EMoU>xM3?VmFack`wS|Yi zc{~tm>Sko~SXd>UT)SPJg5b-u;4pi!KJ_6AS|D-Z8qZ=TJlV^A=i4~PslCf)PsEA2(Wp48<0U+ zVrxm-ia2K9P&j66P^TZ_S$rK!dYIknRw~JYk}wtU*Ke|=T;&!8Az{kTHc~*z3f~ws zeIMY2WCxs-HYXex>fC4;Sr$oCVlTh;Ec1HiIyw$;8u_*75&6IyQiyoFf_P*GYrG)p za`U@1pALySu`Y+|GVJy=QE8B}HDw4cFB}w6QTwh=e6^NmoCjH*^B~uvc`%~VNZ|Z| zEnwW{6wnQg;+$O*orBz1H;Pv~LnLh+f;_|BAL}a7si3L8Q*C-Bpk>TEwx7UE)?yhmN8X{)b}ZCFj(>LK4!efZ zqhV|lFwYIpME8ahTc_iXjHR1}5V(ifAUqzgIf*bH)J6a!UWoOQ*}vy#<)$i;MQmQx zz-C}P@$}akhx@m2f{@a)20bexEhgQNT4h`Djlby?&)$>F^txHvS{#fr`tGtg4618I zcHMW#)aWz`*yaz^LvBn6V-;mguj-RPG|dcBoaHxFmb^dV*M51ahuYuA4f1zj9?t?ntj`akQh^M>BPQj^P<< z%#pd~V%_ea9?=u0{UVeVU{JcHZUJJFFiJ4dH$r6+Rr!5cgv+m=VgIDFc0jA^5AzE4 zKiIp=s3_ZZZ{T!ENOyO4cSv`4NOyOGGzds4B^@H&-QA6pbhmW9z}@$L_Ph7T{b3es z=9=r6bIvQ~)TOS&-`{IsBO#OA(zIM;1!#<&D5GGgKsZ$29C>~@X1_8>nfjZteZRQB ztFSnw63l2;##ZYk_uO)HZ#uZa{B4Pw7*d|GhbV#0T|d26eHIPRmuP*jEoLtuIGdc~9?Gp9m5!#@}+737PK7PvhUXIk5j7dzynzU4j z$hpPO&Ka7kS)Ri%67?x7|7wxtiv|Hy^{7#a>06n&aVgt*C`D3LT$$dhcRIPd)p_r8 z;)OGt?&k@pe6B$@wae*_w4(zgZp2dWQ0^{U;=mxb-Rx#Avuo^yC6jqg5_%5}6 zY8LM;Mn2+Vk?2q?*t@tn!q)%rpA4L!rb2$tY3TR{TN)NaZw#mT2tE#IA(5quM8qy- zChn2M*0aj2VuqKmE&{_-iQPZfpZSBdi30@Gr!p9dUW{^ZUsALpDi#w)cywEX z4>R;R+K2C(W#TLJspQel6Q|toq|J3NX1)t#>rM;|T~2;d4KE~HrDVCdiw1YgVqfSc zh`z>n+5%noJexUnCAmnoH1>oRVOYsR2mOjn_)D`wzx%LKjhN|%@Kl51Dnx<;$2BaIn<Ev8<3@N5Tp6fXD3B#l~0+;q-I&kre6wg z(5uOdaf5lOZO4Y!Kihe|$!9c;@}>tDSo~*xH!S`56&j5!dVMs-)kvEgRhQ=(ZB|zgi?RyBCj?5jNX%!!FLNk z3^B_QI^ev(2te;jwySVtuQ;$F8&L6IKdMH$_Gy$E_^A>O{}8&kMejm|7m0gZ!~R`R z|K>AZG6e;pdd=;j`^h`MPKv>Lnxy5~Q+6NqA8jqlC>1&a-t7aMC3A1sevGhi+dSds zxa-r0jpd#e4d@3g6fVb5@LgPft!RbJz|pZYv!=|Y_RCt}x+1-lr*3K;BQ49u8zwg~ z6-uYX^$ZPH{|blNcu3Nu-@Z_o{Bz(30pBg*FcB0e0<%hc?DA#h)+qX>jKq#+&!=T# z^Yv|&8>$ZfoI{8nX9*)|S+kv4Ylus;d1kTv)Nmz#g|I8N+jolI(buirG~fdzT+B7% zP!RMiL(J^%p)E&dwys?x$)ion;T4WDmiA%Oz@@QMRbQg1(z#+OjD+~iLJ+*V(r~>a zP|xc&8mD1ufxjOtPGb6y$nvslOPBGvCK&rxpFg5XCi|)E?~tN9h-AEWfl`im!>1V|Wex7os5J72(n4z>1>3)1d;ijAPq z@~+@55bPC#9eKaOkUMHBd>X?G(Dfj#Vad}XKg3SyKAVK>J`OR}+LV$3CfXNocC!c+ zkMTr`_qI7ZRg>qv9A#w`>}Ei{jI=@?1ohR_nnbrYRQ#%bQGzidKu#?fz2(|X(h{4z z(_J9E;D&5Ld%Og+x#jl!XL~DgiYsAe>!J%=vtNuESg0ZJd!_gTY2uR`dTqHKOlL#PcFOMZKy)3WD;(@>Z-q%`uY2D9Z< zf`cFX_r%5-nrzoI;hePM7@-i7&cWk0d5uht|JvmNB1SD8%H4JGSgHo`70uM7HvPCN z<)@gJ4)Z`f7IKG-Vrxxt)0?T0-*G)+$>>oXs%G$RZ`pwezryYT#8aE`dctkH4fFnf z0H4;PLx2WY@#BrF2XI`=cHb6H5+kBzW)^rX`1_zWesef}q_Xb9K6Q!s1nU-Laryk% zc;M4YCGS)(lv!7>F#J1-TVSykV(^uS`JD%`PNc(;(8>1N=FRsX`u%kqas`B}S9+=L z+1Pt9dSG(2h~Nikw_0w&NFLqUl?mWs1qJ7~P9D#p9xwu6GD02MmIR8>15=-zp^w8Hnh>#@`zcQsL~ zB}8eZ!^2LG-t-YS5CdayO>AC~ob@-lN~e0R7f2?OZ+s9$!+(UzVe5Mm8TxFp@Wg9| zSjr#NfV>(d{ zq^o+*-f*F4U8yx1$wEKSn$h~9HR`M*t2LcOahRIK6eG6kW|J1{XzuziLCl7(ywIw; z$2oIp*cmkzA6tZ%9!oBP`6s2uqSEBPkdifkT~DN0vVC<0p&JtwG&TtH@$gBi1n%4R&b{&f6n2Dmd+}jV zj3lP~f3!2^>1+Co7RGIdaiQ8<`golLJ=dC@u2P(HFkvF^5h7=zgA4SD zi2FyQ_a$d1+szhV-pprAWrWII{;(N|eXrnh84#2y6d1Q}|4!Idc`Ahv&S-MZ0ji1iTqjT8TVq9A~0zAAK z14o^bW{%MG_dARsBwW>r0gE5!gQGwqxQ~n>34Ojs<4dDtNv4Ds%k#yeGSdYgrDY%P z#nM{nvxc$--RSZo{K|a~Q^QLkOuI2316P6FB9^;@+IvWi*EY@q5g%?pB?a#|1(EWN z%3{G#!AIOw?QLI`Xy%2`I`dB4$dd=(5SUPc-c?a677f=(^qSt-W`l%mGd-c(c|6KJ z#jf#l2Wa)1)sJj+$u=&F3wEH2nIHAJ6d{hNQ;3Y%6U7gxo?8S+m{*)-vyDlYr4q}q z3m$K2g{w6RdMi7>xkaC4BR9d1@_2XhelG6HDkPYWpLl=+(`;8D zT5>Umdj1bg9Ry&bddTH??guiS*RdC27v0Heu9k?W+HBt6GK(Bm$gNYps=MoVlILRo z;4Q}TeutIn&*a5+r5$%&I3rLbjYMs2J`dVZd>pKfpy~&MovFy9vJRGux5`tF`$*=` zuOd6|Z6b2XVY9$?NrLA33*v6Qcio-4U9Y}_EWp$HbV{w5s%M(1P7@V&+cGT<#$u?T zX|FM-$2`DSJXXd&+y%oDcM(-hU?b3^l_|5zB^r~AR&&eH&USt)YTrDzA(cIdpi*xi zo%4Dd>!ZL*V1s;B;;0t?<_&A+mnLz9IiUz#!A8V(yYqFf>NRtG``e9Gq(P2$DFwR{s-L-v{N~uq)FSoTpYqbR!okkU^jFK%Ym>@LnejQ1>Tl(jPL-E3I|uvU%P;LJ zFXewUNWJvAycGZUiCcoAqAF5y|83&da~{?|`=kDv`L6~k5pxq0V+Ug!Lt{q*ErRD3 zA$k)N^OvXBz9a&AWm^>+^XL95^JLA8* zoBrq|dpVWAntpx{GkOk6ax!*!ZXB{Qa55G#em&}Q%h2y_YHq+fG3^$e46wn+J}|fo z!uIcXhA~9N2t%B+ck$ZF6ZF-s);U6&yp3!3^&xOc9x{Gu-A^^UE*t;UqfEwQjvQI| zAf+BBh+*fDUJX*reDitw%V%e!)So_DOe1OdpyK^N*9kGC`EV|_Y_N6o&wqhpo@#g*UW!z7W>y~dF>VZJ)ufS$kvTOi}pFz z>if9VzbqoeR2%jPwsPVtX*^wKNF{9BvZ-*U2;|IttO(ku47WM6+({7;Jw zkdp<-$pYkL0dlecIaz?5EI>{cASVlulLg4h0_0=?a{cASVlulLg4h0_0=?afq|2qT2{znGaUs#K%t&P)j%#!naCwDvJXOZRknUR2A$iUI~w|9iq zL=>N+h=pYo|6@$nGt2T%2Il`Cll2_j^rz^;^vvD-MY=rGHUuxc%}X{G({l(E^D{s4 zvVF^ zFH`14qIjwQ-IQT^AwvG3E?)Q;0{Z{Slo1jX6H)l@O&OM#85LpZ-`N=28kyUe68xow z{8^$GF*h+Wb}+UvG0nFgCD;aRb(gX}9QPfDJzOfx%r6wtqi2j3FvU7*cIKkJnb7ps#MV&Joh| zV3fbF4}nYaknv0FezDnk+4$!bigYxl=(cqSX>mUREC=VPCh*MX`#y`|Auc9ayH;Av z?U88U93!Cnz!=heIQUXFST~w#t%~H-jGrgYN0zyIhW9;~-oe3?;Amo4S0(Ezqfkv* z`6G%en};G(8EcLaP#dA4F11Dh-J}+Q5_iy_t*}Vx(YwbMd}+%;JFn%#Rr`5^(Ytfr z#w)V?qI#sJi5rN{fFJ&X^!b}8PZ`T5oB@?n3y zLoY9xn3-PQ|GoO3m&|`=VE(mOUKyC@FYINF2?^P{5opo=-%wy!USy$vDlo65|GH{k z$)rEb7si+M`J(?m0|!2i~}eqXP^YISsRHtuztA7r3+g+ z5OWMCNM#mp9U9co#uFq!fdMEm00jo1zyK5&fC2+hU;qjXK!E`$FaQMxpuhkW7=Qu; zP+$NG3_yVaC@=s82B5$I6c~U415jW93JgGj0Vps41qPtN02CO20s~NB016C1fdMEm z00jo1zyK5&fC2+hU;qjXK!E`$FaQMxpuhkW7=Qu;P+$NG3_yVaC@=s82B5$I6c~U4 z15jW93JgGj0Vps41qPtN02CO20s~NB01C|iSp|mW1)g{nIM_HDSpUXxyzmpRNCy-9 z-^+iZG5=IxUL}f`;eS_P82=z+{<2#BCj~}ER_L9&6t%F7kUAsNZ=lED1dwO(;$_Oe zGcfcr28N2Z)&@3zDKLMDF3(~H{hy)>J#|AJ*5~#LB=xz{bQ%!1_Aj%b^(vem|Yx zwlJ^nKG$Ei3c7=tSXiHr_EHyrzNY6BGH_Ef zH*zu~U}R$b9dUWab6$;}7hC9Ge99l((94?o6Ww|Jg8sx(Uig&fGx-;v@_f+0RbKcM z)>ob7f96vT>s6F>4kt(>8>Q^#1nidTz+7Et;j9+Ze$ut;1T;2E5s2Fb2%o&w4g?d5 zS$3Dp*znqJ-AQ>W66=JkEJ`oZsGL!XU_^t8E2oB=`}CG^UYt4){|ijuFC`9aAlE<6Rj@*TEt1UaMRk@Kn2vzM5Pa zI5o^$sIoFfSIA`l?^ZYpb3V+U9IKo_P96uXR#)$BlgQ_$;e=oW5D5E${N$_b9ICE> z)%|D{=Hk-`s@vX@J^9Am9&b$GU0x0lgskj7DeOM2Lvqf|-Q6EUkwcmyxRy~1^!I}t z>|L*9a{ctBBs(&)Jze4Bbd70_s!z^N;KgWrEUmFx%&~52M=N4G+L{59ifP8a#^;_J zUu(U6qFvwzn^RVQ8%wR-0Og?-nYs;3Go22owkOew~?Kqp90U3JQ4W-rA*;>4Z`ck zJx2Hev3+h01#Kg{L$?Q++ju0R14_Bq11l`KMi(ries~wNH{gqy(=dSF1zA{f`&|3> zQrml}^}GzbK^Kf4yNw{wu6iPZLQiXj>UejB5TMPxTv`};xo>qhK+{#EUmPT8kU zID_N+SvZL;SO;+KAAz(>Pnv|3kL8b+dXHLcbfHxvF;Tm}@Yg^Izc=1<_MKz9`z`s< zuk(u%yv^$MEdc+(a(vl42uHXB;Zk;!p%kJm6FPm)&$1p&Vjrk|&2K~y)i@ux_y_|B zCUpH^9e_RYp|P6!x|C%x#$>7a(E=1q$ieNt9|}y!>FOQ<%3$jPU1*ui%6AZylVI2T zvGYyr#UXwlc>gc7gWFQYC&%-rWu3J(+2t0R7|4hq&<-T1jSa{XhswLB(Kdc9sZQJt zGhm16Ys2ei&|zL}LM6wiZ51$$(x;w8wishr2+zP_1=Xa~A@EKs<{v~Un5nt1pk~g zQ&1aVxhx%!mCy7a{5 zXG~XpgTUcxEj;b~KT0e&)^gp%eQcDbEXS9QWN*J#hG z=>uz`A<###sj*KChh_ug`s|6opi=0TjK@1RCRtS!m0?i!W=j&7jet2I#uY+9HW zD&{>?-K2f{p2tdB;NGJJ_cSZngitvvm52JDZEY$xn<=5@DRD z2Y1Bj*3EAE5CmmS3ksGdrybQcex%$>>#Vz4=wETEbr)xa*vas?ikpyjq2VKsN+Ai` zm6FCWic75N>K0f1H>Og3@E~DFHYg*!AGXZ){RhlTQuF)xp)Y&VR={#TteU>B3kr+$ zbEt(DH3q{GPrf`+mksaWMus7eqTRCK4!knP(C+A%3eRElQHBm4!}egKVuDTPda9Q5$RbN z#8cU$Oms%=N^2Gwz9S3dBF>ZabQUnarJtrXAbV`9sHH+pGcEJ8bJNyKkx;&@!O!7z zIkZoa(5}8t{Kf1u?Ls2Bxd4%3RgG;GBpFnD(QumCWi$}Y$c`Nr-XAKedJGP8n$cW| z6YNu0GtQ|R?J5x^u69Js<<#rjEWWz$h=EG{z#xU8|M8*f?sA3`7Fff7-G!|(fTof6 zu-f1t4HZTK($6nHz>YwK=2#^=%V1|yR4X&S6tB?+cW;!T#kD>9YwY)l4j_0_RP=Z1 zkZ2Zxyb2REk{yN#3(lVHYW0GZZ|q$qmi=?VProEsNPO)Zr;BVaw2pE#Lt3YVV8c_% zO2uP$Az8BOZ6vP=Zot0DJy}4Rr#W5M<;erPU~E}P zFpzXEvg|1W3nFqWs$Q1g`k+}h@5TZxdbGtqP(-azK|>P@sW`TN5Po%HT`a@5+O0t3 zTz6TA5~YVehdz)?8KpMub!-`$M$4QPTw__ED}`Fsk9=~nepI5q^Vrm{Z1EJOAjFhl zDjhEoBKX+_TSHqO!aVRm#*dcPKvZzJ{Req_+%nNdP28-EO}|0!It(_|Vws1x0J?=& zH0A-y6FWuJhJ*8IM1@*%^Pb*ANSycAmG=)P#e*{bgq}WFyfjI2m1oukuv@?4-9<{f zCN&jx(u_o|XF`4u^!8y#Ivf!nK?r!eP9S7U>JCY+#26szsJd#HXGP^42BWSV)<@)? z!Nq0uL{)sBczd4LeaT5rF8Z07E1~%(?Ns)d=%uC#C9ziCFR^&&Q)Nc3Md=ECGyk{H zdN>j|%6A6*IO%UqYWs4SkjQQQgYuI!4QChOMkfg%l%|_#lW_x_sIR}FASEYy}1-rnrB|v2`R1p?C#d#b&;RpVv;Q>kKg$|0gtF{o#hP? zjDf@yZ#VX7=h6|0mg*w}!(as=>wE5xV&+3`$$HCn^4`AG4io1EIb+9_HEadneLL-Q zWN>dex8Mlv{dvA0_TtI=%>QhT4?>1$e!o0se~&(PK4@h#Z3CH}C>yY4p`EloQ89Nj zTK_5Wf>343%@YK1IWsl;sM+nuX1FUp8~Ltyh}1zsu&mw`u@DQ@rqI@BlOq1|JlS5| zHR>;O63I}}U|n6U0eZ$Cbx^$nlYks&I|_}XMVUOKihVZux7Y3``Q)aquX{svyeW$f zXGpAI_F;L31Z*nK7^CFP-*h{mVhJ zPSPnJX!z9I-kwx>@6^J{85NvYG;Fpk36hUOl4A(B9H+qTn@~nGcGc;Yj#}=Pjc$Qc z>&~(^@HLsegxhY}b9Rwx?BcuHl+G%POXV91BVINm4UVqUra*6u=0W)B556H~og$y* z7}yWKk(n9q)bVrWe{yaF_DJC*St;Q_XWcsbtc1SHYEt!u{5-a!!wB1dC4cNB9VKfp zUuNTe!|nL{n^Z#Cj9*k#l-3_Z4=7Var)v4n5KJw!okrI?r1=a;%rBh!K)A-Krw@eP z4CJzLg$f+x95S7uXP}g9e^x|nM9YLfm<*5`H1Hw2X!RjWddZ|7KvDBn*JV%)unuJh zU(U^rJKazzTgSe`QYc))mz8Je@evr#)OUyoUt=;2RS-D+_6@{Pqt>1dn*alyv8!J_ zH9j-Y7;kz-y3>Oj;|nUmfUC>f`)?aGcvMKLw>jV8s!0PryS`_mw71-bNR8Wzgt$t$ z4lxR0{~kE!of20%^mw{v5mr?-4TlBLyz&* z^G&$EpHKigWCr3~=%Jf=-1u7%p*|N7kGF$C{_h5M-Q4_F7(NXsjt=uJCkKC=-$19F z`z~J0ew|?|b35lnoODr<-V>H{{(bU3xJ$`fnt2l==4w|a>GNjg59U*rb{StG!8s6~ zDm4P7HPafjtcmrsjFOW5=(V6Vo5gMkzK%$#6Sz59r9Di`4T%Or2N9it`UWoj;EEDe6uJ_cTO<5KP;+Y^5MfLcSUyEkzs zO}e21Wqgs9gJZ#y{HLPBkZG+1MgyF3>zR9$YQWswl*VO~L?YBat7R>9&X*2-8$1%~ zlgLGD?vl-)#%N~OJ@OQ?53N4oN6f?#P3&JIb%}R)NV8oXX^j+}RYcC3bC_E$=+jUR zB#KH!{p=2>8}1TuAHDy`XE|*{Hyb~;S1ew@ zQnFX8?6eHogHGRgoBvkR6B<#8H#RH2T2SY3vNwXNS~&eaZN#KZX6Z4V|K-%<7i4+$AZmW zj10}MXyi;!o=s!jr2-d!hHLI*0S1eJ!<%kp4?RCw{)ZNY){EUK37*eaeuOmv|F&Yw6qP z<#0Z8`3BZAC1vVCp&~AA?Urc>vd55X28M4b+lB_TX}4u32jdVa=qtOA;Wfeu?0UYp zVzqwYgC#e4C^0izCOzQ6s=VBHl4aASy1!Cbk2Zx<@s!Wh8dzJ9Z9mA=6i9o|3G*oi zf^}DKBH&k=E8u4*VlS0M*UQ*^uWu3yUGVC5Io9xLGZ8004}l=^&ad%Om%Qrcas1}m z729|W^jUXzTuw)+sNMU5q#n9*+Z^s*Q&=7B9FCH&wleh=$yPXMDI$6Ej>vd&fFhGH zVfxpgc_mx>el}^rL^YPoZqM7TcPAqB3ff9*Yw!o}dB5bZk{|>T-CVAB4p7?{D}V0C zeZy>%nUZmR#hp2iv4=y=Ysw!B-irY8rkByWH@K)2i#d=6G-Xz^c%B$G5{6?=WfTL6sYa)ErNB`!mWj*!{Dngw}>Ael&FU^(U zy*bB&7U*v-DoZy$bpqbMCKN1yj<*90eZw%A*v2+o)BCTIsN3nA15-ifzA4{BVNyn>?bahoumT-2H3syr+rI`xa;^y3L8u7!)z3i% zXqGVBI#ehbT0{Th-|YA0)y^a&ZZgaiV^@|M3%TOkiTw$cZ0YjG$P_|fFPYosgv2-O z(&Va~=2ykH6C($VHEq#m@Q-pTKQi6~p3iN&+BR_`JKYFkLK$S@nzqvAiy!*CeL<9h z!~c#sfGAuj*G|l?WY^;SsWlHj!&xJG(8Q+d#74Bv;#Pajmx)2uBDK8z@?GJTF9JQU z6?#KMrFu`GW6D;ny@W}JBl87>!h7v5Qq>#*-%HVaTTo(Nxgb0N1aJqv8pD0KEeqzk zrCJB@i&@hI>Kvb1jUS&Ds^z4kdz-4_wd2B(^!K_{Brw3Zh8JmtvD9Bv=af_xxD9Vxn<*KGhQy0C0k7EYA zmcX8Z!lSYdU3pE&Lp^cuX@&|vevT|Jw4a611b(O*WHDKS94etN@?^db8uP)`J0wl! zuo&i1XB5l(DjYUn^6OpWE-EfX17BV+McAD;WsDbFiEEbIN(T7CjYdnz7n$-Ps?YNu zdf3W&;wV!ss6Ypa3U^Vh`P^69#~SY{uIF*Wahz)H{DCH?W&K6Wd$VG1m*q4CK&?|i zxYJ54X}W`v%s#ROVbGLH&Pin z!rZ(tgScu7)V;8E)})RLL#P%rpzmdQqT?7RmITJ4++#yDB?p1z)X zfx|?usYZUYz<5ihM)6@flh17>hUacTdgZtmvfl_!d5HN;gwiEFxv|oDXwj7^le$eEp**y| zis819TDycr+2=fdY$=#ns>;sW8lRQFigk$Z+pVsZmS8^;FIZ)2b(+W19X0B8W^0Z8 zs#sY!On?95ke#>jIOS$MBmfUIJcTR+_JVeoQkSAxywI1i(LAS}cXW?{Z5Y(Q(@3R; z_J#^8F<`ks2NYCDsn#rnyY#!^waPLiU(W;1hj86wSYto3r*#&OW?>4~v}Ctww#9;U1PkvDY%D!=ORSib=03Supjn&~b&`g|%DjLIWp4Na39X)M+6;pj6iuyohD zb1f4xQ!T9tfNAwnkYE-aZk|4~Uupf30=6=m*e0zdFTUceWn?KxewJ>V?gX|MpKfY8 zLhJHYD8EYatpA!Lby?Yz#R`pfTrNGWr`T*NNE8z945yjTm$}P=Bzst-6>%{-eY6I7 zX!A#XBm0vAV^lLz1bFD_U zK2nEHsc!ZJ@)Y|3p{Plpak-=eigM)&vQv}+_h!acAb3)`zDqh)woD98k8__0L3Ddw zn1ijLOe6$paWduS?UPjb@?6X#ZQCMEQ$d>Vo5_-~qaOzIc&^FhTh`V?DeoSpI2!AQ zquxtYO6%~bc}BCR_BC$S?9lNn+q-bC&T;kRMTwtKZ^Cr#O}Ba##)l=DVdPj*?3^x^1X+w`4-6IpQ^Vgfte}a_w$$okwHcr+ zG%Pes94PWz7)PD^1z&7ng#T*cL==RvFo9zd8xl3Y5jXR?y8(LG?PyHe@4{pCWZvDG z3|XR>`D|ygkn+Ge<@OPFe8Q^xqBhz@#+sUyqi`z$dj}&qf}V>4JS#Y03Ng7&f;NsT zZ)%cqsLb*y3;&q%zAC~T?0YE7CRsq#!d!#P_>f7)hL2BEngd*{R84HH+Wnp}$Jw>d zSr?b?H$58bO9mhZfp#pUG#%1wV$od~Z0oMf>+^ z(|8Q-9Fuq!qCi93x4Gkm4kh( zK_fsnGIhd=JBhVIKL*)EGwQRj;I<7cJ*iSOY&|PsL)9y=v7}h%_%e|yWq1*@hofn5 za}t%>uzDLke$tXAE_d_&YCjnt0q1AS={&*bu$E}1Qm7A(p%wk+4}=NThuwxt=2C?2 z8}IJlet~!b37l?P@Xkn-{+<$(G?akz*^ef8zUsL+k$4k-J6zJ1)*j1lR=NN@aU|4}^+C1f z%NM;RC@ z?Y0Kw%s0N)2W<4LcJ;OGL>DOWv3PBJtNC-CzdrZwz6%Hm+Fg=NRfClctzeKV#q@eA zjB0@|Uy9uxQD-zP2qode&HFCtgt^ep8qO8rRR&yX=OL-`W%5w@9R-ca#M2~`*?7`B zlWsbMMhL;`=sXR6Wje8|Q$-+nla7yN_~yG5Q`hANRau&5YJpWQPo0QUFgGZZJ54NJ zNm%7Dt+$O4cb34@RLkxOQ2ompT^M^BgSGbwvXaEtk_hFbC+FvI`EMc$rr&(5>F_>{ zZa7mzJdD_)a6TOjf+AQrFA0vhW;6}DncnBw`ohx)T)-6HXG|{5oB7E*vm3HMHGxox z<={PQm9m75x3*$039$6T;{fDzJE{Y+rD|BL^hmV8DFUdg25&{b2sBG;SKdl&Ts|ER z@gj=!zS5oyvfyK*bAW6OC!2v3*g&~=JgwmSpB)BPq2H>6!!=UJ@v}i7;3MKnH|dSP zPjjU^AShvt%t|+WO)N2R%tJi3KTBV#5lOm1_482vfM1LtPoO9SMEh#c==V5$h zwz=^#@xySF?u~4~TMg5;ue`l;V%!%>RlFt5!i0@9OS<~0V2wyl%bi1V5AO^MLg1`% zyGl15s|j;Xe8v?H#qg)THKzusxlhFQ9j&UpYtNd;%)w=8hxc9j;BE?YUQs zzG%5{8r4%qj~#tW{-sW#YUU(xzj}piph<`FBYa$e_PPIsC}sFl_*Y8ab4%AfQ>cOZ zlJ`{yvM7|}W+M!mmZGGN-asIk+Q@8hVIMPoJuntxB|+uMwI_St8=FYP90(#IMLA1s z!{5nQrVVZg7#e#Ur{&k_T=^LhcE`jx`P4hdNtpM=04L}kRt;5*xRwYIyCU01e{$_s z3}>&!lyeH7?Cn_1xvqK;jTPUgu9@jC{#K1v9l>x)xr!kI-b*Q=>}*oT%iLV5Sb**p zk_{Hqq_Lb%M(ST*a(gLv`=g<-#|d$c#wSu|phv_t-^h^6O#-XHik0$>6E`gu%YJq{ zJB+2fivouwJ9YZEOmE>6!35(ZeY#a)0luO$+K!FMtbIPZ1w&jqf6KfQwMUvk?OYt}mHTubhmJ2yzRpugHd9PRV`i)Kzq-BR*&k0caC8_H^`_!c)Ko$SOVVmo3*Cd5V~q~4}5hL{Vis$Z zGNl}Df_sk?n;usy#c5t+SYCS+8WvzD1oH_N{{U{$#KMkM6QYgeBmHSvL+kUDdfxrE z`3+*m(sv-_PLxk)YDj#$&F6iXe65F%8orm%Pks-kTbetkjmO_}pwh5x!mLgL0$>8) z#j&RW4<$J(RW)csA!^f2(xA?uA6G((_>-phaC?W=u4!F1mfZ9>y5}9$e|lfamoZ)z z*Vip{Q=U?zNP0XJ$Ag=bzCRkx*Okk`Uf&eC8C=owcB$a!hmhv=eJD56MK!ve1HqtW zU#7sm&LmAa-)41>k~l68LDuAE5V6^+7Wb0FZfY?#13bA2mcYs4PYYKYb%yc}?>~Oz z2r@hwArUew{yDJZ-q{%Ea(7ztawP$(dG{$^e z9k$s!zO<-HZ#&+MW1O3d9iU+7I*&5&Db0Ldz=;948rSu6wh&lk%J=O%Aa-Js9GZM$ z$u&|idO1~?tICd?nnkW=J^!ORIiQuV-Wgv?(6)pPJctpxN$bNY++emL-wW5+cy6T( zIZ`zD!s&2P446SkvMZ8$Q`-F4qb0S6Khr}4fGgDQLO!7*iRrV`YE)<-l3 zd||Bmpc5AC*9>Pw678XrOE;E%TLz+g_RUTN6~-6+vq$GKtdpp+d^+b=8e*A6_o8Ms zD3^m`MEQPdgruxX$JPN03am7@RN>=L#zmpMe1uA9rdyy{@y(Wu7nl&^R_a2{q+YOU zt)g#&vG>ZiLT}Q?H!-;FcnQV>wPm<)^f#4DUmHuz3&^Fe)v`H<)D)3%N7}7Bh0N$B zEOjmN2=NpK7BrOAjnVG+a?Eg71-O|x`q;CzVlPp<15Ebn^z0INH5HL8YqIU;MnBX_ zD5cXiEe8I|S-Mi4f6PWy)wxR<1GkhY*C?X%OyX|cLTT#d#EDbe9ppzddelEpIFLJW zpS6gCp5@Tp$R?7PB%;u6VV9uij+ga4X@C#=OlbSAKr!8ZqgqJBCDByiz|{Sz`Fryh zR8GB58vSn|KgEK|pkcfAC*rmMpN>#9d`eOZcgNb);JnqT+44em_Y$rc+`|PTZa0MG zj^7NVH;vYoGZN0X68QGCidclfde37_(3s;I(HX3)xZ}pwm-REKSGn?IGOnw!UV9fk zv*`X98ZCEY=K&>!GL(U%t1a1W=E|pUlhtC_AzP%i?+VG}_v(HqtvmARcPvDIjI|nB z#Rb-t2e+6_ARN`9Z=yA3tZ}V93CTbSfQMaFo7l9MnSn)n*L$ld@zI#{QvjrQ{ex}% zMFl-?y}a>VWS4D3*5cleH)gF)E?6r&DVf)Yka+>MpvLbss@(!HhhQ7qGX{bhy)@8+ zyBQ3zCRfgp=a|hB9I`Y{M$p(rDMJ!sTFI?O0y;{0+1Ic?A(hhz#p~`AW=P11W$&io z=5%s^kh2-(J#-+FVshW-#8UV*d1Z?4?HE>?_Z~o;H5xSvt-x4$u?ynw9AtQ0(skvxzw6j65@Sjb|RdcS$E@pfjln~$^XYpQ8*6ZCgfkJzeW?_m z`$f5o_$knUBfFy%RLstWGTCE`w8-Va3B!CGI%60Pkx{sD?g-+|T*R9)Pt6ZR7AiHD zhG9l6VCc=Fyd*+V)!v>!Ye_F3K-mk8Zte>aFx zhl_5r8%pY7z;wkVgT_-#P-$Ol{AFIQbC*#4*tG}i&WcIK;z{)_Q^*3VRva%jc{G`zt`|Y*v|r`8=Y)g5B?^r!rv@I5G4pzGRI%2NzGwtX7Co zZNBdyL*A+g%onTIN#Ulti7lprm!cS+~vL1=Zu-+fqORPWhl{kdD ztUjPi?A|IWsQ9*jTXQR}qQeZJqp9T-zR6>RTsZqV&Jbm*8$Rni;W&0H!HO& z2WO+GZ^q3bLQj}O z>{-nRj&T;NU&xY03@GI>a+cp@EY$N26rxJ*&(Bs z?!(NGRy1YgMb#?rA-%W;emcn*`h9QYfW8G^0T=YN5@q{-+k2=_yR_6&H?Ug=0FB<_MMl9MJV zZqPhy=6m~=gTn^~lLNtkk!ZmIe|B2A2`#GS#}GM8@dF$1T75MRJ@QZ4qpG6?IB>p) zfgd}Q8+UfDwF8k((P{=il)>`~2SYvN77$WYPW&pxxlOJk59b%ft!S#!ci6^&LgKTA z*~+EaO9tiS`uf3;xt@mJ>xfD=SejPdPJ@$!19n|epj;KxljHYrh&wmadC*1j-0a)dXkwNhvp_hMtP zZ@4KZZz$$978-jabkUw@(h^V|!4oOjZbp1OohxiZON@5$v8x3f*T-p=wK3yNPpx*hQp7w$$sD1C=2+S{abjm&29hd4fu_hMR? z`$+gwFe@A-#pfQf=pCXGwXy{ZK`pY>YJ;of3173n#|z-0L|{P>4ZaCMKj*`P!dQI} zN*qu>UY{|sZol{jf^6Pqkms~Mpu0x4rs+9?8Hxq#OUPBxOe5lAb>CnA9^E6*g41li zOD>+JqPoLSI>Sc16&>j;PIeqOFxasGV*y>j;E_)kGE8nltXZIz9Sn6<{PtQ%*Am@Za5* zF0EIT=zF+M_u2cz-@(I8CMuw1yCb(s_Lc}o#_%wXdJnG_8j(BwWHtV9QsLIv{zc^b z16J81siGhh&93|xL$J(h%wpjp%sO=4NuKV2Vum8J($9H*8V_Bk)7qV5f*JN{b{9~J ziE5*AYYSbVU$44b8bv==@>ti4uztAFNqEgqNrO?>8TbKF`gogz=d z#&Tt0|4g&TMoX)H2G=T9c|B-rLTMB203E1Y*Vrtr4diS)Gq#<@TGP*C;veXDKMWPL zL!(3IxD-SdF%rADXuiTpB4(D(>PI%?!|!daL!FhL-im*=?Obd+fbon=iV569XoSNi z5vDD_-4aL)j|fu=A>U(Lb|U+xHTLxWa-mc{3=~bzJ{Y;}#JX!@wY(YDRrcn_M2(it zGia&or#FN%2wus;Q0KY{x<|0q5QhsV8slqV5!RuNl_D|bL6AxoZH z%B^}AR*kAOA;zH`awDu?>wz7i7e062(6ZZc+FoB&ZpZ3Jy2|6f5E|!mr#3|P1c$j@ zFRXP8zVa(SRY`PMDw=FvRx3pfbnzHSq{7@Xga=}~pB8d4W9$5l-BEX}Pw~$YN+qP|MV%xTD+qNbX+b8pW``!Ef{{Qcs z+I1?`>D71Ev$~&Eol5HI>-yaqVwWvOA{Vah{Euj0vugH{evxCXjb#z!*U1)b(7`Zf zuJ8Eak+d;jxAqFBL&!FEHfOgJ%S9MNq?zer;gB5m!GhOU%kg^ze6du3p7wp}$?#_g zGzr?quO6_!6v{Tknj?5o_62Y-EKsXYNybQIX2O{ z7|N${%&`iX9ZVaEN+~jbdfJf%>k$4LWz1)v7B;CXPPvB2VQm79JY^plnb4`uF_p`V z7J3Rr0-w5gOH<(msJ(T$!KkBHiWBtSos$;ALq>~*jArBiVLB>iLz2@-LVMv-q`4%8 zf{%P3H??fOtOljVeG>X8;LJqbU9L-6 zPBo_a025K`iArcXgZBftd5qc(~>aZKrf8<gDVh+5P*yV|dO9=u`2#5(=pPr{-gfKt@u;_hY-X<|9A0! zF9Zn)@T&^)eF;GdlK)W%`Z7lT{|Z5@UrNef;>n+8(ey0;rS1He#>2?=pB0`j9p%GyUJQ=;?5ozC@mX9ZCBo z#nAqB@Yke&?=1b-N&VTpf8VG7?DPDeJM$e1 ztI_e_!q1;($V`8UV1HNsvU&cJh5i>dPl}Rix>j?Q9VrrpHYG2aGK6f#-UZwSBpj}& zzeld@#%4G&*@e0$MGFeWg>pEGN#S<$NA>5+V=w!v$m`lJ;bY1^*7R*O+tGwmuV``A zD779WOUOu{Ue#|+Oig|OGGr+uYHI*ga1v&M`~(J&-%vsQ1-(^pcmT;cxTs%*0(#FR z)Q!vfHE;F2%32Nxz39Yxo}mv{pR z%Il2YB&>@P$F<^Ia&~5LE%am7eWrBwb}&fX{6`36^0W zs#bvvEx00p35a+~fIuM$)`_iex{$SfU}b&q>TrSapBP0S^(__Yot@+>yDrb&ZFfEu z0a!T?+Mk(#F1C&iL9D=vJ4tXRD?UZP_&+XEpau|r9bILYLsjW|lmvlHtYHJ`q8{w* zzP=vjP}j-IgchrQ`6hR(?-sEdOMJ@0n8uSO{i$fZ@G zq7i}cy}hjKuK&~@fO)&vwGp<=U|2xZ9U1K%9Ssr{e0x7jzxD|o?V;RBlKr7i>G}+y zYhqG^%B;@~H}LIh7l>Cc2~GxJ0CD%n2w*@vJ`zCaPzRW5Z)UBJ4LJ@C0O>Wy9m_SK zZ=6pk4nV?-01!aV9S#BrfYAq@w={t41FRjOuf0zw20+5601Y5-5Ko}2%8LMm)8U`N z^VeYU&)_u#1n$e^fyk}84uSiX^Ho}Y6W|2MS;FCWo&6Aipkeoc*!{A3@H$T3@d8ob zeMI4Q2X}DxgbdYt&f$v>b+Cjj5w0$GUrGG03_+bj-o*G+oBZ3^J`s2LSnIFt8~olh z&;s#(AUz!8VF!MD>SpK*Ay`2Jst-|Z{U{AQnbeu>wu$sn=4gR`bc#Ut~y2dK-;kqMa+UDN#Il9Bw(aAFKeA)BaLFx_LT0polAA&Ut z=WH!VMNKVj4ZuTleD<08H0^59=C7BeYclQw)D0UEl+Lh+to7N}3U_>^V+kshp$Rd7 zsPD)12yKmrX_&tDLw=7Wo<})+YL7or8;NlNUNf6|qPCmx&2X&MOz|7P1OE?6({EG+ zqHKy~0P5=3RkDoYPu>r+AYju7-a|yjZrQnEZiclshWbx)Tln#gL)w9qZ7^T3OpR2yNPTWj1s|e8=C3ibn?u;rO6e<5s)ZZ2T0v=%MTZG`CFM*uaBF`68x^O z#uLJvzp2HJ?HZtkTDn!NBAou+3RdLWwHIUHP`XNNQ}z7>lyPlD`GKcw@-hR+rH@N7 zqk2@ibE+H!w1L)ITvIavj9H0T=z-N@O&pQ-_%{l-60t%>I^?}EXBm~DR>xi^$qL2X zGA*|kHgl7O=p;{HjfXKW>Hcr&Fl4nObGFy6`QwwTE}MQdNNX%3pg_O!I_OBOG^d}; zpd(E8eKhWnJ)me0o~hH@-`h+~BV>GBhv+{A67M+^>(V>JyRE&q%ZS2=D*ZiY_0>WR zaaJB1RG8xwP7+{a$b>h$*%MGud$fb&*>4Z{V>7Khi*8cuVBktg8_3J)P# zAM0&ADuH9%SqruWMQ=MZ=Y^b9lA~HFfRirTvvrGeKnkd)M?^@BuRKA*-3g}+DmAJn zS??@{7OR-Khwj&u7zfD1c(+|9z!d2QFTUTbp|!0>Oe5YM45EU=vz1sWKibau6tidY zmnI(>jS6Jf=5nbbliwj4+|Vp@%hif)lS5ZTVk!~FD=Tgj-x=Cnj?)Zx;j0iwdqJQ_ z_a#7n&({m3Nz1~&+`PU0s4IUD#?zddA^SuCTABF}qM;PTiS2`KuT;rBbuN4Z*<9*x zif5flVN$YEunZp;DfgLIfVv=ib_{$EcN`vLuJF!12{{)S{$00i_rB+%7K@$U(lQUu z+)dW7Ns-pee2;@2)Pb$z5K5!+r5ANgQICv{*lN=gb?M%yAAhi&(Qy-qHN7ZV_)=Ah zFlpiT6xLZ-W_C{*^1U|UJ=P$QHO1q>wr*N8YF^;k6kO@eC785q4r}5PF|Xzt@E09w zTX<;z>?G~d@cabJO$AEwp|+8IFDirHk7EcAy04nys;6bY=thJV@2D_a=(~NLIv<@> z;^x?yj}6E&@k&un1d@hCWJ?FBLfQMy@%-pgj@|%HoCI@yX$DN&Ky@}`=+m)nxFneSS&h<{=s}J;>+)OqDw?-TabMcfqCT8BgMmM z1H#T&_1!uL0-AQQ0gD;)mGO2pZFJ(hO~Lg`GflbA7qNYlG^>)(?RJ9t@hxghx<+$ffto-Ja_ZxgLHRnRVwRxMZI6|DvwY@>r5`5r%?+PkR&fJb9 z_6f;+Qao%bBtokE3)Eey=-Hv&#`$kGd-ey1PCHay6g;dMrh3#yb=c;&dXlGLFc3{r){Gi zK@Icdj$odF=cSMFsUyp%Y&ncOk8{nodU#5xK;tBO?u<76mvJ< zUcuCp(Cx|Z+;mT)xhY~}nI$rrX0k1Xp??BI^hi+=Hw!AbD+x0(;{5Eyls2K?ANMpo z%HMeU7#;xwlhnurGZh}MAhe8QDU#kfhNE-`!r*kgLp?abqo1#9RI?zne9LB7W{Rt2 z%W#&B%v#}+c^y@YI)hlv2w|FKb3q+7e@vIHUf!&4-d2s$8YLlG6~8Lk0aTHX6-c$s z8rMnCR3bvA5Z~KlzY*bihrz9;l)@}3&tl_Zo~aI%4e5Jo!ck&P)qE|K8v34gpR3a< zK|;9rDG2R)pWwX29HdJSQ5R~8%yFG8IvZc%rC5k48$Uc{v< zaMF5FqkmU0wSFbCsGzZUU!euw$4Tx;_^4>JLHV?+y%C(n#{Bi?H8fJBxIU1;orT`S zB>ZH7Ejl2_e~mf?en*MX=u|zeVKwUwx;X(h7X z)w4_U;)=LM-d&G9yDSSKYV`C}QUtjfS)g&rl~YjVlk4jmB(V+3%d-LBg#lvSNhq7A z9zXogBLZh)D39plp9Q#U_HhFJRU`9)gw;UYu&w*Q8)!KAx#;Q@vz}Z{D-PqO9uW5H zxQyTB%iuuRm`14rgYV@<$xQ zCT_%Y+mR~hGOGQcPTMaFveBwCpYR16#VD|B7FEQ3i%TPG7%QnIVP{^%u`!hczC6y4X;;V$8ssAhDXr8RRC)6+Z&U z8$5@nFm%$vcbvkXuIf_`l=_7tC94-8wq<(YKu1pwGcyox)wDPb6Dy@9Gtv{ZVMH|~ zDp##^VL^}r6%e~vHF8Nf9C6i$H^slkA6Lp!+B+7qHO8WRHd1gMRG!8^=pz@T&8o3n zA!^4i_37_#(91bXWeU>Kn07o>q+Ya)LOOcGb_-u;W!w?TN(RBsIr2JzOpSFyf9G;u z;vWKM7hs>!{WdZ~3|@GSL|l_5(3Q8fcY{3Ne<<4~&+Y@2Iw#uv_QS09?MQZtu9ugD zJ8DzW8u=KJE5>1d2E0EETBB9ZpQT#6EY`|_pz3#+TG zpdadY)xpRj3g?wk%Ef`n$27DxV*@;|DHy}Q*ci9nStIH|IT_!97Qies-U-D8iZ>uFuNsKG zhqGp8$>B)kxruBhOaewTTMigjwdB#=Z^R+AzY^6kn_B;A3)9D zuGAb^v>%&HxXM`N_6}K=3iyJN!qAOYd_5~ytZaFfzU6ZeS-)q&Hhfun6*a2`FcHwm z6vJGzKi{&jVQ08dc7(xfW&Kg30;1HAf1w=Usapj@-`4yvB?Z&(RQiU5(dy(_+D3u^ zPV|lNu*qD|+(dkc>4_SS^lG!0b|ob%4SqQ%>QgtqrUSy1VB#`&fsU&7(1xYqn{@oM zYZ)ux=TCgaFwT#Xr?JZ%S8^1Z!J@hUG6M#nH-?0%TF5{V3a zD)u18Ryp&W$-}+Bq`&~{_ZOtNWUSJhXNO3s@TFvd&kxy&<@nUR;o5NY)g zuiu3x)8nJ;BAc+#LKXCuhgfMwj8-ehm`4eICpKl}u7(7x#cxNz$(!+44UMMfMQ5SX zJY)U(oPtnh-=1L4Xw-BN;OjqlJ)n5SNj<7XlBxCf*7DJX9uc7amK!mNv<2|tvHY9BJ7j;D}6MZDk@hO>uNtYimagxwx-(G;m#zmloi zTD*+(0<+HNUt!eQt?qEG)fTS%a8KHQntj+r{T>L6@}PFyRY)k1SX1YA)5%DBW`jaPXZz$BknOR3wKS9q zC6Rt|a~+fWJB_>S&B^M`4}1_Iy_?u(ihv*|%-6a4P0D0VoHf~-W&`536%|U#o{{db zrB{*3njYcy7k~lR?%*#}<5M83+9e=a)$U<7Z8Dy4!AsQDgb@k#>0vv!X^eb-WRQhM5T_HG^ok0w8ts#eP*PDG^Gku9z6Ke9j0-9V0 zy>YnO%}tyi8%O;i#x4d{cli~PiPc+`8JOjFp7tUUP;4_M5;zeXN^ZvWFj;j_i+Y|m zWWw8!tjjd-`{8p+Idmc2 z)B|iBUHPYx7g?JVHzSPN*5!{H>ec85yBA)>5FcbVyA+EvA;(Sn>%-z$ldo_JgAy_1 zei;(T8DZ-K#xMQsP^>@`lBW1$0`2Q{!%IRb3aq6U?j;@%9EV5#4#R-EZV|WK!TAVR z%Ls=iFoyHOPM5yLxipBB@ikc#zeBH1;uQwSo0A4%bHcz7)eqx5-f5p-;~OTVdRD-jH^u2*jx^-i7HOBNRKsR( z4a=N#X}6I65d*)JK*?6&3B@7ql>9Pj+vq$R&JbrDnX<4K6s#wPSy zy5o$hTOOwGjYSe&#bsu8uJxsAEd{=Jyw6+3w66wjM!#XQ@GQQX#nB61Rn2PcVKC^|CBO!F%y7r6J1LVd0x*|W9fIcS+kbUE8a#1 zc?bYJqzmc$@Y1R#G>WX?nLu1pPF=jnBRvdENJ1|HLGhz|aO7-5I?odArFUwt>evY0 zUN1;!JW;@3cLI>C!(h|z-A#^HLK63E=5MjEr`}u0kpRZw@|YD1YFUe7MLut|T4Q>_CLp8(- zJBVm*=9uDzq|-r|yZob0oqsnb;1Z&&*Aapi_f!@YfSZy7;!_ss>vt zs%;cQ=i4ZbzS=B_b2i4+-pL^?VG1C=G#{P96=f4JgP1{_k*)y>gRqkC?*eRI-89>K zt<`;MZ9nKIaL=)W#9R^!lUl)TfEgD2?2?HRflysD#MP~zXZ1mf6y-*CqoRH;0-|IJ zP}6zYN8Jw`D_b$cS)h8WFIBE02t`Kj!nj(mqcj?=d6b-KF}j{d44wec-WiA{v_gg* z{PcQzk~_4Gx&~P8c&H;SrZG&mNjkEyJrFZJ=Lg);aoLr%2<<6o1o%wJoAvN)M?5TS zp@r(T1+-I9ae2j$8;ogcxDbughE*nTQt`7AHmeZwM9NrF!;eB*g{O^0`UMFBxgBq- zxa8hXK!=*O)EAmD{$kG}8LvpM4_)yfV8^buOAq-?b^_ulT*isR=LQLrrV&jWZ{}0c zSm=aWr0aIht`6T@*Zk%K<|xP!_1O#@zF|my|DiL3*?9pI53ruZ*gz;~o4yqPL1^RA zU|P4t#oZF|!$X0^uh5SnP}0~Q3?i-uigeh#q|Fc8c)^DVrHq`>m<|TjMlW!Qra<#t zzf&rqPM2I3Poo=m=nT%P*iPK>sMeQS*ma0|19a@-;an~G; z;`V^2&!)>j&%Ro>vIC_l&(O4!H8X&PKoFhTM5?2_l~P=83Xy4Eib-1OGioDA1y(Q@ zh0V<5eyXkKw_-YzC?AwYaw7v`F7Q)XMie^8B9BY~R)U!1#x=a3N_o4=t1g)V9XA8A z>6)|3(JlV1ZRlmE=Gw-mSYQAg(I`$LKqJ}fS@{;BB=ptSJd-a87*&O#7#>{TtFDE> zC3v_qq2u{#1D%X_1@hL3E1OA$gC8#lP(a2c_%rSb5x+h(kNG7oh2t829%5R+|C{ap zhd=5-ifx?(OWkj4;xQ$^{fkC~C+~Ktu^pvwnD@|)BN}IN>`1K3CYDM*-RD&76jD+= z)uxwow<{sve$w$)%H*x(YZh zW4b}>rCUEqx$hrx>bk+RF|}+>t;h-~eDl`XABi4hDLT4mh-&h&CrOM=__N5cJVL`& zbD)vi&j~wpd)G@-cE;9lxnJ-m@gaa=8I*csw;t+`rcn>2#7@+Q;l~yk?7|iSt78`$(qhQ7*kefz`MFI)U_A#ivAiOXZ(9!97onN~ zD}Qgyqj?ibbFpYj)^NKd8u>Kdejtmd_^76&=`laz!(xFuxv*XjB)zUKF)kU+6@Jsx zx@IA9>Ee5SRiXCl3%CS)-K#(&QL8ouzZRq}zMp0`=q**2J5kEvq}Un>buM@>0Pgyp zTazA`K|}{12Rmvewk0vUo}zE4CQKHY++NLj$@i|s;{qYhbvI|FC!TFOi7<~np;r<@ zXJvc;U4+h|v+z)ABavuxvF~XoT&pP^8Co-Bi3AyPCIW(&O|6U4)M`+PVcf@f$Z{-& z75y6cp-XR!UX-HDnQi!?~iG13Qb=D`OqLrgRdC8PlH&qO<2%>zV#dLSftS>If% z$Z|bQGtu!4(jq@ZS|W}E`>1Qoqgolr=cwLS{g~n0DMKq_n z+ypp0a{c<>-cpqGQGmg!?B2%ojxHM=IRxfcHO^Qj3AD|L84_FF)Z`Sqdq`=Xb>ouN z$B5G@Wd~>}ssuKrO8@Y5)>X)CQuy31MkAc>lqid1vnX1Y6e&x#!y4M|qE?iorfuo%Jj%h$1@)kymwrRB@dn1n zt@M~z-I#_*ctk5OSRI~I^RsuSoB#yK)f0uM&hDFyKt95`>J%o?yAr7M3Xk9*MG-o|jK%=>sL0p+8g zUEBfVyN*YWIFsq%EpqcfV?p(U_IS*oc@Sy_OGi}25)!St5JhE+V-olM5*Jdu`N zK*Dfd#a;kKx(GnGBUVq|MfwrWr$Xm@n>!En14sR|+X{L4t+t2B-d?+{{5CzO5pMn#q#_OM4rf9A7jt4cj!l|mG zuAcjTarm)yARmWjGT6)c9_vx_qKn^iW3(mq zD8);Cft#jVC-x}vE-d%7l0>1JlF|*C8#|4=tYSD?(}EZbT(}^WwJ!@+GBL87%%i&m zHb1H!0C`AjkIWPy_QUu0XwDf>h^lgZOTaNvEfIhZxlsCR@fWq?P5Vb{&Yl~n%c3%6 z(uj!LK%V9@Etqp$fT(AL`Hb|!yxqN%>j6iOy$YZG;=(RaUhV_OMF?Z7&2T6PIwKNI zd8Ye+e&%E?Y5aKUGb&Yqqe;+8)NyG#8K}m*1rfman!}|dIjT2g#Ad1my;`d?4n=X)B%#_?Sw9b zki9X@k)gmAkB2^fb3u=H|r^K}C`Z&4E!xRD0o z+6kW_=YS=qQA+%5CKAlZ71n`Bcd&dq#BHpj~6O|MzxaR`u=j) zm}_P5s(lmZhsm)6hY^jimJ>!RP--enW5Ib!W@tz8e)G#DensFR?xYUr7|RXN%XzIn z^eA2S>7y-_GARwJVUG&L4wz|9uYRu7ih;aR+{J{scW4mxUOD_tXEO+t?8ZJ^kZB#n zT5Px9QXWsS_hI*gDVZ)7@YkBmUgf!E_S+;@={c%yy8R@D7;9V==w3qT8GiJh%#WJ! zPo+z|Ws(RKR%WZfZ55Zns<6twP#C%LoJ#v3h1k2CwOAj-emqLjt6s)}53JVf%nyVp zE_YzB`@{Qg9KAZNeZ>AAR@VzE734#U^eyVh-;XUaZZJAV6w^l>@)jOA8c5$Kt!vIVcH$9nJq)IxQg|HG;{ zINBTOS^a}r`NOCDp;lN~nCSme{sXD}Dbq2q(*2|ScQ`K#E6YF2e+SwA8zA*}8uPz{ zKVQ&|lfI*y?N@rQ;@9`DkX?Q~2cv&wDf6i-3M)u{0aA*J{}GU4{=+f-uM?BMB8LBw znEVIe`ENpsiS7@-^LNbgpH=^>@~8SAzW(*o|BpHUMOyu*WB>2kpLPDe{p*?ke)M$@ z^=JI&n19s%KgWO1{der@udVus&wc+-*wt66G8H}Z*9-sRoLK0Y z|6fy-nc2R$s{ct*{^G&@nW9Yp_3&RQ%3n+UH+03w@C94_D@6H=h58@tiiwrw->9p< zShRo7Q2wj*_j&#|b@hd*{Uaaw4|VldGWCC_D*vIbnE#^f{z+YZy`;b1USEutqmljB zGh6C88VMR1*cck&evw}P^{e9wc-|(YiMcVy9SY(C2_l6^$r>f`m7EN2f$rks^6laR z-Cx2M0;YF!bJJhC`|-oZzS{<+K6UY}X!TA(sraCj-3bMnDAk`nASX5oPjzBwEf#PD z;s6k0ysQL34S-kJ*ic+t&!fgKKQ*c`)Q=zq9N^#x3${;Y^iL*RMo`tN=1TQ83t6KSU0{H@Wx{f<8fr z#eo5c&5jJM%|YveFbf;U)%y(q3D7_L5R`tNYfg;L$xrqC!g>7EKm9CXsiCiTeC0u5 zR&J7x{zAPfqTpAyUVPHa0zM~GC|5=%Mt}KO5Me=6PV)LM5hv*a+;)FsaDZcQ0L36n zVe^*+jDC>b@d@i)68?KYw0h6?+&zt*I=lEHi`>8L|+cU8yH#qqav+Psx8H9K6 zDX`7+V~)XtLB*Gufq;Pl4gve-G22GxLxon(;%8KBDw84p3L5~}!vmQ0$j@0{TxVZ! zI9+2a5NA+dEj&mDI`wr{etZDj3|GKNtKYGorzGGUzG7E6v)%CEzG5dddmyxspF)}d z#IfC>7(Ik9;CA%DDFYw)xV~avBW9y&N z2kf4|pvqGO?sdWkz9{EmcPMmE!3`>3UipX6&l7VWc*3?99gwi9Yj8em)c9VU0jOCt z)m47#KtMx;kA6ZH!Z<(Rk%{ky#<2EvF9aq5h9)}zXyOdu5j_0SK9N|Tyw;&2{X7sO zK(pxRE1&SZ%mDGZoq!`izfB>TKdKFW%74bZZMW~pP{TFx`b5_YbOcyZ;w3-wxHF3a z{ESLm+)neIfD`{j>4(Z48X20q>5c>7KZ=8V8wNFeNcr%}{Mb*}$LY*OG(3J20Wu6; z_^7^qU9PAVm}6pg_@Kf0EV0V?K!Gw0PDy!Vn+BXsf2)VaV|l5T5xpq#!Nn-ZFS2eb z+UXtyOvR(G=Rx5$7A-pZ1jXxoTZh192+Zh4bKq620pVbMOJ)lk>z)Jw!UOXWs1@*3 zOIQ1>3`Is*TN@p_$~H2)S%!gFt(Ro>$*AM=Tzgw4!!>+lSp85E&|g7c38?%Osb9sV z{vdkKt~3r%1V5AgaeAjC1b~Oo&hx?c!6&U7;)9*a!>~9lR!S^)rKN1l?aW^Rpc9HyjDf&%=jolsZ0DhZ;uPr*$D* zIQhZtR^yO_U#8};ALA4pfe0eW-QR)y;BcgUIPC@W+4)eiJAp@rJ}${{;pQ}td6ao^ z3H6e@;coKi-zT9)fWm$~=%|azY<%)EhmyF|ymvD^Wmj+WoN0)T3@ru#Lg?!HU5&uB zc4Kb**8ZITJ-w#v99RJj?2*so?}H8aGoGtpH~P~(67O={r=}L|fDR}?s~7hmNDTwd zCdbWQz_zs6^urYmld9pTm_ekb)v+Rmc#kJ#gVF5I2CQ@Qs38G2beI?FjSG)t68w-W zWtl;_S_Yo>l!Vk|EtB_6#z$lPsBuQMW~_Bs7eJ98Jm^K$F{`YL7jk6xH z4#_={b#i35JkIai&D!yfD`z)93ALPM72>JusSN!C(88+}u=>y-@ksK24;S?2_) z4YNM&D_Vqn#lxW^`4EC#GF6oN1U*J>L-u`T5&$wn^70jY9evWI_a5Bsz-mp?X>A)k z7n;V^+zN!Lp4X3vOK?$Tcn8$dxv~=$&|Gz9?oy1Wk0NgzWPeWft#Nj2X@C=T6>x-h zAvxN=a|hDnI!*!@yf}H$TjR21jqrx?SdhGrs{=z+Z+#`7tS&(*Xi1f)du`md!K%ue z%Z6NJ`R@F~{>)Yloco96YfGW~X5WxcuGevvYw{!LqlJ}=09u3)6qkffRInJtsixJP z2C42xnYtkoNzKZ64OA(=$)gFi6irpLI%#J0Df)3vF@ts==*$}n&RIDN)Vznd`2$^p zWegqWx2Ji+N9TnSiPhcc1vtADL~(XR9Kh){!sXbUL=xiJY;h{FEq`>^Hbmy(PK}06 zg+`Gs{c(zn07(l}6=zZ@6ZU8HL*(b|j>cePj;^;z)wAcI1^#g%0etnDLKk?8dN;}s zPTxSM1U*}Z!nH2umcVLw!i$O9+YWaSkDJCMczEZr^g$asgK_yFyduRiiaz% z+l~G4bO<{I@UTT=jF0b!bd8B*zmKLjE`|5Y5^xZ|`y17!<+SSO%hp)=h_l}D&sVPn zsw*Kz9g6l}y~AnaOxLdDI}-9)YSTjlqCmfKS9^N{+@-m|ojY(IvaWt>jCe(Xa~kYc z!}3L|G8gEtbIqO;bChB=@BUHhoZVmA1Rv-=Xj}f_K6#4g8J6M$8u{+!VRQ@Z6pQ7; z?8#`JVz%75R9Fpdv-f^RNv5elwKV(D0yK3!$lBdj@RGS z7hM^~hU4L`4#OGtMH|=rz-m{8#+7XYV?ljZM`=JFSqIfPlCOn>-BW4w3C;sP)(7zB z0|NFNAtZ4G64|jbjSC7GKr1_WlTUpP2c4^S~o)tMGT&XoDIDbAXo>LXDI7$3=a2BkyK$R zZCNnNCQq#&E)ob9*%HBTcLRWw8GpQnD>FZlNDf50Zode(xrBKf?7D3YAXSxbX!wkf znhO28yB=P8tWyPrJD+*9)w&z4$(AHCxVKd9AaX1$i`Xg%dI@&e8(w`VSN=Ez`OWGj ztY*d$IM=#P!mrm1k=cNM9&KbSgR-#Ge!fG>JV3fXqp!Wg?Lr|4b=Vc|`H~o4%KO9Q zsH_MLZ;wcixf^v9<_b7@qnY=8@)$3h7m|pN{3yH1WG6zkpM@kH-jiALS!-94Hic2-mD8kr zY;?d!VveX>#nsXUE@1mlQW8qKE2eg#TG41p4a^V)F35@Of9hJV;X zDOXu%JTIjj3*!2EO!pE6C}}+&m4;87_2bREU&d2xLY#vMD6-oDAq&)mRyw}ShwXo; zZV^-;Xt?Iyg>Rr4IK!CA``yx_0d>c*i2zMgdy`61!)iN?Uw(YZcPRvQbeo2a@-0xi zDft_Wdm-Pp6>?~~ZV~{|A#0wh2IKXSZormja%5l$)(QtT)Fad2-MV(<5PPzzXy;zL zF)3?Vbg0cM%vy(>N>Lu5M@!EUaa|~(0NkCf7$ChZ?4dhgK&v0ITdn@g`>rlgdp#!5 z;1PmfTJB`A?%uPG=Oa{DbkiXXQ)qN=AZXJ8{bCb+XM-rYz6}mRn{5BH+@4{aZJ!W{ zyt}Y7HCHZ+&{Ic4JjeC?klx~Fh290LnB34s5fqMTF=|5Vsr1m=+qzk`OY|Zn+?u>U z%pgV65X7s%4#}#Rr2dJejHuc#c*tcj&u%cbb~C2|RlzqIMSrfX#p}*G$llVCEsdjT z3*or_ZEqb~RGA@4GQXJ?a}!q^hbfDIPMwN^C)ow(EqB6@E4jPDx>+y*yj1%zBH% zlXQCPv@VUN%13G(Z>0*9g5bQNY>A#{>HN!gqtXSDN}bt@rk!L{?CH(um%!i1(&C(l zlhbooSBD;qETC`YJ40vg^ovrXfrholP}#HDnlwc$k@0+)V<7-V30_G~{TBp`;f zAB!Cmrp7#}W*7Rk?vE4Oq!byM2zJ6j7t08P_G9Pk9z(O13ENrT+5;aBqYxd}kR*J8 z0p7?_Djv377tfseQ>Jlm>3P~HSj?mp9<(X*%-?fENyP-N1b6h=%yZ4hFLD-(eDhK4 zW`~*`2q5M;-8JP=2zM>@FN`AEH&|{80BzAq0s_fk)tYNwIQLu)q9d!SyC*OH3W}FC zV66pHGdr@mSA>T34c^c7$&hL*|}_L>3NJ5acoQcMjEC~Y_PpN9t@W$WgxYMpT01-(+46B zTSWn-C=BH8hzY6aSl#TL#J}W5-fb!Sy{(C%Wg&exnb1YuZxJzpH0?z^zw9)}ou?i9 z)eDD%9XsV3N48Tue3+qTrZ%v}Qf~YnBzl-Ss*!+=#gv-2lh_M^tqm=_syjEQLVKl* z$woIdqoMC-VA}Az?rk{9GfLi_2w>)Rp%cDJZo<3?4W9-88h&`MLn2PRREXO7hUfNM78;eN=5IXP-^(PoeXzEZ_oRCR&gWYjVHSj{o?epym$~$wcm&$#tJ!mU8#l2F|=7X+v>pis1A)?$TCn zUPF~lN<=uy;#I5$5Xp{JYk*h)fA=c!Rt9c?7m;F1)gP2u$r}W`W5Fu6+Bh}|&Uj#K z@@?Lp=5%M|T*^IK4z@uHeju$^dygJi-|bCprj^qpewdSDXF3Ya>`p&EpvhxSMl#{R z{7x|va&#aWZOg%R!BFkTZ2bg4)lyIUke_hGIn4CPZ5@JX@79Huw#>G71v#Evy&2s0 zij`7QzCamM5rL-iIC|}Bj#w!kN2wDJpq{IUC$obFSby2a3+B(FJ8={RTJ(;cT2JFf+>%fOi9tI zmoyJVGMGG2F7%yIUba5?n9GP(__)8FD3q|59y<{e@#ss`Gt0>72=ybO)Zr@5h!gMH zk=i+>4i95rYIW_lQ80Ys^V)>7Xzd9NMB_*m$4!}q+NMZSps#2Z z96e5P_gL5}=v)+Jl{epJD+|X4XI#1FBIV(Wj@km`T+6r-@9G063^mip^I1^&0>aRp zGtJH7xU@MN$_ED4YXfO?r!5 zozr5Vl`g}Qu6LJKWby&erpukG^Wm*+NS6jCIST`vzSz9!AI^LnM0_c^Cu+uNA&3GB5x#D2hM|iK@|N=?lhWz{NQ7! zS&;cjE=O}f=z(HZlcvfQs_U>(2_vqDuSCtL7^w^}Kgo6mgzNE>O~350iV zN62??gtE3KC7DWVAfVUhCkrf$OheK;HpIQFz!xpo*~kNT3J(~+s3+uN7iFZGNzTq& zHFfx5*!kf#A2rK_QQ7b~t2$qr=eYO#%@9P(Q)-jgcclauc)5T*iLFhn^yn+o_6P;q zBBak^;89r9SMMb1;*#C?7kWTeJL~+q(16YlP8&~@Y7QVcl=U*4v8-*}mgf?9D=HG4 z(v2z2ZlH3q$q}<9g$2Eu^Zf5iWv9TUc6WVO=KbD>@OC@Sc7pTZG*}oi2G(6}q{fjj2(X{OHYpEBueXqlt`-v$*R!mr zTOEnuXRcV|9r;}EKa|3GwSIBXyGI$w`I8mu3y*k<_VS7elHj7Kq!W6)d0rXz`iSVx zW;*{8=l=?zNn`CY%DXd?s+8WY51CA*SDJXN(L6yJ61L_D@&$ga0m(pC7IR1IEe3Lh zos(Ofj2dpl{!nK6X}q`M779B7k6RVhMnCA7#^*BlF}VB;ljx>7ZdWDQCy&(@rpEp} zB8(mbwv(P=s+5EzRY}iqN8EJHqEw-79xdy@`8aZUx_*;&xukA?!m_tGh)maFp32CI z0m;78!9+~d=bMFXp0zZc&lG5(3cjCOP=*^Z@~F&%;6x34?58}`B4Mj@ER{PT`XDf+ zjs9!IaAQV}Htw95!=~Jn8VKjDeemqZ+obU$w+BAkJ6x#+J>Ppl?jCoHOua8PY_JG{ zn9+Ab>R97ExdNA;jf*hhU3fkxN3+D)*sX=G>XXJA8B)92SAjZPrdnez_EE7g#P%UD zp;_Nis7r-Y-V!O$=S!~h>~1?t=#S~b82Go|8z_m?ml$$E0zOcdY=A<6Z43(3Ckj?3B8V^~?2$_j15BcSav1l3x2!c=qRHT#>Iw>`(y0L5KYilQh@2pxvc6Ty7eQh4;yU*jSt zH3#*VbTG5c5bB6q$KwoHDsQP&*`LU<)kU@{6cV33Iil7KdCqEQ=g)>V$F?ZqTZV?82DNnV^DLIqkYuex6VRRAeqNAX- z2F2Yw6WDJjOB9OyZGCFKQ#N9<7tnKiU*48;;?f6Hk~H@XjD5^In>3vMURt7z6nA#- z_oK=)HX+EgU!KI%3bA;>v%93UO&-OZW+pR>9Y3rOK%*?nU6}XcqQ)7cl0C2wqliN5 z5XuYvp3H8r7)UIn;e}Js6I&ghLxG}xk`XDvz5VrUrmyBe92>z+C0KJ~S=b3c!G z;D$LDQ5T(rWnajLV-)FrgyMO2_F3RN&u#YT$ZNl)45oHtdD; znwBw7%0emLX1$hU7=ahV9w)88&LpJ)M0J=VxGw!fu-tRifb?njV8-S{ZM(GSg({RH=@?Kefwd z|Grc!?zL0#o9L-y(Y*;jRHH^#81P+(eh2$ZWdS~l&&FF1YrUrK_x@`71`L9 zSdXM10Uz}1y?&6`JXQ7)ZBX9g0ppLwc6z7!&L7Z~1V)IxnXs4hMr*~xz5rJ>n4Q#e zAT0^^Bu<`Db1!ZjpD|gKqxil79KR700!sQ%0=~K?uJS==!X)C@W8lAA4H#gHPDt~J zQ?@-&c6&lpRNi5&`5mXq%ie#-9Zx!Fu1X(K!dyc7{@kSNg=-9``23_nuTeEs-+8;d zXc<`$sI>XW0{&w(;b21rhKYjG6yKwyPMw;?>Y;v5lym{;w5c?uHBlBTCSDJbXf4uP zD3e@18oJ9R$A2M)Mhskw_3~#=gZDzJl+cOIFX>>o)3RbVUY^>jgIgO9wqeatF3AZc`H3$L^suWsNC=+ zJWCy!Q(YS2Y?+a3fqTyXhrPE7jw4vJbp;k%%#0Q@Gcz-T#mvkWGcz+A16#|Nftnjl|x{gm>gP_p2_ zD}}={N0NuM;wJ1KHN3F8M)jDn=eivyY;IiT*pToeI%z_ww8+~b4}y9 zN^8Btv~@(KN{>{}hIn`3g+=ZRwQ5!gu^%bu~2nNS^BL-z>TIDM#eU-|%=7V4$@*B4^MKA2m88-IWg&)VuGOm?ix z8rLbDe|`5qdk)#hyEjd7+>VJ1c5x~0iHWQ}L6Y4bPcE@dm7%)U3@=>UrX8bjqvoyn z66aoja87;K!YC%qm(KEq&uB^M-EaQr$L%<5U?X|h`-I`+2oY$&la?a14DsOz-dd&C zMoJy9VezPK*9r~CcZH(ts9gu49y#2fG&e|9>x2PA#Z4)4qG29i<|I61^YwF&W6kg2 zIKdEB7+Y*y4EtfxX5p@X(x_nltA zo(hT~%+~9fdl)XIQ0JT%Td}&yw0b=s9o?fLRKOhgIUzH!W1r~pAuP?Y8qs&G#nTe! z1BWN$TfvED_X@Kr?B;-`DXf9oUnXl0xpkD@v$2XiRw<`N@Wn8ra4laON3{ZJ;idiIbmS5 z2<$iMeQhc@_1jh-7)8)M@5O+13L10h(>=A5Dr&i@1JFM~7@g}H8yH=`C*-aa)^e&1 zhk(!C``KxRwT;6PbjLqKEhX7`LCw^ku7j#OD3Ra0ap*6?aEH`YiL^B#l1GtVOrxL_ zrP#qlw9k`Vt>rDP%ycvDT_JiL8T&|;siQD~K5d?j<(Q90yo4=-UGLw)8#EQN5FLk2p%?E?j2PsH?Bc{vk zN$2O}YP??1fG_OnvU2OG+D4$BG_<#x`w<=tRw+&DxoG0kaoFQAlsA`-pX(nOa+&ET z+F}r|NnX;5akv@Hzk_jBZ-73ocIX326_hfIh#`wv1nHH}X`z*tQ9Fr%2{W7(t3@bhcwU17AX^Dx5&O|hJzY6thQK*zdf z>Y<-^t0rMs{&`Nzhh#>$H4qedd96!!y!g6K6+kUbe*Cid245mQ7O|;tR<1ItGo#y$n~O&0a&+gJ z0Dy$xZk&~Us=9Kqq@=Xcyloy0_{kZ|G27AURVt0xAyB@mJhI&-RgvbyeOQIM?XF1H z5BeB}6%?(6qi<06cqSr6)TyYdU0nsaOj@#3sisXwMAACX#v|b+d5sZ)W1XgCXPX`^ zn5f+s(Dz>M-R*s8JQW8t6WAOrm2&_A#gDNU$0=Jtl`y4c6zt_FU$iL$P(goS~8^Ydd{`nkM&3TnbA!jz3E<`QX-ImLsgA`m9SZPH`!J-Y2L5IG#J z{?vkF6v1spX4Ot-=5c@tb(4l2+?50U>k8o-O8Go&Fa!oIT{qt3>HKiG6R-pYVc~~4 z-^)+r9xUK`(lPUWs&QTq3Lcjua(#0@HkuADMFIeux-IBBn8z^D>( zw6Q(Oy*KBkmv@>A9M@q?8a}kDpAJw~DG>LE>px}AJVrS7N+2C;U|{npL$C^M(Abr~ zwl+cf@EVVzJ2H;Bgk7hqrzVw&ed_#pnI9O8`wSKAXfkLllr98F`N@K+KHm$uMk#p- zv@&UgspBw@N;3s45y;H7bP&f$G}zgCDAHf1q-@`~UCtR8VM|w&4#z%W9yF2NsO<=( zUb

    8{{}8lkIU~ogluKDOPTVDc0A-LDr4w%uhc#k%TauF$QN{X12V_T^e?w5h1&h zacsf|GUu0YtU!HA25~vDyW3{PO6*qo*+&MV;}{umUMlqz zEhdQsFxzD6H9GW%p4YY+eXz$>k*%e40%SlY12Z9)^QpHZb_r2{(3^WN#EYsO3X-rR z1}n1`(l@(K?|M3TA&__NV3E7wzGk=9T?@R+2C8wt;pcKw@x-1V*|IE*?~A}QF9{)T zWGMeG<&mkVDChuBln}3L`=G76!bW@xGSCb6 zjUX8QRT8)8H2U)0fGy$&%zO&BL?e(+fMs#kQ*3&6?!kI9lMaN_T;GAU$@#>H9#4Pj zg6DjFB~Tigbwyh)X=n{F6T)y%s+uxlA09z6{$+B^#g zd@E&1t|rO)HO+E$-8mPupd9lR!{*YXg=fA5_)FY})AjW{o&V zx_QyG(*DMJOJC}1yMENIKO(n5>mxCPTlTZ7jxq5tz_SqV{Z1x-a)nL-U&V-d0%end zl<8G1e#|_kcP)nkmFcsIE?ietT7yfznR~dEhX<6=y@QJDh!26De_v2H+jF%Jx%ST} zjrh0|qpTTaAvq?p2 zu7(9}?f%0e!oa95t|w$WDrPH7KLdeT`YbbG4k+Z@ccH(|7(4h?hla=7xtIt8!)e~F`B+{D|W3ikLN5ENbuT#6kw7m6H<`8y%Rz*5+D;P z0e1y?)k92e?JSyI=>$FQ?l>Ak)bY;tue^{wmTo)Y4tuy#3}&d~pW6gJLcVnMm&B-1 zU=b|#ZbEUWusnKVeCYn6%tRd1j&G@|bk+h}hZ)t(6@GjhhMQ$uM_*VovCsS z!SwwC!QeJl#W9f|X{vHTPR#YB>^`TJSjp~-SINbbYcq%dpBwejnhp+0Ks;UXd7}WD zM~jlxkA*r%c$DTcE}k)daSLlF;87*&eoe6(BKx&P!jmFDKZVfqK=4+_1+`k>Bq~+= zVcq>91X02^%R*AQu`0+&nO5ru=wzWH$Y@X5wBhKbs+3QfeYY<;_107=_H;?@Aj-ov z_UsWVFECh$P)At~CYx|3kC@K+*A({r@}Do9LWdlS=T^I*ih3wt=j*XRYnP5yCU*q9 zRwKqqckme_a?U6(cgXuMc_o=Rcx->F%L1hsoX8*8wQdsNxXtYljzN1uNbB+m-ePDN zmYuz3U%XGT2*dnD$ui#}^{GlLexmO=e(DD;XKh-;mK&aJ=U`2EU@Q)7 z?RatCWzlEQ3s-T-HMDL$P3pa`V9u*~R?-otXdRvk%V#vY?y~=)t6j)Vloy2jEwe?n zknDh5OgTytq02Egp1mD~{7WEMDh1Z>uEp_CL#(s^F4Gk9!ZAi6IgG78g8IPgzGNPPB#(OPH-h5h@Nuk_k?Auj4 zr=uY(3KVTPqYbH|%~iT@gSz8Sb^YA;3?MU)<{wIuc^p#LNh#F6Z$Pw?V3i*Z`_ub; z`{Dq3^g0cTzQZX5E-HeERu);rAZif~nyng}x+=2KHmpw}8)5G-g)NkPzt871=l zoa>>R-$C2FH@|QigvG{*Jm&^0m4}ObA6sg;SNC4&!C~6_QkUjbG+JdG*uEehD&hR# zjEp;)5o1Q>EINGRs9*`fHH7>vVepP1LUDkv!3Alzw!3`p)V_DOEwbg_0q+4&Az%{zSHN(@HY#qCb|fZW{4 zj|Gy)qKvYQBkc!7lXx!eshLjowJeEU^*0hVc_W5$Dxvyk(BWW;Sl$JVdxF#W5 z8;D~G&hzE+ojOoFWTAT^-vF+N-LqWUPzt5h6=!Phc3` z{j4vDvo=h>Bbr53en;ng$I8X2NGeG0(=kmg!VHcFu@G%)F z!`iJ8x2oQl2?0uV%bG~uu!Di`cq3CE^vVjyXvJ7oqxAHiO2X0{$5N=IAxAb}%(cTh zJ@8xCj#Ko5{N^fxY07~P6Ur~|uOz_TO%+E>>S%dDNrc%O%|?Y>TK8PR5d-c;w0W#B z(Bf8JZ7DZ4yurCb{hThQV!5e&-cOgX*pE0`@V2(hsQOeyzV_8&EC}!wxfP-|Cb6v( zL}k6f;{A2^G<*YMp1R<~B-{~;B-w9(2bMuYgdrJmEG1(i#wJ_yuJUpT?h+&!*XrDH zUhLxhcDA0&DJBka_0)?JR`Ov)8sGU?L80lqb|4N}*x0Z7)pGq&k#3@-2O={0=Z9uA zY*scQBA5po6z=X=3fV&nHcA31W_%#KzMQ2>wu8QOA^)qP$>*m7sRgCpJ2n_MyVq>I zse%G>|2N}gk3B?K)?E8+V)WT=&SOa?!Kfb-?JyLD9tK>nzhM9C?62I-GoK&@AH}T57Bek<|t7Q)wZO##`CXAC#8m zB=k(e1mSlYn=u*spJHYR$izd+oFB%+9YCI_q%QR{=ALxFme0rF9}33<+-k|u%RCv9+%Nbfs(xEnR+Gfy^eeQQFf5_A!ywx<+E6nh0wlot|IXM zi3Xjnc9QgL@A@*CY&?>Cpx!l?f|ocsu<-Gc!LAX#7{TE}nYgeX>lK~I%5Hj&8pEs)5r!*)fzx0f;cJsb@Ieiw3D@3*gxb-3e_!E|-EBugp?3=)Y6^lZ z@G{(_9IeLqJYOGo;%AAc?!pp|nc$z9XE-=qX0hMPOJ2?Y-GQ3wEeeR@xXsh=4e7B+ zhB4Mcl1^rVo+_NacYKnO0Cz5MgPJ-vI*7~Hey(5cr>R+zq5wo_H&;>Cj;inXxYs+( zjMK5R>0S_}bq3_VO2hi@$a!!KNF9lJ2PJtY#mPClhPG-x*2ItM5Z->xUh$)F(Ilh< zhB1Cy(qRK<;%YGg?T@455(^d=frjR}+X{GH$3&WW^b@E%v4MH@CV8Wq8<=kx#dgoIsJ%GN5wkCj zWy@?Qw8QD*s6;Uwev)U%xfBA|BOj`AN}H)o9hDPaP@2lv4@7(ElbdXy>&^@{?8b|H zcvU}TVm+JlTA6{gpk^X|FQrM8T8PWu3o;$%GS;M4v5HR8L-w-MerRYkn_Tc3Ri|2M zd$;KnV~*PlD#G44HeV^V@5b-Yk1lByKwLJ}%W0+dZ_BS?(8ky{~?<^uei6A1b#XeJ!;*9BawTGg)SYQBZSWnWFAMCJkZ>u8=hx=8AELFV;08CofVJl zW9a!AQ2=@U%&B^UZcl5u*lVg9jDWIc&PCdx_{srHzD(5U2o~XB?WM{$tk1a=cqc;0 zy1Wb_*l6N9=f$%H%mk{^8Tk8ZtlkC2en4B9rPE{DYVuOk&csZ|f$*d1{8A%RfKnD` zH^}R>J=SiXD5!h$QBqqdW#_>lR$A=LymwR5k=DE8UbT$AZl>M{^upStubNuQR?KWkuu;ib?C2KD=uU=qFYW$T|*eO z_Mrz`cB+QIA+0xp%_Vlzl2nCyq7_8{bl2&`C76WbrmHVRf7cxhwwq5VsgMmXDj3Z; zqmx;=suMV55I$<|E2%l<-A#`HQof|27}XW6S}@D{}rY(K_KO0 zB&X^Is4`M!W_Yqm{KyZuACE~mDA`qRxhvzGKe>DNon6uyK|pbQ2f_d1TnX^V4+I|O?eqtRcN(+s>A>etU6u<*T_w-a@SCFgM3S8zvY&b z)p@<8#Oa!sZyHCc=V{83G- z?pl%voM5I$y63vP{63~wAo*ph5~dzi3(uyBL)G>Y9pz*njIf_2Z=DX?8do8lC3aOR z!B%U_`scP!OC*CZwe6g+;J5zqKahJZ}TeZkn zj<7gVN?8z2;lkiZ6pT6RK|xS+tRFX`ATbWR_-X^81VCewv>bg8B=xnuVuAe&u97pC zNg4701G*qPCXivfa^WwWn1;EsVD{OrH4B^z?OIFJ@~dYCKFD51KfBgbQ{Azde)xO1@FN`j9PALM$H1V*1d+4+g0PB7cM~QlBJ~ z>wOyID$RE>zwy*AVvt_^w50po2@x78q_SJFg?-%Tdc#Lp>oKzvBww=?(X}nBKX10U zm70r}s_BdAx-?ZvijU!x<&rLh2_uWTsGSe^iO;y8&|t7$^A`g5Hts?KH<>H8Ov*4@ zo0CdxqpnNexhV|pxYLS@Dt@hy% zEhg{)>3!VuK3pZ|`ymh+QoCkiJ6DH+x)ux|n^2PWdUO!p%8Fp&7&WV4u|8EdW#@3xc1c@tS$gMP8X`me>c96O@kh(r+EEh}cA?;R5 zLr|ke&ex3bEdDbtfVP0#8SwHOac)eeeQ^aidN~_ZFGA0hCY>$EqJMo;bRUFttr9CT&n#pL8c?M2mEntCM$VtN%hq2Jt5+ZJlS&z$4 zB6MitoBSxha|Z)y$t-FNB332Cx)NWRhIh&AL`4Ll(*N%LHkLM430DpQR&}`$5w${S#x@Qa+gOxU~zXp zz_@NctS_wt-+8)$2N5j3Uzq3{ez*2{^#-(O4|)6VEUCQ3{HO9ie64g0v~>SO5BTFA{N4SZOt4I!uG4?>(f-d(uwue|(sHu@drH8ckpBO% z36_!hpG>g7?UeuFf&FJnz`qd!{+~GkzemEt$oh}`|9_zbe6j;R4ZHtL3HaUn)5H2- z2?77br1}r@@xRW_f6oT^uk-TXnN&XqNJY>3>F%WazsLq){zX$rC zF4cd@{r}@q{geCuk1oGmsw}^!@jra4zu5pRzkv*&umAtirTUi*@Rtqnmkscj4e*x@ z@Rtqnmkscj4e*x@@Rtqnmkscj4e*x@@Rtqnmkscj4e*x@@Rtqnmkscj4e*x@@Rtqn zmkscj4e*x@@Rtqnmkscj4e*x@@Rtqnmkscj4e*x@@c(l*z^BCLzheV1|0C`HU)cbE zlq$b9F8|5~_#;>OFS4lr52`3>b#Zk?=}%P@zv_RB24MM<_zp=UWc3->Zfa%xJ4Ie! z-r7>v>OU*OrgruY0w%h4c#NMg07>0{-=U|c|0h`#<0m%Yv;7J5XP{%iV_;#z`@Q`X zGkpre{wM9vS%1#>WGZ|@2ACLrD|T3!J{#?4`#i$>DLG^Ld>$5B7Ccr~#?MBJ$4K{k zT0ezUEX;Uxw4Z{Z-$ho&&#?W^`To6SWnhD3rvKdk)Hktyip_pskdE$;cEC2h?|10#tf1LG?v;TSff8|QQNB6I)v_DJfA7ZWl6FT9)uFL;c zmB#oFRods@2n#FS|CXJ=^7)ef6FY(F6OJLEYa?oCYHZ?w$ISNckObw=_3`;o_224{ zj7*=)_ut?Nj12z-PoSe``h+d~25WpO#SDK7$9^y3f2AkNBpv(6Wi><9!>m-uJIcR=J zUReAgfFH88Hg>fSfT};JWW?tN)>j+cY|hbb5lzW?30!EM@0IlytNE6#T_~l@ z=lk;j647m#kGLF*Q`;TSA5<$mUltV=>%R3VrMy3Ie!z<$8|)lb9PPZ4oLwAx(+a+9 z9KZEP$22Xw0DoOnTUzpoevaPo{xH1N>C49&%b>Kt!iW9B0t>Kv40+Ax!-)>p3w;R! zWPwH1xeidp;!lV9GcS%K9|(XTgr{?Q=rc=+)wL1OLa#&WgP#+C`KlurwUhV?^$Kv2 z=!3uuAZ-@6cLe5p+F9qQV;aK+=uM-Srxh#7l=(YH8Gx^ByIcV7E z1GcOAumt=ip#E+={1J|1SFl9+0sQW?{0gxj2(D+k^Ms4+^^(D<`5_3fgpaTM0f--8 z{=rKfY%fZ(IdFSr1#cQ>Et^N+&qKrF{v+t(48 z#}>>Yo-NJj9_f!BXx)p~1!%GTuXZ3D%YIaAAL{sI@73?-I`10H)WNmm(Gf?txZA+^ zHRfy9;({ zSM%~Q(aEDB(SyBf0%%wFsQ=goJjSJouVDXip!7wp@}obIIoj|msJq{ooN`k7C`gY5 z!!iLmaDFI{N*4ovm_{85Im^SuLvCON5#LHu1VtmQ74s3dqVbO2Y0rg%3s-Do-|b_G zl$g$!79t~R?hE(SbK{OPqN%oF55V#zrQ^zk+*ApcrCEPuN3?!f<%B<=E z*D53eEvSCF;7%^_O;xe967_*Vb(dK~MVe$0zr$Yu9|w|G?hR?cVO|3 zMMbROJDGqs4Po^){lnl0V5mwvXBW?Mh57Dwfs3e@mBOs~)Y`f9b9POT8X5QuJu5_y zT{M~*dfWV5NC@|LKy?&YnlNS+mg%wJJV0!(V?jt{QtgVVc>9(li(jQxXk-I<;&>+G zU+m!H${=Rkp!40x7mi_qHg-KlVqF5eMmN+0LTdy!1jf{;OKrxE0r%CY!SrJs%q|E- zk@oY$3&G&L?T3s-Jm>3LHJ|l3EhKqg-P*CQa+8hlWdj$sNsVjaDX14OOAGJ2w3lC_ zxmE{{$K)j4eZ@q*zQbGAjTcl_b^O|(?)P|sVCQ(C)z<7g22P?xU03Kkcgt*(%)E4E zcJeXWM2i&*VY@ngAAXKr-WU1#;<8^_uX(~$;hHa3O!>H3O!#>v7=D*R(iB=*g(Y?4>Xy&$Y`PZ?*w^u0vM|rLeUlTPVbhBAqCp;r`~HlL zFZupk#(IqbA>lvl8X$xXzhH?b-(RXqhjw!yLXt#K?VEAIcMJfLsQW2PHVZi_VC6LBP|UaBud?8i=6DDLjaYxqnvN2N>r-ubJ6967_d>W7Vs zrcRoe;(a}CKAY2-ZJL;7-DBb{gV&rB5#QblXqrVGrbU2wK*L@0RZg$La1kDGT|Go1lsq=x7wHcdA6^B zYCbzo%r(B0EnH`Hx~Cb)kaA!@eiZrI;0aP*DCOnq9_|TinE%@x_7BG@zp@tI*YCQ6o6c%CYXt34^B~sca>O1 z*qb2ikbyGeDCMT(us9K|Sq!w0)CV?WJ{4T9AT3c|?Pzlrez~J}(6MRNr-Qd>S^gzf z!hU%asUFmwpK#a4D@@m)-YQuUc|pgb+U8=NT@gko!eR83QIixpNx& zaA{d4#l6)hN8s3a--r~UgSv=1TtF6~GUst&9-KkNkQ-QU-c%rgTswq#dAW05p?dh< zI;3d!5h2G(#Xq$_TnV7ESQLCR`KcVGt+ zlYF(x&65|^%p(f@6zPM7G-B7z@ha?>N^;w=&RbBNXZD8P+hy5^ln=hU7X}w)l1$CD zW%1Yj+jv*O%HA1ud94fs!N>WaWxRnw%y7GN!gEkwPv>daJaO$&@r`I*cr9gTHPhUP z{IfvhjkBh(f@|ow-2RAP<fSUIp4Vuchf@$ZFT=B(IEAWkB8YDJ(Ip90pZ3q`10td)yUeIT_`N%i{Lv zCEyTr?l3|TK z(@ff#{FdIfpGLBe8_8ngQ9K#rob5va2CV%CTrIsT$}+l|nO=GhQ0y1W^-EBn z7{hUH4o^c3er~#|o?}b=_1?h>z!5{|3PjDSA;z{V=Tra-ffx04Au`70)?MH4Y+kRV z7Y~?H-A#^3T4lq{u>)OQNj0wy?QCojfrX`GChOurMMy;X`q1lfava_XRg{wtJuaEZ z)h>CcW>^ibjN8N6$t)EdHtX&StK^e+VQ%P=Oy1NZ9eKv|F zFEf#HM~b9&Uw2(D%AwNnrL%6y$;m7ugHOrQgl8Lgu3?SMG#w^(x+S@FiA?Vt27%b8 zDCSNDTy$mfu=$JaWbASrA?CpqtT%s!?M6w3z8MXZ=r(gBI%y0dihD?P?%OgTJ}D_X_~VaS!N;Y!QW_IvS;<$Sjb3*DwS4wmD+`uP(`U#-EG8WRr< zm9BS4H9bDZ&k$#BL$b$>11%L9Z`j!h?)B#`B@Q`)@^gMUblo@K6lXnVGF$Tl(Db!#Gh8utNqO`0 zEdp`Ys^BSX8`q=cPVZ!7RaBfrZ3k>yt@ep=cZW-CP%)KNW6;Hv8q{qqOz7s>9CseT zn8d`|y(HltLu~&Ki4OB1F$t2s9kKoay(!47f*<(Q`UJ&lAp+S`!0W%gSR-7gU{}OY<53=@h-WEGaxv=9_D3^C;5sMo(A4f2K@`%tY+U+LE{BW)@UV8m2e8H5})O_VT zCE0MIutdaWUnuohub}J1Yb3Y%oE7y#{N!<&XxRyT3wD}jWG#6WbKVt7_|Hc_72Jhj zG4$RnY0C&JHDQSlUUkoCH7WLSZk zz@%w;TeUVC`YZugP;S?Nx|W4oYQ_SZYK=igBB%iZZgONSu%6LQKv6KrbCH>dpfa^l}FC&thXu^pxxMW5-b5>5R& zg7>sf8C2p-=nf z`HL%L+CH>;aG*8EQ>iEyoGdAmV}k8593R^JCbJLV#He2y0~9P77Spv1tbXLgj`~wL z$*op>A>Lyr*SWh*B|khv%93{>KTV?DU2$pEK!}}Vz%~Y^e6pA4h&~d9h@-6Nm<%*^ zGSD}Dko}&abnO8%%=eR_yB8GwYY7<3eDT3SK@qz1mmcC=@(pJoY=7lU`R`W?;j#kz z8)kBLOt_b@B!~OZLfgCHp1>wQSnse+PQ*hv&XHE`>_}J6#4;?z1>3JUD{fUH&55SJ zIq>FM9vjVQJAWmuR4H@&ViU({WWt(5ThjsB3#Lx!Z9-Knt9EiC3$>3@_M(VUvTz$l z(6)@VMM_Ix;hFw~M-v%#%GUrFV^Y&FC10WV%o-=EJ>Z<1qkWJyl7fVYAJm}Pqc5d@ zLPc6$ulRbO9opB*d8;aMTyNOtM^1y2W_b{pCtjnrQ-x|`AYa9DLA}UmQQJSdXipIm zYv5?t^g&J3|J7^#Yyc?*_*5Tk*g$hB=W*z+)E}rkbWqq1fz-q8^ZiYma1VHY?Ptn* zD7UF>Gt;$#BE<-QDZ8d-`y43od(a~-?a#CWeO;=I=c>!oDbO_3jidL_dVvHM9q(t6 zh94j!6;Fjo(ewL8pD{DaTpTarRdbcvw`ol0djjb=iq|U5Oznu){!;bDlAenK-12^3 z`s(&zacfNFaPtx|*D9i#q^!!DT1A3aJo=n2)Vw;4L`iOfKnXmH>OEA&ANn}$e>(TZ zv|IqBXdg|$ZWCEjELBAm{kc|s_e4CTTPJTL8J;O8POp}mg z)=u9Z@wiCtA`D}c=_KJ%=3M=x)9K4vsg5xny5;r#>AHO<1_~Lr(Wvs(3jS7oBk*|9 z{lyve9f_iTn|>G$s(Ls55)*%(lUA1FFO~*t7`lt6sri zZTCw--xA`MXK%=xOEU+buvI@tghf$eGU$Q(FlG}x+1v@rz!>zqPBMqpC6RZ?z0pH8 z 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

    2NS9X=6!_}oF?V$eY5i@U*57=lAEm+HrC#Sks& z(778v=AB?-`v9#6J|q07wxxj8H%J%|frnRXf2`@iwg#$)D(2M~leLaF3t$id2e+5u zFCYR=_b+f?^!IPk1lCEdd`E#f@Q=LTdZA)(&+vvohkv7F1pbVm3^*)fq8eY!w+`W9I!4apD$nEge%N_~o z;FS~znCd8@V?B-M^VuE08@WiOm}@H_ONIh#k0QIQ^MKB>_ZW8fkQsC%C4{;Y`J99T zG~H)2lWLhOTr)jil=QlSr-^<=(ZUo#m{6DJx)A~RFj1?OD- zgrl8127qFj>)DJowEf6F@S9NALO+4h9(lSq>PSkX)KHi-fRm{3BV*QA<0rZ~8hz5Y zpS4YtD4C|!-|XD9bkoI^?i%s(Ib6={)5WzK9+G}D`OLWx^Y5*IrCT*%Sp`W1HQlye z{pd3q`Od(G6&5}mDxz`$3VD^?QHLGu)7&`4q4M2TJW5RUoQTtD(6>Wu>%P}+3=>zJJ-by~`0JqTUB%b^3P7*Y z5-r4YhNfsEyGyL29L*4SD8N{8m2)$2*<6U%tOnc28iQN09t$p4ke8^hc67K4L2enH zbnV&=84#@6mTSdJI4_UFRo9eJSjWPo<_`Tv;nUssg0H2r@{dcmr*E#sCTsIpS{Orh zP3eLS#Iu9U5aX%7kUiag+^nMQvMc%$&ZU+Er656sZlw+Da{GZA)k|*75F+RMd?Te) z^0m~|vET}mJE!6Im)7Odyj%V9gwD-(&B#%@Xp3kg1r$-Lb6yvgp_w#HxxtN=Ed`P& z^}|S)mpkW`YKL#_!%7zKQSt(eiKbEs;vxL0E?DYXa$x2Gr_$eOX!J$+$GVrvy5rXg zcN^muq-}=v2X`Q`C|9dJyuYGZczwq>MSf=^kJ@!`zKW<-P3bt+eGQ5C&eFnw32tGYZo6UTH=y!36y8uJb@6_e`MsHcepL@g}dUhk{yYKNS-DJ z%jnJ$2{2Rc3GAnul=9US$_(mkQ>876r+oPi(%0AJuWKBwjp7}U4B)uXQ)2vGgwZpq z+-HyPVEbi;S9bQ{VK7wNo1)xsp4bZV1e*KTSDV^vhA266sD1|&OhHCjjrW}-RB+)g z_oM?WiwKxs9%+VNiv(Hk_cQ@B<}VAw0h%d(9%PG2M+p?nbN2TIm~f68@b!%DsLL4Y z76utVfZ{-`*Dt~RVvWanxx9@v1$Y^%dylON*87Gk0Y{BpE0MIShnYLBT+;xo1fMn5 zg(;Yq+jsr-IDB5nFYd9Vds>{6waZ6Z;|9CClj~lbIypF^f(uK>%+@7xspywN*GVdnyUL#lg)Qf2AcPRmHmj1QanIE&((+W! zwr$(C?bEiqPuq6)Y1_7K+qP|+_x%2YJ2TJZ=DFE#R#w)oomwwyCsp;ymjj*k_&QA) z{fyPLF`fJ&uD{1N!@-Rj=;>&cL+@PHg z+2z+LvXqx><|PC*Z&Pay#W?F^LCEv!%AC_1m5NQAD3)T`7QUPU!?2IQRGz*=WW+v` zS(u{0T}1_uk!H(pI&1{WrQ-Wdrslizpymf?+!OR#7F5cKdG4&IlG zsQEYmhf%|-tT#}FQ1_D)vGf?Zp3o8cenJ80;5mq^VOMSz33CWQLZdD~9tab`{-Wb& zZf^cN4DsViGgExqsUgv8hv<~6RT7o#uQ_J2@2g(KDNps;!{LPwRSTaXgUa4A%tsip zFK4nTX-5s~%y%q(vc5ust3W)B>IBOBX3c2%^9NZu)zud<`@#FRn?sU({ZZ08w5*kN zSd4My#!Y)GGX@3r=e;Lz=5g^3A1V0f(0f2xncbsm3yJ&R8aC`|ki=du4$e@zuNYL7 zAMZr`IpIaBXz#F)9tAtqC|3&TOT!Otl2hA!vV1!CEVpHH*Jp{(%obm^G=alMz+}xBV zwF^Wd)INK)-L1~g4x@)Wk{S!h<@@eZUGcLtD+eCMiUn8J@%WL;2}JW3uSkOu{T?!G zFW0}O%kS%>RxCIytTyy%D94k!4^xW}_( zJ%0)isYRKCYBoTi#0k*`rpPGRYqbAm#2$PH?QsuiU{k!OX(p_#*&1ppjvg%Rp-9ON z?;Yy`6a$C46rGJ65y|Tl9V1%WCongg@y=A6Y!TQKcBFgBte#-b_^jBcmY4zuZqkV>d)Sv;*w^)@wvVHi0`R9= zGetMhN~#J6+~z$qLF8^(sI*$X>qln*4_13Rot9?B#fBy|F3b_j`K2pxHunTUlJ285 zSlNboHB-mf)-Nx9GKktmakCbL?1+m>@98m}>huaFN6C%qGKJxA!>#idQv4D#t{E`R zo1+qU?3n~)0!?+#Y>0)6v601#f_|3jy%*fLUB&h^38pK^09iiO zjw=vukXp8q{@qHHg7EQ4L5+3`LE4r3Z+80*|RVM;=2%57;2M7O}56ZK;Ch z#f1X&FY zNzOzX3Nm46i}rw#tkDH6MOCxP=W}kvP$$o$hV*%}$xt8_Jzj>*Nl1ZIgXTdky1B7Z zE&C1KDvNdF@Z_o^b$Gn7vqRet9mz0^&-T>_N*eH`5%{>V_FCTS*i(5BP*udJm;(}p zm&f1hn=bJY@bOkf+I9q=g+e>)y|N1Rgitw`ws!Xt7}-CXvCZ5W@dOK@3 zvR#mDbE%B?sxY5YAjnYD5j=i_g(7}IGWJ$=Oq;B2Ra>Wc*oN1T%Z;W_uc-w2Lns)L zcS*CChSbXtk7I@FU|h!yK$`B^oV<>5d7t+aNgHIti3RMZmaqoM11u$9OGD;6lAUny zR%GhY2a(CbI7J>|($eFEMFU&kMFDB)d=r-J*)YPf=&cC7qPFt>KHQ}tZ+gid34Aco z+w;M|IQ8#Jm9#NjXlC2IjGWgO?z}aOa~x`3GyXWx5qKcz5k{Mlkn$QV=3+MMopxm8 zp3|Hf_;NLG))vSv$zinYfd@0rg!Z?@+aYIO|p z_A*h~ic(CPDaTXVLY&=9-G5$JsocciOtW32y((Sn-t>9{IBK-8<|Foe^xy8g58|Lv z;ag2>K5Y>nwRS?zR~;|AAuC)|x88hO1-u{U6)gd7P6CX4!!elHW)EEsfJ)tsFj1`N z_KZJis0@lSeLXD4dUd*cgr&wp)w=*h+04y{c_an;r&OF#*)$W)pNdGxL}XHj<&r~L z-uC#6Ro!csUgIoOAm8RxwgvQe5s3GFYVaGrRYj?F5>*EWze;Ui%dPRzf4Axhyhg^PF_QjMaCw&+S!hDuIXA=SM_!a z=Pb2!FVs|_vq6$lK*YUi`J4z!>Zmg=I7Rwys&T6EX8i&af0E^i*eYlsow94_jmD)0 zc~2CC)e(q#x->|N(NILNA6t_O3YD1RZD-P*E}a=4e@n6EIvHl`HxjT zul1O1gBhizaOqvpZ~wxTtKBiJJwQ!Dio-7}teq40rxJVZ_Kj%2xV0(a2o=4>dsogK zA$u@Y!O^x=hybl>W;=&^Wg{ENNB*NRUtaAzLgG%NJaKjv>Dka1zSFo}h*T>VXk#-l zeZ5p}+glRf@MqJPI-1A&id$m`jD2mfF3@Os)%6_cz=zcnSG!JbWT!VlObCNKT(cg! z5{WB+w{%2lSo|u?aYW%V`95NHW&3XD_?}|?9B0j#2~*p~TU)VK%XjU4UnT}M%gnmI zXVJ13UwC?6YxMT^294oB$Bg5+-;$>Nj?7PBiiX;Qq-uo%zRzMMcEH5E^1*ll@SqNQ z%|;in$Ck{iTP+TtPb+3g)P+7Rn(Of!P4dzekwPWsq6vDHvkM3e_-$66i&4SMvgj|$ z1I8{TS;ULs1%U(YY{N>M%$7A;FDI{TZH6IF>g z0C{0IzbexMmG@na7nfiKp4&?6;!4XeSL|!zzi2U+ZTp`gz>DzbEIZ2}D67X+8ao%v zT=Yt#XARD*06hhTXXG3Pi#w4ghZEqkj1<>*r?)ry?!##UgBmATOt-)%tLe)w>A$)`EuF>Ua_;GcBorCy2_+;5d2&9EGRrSXLLLfG-N>g-WSX$ah(h;W6muj*I ze;;Nta)i5iVFq)xlxlck>+DP4l!a1l=0JYR@ksktR+_L<*^t}GDBF9F8}!&a8O(CB z7XReld4WPj?W;vqSYjZMsZ#_kitE)wNLcP+?0fbu>b`j>h$rC^_?$c6@(B#^ReY`{9N(B&Bgd<`pR5;) zrM&w663cBVz5fh@a>04?-Ca7r)mTt`Jh!6o66cUOde+n;BguX(QM$*}uDj{z6JII#rGeE6o>!#lZ3Iak}_?nFlRN3Z_JQ5I1A8 zXPS{Gk6x5L_KV}VP-+#GfES1_H_Q!D!Z^MC~WuAa4(b)FY_|>DtasvXp zS~Lsvk@|INbPMK@7um-N#Y{&{>ZBY{R2p`Wo&FebALSeef~I8ayJS-p$j0IfJCBMG z#Pk)1JJ<=zMuCx5rc$Pz+-54&6=7a$+m&mX3DQ&@rAo!k1Wgq4ypkz&?;nIweta!* zbhJ+WF_dhO(cw||jA73l?Ko;arQ_ND?ZUaY$~9aZBLYe6l0$|^AuvK5CqtQ?^GisN zxmNBEpWWUOpUu|A5!B%MQjb?zVt9%D^{^u;om__(T~XHQYPH4x0E%cZ)7o zuK~(N`$qfxr4qlT$)5+mkf%e8h{tYDL_sJ^Q&=YPNimBz33IQHH-N9R{*IK3K|EGZ z=Cjj<&@GDPG<(a9j4#ebw`iETdF!F4mKal68){aLvg0J|Q;gI|dM*mk{E&b}#ME9% z+61oR#RbaATC1OY{2R*8#z+g0sxX!#vVcDutL-jxlcqU`K0cjU4zO|3&2cU2pXVkV z_pd(pu|L2)YR~tmP2{1HVaT4VK+TlNmcKfvYbM9`337D$f1%xsnx-jj_%Rfhc*DYO z{x(!!!eemfSirLso8+@O2b5Q*l;M1)C_g9layl13O^49c1bZ?%PjwmVBg{;lfeA{8GVXSe%qjUX+&JBFzSBFHhUe$3*FFsbQk$Y{$# zn$Z1F^b;W+><1`tsdK|SCt0Q{BQ|9+2`9~uCSq ztYDD7mh|D|!@)D?r9HE!(tPkOxHz5Kn3i<4d-a^^Q*n@cu&R{OS=KB6a-#5la(^SzSQfycCwGtq$1;Il2MOm!H!uzCjh8ceUB zvOnE$bz5;K(;AFMrC}s|xW!dcPM8~gtPxz1UbTP?_8wBI=?hmXq7*cy^FIqr=5r~c zrbBe_9bke@F~yqvDsVb_eKLd!1P;V#;r=2Wb zDOhz-J?|ZnA69@%RNL-J5M$dpgBa(U6D^-fa#F;vQt)-8w+|1nCD4(jOVH8H{oZ#m z?f2@4SCPjQ&UX{R5Cj_!)giI3jAp@aOBX!H={y~PrA&#VCgd`_dGX$PL*QeXNrcKQ zmxip3Dw4L|+DaoNfHGg-1wdeMkqI?N^d?nH zT-grr%2?AYGVQs^)dr5mh&R9Qv$vW>Qr=MgJXC`4ERo{hHaaXgr`)nqqQXzV=5|)P zI-Zk*raE=sh&3bcrM^?qTpOhPUtGk2=J7~6a^)o>_kes#$Cgs0GjY>mdZEy!` zjvSi^3vYeq6tBeb7c06l1JvE;<3_Ld)J6O9=L_TtC!YsEeid*h5b;j6WUmZ=D#bi? zKRM0lsi4QrAdsiGDmE_P23|Dnkd1fhP)5TglxjctKZ#LB{6yqZ@;+F(o|{38w^bW9 zUdo|R&Y4d$XjzGoI(h>D@RZE0|=GqEELcEWlTOPuqXEkbl8Pw_$`!=WkV9t^Q3jVe<6QL~K&D zwx9)NHtF(}v3EeAe^P{lz4Mvv2Z|P=*aC z-`!^|V{4bB+g{t;$hUbEV;!jy4! z1nNCqX?D}3oS^lJVfE@!W>kuu6v8K1xenN^g@qlbE<_u}N4jg(OzZQL`7ngg1&x@q zRRw@NfD(VNj>LD?^)QOb*K_r)>H7@%yaG^4OlQe9L{HBf;h4p@~De6I;)A<;~B&p*v2|Ng;6|#zR+dqRjf->cwf6`MoLpXk>0{ zQ;ptkt_#Pcs0cei(a3cTWjsF1Vokt_0k8?zHLXAhBr2ooX)vC)YbCy&COU*uaAreu%U!g2D~z1l&-#+1B$oW73hLYXnw@ zi(=dyOp0BJ)SJ?F{hXHcH{87*eAfNO$~Vb6Od+b=g9pc=jk#)YJK8AGEZ~!g+Lumv zh+h}1F-eSvP7&Q~!Fw%`?tO*52r85>dYZ?;4UChRib6K$aTa2&<96EK&9Qe@pl zW~7vyOaJjD3kr-3w{+R}WX@CBZ-q$JuspXw^UAklSuYSF#^cP5<^{bFwH77cBoptQ ziZXA~Z|GRuKD;E8@s?U#So*hyt=x`ki&ApwSM>tUNp&S;-041>0U>jGNh@8;VnRH{ z@eNHC4HLA_^FnjnJppcJj#2i4UvbZV`;1_?6ORJv&0@6W zjfG3B1uA~_5X&)GKY2_DItpDQ2SQYoPTkl>^LK+sR2rgFaa~RH`UdHl#V%&iXt_HE zE-5KgAPgK`?a1EqcH%1*n#8d~k4alZ%g7YYTi2Bj9QpM7H)5jWtf%*I0d*BXEmx8V zXLRU0X-ycLU0ZHLb5H`{U^dm~kABN8!=QK>J$sqdoqZ0^hx4S(HQ+4l!PqX zJddU{VtmF$iuo{_YtO+XUi-A4q@s*)av61(QKO8TJ|}SzIN;j; zIs+ARV53&<#xg5vJ8<5p1c%N9ibG@uc8)ue_^1f+t=3a3h{#g4`PnGkxEln$ON^I9 z=ueZkC%}G+&Xv?qY*V$+TS1jUtOjgMul;1oFaxG5 zCK)82Qj%)le#fIloz6#6)A!&xj5{kP8H*=XMV^o)R*M8;aQY~2)PyF>)C*u~!yZ!t|C zuJPM1jyTdeSQ5@LmaEoGZURG@ZzM z9j`r#`xB|!WtH30Lc3GNvb5XA!w%PomwqAe9V%`$0*Wu0e$?cFpBFfF9n^(q`(97P zi*~bJFBC@s9AEH0L7eanWDX@}VvA9S#C};!K*5I>*ljkYZ&FLnENX%HV}!Mw&ONfd zzh99H_XjSJ4WGGKLZc+A#kxH-~}maKx9MnmAs zyY6dnZ9LyQ7gqq3^SXr3Bv?wtOD{OadWDdrDe~XWERYnrkt3okzf_#8T+Er}yusyp zxCeMS@bHmA?xohA@~Y0(P1e-cFjp$`x-4}wJXk$a()#W&dSfNa;JD!@vP{`8=DKcu zJ$SMZ-dnxcJin6QUfW<~Gcinis0Sn6aHNJkjaQI>G+A<#H6r*mi zt^!(IHWB6_zX6}2dh6F9!EO2)b+xuBVNKJReabcq5So}j#a1W7UOgc%KRO12%=I&A zs3Z0=sq=|TJKfz+FEw?Qob|SGOS$&AuHT6Sw)m^GVr8rY_yRJfNlsts3kb@FlStcn z_RfKHzR{^#KPSf1ElrACE3Cp)G7`qb9NhKWus@ZJfo7@v*kXOmRmUhjq(d^zjH zb$-KPhus4pU(Mc@9+4{wU`bd#{`seUJD*EQBAKz}O7A$=L(cpX9G8#j88m0jAyeiG zS`>j%=g7=G+??6r5hW_p$pD=3embKgM?{Bu4~3@52sQ@$p_@wTp;B>2nTa?2AnmOd zEdkXv9Fel!QDpSpYFRH@a$I7coTU0iTn%)P`=YJXf8`5~ez;MW4P0oMd%9g9Wc^;y%v?uRX5WO6anJkgMI_?`O; zh((!r-@~&i@+Z%G^J2Q#jyNO74Y;is(e=4VN@eB+*!~2tlUx4?yp##)q}z?Rvu&N; z>GnAbieCx3J@FzJ?%^0PeZLwSLQ1w~UKjaS0-uMW_^;;+Bz$S89ggbC2M;;)elf`w zxzdf`ZaHf8i9Pb9+=8k^0X&pQEHI)8=uq?rK0FAFy)U8UagCdUWmB8JrwSlsi(Z3b zr-O0beX@Nm&uPpsEEr!xuKF$-5f|&vu{J|=k3dUK^R+?wM3(xdej}M2TZtZYr27Q9 zIo#w3g}cy8O-+f6@VOxgZwr!rSPywmJH2t3F)r_%;N1>;Nx2e2%0m6bR&?wCd^9V za?DnA-36YZfJ%mPvYNDFKh3YfyCv;`S;3s&S@us5O3CUo^7|Wuz_~9&-5p}l4Lmk& zBCJ7gI!U4fIJvSc^^d@l{d7xIw>|GFzo|0$52f+4OERQAo3!0ByMN5>VAT1uzwlVS zpz>-uM=|}J5ARzs3eMeaWkU|zW5B-Ab$)v` z!E@_v>FRBd&z?tQ$c#eT(j?}sbS3O((kbyI9d0+2jV*V19Cr8U=Wy*|)wKcl zB-M1%j?)3l56-U8+Jdk2F=N|X?sx9q5U-zVk8f8(d5EPA?DSr z=tp(o!<`==K-|~dy-TFo4QzH^LU|^n#0H+jcfewk2-DWR9}6T$M20JelAp6}JCRlV zn*A|+-l$Os2S(HT9fI6@Ycn{%SJwsOD);tgs!mJi8N5}y>kZ}%gjc;WIdEW#E*Vo- zbIrI^vVa;?%0~UA7lciH(g=nPGOFMOxq;?*l&GL>gsMC*&Y=?eCamA$fgPzA zvHIEGeb#^1*H&I<&+13I$K$^dmf-WDK1ucii+R!}{ObmE=dmPHS!_x=hU`G@SB5(9 z<_&;Iy@gdM57@~VE%;{6@dLE|^-!EoD==i!WM@!CK9qLY(HMVDMR!~&c|2^xMsx6 z>Pu4ZAaXgHL8H#NMn@<0YI4mLv!X>`!%)DduRqh(1pw+ET<@{#sh8tLeD>z$L%iELSw4H2F@$Uc_DZ+rxHhZwPW-!Bz

    PeG1pGgTJ!Ge@Q*7~!-Mkt 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 j|i;WQ=-cI(g^v13DlJc*mr%E00ejX|(k{1=b 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⪻2VK2_&orQ^gIAsN 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�SKs;P3!ccCP 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 xXrfZDC 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%0AHg_`8)CynCs8Hxza{S+5Pg-26@7nwWP zqmJe^SU2fC^=jy~`ijB%owG8T&{g@4_#3Ppqr`t3)P~nk5$tb#nSn3c~ZW{pZ8&+YPvK|n9@+1MP9<&!>WQXn5VA9J%Gu= zcUCQOLlCLD@tId({AR)V%8dtR(y3Pbi!i=vzTza~DPKFpuroMqMa`itlgE|I@vt4T zN!DUezYz1VFG}dfqa!Prn4tkVA_m+mV~f0l#;xZPotG7RCy#=_$48H(^dO9Tu4mnv z@KUcn(2xj78fU3f2r<_2M8^ONHpM!+-q`)bA@ zOVF88SB}v|a(?i~@9L#ot>n!|sS}}-Cr`*>E--iJO7PU1rE8CQ(q$ArO(R-FWs;aF{0{wRoet710J_RWcA*&yP-;T z+tEEc3PuZ-OWPR*#2Gq)cpl5sKfjRRy5_oPiQ*wDU@hqtf>P{gUD9Z?*sTYP!uXl> zpu?EYm)fLeTdvQ`rgYFZWbNLTh4Qf-30sP>INE4)N-6Ih-rw#|C%0Y68N$wOgPU4; zlkA&nf0+iO{zSY0rH!ch)hs1`fl1N=f!pho+x*7u9j^d^Adw) z5gFb(C68Yd=o}|0@(Aa5(gzr+Q49o%#Dv$cn>)-m;9{+ZfhZ)GWxgFBMzwRITD!!~ zDO+#TVf1Eu+^p_qQ#LWk5sQugI04M=K;i`%nVxg?CX>Sv$(!)2&Qu%gg-RY~tpCo~ zm^V{QpzxOS{K-ICr%5f;iu)o}p7@=yh}sSG>N7<_e2!CT6%0-#*Qb8ezG)pM2c9Ks zSN_DiX)S0jG+42S+><=jn;Vsr5BIA*R*9NK=*4O$PD)Mlu~4gQ!jyW@BE|62rfnWG zQTQ@)e%v|ltC%T+h?IAwF=4kZmM>-HjSdp=ZOliRlM-&QMc@@BQHd&A>$7`CW~ZWl zz7IWcdbY{rKtVBr$Zt||3XlzNr5?tlt(fmynmkpPT9GRmvbD!RNy9n1p31uKtj1j% zs@s8vlD^X@8Y9(MX74UuYh=$X<#IJP2Sq@w6=Gj>t7l1a15fhMs~&)wq}2DNh2jY z8w1<_QN%19ot#C?4IGL8MAZL_ef^*y|Hi&Db1)OLFtfw`DgThEtX%)T{73!YDc670 z*tuAUIT-((E+aAf2fE3@&PmL{!V1U2_J_~>&^`{Flk3m-9PG@*?CgIAjN^m5{aAkN z^|9s08WSVqU-Dm-zjyMdTQ*i!IMxqh^P?pGQ!;aL{dIVM>VFRRPo0g4y4$j6WJPg{Ss{nPcI^3Uh*{rw-U|8L;E|C{aoUux;k+5HFj`%jen z-*M~z4*vefT>Ed_?+2$#$IQw6alx2At~4jp|1bEX%5HJ^V_HLnDxH>`YT#ubzju$>%cGrDXKdV+c%3Hlc8uG|h)r`=Y>Nr3p zS5{jX!P5QPL6{&_iD^KF`U3?esSY5RU2A_ep>eo^UW57b@(TKgl|%X`LxSw>nd}~z zYzyW=ge~*9b8Bj9w1SxTn*-r?z`~XSvnphw&q3e@=~IZc?GcrY@cc76$}olo5@CrA zjldP&t-iAeV(h^?I)bM&k$?n%u+S)D`NIzNjvxj+GYB)g9z1|l`DKpl5CC=^!MV7C zBtgx)$t^&?MVLOgvgd%X#BqVu74S7dZ(jOp6A5aB z#4IK>Sjy7=Ew#}sNBXXD*~>tft5jQHK{sttX+cGvH1N_FAdPQgM8kvSA|KjS2f%n^ zfL{PG+yi>IQn)ldK<+fsG&KCTZnkoPZ^b}?2J$nR^YMzaZt$KSSVmVz=7+B!@=(|g zAngGlG(0SEA0Ra-#n_m!*(F#N2#D3rC&nf>;ivNKEPN2t_%0csSQd!sv_ROWZrTTE z2k^83ATc3GUH@iSBxE=3Gc+jZn35k^jr7RU!orgsI2Mh+<_nS`IOFJ>&>4v7vH*;X z+yxR?Vj?i8dk-Bz%*ZwHM>@9aM=;HMgAN!jdlULb|I-gSEpmkj;-CNk9nfO_N6Ppk zE&P$*Kcu6#X!mX%XCU!at3Yc_PzyFs(Bb^Z@{2qSXZkP^1clv>v9%?FV=ZWU+goi= zI8gt!%Ps)Ongp%0es{@;XwR(dg?Cl^9-B+hF0TCQ=L$UpR&4&@1`>xcHa!Nn2jST0 z2rz<_|IBh^2b05l;73#p+=KiTh!$i$9+gc8i~;)R4t{-lxaH-6p~g6=KJlnDe6q)E@zeh-J@7+HIh7rqi5c|+oW=Im-oUM0He z?t=I0hJg}fUb3fi*(j1NE<8tQ(%_GKgJ3{T82>{X90?a1R_F@&E1>4y;~EP%19 z-Cg7kPrFcy_KdDz%kPU4wL!{nqc5A_15m|VAdbwC%kSy@u2)b!>@=?eMtz72V?BfS zL}<6EV=;b>p8V=1Jc;k@K&FExx2&O`Mqh^&pq(* zjbYL+GeGbv!tV|f2J;F@67h=EEUt3iFBj!X7Ot`N{YM}E7Wu^1>$3pMC?e*-@ z0z@F&^ABWb4H+zH%BkE52mg=vqJgty#K>8F_m@$E#O}0f0MMSX4<7hxck-=-Hx46f z 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

    x|?b|csZBjureFxA(^0OEwd2DF`NCq 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

    Jfn(9C4kw-QLY)2p)X_;jWxcP3z#Q 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�pM*8%tF0`<<1OX^eWQ=KT0MNk6Sc&oz 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∨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

  1. _M>a6Z+zuft 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

    vo0&p?Qeko`~6aa)q5>wq`T$VIKcXP`ICMJ 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%0D<_0b&R>~!;y#P>}9okP%*D4$BbZwuQi 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

    Mt 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%0DB~| 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 z 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

    x+1gWGmZisTPl?rX;M4Q*ybnRqv-FQtN6YuT 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

    $KwZh}x&RCpDG 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

    a>U{C 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⋙LV~yyUu}r4g`k>%bV}*+9?&c);AnA$GiS{un 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 z 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�|K#BQfuw6T_P*8I8sfigXl4M+7|BnvDSiy<=&)u@q5I@Q= z@o?Ix!t{v~$Y8BYq$7o=Wdz~k4(hZ%Re7knRFfr#)#Wx+hJ90tIj;1W0RP4OG@S^C z`RK#uc*wf}Q7-!O%jND!$c{+BC>68qR`=DP^gqkEVg!G`6oZ|A4mu5znA~T zxX?2*v$Oph`tmO!=D%}`|Em5M&GHXh{>RR6HgNhUVfYW|<44>O(04Tck6$FDMdZYU ze$W>srT?S)!thVz@88sy|4(p{<)`icl|k?m+VJm;%ReCwI>>*t_y6z3{L|9U8}c9D zbpM$8AD{nT`_EIiQ($%`upk%BS6yb7fj#Q)>eQ_&-0h9Lys*=L;BK3 z$=ZXWa_M0?hcgN^ae4qlU|xJQzS`vQdOYChuS39J6MxD8)B*TJOpGKX^gV0+3)7>U z!u$!-ejtxyFd&d@DFCWT06cJ5Oiox#a0X(&)#2r-?a9GK_#64OV_ZTRzdYpCZ73r> z=s0FOCQwa&FFz8@DFd#q?6FgBr{MErp zjP%poD59!pYk;h86ioKDFVQ2YW>-HV(3fB0319%?bECuS^U!)AEFvZe4gP~bf();| zgyr9tT9ae*3e&x3xX<4Pr{5*4wG0hT@4P51D$O!6dY*oj(eSI=Z@!s-0>7uys8&ZO z$Ig5$iLs%nruYJuNmBFx?t6YSI>IqJf?|@Vu?I*2#yrXF`iA!{i+o4=`MSNUf=M|r z6wII1JAIete;bJQ^-iwK4^2JAuJ~4d2jd@p3-0iu%`iCS=i2Ii zsnW??#zn`cGaC`CvIBrUJ%QPb#?ATRx%h#@>6uuAxPba;<3ljgYizIy5CGt1xdBF5 zU&Mc(l7e&kiQnMP^}vJsiT|bD2cd)b7S;kFiSG%+>?L{ww`TxO8~h@`^ArD|H2|a& z{}8SOAQ|iVg`oXL8z7YW8i_Y&{7oR{)b@|k7wmq3km^e$-fhwsff(0OPZ)IX4}->E zQ1K-k_t(M~o~Zpz7bLv;7M$M(HL(wO5ONM(ZB2kC2+#=OYk-KAD8V0ibP~$Q1lFPc zjnFjE$aEI~U4jujl2;(cHwyck&n8TCfcMuZ&>RNF>Nh+e3qWFi7vLz+g&73PSB+tu z!guV)PRFh+4O}yyZ%l(=XP^}oe(E!?2a6a$Ty*l%PKMtkoWwWE0A&8~=kWt9uSIzDFN@bnkJTr^q7cK60nRV6|3Zzj; zTG|Ku4B%YmM*}oI>syVi*j0%y9%fNtiA{6KZqE>4IzB@KFAATDSjq7>D1O(+#xFd^ zpsXHrM?SS$5Kgv_RQ90po+%I@d@x_ZIzcb>O!e=oFl2=F^|A4rTx0XQ6_{UZ4N@$= zS@ry0>mMuRct+2RYhTKO2CEpWfmPq44QqHbU&NoeRVIN-;ON4PnLSg6fpKP*rw_Wq z0Qd+UykG2J{4#o>zBuW;0xG|%Tx3{c^auxfoB;gcPJQiRgOZ+Cs5y(Ez-yD&zO$%D zF#^Q0zbo)B;7DQOj-GN+>iN|iYnkj`HiYru6oz)%OhS{+%q(EPCMY?B5JXdZpn&}0 zaAkbC90UzG_)&7ZfJcYFuF3J>=Cw|ERrv6T^izA_?g|(_ryxgx!q1*`HN<3p1QeDq zQrFtg9>$m4njPMAO|jA8r9i-6dV2mhqcCkfSeq9*-wPKr>nbimmC(SRg}ed2IDm19 z+(mma-yTu;*Au?Ab?ArmK!MtQc!$C2m~ggv?hb->mln~(g68aYLpIc1NCIrzFOzJJz z8?df`qG-GrB{i{Y`A4Lxp^}J9zkN({p0ST8ypZJA1l33a&*ojK&m~|FcNgI#8L4R=4ky3iE8ZqwL+_0;vnPIqff5f_TTrr6>IohFvyOlKuugL2gI( zduJ8|GDhpP4%mFacXUZ6LS-Ef_5c6K6vl|(&s)&0T{aa`=-CnZN(Pp1LL_U z^_Wl(hN#i@PBB$ehEmj;u0a3Zv}221T`->uvBV1Hg642;rw-18X7%1$?6K89?3?d> zlH->84Ek(o?J9^KDGbRisT&<4{_9lB`azRS@9U3-5fW+b>SZltxq#`jDUCF3b&CdB zcFifqNnRbP&1^*V#?`{E)vPK` zw3vvrK(S51T-qg!Htdu!pqhoHqMT>W>2TJ*$!Fs=nklc2TawtV(IyHQ5OCX8bTzU~D;`9_le&VBd7`EDo*rRB7GVH!&AA z=5&<@6_9mNO``Z)IXS$P$6nw(;p2S)@4kM){w9JTi9{klQDK_AA2_Rpj zheegFnWLmR{=mQ#!C5y)Q^kbSb~VxJdbKk!6aH!~lr_dddHZ_VjqB_J*##T=C>eqo z!Mbd?+kcTNF^3yMfDLUTuu@!J9V_`@NO<{TS%ckSyWJQ}ACXOVD*D3=6xX@t?@;qTsg>$NiDDrwWy?BajO=ZxMBK&Y=0W4N?L9mS5S81eYnJMa7P{VHx!pY~VY~tsbGq@JKu}m@QMfha0u;%W4=8#~3`Bhu z<|XZ|XFGuGE3| zZqB(jWuD1CaA<=4}>gO8&>7?wh(^srM692bExT-{}8c>Zs-DIrr>{1hYr+}z%B|j zL*qjxMFXqj{4?z7OQBmaxUXKg5sP_=&3Z-Ax4bMJTdo`G77-M z>8c^p$KpPQBPO)QF^Bb9Tmh7ZWZmt!V54U!L3xF<<%UP^2EMOwamih$3{0`{qoI&( zC-j?b%!4hW)W#0@FS=BRxC#fx3HAdbB#NHmuJnBQ93n4WO^H0W%OeKMxJvyiHgWmk zs}e|Dvr^Qgwo{qm^^Xnn8rPU52)K2H0GJ`l=HXxOg1e+^;!*~Gtz^a2&)^|e#JzgJ z*gMRf2i1f=WR(KAx0i0a>LGq4=55X68B39bfgK-RI#k(VDsunXRtr-%TgPe3z%Jd& zq8GVEmu(NC&>Q)OgBGS5>t0EP0h7pQ-TYD{ZQzyR$T|{wf-O?$+*2@pacMgioXUqn zT5wCsoz<5w6c=pBESdXkbo~N5>+A;0qraI9HW}TT%~j7dxIW62C`BO!!?}{ZuQG+# zpT^~jqE)(cSIxVrW;iojF>gT^$TAXKM^iKNH#bL~Ost?E6}!Xd9t=y;V?joBCXl&v zxmvU(tWk;l+2f%AC5(fSO8A&MFrE`fJgY0G1TfWZ5!pt9Qe={US@aT$yDrB;kEX>f z^DFjSkK4Y7GM9lxI_Z*;1x}a;bK(r_55UJA0yl5RSPM~J!8GORNFZf2$q|P0Z8tbB z+|fHW=N_PnhT2dzvWjCUG$WZdm_M}g3=>PcpQHw{s=UzkLHSX`0e0YAvqB8J{IYn` zpl~fXE;pDd6tPT?;<kX&kES7MemJILH?@M$OB<=jxTWaLPR4BeOsk4U3hM#*02} zk$o{goKi~YM)<&x%QD|`@+NP&#J>>DVSc35i2!1e*Hc>&jquRg@Wv#nbBFD&2+$s* zEGU=?R-?7I!;rGEZDc917Pe z6nmz2*lfJGVROI6HQ47|z50OJg?zJ}hQYuRWEp0+jR>t;(kO*J#ol#GTiUY+X>RmHfmbNX!UL zbQ2*vs~HVn7l}6ldpmkWbx(d?rOxUfW?Q}Vtj7Mhpp21Ez558#SD;>RD+nK!!eAfd z+`hfFl5WkWJ<97DdQ3!PQ4-$k%=^{3CMs&Oq~%whaA;1naipYO(b#?RWK4^c?G)5W z1&axVVZK)XFK^rm^AuTw8F9dBJM4B#6IkI=T~~4CrIkNUG*ypTtE07WZ)LZN2b>}1 z)(EMP^E-CbcgHG+*q|>`WQLbZD+4cTHHt76vF!Oe6UNn`o>~&m(8|*yho;fb=T0;O zfa|su5&pDEzcSx1#iNk%x%;Zv#s5Y3HOZ~V0g{^?!jqXOIt zFDlKRZZIUfS}+9oz=~aJy?J69lJ&&Y?ANk0!{x!mwVZ#v5@L%U@?ie$=(1w}a;dVDAqW5>yT#aQFdV)Ft(-P%C+RG4(k zHNyPNV-t$y;NFd%vBJK812K_WvlY_*j-6Iku}BqL8Huj?Ja+45fmkJxK&6`q3aPl*T;UKZIdl|_?K#d?SS9jzIUJej6IA4 zoLTV3n-6Pv&6KCf!%7@VDD4@GIVDEzn)ZoU7K<0sm7y!z+s>B&YX#Ao0Pn(?QW}%GSqRRq^=HtQ+@ylmdLo zaeJV=+aDgphlW5(BdrXILRM7%z;FzgYzy-Q`JQyf{q09`8yqCt zXE!HVhb&0b$4;o$r1fEdB6+`T$nKGA@>&hGGi6yb^&c`yOuyjS^?1^CzkGCz=rh2i z=3sy`ms++0B3Mp>Nv@^##mu=Z6%bik`Yf`klDO*=9qLg`o~k7HlQxMWq*a`L`=1kQ z#{ROmEEvt#h4bWC6vH@|KaCNXIQ-ge5n_3f&(j(dej?lbVyL8SetZRqs_<_e+yHRG zs#KHB%N2U#t5Htn;kP(A)Hm$sy5=xB!wAgjU|ZM_9@ItS zvh_l#;RJ$1+4zGyp0k73`dS8WO-+hhzB#Sc15`miHEO=BxTs%ySqQcK=M)&aIj3R@ zqd44ij_2=}pY#TM;IqVHK7UCNK|VBT_WUuu{X_qa#emNdy#20=z0d+UEjFgCp-s0t znMo830_^wM7S++%?KYC}%~EpmMvl!)n-eko>z>z_J23xmr!Gp1MmCQ~<=u|p`^5k=^ z)?bui5gX26Kj8OTkSt^saS!yqQXn_jdHJQO=#eIzFBRrEll@iqFxW|Wyz1z7h9Rd6 ze%GO|p_NydWOuCz`)a9v1?={4b&l6j5sX-{-OMaA}lIB}hoi=}c^x5FERm%p}D9emOW6Imn}1&7VEyPe4$s8~qlWNw0Wp!c43RUyoz+ zMq!pxpkCvWnoaXF8yM&`zKVC%Rn%UG z`+`c5<$r*2jQix0MKCmG3Gr61@ceuWM zkjmjz{fKC9ivRp$%-M|Y`OSvj-&MdShUS!XT@_z;JHfT9zy9UKRul1V!32te6vl)N|?r}VH3M$*>caZ2IOoz6ap*cIY&GJCH5_IUSsCC*5{S&`Wz^Q6(RnWO5*-Sk_x^WzM+N2S^FpS^lE2N3`;2uAJ z2kzvVHv>nDT=lnuJINt+>peFl)(IXE*2EK1EZj@^-7d53y*ZEJweYVoLiAAD@35gt zHhw}gU=q%#;ICC>o6epp*9#1!ciSF3mTM=xcPafAJ9R2~G!=ks(##15e&{slA zgRUYpM(oRmyzNfCZ7k_uI#BEtw^ry=&j%*m+)5GZtR@{Ke&o{vO?wE zYx=8V`HB;tG!E+$X(7^vhlpqF_{!!M^-B&@(Nk%WCdak4{&Mqg${3-9-|6+ahZ3t- zl~8uAu=1A&Da5n89I(`HXLXn!yMxJAmQ*IG*oU_bH!m8mSzZeWBc@$_Ysv}UavE(j zlu1P0DxHTe!1GbKICi6RR@PJ`x$=sLyZ^VyO`7^I2i8 zpHB$z%WTdM(}6~gH3bl#s=lVozkLP^w#AabZLDyQWi3w$TT6q)w9u4`c2PAq#*PMT zq0%&#IPe}JtdMyOEy_Nh;JCny-(TyEHyfivb)bpAEcm=r>JO;8eb|#a_aQ1^B<_mH z^;|XWme+wdPElh4FlsQuv^`}oO4Of%%fgFNXDUw~8;-gHa6&k2KcwJ#z7rW@xIFT- z-LzO5TCY?)o1Nxuqia+Lqz85+`b(~@3KnS8a?2s>;d0yMR74#GM*WbeIi7QZAaadj z%&pGOrvT(I%V>L^rvlc!6CiVb_vDT}A>`ogD;tQ9sXIrK+n-J=x6hEJzSD{-+1jU@ zqV%BQs|HE*Y(BZ7dF)^km*LN11>rYYQ~nBEKJ|N;h7D<@i2Rx{ewiQw3x3sBf|e!u zJAt=V@3^_7$<=CPzuOQOY#H}8`@R%Wb{82$sgi%(^K+mQlUjCQ|~pSUeXv3c54rKJ>j7P$*7 zSG#jYCaaKPv%!zH;)}q2jgd(N{i{I?SeMW#ry>0d2kFv|`z8RxbA-vIzNwMP?I%K> z8WC-m#wZB*yrYU<3#@${*3d_R1sZ9o-fJ4>;VfNL{ZYxH!JWTBqKuD7eKkmXGopo* zS!J|}%CSm4%tXh$X?5DZGAhjX^ZuSZHn?+SJ?wr0Uccmf2AFv~iAy0E@?3T)cV~t9 z-Strl#@8bltJ-kAsFf7d81)OLu8TM`1j=Jj9x3*SuTTjOPh8NQoupqS0$RXpb(roB z^`T^6oOCkejs!=AL12MR%FLGG;#AT(OncX;xfC)36 zo1jdv-m}0!%tVXNQO%mELH8&7d2^SX>u|#{F6XAodi3Y9^q~ma-c_XWik5i(Se=t+ zWQcQ9JIz?dgF?Whl{pdycEp zbUl{J1wx;}uz{hKa}JH_pDjeEi@B86c5A32SIS8JQEuqc6_v6rwDU@SPupTb;M}Gy zKiFqL3nS_d01SAN|MK`+o6f)i%K^4T%itP8KnY|T#Bs?JR3l99m;`@6EfQdUXhlNXQyOO){$ z2aGMJK$|*}I{I{Nd;g-n#&I9Vq~%Aet#JBnlMeCpce_IN(rbeAs2tL{0S2~+DjciC z4vj+vs-I;01E%GiyBO|p^Jd}uokL8)sbjVoIfi|1gO8HulOn^MJ_UBy4 zJxRq!pq)c2LX(Jj`X@)w8iCwWTNiPfRFi{!fHLcSPTKyH$L)%d3HHxs>ffozRWI6@ ze$;LRG9Ue1>>Uc6^4adh$X?KZn{*ow<8<3Ql2F^$ESA>_E+k;N(f|y;h&6+)iV{cpgO#ax@YRIqRvC(T9X6Kf)v;u#cEfI_j$Ys>>&*{R2W)<7Y`n77)x|x(QY0msy1wa}Zm|(R zLyZig0-_1V>&p{YT_)f4jM$_7V3yN)BwK-WgRRSQUlX$O3Qo4$nROvtmWEDje>z1@ z81N2ftavXs*8pXr*;aQIkVP~AGb4k7q#rRN+4BJ&ai~ZR^mua21#mtTI=|!o;3A zHy@UWLwZNfz(X-AXUZh_wnK|Ze$0O7KN~vO+T*#{FvnMjY7-32>ukZ2;{RQHy_h+< zyxSlFnq^r!uYA0--7%E$(QO#}5QNBM)cHcf=#ls4u4_s%4)7+-_jHgWkXEf*%wIiW znM~DYByE1%h#$X<>D$PuNNxURrVrOwo7v)4WZ@ZQAZRGGpZ%>) zmqMo^Rx>H_+$48FMOdDhJT21Wx*tRU0|6NM;I7yUh`})_D8CXx0mBJXC1eSJzPmyoj zgQPGT6j_DJeA`f*s;y67nV$RoRG3NPyYa2nlrKAAn=oVBxkFJ{pIDgQ0`aRinspPP zx|wUX5X`@>5sV%ZRGm`Pt`)k$adO3L#GLsLdJQ^Wsb+K)uxXDUGxV~(Cp3q!JaQ~ z97TD)!(Kc^8&_?>b$?E@E!u5K}&E$^p(Ql*~ts@ zItT2qw5V}xKG}|JPZM*mdE8)PN6Sr17hY%5BAL`p&TFi)jwmmg{nZFlxSZK%RwBQf z@Oj(Kv5!?55h8_2?|-A`GnkW>0DHJv8l6NpXb9GSOTDsLAPZ!U_70`O;rfd#wr(Enc5mt39i;!3t?f$a&E2->`s##f)!0UH5A%7 zyIf(IYdd0B53I{~7lg|wG9gj)tsqRfDoRvuYOUo-!*^ousTsZnIuVq1kZ@K``%T(G*MoCa{fa4Q%M90BU9nbM^{GNG=Q(s49 zE|-D`OKU-eCgtgzP{C#kxE31gKFkjWFJn>n^6CxMWuZ0*%n za94f~F7Azk(Fd&{0Oc)U5wH`a} zS%}USlK60yG`5ZB$E#$B_DyXz6?%Poff%@JNs2j_m|`$@=dP3P+BzFq+p;HwnDWMR z7$(m^+iQ~C9dkWIi`W`HbgnO~0t_ED1_7(fFBRuB{MU7iyYD3k}#>%)vNzYUDpnZ`GXfzkG;x z&lE>GJgVxf<)_AXxHf3svcy%bcU7*2>62H75hsg3x7L}|UP~#qpq!>c0Y8vCAsXXT zx_UuXw_B{fJ`OLUb|98%iqFlWoUusL0!MgZ88t;2(-5c9vuEP%^0XdnZr0##K+|w- zuAG;}udf~!o4H-$6A?Ere5hcho+o7RUC$I1+pZc%5|Kqr1M5Dlw_lX#XUYd4V$v$U zwc=oN^9T{az1V-_9!{l`Kc{1(B$Ht#g>V?kTdU?d8OoFhd>EVkTpdWSC=Wie!+1D+ z5Q+C3#UHl_yfu}!=x8DhEp{WGPS|cR zZCy1ed>b0D8Hg&uf#ep2gT|Mb4pB#|aCF245F;#qYS((R7CT-v zHThY2?gyiGMN3?l6Mspuu9xNYvr!w@wUZB~ylY(7C492l$WnjeQ{iq!+kK)==zJ1h zv?A|nz0l3uNZsjzGfab_i7z)&oCpmRA*cc;g2t8%cL7q-`a$G$t zuggmsm_-V~AGEe(G7i7SFA$JRgjc#gPe(a{zEVry7-lcM>g(aq1_;)ZXNjqI9z#nm zY0T8p6$c9#zMhq>gT{HeoiZ4HKwvl7N2eNtM($YNr2|dg7h?pcuSMeDSM1$@~_w?UnXlEzL#f-ndc~ z{2B%gnXhw^^6u^fnN2gDC^*sRTS~`EnH^dAe$VF6j9ZQ7bfZdH*-r3@OJUT-S%RC${bd8o#?xj$z47Y3xRZ9Y0&jcU?H&u-2f&X_Qzh zQZnO|fIZo`kt<1^xS-DW=~=lItD9g;`_e--yuNeF?-8xj%kELI1jFO=3qn$WXx-^` zS{DB_QGMK4?Nk&znUdX(jLi(!nkAJ&fDO=5_e zPH4!OQj?CPivkt2){z8W;W8wiCW{9PKz4@7G`-lsd_Nb2&!(wPb3TX#;7V+H<+&oFo{CQg8+9ZU zN_u6F%c8M_)xoP-EYpx(cnu_CN)cV}9WEyG@O;alzcix6whk*^=L*d!I=pt5p<+#_ zWTknJRAHU1)QDy%hqwfcyrwtd3Z~&NuQ&`3!w+%7+`pznK})A$I!o<9)=Z$utTHA3 zblm%Vv2#gfP80tYCDu{ySUj@B&gevQ_PLh&9VrRMuDuf~PSeVxn8W&$O{VBM)U>GY z;q%)4j51U<_=gmJJ^?*;+lw=WXO5LV3!XEaKM-^oN1r0Z(yJeycX=H{eDr$}#>bNl zkNkV=?F~^7dHd3(ZifCyd%etOt`3}ls$t1Z#;NSq30$F4%;Xdn;biN*HXw4y^$+kt zw6JYeB|@0V%w7JwcL%uH?;2NNz0CxJYmDRIu1af{m(0zywYGzqg`N|U7q#WJR_0*k zT&{l5k9kL|!$L7I&-T;Qt_Z5$lTob9goS0_w$xMYFXy8=SwsCCg9+%Bt=Rx|_4K_s zucj{1jQkG3nJ8?9DNXMvEd17`SQNUr-YSzCa%BfEQpF}a0M7s?Kc;V+A}=5RT>LO$ zQ7Gq)Avxm}!-zx_3E$xv-3PSbXj48~w}g$i&=_x5uPKkDp1v~{DQ6q-%Bm#s;M4vgPPs(!tidlzT=@@wZE<{_GsH$}+eREv9<)FhtQELwgQN@6lbT;?9bZCj<4yjFDUIq5qH zqs}4pFza5ms86KrR`8{iemc_H2ye9FxC&3*UR;9N-#qlqCFo!JqhSuq$>r5@QKiL` z*_ZUP8@Ek@e;Gwi+lR^7NYX6ZIqDwY;{I{UYf{P5N$Lxg>>DmwW?y z8_zRkFoltH>BC?gJ837u-oPsg=#Ow9Ol9Q~luPW7X-@4;)L<~UJa(a*`-(nbYLW%h zzbEo*?}2J!WEaL~+ayi{frs&!MMBfu<=6YNuLRQi51&Y7<8W;(sSg|tg+0Wup2S=D zJY&N;UZj_cK|=%}>KhXF?AGuDstv*6z-C3|pQ>8`qlf1t-6)aeg}mmCy%sY96NYRe z%*u7JF|m7(>4YTep%BD9y26BS6txs&-PNGgkEv6FIkB4f5Zq&SxvShG(2a_$T?5xU z&Nr70)>8Ism99uF(rPXoLwy{Z0v8IG_2eViKb|;U089#6au17 zbX>gu_}&vRAmHEZr?P;D__qt1h6hYLmHDwlk66NXJ9f8|k@iv0f8kuU9br+#7vBFL z_U!<_n)f0Yvl#hw?6wovkJ^4oTfclZ2>l zezljAy*9wPle}=)X|7*{c9hsqDT7?BF7BCHJ1CS4T##vwKEqhkjhQCX7yFsGdtA*Q z&El;4O?4&3afLwj!jr>LOk5CT)ft9xh*VVS1EBuIFaie=U2h#!%lQ$Rr}fz14>fE(Bn5& z&`LnGM)C7eS0GYvT1sa)!0?nDxr~a@dKobVIj}(VTa@!Eaii;|iuaOkGCu`;Zt+W) zSGI0U=5%1U*=_=_lQQnn%0b`m4C6a#K@i2!v?`bpeO>DYdZ`hn@~S_TP@ zySpYq!B!B*Wc!jC?y+XI&u6@6s<7CpXcAY9>zd`y>Qr%>E9X_5@H^;tV>y@ND2`yd z=0&WJP&_Vi{tHPxjJ^l*t!cVPahZNEzgI6{Zy>JUi6064v3G+QWDj+5DF23HrC{+o zL!yvGJc8Bux{)6eMgv@a7gMA*UM9=)Alg})?|6FUwnaoQrQmi>=dKMpBtl4KqjVK# zuiN>YkEq&hVm(m4YBjulO;&f>WOg+v3qMKS2g`YGtcZ-@okO})iVzmOEXJ&64lv1@ z+A-xPM$08XAt+D7c2p>%sRHx(RFkDCsjtm6H7V=og@IhmJNzcXj5g+<*u)h!wlB{& z$Ko1Kq(4JXu7Vnvx)E#|d?FhIp@7AohWG@pDropMdYWF$7>>gg)^Te2{NjT>o`GH| z#q+}#2~$dRzm{V(#u>ynW?wV7RiEvm#00KkJoh@E2Fm4po&_R;tCx(dr)u6|ECm6{ z#uX+%>~4oOu_2q;M@}l3tx}_Pq&lB1tf!LJ(MsbB4`=T^O{{@q`RW=RvUkK0!{Ev2 zb1RLP>1hUvZ6_`DCM{1H%6%bmlXfYhC9G1V;A?nyC;lzQpDvfe5%}aiNmg{4Z9yp% zW(hlN7joyAI=waLteFFM%*B`*Bs&VUa7g-IhSJ%Y;@-=LS#2!bV-zhf&SS>d-@YtiUNhMnXeqK?qH zpvC!NF^XzS6C1jQ`$C=`SM4yG7IDPSyuvu4+Tzl(;582g&U%Cm=#M{DIZKb#Lg$mD zDt4d6K2K7&msI&P>9sB^t@?Zx^B6<=I8cUR_-OCCNOa5iO}gBCEB9G#o{H+?Y%g#t z{)W+>_Bt}aS$*b%rIgA1y1( zYo7T!{m)xgMLBUn1<99|mH*?vZdre!@BeAb%Ea<-TUJK;*C_I}Wo2ghb?xQW>$TsP z|Fv&rqoc!T`^R3dd;ays!peeAPshUgR~F0mQgqVcv$DN*nE(2Vndw!kXMS0b<)yo1 z{2dPuMI5Yuf+C0Xkfo9DQX;!zYlAa zu$twyTB-+gbew@RTTJ~))2{JS!%EUc!{ru1geLgMV1AtMA4>)AgFyunB@5mMVF%(>c0hgi4qAn-Z>gtW4tWC} z9SG?5)*FZ(ff5Lk6R3}$#x5E6`68yN*F|_@^X4d$OP{aGivei~L)z`ouy{P48V^i^K+7L;eJ)`c9 zH^y`*W0$IvRbpn9P_4j^dgp{t!W^MsAjAiJkHs%wbr|5>IELKSw+Q~_uWc~ zPuCxwkwnn+)^|#G*B?j^k9R!j1n*b&9($sqzt1~?zL`~>oAZvki(2t~*1yo|&cPl| zr82`NKmcP!0NU7tIpg#GfQi@zcLEM#hE3hJ3{=kQN00R_JBBj{1c)%0r)|9d z&h@}%pIfD#`9A=$oVEsGw2_=*oC41hKNETYB~RjY4Z>^3JcW7zu_U$zfwqy{V_1XC zZafjv03|yJK7fe+gFdB@i}ua zLwSIC`)=miJn{9q%${A0o>RTI>sGo!ZK|Hlfhz^no(u<`!%%H<=ct}RpB&~Nptk~` zJ{zy!;-Pumr+!d>76h6jAW(h=CWtM0=A{WTn&uvv{@Ka}JV#L5isp5I=zj2o4OA&0 zcq3DZ=#Ty6;vIGLoVON$ZC`EuFbIFsh?UQ?svgxT{oDzsbNny^C${y*2Ap%=mwM@0 zjez{A;>lF&=@Sc0Q1wVu`0fSX8Yn?Y;{$u&IhM26k_YWNk1#%BR+B$&7-*w*0^6|4dqQ4(_)mt zQuC7uC>Xzu(?dTL7{A^10|J!J)+Gl2GKrbzASgTjuKQCbZ1m+JULSb>1^U5Vnf$Zu z`SY^I+M4uo3sn?ks6S{2GStQfQ|^H{-&>q~w2#Z94lSDv1`(iVe29BSo47L*_>@&11wkj zfyJkK_RRq0#D$as$tgd;E$q&5h`F`){PRua-px0NY;znv`Lf%+rZRRNU z4%iijt%WR}bcjm@EF?g~m4^%NX{+5IO|E;N%Z4dNotc4{(&w7H=O$P%eFnYozUomR!Z_IDBA{pft1nkZVCuCit8WgN&pSCt3Z0 zwn0i##S%IfT~YTlm-$c0dttfAn!=VdgtPv&_wuITiSg3~bv}j*)aP$cHSmBEjV5{3 zI#9w~?yv)9XwOn$R=+_@tjf#OPaZE^ukTB3?GhU>mT;1HFT5A8hjrKTHe zxlW=U77CN5V@pTUcNtZIs^m};3~bPyHc@X)Fq@~Rf`hrWfz{9vXhT_4SjUHhvVn0t z_5@+j$TUmGVr?7a%_@t^-;(!ci{l%OfY~6$6hlwAz~#75%g1Kv`lfz*w*GdU&{Mcv8?%Y#JpwCy((ai6YfQosBB!Az3(!KDS~ zG%LY?KsI1zjm)qbiIQgaq$uyIU32~+ifgfNZ&*&!)kjR!LmSDwW+b<)ytQ(LrpN6b znuGJ2PE);m4>X<%V_Bj5$R({=GVR2f#lhR)=i4u0!R)68_e5#t%}&}7_~lIta;65S z9W@qS?>U#&nRh>7WZ+P0F3#|?lHhU_HzDsr!-pM}K@zkp#E-o#E;XmAUtIOxm`w4& zg?uxzK_2SqYWTU{KRC?GrVd(I9}HVG;p*h0bVvs$ z3JhsD^_B^z@3sD0^^T6okQ^2dMd*N0?5Qq^D%K_|s@s(DsmXxI6Uz7{9l5&1G!f|L zs>&@c4)WU`MQgaPh@xG@Sj9~r!ZN|Hkj#b5o!&3q>xl?=ghUmK(V5w1N?DkNP}C#6 z<09Pbr!M90nLZ83IBi3qnc4$_WuEHz8Leyi@{y<)gjyy#u@u&*|EWL-N#CSx14EYFO@N<)p5aET(u>iU);a$vf(tdOK%{Oo)s%Nq(4Yl`4}ALG`+bBJHVs9c8py)(orm2RON_> z!>-q}S#)*Z_AMIGBb~%s?TE+f`>Sd8H^8di>kcecK2(idhc!9}sc0~AkX~N-K34dG zRL4r$SvotL!k;o@%WxYlaQ1%CwK%p%W<-~acL2c~qG1SqghV&-<&qnx67SHBTd;R+ zSNYCY1#9gnw(Ok?ewq|#B9_rNMibUvXdZ5BguG4;!Gf!lm4eIaK)htu+elg)(13ND zd$NE!M|HZc`5_PNlEF^Ps!5j~$*gg{Qml~UWH&@*NePW*I9PIO$9oVl*?BYIOfoHJ zuV`)j{7iJTGMo83Ly(psZNO)-bblk{7)mJ8yUUjst4Nc~f{wU-k!ep6m_MOYQO&aK zmY-VroD&nY@X;2}KoO-}B^6aPr2OdmLCE!qd9f7tYPTGref?EEYPc50EXF`CdAQ1y z+p%d-Dm7zPK&|QbTnV)5ew34w^`p{{J5NphiYCwDa{LT&hLW*jfqaP$SgPu>5XQa- zQeM>5I>LOz?enDVG0TJ-wJ|eN7X3QC>o8api{&ovyci~Kk(dXl&#YwO8#eZ*p_M8L z&3jspfidnGE1w@viU*~<30ytiaZ$y~RGpa@yxF>lbrvk^noyJ1NYxX(nGT%C@9o11 zvpFInC;F6kArcFHsz}eVC|Rj(=mEF9OJ@HU|C(Fvr~uLWq!JYLAJOoUgzgHT*9_>CRjok9kEHSZmiSJr6b}`%1;n< zgOvo#pE)B$jE9^Ow3e-8-90I7#?K3KMvtp%Sqe%#JFRo1aPHW*;0Ua}Ka?Ey;>vo= z{cMi)M}cVmygX|CfH8VLXl5~G0h#ty+Goo|J$`+>a`yJe_b*>B36v(CTtSeQGgGpU znw{o1Lmcr~NOwg8B@W^Oq_rlA_?aj+`L_}cig+sWql1o;AHzI+1V9j!mY&FQZHiJzOkymQZ-V7aTW6nIeI zu@ptUyq~H0)G-OjOyFK^S%{ozzG=fpo89Aq?D!f>s^hzTyhiar!rSUMvZ zB(oE*l(JzkZyhBnVC*s*R40+1M|X7SVR^6QkDjEVW)0>`Z9Hr^9hbnS5J;zAP*9MY zM+6;^Cks#3@th$TnyB0TSnrVJ)*&{&wCe-m7^9pz5OC6w$;RO?u#vIJw1=LCQn374 z8M+ZE74m2>K&sQgjpFdB4@KNfD&+u*lB=dZoos-4C_CV4c4o}(mO{}yTIiiz;S!#- zEM1QW?{KEJO=!p(gJF;y@9DR1AiAn`)-+i7Z!ze*`ah<`X8P*mPOV6Gx^TWtLc-Y3!VGYh%3={7`4%w8D8b=*y$ULb3U@2q=rOxe)W>6%G! zb@db+IuH~s!bcnTgGsb3Y@m&>9wp{um>ih1p}{EHw;8UmA=+O2J{XYcNV7qQPR21~ zh#>rZ4j?XwgZ|z^1G`R6-Yaxp2IPMXb1x?ZM9ghqkk6Kg7PH=@8%o{Hx)H@+R;Kj? z=bV>JJOp$pxJxo_zKy!xm5NW?teR&$Wono5Rglz_mOkZ)*tMsR z=B&!lL~hqM_Ar_^Zz+oJ?+AI)_l5`iB?gOqRL)r6NUaB@58urZVP+@<=ntPv^!T0l zU!lr;cGx@07EY5|5(AmdX;=44mmvlL&3;!9SO|-~i1HSMVO4{p0TVo@!o!fM zt@wHa>@w?_d*mv>oSfwPv%qQ(12jX25b5!DpsEZL{%Vc%|iRq$ql#4x+krOm@FRD~tRgtai2SO+r< z5N>En+_iBU^U3Y`@y~EgnD;Jy1j|v!U}|*`$*}{}LCKP{SF5c)>9YEt!n&LR>zL=Q zsu~KYtJVh^h+y~&xX6*SBDhC6fJDNhO+}=kgoJW=L_`V|R7*p4lvT;fVx-~*jB1bz z!=fwlQILMt7>0#^k`vcH`7w;Ck7GApFM7vN{?*vGHE2`wfKesJi2h2hT{$)$9#X#v zM{1+}YfgLft@0YSRy$mHl+DoN{ry?G=D*D) z#de8fv@agad4#%fX+ySfD3)p_F4%JVq4Yu}!jyRYy&Z3s`JTaqrsEs3GL>Q%Fsqmk z21aa|bXBboU65)-o<`IKva0+0vanm|#rKNu3TG}t37hA!SIOuI&D>LN@o6JM5BTa3 zqm8QS#^g&C@7Q8QHG3ViGBvl;2NO|I2mNBY84-@GD5nWK3sg1*sIm= z_NAc3O*Y>S$QG|sT`$Kl(vvS|J*JsuGOO+xnzf}2{-S4Z^Zl8IxaW<>@?kG(BItoG z8Mp+-$_8N9q%K$(m4 zUc7v&O!Fd{`Djxh1y}J*rGdEx#nMlzwm{N-R)AaH7p%Kx69KQvSPn1yE7nqJeC~9}VB>oOv zwQUUdpeFDU>>Q4qyRItb4%t$`eyEE58H;eV4r*)nivd1*s#-4P`Sni=N z9BTwx(^6Vu{m7na-}yd8I;o;lBX1=cmL@08pc=n5tj^Eg!q5_aGfUwl3~!L;AmLW* zSaGY>=EGK|_HI06)kFLCtYtkK77d}^pzOf{=|XKKU~ks;pauGygVNHiM?J6m#kiaa z(DAm9u4nLD2A0tchjowwXI)HGQ<_!12Pz7k+!Rk2lm0f1mR14r{y>#xAR!hbqn;09 zydA@e_Gm1su|}7<#3X`}2|dzZ1DS4Dx%HHs%cpLljTND9#}t=&wSOWKt$CE;RXr&Q zQEJ30b#*-!Slkqu;bB4ZN#IZ4`Tz^N3P=%lBh7N1B>SCrjA72?eWx2C_|6V&uGn&Nb6}gfQZpP0{}G5~st} z!_~+0`m?GHHcXBYo zwjY($v=`cp(gWs@ZU%zB1Si>tn`UvD^;=XKlA8z=ocdXN=gb`b>{nX_RwW?Ycr<;t zvh94CZ>8R_5aAU)H!KjMs5N=!$iBjF1);>(_k9-1N3E36(xy^D*BttSXS3gvOFff- zs7W_dgjG>uH1L{xC;BH;f~fXW zD1ZK*P>fdb=ma7i-gi^i$uNILDU54{PCbYGRHB#WT8v-wqn!Dp7ta+mBXXe^hxz)B zN`4c@>Ejq5CAan7?OqvRz$V&$ltD7ba9kdEw{%W*q3hc@!@I%_BE3XMfTkvQkq!&31fhCIcD0(6kDa2L&-+j*sZ zwDG?3W)3?9+pf;a8)#xm+FQ`LH!J#XSw@W))I1r4Gquc=syhJLIB|}9xck<4Tue=^ zw{PEFMfd69IQN>(q0cu~{YNi(yw|z$)PnIKN7W&9r z{UH58!n3$opP9m()KXHx%6&km)yht1l$|;6Ipfp~942f{IqaLsTSO8SGQX)zZl{%~ z5BCF-E62T%{d#bULyTuiv?A>oB4a&e)fiZ!vkL@|HRVc+rqK;6$xK?A$b7fh$mW;I zYEkCx!X@bY68PbmFX=&an-+4ymPNV#W^WDCikjkvoe|VZ4bq%y7u;mGJUh&DM8QuU z!8FQCMUu2@!41lvT{|OY?`KlIcqWAUCOU(758TGmt2%Ro5)4e+3AyCjuiSH6j?c5d zyz~(dV|z;;zCNBW??NCLSQwlm#VtD?~#(E@Lu*%SCH;1eFL$BAKr8PQ3zN&th_F?{zm8rVNmZ*J*8UeTZ(sIeU=L}KtcHx>Wl(8%Sv=_ zl$Ig6dmgd{yz&##t0>%U=3SynV;GDD{x zlSxbMDK?t)7ly<=!*1sGWb85_&K?$QMOutZ`%#NBw0W)IvX&Rkfm$vn4?00~uox%p z>_5w3yf%QnaS{xAC3y)_jLx#A%%c(}oZ;i!T&J3?johJ8rkOpCGRZnXAZ*a5Umh{hZ_>vmbLXD^83e0w#NG5@XumZk{TaWTq9Xi`WiQDcW6E= zTRX6?&T{nRMG8U_Ii!=|lJWKuMN5*WrGMhrVl0;q=eAtkTmKRdtk5-m=gYuZUtRrrln5vU7HT-Lc>DC_<=l+iGKLGSHR`Q+mMSE zb|gL+69YH~ks)E@TTvso`&*#L-Hyii{VrT)SH|6)iNGbY=|n4&h2%%}NvDW6W8-Gs zmvxZ_Qs$J*Y=v8KSUYbMLTNe3z_S8;CXo`_#HeF9@+K$9hssT#v+$0|AF4x*!AgRd zHc5QK7iJqA#)b^iH#|I=Qf=U(C2FJVR37&9+0Je}&Z3?{Ta~ZQ&}v8n#ez^=XF+Po zznXk%q%0fiU&Bw===g+w+-Hy|zu-lem+uY-w`l!YWeS(hnQa2sM0kkXd=FSgg0 z2-rVcPUr9wgIgjQ%AovggDU%t9|_`W4!d=ij3o%1H-sJ#lOUc!e5aZg+|$2GmLx~T z55-|8dQk<;l?&aG^)LJgRK19aG5K&6{0?dGakwt2d&gwDN(=o7T#PBKVBED)N2dqb zgBl6-VYTAx8b=L;W~!BHL{IzBSCNi~yb9nrk2IChv(Mvf%ZGkqKOo(`D4sXEwB^Io zt_EcZaOw{=tB=>%?24t+71?La3cqRUx6Q3F}li+`=3CH z&?xt-NtDVo5^dsbhlpEJTfeiKkt_iJIuhi{{HR=;l%%x;MF)cPV=eWV>a8TyRgcf0 zyT42SI2+YE`ia>N&mG!8qQL1uSAfQftzKx9Jv&=*yQK~(T0 zIwH#PjCaWqCtb2%)7ALw9N2qvza()h%4;xxA1shS@;eHy~aHfKE7`jDfe>&(7g}-oK8W43u zZ|HwJwf|u&=|dxM0Yhw`KB**E<`?(OZpi+WI06NxgU`&>ieeV->hitBz><$o1CUeg zXf`OO%E8f+BQK^40;r=ZS7pB-G*fF=-b!>#J`Fa}BC6!R!k!cg-&3Q#k8~|Ni;e`? zK!tlOHQ(o-9Xe(~->L;dR8z+AvOyr=Lu1M|Y4uB{IMQqo6yA-@NH%1AE!DBjLpruT zOIxaa`3PP#FBe5WTodFkw+oHN?88o}@nOL`k7Fw{&5c)I{f3(~Z>4<@RSnxRxO!(r zI4>2dxk{S_2pXxDG__N}8j(x7;mmQm$~J9l2y#w5#^eq~@Fu@Cr}(Hi zk4N_%t*QvMXN_k|=L}tSf_=*7j3MM2u1lNgd6191Y`L`ip{0ls{R5FSsa~#n`owp? zW`$&+NrOBBKBhqZ-1}0PJmfhfgPiN!)N#)cYT$e6=jsD#RPr&S5jr(f;rF)gKp>gw zC@gTn5$P9?^o8%@q4H$f6I>tk4aA}j_>hsq?Zvj??`5k}2RC?i_1*PT^XoOPz4QpW zqoV9QzT3x$8TUm2$7vo`4^@shmhuugqF6_MaqN~4VXecIu?v~#?O4sZseTlW7Tu?; zo$fFGR)by>N_R@W`c@FUmt0KI-k_X|vAImX0K+LT8!W0xbvcdXz4!OhyDOQy`G&$C zJEU1Ek1&ma9zn-^JzWwfv3CV#%;d0koYe1__OshrVN9JJF3T(sKFQxIXot>uH$QO=VD{6 zJfwNpbR;o&+E2z?OfnRW8m-P_%=iP|Sut@1kB|s>hs9(-hkhyo8&-*aB zTMwU9J+Gjjy&es>)OJoAk4ti(Qr}qwo1OUh!1xNqu%-eJ#oNDlaq3V=>NFEnXww+S zRgi+-@6&oX-Gl1ZK3z4I-uBo!=N*0j^0|yVeXKmDubcn2BDq%n{qa!D2b`R={U4Fs zUAb(m-Oba3PY+>e!c>YZen)JB~+oZXXl79nwAK@tQrM~i`MsR>vGn^iAq>Dx_&1m*r zIf&-jH!DFj7*C8um(JricEXCXY3y66NaZHoi)uBX95(Wy75gcn;?fQsTL(<2ZzMS- z3ZI73FAJ?@LzRLuoqUaoZ?~k}!1(F6QWk0_v;vgt1@AeFdL$z~r?kw?K9X*ciWH=-3Y)ilW?z?BkN&WiV}!HH z%gM;r$C~{q`U6UllFPsfy{~Xj7bdi44dXgHleIIA(?s$s~9b3 zthDDz1AK5Ifu&G^e46z}4ZonnS3}+dL+9t_lIA2dcC9a}{jiW%8=ElKV& zSH66ks1d;m+`Gw_@=eg^c!@c-aC1*2>th8d?4MwKU&6KR?>2Pm({-y>#_{ZTHKq5HEOkU zc(<~XoOyEyndegnsxPEkreZarbO%)@cn@;!L#L79!ETd7JO_u7(2s*1U zd0<>rE2-ItPe&OS>l)S<IXoK7|nQWm|u#}1_Tn4Awe(PUmt zZkeKcJGxcIy$29yje3pzD==nmtbBMo2k9{iPO$GGrEc50f0eYGxiLTx?b*c3nZJ#>jd7cTBakn7T4;UGue z>y9;~V-n3hSPfB-huAsvIZG;2P#fO242yp&(4h@udE=?$y2<6+^-vH;8^Q`r1wAyc zG3-QtO&&g{1QVOJ*v(md_x37n`@GlvK|i}ECO5>1nIS}PkwFG|bB9qg>+}{#*!|=- zSn@i@6-n2ny67Y0#^B+n^Qi|W3v+Nvgfl_$eTig`heet6*hx^IBdeoiG|bM0a_M7} z)UajWaov1u8hscx!5?sAoS{UUxk$I=u4;aSCQ7wey1{xaU>ME9T*Un0HSVrJYw`T| z+_KD{J1@kU&tl-=A04nkur3ppwDYBEO8IZIOLU?>!bP@O4aN7+VLD=xK;z2CDYdUP zUKm$s+{e{Cb?v=zX2v98a;5l|$#3$mP87*MsShV?P?c%;nmqc5C@ggzK5RCD8VrR= z_pD!J-M%BmD(9>@_rixavOv7(yS-fY-_0V|Ox#m-UgqOy!Wj+#`ZoWUX_x1akr`RFXRm}m-*Y2&Ng353EceQt-N*e58 z(}ATBkw0J<_xoh@yXs@NOLe@}XFEW;aIi2!VrC>(W#BC2wT&1&-#3<>Pm9;H*4u0= zva}@*F0Ei7?V<^`)3@i=fu%v$w^h0seU|l{n?hcXs{Y{YoR93IDl~(uZy?KjVgAj^ zy!N(mb*3II7isHo6K1&GkE>IGkTgR0AtalB3nOk8sb@7GINFg%8yrL#0EBvv__xeur#=rav z_Zp3qLVdv}kJ~kOXj@ zXhmgu<@>i;_@n4GXB%gmCfy%7mXQ>fO07$ZZu@7;HZbf#YoeP76lD{3s3w5xEF^FJ zq&M)(jepP4Ft{IWBLHU}ABcK}eNcQQC0xvg+7g=_&NPXkI2x|NbR4Azp2OfQ0}e|y zjlXsJ@*9{ds`So+5HDnCSD#1qm5$^>qAs{18A<%&2DP(hZbU>jHV+s~HUu4d!UY?= znJL94^zfGXAySy)M;73=65DG?yVf_2EyzjRdnVR!Sf0S zgIr`55R#QnysAVw4Q|2?=N3iHsH)R;SVn;YW3z@?DkND;2W4dX`oT~*o`*hb2wx9r zJm64|v~ei@+4JKX6pcWzj<&zHxl2*JnRmi1BHvna!k+G2AYnMLu2aBjZWHtgw|9pSwt7bO?*pNf#{m zw@6c}46c&KWn`Dc^5UX~zJnkfgblQRi`m}+0`{g$f6yr9XJiGM) z&9#>h!gT~Q=-nGn0*=aNDnSRchyL%MFF_6zwJV#X3zk`fSu9Y5 zS&yMP@uAzNn68MVEHTeZ^|9-8O1*QGFWoxT>Jm!+tI7|VwS_LwjO*@}M&XF659Z$m znf-1x;)FV}Go+X*FF=PnXr?GmTJIFCDN=YgByiL6lOE}X(G4Z6qbE!-_l)01lr z0;krJrq=Sn=w3*&WdC56^6K_`s@Tk#=9sk<8u<@#8_QLN{nO1Z8!fHc=^U%?D!zlZ z#+5Zu572YKFW6wp%D&?Sb)0XZj1M8NNBJ^An6{Z}rQB+v;2JcAaS=Afz*_v`6vJ7$ai$CA=+atZ4GuzWTXOV#oFRB1cY* z{MVQeW2!b`-eCjZYl=cCPUB4*-~!-{ogN88!ssF)&TSNSd(bScE%(odX7aFl$WoKV zLZCTq0t8P_W@6Te_@b$S-E2D4;*s`|X=61F?p+b~6pEID>q2>GElM#nk_o{gdowHD zvI8|7iZ8pPc3Uqi&lf|}u&8_2iQ{$JqpoH-6}gN-45DyIGS5Xc6!AGi7u9 z5H_sLPdJ6jV5Xj5{vznHIxa0l zfQA_j9l_53)~H|1k~E`+lNH<2u+Wc+c#2^DUvq zhCHT?TC$M0WQ6fAnkj7{V-TCMKB1{C?Qqj#H%zw!SUx(;-GxNXm@&5UE|EoOcWx@a7eLTj0Aa{Sypni>hKhM9~ zpcj?zZ{5#p8}#c{_*V(^s}1^mEezifr(xd;N4FdRh03Q$F;{kj;fR6|8@c=#^ zz{dmlcmN*{;Nt;&Jb;e}@bLgX9>B)~_;>&x58&egd^~`U2k`L#J|4iw1Ne9V9}nQ; z0en1wj|cGa06reT#{>9y03Q$F;{kj;fR6|8@c=#^z{dmlcmN*{;Nt;&Jb;e}@bLgX z9>B)~_;>&x58&egd^~`U2k`L#KHmS^KHjfb@K?_Ir;qnnxcaA$$M_pwqyN*#WBjd@ z{ZYUEh4206^{cF`uz$pH*x~gD{0k@VWgD2^ z59Z$)d31jh^8R_vKW_i^^!}Lsn@96MZu9@iO0P%jpHkl6b@rbxp?@v?{qu|GU!}bN zhe&_F2*p38zh9&OrRHUNJu82;yRS7b(=WyEcf0#q^D_NP!hcU*Yu*=T@K+=*Y;0zy zZ}Vadn(5f-3+n4y>gm7gg8$XPI{_a8q(6Z42ax^%(jP$j14w@W=?@_N0i-{G^aqgs z0MZ{o`U6OR0O=1P{Q;yufb<8D{s7V+K>7nne*ozZApHTPKY;WHkp2MDA3*v8NPht7 z4-2wL`cn}WR8Uj-hxGTt^a)#9*!`_* zd5JiFL2m!C^vCq?rN5V~hM9pG=H>D${dxWV`||hb=f7vaxBUCPf4ly_je&me|Bvs# z*ZuqV*VSHb|Mi&u>-OIs*FSIldy78*&AcJFn;I z&pPPW==byd%lc#b!}0r72mNyVez!os>Y&$z>aT+6R~__Pr@cgU|JypKQAtsKVVXIl zu~DJE(bdYQk=R??Um>c4x*m+Q{*zVR&m%6in945)b1@dfUL`8?w+i(CBzoht#rQka~rt#wft}M@YYW!(?6S z0Mwtr2I>#2&d`;#ERjk^&qyF6k+S3?w=a+CFVS zg6|a)T!l7@yVg0>1)s60Z2)I?r41=MKL^b8thNd^3dRB4Udn6hfJ#H-^}QyMu?^M8 z7>dCgK^>2HYnVpAY!$Ga3mB5OU6U(7q8+ZTM>5Ratwla$tgr zhgPI%PtJJTiYf)>is!+{*4R7Gu;kfK3(gNe-axvFU>M@R%~;ch2lIV$Ey6unNh$;y zF3~u6cD*R63Qny_B<>rBhx+;8_<35|X8MTN*51^RknobiNsqK|qMvDRpE{z7yi1mVkJ$;#+rTpeo1V@` zPFnl)_zd8;rtu|!Sn+t;z}~Q&@_JVzfSm$2)dNlA+h%YA?Z87P_~LB*e4_)z%XA9- zksI+tkM%cRO22Vn2yRl7Bv6t)H6O*`W7D8>cpL|6EOC? zC!(LmHiA$2{_9T7uRA@z>;(5D%#V2G=!vM8+P@M6Svk_RjAZjYfwy6UhXR%_i_V&% zs+Oe+BKiC5v-!4<`t&odRc$RJTN*CHP1Uc{%Wg^0d^~6LdTbJ{)Uo9@i7tKMtC~+C6EV z`#<%^G`lxqap|*+Cp+RdiK2e zj?eaF1ZwOO;i=X8Y(4Nib3=;J=WvY&i$N+F;d%Mknv{ZoT zJ>z%dc+f?|z#x|E<>^F(7eS#zyl4#>hP6JW-G8QGMj!?gO-}~q^Slef_(I=haCnlR z(S)djbEy6l{T8F^Y}ZoysWl3AbhnK0*pdiAa8HH?euUR{f(O~!ny>h|01|_ElgHu~ zzmOgHu;kgXmG4S0XzCJAXw8?++UKD9nVgcAIQ+T6s2*SSp+6YmOG_2n+Zz#6?jXq# z3s1$(HJ=-++l6dIzX|Y4Sl`qk>^4v3mxW=D?yjk5XhhpAJn>n(cGC-9&Q&q)^IQMP z{&UMd*wYPYuxC!6XLr?Deh{ry#TS1R4Zwo#2QY8yB}L6HnX%)hPt`vCy** zmYrIpUlL*8j)RRn-YA@0C438<#n(xE_Ciap`VpQ*BVR-&e1str`q zE7z2oHsCN@5x~!vS_$r=oU4^Q>8ie?>7jX`$z5P9RB%eJ>q%Hle9oVZor~8{SzluM zVIcoF$b=S&BeK`nMl>{i%sA8QHfo|^n*AOcV&#tU2V{iJ6sCUlHKIyEM#DfO`=I( zOnyP2I>l-Jb-(bBM(?mHe(phH4hBw%3Lpb1YUq$crW(8GJDTWsNx~XcTv`;`+9-U> z&07F9*>Z-Ri**ijvXo6kvX<`?I|i$egx5eh68%_Pp$1~nOL#|}q9(@m|WjA+H z*|pxNxx5Q4o6?7w)Ie*|vRRaVCkor%2xs@D*3!4OkvkrzV_b5GcJ2lb?eWeM&Ft!I)-Dh0`ngEp8k=@u-qQh=3$3zWQx8AoXPTvh z%>+iuD;TaOpXI=Z9#WsNlhaT;uO&L@{vaC(*>0U#NHlX2R>B8)Sj*Fl@JLJTY4bE% zRiwN^{JdhcKTnloRXXU7j!xu9kdz;HiA5!ZM@Q_CN9AN4bikA+aNCamZ8A9aLl$Z> z(noDz={Hj!+|8N;{fNN>;zWs19BE?t@531dqSCkc4#oC|En-#a+ zC!aHX2kkuo&GOaO$2!xQSCF(YC(Yl`GMa-=?gT~VXSH+vn!mNjf89A#iW z?FWRO?_;;jOb8L9;b5t>3)12~g?axMWA6YgNw=+Q_p)u(>$jvPIJ9(^ zPYUi@!{|80(v`G7e7;_|lzowq(?wCN6nxi8`nia=b7`$x88~66DMcXb(k4Z?VqF?t zD^NakPi5tFM7&EhnX|xy5iD9Z>%U}PU?_IIU_0Y_dAx$*HR=%V?0$ksP(IIblr@RH z{nF)A8VNlkgQ?ZZs{&$9Th|G0DcI|#7t-UoyG~Az#Vd+Z%UHXHYvg9=I+pihCrUhf z>V+ni>tXDn92HuRJe0iRfOc*}%Q3a~236b&`bAEh6b`y$F$;zR=o&$@?qJ|ooQlbM z7^gI6N2+V82qqRj_!zrrPny$`K3aT@zM})`$$<1~ywMP=u;FT0e$zXhjd%{3uHeUi(!K+V%YrP+?D}rp4)D7k323)3r?n(m76pB; z(alTT^?LRNInn`9M^PRD^tMvfC3Hz>PELLUXxq?X3Hh=SQ>C)!Uc&g>xYypp^vp5x zAd*d?LbfMxX4^+i4Gp$&$2I;CeGW@i!1HMno+c616bwt8AcPzO#OJ(@o!MEs&`ZY!YloEwFTY5pQnL>6Gii_ z$D#APYL}r6=9q_g1=E5+lQxlUW<>^LCfUkx@}EZouQxLvGx}@puxjw&8%_)QdCfg4 zi;bU|WM(@b&s2!yUc44@DYWH`ZDTPRaqIobw(s-Eyy6(Jo6jB@BUHXPeOK>LAhw8v zxAAT~cjen)MR(=2Oe=}eHivZi`P;%0#e_XSSU`0#(qji*R|_g;|=`?(me!^4ZtLp_(nZSniv!NTO83vqgcK^ zUIWM}saDu8+I~N5L_q_HUf##hi*-7vUAdqI5fBDcQR581Xc$j&COH$y%-FZK z6p4O7)~H>Z_YedGC+=!WJ-l<`ODzW6#z!cak5^?XD_&-}>-TEGJur5J>>i+&%y>F< z)QKg@&%ZmCFYkWtLa}^!Vcl8_}~L(RIpsV#WA7rIoWujPcVX+6|t?Xs9bD~ zbVP^`O1qr6$!h6PIco!rfJF2dTw8%l)3EPW#LFCN(iM8%s`|5-3ub?5`3b*N8~`5Wf*=BMWjF0XHGU`xZ>hq_cBvaiiznVY6ni%J;1ce&2t!QyZO zGe4iyiz~=ZJay-=Cx)D*bB~5popEhr!fZ)9LPup(CpFbwr;O#pK1>h6wwQ$W?>qp& zKCVWi;oK&2M*4mTB=Z_^fPAf9LaW$bOvt{C^f`j=q5+fMBvGuBk$CQ&U)M%Mlj5ge zqB(#riI8~_ncZ;C9FPOJI3AayhFIwyB$Btzo&q6e0>^YB_HaWqgTvuW*o?!o)t67( zQoC(F-i%}eXBUT$i7vM`zW!kxICqqvSvRltMbOt)v26o}#_+vqL{=pSUKW*Fhv@bz zsiyvXI=YvbgT>^c+<7XIJD*U;_Y=5!Si4PBvqmV|}sW1kmR!^~H4H5u;+-((Au zo8k#lkX09{Bo7v?UTiAZgSX=#M{De$oQc=A!oYfwjIxZ(Nw|o@HZ{%;xWuF_K)`vy zZ5GPbts#Nd8rZ_&KzbMtZjyIu!6Ghar9tf&Tq&7iEsP{oazR`t`)}uCcIk>}vlcPW zsG1g7l`bJwGvhFh`4r9(h}H$Y>xijzfxo(kpa#$AuBN z_yT^Bmyh0CR?jC`;N!NjAZO%mEdg5tp5q^3=1I~rMIxrtSP=du+i9M6l1=2`iakdm|dTVX=(k5(nf z89W<-Z?W|BJu=PIOVJIqEnv2z^NwtA{qU0HG7BdikU9wd&}SNxWn_&@u(Bd7+lR8+ z=KSTA_aXWKTc=hYLuBwN5asMMH6{?$r78!_L||ge9gRhxUVatA8I$dO&7J(5&=5VVk>Aul8g2vsA6-u!yw(|4?B8(KLDSvH#f{A{yK-pvW%6TL3yjb6I0 zTR5k24KHSt+jG^6MdKxMiYPj&zd{pP4Qo;uWA&=o^pRe;+iFW-CXy#~%`3ru9~!|L zRBz%0ezTCT&!IE=eiRd-UG(#2KrXL^SCqR-vtAEQ1ja-4_@3L*jZjsSVbmk8qsM;5 zfaP;E!lhbTCf3>pV=m)FK|FI>*PL6W%5UAdN z6(7{e&?^0XUV$t_Zcb&-jAP4EULtVBCZP8|4ErNhPS5=T3%Q*7R#jp79{DGQCThk6 z*^kl!hHfc+9f&muhiH+xnmU7VW|VHu?(yO>xMM<=q^=72JQ!NxNrzeDl>k4}8erEp z$NiM)v1G+t5iiFt>UHT24_*E)0)#hXNAintGg#F^dre!WjLmi8%m`|ZE!mP)$%do6 zc%RkNG&a$iXpVCEgPNHu_4(#BKcn);&HHAq0Ay$Ty3&ft*8v#n#9sg{KTd~kM=%O6 zaesqZ!HZ@a3Ga)T@?qIvlI~@Bco+IdXTl~m2cUGp1&qOMet;6QZB4!=v0<%2T*-LO zB~A)JAh|g{c=rMAwev9!@ta}ROWCTdq`deNPh=X?w0ot8$iH-Jf+8~eQsmsaG<8B- z(qr^bE35G?SP~Nq*lg`^iZC&eOOccSS&|WRjzrr6M=t13Go0v9*wO_9mF&ie(4eds zRBGgScjO<|V?VVSuiMpt*E^RfNyKA&vJb%dL|C?PuXam;b10N7&68Qa#P7unksRRa zY4|7T%)rimhTpK1DT-uRMxsy==CIq$`N%;z>ADTN&UPKHb5022`4$_ zid1ap%K7Liz1Amt!N*dg=<{~V%((;NHEF~@ERM{0x$TIWbsVs6!rVOn^xJG;j*>1>-*kt_ z)7QeKgI~;HloFgz*@~nSOrr~IQVXb)(Ptc;wI}z@=uo-w9x)T}6;VALQwwvTYy8aF)t;=w!P_ z(HQVgVIh6LDb}cn$@y)+W+Zg|P_OtZG50df_uXfQtCpZfEddaqR(&urItN3(?KZJ0 zyvFj<1m@+xpY8o_s;987L_uk`eh|vO+*y@b5G1o=GS;M9-t#JQ<7B%kftona9oxhR-At{-d?Jwa%`MIG|1wjh^io}!*3=^j@U+HeOYM-fiVFWxt;?rrQR|C9JPeQFCma~ZzT<_4GT~qA`T0cMaQ!P&$P|^7N``v2)V4~jmF8`z z(%NNcTyG*jORyYrJuWP(GuOzSO;T>t6FFdXO(Lk9VUPGwak{4|od~sA4z$oTbhb7; zg959EQZjb5xv5k?$j_W#&OT7%M^0pADPLW+`NYp6?G-Wp7|bD(#eRxI0Vg=CT_x42 z=8k>?wR%#;$oY?gl3I2S#fCioa}#LWJlgWcCY41GuGaRL7Gjv1sj+IBe(cSjCO7Y4 z|4Bn(P9yrlxjNz)4FxjX!v_QkO&|b<1K%;V>e?lh-+jdojrtD={tsHYMf^&hF{SUM z*Ye*(@~Nvv=;gyf1S&_WX=T4C7fZ>scG7vOQPiC?x>PtH4oh-i;P$6$QU-F-Xe#Yl zaF*FK-x*qxAsqazNSqzYcHLzuEkUfMiGKTPi_a|I8@%U{D+?cU-FMG#hxn` zu47|7!4NIAL27<>@(NwG%?pHL#qJoyKR&2!W$5Raa?ueXe$)ZI?0nF_LoQybR5wKz zZ1IM;#sJ0sX2d@eOI6P?cbywYKxBXzLR|o>c!JtZzRX76q>lE_Wy)Bb`4}CFMM5iN z;m|Qv^uQK7S^a9mOH0gN!bW2>sYs)d0|;r7WW%zjz{3Uwb)j{NDQ+AdZo z%4uaIV~p&{o$e(@T7Hg9@51tC*CeN-gnSttmp~37D#0c)YN~S=MRBF5*M3egPy>w8 z8!BOYI=mAHzsbZUe*6HDnVeq>Jrn+(6~$&)FVuN%fbr#%oI$A1#93|V??(Xjw`ivc zef|2O-8BCt-sz+C((wKs$v7zg21*OnXE@QQ`@c0y(BB_oxbbnC*cV-l%?w` z9I*I$f(6YQ^I{?kz2|TWK5Va%YDV|+BUR4@1IRCqG=rDhn%Q{KpMclFU_&h(twTPU zzQw*KH|J5SPlszE-f4lnGHbu>LAR)eO?%`gK^1uSn9Vuyw!!B-R-Ios#}9$}@BS>M zwB)wUobHf|K67l(p+gph?-Ejv&t=%x#Pv!e1td@qO6G8DGsy|O-g(mzr577g!9=Hf zi#~wUPE9iR5{^pBJ8~du5CGdM#DXG+8WQ<1U!ner(tbu5=<~cndcD zaPq;Mc|KPo*{3bTUpVG0J%K4&U!!XoCV7ucrx5oH%D-qUTq=9kKI12l0$$AY1TxLV zg}H8eYT!g6SJO>%IK7l-?qujLA1a$xBJE>QtPlL3u)3KNkVv8R2u?!9JcwI(mVoz> zR2CJHiO@d>YXz>)nUJ(GW&`u56RkPZX$M1nCQAo+iyhyh*(=8Pk-+1mFYUYEmTjV! za)rCd80KdVS-ouQVfS)x(<*x*Q_B;v%&U~r;J`<@4CBLSCv4*-zCp=aaPy+!Sym_( z0eN6f;ATCoS0cS6y7z5=%R1y1iC70w6@@EM@cB5?L|3>ezOIFuUhhf^4IgJHrH8n$ zLVSn1+l!9hDbbf3$Ln8q@E%FR90o7SP0$66mkk9EGqu?zTl4ru@Y)a;d#ZhuBa41M zlgCZgcR(hBRyZxWJ@#W=uGv}8a1YHM8P@qhwQq~ZrxG_um>8{tH!d54npKQ%#FMH5 z#sjV@F4VosU>`LmPd@0%?gTfhOa*?m$_rHMj32+zi}omXj>CjO;RAl-)MS{}&+3la zB}MAVK#e=rwZS7SL${-U1}|wgr%>L#nM?*3H|VX6H;@r#z!sP7?9RIzcock!J z14b2?;%p1HPkM`EI{^0S`jE-X?S;9Z>pE5Dx8aQ!VQ7_2!Zef*lu?W@_UcJiNvlx~ zrJ@*>t0s)^`S6Hoztg_3dF5~AvJF<~HW$a5h{D-Wkj0EB5!@IQ!qtoe*F3i%1sz4E z=A&r8rel7qo_RiR7cI9QRmu~?6kEaF7B5_;Dp@Dc^Re`3USiq$8d7Mkhsr~zHWO1g zP-AR1ThdwKqjOi@fN;8v^<;AI!NqC%Wnl{Kmuo$JNh+asHTj-aXI3GD z)i){xoiDl!r3YK0QRW`dK@+s;K5b1;Nq&Z)Ju`HlAz<4(X|43BumlQ?2NtFa+1;U4 zClxeINzK@}PnDE!2nK=zIZLOB6ZCi)9Byx0x<&=*BRmZmPT&=Bc6L5VXQ?Dw7zeK% z5{HCnt=F%szhZv^W{g0t@V7$Z((|ZWDXMF#Rt6-LX%4J5#GMTD;X60q0{oJ~r0%{h z$xf&e?y(h`+juKU*XV}j^_;PS!ArW8LVa?0*5B&yBd)s?D=HNb`bk*;%6?G3wlh}a zovh3i=$Dr-u4<}N-yE@%Q<^fOe!(CyDpB~UR#VN8(vufnorh_f{YC0~@ zi{x^a@%tdVl)ga&R)Q#%Rsi)sZ6c<8G2wZyla`1Ct4TYuRfE6KC#72YLXMo2)iZw%T8YMW4p9N1mx zP|f&?(isCB!1W$tZa#Lm5p+5307YJf2E=j@r8iMyc(PA^`ktneM>SOVvEnxgc?Xt4 z>oNNLQiPEh29q1FKOBu8Oa!$6j&^b0C`25qz52w4GTYHvgvdZfpRV&;TbnVQn?mL@{O%{Hm|3-^^7XA zC%nuu*MmiKQe$tQQ!|Fm%%XxL&t#6TL>IIrYEZUXq4bIfw}WCuDSyk>t8nUc?g}K_ z>`pxnZ`Ig<+WL;>zBf^-<9tIZHJ}#~{ZROU;QW+Tyqk6?=XSY(s&Vb_;2CGJhir?ITYA9XMp+u(|6_!> zjMi7Jd|vVxJUIK|#|KqxXVizklpGHE7vgY(%@VsYNOvH%R9ih;`4h-gI(r*iOSbQE zu&aDb{#x#orpGqnoMOD}3)+k#UpGka5!oM+$}r5%UVbdVaIaquY1&0p#3l4M;tnBH zc(dOv%ov}^#evB~q(MW~!kNBa0GFS-IKHx?QeLI{kzq;ORS$2E+EDP+M01Q5ViM zD_UT*uu!hE?ltlQA(w@hXPGIgQ${%+yo#%-#&X`Zs)hMDLr)F_YVF5)3+@^CI2#Lo|LTH&R&tC zx8w?~(KbAUgv0qHp@|TfFWLGM9E%th$C?#rDUWn`cg-@u;mu;9{&byrLo%v)1GB*e z%m;>h50P}|g7(8T0mbhWN3v0r81YMz^s&NJNFu0_J{6Z@D(NdhZ&G&s9vfE|Cp@tD zMIgDkb+$IcJN~WVh+$P9CR@jTFD-s(8qXZz7&PWqVmej%lTauS>%HNipTU5T)l@pq zN5*Txe=rRA*9XxRApQc~{V4&=d1*#^j6oE_6lhL_0meBTPEbdB3%&VbtSK~KByd3M z1epUjE~+g$J@fiB)naaooNv)F-n1}PBQ#kXntf_{BZRb>*oN-STnZc0(%bJo`tupP zU<+&paHIEkI?o=W7G>Tl3Z?xfqNsQmg=B1(Pg$Z!=<_C0!W|9cFUA*mpN9^v#=dhNw?psWys_ z3xAiKFh39Tdl*y0S-T~799r7pYw;clwl(GA{B1_3@Fs(Dn|Myal@X@ZY&Zce=pu)Hu+~yE!jjc{4MFg9shL_%siC`( zK%yI?-b1_+s~`~GRCyCb8pHXat-1I|?UDtpGbreclihsI2+0x@f)bRJ*o*jC!XH>; z=E%Wx3RHQ+4wC`fwTUmhVgzDp6pB8(O6(4|j^_2QDl)%GL&ZR?KnCd*o)nJQ5Zu!; z7Ms+K*y}T_jS6;4Sk8FDJ-tx$OJrex1*SdG31O~pY%`r0(?Hrn>(1u*-Eey$$`_z( z>>UfHdWTut{x-Yy9r8VP<9mpNCs`4<6&)P;N!qBumoYDGAXzyCxWyQzQ|3EN(Dwbd zYgGo$nUcu;n|{-1Q-qe=L%oN#Y6=+kS_5ITU*8fGb3b!Ni(m%h4@F#Y)1we=oI(4u z*%APas!{6vS4O=(?vUu|tL~AaNgq7wa<*g$`}Yg&S-)H!Tk=EmDKgY1xGy^7@1|nt zZEjO)vD!?%l@8z!?m&2q>V_>rnYM1{9*Z+txS1|Ie#>B0jg2A0v$(JN1(Mxebu)AA zSU=4=p8ls;RW*vS?XutEcQr=nXQD8&sC`W+Rgs*|3m?pGIw3CV;c#D~Qe}x|NGF1p z`#*~*Rk8PWP?rMX@C{?>>6OCFOfRP{26k}rg^ z=b6p6Es?2Vr)n@yn0JL33=FCMjdT>=O&U&Ob@BG2c5GZ@keMQ2$~8e&7pCv^RYCF4 zW9bREBE*GjlA)_K#!1UN?J|Nm>=wgC&${EsY%1Gd%vYdzoLaUp5I4*>0r7*#7*?c_ z7^_A{nFtB}g_8-u(zh?}4qskqXtn#GeV& z7G4LEHRY<>=awu!MefqQKc}jyME#&hoSA@5DQpsXDOQCJ#JR99YK~%{&kfk4pxHa$ zp;gpO20RrqTvRyrpt3xdz{jm&m5t!D(~mHYl!Xrc$qH<5+4P{UitUT3rX_IfS)O27aicC)I{-F(o~0)k)v-#%9t|dWZHY(r)GAAA{nZOu9aFvidHr zN5tP)YVxjI3D6*HtZ-__v(pE@KDlOKa!{APW>H{n*MEt@9gWu8G#En6gI!p?;Z!4T-4FiFic)7yw<4aiO;l4uGt!{)2W)l%H>}8?e?wOWJty#(JTC(2Fz~( zx@pk73ML*}w9I7OU&>zEA2bm$kG zT~L?hT2{*S9vdLjaWP+su3NG;gv&5%BGz+q#&Mi-cD#T@XCa5WiJT&EKDCm`n1sN~ z{qQT^$I@ksSbcq2e_mg>a}NSn=3G0+=(Tid^ieA;*=0m8FB~rx&y+P_Xs)qk77#=g zIs=2h98ux;xi{S*wJk$E2RJ1flA(czp~J^Axu4nLC(<>0qTHsk8fmYsFIy2$RHkJD z`bO}C`|v~@in3f!WiY|&yXWJCw8y2w)a52mmHm9B&Wv@3FVsqboPTGbZxDh=t`15c zG7}i{xqU!bXS>g{`pkEYBlXLd@rBza{^D&gl%7=;Q9L&~PU^F8q1Cqymw+6XqwP?6 zH=XS`*5g{P;qO9@d1A{+`Yo$VTMC1eL7fh&q@+dOu(LOc45-Rf@~(ctx+G&Y1|4m%A}&fqxIbVtSo6(a2B>6tDRNwe%kHNGb%l}#ikUsr!J+*&<#rOY}`(l znp>saYw<2qT9p>j9s#$(djSa#%D=x)5;nW@?&RhFT znymQ-+UJVOL)rsw%4Don-;x~o2@Y{yb?< zU9#7925T5iP@*j2L0^aR2YF}o_`o@~hXsgnDhB6^#lAL;F-Bn6Tb%exnrP$tMO3LBswD_Y>;%=nVs7(8CS*{EW~bQn>=8Cl(*T z=-vhdGtBg{AJG@5q~wU=D1ND+tCcFH$zGhmpCtLyy8it}84SwlDu)3gdwgC-oye1+ z2e3c7i_r{B!BdQWsbd~A3-s*6-P>2Qz!~gpV1U^vw9dKR+^y!hK^rN+v(1cX?V)Z=B?*&?I6mi_O}>75xXY2Vt)tELS03bp{bamv(ifQY!SSEQ|f`Bd!wq zOzw9wQdVF>Kfmf(QReeSacB1+W{t^ihq-ITfi|eDS$%K&^iu33E%%f$N-F3)n}Yy1 zn|3@Y@N&k~cT&^t^Klj2RV_+k^RjEqLO+;8z~_F98`volB7hT-88-(vL62<^qR$=X za>3RBS4%FB+hCO6UyW-UQ|^zM$=mD@y;yQfzeL^j`SBeQt_ySwy{94+x4@`yyp5=y zvPM{Nxl`ZKWb>sNK}yV}<;Z9H3{`*lf7y%q76%MnxSPS9Um@{f*UpEJ1XYXEH#DW$x7I&{>?7dLqR#C-vh^29zGPq!;N(Z+1 zyEC0-?%PJDq5)7#^iD2b?)7TZ=xrzQ6iv*#-pLGbIj-r;u25HmM_6e&ke$<%T98ekk@%+Fj}ryRBiFM9}mG$E6Q}SN(rdEtf^hk!&g*9 z@bd5GJT^dm8oyzf4x5=wvkn*2IerWed?8>Hn~R5=o!$Fb^H7(XdkL8-rlM0aTv9zd zgvYvfBS%+UE{|%bZh34!Yj-Nf28i*9om$R$?I(E#2lwz?ux#4)EWGyyw{Br>Zre{F z+&ZV1o+OO09Be&d918zDizMK%&9RtKqye4Ruf6@z8K~7@DEs3xDir zafll@8+G!$PkX8S`O%v4XV`iDTYJ+azlf6APzE3EWuB!==s{u{nM`x-H@0QwmKLhi z1R9~baWWHQ;L59TJ&}ETk3-A{eafpp5AL)=ag(2rV)ua%Ez9UH59hDUBAl7!t+xv+ z&6O}4wynELVpyF*8!qjnFzhnb)9JJqV~mq3TrAc%i42`0GUWYSHc%1$*`!k_0N>{| zHgnY|SPwlipbu9qKVO-IrfZ22JVhwVmUCVT?@6=txpIv-L#OXiKCU@moxC4N-Skxw zwA$LY1Z6*tBllS|K=bH-$=aI&oomFLaP(8ok@cP1pu}iWF$~le{Vwt>-Uy}cm*y1x z^7$n{|4C8XT5B9nZOH0fusT`vPB9E~bVY+Y59QuDqs^=nA#H2l%XC>~R>UOm*ksOI z&HFOtC3JnTHT8bo%;p4CpYXA(a_;7eME4uX4Gg=dPiu(9tT!dgpV7a*XFU)S_JUEQL+^pD(#PV}F3w@l2g`iyE-LCE+u~>LmLD z)+Bt}4cX5W5hv7=Uut7AWxmNd&A}zkXP-ijE&{P)ActlH*p4il1i5aC8f-xML=2%1 zX@_GRhS_XL`scoIhaHjI5?(=wC(-xXIB|MXx?zHL5O6a>4sn3XrWvsrzz>;{N&|sE zMNXHkDx7pt!Bd=6z6l01!J-#P#!g{9aXzyL;fr?e_G zZx%BH;@QOh5T!euS6+eIAH$71uaT;aH*UQzju!}^jrt*2lbhW(3CPO%br&QlR}yi;GbQ=&!y{r=L!<*UdaS#>%`uo;fw;QQh;E}c^|euG z$A*T*ZaJIz-9o69Eck$Ux{ZyxrWJyz?ZuB6k^s}d^_;i&jc*4ZcCK(TR7Z>f0cbzV z9LCZz_P~H6kh4bz&{}TMgzoYwO81^4q-|3|_j}qQ#n~V%7%G#w!;*;tn749aMj%r4 zpiofn!Uo&@9#|nmWhG ze}|BwS7s)XWn?P3B2EqGiv!ANn!w3Ccs>YfyPa?{#*=8{jE?;C59z%q|192ku_mB% z@5rvf=B4UkqJ}IHK65?FEul?wce|yFVgET=2n)5)JXw3?T@>~%TLQv9ALLo#Pbp`} zrYT*e3WYi=VZFS&P_ALom*sU36cYdhVi>UpM7tw5ZE_Hy5t72qqx#y4qTx+UxB~fF z>i4D31wbycYK~Wy+eB*;Oin&BvhB5iH0fnw#97+Vnt4~k6mxjwCF9#DKHvu$Rg)yd zEonAByr_|G;MG;TR;jDEL)%Btr40(k#XA1vUM=OIP|;LH3k(7!tW>vzN;~3O$I6bM}Qs=k+9j{OG3X(c3c{gb?- z@U85J^?CB#)6Ke70H13ZD6OyLTnZ!4>uDo#K$y1x!JeFB-mot-ixUFw7PV;YG$4iH zDyI-J*;W^1SSs~+Qi_uq>|8*3CTInpWpxT>L1@M+&18U#03f|G9Z$WWUeT7qoD&rZ zV4MS}&viyMrf6!-vbP%F+@U9*9a`X#ML^Ga@?_RJx^XiY+Y>@i#{aHZ+w^)_N{3W* z#y5T#TR)-CX`%6qsNln`2*Vv472(<%xy2fU;vzl4&wsV%kps`HafuZjQzPgOF=sM# zU2f#s^UbpApUT#QVw4_YEGk}PQWVn@q3gs8=Rz%tE4P-Q5*p zP$b&dVh`$Szbqo~8WPp4$X-oky?ZMR7hU(|OY%$*v9wl}d6ExrZ*8N*ML>GXJ*RGG zQz6Wzk1C@05E<1GgLMun{Fa*MCv`C=_TbQW!=RQsfB$A%1>B)WH?rD?7TKjzm=JSH z6721(Q`J-~;(rakDz#wwpx1kyAawFFon$rqfK7h((^fgHVv=045tm6IxPnP_X#;x^ z4D3!+V%zP0FLgh|_!-?}Kx%iFhURW}%1m%VuWHm##tproeWUsD^OE<4s=td4lj4m- z;fw~aFN!1|IM#3=7Ib_8k;r!QLD)h?S7WV_fPBMTnP6~U@kfNzh+t6w$dlN`akC_#EE5Z|=wz%QRwyRIv^ZHLFEA{Nq zE@m<22X*~!aum2^jC|+)H&GW`l!6pQ`TbE+|K1DMRAiDEu|835#VB`3@45@_H(O{t z*4M!)>&66Zq*Vl@&ibN`Ab6lZ0Hup2jgQG2#A#ZiKE39Rh9TYvw20JW1)zk?S zLX@MiW6TrrBD_8|K(=vyS}ks9=rr@W}T@ z^I5sdPM^S52bo*v-gN#VxSJT_Kw{b8M04aP=!8fVqT$+%)HbrPDrY6zC!6?~$I+CH z+4v-2fkUp}dxJ(zystU}=^|$IntbRM4WcM@*4X1gbD-HkaRf7bC8>m@m?fb#1)69% z)ntd%hrQ>WsO|?-g(wy4W2^Eic$7nw-aJ@VYXZzT#?2l$rPYmZ44n{cz22Gk zHf8iby_Y)2o`q7iA%|drQwzYl?t|CG0*g2AbBDP4RJ*}NSxK>ZXtLfyihU)BX&HG# z*2zeIQNMplu~2BCK7?`!Uf!m0TaY0s*9+ zFzv-%*1qeNvZD#=YCbCg?GxTOa1JbJNQ1fpfLo8HU1Vj57Ft&ZOly^YI=!*lr>yrp zgP*5n>#(S{@WoJO7pIq?MY3!r4JX|lUG#SH`68;N9C5*YbD)KnJ?HRR(YHX#em;YN zV3h&3-q^8QR7v7{$w#&akSOB~tRaVpj^&7>GE@%_lnVXYjo$5&?LGcPX!`Q1rw%$~ zG|m0WCmpJ+u=~eo~!5%6k>L*x!<~_y&S$ZdEbiAUI&S0fdMG#)zn2!Vsf(GRtJLaOGl#ir<)y3y6k6kaTxR7y z+N~Q3ZGRAzQ$vt$7q0!3lAn<}!@@a&b+-?%CtBjVfPA0163-$W=EEe^F>|EBoMdIK zo2cTkQ}#RqDJS96@vu`Kpehe3_f2*iOJZ_k__eZEf&4!I#nxv}mzX@X6h_wJDv zAcVBQikE-*45yyFhl_{3GaZ)5Ih-zh@qi;;voCa;cb`YTx5_VnZu^O+^0oaf|8+f( zmG%7{>__$Rjes+G;ZLe>2IhrSM>GBnaECSE18HJw{NKise~$iYRsYk-{y%=PEF6sV ze~tL>_&@w&85x;5{we$qw@(IU77o^bivQKH{@2WZMK1hf@qcao|I=abV(9E)Z-P&! z{Ad5C&tA~L$>cA(0zRFJrjV+d8f&ah&{FUDSlf>Ui$r{-FIrHz?{wLf4 zD?L692L}T_1H&ILT6TKYf8!m{F#N$v{5SD{jqOi{|3f_B_%rjLi3jZL{~#W){~7iV z;sFZ->pzGGfAAasmw3RyNdK?M1D5}CHT`2w`ad_x-=Tlx`aj46mVYrj{R?@(^0(RP zKO+xV{w8PqBk~vWfaPzZ!v6w!pk$$q^o%M(T?Vkw5E+h>A8xJTPfRUhtR}glB3uuf z4k6qii->;_sE8~dT;LyQEvcnZl`QhRE`m^BqX-{7+&VC?paEIn5?FKnjrU>V{lVAn zXkx=@=6j3jc&m2_RSgb^D*O^^y-~v(2rxw-bVZ)~3E}1kK-7r2#VS7iXlbKH3qBqz z5O_%m@Gr?7F!=BvIo77(Y(xnRn*K1EM8YS&U*7teF|ldFpjBz~f~A4f{(yI%2Bexn zkc>azSd(GzL)3po_WjrxB6IiWnhc8PNAEWT2mVo@^y*J{A!cS^Zz$5K&dkcM8%h9h zJfn;seIu{%i&eP@)?YGsg*p`8Ump|ncv94>uPos^v`j8)9SR-V>?Z|n@4=kkfdFYX z!ADS^sUxsAIsmyfxTt!r;&cB*tb%?xt-f!@<`5W$a|Oyo8~_j~uo3lEc-x1Ua}Ey= zdZ_lPcLg6m5C*q9M3}}b8E^Qd7Ghu_yLY!&Zp;>*lMdq;N>SrWjvy@bPU=MDsuTk! zP<_-MIu4E?9O%=2y*oDmNx^ll9&avlqmjZYeD)z2I-7j9C}B+ZhH>o zr3l4;Kd)m29>p{t(BNbrLm4oPVCPfiBzK+SX>lzB2isEL91=Y(K|U267?Gb8Y2aJp z&sYE-&p zjf~gOg4-*VMO_qx;}iKdFop@6C_KJzjcNVUG0tTF7MNJ&du5P=49fzi{=QS~kp4NO z)zq$pf^e0UFkH(1G$gZwt#b>$b(N9LMAxsCybKK##v})ArCu*hrUn64D9pyEX{4z~ zxAD>Q4zhDgYhpLQ-U_>rhRC|>(;zxsHQ}6YD*+#e-Vuw`O30b7U{@@g&gg4qcCP5# ze2|vr)Akt6MdxT3P#b^LhpKa^Vlt%!R$y!_;M~AOLWFNy_J=`V{g&laNBmo9xhFS&8IgvSGkhl+rH>p z&9{bwcB#Mo?+>@j*JVTPp(tsNTq}t~je2RN)}I-B8)Qow6(jQWSAW|$S$_3n9-E#b zg(3@_UZg{QCnB*Y#~%+*Wmm(#3MoiKXe>_Bv*kKU7eJYR>vGnc7V-7u7;&2&>kPAu zQFv{%1-7)58lo7ZT^BP2WImverq^dtK=e@x6gE9t!nCC7yvx8^z?0=Vjo?4Wif>*z zIshhOU5^<=CB-_Gj zc$C=CQbM%vP&HVMGSWDl-RP;Q8d;-KyKTMIZ^Y_VQ}b#+)wbc@Z|p3^mnYzQ;)zpo zM{Fy8&Y!PT?a?XiW>r@n>KDt4!m9{WzfPYkOUc@1m9nIYfd=L3V;)gr@~@zMP{-E8J{Q zwfJEc^@D) zCl)R)%1}h$+K^^H$Ly*2JhIEFVcX)31raV-x{0dvDz9^hGnhB_syd}B^+qtAzvG1e z(lgIIk&Aw>teCjUj>_P;C!1s(MYwdU!a#k~dW`Tl)&{C4@;#Cy(LVNC;r3#A#VIO^ z{Q+LHD4G;#{RI)JO^hLLmb^^Fx52jeGDA_fKQ$bjcC}=`|3)EZBS4swnEsi$@r(`=nb{_Dm?`Z>D9RAai{aZ+`9b@$;d6~!Wl{)ZErL2AMws;2#=N-cNT z>Rlgau5Wh(Rj0RRd=2jO*%$H619l};}8@eg+2GK0Yvw(;slo!Pt#C3>|;iS6fENwS*w${R@?Qm zfG)@RHHh0G*0GDMt6pQNd(3+GF4r%t8X0d$Y|51$c(UYrZXZ$MV?+`<^D7)&d+Vca zrH{j^NIj1a1o~W1qpK7uq;S28-woaZJ^aHW1eQozsW!glP!^Wi zrm{Aq?zCGf6)Non3Fj^yyxr}p{i=1-gr6F|MJK*#UN}*FNKyn-0@r6&7N>{f&l$G7`#{a)Z~0C2rkA?^vO>@i0W}6N6jo za9lXcwPdY}T&thhS)T>Kxx%S|T2T*TV3$&?DRjEnn&v%t#SS827k7h%Kd$3OB#PV5 z!Jbzz9*Mystu1p_nhs)@xH`_Hy3Ct$z1WiZ2%B$zjl~sadlPfI6aQ{-0Pys2c+@;>JJ;2LTw1hB$nGG4D+&8KhS1tIVJnw({<8;6 zd&%yarl&YwuQhDBiqpQwV1t@h0MG*NCrYxePYJ4l8TQx-4RRAH9L#AK%A=E|ET_uW z#rfBl&x59^Vut}J!aaxBz0kgh<~`QPK=oqHt7}-~_(|aD5`6P6*kcxoQIG})gaj3G zFcdBX21NU4rNfL;bDQER1*xqfv!4d7r5$N5;R!BuXIX|>tA+e^>b0(`#5!$Y?DOsS zo&Fa|+&7=WYW_C@UKupH@QXERIIzAi*cmxK=U?UEzpIMBOTfPhLq=v6hJUIT|EdH3 z3UjdklXm#K7W^y9z{dJd3gqvC@UQT{N{WBzlK;J=kQNkD5LNy!irXJO@c&ARzY$&k zYl_<+K$x_Fle3Vyfg?Tx;~(+zef+CM-3 zYwkZ@V{zLTdEBY(`ZxZG|%eH?)-~E$>`S*ACKS>xS#=nSde=hmYXUfL- z?+WIR>i9p5opX?+O}e++nzrp}+qP}nwr$(iG^agn+qP}n`uctM?4I58oj*=IQ4yJ0 zSs7Is6&3M&>b|c0ul&No{_pvPf$=-p{JXL3yZc|pwtven|7L7s{th_*GPW_Z{g3$a z5AE82#Fu~nF8z0W`41c0-|^*d8{0p_%3sE|?_~8qjBVexxc{56tyNeHdwrHC48#=@ zL>h^TEm|_5tqt4~)791W$K@qvfTSG+Y|qBVMu1G$)2FRNmn~{t`oeqh%Dtj;$$lA! zGb+r_^ZD7ddw>*R%%jY~Oy zF9Xq@?(tRmfr-c1CEtp#V1oTG!7X0&Sw>GrRX-L+B1T4dMBLk_TwC2wRXTagxajzF zW+TF7b^x%)M=+b=xEViu7e8=#JripX7f?TK0!T)BjWsp_LIC_MH^3&VJ!fX_^xj?8}Tc+Jp*uB|0f~7pZGhi0U(|DyKn^n$w(Ij zqV_9ofKcj7B>s%?7onI_%U?sEaJvCQs?U-5H%Xs_Vq6DZVKCi=w`lwY<)6ZF#}>W_ z#I3KoAmLRv;QTgdi9LAzP%{{6D*`k@fJTU)eZ;K93I4#t%0EdCj%^+Dms}186zGC0E+O}nB z;2ZgTW9kIk1FfhCQlEG|Si}J0qLUZ4GW^EjCB9Jmpz;TY2WM})5a6CmG*K#d;L zKE1O)_mcMTItG02U#n%sE{lEfu?l|`+cXw$cMSlh6EM{AqVk!D6(4?q5_G(;LEtk6Wp!aV@~PE; zaI(FpvImWJO@IIqfcXm63VNw$s()36p&+iVj*MRC8k^rP!9uLmNwN55{o(goeP1HS zH+o`R`BWA(SjJoqto#zKTfwLK{P~evX%eUejv>sL*)?Gp7-wdAa<3~4K!DiB`^o;v zFQXUgi<{0XpaN0pBEu4+N7UEl1mF*U;%g5Vl=QSj%~=QyUX#4?l|?;_86cMZRZegY zPYN4%@R*DGhhNRHhRN=EO&A|uVPLDpBsA&N%mVInjFK}5Q8cv+8pt0WPsW$aLC}DM zA2qiFczE#hiX0z)R_lmYg%6)tKeY?~wt(Sd0%{m2{Pa;*Lrix4i;pFY)V1cLi}5+P zdW-i=Q*3x}ArKHkPtX5)7`CMgd;MJJYwmn%RmCN!0tVRg7jJ+sE?`_Dci~RVmq!%A z)tGNhEyg}QP@r}X{(i7J7QAhqyMv%zS(DkP8wNIYeVn*ql$Q085|%`_7gfFSOk6$A zg+=tBpgSh)E6w_)XDTUS=(URMfP5_@Z(CYYdaAbR#|G1r31RdYlX?@*8k{SjC^|1@ zadqrU{sF0Ks3a284&> zDPfF%sN45Qg?ZN9Qg*L#fz*cEob(niK)w;+(UX1(!!4RANq>PJp|qm-y)g>{86$i9 z3B8RxYcco??6l*wWazfE4qOON;cIOM!B)>1L?$G;sxf{5YU^IxiwJ71xUh68B{D=) zGz@UOr25skI5pS9i@6Cp!MKth?%jI;>2n{Y01R9nzv{1YTd_s@zDPi$QUvCvlkNx9$j`+!CzEpB$CuSbrJ`G8N0|^gsYL$2?J};S+ zWF}XFT6{AA)2$VWWvD~5zC*D=w9{aWGAmHZ5>3^GOxl#=1@i#qCAYmH#Duf+JxcBD zC3s$7OjwXmW4g!{!LrVs>XXYa$T>;hjyB$J^=R_ zuJ9L*TnB6`KN=$6P~n{iy3}#}FsdvB`~JA)&WbxpvsrYZm$~HjeZ#9k9s_pepB@t@ z1YY53zMxSb-k!#Hz|QeFt}I?m7HQ^79g9WPFt)oNXH?``iqwlUpUps%Hv?>4t%YAH zU^{JQDnrORib70vZ7Xt9uJfnpni zxwMNJZP+PeKsA4rh=$VWYCmwMh0c3|~5(LreZ&9s6`!bklnKjaq=8}7xdsd;) zRes8?ZKGa=S(VVXYO)dPP5EJ}z}j*?-v7aJfqT`#x7fGdQKfZbU&or)n9)`4S3uE4 zGl}AF=H&2F9(jiMM2PnVy#0iL`#}sz5{XQHq{1|QO_XgAT_1dM6hJ;t4~HgMJwr)z z_>PGsg1c&tu8IY(?P{Xc@nUCSCj8m_OV$_{_4V_4JFdM0WE*VYy?6k22>YV$cK2DT z*c^TU5iYcW&`NP}d8GKAA>sLxWd&}F?Pje%eMmOhsqi;5P;eu(LVL?bn31UA^Pr27 zPZ9*%fXXyg-L2ul?g_FQ9F-j_*6)cEo5#x}q6PM3@VlKrAQdL`w+I!MXHu#DD7URw zkyh7m&;1?u&3@#n@^ww$VKOt})BBsD#iu`Npzs&dPj=e(BQ?2FKMfzORN8+!75$Ff zEDU}PaoinRc`R4?JODXo^A=Gz=M0){StAwDZ-U6KC%lL;Hjzc0-)_6uCS&O*+nYAf z+2(Pj6oNYFjPQC*PAua?H$D7aj6tybQ=g>^Z3OljICZ^=?_=VKAeRsFCqKn?e2|9# zbdS9Jjki1*})Vd`>5U69_7cEGoB#T!13E@*YLEiGirEf*fQAVzs}e z6g|PSdDB@-XNnG`an!Z*ghG5w;Ae84n0&?c;w3&{Tbvnb`gN@)(4{)?&h;7Bx~#OW z^HkQ6Y40L|EUb0Rk4Dj|w)-LUmJ$i%@;|S!BDQ*G2@H2c;o5~+gHl`0+Vc(OljNsC zQV@fnL=k+pJaELgHE$80c2Fu+Hd!x=X-7i%ex6f3KLeGupAO3+rp)^Y<~*(vDK{W4 zzyy^z?14}OYr-m>UgyI1KGimfs`oYB^6w+oF$`T`%@q9a=rDk~64*t7rf7V~q-fxD zoX4&{KNUI^gWJ2z!bkY$Y21|q49C1t?pljDwcR#|fap=QPSipOddb$|%CkAMaD-|_ zg6r#0XbJAz+Ve=f*j07%Z`_$xv@P4!=M-mbLQkZr_Az5*W`A;DDx(72pDY_9zt8Vt zI%2_S9CBE%#1%kmNY>tr3f6mu5|))aTdsL@uMzkP7Zu;O%fJ>HKNt$xw!^&I#@yQ? zNv&;xL(ru<#FaZRj%* zpFJ81P|VmLsYHOK1M4|5hSZY?qQID;vo{Jm6{-Y1nq;a?@>O z-aKwM!&kfS%V`{{>lT_qDA>;zHA2nHzT@hZH+RB3<|8vl7Y&DW%lnT`xAgqPBDV8lb3jRRh*ixByq!n5v5V+PpbhCUptZKb|KpBo2*d6^b)eGiWwi zRJXoc?HcTJre3wj>_WcYO2c4a39<;g-9n6BC25qxo?`F1p{?&ZTFkj6d5%0pmt1dm zbu?}H?yr?dRBdJTu{c)hu&QT=?hS|w-uxh%dcP`l-!=3mEum# zh8@bQDS9j`tIWIQnFcCqvZTcqo^TjW^ikxbZPD0W@?EP_ho%f5_{*F1n`t4|{Jxpc_N~q@)oD7tKcLoX+={Taxzh z+yc(NByB}?Zj9veJ?hj^X<9{-OG!pN%;8h21`y4SSFeYd2mkOc^-%$CMi7-|Pd6Bl zT`m{^yl2HJv0gti4as_BYV>Q`n&R?c;#$lz&`ZRLmW`R^GkwB%J2;|vykr#SV*fl9E zraL%CaofJeIm|cRBIQAMZYL^06_DLixd(#9 zam|fSdOaRaCE4CHY^J#_5b1jLEZ4)nr)`rhxqnPG$F|3BZ{NL3e##!k0nRLV?ahZh zxMKQ!d)-PLS}5%an>i&$?TYsCrz|!vlq*9=w6~ovA@&lIH6i}FGo>=_;!_7wG66%W zM)q$CdSZhpC=K|EGm_-{Hsm%g>4Ss#*IGUMEmSN&1E`4N%7;~J%@oy4%z{>t96ASL zL$L%hr7<%W;nqpgG?;5TMJLY_{9RV|3VK&XIhBp~naZNkfoV7H*(e2s;=|TJdAHv@ zNcVMtltx+^6u(%}_yfZ+U9v6A6Xd&Qop>N^38b`y@boty$ZdEi1_KStfrWt%ECy?+ zJ9T)I-3iAGuE-sXMp3fdS%$;0=ui#9@{YwRy7>>5?t83$Awzk>+WpMSfx}Vm&?Lo~ z)d8;vShZ+{YQ_dN{yGIqlyeDf^mSSqmY>#WStk1IP5yu~YkEPB53;JAm>)G^_T>~p zDS5nk>J7-eH#(JomCi<0`T13E%oD3viNlDt2zalOxPioh9O{4;eHaq%3vzmWl(o-- zJbCDZW=;Ah3{WHw!iMY)r8=+KP&-qWHBPol#gRFlU_3I3#Y;s|LKryu@jKQ&_^>@5q1 z^L61pIp)PM&*V>H1jhD1x0{4mp5^nj`h_3Kwm%svC>tMMK%&b1oBP)QoUkj@WWQCR zuYA?YsXY7^dxtv6W6mIayW7HkyTeqqHEF5T+Wmn&zHzK@u(I_jAGii3|F|uJ+N!TG3f<=V; zI^Cc;7`fR*Hojg+PF~BgnQC$Ri70%fC?7yxWFRu^Bi6$w zE<}ots+vjc`R;XX)Z;6vH5X>dU;j(}ek-O4cFl)>*h@Hw#b z0-NlvHD+HW)vJKh8m`XqGAx1_3$~q^Wu}~hEM3XKcu&%J!>U}NVG$$e$n`XQb+UGw zbG4}9aLl^9Fn~heY?02yh6Ty7-Ofz%v)3;N*CJKAj6r5gBNdf{*U$l)gyUPNaa z;3I#P!DdN2-6QGzez8ZvNgd47VWahFdAfuP5>DH4Ga4Yg_qKsE^!EvqCmv5i_7C_n zO9uXr!u(yHSlK#18n_TqB5`AABbs=V0{KGMxP}GTh)x3EE=0{gp;Qidb?a7Ka6k9w+~8uIPL zE29N1Weu9poc79HCI;pDB)fUw zTH7O!k|}S!u2_h|l3v|U6f`;xkhfqo>#?S}a@SkS3E^t_3R-=QOVOiis>RV% zro@gz7s+70t7*Ijm~RPD6IufXi@Mmk=7@htTE-HLSS#xC@E{}kn+$(u_xwrq1(z6P%D+JJd6`6_@Wn$)#f&B1hgbDI zqO~FZ?*S7xZrxROs#G3^ZC@OL!LycN=?JU|J zg}zozSJ@4B#0RK(kz9^>A#4?$NJ%&ZQpavQ)%V#0w$%86SJWG={<$2jB4eEN3qHMK7K*f)|DH5+4fZ&)1~JLlP0j}<25#lbkG2VF257HM(CK+l>}V#G19 z9(FXdrPjRiEPU%~YiHvQdEtk+7SI-)MdV&7hGLcI(ZdM5I(jV$U1m4Bbrp2pGlz~Y z91X*_Ih zJjW9u?g}=+7k=cFyUJRX*~hXZFC3+;z0!%CYcRVQVj3H^%U+|97I4MpzxwA+7%AkM zDEL}{M)JZmew!_qCf4(^fQ}KhT091o!PB`#=yFok0bY&qSs_*)H zH(Q;S-qYTO+stLwJT>{~rg*oMKM_C7+k-){_#AcaAzg66!afuFLK}l~T?aZ$C6O^w zPd41uobhVOkRQNx4R!~OJVQ&r}$GWH@e^h=|j zH@*p=(#x|ZgJ#uaUB}(hf>l&ukn+Y8D>(W{(*C+CEHfpQ8KGzC9}OB->&LoXF|v7} zlg6^NmSj1c*hGD#pQ}+m!r2rGF)*F3c>(jWwBq2}Y*%sJ^*;0I(!$5Kr!pb%M+?&* zZ(P}&9RSrC9JYyyc*Khh=Ez?C6Q;5Z122={(T|sjk2?sVH}RRQL!uQ3>+KPjyvmq2 z*PGRp3fB63NbYKLQ27yy1XjATCwjCZxw6AIf)8B68!g+hw+{T^D(1-w6}Kp!JYz?f);Fl1bC?PrOA0kPuB`PJ8-Gy72qpYT|C75fv3ywpZPyGZ zf3cVHb9$Qtj{5bq7RzJ1KiSHX$|MzM|EBKxS>q+kYYuV9w4-N5Il)^_qh*RRsnCS+ zr`REI$cI!kb&@1Pe#A>Uml*m6-Zb(IH`c(|vW&EkLrug z{0B%Y6dps1(vL@YE->S_mp{hq_0gd^Fh4&n_`Fm8>``_4uqUmwW z0Fc8frR{o}2w3$_fXeyNl{@l?n1?%nMh`Lo(6ZDhGq}0*tw&>N18(+%7@fB_NS^N6 zlrwEmyoCM?x_Avg#D6qTcixSU33GER?Te48Jwuk;olGmU&yc0Q)ruN)PO|X1` z=K@DuV`{T=GaiIPpNGFKr&ZP5zbsYH#uHEnb?Cco_sS55Szy+0!lkmbo0BLQB-HfqkE0LM9 z_^pjeYKI`6KPb+va##SGrL+a=e4DO6=FwID%)>76TBmA-*6BFw0UpRx@U}fNLROq? zpAfJlo?8k(237v2n&_8#OE@``K05Cj59AD^}7#iPvB;u(S(RQhi zf<(wWDDSqw-o<4NeGr(Vk(TPdqG2A)(nZrBmMrYwIt~(Ld_eB0M&6kc{Y9BoN~@?G ztJK9ze8`(ttL-bJ!hARD@5y6>H$&FN?kC^{A>Y-<%;Wj91d<`oWt(z)TA1HmAGKg~ zHG;9S1<#9GNkNTKzhL63kTXM|EC%&~V&~^28qxld3x>0k^ovA56L^gd)9t=KwCuB! zPKMlp;IJ?V9I#2L*&=+LmOj)`<5_5RD|99o3n@i#g81j)N;ihVVi;&+sG`(Q68eI^ zECDX==G!GrgyOy)8;`!4T|}B`V@I0>zo;*N_3;@r?m zGgAJrZWf6h^vh-SnA`-f4w4f8SNnjrp1S+{lFjzl3- zq4%ftxFr)8Ez7)&d?j9U#vr-o761al#gCLkVU#HMDK=XJd==>Tv%Jup_8!}ZJh6hQ zKhr-WW@M}whBcVVQtn52RML^BaSD;+7?Rp(=15i)=o3xnYAZLSA_e$(xM_8-$M;?d z0Z0iSCfPVG8QTnSl$I18j+&!8L@48pza->yjs^MwH$*4*qshDAtk=A+DWANRfUp?vQ=j`EG3@_<%HwJe zW)z*G3hgSfsCB!tOae@4m^JO;tsNQOR*BS6Dg43#M`YC2_uxyLEsTOc15Z{I5qVk& zxITmCf&<)4J!N^!F#XksiqGwgQtOXAa;RQMWSnmPu}t#EYR=HEfJQ39)5dp|;IgEHC9;$ikSen8WjKb2~njZcY0zNKid# zxOP!PIg2Z}Hemi`!+2acy&d!7We)2C9AiUqNz0neq7X_NZlgUXmS-kUi}bka1rfkR1V-7rE%E|la7+ryuRv6}3Up;`0Y-CkKO^5$wOCsz4*_N!u+D}(qLlaChk>3mbqcJFh)QS^U@pAb4AFW! zAXajB31g4M!p7d}=7Xfxn3nVwi>-i}3ma_4GPZOY`KDTiw1nRHp`B zCfN(XrUtrOzC!x+_PR4E?o+%$jO@@8%}h=ndJ1`q4jCznpMWxv{2_DA4S2kRYB7PD zy=XxCSjeRw}+#PwS+*=Gw%kXg1uSW)W!K^WOYkX*D3 z!X5P804bxryJUW?8|<{V>tqB;*EcVy`bzFprsIq!^65q?jIlvrVH@}a<=Q<+3bRg; z^&16lL3OIKK6zn!>h)7$CW-GPuvSyPXoG9Oif!c%MP+?tVR{WDs9I~(O@QuXuHHa2 z|GYvpx=&DbP7y$!sa}#7cR#Cm%x@=Ab^!4yyLxeN1r_A?pgGyl#U%|+qA$H{7DV@I zQ?~J2YH&tCZLQ$uoe+?)vULF-SEd=%62BvM+*l?$D+vr#jJOPeXm?&xuLn-0R&yNH zKO8|6BkHg&CX=72fr^oBw|#<16E1;@^OnmTja#Wn9|1b=4WOXenfZ+~TUI}e`gDsk ze}cvb3?44rRgsUyE|SA5u6qfc&QVxd{>CMI%(;ANvk#_ZfC|0Xhz(Z1a;iGLC+M>t zJxR7lz!aT-L3O=HF?h`<#mvcTU#=kslx}pUaOBXwO^EBUutzij;|(dJ&o6Y3scBqs z@t$|}Im0RfTaKD*xkKh(lUe%0(0BSW2v*6~vVkK%()duEiwfxPTv5r%mi)w28q(hN z=DN>n$Y>Cy>QrEC+kT$f|5(NHtL{}g@j5kz07n1}dRD9X>AHnn2% zBMNbqSSiFF=Y%AIBItZ_lUICheVRyb#laKj-4%tm5bz9I!fWEs6b{dJUf7ozV26cy zjYISCRup@hm^;nGIukouZd$tVT9YQpq)u{PW0h4TdCBb0de~o!nLTF3^4kd?H=SJ0 z#&D=V=%SeH$dv4EvI3ekoXa%~3qG@fEWBF%l%;-gO5diY(*%3~(Mf?ok_9`YYb z0Q_RmZCVZ(O(%3y6+*JH%EeKpw#HI|ud&uboZGUTnP~yL)#Qd`MORJ@g)z=9QyAph zjM&x#>+szM;WCO$NEChjCQd4&MD-?CnjSTL*ZOdo4?r3+T}sAlOhY=CBqAhTpIlM! z#*4W6E+}HRZRaY=!th50#d8BkR$Fbxj6f%{qx!efu$j`yU zyLK>orxip57TmN*KX!6i!!aGu7gQ!JF31^yZ|4bSG%c~Si8 z@_xRN+a*2`Y5m-X3Qp>2OoqVqR8g_zvVJHLMZ`3)_T75(S&4qCtPe6Kt^7+X4lXy3 z2npPa{RiIuL^}CXIu2?w8CFsVhoQW+YMzs!OtHYbvDtSzkX};me_)68aCpzdpD8M$ z2>LKh^EyC+V=HjXBf*&OC(b*S*8sdiNIe}(@^QQ?0BGgDR+ zA@I;`jb=4ra)m>}C<%d-1Vo@g<%x;(bH`EqVS~_HQ)z>aCeqMiJL2((?HbG0RfEE} zt`3KRxB?tVZeBQObb)CfZMYIwM_d3Yl9R=RXvrzOkcbgRHjG`g*eF7-d$z(gn<&*NNyrh9y zq!7Yhb1N3(;7j}*A-P0&h3nH~loRL+we+=N_QH$49xiQw;2-iVG4=LC7|8{VsT#VX zU;)FI)6!MYI4`#o2E%tqoCf>oRAbP{olN;VpPIf~=OkH)B{Tp}S7V2qSY&I;ias*I z&ax0xbKcw9Dm#Yp(Meg&^dC}>yfg0<{kMtFeicWVUqZIs(*DaOxrm)>m#TuFgPG&zrLrY(8*&Ld2%h8-}R4GfF2|jTtY#ip7Xz{Fvb5%!- z@|ye@9zQZyvm@~&F>#wLqXXQB zsKlu=y)HH;o&{RtYq+sSVI>FU{4yRMt*|=m=cA|<&~u`p{)h#lJnirf{6Ky#k!4D- zlA@QLVxW#<=%1WsBE(w=*`lFIhzsQoa9kLaFE_VHRT6}Z=;bcS-BSzDOMHL8%08dC znC%Bu-eg1>s5Wlwjah`igwmBX$f)5=%u+W}FbP zCmS_#C8-q`)cHC&Ewf^E6KrZ-xUWLccTV{+q;+!9ISiIyczAYBL<$hCJGn~B;-7}{ zWMwjvj28pfQJ0?eAoGKgXKWQJ(sEi@Ayz?I-Gj^3VL&pA<9!y;<9UqBv)7-QAM8yA zD^)Pbs4~IllcAxHjNLLB~sqisa%Eq zlui_VBDEN%Q#nPpyjwAFBg(NFmyCt_%t7~THgHZEPZc{B9Rhzg}0~8+zou{T|i|HkwaSiIVj!(O8 zahAmG&=Q>e_l860i^XDbIo^~VNLcOZG}TGYd$9mKi4CtjS0uC(@yTGLwuE1jUfH9v z=qzEi2x=CKG-T&qeTi67#8*4}^T|9sUosfa^{BDUgNj$VLNkgEFP)`m*kdYLY2HJX z*r!X?q8Z8|E&)R?=?!>-X#|T)4ugXT1DvpTFX_-Q(rH-EQd>~fW9Tx=Oo`uxdmqns zE~(6E;$Naab(Fs?CU!U(?dZ-vS5iMBCBfLWw?f5fnt2p+Sg(e-6+H(U=Jh>%UOJyp z2TJ>YlOoI}V8m{Eai;Lhu+nECaE9{-f-d6fQ-oN4yGD5zS24whzvf|mJlXKczeZkP zkpxjTFI;M;=nu44OMPZ)!3nAA7Tjco4pz?P>IHqD zb;REPB?ji%dXm}^LDhXUjGdV@Q}A5GE`N?YuT1 zXS`$>k%%hcJ2<6#j~*Ot%17&#u=W}n|=2( zCx_C`5EnD^0L{^>B2-bT#T{&F6303yn_5qAA z>u$BE59G~e@P(9KI?|d5Z}g(La!=iEJi_T8JoJsl7@zvXVGfJQWmR%fB}L=e7xc1g zHw}Wvj3Otk17&sReEV7PKq`0ij|K>d`Vk0PUYp5&k@UkRJ=ZT>l0vErz5(6!XPGis z!pOSxVX%(vwBul};N=DM2e^=?vT_N^#rB6ZC-x?4u$WvP+c1qih3~M{$%5%$WBE0A zK-Dp_bEDHO5+{McgZRuMp=s{&t3BD50%^VbkEF73cs7>Qdya;}9%9&!;!S*>v0-h` z(u+l)Ap($p>JoPBRtN&B48h^SrbXo+tC|3#2WKSRC{g5vyk?EP<}(5l25chC%5-qB zaJmoage3kzBZ_-;gb80OYAMLNtHG!rQl|uSVmI(1y2osDf1mV+VN_`C8o1haw!Ubv zlCoP9?={i9h>sTP`vl7T$I%)XO9BG*^m1NdZFl{sZs~eJG(~&m+=>(S7a-bL+xZ(4 zw$T_Y2>2KKi7eng!Ofhe;U3dgMSkqS1Gcc;mfg*GqE!wVO;v$)`_;&iqRlPtwi@RaD`c{_f7J>S`FNdkPgb>hb$&GB+n}c%9T290kTi5>)e;8?p0X>qSp~`v zBZd$M7LakLO7S1u_@;%5(~ReQ%@BjmptMyL`?gF@7j}oEcF-ni^FiH0)T6#A{#*Bs ztRQ^a2Ka~=V9$(g;topJo-1T7CiLAr5*%-D9fH!sFpl}24J+I$o%#R+yf3P#q=k4A zPqe3oO#>~eWSyl6Z#>}p(5YBJhx1PMd#4pl|o5OH;{%~E`yu0Ue#xpUhqWF4GkhG*k4eGo?VO)ZTwo1w4QU7v^6Bm4f z@;&YQ9IcTL_!5i>uir4UUueKY+Xw@YOD@ZNKRJqOXG64dj-6Mu+M!12&33l(D&BDxW~&CFAj%matBp zg1;5>RiZpGn68Mz74Z5eNkM#$V`&uxMkV`?e#E{REqZ&-Wh)n+#QPZyaCRg}k%-*W zJmuS4rBeh-w0$PAnnduWYDYFwb+hqM%WT|~dcY$2@Ux~JPE%p%GGZRgd9Ul3Y5jIp?mE~_Y%m0~m{Z_;L zi*;rD?)(dNWnlelq3`Qoh$<619sXaB|NmnB<~Zr_S-*8MboeYRf3c_ z|GN*x`uCgre(oEpWoBafuUGsv^FQ&_zo-4RS^v2$|2v-gKR4um!&ARWQECP@hHt|T zBO^X58~y(@?0gfy{}k+e+kO69u*2}}zxg*nm6h%rOZ^9+`n@~<66}08{~8p-XZT*{ zUwA4#1H<=Hf3e6S=2pgkA*KItsRF?lx=lsQ|ev`HTMx*}Cr~ZvJ z|C3n#ORvN7H~#v6(Cefrt7U38RoRmvQ|eIhk*h$+W$j+VuS3G)iv@V*%dKxjppai` zXi+w!QeLV=pqdtKHGNipy*~ADtcbp??hrqv?cq$_#jqcaJNJl{RE^N+L$Zbr_v%-j zYhh~%0Fa|d8`IbTpn;RJ5dBJG1UZKa?knu6f+qk-&BI6I>z%;to`BrmMcUm#-rean z0TJuL>B!1oWT^r$Ay3&7e+PgB4`ZAMf(9=2)3(Nk4Z}qJMny^1fuQUkb^*ke*MRxD za_s>9@M+*pUBiBYv!J1MBUMwV1#USgc*a3WP=}WQ>`BJwCW@*D01B^o? zQUL@BOR|k`{?LQ0?FIYYi=Y7?l=y{J{8`srk=fBfvApB@($#wJTM>wp_o(xg4d`m; zc;Neg zT<-w!>8HTU0`w#8pbrBEwh^s@C#Z7IZwJJJV$w<*Uvo#Wsy#Z`w`$H6j!RHx0V`d6f`m(}Evz zs|$BSXwkCDCiv;LEo|26(fu{D&EMX^+W&IZ{nbw91J_bWygnC-GXw8pBScL@BVz-= zOM7(omHs^CX4x8`pQ2|v<_pvX7a5$%xQn9w)!G7obggRzDx9SS(T`-{&;0~rLx63R zxr(l^OPa{55;3_ekgS8uG>@Q_OEX^EMf`3w`dzp1L%>l0UCQhSHIW#*(r*9_jhiYt zCW&XC#~Bc?DMX*apC<0P`Qh$HwYEk9w?B^*;W`CXo*%I)KZ3!E=JbGtW&tVwyfZS#?3zhPRuB1g_1YbQwEz_v@%DP-#C(>tEM7~7eeaSI?y zDCr9jO7plns>HbERJE}dl>o zve9`E_1>s&Vu05zF#nMuUzk8ds%#S|eaE9PRKgu#ZC1TDW+q2;URO;Zj6HW-iyPnB zPY1Plr&L8eb>0G2?AEy(Yv@?ELSkD5eGJO9I;`@@`+MRl3&^#XTPdr0M5SZ090atU z&PGB@D+!E6nMC-J&2m)&iSFnel}DLGu_6=l!G!BKwUKuFZU^ZyfB7GnD4Y!EI2O=h=7(Nd56Es% zj7P8ZsV(SMQ?p1}U$;SqFTvyouH-+N9TDGWNo@W88UC{}z-z`pJ`e z#lxT>IbYUe^ws>2!LE|n!4VE{!7{K>gy8Rmp|!L6lROcW3HZXI1BjNVI$O_5;8+i~ z!Yv`OyN>KRVQ1CU=oU)gl*_hUy^=hTLh7kuQBsp@FOUci;wi&Q&FTrZd&|LvDi)r> zhgD^!eu{9uE!S}{CHjF&=-X9{)|JR9r2G8=G;jp=QfrkbyIJ27j% zZZ#B&dnChK+9e+OTJbFkn2IQDW#U8?r7ehsf6(2dturtRr60=irzss7W*0#*(TGNm8})6 zBF03^ediRRF3De$v#mIy*59jt=d|-~L zcbZBvkPIXednQN~>Mk_r%adz4W<5Ab3dF^8y%E_BPvEn2IPMMvX@lamt`T^)Fl`k1 z$h=;VJN9HNz%WJ+)K$_`;&J&tj^@p=6GqZ=`{tTbfAX+Fddyzij_6>eMLRQ&X9^QH z{r@BF9)M)ozC_`-jnlSy+P1q-+qP|-woco&ZQHhO+qS>H_s;xh=6w?}^WsHC#m-o{ zbI0D96;+iHzg&y{jMBOmr5q7Hy8XqN0rI>Y#l=(J>~}NEXaB|ve#qkskX(Y1E`%U! zXfbu$;?L3J3^$jNBAr?8jJAzGa%w*M;~_DasQUYJEl98Db0k+tG`1jnWP)=jC5MU! zQwGExG3qDi5uX@5UJj$^z8#sAQ#~-(ZU}{bUKC5#!o3X@r8LPVks>OuBd0yqz*jzd7 zi5%mSdE^AR)X2otd6#HAQjs%*I}LNt)w}ll2aem+o|L>z4mnN2!Ct(D9NjvFS=h*` zL-D8p7EE)dfhUsQYkt2+hN4aL4a#tl*hZFB0f&aBFfr$QF(S2nh%D47 zFFX)8?yXe9h{)p0lY|m!Xa$nvCi#~JqqJ0+mNIcfqQkVN4cf#;@;@~flBsBAinIgN48w77dnsAW&ax~_5?jZ@^vaLem)H}hYwCUcGT zv}2oN2N;MX@Dh+NMAaJk-(7M#G3Cc84yk_alnO@kYw-qq*4y>YG8K>H*&xySmn)W_ zS#-_Y)yb}=q_?`F?ir_~0N-2Mzmc2N5{w#g;IQXm*ZB1_X7^Uib@K*uq>0Eo8`N}v}{oCb0eM-TZ-mefz%*O>O+oB ziv$_*!j}-N%R{`=B1?cSQB-x}=SUj_{Ul_{j=sL1SZryaKY|ENinvAX!)541Y+E6> zuHbRYWwri&{^Z)V$by2#!b7lZ{jCKn{}$^9qskNOm>#t|^9{85M^LkoN0dD#_#mr|H)AEBjsYk@U zT6vakh**1R*pR3WL~uba<_*8jf(^oV8S_yE8N3NGb~A?dy0&AEQs@ckbQs-%cSsTD z{te69a@D-2k6%_eoX#Rzt5gsH2c4dbV_ZyLwuGG@zfcca43ES}Zr>45JaGMEZ7%)F z_Ta0ydFLgW*xjb78!nJqScdW+b3M1}#NdmYl6?V$2{9flmK+|tFw;v6jn*Q^!x{In z2x@$;#c9f7AJO<{Jm7Q`*)>y3v-MF%X#*;61Tnp-3$FSq1a9i%FayV?fut9^$fY9P z+D%ZZm@Aqltq;_E+8fz7*CMnp=WS!?O%Xso zH}Jz=S`Sr0m(c77bXrd>evVX@dWX*2C`N!~v8p2NSzH-e!&yl!3On&3jgG1`QrNZ~ z_KEf^_nxuipe{9=y^wAlVBFAC;jt9iGz6Ea(k!F~)W!tM6=D0|28dOMPop$aE&CAt zz9n#Y4#6ZJ_`oZOc2S>npwcf8DPFk*u`SgD2ReLqn4X4sucE`NA73sho|Yb`3n8f{ zQ@L)T4+(%2EQi>^sg_H`<(in~KUQfn%P%B_3{KbKs%1)i{Ar-sUHx8r_sW=uje7 ze`vL+ujmQgyFWU|i0j;bqWUCXKVwsrrgkk#icl)kAfDBdWgd0U{jXSm@p|N?6$7!4 zP_~RrIXsD6SCRGbZFtfWA_FdRo7TsmEIH~_m#EN46qbjx#EbH0}tzIC5eRp0KZC;w4&6IgeZWezd%; z3eDjK`_YN`>+}^Kub?F^Idt!#N0q4PLNtUog0>sQ)U5(x@2b&F$-(qHl%SEZS{#3uw2~o$ zlRy(6G@1*Un}`oGKhyjmzuxGfTTaeQMOey?_|lE5Zig@>8o$b!r>Cwtuwku-mX3Ro zoQ8_yR&!z@6QAZVz`o$F+>q1NWE%d8t^Vd|bnV&w{0S zNBi`-grLlzpW)AF)pQUM>OT40q4>nf-EZg(TXqKgCOMU9El2myBGU2799?kEolDg7 z^qyr|_qR#lfA_(WytW3sbnCZce^x|Rq#rO$-*TLJ^v}&!n)BR&lw=RX=NZzP-9u#2 zaB+x*@0ZrOF4lJP0!CdlyQ|XwsH!r&BpOgs_krMwaiZt+=~*FG>-w^1H4=Lob~e_A z{C>_+Kzv!q^{lT7_tE;%+@#NJ?(+Dqt}Ohe0C?~%;a({EK$)VI7fx(D;k`n5Zo`VS zn8$-3A2R&4of38tyEc|K^gt$}ZP0)wj#B;v>5@7Mp!1i6kx?j6X2yquNnt0kL30b*<}d2NU_34JsME?elNHEcdPJ#lajX ziL~R}o2Z=gRG!jzN2_-q@BzfME>fFGBBJb&KTcKeQYNe7Y)M|U>kxM>Xi!r2O!NoM zJ&MfM42XB900!JU1E*-lCqPy;i$JofT|?~JKY2riuFzKEhb7dfh5%vTxIz{UDf1C4 zG-?E}?caoKoQQhMey`l8UGuP{FuWM;{QBX%J%B}_HR!PAa=WK%rY{j=LPL?8Pn+YQ zH}<1uV*?L;{je{{*xA79KCfIdp=z@t9lPw_!(Jo|ihbHd0xxV`$jb#6=8)Vtgas&!>2u#1&5~6~NPk9CT=1-y~2_M`i1?VZy=b)VGEqxQRwB&&O zjsZVJ)`HGR(=QKi3tAn=Y85qC`Z=%JQcm5~S|QokO_M46pu$I@HJPS8A3`oEhfd_% zI)L@VYu{9gLThujPfq976 zONa+1aE5cjj#qz*a%hpL;;J(#&x5az;}rTSni2=#vqQiTNfj! zQV6^)+D||fo$TQ(tNltIg(OdP@xi)?bKDcqfX0SY&-8ouqCDBnmWDjrB=1y}s^93T zW}THT>H00(dD1<|b8S7jGS0(hb}FNp)wIdJp>^uPSR}zkTxNRvMqjGNQV^#7W6mn7Z6!eTRiGjJyi%#5KvFanQ`u5zpLPoC zUdtyVY>Q1z;a)$g9)$Y}c&ua1fwj&4OUm5YOc26VbTujHWi3aIwa>|B)mlEcXbT18 z(GT!|KB)K8Q>%*DD7>6^9BENGW#KZH{J=jx5wj2k)rbD^H&-k2MW$#EgJWA|`+DHk zT7G=Pu>#?mBYj zsXaI8?0OYdzqVbr$W&<630Pu?a}Df_Hd7ubpNyMid~`3*sbe$)@@CXfCaB)ZYo&__Vxf_nFuvB?2(3m-E)`d5l&;4iqXz)2S2~gj-7mv- z0S3KY$!)p@T>~690<_^~(*c9Ziwmbi+!HR*sO{g#I|G%B0}b*jXDJOLta+) z-~#oUe7ebq*xaJ0b*5A`e29iA!%CAMQgJg9HY*VFB+58aLr=f73Qigd_4DHebK2im z@F~2WfetilXf8FQe8pZw(%+EZ9y{Yez>ZvO7a#K)?F7Y>xs4NsE)3!)Ov4)2-_0i@ zaWILs$k*(gTpVCpR(JWPJH(-z}CiEZ5L zO=}mqd78t}-4$4U3Vay-C5`RDAY!Yb$cM~}TYYei=eEY09^!yiT^EEH@ zJEY=kbtz;~?-J)--z3en9~LY4^0a41#~el=+lQAnlc05R+ta_BD8J2>TN%>rN{7(j0}p7LAXN+~ucnZz_V*(9~(1+9Us94C;Q z(q?*MFU8gax`^H+!W*@L!pMM>8~j9;36&nQ&^<$tjVLOqVU-|SDR)PC#W};T{kC5= zO>;&$ve~z#6|?ljT-*2r2MmBS64g-zXgF&vGtVNJjG^j=cj7f3tFj;%%bgph^5z$~ z1TRkpY#e`$zoYSvVD1`eMH9Jj;L{}$D#)mWK>B?F(r){9)Ty`>o=fOOkZHcaIr{^; zFIs=HZLI@q?YTASsFKg#Wdq`~SDV!6wo)kENAUU~trG=qIL=igYX!gVOA2l>IXQu9 zRTDGQEKMN@TmX%e7qS3Y6*FI-8by)G5kqb$z+)N&@6n%u;~9o>*Sz1h0M!Io zalSr>;YBRX&8jI`&EuS4M<4cyLw4_pPAXdFmL0TP~xcDR`PiAK94#(P@d-l)iO zKTa{z^AFIWJce5$jRAYBYs{fp8OUd=K2)Ml@{v*UM;$s35O>BT9}g4@uDKwYQ(tWW z92~lQ|F^dkC4UlRv?_hDF}<|IJ^DGI(12pcqVJqR8Azoa0aqPs*bpDxQ41W*PwZ{C zqHLgN`f<>Mbgn_*W$81hT9%Z_i?%}=+HRs&ROF_uX>Gj9fh_rTprBVigE4Ui#z!p- z*wmP=-nEERrG$HZrT&#)!Kdlxogrt&$=9SW4ynQ;!&IT@=*cGN4_|_ z0mgM64IgqP(IZ&oIdxdn!)lSRu7a6tBS=ZSal+a$`-}M1K!jrc&2+GFFAvR z;Jt~x0*Z7Jfo_GZ9Dj)PAzn-d&-FBQ9O(Ox_-MBl@CjIL4N<(aunwXRLgi}^!i`cN zcD{lTf4Z_N;={r4^RFCUe`L~g{tV+63Yd!DgV$&V`HUJ@>d6K~9V^UNac#lljvTq`pG8~Z7d3<*Zx zq9fYIPKhe3z4Hds0}PS|P~rep-(U}~{pQ)(1vlcV!_-%hEL5TTI?2eUBsGECG; z1c=Ttd+MpzB;sl|OLR3J)QVwXz1 z)jXG>}Tqk%Iwq_Xx^{&EIZR-<`jr{KnC zdz8b;>tvJ)Zk?OOTdYaOR44G6C z(pHe?*$fMoY-b>vX<>dNy$~-qucSJ_;Umw27oXUWOVrl~|1lBbm?|?oN}`Ui1XJFr zzUZ&)%ta0K*IuI%l^?Y6S_wMNjmP~}*mod;gr1Xxj)dnAXtQDOpN9ICx7SA<=Bdyt zS@T)JGLNg)lQH^oPLI9;IRbuhXLi2?ofYTP2w)BO8H@AnQPLu5jwl5Kq-qs3CSv7D z0NtK+YTypS3h*#_=ZzbJi-_753-`AjH>Z}do<%qgwfMNWvqmrb#7!L_Y2T0Ozn>Ot zNc3HgTnUT-3gf&q0w?gwj>3~f&J|A!EtlnqL1Cl`yv)eEIE|q;*JTc733$=wg}*P* zhic>|7o^@_iH5Dk>J%wBMj5)G#Oau<*MPJUw47go~%y%WholWgs@ zzGe$7pA)IeArE#*nMP>Hnkafs@l6DX8Mhpz^NdI~B@(N#ia%ee1sl|ghwA#uT%vB2 z!7KMnoE|4e_Z@~cLYj}6tUzg~v5kf1s90csi}#sdB?>445Ar0o!$w)IgI>*P^^)=gQfm)6z@o>uz;3uToAixWLe?jskOJkr4-FK3?2@+Lk|P=IbpQBV`xrgl>Ve zj-tZ1?`Pb_kW=pzg+WTKerRB8vvL@5W){<$&KiJUr*nqJ{(OWP$+zX#DqEj8rNMjf z!km-ZE(*Ua5Qf9whR|bsx5v@2Yldg{y1#?i1~@+-2c_KA@f_ojA9ptLq1}smBO{O$ zFMh(c>Ci}KT|k!pH3t6Xt#5L6p3#g1m&% zH;9t|?>*Gt$=?6h9_pLy{L4czFnr6Ne}Sm)MdAOou)jFdUpR`9f#vV^9~AW;IO;#P z{$tNSM|{Jle*;i|jlsgs2=xz{`rc+_|K7*;H=6o~OVQ!8vHx|3{(1dZFhz$?Pe=Ec z|M|yV{Vlbi{^hm)Hd=q_DkjG7eEk2`GO)A%EB;SUW_s4Yr_c6X9qjL3-?Hnk_B#&s z&r-j0!+$UN-(r7Tt-p@>>;3Q3`XAeW*|Gnz=l?Y3|Ivy8NZj{hqUAWBnVq{m=TW z++9f#dlbGtZ+&c>A z^Fk}Y;B@#1Q0bjEp^5XkXAjKI?k5Il+D&W*s2ghh=){rHneqC``W_|sAo!Fa6W6rHj11#z8Z{gvBIRZyH; zo-Ofp<@G6nZDc^niRLI1)K&M1@=go0_(}Wl*}I*{uI37GubQl?`e*xgJL~Jc@Qb&B z_+0X0qWruYxTgn_&dHwPQ3yZ=4BZZ(-3Ne@lQH_c*aRTy__(3T6;LGrfW)g!naaPq(xJ}y9A|5k7qXgAdhI3VD-yf;y`#OU(k z;36g+ zy7DRm!ImYhMGH()M2C7xJa^)@9@K#S{;&xp99*2WQKm;Er`&^AVMW z(=MX$=IsPN3{+_P=nN2zGCng7wGU$7X#Z&dDnr6}Yy*+Wb?A*(__YsO>x<-PIT4;g z{S^sR>#ODqKgMg7?tNhQ8&pT~OKs#)B|4}iqUK_Y6dzhO#e3qSD-hX3j6UrP*q1UT zP2(d3jCFMVT}I&g*XTPuD>z$MOTrr7ZFd)pcQ5-VRFkvgYg`m4w(bo)MCFr-!uhs& zVkTT-Hg77BT6d%OwH{#E-3i`VkMHLRZ8Ye59Pfe;)pp>A!4aP=}3Xjt@SPu*38?Qkh+~Ro8-~%4gUD9}@_tO45bc=8Lm)r6udQbhQ0aKmx z*WUI^Qr{-1p|Sp*4)IENhwbl=raf;L-=}xlDep8NzUxr$dsGP2Yj`oZYeJLgiUsd1 zglj3N#@3I#KJ0Dc$?dlnUdAyv)Pa@5EC*N+U*?y*AK)@%@N`M zNbh^N3g^Rjp<4e0>>2;AnQ*-~^OFzMR_v;GBm-6hejhvSxoC&NHndou~+WmErvMfsYT(%eG!L~lKK z4QCN4@ju#GFpqD@U`vu+Zf0ATp`VHnNlDMIH;1Oe-{r6@G8MM0^}S~7dlm<0*%-uA zGc$-w=}7Ae9$rcq!qiMdD`F^UCak6LDQA)ua#OhUy!OdDWjq`46sA`-k4-b%IVlw` zyv!Q!Ff((d;j?uMsP8gEcElYvD*12fl{kOwo-t_nP3h@v)-y+p=7z^IwqHZDe|Qh8=V+dUAh!42jm4mzMu75B|&=-J60rG=U_0Fu4AW zQZ2_Tm4CbP+eA%eG{Gc0R-)x#Wivez`sSf`<6IJ!#d%Ay0ho) zw7mdJhAc_qis}WxFBmB{%u1~9UT9Xoqx!A^C;kl#5_y1WwYicB)x3pNzH*-WQtsA4 zR)8DEW|u0ic95$Ix3vE7ic!N$5;Ogz$gCm%*|;!VhGU8ree;Z`A%zoquhBZ~gbgsz zz9@scWZe*npor^KCfdv{w^tucR?i!yd}&+B^JRzCmFB29ETlVAvVKrcjg(jNQWX;} zBx*El>N5LX-rfz5%#hxX-~X711gq$Ah30Im(+9=ELiOj-(caaMkR5m^RkQ04vwm$V z6EVpK)2*0R>ossd)-`KS%arcHy~ZnC{o$Jnkkd=|!ax)t!F{+9(PIk30Vca;xqhMq`}SLSADbh%>1lZa5in6sABL z>=8Ak_}@?5=?H70OgFS%RxHdSTO;BiQciMj8P%a04jX*22;Vn!M;k|LdvGE13%RP8 znE-~Au0Ry@ctyW?so#jxoAbvh?|62d917Oo2}gtAHH>gYQ(RRE}TA}_Au z=QuiZkF*7+EcfH=H}M*=))6;D2;{6En#WtwugJBd+R>9#dicV_3+fL^9g$q%^OUw` z)*wvE+fmVN_iou?H$?N@ICV@bUUgMi7VJVu1!vyeCduE8=6MNAdkU<;a3ndj&YSVl z;I2%#Qqx0oe?_#>U7P(#%lcuOLXLIb>*U(iUipOxjLGXeM&|~3``CQD(~(Imo>lzZ z)1r;TRSy2_e_2;(K13rn^jRRyW(2593MSMkByhu#mkG1hIBid=NmOkQy&CZ|w|D`= zs)W(kUVh)2*7C#|>b0lvPsYIy`kQ7r-BLyAqBDg99LfvWNk35-i;+9X;{$pg(kReD zyhNK4_UyU-W!_E@@&(dOEo8Y=#R#xC&CK)4&wooG3&19iM3P}iCzplC< z-EVL#pf3Ek8kiZhWGQP^u}uWyquVN+EN>^U(rhZQeRRo*A0ciJChEGMz!0Jm)L|lt zvB!Gt=k05e1BBQd8>~vZlv!2;yqQ6#5+daqP*_?TRTE?R_$b?YjVjmen!3gUjH;$0 zyG}2rD+#BucCN|Lu8EdR`+Xk)U*Xr`5)K;ZmAGgfJ18cFYqg8P0#I5^a}AGyNT^{oni1hX@n ztrj#e^V8Gtq|BZ(n@Z2=V{;n)36VizO2MRxAR{K|%vMZ&Cg$D=f(3X%Txk38WJL;c z9b6%CD0eqC2CX+ai+NERrzWjtPXLQYz14lS&O()<_lon zd6Lr3@`hahL~}qL<=Aa!oHv6JB=m^hmHGbc@#`n|P&y)z<(VqQ^jOu@2cPQ9qj5|dfLkRC=R)E9O+7gy!d-A8$qIs*yB*4ua+^tcv)Cm#h zbSk44`@0^~s~qc4pnMV}bSgeJ05m1S%(!J;pJrkdk8{aj<09tn0wMUX2YG2gedDexk}YAgP4|KAzF@nu*FaYIPjT>cH?DF7LFoeV zlYGb8(^CTElT#M_LnSKZS2;vECRbx!y^Dsq0F3r=v5IiS1LGw!Okt9-m>QE9p+g=+ zH;uwE{D$5Ih$nu2zydWw^tK-+Q&OV%E`1GT=HAq_+AiTT67QqS_NjH{Cn)Weyg+%7Yx!qIk!t(_UJ;u^5to#$=B z!RVenO1U0x&bAo-cusMNW!wtQLG%KX zKlOYAC7gBm^^!gkmQ5G6L`|lT8>f6ty#i|B9k#?Cm@r=o=h{UDTYKnt2o7YRHYG`Gg z$nr9z1%4uD#h-gcOzCNa9|0Y-yfT~PPODg>n?OU7#%yqRN73qHCdE)$n`~8khOq%` z;VFu?c)_fy?ae#OR){vrFQKvzSr0yE>&MfpuIdws3@dwGWnys<-ucXUASL1sg3}s= zm+*7ZZWg$oOgL|w8)C#!3||tmJIF%IFUM#+1Z#pP){y}s>pK$m^XrYv*CPW9RSZhNm*oPU19&C2YF!FLb&``C|}}j2(BT z9c?C6%&5)#S=S)kf{xhDoCQu?uFUpN86v}_J6!Ux8aNaN#l)=ov&Jb2^!$Xp5v-#m zpA-$_`^`_-K>EWXG^O)EA3twZP{e)A&Kq>(Lf0RW#Cp)!I1}D)qZ#toDOWDjhnr#A z>Atmhi|}aPxbsmoXp1V&X2>>F@XWHs3BXmS$A^#nJaYF1nW(zVkoB-WKf@cifY0v@HSixoREw|?7XC=6N6<%?;wPSJ4yH95x^t+?r4A{h0xCi~7Xk6S*w z?z_lzH+bGiLjnm)0yahnGlH5ZH_>_s6wG?K-4~-=>0Byt?77y^cVOKsP2jWs#1GM{ zRuDVG_h&oa)4dNkawM8gr4OElomD)Y6va7oHQd6Xi>o$nvuWEu5>ZA@ z)rmcq#4DvOfgJTTWV~CvePWYB+e`l%1vapq)V>lhMEzle#~CmrD}0tRY%us)0S+hZ z2m}^_QHYchTw(3Myd!8}`8x0fMDvVXzLDpZs}IH>wX$)AZb{{Tog!?Dq)#*oAH+0 zkG8>&LU;$4Y~F*Xcq?d3u9VAoo=#9+9hvl~dwJcSg*}u`IA*}5KMMb{@O3;cZj0+p zir{&S*;;kOUZ}*H_5qC^PL^0no_us#eh0ChsG{AEq${j$g+ z$1D1+0-VO$-MS!Hq9W@&Rs7_vtbX0H?GimifpWV0gak}z<`!kq82oL7fplF3poSaY z_tp&{8jbs{S@8vK3P%~(Urigd&QfF1sJ-U#{kyV$sPCE(}C#BanS=RXTe>2t}sgA zRmiY|{Z4~MZXOS`3RfNvlGLVWf417P$D}rD->Oy!kz`3hPx|H5naXaoXaDA$43sA0 zdpS!D?+G{6xri!iVf!Ynvcjrux?*0b;@}1AF&VM%fq=W1aMMSNm5DOqRym_^T`qwjz;nTY>07(EA2HS{>}X~CZ?P34TASafSw1QRL$(FMeFi4dpX)(1hfe>1FBA^Ut1xhe3X*ObRis4jfeVm0C zL2)P((z$u3tlyXU9?aD#S*TgHd8OQe`$b~tUe*W;o1-nCqpVY=!Q*ul7E=Qu3Fmgt z!n%J7jB1DR{gu}%-yEU%cl$6^+~!{6kj*dA_sTBMPDINXH-=+4j(i1bf%V`zp}Fv* z*YJZ*A^LM2mdbW4Z)>kl0D-+ZqLHn|To2dV<%_<8QA`G(Ky(%ZwWiYA4qik>j#4JI z+NLe&Y;9RfVjCzztOhUsjcRWO&SN0|eN6N$Ty3Sc8jZGpZ8?6m| zc?^V+1VsF2N~Z_^j8dDq_T358;?Wlj8$*!Wf_5?Umu@n@Fq$q{GIIH?M6`=`AzjM#C91 zn`cC$q~94>1p2oMxh)D>j9Ql)x&xdjWL1FMEUnV37-x^T9`%!wlmWv9k@aSZ;a37s z;S4qiVYb`1+_t9~JMV*MxIDH)jrGs4YPu|n)KP%SG3nm3kJZ$47GyregZ$$*m$*QR zi{~S^(vF5Oi$}q@FQBol77I=S2i%1+SB5AerqY*G-Bx)+l+rL4%+q;p?PO6B%W~ch zeECFjERd|!>AUv0xm6VpEr=BLJb!tyESnY)0BU$kmclz)5xqV zs4H|p3N(Ahcgk@5;=$aM1Rtt?E(&$4^k@#*+P!YZaqwJ`B^wxJZikQ&-6E=Uv1wMb z#1ms~h*$Sg!-m6=iM|ujg(+I+POq=Is973F!9*1f-&}h|PR@Gg!_cx_SA4z8=4~?wilb}Jr08t zk_Lk3m|nf`SUMBFtk0vz=63_G+c6Apy^4*arAF`!U1%v=F3i2VhrQ88f?fbclKe3F4@!xIdz#PSy*_aqGMb8z;(G4A8r!q zQT?K{Do-*=5*CI>3%?2c(Z6fhN^ntMW7NYo7E~&K`I1;z=qnAL-ZRm(JxcStgl&){9>COj2;sl|#nw#gwm>OZ&w_HS$ilmOksc zC}-`JWemsD6X}VW8k$2_)|WmIuP~oOztqDyZ#$#&+((8E3D3CNukOhS$2n$^0)KAT zKet1)5Bhk1Mw?$Q>~mXLZqxchAoTl6YMC^Puj6_^nP$T@!{Rpp@lv~?uOMeRiE=LN zx?Ba)2v2ilr*5LWVc!4@yy7UQ1+6Vmq$5gJdhI{brcc}u9(!)R5*7O+KYm6BA&E^V zbqJ9xQ;;9g)>{Bq0U(Q^4`6t~9Dq~?Zpu!c>*({tjs*U!8bLCsVQpZwP80yt`Wb@po1!GlD`yy3H(| zF%ilo>VdBCdMJMU8N;0QZnIAT*%7y!Tu?#p=}B*G?X(+>3@%U&b)vhW0nU}>n(F9! z>fjSn{|X(`m)*=7EGHfk*xF@Dd;6Iy1<9z$y7_Uf-^DYW9&J7t(kF7of*{HXroUYH zZfuS4JRT~gx=ygg5CNWaPdAhub0Hj!NQ}Q8gsHyh$ZDQ2z3u_z0+Q8-W!$Gm8h6{Y zsG+gy^K3+2tS&k9k)_&Ml4}&VKFAfyWV~?M^IGv|w z8#>x6n`_ryarD7}$%--bVbqi(=i`NI9CG0Gf93)`zaUvq!9S9ISN2pq1pZMTDYm^P zg-PMtJd!T!`^0!?kj%hp?dlQKzg?2-07y zR|5<5a2#G``oq%H`x2ef}y#`OF+sr99q08S4%grQSS zGn?MJsm%si<&4Hb4}pOb%CyS_H+Uj18SzG1cIAEd`#VfGT?@PuQWJVnEftU2z!kdS z8qCch%s-T(RKuI?G=jPsPy6`(PY1(;a6rEG12$0@VuL6{cA(4n>DhSm^FHD^Fd=R| zWT%=D{EolGS%Blh@$o(%9!srz)mNKo|J{nKwMG_zqCj*~z@1BPq<){N>K1?%`<0}P zuh{NP1yk{RqE2!ZDVOvS(bEeH67P}Kq#I$&F$HR_&tQ~rfM@qBNfvbw<`TwXosKz^ z;>}U^2mwxmVl>>ggA>4|Aw0s%>_;x0kPcV|D2(qR7Ww;lu+C!>oO9<&oei_~CF4@r zezP4-XIdMpLhH~9rJ?-=gh9;pUSah~9u1V)wYHQh3qkxdnbj{ZALKEeslG{~!N4wF z`z-O<7}~_*bhyxTchzpt!^p@-;uk7?RSoRRXV-g+q@Y^yC+6Td8&&sPAP-5*E>}tZngY}#)PJnGz6{@e-QN=*-2N#T9hPn= z9z+z+oJM%qE(GiM)CZxIiLa8CH#Z(20ASJ05L)*K>Z0kzulj%BcUiAHqS5 zyR-5m)I=tx>&KylLYXuW1%^Yx@owvUM_M2vrd;L6mGRJE3ptlFoDuDCRcGq4aEnD3 z@MtEk$k_>zk*{ep+SG1EFJ0G+mPkcJZxYGokHarrzw!QqIDg_jW$c$9v-BaBkaIQ< z)NMLZLtY~I7?lL8bv4mk-0dGAcK$74i>A*-xY2`_Ug*}s%M|0Xhd5U!gTJ2%O7RyP zLKp)!7@gl#aK=QRAxx{9n1g@nX8PhMg<`R{rxjG3SN4ar?iZB+SNuv;_5_?M)6kD% z+?y?!#OpVqaSB&U3U{}8UtL5gobK@YED+u78nUWWyiqM%W>EuE zVk_q-BtvfiX^6gHf~Q{NV17OE3f)}^t|K+sEJdiLwcvcc%*ZWw*u9^Xl21t3HF>|T zpGNlQoMMd?`lmI<$>yIrZ0ZTZV*)TV6Wi-kH-CgJBs*v5iA2jwxx} zC2iF=pv`VPFi8Pe5JH+`Qt{DGFH?TR^a-wJ*h)ipoWee6=s|&@(#i<*LgN&i+zC7s z>C{N+B*3oj={G-tLqE=u25X8~h(p8gXI8|a_dhs9!>R6SfjohCA{ms$tc<8|9dget zTf;6@N>I}=rP@NuFHE2+t$pAd_cc!sX6l4qdAsB9_-T&B)0kIbtia<(K7-;dV9hlV zJOjp1pR3C$4PTLHV5Hv6#FKX0XQP*pCf|69Y+#-D?NtBX)dVtkxqU)zfDgU00)N=x zYBbBS4>V#9n_mKNFSE!ds8ri4FNk}fi%(K+%jS)GJKe=Rjs1yS0f|juFr0J5Ldp#) z183s$FuT=tUPnLteM{68Qjnx8ux|frsufA=+)2yL2A*d(nXQLIT%LL|-fFtEFSc!0 zj>|^imlL?KzK{fR2xKSdMCmkqP);yLqizZq@54Me(E@Few42$l(~;JZ=LCE+X@%@& zUVtEpgo>=-L8mx_`SqH_0{KY*n&4W^CO4EdKZm!W%Fwm0W#nR1-e7%N44l4(SosUd z&+eEmK&aDndTbP2uuHRn7)A9dU~FEdZznRUHwPn z_0A4$FdJcsM%XS|--9Exe>-M(b|mKoqa+Y3Wg`YW7uRseG;_j1&*<0U+k|`9knLGQ zvz*K`Culs#o!l?`7`?_`=BmS7-|{F0&e?HQe(ynY*=g!q{gQtIUov zF8oeEhwC?=RGG@JfxRVq#ykedkwLKHk%Ttuq7ij#P()SmJkCxDsZwf)ZEWE!r`JcpQmP6zBHY9t|pHgA=6FQ@ZN`edqUv4yQ>`mf?mijplC9h`1EqJe%fu zW9oDJx?FQxZ_R}5b)~P?ezHq$6xK`A6-6<0lq?lnPt2ia>7^EX7a45xosxvH%0hL< zk%C5#uhfQ#I5u1hKh*a@k_u z9Gp{Hs0vA8?Z#S**QGf*cC`_)Pe`goT~q6zonA#PhlXd@17l~=u})yu^(|>FqeP)~ zlcr}Z>^;&1l2$r0m1O4kGLYqu{N|j4(NIKfp17>~fcenU@RG~GP;SfOQG;eV^>KL-sNGT zJT`2jwJluP*TQ(q7!v0F_Hf~1)rpr+E+01hx(b|m98rNmyUkc&{OinXwX#ulPV|b& zBDY-tZUfWjJHSBn#l#jdvfNaPeJ8_*omD|ud9oX^rc^=F%ViuS%UniLJaT`awrwWj zcrHL}^PF?T{IDB-#okR1>UrPfk-N$pK8L;mMtZhA>+~sYfy7L+Ni|(67Q{UIeZ)8b z`7#X7y$WjS^yMp^CkWIYr3XD% zR{gPZUf&_W&c@E7p+xgWncq`%Tc)baLps^zD0BJEpXmGznKfzr`y-w7-THC;k7~oN zR-Z9UEp%%C7%?6{&VaU93sGqR&?)NSnD2o3Py}bHN>#PY4eOqu%)ct#R@txjT)4gE zl6N54Cb14NiOB~UMJT#XD(MQE&Y<7R(+j}}P&_v2nn21xm+jD6{>O(dz>>+~L;__z z9gMmCZ}&(@@KluUf2+5q)ULs4MYqgcQK?A3$0z@|r2FhO2uT|_;9~XVyaA97sLI;P zCgyED)|1-Wjek97B%cKU=c)BB3uz;~EHXg%wpD?jQts9t4=bWsju&M@YpL~(Eb_Xp z%Yh2(Q1dx;43#r-%Xeo+1ME)x53SYiaFX8O!!LzjP(6u(YNlI*OT;7UidrzX(rrce)U|@ zb@{@U{)O3DC&}qJP+XX{GwFL=ze2M0U;`jPFtd){;t6Nea?y-o%OV*ua!K zNawHWYz1G~Q37tu+7YV4Y`%W&5s`|+QJB1lj&Zsj&u*V>C9d&xWAYQi-9$Oj%~mh! zbkRyUYL@`1vBq0H@}MdTChd|c?VS#aRf>M2SbZ_cR1kJ{WzWnEDtnUD=d59kF(0+xB|;t=fYn=0vDV%@pVU!hY{WglyKj}r?G;Sv?T zF=Z%|%uv_1Q%vYZ!e;~UTa-l?iA=(Fg=_w>NzTYZvl1_ zY|KhPmd_Hm;pAvfk)AP2a^o@)e}U{!-!D_QwiXgd+$(mhj%uKGDe*_?Z(0u6Tx?_w zWEWpxNt3yQ037>ipdWunEM>I}!5P4!`SNY6J9#l6Wk?{}ak2_W(fL+Jjb}e97c(zg zxEqTne*8LyzGn~DP`L(5mExKtUkS^z1Eh}n>kY37+GYQAnr9(TA5Kp_DZ`qReX))g zrtrScb6qG($@gij3ez`o)s9{2em%MOwdq&&n#Pg=5h}kP3_iTqKTGc7k-LbUN=%pw zCjuGVrMw=ZgjvW?_gaf_1tv!&m@aso%~xH99Nx!9bQBU?sQ2ARt-n`X*j_b^5{xeeIv)N46p<0LSjaA zcEIsU`UbkDT&rtiGj`7?lUN9Z7cD6KDsTgLt6PrvF+7Wgya2o!I?qmB7$sr%o6Oy* zA?v7InmZXMqf5YTjO}zZQu8dB`PM`ieHF$6iSngKACPf{9{xfV0L=w`#4P!*MHoUu zkuX8t8=LXK4_*k_zK^9n@tjo2T_}ZZAw9?-eG6!QZ>641(}5|(ovowV1C;5t>bO<7 ziNt=3)^jDVd)sJlbF+LAX*iiRRwjpw@i-4PDWnGTm$#auT9qgq-hP-A>t*pbK3^oh z1jTju@U5BcEuP5ZA}~W?{(A6cvNlqbpiCx0ObjHd81TODit#X{r%o4nRVPW9Cw31) zD7O9W{)`$wW4$HrKXVD}5`P?l;OH}%`kk2NyDsNYq#~@9XVnHUtG^6(e6Hwc1lW{{ z;*SdhN>umsA}=j5Yz;@WxPNEEAoLS#4un_XySegSDBOrw?4b^CF#1*FL>yb1pIhZV z!mN_pt2QwOTfN#d_g%32MTQ;bN=?fX1Ji*0J{OijCF`@u+G_Geb5xF&q7G5pF@o&N zJt@PgpHVvX9VY?<8W={$My*Fc79G{Ff%iN2cl5D#O*$^Hd z@bI*vh_|sm%N(RChZD)-OE=NT1ET;m0dssr!=8+IOfeLX(z=;#3VkZH^yzNq1#K3N zAlWEZOu$fe@XR$TYNKg1>zi8xf|8s#1U3qQXl%o?R(6|NC$bHV#|>?6{O&*%PcE3C zZm=CQuZJod6wd4Us{+{0q;bOXrK1MhbK`zApDsII*J_%l&7)lw_DUg4;YD6b#-?H< zgr!49NKRlzg_SUV0_O+XZe;L2W+RdMd2o%PP){;84w!$Eou;I|K=^{9Vyn8A&GGv3 ztb@Q2yc=6z?W0NLZ5_j$>@?JqXo&s-r~|s7trwxUtydz?E3d)0VqpUAfbLyI+E9sb zJjRx#J1-Yv|ALHv99tm-GXRIp^)CfHmM#-wHN*h2C+B8qwjzNEQJ(Q$-4n)EWZFLb z%`Kd&T#Dx7!7Ib`!@|x`tap8&E()r5{^OOF0xxQ$`6y7O6LL0j6wzPtgkeu0tM;Lw zyw|WA!aVKCh{pginR}-+ZTNWXipy#b};3qNL0={!`572J*?rn41tEC-e5>5KW^)*O6kT_dnKf%M%7Hy0UKZ%wkqw&b`+g!15YN+b zKZVfDZ;lw|-+ewzl19PCpzbG8$@V|OygjJtrcp73ee+SbFj~Kxk!)ADYcJeEB$RWw zYd#H`@L($_o9S?&i3d+oQw~1>qBtC2k$=A!8%{y7W%VZCP@<3^p)qxg7+QV+PKIq8 zvA(;Erx)$Cl7QpuVvf<%CS!(WK)&J{Ft0^b>^d>*z@lXENlm(;>2^1%)2Z9L%BxOm z=`;W3Hev3@$QsSE-#Ov7Yf4RT4T~bL5=5d@v;FCXpjH@f>qu7#U&SiyJZFx(G<+8c zYrq+*guRuK@#jU9=u(!#*e!nxcX%uL&uZm!5C$}FqfcLeGG4J?mavf1H>ZOrf)}01 z+cE0nB?n_FgI?~+O6OYhcA|mQzM0vqTPn>j2%@58M+-2{LWhdI;?m^RW>5~)wsyMR z)0G#YQDO<*!m|BF(3LD<2cxhmF+4p>2YR+Nhtp%Wt{`1%Y)&3M0dcCG!4V39hWf0C zaD~o-t-sNaj!@YN-nLpTpceKG`XJUY#X$o0UrL^7hlBu46a-!>!k)vtf z_4?Dec4T{=d-oBCKy6(&twvQr7tSHqIL&))-Hk#+<8`E%+M|yYOy6Qm2phl1>S0+o z9{&i?1g?@`CLCO%TT^Qzt|@erNe_-mgp&bo0=LsWoy3IC(XQzMly5|TAYEs?b5DC^ zz|Fh|Hc{E?>)^vXzw0#gOabPN9&2;Z*;Ou6%9fLZYF9n`B6##SbiZb&hx1n&i5FIH z+Wc=PM5t$sSLSgNw;22kQC_mM6@F(IjHeHhbx^Sq%NhII*FX$YFU%%Cmd|rhG#1AT z#B%zkP^x9K2c4P(<7({fD*7{%_*hkyPWT$RkkjDlHyltpYNy=AtOj6*p@X@u<)?>E zJD5?N3lcrqjX11}sOMt|do1%F9k}K)jbd5#Gm6SUiv24QKQ9MxSeMZq53)s5785P} zaojNU^BuN0nQ$@#FVK)lAJx{|IHj2h(b*h7xr1yr;<}+Hg$4y;)Ega!RzP~&uX91bfEqvDJ*BWl?P%Bxm$h~*xSrpty+=tu)r;lJN= zFETZms`yzNnm<(ySZA>+T$zko((kvOw{OZ;Q|yi#YOCC|9E?H=+C0h?uiG+=@yMF# zVG_f@>9P|##!l@(l)W`7DX2nsf_UcAG@oBQU>B4X zC1O7v`*vP|@>a_`RTR)xnlfD*3I{_VDYhex0_ZU}oS}DDX~pu8Ik3efEp^*g!t#Bo z$*)4n$l#sOdA5`UMiBmb&)WyplHjHBsQ`6|;#5GV^a)jX_`?}t~7ij?u zX*N8zKS33o%H8r1bgwKH&|{2Ig4|GJY% zg89KzoYRBLBco1tO-s^5H92GD2wqHtco&oDJJ&F@fA-n?f*ik?N4ZhLSZwH+GR){3 ze)6j*S(c!HZV7+D3xh*i|Be++q)tJaF~Rn5qa~32JCxEL!=WNn^{gwG?bNA`+uh^3 z7r4N7JT9;}Fe9S%mouX%XDBD%L~d03Xx}xWVWPP44s*SUJktCPXNeupC zWZcIRiUF^8x{rr@BW=62N2+)Nm=wNM5!{%4rc^yd^rG-^FU`A%NZ)nuepM^PpR&(yF!b%*=piZtqLo6l=z4Ud-O z0VtF&u`!^HW{gsTStMY3&t246^l8nSDzNN3cE7)IpFRL^Lj4uGz}SQ)Dh%V0MKTj| z(*oHeN?dFB7W0U`PRNQ+gQmeO=-zzm0tO}?oFU$pR+7euvd2UCTWf1+mdNj!5iw#l z_qj1>;qTvDVi!c}=e1)8)!$87#eUoc=s0Z(4JIB?VrrF@MQhn66g{8fKiE1Lo(fv^ zV<0kwkD^kp8MzWdSND^Y9uD`}QAH6Z;G{f;k&h;of?c=v_L|qH z7!<%P2a(U#X%|7eDzlnVGK(f23z%xZeDiky6YUL z)`p)8MKhSLr#?IOLvEJwEgdtiHtAmaCa@SyJhWxM47)pl;o660_HT*lJ(W#;6Mwf6 zk~XVc<|lFb*dAX=r1=xp5wrl>TCO)`?b3m!S&R)jA^w#D8{Co_(_IT{&+LQMvxS_P z8RJH@V2DuO$zoca;h8D!i6}MK50&B!V_g!~gwFZUKJEEq9I33{Pb4YL6P#%yM~ve% zTCt$N%VmGWHdwoQ7@>_cB*$qruwrU{mRvU9NKGK=+jMS0LAr5;{4^>q-%`?!VoOYA zq&+Ueqm*=Rw&6pN1sN9&VN+UdSmr)K`!vuw-QMOlRJjm+>vzA(lI1M zdnM+{yZQ@0_KBf4aU`qGL#r;9k|Lq5wu|h@Cdi^;EgmQahVv9a zX3G!FTg8?;!@Luka}Zsk{^tMb5SO{9;#|zbn`mZVj*BjTWYGbg1)Qazm~l;Cv`RS( zxh+X@9+PcumndJx4~|_B^I5p>QNb{u!-dwmUCzY&xf*U{5?3BY%K+o89zXJ|0 zdx_%pEPO*$AAcE+RVE^63Jh|UE8MXY7fZ>_IUd68OKYiXldMXUdnI0ul;@KA5E7n^ z=hseOWN~3M5B&tB=kghk*{4nOxrd^)ZI2MLog8=XW|h z8KjGN(gpI1R^OJO)mizw33Mxb{@j@tg$Ms@iZDN}Y#Se$4+=>Q!{`aCDjsiqi`W$k ziI!y2gt&i!NY{N=1Z7v?+h6~efVpS}iRJx5qliDgo9dFtqp!qo@tC5H3nb6PuSlO? zi@!e}l5A9%iCi0g*(Wh^DhevIybN{f1QiKMjXkxnz(kQwC>T`gLXH=ndij}B4>y2yb z?Pk;WF~6$abdYiseE&wNksW`%|Fby-42Gk)D9B1x&e21`ev#Yv+p&Mg>|~0T4+a8& z7U&MF2nwHoS$cqggN&u2oS2WTfjkQuAPm6!?SEor{sm9`%a38@plA6%uFSvqiGS*h zjBNk4{7*jBzuH+?IN1M7`+pKL{~eb3CsXO4?*EQ@{MZ>ThRz=LCiry9KhvMICqV-z zlYiKZANfUAMO{|l2bK|3{~u);wtvMm{ePBa{%g_}0|Wbim1P+IS!H@CmVd=T{ljnk zGxwkGe={Zjb;|zZg#7q0|6b~!C4XMbKeouf=NRZ&+5Wed!u|uxurjjzup|GB*1s40 zciVrRvM~Q+y0FmyKr}zSEI&WY^p6Ddvl2hwp_u;TkN*Anua5s%QRbfzw0{5+W~P70 z6c&#ETT=Pg2>m|?{eRB!`oD+!f1*@=Oq2h}@%q_W{(n;{tUnmef5dn((ErS;i?1pWe#9ER}yzE&uP9%2kJovd+~4NpzQ#{TjdhcKeT^vI=Xxm9t0NuM^nSC510; zA1HJKuN?#;7{B8omv`iS+V>~xyHacrwy83=Qln`_DT)CVwxkj)Dm^3#Lw#d>J_mFR z3K>A0JmLa~1At%E6&Vu~QjLCWdt_Vz@#q&S0Kn^O0009V6#zIFz!=f*agyKDA%ej1 z_Kr^uEe(yX;B!*+AHNPj!#RG!yQY3l8j!?yv8(|m4q_X_&Dk@y0d~FD0}WkX0iO5C zwF55o+v=;y)q_$&!9Gq{1L2h><&E3El4B|0@b1KoU0TJP_F*rk!JEyD^z@xu{} z1Nh4~+dDQt1FHMeD6A#t;J5sSC;j$|f4e?fzU?idaKx`yC1cZ_3z0F zfK+@B)(alj+WbM^+c(W7AIO@ratq0@O2*eS_cwwVit*u}+OxwCva9Pqe)PicyXT)H z@d+Ip?!Yi>8tdx;@o(|Fe%~e!dc(!o(>c`E*aUDOY;XWa=TLV70o)kyL$EiXK-Sna zzjpxY*@79cs)~}hih%$KBlvzVjH4VsvwO4yS{wGsd<${|u-^8Cqx~kmMY{!DBmO4z z1;|>$8=Cy3pY#>w55Sty7Y_WJ^c~FsXzl2WkQN~8Ll2~)_61F#lIl|={(Qm@p}2Db zZwS1i_U)%u^-t~mpW4VjZLeqo$#ZW}_}b0igb-*seGmgbNnU~4EUa^SAh#KxBJjB< ze(-EVWaZ#-oE?P>m<6L8wLI}GgD z^lby!D5UviHt`*e>{zl+{SEx(y72*d5(;5xarlad;`^S%t^F+wuuedr`VB~sT=UIO z8*aYBJF~La#{;-d(AtOMe+ln%`GpP8C?xzM*9aei{pA@D|M$D}AQaoB+2LdI*Gm^x z8Q;Ek{GjajAgsal$11GE35+8s*G3S{_O~Vh#aF|ZmEM;YD{Xl5Onl7Q1Kt5JK~2{O z$JjlVhyS)O-65YSK78S*UpZ(n^Yzo{BrL%nFxUFmJf$#gnegR%KIX$vVuv8@7d~VB zn6CAptuH885W$yEn?S6E;I0;`mpbOHc+>5kFH2w$K}YwGaR?AW=jRVN2!oSHG{GHG zYrjcg4*WBpuR-X9$1A)s(D4V<%eOkkZ>Rh39i4*%*_~eMc<`tY-~mL4qa*Me$ENr1 z+24FxQiC{0=75eZFGeptz|%b11WHcdrz#*Cb>AbYtnnr=U|vDf3aV+@Q=o&^OdEuh zz{Qb#YW+-tQCclzlx)wl&xN72!~&aXF;wmJwybBo%4Ua#mxI?z?mUU@!w)YNG7@?q zUBsreyw_ftf6e-?i06AIRPWZEN;{!>`Y&y@+BuFxRWmlT%cYm8FlKtNIVhA%(w4aS zwabDr>2Itt#vl*(ms4h1S0iEU3XhAGM<<*sq7NdsZU!V}LO0VPVe4ar&-FFm|1KQ{ z+{;HR$KP24SuvE@c$V4c{tfD_`i^J!2wOxqRz_&LP{>a%LDPFTH?5bw#WmOWL&<95 zcbmSnO;=ex{V1^|s1yD!gF-}5OObBort6fER)$wj8yC8?&sU6wK_T|aToWsRa&x|-~KE6mfsYnK>@MI$PPK^7>{m= z(X+A~5y7husEG8%E)0c2u3I~w?9`QJ-B?+VPBB^}iElmw;)sw` z4Y}wETkJ`>dj2bH_sB;q(LJ<(YF9HPvPpPXXj+4|(ti3J@I-?a+$h1>@|sW_`J_0y z6dc~qY1~ZAXQicE`^}KsTAKgEvlr*KFx`|uK6Lef+^iXaigxX$vh=B6cjF_TXKU*Hi*Y+XHnHE|;4wdfKsvsLFE@yQ&;u++x z=)ZN~1pP{B^XS#JHnix>FLsCs_ z-S*V4*$c}{p>a1@kUdR}Cp?@KuOrG1u&MCkL&R9s-Q3Xypic-kA~x2Iz%$0?XmN=V90nPj)4s;B62)jRP`DZ z>Nc;Z2|Lucy>*^LHO@^UMqKSL5vTL0Uyu0yg%dgo(I>qWx_<0u^ZU~Z2MnM_z@aN^ zQy_I0&sB@TWey6I0=U0_S)e_>F!i-cQK7+~V^OVwforBK|Bfz)RF^6DVr`{{c0ToP0$W*5<3AUptqSRmJ<16^R&_Z6+cpuIpQG& z7%Q$yVKy$CEAh7VXct*)XeZWd$;~G6I`!?LE_W%&BcrpPeYX(R5W#sdXO|=Z~ z{;&d}OZ!tha*Q6@8rnn&MU2|A_qA1c4h>UbXscC6i4;onIMU6{;on;IKVRMB%9h_T z3WAI&X41(LVFDShSQ^^$U=~4_GX69)2BHGf{TpQcNjro`tx2mgw&Mn)hfr9QTlJnk z{AiZmaTu4#-)!VDM~*JHQH^TpJ?DC#VM#vuyM~`P)sr#-1YW+FJk)7&O?NisFeeYm z9>R4)i<*i$ImW^-D`6Y>qhnanj(>^%g7N#fEx;8?>P|`S{yfI5qw1z%Q5aKv6^gQZ z)e%*42b)wl64O|-0DoUP{KP>=CYr&-nbNaIvs5%E`lP8sL8MjsAeIbytIWW;CEciR z9sm!ihb@7v{BFR9oeOW;Hdf4tNM;uhQkJG^w7La5yNC~_wA@XTjuYr2r%Exy(-J%V zT2y))>d?8JWrQiO+oG4gIa!|r{Uo5Y&b0X_tgbD?!+pT}u`JKkv`A7OZ_qFWm+#MDOul_hsCAcUQQ?4rLt?i!POAeICUK&SUNP0a$9$&;AB((lOD`{@;W|DP z)kZ7C)=(EP+*ACvjdu(&@)pp;jwqNyjB=XahpDLGB7GjIr`DEHuv4CyM&4@#x!=z; zL5mh2tK&gh=>eW(YpG|+6wJ#G&n1{}PP_2Uj2@^P7#fy_*#$s}AT~QUU;zmxGrU|r zCR&2L4E2NOHUv9EW3_;jCT_Jz+V$hiJ-2R|0MTHyyH6MxFvbelEt|W^MJ}8y zlR5f0a=)&D&L)t}d!VGGu!#-7q{tFoYU8_uGqcooo;@6p<~1O;cyt~E;+&^iz7%pd zkSoFwEO(T1EO3Ebfl#vBYm7RIlZpH^ogg#l zT3elWex+2lNf5zQsMyAnm8T!^<)1FlcZ`ZWU^EL?;J>Y^0y5HQbD+h-M@M5A8duLw zE(kKgUEY-*^yEU%M8ThMbA|t?I-PI(D4 z4r8kcTJyuZeE5(1%RM~Q+M>aTtX?t1~`fyQDM1;Du%k7nvADI&-a3k z)b|$*L<7%5SPQ>$w@8|Y2NE1}1@eTS3<(gKICFOo*riXLP@J9S-ANCPT|YvjSgR4Q zW_!sqlX+Y7CQ5s3%pHj+zOPyQ2pv-Lk!CtZkAFUsNy|8H+F-h6?w9cs6j%e|ZdSur zIxuTREnGOv$*Zlsh&u>5u-zJ#;2nsT+NEKsZop(ns5EZbU!655vOoWQ`pY~a(eXVE z?;Ls`C?~sjOm#8&;7i?xO%;;J``OV2O7{hwvikjvkT36idU9N9vN}-hjtxfUFg$Pi zZJh`sUn$gN`etz?_$K5DSk&a-3_09V4D%;J9N@bw{AFp zJ#Tc=v90cupU_@dSt5VZk|t8Xy-Jg-QJ)p)i&2etmDd%ah~S5x0c;B2wjn zhh$IU9QEp^XkobV7H0$$Ut(nTZ#^_ZGb_=UbeQJt{R8gsz zz2QjO=^sMEqR^r*X)`ofQOFPYSm z%o&~(`c;$Deu0~G!kt2)M}*Z23bkgV1wJdWhV*Wt_YUb%JqEf z4C2CS&t%e2ue#b$rzeCvVY)o`1kL52!b{M;w}&X%Fs)_l7~A?6Bu)iWxhibcgODC` zQtCZEWK#aQLe5ikr@Ty~KiYKf)o4-=qa*p|l|+uUq;T&ockP2(tQGMBi8Ftp&AI8K zt{V(_om#aghjHSHR+b@Ry7niEw-qOpr($2TqU z2#oK})hKcX@TC#>gt7K|!OQq#WiU`pU#`=A$YS|>ER>C_e5cmQ(u-slEYn&p?XxDts~7|_+;R+u*JPo9 zSCopiT^rXSV_VbFEf&7%J?wg|;rrWEoa{afjL@g7)mvTid6?U&%55m2>lz?K_iSEH zN2#*k=aIMrvgyEPhkr6Esd**-B`2;u9~;ot<7L$z|oI1V(EZ9!Jv%QIKO zI{G;_6^|KT0_Z3l5cDX6&1h(49VSyLtMzUt5>nrvygIl_RUei%$R3Fi)ZD>)GmfOr z*W{aFIlFV@&1;=72RbS{tl6T~{vR`wY)Q?aMbTb5I#)rGQ6ueST3e8#m$5hIWsTBZ z^p|O_tCV-OTf?i~??CoCP0WSJeP8|8yWYbDXcV}1)4C5^ga^&t(DOB?%U;MTSC#Eo z-*$eVhXn;ofa}vhBfkiAM%K9_*F&Ik4xtG#H7N~=_9hKVa%`lyv8aX^~)~_7Rr#X^U6E?`g`z1 z2flT9Op z2_b1xx6{qj&DR?j7`n?bx8XnAT*vr3|N{GzV<9Xyop=-T(mTX z7`E)20+gtex{9X$=5O=7&~=2DiSWdTOqUp|LLTdJ+a@y#OQG`HV26O>)vLX6&3!-( z0`j9zE6m+fkH<25?as|u|Ah5vp-5%Dr8_r{T|s*=6@jsiHHbjXS|&TkMkON~$OpdT zaX%jI0s^9LqXIEDWvRKaXWl;vdl2bXuF%G2VETILT(&pFei2Wm&kfWMja4_sj_3#4 zqCKFoaw;2n&_VZWr*3xLTu9EZ0vHem1vqAXv}NK~0q&UyQm}Y67!wFW6>|MVY)baM zE{T1mczG@wag(OD%{R89?Urxa2Y!t7s+QRe{ZAql&wg-pJl1HPolWW^K~7mG2@Vpb z15QkjUlIgueGW(gOm@dNF;3%=zNzU6G`-TTXMUGl-Su3q`EgK8SRk zq2Q2r@|K2@N4)z`#Cx;Wx)r+b=7Da$YV?L>$~1&fW~>K~ur_cfQDj?E0#6cFoT1q8 zdhGVkb-g#ftYb%FJGa>f04y%c1_)b>7ACyy$Z7He+hhT8<)p+MVvzC8e|f!UPxv!F(l58emobySa5jMPntw`?ew z0K%6N%2v@I4-AFayed!Ajbm=>AkKuJMq94SA#ga#W?+wS_r?g}Y%5py#?m>Ex~>SL z+{%OekmZ*0tFAU-p|l~hlUB0#nK0KPO>qirtAE|3b!xCTHB=~HpSJ|>k=-ka>)+<01c*RDv zc~sSmx9JzHLA{W|kHLsq^G^7!hnRk1TW@ka+QPi6seI&Y4zb&Uu&yx#yELrG0reeQ zzQ-q=OZBKsn)@t#M71~cXU3XjHOHTCQDkg!Fr5F=dp@seup~U))T*D5N1^}8r=<7# zz9^BHlmBD>eA_oD&`;s1mSAFYa-9sf?ry44G@jzh;W?hmQtIFd2Kj>H`m48mVY|7g z^kjZj{yD)hdF-sEOGvVCXO9rMTTZ%OslCe+_)EIp95>_h#SC=&gvvuZE=wk0 zi2&vfiMj5UlW$_RKujqqOL&glOjn)$2>X~xxs`|3yIZ}WxoTZ&AXJ~Pf&`Q3bkFjg z!*1V37Rc^w>ThW+dGTErEn_PIvb$WnTxXE;yYUzH>>Xt@W@}WM zdAZ!2k!tg$5K(a4JM11_Kc*o|;-YEcK7_5f+}T#7spDrQ&x6tgPULz8Mc_rE%dHey zkB~J+i-QU5qnileC+SC^YE;$(RX(+7(fq)mo;HmleZ&EsI^CiLq$Rcq0#Va3lLkpg zWaXw^BU4^X)0=Ghh7ydw z+IE$iW&+eT$LW#@v%!<4+%Kf^y$6Tk6z`u)>|O2CF@_RN(mLE~UU6*MV_nCse`vXP z99%i}*EmN?ITBCBxowGwYLM$vqZke!+V9 zu`SM2#)gW8z2YPV>koQ*6dflyXklpJ5<>cK37RC%(xpX;sd}sLLcD8=kLD-~keYDj zW75Ew&9zR~`6<)9BVXU{97os$sn&!xwU2WX_PZC~yZCS5KGml?loqluiEt#ZHK10C zR7_C;Jv(J5Y=b3i#Y3Tcif z^2&1(Z|8HdKba7^8eoq`C|0%`IYD6#0{I-Gaxh=5sQ75cX3m&NHwo5g*FeWVRd64+-uGAMLHfF z_FnJpI(|k(ZyaMCM6gqM4fsfJ#z!cwHwYfXP1@@h*V2N39AAid4qal68nB1pH zc> z&-csL1|Kp;&qM;lLe91&v(;c^!yD=4>M*>&D`I+oHEbuG&ZsjOm4_4a;*{1%I%911 zvqW-6dDjCr*?UT=WG-GQi;z>BE_^RCn$M?+m=4pzb%6=A#Fc9BDbtEQ-zoz9G98Gm z$Fn#iUwUaUXfD(=R|{%({T@VEf_g<>{L{_sorc)})%VsF^=<{YOu6Hc0x`amH-vt! zG1>N!A}dMsA_><(a&vzVTLv9fz6>4PI^c5~*LkOga20hz?s7XB0)fAIUmF_#!eAEi zx_rTXlF8i#Sk9O{W*+XWzJkjI3>)PRq4+B)LH|lQiN-VyWH(o z;j~v2e^2FLTua2n*Uc^qj%oLtwCIRGpYyw`JzYW-aS2#Rlf=M}ER@Rq82vIEsT781t( z?yHIP7cLaZ7Ee75f@l?SB@yyWx8<&md?>~}_C7k#>M5fo%)*mpwktHR+yq^;?2=A& z>rll0N-EdB4|o)%i2RPsr{KA_ayvJJnCPfAY`&C5rkFRMq1Ut$C2{fr04mT%Vug)} z&3pJ{sK88vD3$9^_xdm~m59F-KtzmjkvRSJF5i?hdBksI;$xCi)~@sHZ%i;8AMfnj z;gTd_F%}P)qI=am)i~o;%TMHnR#t<{nlA65p+{lS@hx&{6yLB=@$_Sux^_utx10 zturwq>{e!MMCvYqS#Hfj0qx91gUNhR)XxTG<>9KpZpB8GTUFpAbR&>rlBQ3)FT~GV zc}FvFv{-n-OS@@=LmOaKTC4U&J!$fI-$G+3j> z$>`^@lxDlcSUG3Dzy2`noy_)in^&TZL|=ggDA(I>Ep2O;qT5;D+RVFk9PMl`E|D;h zAiN+p8zlvw#Smt}zpsu#$1WIGzeT%p(8ic`bqwk=Q*CzLqLifhf^PNVSz%O;l@iJ; zP`v@ztBHw~pe9HY%}cUp)k@?0oqazH-vf=1w_O8(G>Dvdr-sOT)^k6G!P|HBrQ!Dk z`R)H{cB1*`w(Gj47$OJLHp2QQFc2z8B#A8ta4OB^=lL3K2n21~MQW54wCg5t;Q*4{ z5iXzbwgauFuG-fTCy&y<9f^i@ym|BWNn^u;uMJtPiX_)lN!&Qaxfio>yhA1IY#rUv z$DxhA@Z05k!C^gz7ZC1dTWYj_E(Jn%{1}7A2Gca<{CdW$B0{*tk0qo}cTr@zn1e~ODU$e5*lwKDkU0Fh(}T;o z+g$x3-he4ak-hh1U$QY*3F$-~Bb)<#G*SK3i3s)Yfi)(M^VBJ!ohy2)2hzQ(vKK~y z@--B_?pUltZGTQJ(2MS5o9>Y-faC}?A=vRU2D4NeVjmWcbDMq?(P=cU4uIW4est9febz=_c~|qs_(nl7xN-8$IIZIlQBo7ilm<3e_A(4wO-LD!PslPq}Yq} z<$W}6CtiZ_P<P|LP9)+p=EXD zkH%oBUi%>;r6hnlU%1y?!Q#4Z3y-JQ|8fmUVe{3*!Ox5=xo0Ei3+4`K!08 zi!XVIs@jif6X2E-RqEepJ(9TE_fT5;IdJ0C4u<*Aj9&CE6OQH1+~zIfpyt_icJhei zC5b+0wXsRiamCB}oHfCPq!8MQd{xZ+v{Nf6?3`%Ie{AaZ+FI6{iprrIt3LQ1GByTO z1`XR~FcG&6_`&$jW`)pR_K^2U$hJ+@)F zD~C((&DtHEvDSa2<=p**EcB}fH5O5?b@j&_fobl{8VYRoR7Vf$r8mTyUcW?MU@}Xv z&s9GgLt_)A2u_G@C$}2&>#E>k+ro}Ts-hN**ZEPLB_Su4caVmg-^~s}&T3Tn+=WPr z$@P>U^TD^pGe`XJhhdF*|1rcxvr)6)I<%E1n*jcg<1F_ZYOlIzz4y3tbkqjdR+M;k zyNEMR$a6Dyc;=ypH?&elZk(Ug95*Y8CV2?Pe$=*z`s-fnhdFpBuq%HYcBOt3y;H2a)lA^79ieNdT0a?S*XJ`bo!14FkuHFwe}sB~&>vs#RD*Px3Gd9T{PNUTvi zjf?U=rj!z5!SD3lQ}fU6Ex(2n{7l9@>#?vb>!Xpw#KsFBiJ$LoYL96Xd-uM5tu8rw zsCy7s(dG!B3oeI<8i!^&8jv&YX^7u1*Z-`w&;`9+QSE7FAn&s{i?kj6o!iZ=2+2=fWFF7h zM4si!y2Q@9?!I_)z5%rWaqs6Y^k`=QPqz{gd8Fu5XrAC6dcp!?-)0eTj0>OMds^X# zDjqu&w`)?><1*Ll=_bdLIVsoW%XQ9vPrZE5b5z`N1QZ`Kz3`E3Ur$J?D(EARrp@-y zTdg|V4rul~INrc5f*7Gws4NQ1_o++ubWfidBjGM5{u}=2bOFr%JkDGZm$f(t)5HqB84HK#}vyU}4l@_#DPcufJ`#6)CmSm{v;32A!5|%dl(7%^5_Y4_4Axjr)GF7$d z>B5r*@to;K=lB){cGv_W8@1+{=UJvcp14$ym6pqFON;LZ=E*lP9zyA$SqOd0BkEF5 z2G?Is+uL9;2`ES+oX87+vCsADz~6Tv@MO0Lzh0Y0&g|e;?N;)$ew&ZS%wAYeI8o+F}?F>=Tbiu?ii(} zzoZOaSUmj2U2YjZP36qDMx4v!F8t@>intZ^_sk!x6F|Z7xudLA(ro3!a&iNMV91=W zBL>={wzn07oHiI5PMb*mcDL#WhTXPU; zIZd3~lTLkiEZ575@^DR&B-i*-Vj>X+V{8WL@?xwhVF|jqk1NV+E%H<=>A%^rYzqI4 zW%wkwW~bTq5}3DQb5)nf1qHb1OEv!ClU)<9b5T5*k;Qz+5a(sq)GQpQx5>eKj*1<| z^m(*!0>hU6@e8;~)16%kRHXfGIHRpp1_$=gX0`SY>c;)p7;HPP%E>#5h0VprUhq9M zXBspFlqYaRO18UUk>?A=9cYO$@tv{~YDX~*x4DvjbID%UL5BRJ-QJ6rrZq1?Y zf;^sQmQqh;D+P-!=R3?UH$Nq#-t;zr(RAr zRk}ac4w+GWi_q7v(?jJqXD|RzXgZcVvk%rb9HT(p>&pwcsn}M zMV#y;ZepnXdGN8ix_Da1WUsiFIms5RyPSuu?hwo%r&m_sMzbA-fMiC=dkL)`@bL>Z z`67a5Ow?{ynQeGN|5~DIY>hd$1MNP&jA}3vq#4IKeYi5$)f?+|CAvP&^CPwaaS=G! z=|lyzJU8Ta$^LSo@Mvy^aj((MVk2_L4Hn~ovufAo&Q#&DXROK>QbmDx)CcmZhG03h zn59DBFdNWyrn!6lO6k9mRiqU9sz3Lf&uVo~2xNWAu)BVzn5Z@`x3$~@ntj{b)+`!X z!)@It%o1>~ogmVUlP$wseFZwwMLSD**8ZUUi87sUM+z^qC{4$Kti*pmJ zsu8q3p`wLmh!#|?XJVel26DcW3ER$Mt7YSqcnSS+$xuP-OVpPIP6go=jKm&J>TFm^ z#GHzGz3^6ixWm2ecNZ1s58^4d-777}&>nF~(f)_<&9K-cLNrwmd;E!^VIfMveXnILyU zfq$sHH>o#+hLGsxQt4SJ9PZtVJc+QAir7kAl|32>S@Oba!FQ36T2!SeF?QwPdm+7g zckD3T(1oX_wu7$o&c<(5b}YW6o7|t5zr=Yzs*RAn!eZ_>3Td8#uU{3VD~XOuMUidG zYNn}yuABl1SDRY~b3^P8(m<|c?OndNJL!$_F5QSTBk@|r-=o2fp{N^ZSk#m_Z7>!) zacvg7#e|qtw-5guKGazIEsXL!$+8JH2+rK~nJ6@zJ__Q}Ug@9@)%KI^(dEc|A$H$~ zj5LW*C@%XT;q$ZkxGiFV7#d(t`!0u5oVSIEp<(S!NL|{?< zIn|zd!P?HH*S*mP?bp?pD`6jWlIeyV>*!sK6jQmT*oDk@#*M{glv!UrKT!nfk{k{) z=W&jUnpPJjpTEmyuLBQ1;2anj(XGffQ^<%Ex%+|wId<}ts>Tmgb?I_}T}?F?E9|{F zB`ZRRiWvhH$svegHYj0Bo?S~$f8tW8H7A2cgnAu2Hg7Sn4z14n%U08u^~zI% zY!`@m0^TX&NcDE*2B7eLybkb1iF_B5Mpcl4RVcPSE^fAj_^2A|F)7T&{gj5B^D6wk z(&UhUoX@jIO`5tQGHXAIT5r=yiwGW37N@93cu)3IlCO5Flxl7`WyHG?4PA>%e0G$s zu|tj3NEaGr7NlftlsS^w8-6ypdWe08QD{?D_!w2cgM+MnMXj%ik2= zqbhQjfWz14xI_3vlleDbiC z+QQ6D`7E1t~t(T?&KK!tShpdXlB9R%L72)<|sVqtH0`rGNCU!xSi1}qpDS?JmRZQSSAK*jHM zc4pRpTmCcR%fP@)|L@a5e>QLbG9AS5t8n}0^v172pg+>N|F7vF5jhPFA?3H}puf*f zv;Uf}QT!hd2mOD^PXCda{`c7QpDX`rLjQU-ziQFHqSJp&{`^W#|9Zs4@_YE`?a{B` z^sjUNJyQK=p!$#R`Rm8GsxtJidh-9PGySVO{i_)L>y`XXY5I3znu+~)Y5MnGzs~*j zoWDN*`t#Rk{2w0ubNcCjc>e$WS^j_9>Fqi}|Ftsx`v&>1x7^>)M*YXl_IIOE|2rzv zZ^7_i<4ylQ8TEVV&mZ)klTp9t(f&CH^=mSU{nvf?&y`=3QE$^;|F-gLGK&58;MIRW z83m|J11i&i$~2%d4X8{5D${_ zY-4EbK%n`?WDwAqm=OHpM&7E{wkkH}Z|52R(ldUyhkxlA_709hX8QKOPnFjHw*xhE zBS*7eo3Ol9xBmky`4igt^$Pywc>JSYENX7$Xl(z+=2+=F8Vei$e#SQi#KFCX=OlR>4DS+Ah|)K@2Hjkde5MrwO2g(o>^ zG~nEuhAIp_7kU}^J}`EYf9Dmk{|OK=GBW*(C3>T7{tg=Yd-df%ZjImS%RfTYf`YcL z1e!GeOVF3!z3RWBFMl#if4NyWet|syBwl`@FC2e(G5@%qexWZMze45zJm(ks!too1 z0iZATpd1|j62N91B<8?+p(Z!ZteHSe(HtN(xjYSM??!fBApz(M0DS?VF97rffW83G z7XbPKKwkjp3jloqpf3RQ1%SQ)&=&yu0zh8?=nDXS0iZ7c^aX&v0MHiz`T{^-0O$(< zeF2~^0Q3cbz5vh{0Qv$zUjXO}0DS?VF97rffW83G7XbPKKwkjp3jloqpf3RQ1%SQ) z&=&yu0zh8?=nDXS0iZ7c^aX&v0MHiz`T{^-0O$(Jq^ArCSefe!r{0;i@TcY@{=nM1TnjQpnN=^ojZg$3R2+P|?1_C-keFtMv zTN_6LI$23|IU$KR^hH^jf$DGWv#!w$}PK|3Y8>rMNJ& zzkw`&DlQBRZ%6-PTo_p1cA|&=1#i$3u>5iKkI#P`{kitX8UO9af9&*k=l$C0Uwi)b z(SJR9TY>(y`d`2D$LstnKJ)v6{JQf0;&1-rqW!*zvijC|V;P#6iQ|uDaRQdNH$z6>_4oVncEI+>d;Nyx z{PK9-w*Ez(yfHb(Hb%dGxPL7D`E&jg+2Qz&0R5@%{B~1*Q$ByL{B~3R0rC9tO~2ig z-z>|2@232064An0nd1Ed<^lyKgG|jHA?4TH3~7nw;^OlD zi>-aTEm}>=>{H?5m6A%)PBEtw8Z2pwAESSEOa$S_k-nuE;DL8L!0(2?eFahn;ukeB zl9bffl*GjTE`(9RwN2v~+R5cLQU0VF&&7d$p3BPstv-`wchNY4!7nL_d& zKC!HCHtNC}jFBE}G>aWGxTb)oFAO#C5Gw&wWga#$|HKqh_SHBPq%YC}u+=FHtAQ{C z2(YLLftWAhLeB_R%0X5*Nm+z7Q2HwxHpk+N*e*<+i!TZI-8+d`2q1~cfxe|FSUoUS zQIpu3&pjYQjQ2jo#jiiLMh2%8$2t!2Z(j`#UJKbO8EYIL`OsKZ>trMKJbX(d5Es@S zeA2%8zm6tTFAR(f9{O04;=)po^83w^CF%iPw!dd`KwxqJ$EHZ;@RJ6Pypi4T3F({@ zeGT*VaeY*SkhW*cojR;`d@ag(H4y9U7+F&29leQ~_bGi1B;0uwTIa)!n?T5vekW2qgSwuj)+NNF(O*v0D`!=fv_2fp7bSf_Ju^yGqDD92KUt_gkoaQ zSY{U_0wPFv1rE19j(I&Ghvf2=IK!W8M}+j1_(8V?Mi2EWq6I`2)BXj!gX9776C-GH z&kGTOuf!9b0WiJ9lSnBL*@LPVuYIk7-=kYH@ z;@rFKUtl}(FVF>YOI}2xe^~e+k~BT&f`ycyLkifS$93ZOKu==HEkYf?Ph^cyi@y~$VbU$1JF7TQbVS1JdaCaTg5)b& zH*`+lK;P6wdn}OPUM$p8Ke*9N@{3o-%Xa)WerpD@(f*Sdh*8kYOU3!)d})=?6bq}v z3myLJSL^f_G-#us7x--1b5SoC0WBt)K&aFQ*g)2vb`7e5(8eB>GA12p74G&!f-- zAR&i0x*FngE3f>lU&vi5pWB)4vMSd3jx@yw`eyxs-|6XnJ{y2*Y{ywS)_I*i9$!** z4k(2M^~mG%^T7j-j^oMSjC^$uCp;bYsjR}>VF2;h?j+a=RL4fJ&33aFvMa7PdvV3Y zq4^#yVHmDuy|0Wd+2Kk3-FPzkJMK@5h&~}VEVu{Sl@pI7a-!ffRk>b;Dki?>5Tt69VWGa|7?3J;Nmo(98oyWn)G7VNqvnFDW0@PQD#YfXt8f;5u#k4_K zY`n`yre|Pn-Lp@kLRyQ?tZmA1j1iQzy`1++zLn074c`&OU4 zhvdbudTc0gU+wDi$?@9HbWOSizqPb>5yA`;f##9YjR=x>cc5i`rTIbc<(q~P3VG$i z&r0ZGLDO4PS{b_XdW{bm6$e=R*+on`UEmW>Z1_hdY|zslk`^}%->sq;aNgfdliWJb ze3e?KAU`0H=6;JEnrA zHr9rK3Ph5Vk;}^#cQB8O+C)S|=b^M-TL!~n#X!_jNtN?~Zt2pSGoH(p?cua{pOhd& zW=*hPV0Ia56DW@N##c^7x4*^XBg6O^SEXh*8sy1WTKh<{UkOfEECpz&AV=(qcb`2Y z=-`i6E#x_p2w3Sb!UChgKJiv~djnmix*+^?;NE3ld|w;(h=$;oSD?B!v63F;Js>%!{EY>{j}-#S-N z0c*SUd_+y5r9?9~`O*L~cHYb0-jx5E2(j60rrM99qa@5+(|linFMtzI3u}QEqKtf` z8zkF%TE|XOZCozmQqHF8NQaF~2NG2q$gN$-WWzxf39gw}Bo<7ot9{Ltn6nc+4U`d* zMi@Y+zfQdbD470#CH=BgUo z8U8_sz+%UGQ;p7*V+DIgV^UY8M-f#Q-6UL~fs4~qW$+Hc12M)2_~PXq{Cg58vM>~i zeO2a>GvW+`i0^?1`+gKN4Djeu6_Zr7drw%{qIgT@7;4xE+Abzqt@m~YW+E>Qd2+^h zXb&%U8__MTU>gvG=CiL8|776uES7-R2VSQp{f+0U1I zQu^f*9P_`ifCSdTD7G}NelZd=yz6r|@{WJU-m5x6U2|c$yLEu_5uVzP4g1^Zfz8cH zJn<|?0_5eUKZq(b#$%`|>m9jtPq^#)gJ_dWh{w*R+gcAwdC7{V&%g&Wk;AL={<+)g zkKhPDCvNSuuLdi#q)830tyEh`9SgpNt>p(k1UYQ=FW!`>zU+b>vwMlEn{x$BH7=72 z>es)^_)hdQ(%3`}ZDynS=f(%to)6m-209zOE>yzMyKSMK4+(L_{1~Qt-wH7aw@CF_ z+tCN%&Onn^>iM5X_X)H3p-2TN&td}H1!2M^2eGRtOXa6qAK`i2+)Lp+{bn-T2pz%D zSmn@oH01r1C{(s7J4_73d=%xOT9GO~TS_w!-kH}QHMS+{P#K4xIgKjDMEbuZWQ!}5 zp3R*Q05?aQk*AzhX@Z=ngKnN3aj(e9=sJz3@0)hb5z4_?N4~EUD{sE)$7n2)L@B9$ zh!VBcJBnqzBo5KePw$gncha7zH6Nom43K`;2TmNyZ_5i$f>-$%`eFyIT5gkmKbO2O zOyKJ=-bw1OqJ6tp96D~^O*rj-8b`JI?k9whGUq1{RH4c*WsVQiA=@t>*N7{2G+lG9 zLRT;io#D(BKVQ;gg0#nSh=GjLdVi3nh1YQ!K7DynY*PwsX*UZQ6quoPQ}Ht#_CmdE zD&W#~T_px#K-D_<7)03hVFkV z(xgrBfeiHyR;26{DbI-t8qn3jf+5P&%odgdHmt@Tr}biVE{uj$)%lRncaLDA;u0sz zW%rI{LLZTW!iyGJxB}yALt)z%*azFlD_dmg<#ot+^hx&7CH73i9NQ!)lU_i8+5)e ztcr|*Xq6l`>i|MuLdK32ukm;vvKi^SefqRN!>=08Q%D6v6#!xU&AyZG7G9k7OoX7Ak@51~65nQ=z zXoiuH^arUQta`Bptv`prcgG|wb4s=v_8MP%)8;@$Tj&!|1@~EcGNTPXZ9@*(`>&i2 zvgM)OLue|{lR?XBQXuu^*e-J(yJ0r3OkTm{_co#}rx!$0YKAc{vpi{K8^#s2-AMP~ zlzC$6gA1UC0Iegqqz4(c`lj)8OfFqmVm*x3dS9;>@yoGs9D*na0&E2QZL_Tai&;lqGdF&1e=4~ zXe7ZXmoiG^Nc`los;%!aRLHe1b&S$apYYx8biX%Lu9)eA9pdnPDFFY0E)x8rp!Y;8-~tI_y2+HT9R5tMN+vgvuJDc)S27|>`tE>67U zbA0($${6YDZ!ETYDe2$4 zq61Re17r5FELM)GZ>cuF1N#NvNVAgDbjV3 zP???o=15z1oxU(oiSY3CTxpvt$lMw!33_VXj^<)dbq5#xPWpr4&)NCzyN?x0a28P< zIXc6}<=`G#lDDubW1>5z5w}N*)ng;gp?Z8}iq>eVNq)R{>CX!4 z)|msBA&|Qt8L7Mm&rlyj?s9ntvF4!x<69Y8FelVlx5$F%#=r#$v?X~fd0i(QH6><&;~>?8IBZ#Ub%(bUf?S>+#>6hebb=y8|FIS`t@;c zcV_OnoW1!VTg;%F4>jt~kv+?sohkM73i@O>Q!<<^dtWlz)Ao1ha#@p5Ou2Ais0M=f zcBCWixOh&ODn7H?+yT)v)X?AL#qV+Vv)uC91moDdwPB{tb8MYK4JTEs1~on6CVwrN zp^hpI!&JK+Ja@G~E|ZL<){O)4X#bfV{4>9OOhjC_Z<_L=WtnS$mm23)A+kWsAgE3= zooF8P+FK+JgS`E#pWnT-JN>bpm>{)ZMrYYJ7&hk_4*~hvNC>r5OXq-@=7wOH%junb zC&#w7O@`FY59(?5ZGlgpI<_bdIlgd0vIw1d@#FL@n)24VTS>qOC*R_*Bu0KbrMn@O z!{LK=VQh`?vhyLrnMbxJA~<%UQo)A|SgKeU&tAI(!LkM8gKB6!u0#sOfI310mS- zXa--he@IYv2<*;Zbz0@2KzqR1k!EMYCa?YiESmk!=EEgwMRtRs zcA6Ypn*LR4q3H`EhaPW=?u)mM5ko43^duZ;+HC!*UnuK-Ala$(mbf{$r6MwGeWyhR zbv#dXoP9N#$xWH0K>P|xsEn%P`_D(Dno;jQS>_Jp=puM<&WK|jDI7!!4)45d)C;rT zDP(K)h}?YGcwsE1s=K}i3orTH(6bEWh*SDeE;~#3fxki}iC4g4drt>t*a?h(YeU3$ zYk<0{GC7GxyT`xNCz=f&PVRf+Gv2#vSE04=h}K#@gabt2xLJJ>mroJKS{am_{N-c2 zFGj5|UeghiEZAk=Zzn%a7w0-|9X}a?X?x17lKC!tB>y3=pV`bly)4qBi@|N{iB`b{f`GRC4Sy(eouJ|VE21?GIeziV zm{vPT3B~Au`JB>>e&x?Rn7MBUps;nBC8JmcAs&;wKVE!gmO1=yC1-L33Im98V97J4 z_82~0b)8vsd+#EC+Hn3PJPk>Qi!Enp)8_WUBpeP2{`GK`dUx=A4aN9uHX&g-(`LNU zkrZ*_j6Kd#!1ek?C6r(Lkc-hh!cf7FqQF3Oz+1eNUqYCi08K58#N)~H%&5~xOm8y7 z`A|}D*Pttvz0ElH%2=jMcD*KeG=))RxJ@DIoc9Bw zSWyrgY3XJvi6}B>k|o&RvOur zt78v!0YSSGWtt^_w!RP>@-atItGlj#-E&ACSkgtUFoN2Y#G(IZ0))>}GM@p~V{G`S zR4y?QZ-rQaI6tq*(J?K&O1sx4Y9RSrG$G=u81WgzN4zi>7%~Yp*5=rg!^fqbTU zK3qAyXi>;JcE*nTN(oYQ<~ML&sm%aW5R5RWm39Q>|2H=aH_{>aL#w?`wm^4 zQIBxodPix6qD>P-l_<`>!KuPxdZ*}t?RiB=Tn{+$V-u#uIg9De-rbu7np!`*IaU*t zH0z>t&)Mwj+Gg00lUwLm9iR7))df*Z6%a zxYO(#>!>`m@@3{@3AQn05nT3YMU8cjd+HF*Ud(0jEY6Ptox2!fq%EO(g#72s5*InE z;!jbm3A6i&%MbLT#~LiohFHdiEplh5zil#Y(q}jVbb!iLpuXeIO|J>f=tL1RP0mEX|e25Mw#K^EYsQKf?Xw^ zg7sBPv5F+!#Rk%!R-Haii<-4SIzA|?Dy2@J*?l;eypiN;^y>R$B|_tjUZu_0HT-@b zlDgtt6_ZDb-P8lD4bPspQ3lx)%lL7sM22J&;rjW#|9ZB09cYB;Nmmo3qdZER-fc}> zmC!bEMGP_J^rf`#`5gP^gVP{Ey}%+9R6EtDb#`>A@6WJ|*u>+igo|YvrV|G$)q>qA zZMNIj#oDott;+Ak4;%}xO$DKAH8Vp%uUZURI48>TiO_sjo;uiTwDfMbS6wGh(r0KW zhSnrHq(2i2z&>6Z1WHWPWbM%h=FaXgW6U-)I@Ppdz?KmkBX?%NpH3Su74`c9omJwr z(kg&8#9xy;c}7e}H4MRU;!b^e+JFkq916^Rot_tg39$10ohGAZ`B+Ws z<@~Hwcz%G&>Ma{2#$f!;iW(dX6}1_W$Jc5NS~lyOnl14UGav_b#mS8c^0-lP`pBe9 z;oc${l!}qCZ7$hG z%+;Esc=n8%$}#rdk3mMRZuBf>+>VKeVm5Q z37sRf(v>^VqZ7@N8#oub<`!9P+=#lc7l2eXPf#qqxKFuPDxP=bm%(G3CC@`yb{F-C z8k%2OrMb&w&c7+j*W^64)}O0;PZcQ~`#z;QYe#b7q!h-k0bb$fb|UG-1}8kt!(kP+ z`$kWKl_j-F67J4<&DovCeY)o~Qom_y=b}oim%K*fI8}VU2@|RK9%#_BbOcSj6k<;3 zeG0cY#wz{<$|MhV@9=`GjJISeB>F7^lz0-9`c(QCm**QK#5s1St1*8ghl*UNXEh&F zmiOL0xohI_kTzEMdvcZs#0^CO;#wFg`5Wk(%Y(b!wlK*Wvz!FiP*$kCh8AC+ZxFa4 zj34i-jaR-$1na<(zF6>kC01`!w|R5Kw`@U`z)4=@Q|P&9+RZJ2E+3#r0bx~OebM%i z#VS<43H%z8pEO>&e_gZN>W3G^Y5OFN(Eb|77|HFPt?jDCTGMc%)>7vGoK6+Cfe8JO>31-U|s@#K7{NM z+?c00ZN)@>adrLL9TQn~gd)E+mR$TPRgUIDE4*-Zi++^KotD2GEY72D|Ah9snOQlW#xKU@DXN6y1UHY$777{4tJ;-4PSBRZyQ<&r@T;vHzAv z{|J))Ne>phbMUBRul}*UOi}Y?Es)_6(#UM*X#dFC4KZ(psJ8R>a45v=-I5LqoGm=I z;A_EYS{dn%Q(Bh3bX|1)0jd0+^&bIZOxGx#6)2nIVtG{QU+I)oqLkZNNcQ-WtF(P& zRaq{lK6~)m;7@*N=kOKue5cUf&BE(JS_H+I?Yu#?F(D%0rjM38v=quz)`;&(qpbLm zNk4b=G@mO~us9O!nsSr$1f6(i-x<@%QRZIKuO6~ehxuYhA4cxZQ72V?S7<;43?9_v ztJxevw3a^fe%(=UMH5UKH!C@1V64PT-(m-*!Q2<{x?m+~QZk0z?sP$Jo`#EgO~k_P zP8;{`$}J??31bJFS>Nz4kQK5YycWzpxBuw&9L$?dC(I293OUR47jHI-*P<+L!TPZg zEx3*Kv(5-}O#R1a2%6xO8DuPZ>>_CId~Pf4w2bc)NZ4>gS+OcaOYPH)q|9`LoaJn3 z8uZ^XZdW!axObKvqBGCRtOwryTY5(nWAh};cwS2)XRylABP__NwuyGIQ9bECiDj3$cOS_ORK@K5@%%GUP^B)MOn)#Yg)XW^Sp z?NUf`TsF9(F3W4QPbf-95fz$b@&~xX!K{} z0v{89k>|8ASeCg3kYHfp4HfYhD%7h)oAqA)QjDu9J{Yb~?i+i&Q9?9F+YdxQ0UjC)M#6;i{$-b58>D$Fp9Z) z2lNl8BT~ejiz?eR)KE)hrN61vwCajU+veGMCOjsuG9z)V(G_oRF=BinY4Zd2yHR*? ze_0$$#e>KMwZur}?ngrNXYRps&KCMeoYFi3`FM~o-k1Tbq|1c;vRb3ew35oBhS7&} z7S5sd_G?@EiK0gedcp|Oq@6kT;)iZas#`B*5NxKaq`RIQ%um(e3V7OmsRf5;Q&W>QX;epqZ z4q0zfP4l|Z2zZ=Ot3IO)?y1)h8>g5*FOXGRO&i+f(rSf5N=C)TgL5Ofl>e-c?(Fuo z?)~sF&^RDCnxMUl92YpN#r}>PZCNP=d7Z|wGpCe5K~NSVPS$$}II5TuV{}(~_t~ZK z@rCXb&us{sP5`5_#PPjN3e?SywGz3Xp2J+b#n4VQaPaxmAvlG07@VpwEsfBh`AtVK zotQ^m!!A-aQjgDGyJ!eq#vVU3!Ze5UFdB{AH4OmaMvmE ziYMCQ!aBhH&QfgLjZ?5kJjBcPD_(V`9^in?UR>Tf58VF`nclm198?Zp1)E)_nR# z=kaxSJ3kcajy*hT7XnOnOYMcwi+qqe?=xX8FAZPp$-yVK`LR7QMAk(S(*0#RV*Pi1dKL;Bbg!@Gh4OJJ% zEjW)n>KSoF_`=Pl@Jcm+=muJU&AN|G&(7UnYhuxba-Qwow>3K%A2#6YOP%+ctE&J> z!>}!H&HWHs1ImIl6r8HAiWuhF*I0b~&NGeHr^RfE4OiA4&e(vFjvix<4IHtBx;R&h zeC>kn)BxsMyHaEOW+;Xc{aKaguwy53-n6k<1DM_S;0<>^e?$lOMaBzU@I(Ui*G z`dV{u>QkFx)Kvg7uTje#8IybVgPX1?*$~i!2>;D?reJcpZh=7guw?>uqmhjH`FFyY zIc%TrTuLOqS#imSY9j%0%hy9&VbveQt;S;g_$;W^sfpHk8KuY$viG)p;d%5i*@ItxY2$oPod$G)Y}*fq z2IO+#6#2!=^U|cSTj?ArtW{4eEg_-*Hs~=TXs|eD6xu}Uz3dqe@Q+P2i&37$ianTj@#(!=6S$CoJMF=$E*^PcJj2(M1|ba3W)&OX z`C2DLw5C!XzEMF*D_dvK5f$1#Es0AKht&n*qauHQrO=b0cP&oy>fb?=Xg)d&>F*69 zi4(V47k*F}t%Q!0Yq7nBO%^GFj`osI8;V}6Oc?|@?((Cg-JJY}J5~IB0PXeycjf?{ z9~3e~q`fo;n?p2{PeS(uCWSM*TpbR?_r*iCiESb8m58wq z+l0&!IX|h-wkiA0_@!C6_&$|r$b+O99VzbHw`>sMxzBDBkHUIE$?6LTUtwt)m;QXp zK7E;F6NM{5%d*`3@VPSW>pf%l;e8)O8GGX@uEJp5bzv47@MoveGA{OnTjsApE$xpk zJ8Xtb2H|RsxyH6F$4Nam<*a!%4=TEnR4qf3VfoA^7o84Z`Z|TYBzeK8q?yeh3n}&~ zB~+uNkvg4X;{^*~awtq52zc~q!@QLG4xF|Y6(55jQ|XA#NL~^-JzDtS?k7R*XJ<6_ z%tx9~KhZ{BYVOsT*wOLO(T7x-)Jw&;QSce7E+H#OWxRZc%bQE>>AyN?Ev=-socejfT&1Hy+C_SZ$hf(MY9fP}{s@sFcgC3o8Cd zMvMiGi}=uylae(Q&mbyk!oW3AgmS+?y(`Mj_pY+pV~3ud*2v}?M}k{?u}Qzxruc@m z*6RT-UI~$ihwS=kN&c~1U{6ySD_LbBrEbn=@O~Y8Lv;d&A2FNeiH@DkVOiXYqO1+M zC7M(RlTt6hebZ7}67pp9=NV+HacCk6oj)BYJ*tNTwXO+4E3la97q&VW19NjHUgyd0 ziZV*q4|Hyk&Ek1gS89Q!?TG64u4*tPzGlACET{9jCCo=4Z3vQk$m=@5`q_pI^cb$d9(_Gb!>0q?AEtQM>#b!so4$s`=DF&w1|I!aW_g|n2s9A5Qp7b#!Ec79d6g;mkF@L--qFjY>91RA3LT!Qi9+TMG0j{=I zZ}sxDa~!@7HAh=;WESp(L!Rv4&j-(>DaMqHJera*9%GlSbzO0`h;Rm;jBj(|G$(O- zay3)O;~W!*ymIVK4KIB=EKBHesHD_*^1VL}Rn*kK>dAWTPMKl6xEm@mx#U$V8a^wV z7#Y%&<30Y)XbQz`3NBj02kiJDPD2H2wQNU2*+Ri5W3#v44rJz4dagO(-0h#T2__2) zC!LyF zQ&WS>NKy(3B0nP%Ff_}&gFaA(rz0VV9LB|JLOkynl26P8s~gN-x!93D(|o6?DZs{i z*%Q7YR_HPp_fDE^>1%cuJB@Kw6GczrqsD1f>@%B<9L+N!HU4UZ-81^I&NK0G1L}s> z9sQJz^o1@Y;}`^n#9Xa)TDcP+D0sWGUk!$Jykm2XjWMc*@J%W`^ubsQ=gFcF25QD9S==TRu?}dg%iX znyPY^_G;?{n@Bbt&fVAOoJ}D}oamo_eazt0j9!S~a-~k3UyJpQPGsjaKS7US+nX-m zXHw7kz3Jwr+%vn&o}9|y3P{`>998IX zs8Kaqo%vy|F7C+Rnn1&qEgU-`AT!T+V5rn;uZN$qN>I;{mgYGMgzB)>%l{eWu1JnK z)=HW|Zk&-OoUvzYf|&?^HfWueHa0q#$IoH5Poc!zB1u^YDzuBIC~NzppI+S4HFn1F z=+CJhaFsPC)ZPl?x~|B%cUaK6Qge%ZeOf(|2jSvLC<#oX zf}cJN8M%;ENeJn@9vl{1vAGJ>H_cv^BkDUPzVFvM_}Ml95o@@2bWBVR6rnq|M92C$ z8THo6WH13g627%2CH-3VJr(cp5_Fj5got94qKdjZw~KwRR66I=6tMf!Q-#M+<=ngapJ9!LaFKC5U5bE%KP`R$h*QcuAL5~bPK1>d%9Yqf3Lwr$(J+O}=mwpQD= zZF|l2k#m01}TQ5E^izfm%6A1*Mz;Vge#M=R?Cv&7*Q4y`Y@6>{Fq zxqOwwjBXS|B8@nfb0uZAf_n*Y3+kylx2&bc+*vj84Yh@w(`cNp5vBPKroqBk>tT}E zk8k~34$iw3zpW)`CwdODeg$2M%t~V3QK-c@kC`^Dnr&RFA*!#V?n`T%@q$bTq z_qTnY1Z(1MXesXDXY(=4)pCi1JYUKlB%ID{n%Xqiqj&(m8H zdta~iuBj|(5sS(heiq?;z1RtU z{fxc8BMYH!U%A%LFdXTum-)`sgA-9VF1gD(m)$voD^`h{p1~uXY<<)PL=L-E03Sq) z*i}~{g_+LW=YRNgf}2Cvx&iBNCK%pe9S3(;*|@%DZldTj$}_3A|D09Y#TLA(I!WR9(H8Tl~73)?vOY+#s6K2aiT=$i^(;nUxTb?>1HLodS_ z?ztqEi&J@Tl$(WRnD*pd392~N@&PV2iT5pwPC%84l!6JLrPpZNPI)D-4bx^$<{r|x zYZx=krcXWU3uU_vd?{ssp1dx?2ctNy(o3%opJ*1Em!YKu^V{H0nB#JCd5wHjY4K$C z6@%QyU9-?BljvE;aCze;|6x``&vms)lK?I_<_jdB{NQOVA{kL!2Qo?FWegS<= z7n!oyA}D$cVQ@}ebdzB3;FSdoM|hBCa`Fi(B@V~5XAY+7a9G@)yRa?&MW1lB$wKKr z6Zv%yK(#S)3*)oxl4pUyBLpm>p=llp>;2i+f@uSX&*XA(__kIw2Tn#Jp5i#q60Q7R zv0>aZHeG%3McIL-V>9x=N-)gBR;#zi)6f$Noz!SH!}*c9dwL1?Ka$+H9smLFg8B zPo1emu5j}c14{$_fj@I>P=fMx$#bvjC0Fxg5gJD+E(-E5rnv9YkFKZPZJUs8Qip1_ z;G0cVBTM_2<OOyXj{)O@i^P9!8ZKJ6Uc!gc^^2oMsY|!a#c- zP(+iwM;(u)cXGWSjw&(NQ%R5UZK86p`S0{PYjkvr_hvB*Aa?Zv7LOGB7CxcM} z_a5C@K?HQo2oW*BUKzV2-BfPu4TdwY9 z6cA)+2Vi@w%~enkV!7tJXNh3L$)m6876Fp&Yu-?4G1+Yei9q<7^`k(TFO}J(W?OD8 z$)t4CHfJ3?l!x-LoC;csGCA64u}dl)o;*Dq%_Vo<${Ip0?g5)xc@rL)YEjGqQ9=_e zgK5EO2%DwEFEdD3z;b#)yDe=$JaW6>n;O?p{(L4#Sy7<{_1vH`tsuZyr{wW!{5Z!+ z2)#i0oezGG*C_=22*rdqZJ9ePHDjS~g#pMXmuG&SokVr9BU!t|E-G2?(Vz}wd)#jv zWRthj$r6Z86`p@D?1N$l8kt^k3?!34;meuus?66K>xN34WNeLQY%iH9B#?Q_dREX8 zHEK`_bYQ(pRwf417gM?c-jb3P#OFAb)j(iYb3hLv4bEvZIB>06yYePJ&S`>kAVZ2q z-dnO%tZ`9AkU>Dnff{P2t7 zM(Rt-%7Zq4mU$Qxb)bFiYH-!uXhyDQ$kdZ4$pRRm#@c92fs+u2WM#-k*mar@k_|(7nWFk(Nzu0(r3K5BV3YPyWE;|E=lG z^YCMLYZvm(Hvs$x$y)!$+{i@V&i~U7(1|nr>;F`E{$E(|A415$%*e{|AGGivGWbu< z$Ux8hAMwBI)H5*AGqCnfovA|xyH*SaeHpQtM{ z{XdlSKdI~g2+#kquEG|krY4RiwnipS1X_RPBmteNDZxKN^slY8Q?a!$vNQe*Dw*m3 zRZadM@#yH}EM#ur_^(6%7mfX=-T%l~Himzl;op7x@7Djjy=12U?|Srq&8D-7<6pmN zZQyJoZ1S%w{*{|f&WI&uBBg9He|H{Qc|3qnD-nPs+o0E6p- z73fVP;6Fb8ZRLxDcxmb2gX2yw>+x~~b~x6tkfL%i4v=zCI19W!P)w%x%r_21`d{>-+@vqqZUrv{Sp8db?;=iCSGdC7J{hbU7aCm5PaBQ;2p9d1Q#^uhbp`qRZU_NC21GNtnwi=LCB^`YQ05w9J zLZD?2r(}fvJEOZC_0Mo3B!Qt3u>6-*FcUxOA&jFVa5@7afIk2el@j`I$Ug()aQ<&} zf{d=m&j2-knN!-h-v^Gs92|iXfaZN97J&K@rq8adIRH#?96*f)JZ)$YlYd`^2V=GGr-@4dqBew!mLs;oIbY<=6y{Y#*SAo6u=z#MB|c4cU%I|09bPgZH${H#zN z7+M>dP#T&U00Y&1dg-Z7C#d2PFqu%HD@pxsua9Or)pL!@Ui*Q#O||_g=%X$!E2zqo z`nmD_mclVHqT)h#kqhl@{6_txgIWHjd-@*OP2te+0C-eSQ&<1Jd%v6e^I7u4*GzIL zeKl2e*$3R;4@vLp$oMP_AP0uw0MO+RK*hxr_t!lGl1)w;o817_003C+L({jq3BFcl zXW;;t#`jA9h-Lwp&hdpo_fbECI{>E*{}A8-G!E^AMS}KGzkve+PAd8l*GY}9E-$~@ z0i#p>)_8|E1g4+(6u1O1UE_n0mc51tN=*C->^nsHCZOjS{wF%K8-g{>`vmtNEB_SG zr>*cqNQ+#@2RSbI2KR3_|0l}$CtCg|`uZE4enz|ZX*>TA+;;GF)CIOfS=&A$?`jLa0bJ35hmSD*I0S=%_&(!(~ z2V)!G{FD>C6&e48X9H*NZBO37zwhgX@f+ayhH7Ov!;u z$>Yla(&%gPyEOo;d^p3u=nwclql*LGOypbgr``?uGCJY6XZkii2B2$hZ1@<=hSeUM zURpk^omkzM!?~pkzx<&cgPXSaiB;+AC2@E?09&!AcLiGeS`n`gRQjBF-vJ&5E7=8b zWCUINO6PUG1?y*}`rtDfgj=5MA9=z@en_2+@mo3kgl-SW`te--#^`VQHezmc`#IQs zOC8(>H8wST&?8yv>$Z3PYCZ6C4|w^coAJx^=f92cdqjgkyM>p4yCpJt)nvA6`u%}x9Bz6-#+{nLM}x|@m& zau1MBL`}Dvc^~X8Y4fRlO|HPMa+d=qxLEK@w!X%z9l?6#W=*?(L%~})jTM8S+PF8qM(E$#m@j<%S}v1 z^0#g-%<~5d*ot(or^U{7#J4g;YU=Cz-Lbi-Iy{$Ej?#{;q3@hy|MJK@JELSqPBuve zJy~P%(_1-Xq=tD!bvz~Ql&vfQ)m)lVK{~gA?;&}QoKFkB((JnSsd-Kp7nRbLuSLrP zR!)H|e4c(W%|lN3o}|-Ojlf-#3Kzou1*2BrjDf*+6HD}XK~w@$*A>l9hR24Gq|mBq z1jg*jEQSLnEvpRJR*tt%639AP zH8Hyib6cqK>dJDi4h=AoJo$(dv85vHncFX{n95d--l_4zq6KCTpN{350TW3n2Q{C8 zdD6S5xVT#I5N; zk5dnNqS~ml%^la(OYyySjcCSyjDA=}ADjE)OyhLDxlsg!J=84B0K+TR zAd35a<34;f?<5&41rk;Fe0tB0g_`b!^z2_Ts*Z-&=QgS`jT8wW*mbTkuOK+o__ux? z*>|9x+Aig*k4$nQTi~mu8Plu(R?L47N4C5TDSCTB-KO?%2^gIz22?pylvE3J8J~MZ z-hoq9K)7%w*&vbL_Fba}LH&3e$ri58q&cA1cw5|L zIpiJX3pfqDh@_{HqzytafAiQf$%bJ~p$pA{fwaau03Ke*a8%}m^ooGDq9dmsaaz%V zntpd+#{s7~j{nZJdsg|Tx7xaRA3`Q9=k7jL@nO8sS5($Va1Dkt)v06Af{zw&ZOVg& z0h;G0x|9Ca0wFUO!91M;`*Oh5qqnQ(2MHL9FJOY+6Y~DK?S8L2heR^B?6tpL7ni#V z{59yhvBYweR$}zKSeD%cP@fD;xJOvs0P!P5&pVWc>J{}!Z(6HEa(FUUZ}dpEaEp(QwI0WAaP$Le!=Aw$EavNkj4T2T zw0x-Y7A$76@(0;n$A3X&Q<_sUt0T%u2)VJB(OgJ)^?+alUXhg8f4$g{f!u~wOC2jb z%uGNVOwVIoRU~T2YB&sb?rz&*Kvd0keCM>PQTF7u5?rj|=(p*Rw8;GcEV@loIauFO z7@lblYoeZd?oIM#Gl4`PIFNGom1=qxtmB5QFS8{3I%I=e!+C3MnNz}ylFVIXJRKg<^{;;8gs4X!7jZ!rZa4H8bw zx_nZ^RQHVp;$oUF)U(aOZt4U(t!%7dTX&^>%Pd=Vm`wxREx_HIq{*BSW6fqT`Eq<3 zFuyCXjfNtekp{EfZPro`3*g7ePFpaVQDl-x{ui^F6$_gpubq9sAx$ z-PrriJoXzNC5P^;-K~7(g$Q_2_hTJcnIvwYXn~EyVhqr^C{I#ARQeYS@JK@fZ1WSl zqA)FE?Jp65i##dH0vek3-jMEyT5Nj_?+%7JRKAC>!GBAFXL)j0AqvSBOP&?EG@PFk zqMV(x5*({gtG+8BDKLAO>Kj}&F9c(DO-fWpAsv~nkYkCGPQ=%n#S0(v8hdJ$Ob|2= zEJ3^o2mlsq5Mgv8n9azD6SxmHlUw@H(CNBI$w_^VuR3NlR-K_968{NuX`wA>?I?#{ zjY%Z-Wu#HqX$%CZuE;2!P*^D*$kXxqv_I`X5lA&d}KERUUErVg6<~2zw1{rifN_K;wh~XO|E6K} zZB^Fgm=4^iMH)2)?i|XAHTKm;u{%xQ zB~C0-$~F{gfra{}=%*)q&J3St9UG5G=Rs)<+rL!VkDIW_r7L2!eK|@35qT&~7mPM! zsb$r0U#NmP_5%i0sgLtSt5XqN6eshKq<717a-;sVsL-)<1gI0zB0Hp&RW=|S%fZW- zGzd{jkO*?Y!&|DTU)q~H!*?8uWfxn_18k&b4(96IxPuH1`AKE;Y&&JKwTZ8On1ZPE z9q;g}Zd?{`HHfV)l#*klX~fZX5APWD)Qvk9b5LxXKhIK+S8Na_A?d_vPv*&XYW1AP zVxVn3;yvh?!`wy4)b-l@(2Ow(T$a-{FPo85NoaihdJtQpieUdQ$UC7%DvD|GNPcGl zqGmD#tBCZTBSV71bs;gY2?syWu`B%`BvRWEQ_~#yz^yh&k#p_><}Xj<%=1HAzjo2_ z!b!K2IM8-=-0kpPsIa+Jt22O`9`7%I#p%abkeP=lDFf78%=ZXVHhtQUwR^4e92Frc z8{WxDkjRs=^sHI&y;5@x9)y~k4&obb)aL6qsaD<2Uu0;0oaczA(J zM?vq3_2ue4x%FfcpGX%nrOPUop(42D3vqnCBh;eXo5K`a66- z(1qQx#R@DUKC$`l=+*@Q3(AnuSz(O7!6uH7vt*Z(bT6 zI5I1=3P2f@&4zY5OZTGu)hT$Co3$Y6$5QPdoV_SGbUvT2D1~^YA6T~W6S2U?=mYU{ zXKHF(w2d#XHd`N`<;mt~rkxEcWj7zHk}U7NqXLYHYB^d99LS!EXQ%teCY+kizZmQ9 zkmrZiz!>XF{7Fux6@AKf`iGOze#m*{qt&s)hw>T@=Ft)dYkXzFeKGmcG-0upNXkrW*Q}4%ac?x zS3pkso3lTyKE83tpdDpJ#(|COr*&@xjnNQH@VSCVEv`|1e}Ut5>UvD`#3bwUlgFVUxVdw##(S6G+z_NGZC9 zN51IITecHAp-{nXx=1gisEI;$(zm+l$jT8xFB(7WJ`_uEUGhGen7G6JAw&2&!D6ev z;Ys8E*oF#)T%zW$w!O2O_csGQ8sSn$oIe5PcuH49n{NuaW|YDgYM>~zhrLy*f< zw@)7gTU>0Dw^o3HjV-WGzDuf~I7C7Jkcf~O-O{Qu4pX3$D1^SZ7}R*{@3(a`h*ryC zM{ZKFr_xC_&QI$Wotw-=oO%N^1w1Tk@v7&P+Eqtzme60J8H6E$po72rxt5KqS{3bX z{i4STbXN#4_;658xb~pUjC8*e7Z2FjsBk*yNDrd7z|8=tnhSU9v&JNaUoFQ0=9~$Q z(l!}l6Qw#CDy_@F@oKZWXAwp_0>A$ap^>ahR^ae{~CMTDhD^5|8TRw;=HpM`#7DQkcqbtpe ze<0xsp8qPjXTctpcg{t6kNs{kGo>Ci3x4Uxkve@Z9Wl(_@r&s6cE)w@_^qEqrBH+hKE99t1A-4BI8fH(P05|wzaS5$Un+B?;PuzM zB1qx|dhxpcbo)g*7^K>Ytb|6SU^pE-F;F(N5)~M?EISDg<(~{_L)@h|AxS7RvV}$0 zT<7Z|Z{!%_(hUt7eb?eX^Sakd%ru*pVBtC`{ObwaK3t##_6M=lJQv;*Q7o@94l1uN&crL3w*JI(o&*Rs02{#dKywqsZ4iW>Lktx- ztyJz=-#6Tz0RsDR#-Z3scpPtbDVF|(p_+}nfaooU=*(nx9=(Z+oup6ebk17Q+uO5M z#7lwY%&4_pLJw7kn)IuTnMFim?Rks8t{qGhja5bA_g=C|o0>&Wx7Zp5@EVCC3yKBJ zRm_h39;dPJ7<>?Hz-K7_V+uiG58BHjP_fPOQG|>+Sq(XJ3Wv}VRx3M+OzDEWG%oFc z7ep;$w^+j?1p&hO{@xI0=Znb@StF@C@=IC<`Z56i_wr4l*mV7vb&T1iwpKYr7Y%H# zu6aPI@1wCMKMizv^7W$2;PACJQKhh*{dI=^5sozCo_u$N#Xte_lIVrBxR^wUkmJ?k$Fx8!fosDxn*nq%{(2O8>eqrc!-bGOsH* zXf`J5Ky4>T%1~hwrYq?2ZLVi}9R=-7Atws&h6r zq2aw!LA#O;lg{;){xBCRc`e{BYlrMQ=EXCfchj^qRq&tUm?jJ5s2f43C`LQPNc-J; z9{cm`z0Z*gJYM_JmZn!&4SiN+npi;9_$pet{snHx5{D4e}N%0~wUDNk@42MIZTlQ6j9nIQNsS#?X# z6?0LmhP(#sfp_5g-GAV1*Ku(5{QQqQ<3kLD%ad1@1o_kFfGytxx*#;+uek)Gc&@cQ zV@^&97fx~;Vjobm!n{2dE}*N@8m@x!gH)ed29isZ326i|%M7h06|G;ae}9py!=5;* z8UQxN=!Kr-H1d5NN7RC>>V!0Sv$L}yn@e`JubZ78%y?r!V)}FOV5VFSuM#$PZKWDh z2p5Zwc=p~X2bYLPS}MVXa=an8C?{_N5IqU5%p0Aca=9TG5wrce$F=LqR1jE;LrkMv zL6GFR+3q#c_x4jJ z9>6a@a`HUe-iNj4p9Y+8Vl)6=zv`wYb50r)YozDedIi&3rs8zuy6p<3VY&X6ZAC(T z-a{+{1`S`1W@vuPSDf3JKpCI6qJMoZwpwU_Tg1K@`-U zO9QO@AdD~#b%}IDg~C1F(sflt2?{l2*Ix5fD=Y5|3>;g3xL)_N<85LCY7r`%s#LR7 zQBipGsJjq^p?%{H!mFlwlYaJz&8`#HVWL2?X8c&7CsO&=~et_iDj_)CYOg+1a!(C5nw zx}qvk|NELMyAA}wh`&!#$E;0q6VDsUJP)P~mY^AkkH!;Y4JFrAoNH;{{U(G~be1zO zV;l7Y=MG@_9al9obYqD!3rV`h_wbo6YwC{Z)Mw|NxGV_e`8zHYSzy2(-h1_L4rgOXnBYGQI>}KUi2WV($R!i>GxBz{GbA$5%*fKaJ zm?B9=hspgeWZ3G}`lRbfYNvtfcJGqk_-VX)J~F|le-}7e5SAd(Z|CYwh*7Q34EIJg zK?xAd8Ru{IS$qr1k9pn|fC~A|PW$QVX5MLKbAxJW57w=m(6i`clu+>o+*?Gfv6^%i@5XO*_+^dKh?hQzK)9HYn*KbAQvcAC*S}!-J_0BNr)mC?^O_lJ+3(b$fyQnsv=eu? zx#l!Pk?CSht5@FnB8SNMnjh3eU9y-iyqIrze2ZU$X))+XIDPHqa+{rR?(V8-YuNO_ zH3S1DFT*s1(NK+9OcJek%7-`nRRHw*hHOO*|4jCGlR4#MV1%j|iQNquEXshku`Kz3 z7p7yQJiZ)|i!E$*T5*b2HJ>lmW`G}EiD&38^i6f)XOn>@0yhjX`x%!VF|~qgFskQ6 z2k{4g%%Zd9>7kZwgX#Z4R_OnVoD( z9iwYh#*SAIM)9`?C3RV2TcF)`01Z`6kBS~%CUe5Uv7reKGB8M+FHPN`d1npvH>-3ToadpYsDEjDYs zkifoOIP?62mlnIrU8%gQmOIV({Z!Rm1^2`yX4&ak={?Fzg>PjJBCllA+*~QrRFvOC z0hbv5bdf}IeQUpJDo%XWoJi~Q3UoW^Vk|7JV~XPMy2LgYo$eI01b!?pX+b0qxRnq4~ zIF?eXlm(*1bSggG?^x{43_-$DsQJ1v9UW<>;C6#Eq5D(YlW{8AZq*Aso`WZLaYk$s zVBUs4vtK zL%7~pAIHtp^#$S()E>EP{#uF`H)8FJVJo^yIVpdPdviA8{7P6su-qKZ6uiac_MwJ5 zA^r+sUfaqN_Deq}fFLyjo1-hUxcahYD7@pav>dovBt_K+aIR9zFqY|HzIYmc$c)xC zN+UJO%kFc18MS1#+xNRze7kqlrcwD$y>gvroSU5r{@K|#JRS2O~>j@%?t-%*Xm*O&Y$qm0o!&t@j-9sr|6>^(5?;(wSi(gOk*{1-587(=~$W5!X|{8izyfnwZnS??8aJ z6EAysMuG-mMkIff0Xk19ey{qFF;KO?btitZWGRQiGL7SyhF70b(RxYSYi>bX+<9Y> z0k9&5x5Z}=V4Pp4Bg791t!LZILU*6TK4}?1fuYgK2@XKx7N0!`K9%a#%jhM;t{)h- zy?{eMFOY?4i&;rR!yo2UCt?geImN-L@9TiPfcGF9RmQK4sc|3kEUenXuGC1;&@*S) zLngMcnv#5$pwOk0sGs)?%)~6U4lN;xAz@v=Y7o#?xGCDyaOq zA=SdnxSLBN>vPP*C?`w1^AX#^z8u`EbKchmvUI8M8r}wgv z;m_YsqTcZ0RDHosN0FHhWSvV_9Zx%W-u*Q8eoje6n&~8)*^0r0&V2=LJ3$dwa8W~H zDU@)?9?+?ZS@_WWFw7SHbTGcBMR4LJx>8wB3z74&jC*hLXoYE@$Il#z zZtqprdsCcVK27jb+LLL9IByx^zsPHt*_NzKR9fG&EhRg*&2(!} zF&i8spPbO$4Cp(5)VDiLh_VdVZ)!AkfriH>^XA$#%^6dl+t=op+j?upZ>=ePxAc== za-*_dnl3AfVW4KJ*m`0OHAycv+q=l%m~R)y|EVZYXB^3I@c2%tACF}-7e1g&K@Ma9 z92{~&&YHLc6ZM z5&MFqTF^DM4&3fh)N-hQaosm|7X8x!?7Frot!0!Tv}V%yf{n9F7Ek(j(`uC@=8sa4 zrO&*k?1%-CaZ$nA*`)E0P;g3$4i=un1^T}T?}sc5u`=bi{X^A6S}cRTfl`FZQ)qC_ z>|7Ef@LsY1olE}voO^?Y%09Lv!}?|#dsre7SfX(ebg%h-h?vU3x;h84VdsUiSoD*j zh}s-UY1KaSfu-Rkmw}=7*3f**aBikT!Ij32k|Ki3<9u06=z2?Qn6j^h@uo2(%*Wlq z{KbkBFP~f)nP#JEnp6ykdDO>o zk~&Tok&r{(hI&S+tTo$k*pABzS2C}#lRFk*PBL|2)!lrHI4KUjLMyfuq~n-NJ;2Xtn{PG|`O6k9Te$D|gk`HD;fzL6G+Q((M9g<( zZ)7hkw|?0!spPMj^6D-wF$^2<@?vfIFm1TVpIl zr2#-EsfVL~{O3XtovA8R)iTzty8|<>Rl2OQ-X6H{ddej4L9$F@9HJAF_R|Ydb)8hw z6f~Vdf0m}^gAk#3Y|=D=lz}eWptXJ<9k>8XCWR3Tl=8GQ=JdZmAR{ACQMzAOZBDA) zfYXX@nz^D;k^PKKoVuj>?A8lO8#v%$_h!EXkPWEH+R7&6Za&qK+1ibLzoaLf`2**w z^(+Z#Bfc&$K=-s(f}c?C)Ex~gqFas?WP@_h#Y;90h6tElcc>bdPEZ65?)S6%pO?~G_ z;vw`2z_#W|5TEa<=GuKIxprbvasY$6UGO&7{#0Qa@C`QxJdhykebE+;N{g483NU^W zv${D538J4^KMAL=Qaoioc$%y*y4ZrbRr@o;fEGu*XTIqgcxHuS{!HIRlpE2|5iPgQ z&4q?F+89IxCjmzG@wwnz`@-u<_9QR-llMFwW-_;OuIRdSVN3tY?5q>$VwCAdJK<{| zq?={`^oId|WJ&oYDIv>~LGU6|>^_R97qipJ;FU}Dx!JH~O2ackv-0aC@MBxK>eAZ^3f`p2Eq5e`& zWlWo%)CSa;Q6c>${!?#G(Eo{;BI`ubU)X)=b0BGdF!08wI=)-nr;0K8jb&rxoun6v ztbWuu1}|D@KZn8u{PqdK)HON0wBxn^W?2#5Ps{@e;Qr`r6w^2D#dN%?Llj_14~O(M z48lJ86J9NBaj$scb;G%ie;dx0WN>>3Nd zLqAF?)Zr3LWSA4!IkPc;N(@+wE65~&k=^hnjE}_xB;P|ie^+HG_`;47a$DAnP!(kH z^=pralpl=3HY0=6yC78(9O{g;!XzB^ zt_h0e&|Et}>d0$v1WnLR`{$Ef3wio5dg=)o*6gf{HT+P8k3F870#Qo7FJo1h-jS;| zoD%n&iQVrFzsk2%mUM^^`L!VM;obfj3Kx%@1)LNTq8xY;$e>Q;wO}Qz0*2bR8q6y& zIV!<4!J90;s#27&UN+*x;GhD%*Jqg<>V72#tJ|cMB=q}sJ<-Ub>&q2^R79qq`pPbv zNrRn(XyK$*V7ueXKb_rQ>ZM4{i}mV6LI?Ia;)DXY_w90DpTdqW4fl2$RYU=_e?;t8 zPes_M;}rTaFBm_w6v+TMcIFRo7foVNr#N2kHTvs@A9l0+kCxNcF*M~`TpOBjx<{GB zf+4(UK@nDf>$zLpvc-=OSTy7X5Y#YuwrfKviMrlp?oSL^N99u8$vGKa{O_V|r=pOX zX28rh$2;jOG3QB@FFksJjLY>1<|_ecF6hH&DBu=ghzvzS1$l36#sWThA!K_$7k9<8 zQzUnw6t;x)AOrO+p!vO(x;IP*CXu!`4{P>Or&g&;)^s}E~bB5`^9VUn$v#NYXRk@?~k*AT)sr?)nFB902d42AjY zz?;w?UG&5_aH2Edg*vPu}mGYjBA)t2{2ckEyAaq1bqLrMF?FF(3W8nt=j{I z<9na`fYbQYW#xzp0M}AC9p&C zc?g25&t&R%Y?kM`l>I9OakVV7#-CaJb+G+wSwG$1rbLurOc+q2s=EheagkwjIK0{Y zCkqC#pKxO!tdhXZmG?s7R=j){ZFrs0uL?K($kP1WD(4Aig~DF7ktxXP&7QgUg5577 z^dLuSN}dFm2CVN~SO$%}*CKPX(HGrOIZBE;SZ&(~vNz|r6uWL(0hP%WrKNi~d@SI| zPH>JZ%QMkFT$8ZgIEzEL*@Pp*QltCrqPUV zPBjQ>Qo<0}C;*bN4bN)nT}G|Q7BoILw7Kzz163S_V7$7)R`i@6nrvVguP0nNu$@W6 zxaDhmHIC={!)P8|R-CTY6i=&1n=I^=La4&4yp)Vh`A9HJyNr;Wz_bc0QQSE0U-Q+# z;C;kKDutHY%ut{w850Z4Kfz8@T$e9=@vD5Zs)o(+=JKqa&=I@~M_=u;QRICM)13Sy z#FKc4{sO2SI={6Cv8T01BG)Uo-ne{z9DbkfLq*z9iD)d^mZd8<2V(DnoPP{QAsEXa zm(BJ17Xr2}6H*n#0E#E)MoE?;p$T!W@ow!i=4M3d9>VP%ysBKX=F|Qg!_?#a_E3y> zU4Sksns?sQm6if8T7>y1P=ymp7D*)WwRrrnCy-U!P+;y`Xf;u;_C)x^xn#5RH4xlY zk77G)kSI)mHK!M6~}GOsnKx0aK1`Wm4%UI(|)dk0~-11hN zPrxwPl5ObuWLyfVo0+eOXQ1dDd3VbO&i4L1Q}~PL>bRdkXy!GA5A*N593)Dk;$Twu zld5F>KE%4)ukNBzF@$~hQMWK!yPuY9Q@3j?*hV6fbGUCh2_E-g%P*a7ccF;`PgGM5 z+Xwn}Fu)@Jaq(w38P%56n_^w*mjo$|sbl!i(j#yZZ0m^i{bd}zXor;qJYOesw4OFO zGb{tj71w}y4Vq%-v0*zlC4)~&;w?>=yGgB1?e0}>RcdpuIh@&E6w6-6xZ92? zHN7<~s=P`dsZ#aUmlvX1L7c54T?IlVtFZH|Io{&%eFUrlXNVHcW_tSRt0?iM>@Q=t zyiL5}&7{+nikCo4Xx;{&UVml$BEL*wA*UZs2T?>XI+OP!w5LlB#uNs!U1}Uo9z6kZs_ns%Ujp@Ync-my9r>HrQBPy$nPiae{&6v- zXQdHX{-2+j!I~NEMbb@Q+OgIcbTlctzb!; zhpv_sy4D^{iTV)`E+npO${72?nQCHV71quYgOz~}cC;#BR+-#t*IJgpz4mZE9`rzy1H=mc2F;D#`(%_DIPxNP-mu0UD(v>TFT2CEm; zN4lJhKfwlzYrSkexhK}_yKl(AJWwMoHyWD?rSe(Q(~+%9#%}qyjsw?!thTU2Cla}1 zv?flp+rvZNpxrSJ5IINSCJS?u?9K8zIHFxY5-os=$#WM`0763)ti)dPl72hs$c=bcUeWik&^2bIHw+yQ4{ew%) z?1G$F%e?xf$OU5oS0OJ&=?MHV>d$+yFaFcoGoS%yI`G#JDwLajI)fCl+N5&i4&?Gby{e zrxXF~H|*(8yJD!Jd3QmzKk)GagdzuV^7lL(E&7LEvl3EHGGtY8bQb4rp}9)mE!6)E zH3fz+?&)72r11aBS##;PF;{mFr#j+GGue|Ei}CF%uxULrxJP^ermF3+s`=_3%xXDZx)8*)KqhY_@rM66VC9R!Z`xr7@%}o^B{dfCkA^r3t8YxMM$@ z`r`H{gRC6(OWL6EtvJ(#_TiohiIRJxAJjje={}73=Tmaei?9jG^rQ%2l+_bG3#1e4 zO{$y5XP6tP`R7L7o=|L0&N&-(zdlo|!|fjLC&iKv_t#+8tG?5k&=i-l{}BQIU3ce8 zQQ}?uRc=^>L4iZRZ)oQivh-j!DwP(2EPMCx5)xvHtuVul8%ik8vdwi;d8*IzOE>ez z6<21YUy#UeBO^d7jp-%$Q;EQ|Z<;7mX%nl}l%QBwt=nI)uO9)h0)6C~z*qzZi}a!p zg;HWN5`9@i@|=F~Ol1NHyg+t&p?R>Fy)#P`YggNgw6L5ILvUg)z0fPeV*aKx z8ymHgT{JRarj5`Wi^K!JHKj4NFw&nHI2#}uN_=CZ53P_9JcV@_=}8mGo4U*8cFykB zpS2d)b}jUtCUZv7opwD}ZMvP!qH7vPoh*~wbqt}QmaF zw5=cpNBcS9P3b}uS5q10M!80FTSD?pbOI&VgP5lU)jp;_YV5ZBG6+@t+(95N$>pD7 zDMN^5-&ZuLv&Lbw#nM$ew;7^=&@IDm-Z^VzvKL=4QAvp>?p3vKN=CeRgm~R2DqE9R zk7Pwip|3F@<*3$DwwnuSvwvW2qw-Chj)pdo1eJFyyY|%l@_>}@*sB;p37s>7(!`E< z%FHexSz|Wh+N0zdHu9RTHMTdk%vB{{wBS3VV!00{>(3-X%?8mT*EBuhpJ{2G3_GPT zSdoZXH8Em`-r@qE2)s`HPMrIZiYY9{gMHnX1N%aLbwp%F-S1C^)QQwgL^BB6-d-Uh6UA)Ek&3*3bZlGYfF`^bs5guH7oAyQ1xGr~cYQu~Hwf!6sexLdJ^ z@l+h~vUeA9LSpH}qw+8XCC5P6S6R%jWO=ml;ti8JP>^ z*$pPVvc>i41cPlnE>+SLm7^7jk;$~xur)J1b(^tQM3k5^eESw{mwwJskRaCN z-d6;ccw|c|wnoUK?&RpE8QQ%ZhM2x|jXQ_aPIU?1F?j1%8iK@yLLRN;Sd$ErghQEL zl6CfE%7Kg(Zkp7J%rpjh#8julJBA%+{b~@Ex}ad6%ETG0W}S%&FT7&X1RVn$BO@Di zN}4iH*b6wzi*x9guC5m=oWb>voD}h#yl7EEGa1MJsD3t+g7f-oxIuaG1w^N4YL(`U z`3e6|+7j`jL;C>{B2p(!ocf=&(LrGM=yP(bmdM~or?xF4vz*it_#R5g)xEf%3cqPm z&egb0M0R0j*2E;hcxq$7>Ucg4xhbR8=J1#0??$u*j^|Awn0bHa?a13u!ekO#ErcQa zIBMPe0N69*E{xMM`SPJ;`&qBQI2KNguZyEl?wpk{S3+joZWCr*QvI_A(VQfyd+cFv zVFs}$KK|Z7R_Vw=DhFD1_baP6gU6uXCUJzvB@m@uDrWnC&yVxY( zZiE|4je(&V+)w%&lig^JtRLGUT~EB13e+QC;i7%2xwk=81vzO;!JmU zdo<3#GNBVB0yWW)Az{ZPftJgf5Yigoi;oU8pNViXk=ey$rH~J`b|C{aju5xyuV>+f@|viUI#lF7O(Yu4*v-#2pwMp^lTUCa zNBVx5&Q8(_wVRCCs*Qm>?-JppD>|BO4TEe70}NL-S*>@SU$|>9kKSQ)#+1?b1dSdH zoC7h8aL|XaS$io;S%(s7>)%!gJf!R~Q)-?YHtxFDi{{E;>*$IM2{^cNh* z8-C&sNC(Sb%Wn*dw=x|Q6C3Man*Yg&`5W|w?$1vCgJyX{bo_VF7a?h3RYAd5=nMbn zf2O|tw$($@{0H$OrK>M*ZK-SZpUQtIE{x2t01e%LAzkR`SpR}?VW4|sbI?M*VMmyl ze{cVL{Z{+$7RFbm$X}1MFu(4<_QXv8HsJr&!oe&h`hD^*OmNh{n`iQ z+x7g>7b6oJF5_!EMuxX>GqExLSM&eX=i`i(pDI^)v1majaO|2nt7 zu_+Anf8(aS0!;qkrqHp_{(tADFtfd4QU2hj(9ynbeik(}H8yd8WMq0h+gn}qbwqy! zr_eL~7jVkk1pgOs%AZ`Jx1s(UoI>|DgYthC-oPnzzga$iR^GrVuQ$?P+PqEt@6Y~~ z9rV9r^BgrODQX@~5`{NO*v#|Vtkk~(Q|6#7meYSycWC-HHA&!#+V~2b!fN<|@JFw@ z%4BYN?6&<%eJK{{f~qRcC|0eSRS2U)hRQ1j3rh-!L;JiqFp&=04~YmMN*Zzi#0J2t z?1YGp4xvKZztTG(2fqc43;=L<_XU6sh5`Vb1E8OveSoNaB!K_bjA?gmTT@Z#1U@c7 z`v|=O8qDUSX*vA*gn%fziD@1%whPk$X55Cp4zTH=9H{&72ynkmrXFy*!%9a*rW}+4 z681xRIh`|j(w83=m~!)846*jr4nU{RLl*1nkJgDK^D|KVki0N>0{}j<)i!q3H-Mjg zsO0A3({XFsVToV7qwi0)Cb6%t2XTYe_Fm-nUN*tm=I0+CPd<=<8^bu4Q}7PFa<%tw z*Rt7vdXo_!8(5#MakDu`w?s4~&R@qo-LD%KG7C?!ANaK6BaAQ^1_D&50)&xZK7;oNn-<()-ui_qW>q zTdnu4*&PaB{P=wsu156>{s)xwwhx^`H!!{$Ow8ljAZN)>La-S--mom)#;^Y;Y+!ns zP5s!}zC6&ee&UMDk&70_1IXKdyU^~9YtU`+;%4%a{$;mrtq0hy>ctYUQb6t5cE;~{lGj5zr^bsQzycng@(Und{Eru2>R^*u?$OzwZCrp0 zc(rXvK8LWLhtHS*l>&mdGL^6an9pusqK{wlHv%yot8E{Lpl_Qn3V7BvqPwJDx}bDV z9_OIMc0SpGaxD5$t-Pq=kv&&Dn`=L-GgAjwk48uAUE*v2j^$Ln?UYf`@T4kkHmo|_D-`}!VhisfU^d)6&*!d> zF;_=8{h$Mv$cOi3@-OxmFRPjx8`7(-l+oZ}0l=N`AGWr@PwlE6UdGya)FryGwoCx+ zYHsy!TYyKnH1HJcUv`y1RLfp^zcNP~egbp%84bnttM9qETo^ov5 zc0@SQGN^pMV4vUkk*nj-O1++KJ5V`!DXma)h5~K01(S_TF)wkNlUJj_AD#Bp0<9ln zbA2XZw017^ll8alT*baYhobO}(B;!kajC$iBnYVT2*G_FwTI*B%`X?S;fm4c7C`27 zd6sSkHW|l$t>0gwSzUvsPz@B}st)9`;`30nA54tOrO&WUbi9#Lt9YG94y}@u=5`Jr6g6XA@YzF_4T+ce@Z?G%SF``wVuPA4{Q+0n}a4N&KB1B z8ZS{@pq^>s03@4C^Qv_sguC5i2F}r(r$MfNhmcs8m#LxpqPk@j5`h|2JDGPS_x0(s zVsRPD4gTjXW_1;5l1b$rfgm{-{}Ks!O~RTA>b1iZd>svuRe4^#B45M6fBsAgy_voj$f+&X}2 z$S^cv%qlFCBf&XrkVvFjr4#Y?O^Ftj#pS4EeL3Q|CZiyBaB(FNQ*KbXZsc?O z&_Qcko+7a>fgQtZY5}2Df@=aJs?^0cBm00ms?^~6F%D)Y_@anAx#9WXu-^6q#v-1x zHO(6LdYl%LypL|JSZCjojPPUw=Qc= zuxxSB0mChCUXn96I_s>l@*(0_*<{*NN6EsX&|043XCcOBFKLF~gMbb{E(6EwP)M9W zEh)96u3ujNvNfINg$@2`bc-y^^J&NA;LD(CX<9))55#qE`Wi^C|GKeWeLzUKk6j&v zuptPhXwvoRXX(&R4g^S&2&x@34!;{iRE^Hg>CjweFGYyJam<-+i7J+68_K)1$(iZE zs8fo>6&=v?^Q15~Bly|ZV5S!eAq)HC}4ADL!4f5zxrzy4lyiLY&@8&7VF zIN24kC#hDfFGTFePLTilA17YJdzu+4UE=5V$~tnSbmMX#8y5}jR58WtTAW-qrz6`` zF^!trua^v7Gfsqj+e=`n7Bv_a0pbC5SB+=c-3EhEbSxMlp##Cf$|s<)e2Eu!lO_NYh%PqY%KI+0J+57)D7p8!?AY&tPl`BFA<9o6U_ zrXxYhf&2Ir_}btKQl2Q~eAE54Ev%j$UxwXeg|$CM+v?mAl@;@2vJ(K>7zst_GdQxD zAD7%DrFf@)!jhwVhe`uq)kj-rvDGhmpl2xwW@1_W6V%}yMXy*Q6ZlOsFlKC}Z)w;p zPJ}BKeN7~_fsGhU=5x0uJRU0=aWi_DNw+V?szFh9+$%|s<5ruY$ z_`*UOv1R9Y7FMZ})UvPr6cp!~wWjxUS~4W{1<&0Jor^M2rs~|X@YBv^ysKbY_mrBv zX1amk?QGB@ZeKq}xZN?qF&M9>^CV1;xYn@v+G}Q8Q`uS7^jk#kQ6SRVQA1eXIaJ)Y z-iXQ{ldu>0J=bhBB*MuI>S{f=(|9H)(u)whNE2yk4+0~`fSCq`SM#SKBaB6Uoyr5x{<~v&b+?nBG02#A};pcjIx2TW0$9wl7%IldMF4me2z7 zRarI6YgKtp7a?oTGPqEi>(^ZivoNS(w-kMkdAy958!Epk)5p01 zKlP+9ZY1+x_u|PIXKZis&|&P?V5{j}kr&Za&Ggc;fnq@{S5Lvd#2Aipb9fr6^K;Xc zckNr^t#Ee6(ADk>O-x@$#Hlmlv9r1bh%_8Rk-A!m|@nrGHwiJ zC9#xp*sQwGEt8L5{ZN_KTxWEu`bcWP#cZI;+I`mS=ZV@f1U=*L9aP>Wm@Grfa`>It z#PC-=4|_qZV-uiTDjVTiDJu%o&T+B=${v$ZbqdKvOlPM7#+S8%@zV^%Z$kxATaQ~V zCqF)>;Ynv+l9Q8JMg|{}r3z2i@tngLn`t>k^t?IrIauPf*Mp3b^RX|S@K7`jYL@%QP#qtB zUlj06xcT5C7t^>2SRnp>Cm=W2p@1(!gL^J6U)E@22j#~`xL1<`BNw(%$mV~DmayDr z8cW^Jdk`dERc7>tadP#88Q^$~ns?smBo(334aEhU-L6mtO`e1gjM6is-65%KfxlpAE}6j;&95bbRad$saz(oi=L)^Okdm zR}GB^PVt-xkASDQ;TjCG$!uotlc@l5aF7|6PvHwvc&(SW);nI?^>1;CeV#%n-f$If zi5;h$+jPs9%Q>=$#R;2@!=F63h3^*abdzMhIaVJnKCcX)Gi5b3U(%r@8~iFP5%IGp zlzOCF&~@xFlG}X7ih3@7e7{7rme}&RnnNP9T3uK&%s>rb($t*wY8!QZ zmVmR5Zs&lymigDYnenqji4D~IZW1z-qV+VHT7!?-qt!~P>D04 zyO!%vj!%RJH*Cg|+Uoe4+tG5Tyn(5m2oO=KnyBSxF8%`(-10sxPVj7&zpzxMK26iW$|pN^*q_2lZn+$Uc$=ME z`|2`<{MQj;ro0RJVIu9;l1sBXeC!MZmN78poxMCq^qwe09A#>_7owp299@Q%lm=!)NI4xRGG@* zeX%}N^%hdhVNNW>+xCqriau1yK{F;(+NPb*4~7S zrb2Ot=M`ZCMAfb-)T5ffXOIghGVZ#nw0n4Kfq<2;r0oZM!>K{iY`lb-%OTS$=8l6L zqQc1KQw z3#j{;6kNtUF`#`gKp*?)Ec*hB%g`C}nJv~D5fIvbWtPDdD|<54L9~eVB4>167_-GS z-o>Bx$XM?qE}duw+0sy0V~pj@b-V&HNv2hFYvgSt!!zW>=~WYVMl|@@TIpLOZs*Be zgrSWxoFqI-oGb3M+kIKf)X*nG*S&P^&RaKQJ|e-?8gG^buSc%&rP%}eukGaG2vY;6+|9|%%u z0T5y~G3n(L0tdymUYkGrS^{_W!S6@HE3_7MLh6>#;!fSel_a8? zh^#-Ks#yJ!{WwPEvlyeKWn`(NHPJ-Pv6hz7=?dmvQsH`#k!*977#XjiYt8IFKBV|| zb4);@#MwyoNcG9$0UFLQ;}wCqe^&}wOV1spQyId#5D1l<03C)}h?fo1E6c<=X*^sK zO$1Z=UJg>&{7xTN$*3BFU4tIQLA9S;^jN7OSM326>q`*l);ru`wgcB%|=^$WH zuxWLSZOg~WbX1KRGP0^ZwGys3yVuz8rl(alORMO(7Am^&hN0oIKxu5O`rPYhpSlxc zD`wPb&u|4Mr>D_Pq@2s^eJxyI4NSl#6M)SN18S#TtA7BsW5zJQQfCKxHD{bak?U2b zx){4uBO~!WjK5%CC{DX%d0NKGO>Ln?D3L8#4(=$-K*A0ag zF@?p4b2eqMPgH2LR-M-$!1Hh>%$kcnkd+Q9RyR)>J82ibIsx{~0p0lo#-#1K^P3Td zd*h(f_2m|Sj;=0soQF{Q`Bx7y8m)j2m(mowGdu>2dtqrG5hbyjjc|UZ6UomK2w5n- z6l&T-!XjOo$ zL$c&{UF#TcdZ@fzzzoH7sI&P3Ff}9nMbNbGTg?5cj2bVnWhxLydYL(8PawQ$@&flr z&zxURU_p14DB| z;-n~ud^r>1QJPc2yQIXBiQJOJT2jHrb5OU<#zA+SjVb>n>&ycbGJHch{JR+{EU^ly z|4cTw%UU$&!=U8aNgw!t0hHn}!?_ZTNC%3@L~mI&3Wn(X65dlyxze(EOygQAqjokt z-yJ5r<(0Bpv}K3z599+0+z7N+v20AcHhj{KRk`7IUk&4$n&Os&$%nNXxCPa2sOcVg zHprLA!k;{X85CEF#2Gh&TNFRLe~nrY&87SBObPW*bp`VtdQ4#&o8JTzBbIEmF zd*-#CT;#;Q+HW5x_E)_8e7#>CGkAkbLklF>W#_|{!qH?$wl~onW)d6MpAZk&PM%u} zCs(R-@^>cYWN%{Z;`{e%>LkTjjztUC>DwF@u(iev`W%_tVzT6`>PKiE7mrxDnod&h zCW3sifkRV?Ge2EX?U8Abwulya(>0mqc5sdD<1&u`f9Wz%s-?OkNB`=(TBr#O%&$;q z62wvVL;qH36`Z^G3DZARE9sM=5An+;qg#srsdIXgcD{|{HTZ3k_Bbc~&B5r$`az}3 zdTgc?z&t+mRU#9uWqYsK626FhVy579nbD>)onF>{!$Nac^#|v2eiP-gT3^UEFF7#= z;gOb^bKAAH#Z-{Bv9Ilt>awD1j_L;Hd?e=?))@{U`|%mZ#-mhDu>1wp^5+A$tZA!? z#*7xoR1-28>AfW;(*eTZ*yorn+};e`W`sE-f^BfiQ5j>k2*cYq3T_+uG3Qo;04O!1`z0RXwfZLR>&yi|Kg2aLm z+~)8Tsa!6|wec1bZ#;>FV~vdr`q5KCV}M-C(Z)(@M8djqL3h{wmV>m|p>y;FX~=ey%skx_aaQEw`smL~OQS{v>ijR26wGv~T&tFGPVr%$f^BVNfhQVEa zGT;u9h$)01*-N{aT%2U;Mwv5oW-N>s@Y z*S)?&o&jzHldP1R$fp*+co#EahM9C(~AqJf{$T^Gan;sJ3Y^$8qZbWj>2|G9nXdWKHx50 zlmQ;JKw)1Bf$zD=(O0^b zjagR$WU#_Bo{CTJXQ!@3@b_wgP}Q^voE#u9=&-o5Z5qQLGwd05Fbe3SbCQi&UrTlE z^Wjcx&ofqP1rzU(eB2cMvCZIP@0OZO*+yK_6T?G(Jx#35wKQFS^&e^0x|8;WRW)wU z;_90h;kZ($<|=Iwz-yvh(b7o+X@YlH?HZPO64EaWg0jTwF59-R!OK1MnvgpZ!I}Qv zlIE-8IvLY{ysjeD@oh3kI(PWG3q(DKBMzTyq%LEw_fbCTs`biYOj{8pW(<}jrCzRj z_SEm7W{r5TS(7XhI<8RT;>(pVS?Eh>78%!tx%0m9hrxzYz3M}0M6wB!QCc-~VIq4^ z0HACQ1ZJp^$jr+px+3(%5BV}3N$!t^Mq<&2eDLrQj$*se53*J1LtDK1hMtD$1@)RY zJ_dL_(a{cG4UTbQrv1@?30gEOlry4xv+ho$I-`)lb4P zq6ZYUvjZjHYmjTgXwS&jQ3XN!$ix&Kjmo(gTFT@LQCxy@K%$#fS2Ku-zBH8HU(4Jt zHWu|dz|B*7g=-G>3OW}U=o7n$p%+>(k$rUFph9On$mw8#GM@?$oQV^DR9b{ zV3?>wy)MAZU3^Z}xi$6efSY^C(^KmDCa%tI z9wx@xV}_SqX9~Ty<8-3cG=1^7$@;=&k4HSq^I2w|1_Esn2B1u9hlQk-b%Iu7d2KcK z@^-j`ji^{mXN=&a$XJ*JY${!lDewAcG#Xa^sPbj%*^N5-)T3=s&(RX&lNyCMwOds4 zTel+pLX3n!ZoZO5z*aSMj2IPus&Hwy`gK$3U9Y`s{&7RBUKw}hM0s3)5C2_7YOOrc$#5JeR&K_@ zSQK}69xF>jbNF^(Wh?AT;ZOgdmd%3?F2>6$)V~h-0#?20{rbBS)nvR|KD(91vAgjx zCA9#F%vHC#mLBy`h^Xjd%S;a?|1)Dzex&zi}96xUUJ>?weRyR;IC@Xu&kh%fs-M z(|2A#9E?pjUEp<~1+2kxPR`*62~Yj8`vAZ~K$uHeKp?(B1VSUD40%)4nOnQe-lF~G zxLyWeEz2`Ar4)HbK-Y}`riZ8@l+*=s7hF%E*2;Y+b=aP?r4LGzopjIyOq@lY$dk-! zai5CF7W!NpCjESA?wN4$Q!bM9g&XU%rHN8NBXU3fIN+6`@{?vrpic{w0b!JzW*+r; z&V4zM*72}hVYNxaVmFwia6AV4qz885CJ%5bG>cCDg z9IPwHf}**rTFGiEH7z8OxK+tv8&;7=z#8qa?BX|}5i{2^%g4i(8(dOV{A`H)xSwl+ zwa&}Iz}nA}qaJgO)Z=TkU$1SGz@;V+Z(f^YGe72EC#H}=-Ms8~nY(hMyzra@r>yyq zIu2?sR-sxN;l@2QkO0wUvV}D~?a9(aIu5 z!x1m-ecA{el8k39R4AWeyH&$4==9Z?_t4n&rR7IU3KE-ktm?o=@Yon&DP#=ifv;Gt zfM=uRjj@Rep|0rLs%-a~wL2aNt{wuFL;F|&1ReUHIO4bcXpEyYWDEofEO@`atiu(f zGCgt{;x^?vhjj%i%Kvgeso77+LVfr0Vv&YKvA*D*4NunbSCuqe4YGz0;oa6@-M(K;WoW@#w(t}Mv0Yq#O19T8@y zZ?R27_phlX3|!f5RUFpK@h7-&M}O5c3;Stb>4w>RC9o=f?tknSgD6_wk0jHlyT*c# zdeEO}%tRwtc(fTNCku6O>UWh?CZ{rfXdMy%UZ_hG&iu(+*L|DIulunufhLp%f)ZkQ zQFFwF?uIO4K?ySc+j0*_$vx_I#_mO*=c8dxZ(Lre3ln{)!7{xJ{Pr&ft#4;{0K%T9 zcOjBDx$bcKZq>z~8McOw)GuZp8LccqDPYb8#SbJ>y&jikGUKO#eUEL9Q<2cRmdd41 z%+kYG{U-GbFsTh8Sp~@iT5juQ6i3$XP zQU82EWYe)T%_jG}CGXOgH>yy)xWQ2_XL=RBcE7R5z4F_Mb8q85S3YGnu=7;_3RRXY z54;r21@&!FX`t%^#dJ1g0voD!Wy-e+$H0=w+4V{h@@>6NVuYPazXFj4%~THZyOtinU)8``(GQ*y~U0`T-O{@f9=^RF0A~1a9?{bs-(#l zJ{wdD7BvRRaL_Mf*j*pLTdMm-W4;rp8w&#^G;U5}T?WcZUdM#qo2aSmVphDKrQU8= zk-0s2Xk`rrZVySYgRUd54kQDjzP-}JL{HXxVFrFPx|-9~wE*5%RcH>|&`6f)((=2F zW$j(j`dmFy9^B5+HsnZ$KUbFmK1rnTV`vWl4obp2T<>}TV2m@5&PQs&`wA`_MAs`K z<-;E?S5u7+-)ALUmM+%V`#f}VfzObzN?{SbiFLw1LT@x`t=l14 zbD+5cHgIDEP9QSL(BkX#n?yH?qI`26JityfUUAZOnd3+~BA1~S(wgT8HeY=5oH!n^ zfGoKs4|9x(oXjf#eWzUotq!%aMxS%3hkjkpv4BUdJcgLSuc=AN3V*KhySdl84JeQ0 zzGr9mg>+mL^%@3C{C?98j=K1rU(5*MH5mXTPNHuQC&eQkBPAWRXEv#OxF6yMUJTs3 zt($eIwyrR*xpI;|^3=2?-4<=NS&dgRYx0!IFRd9 zJ38B^AfVkU0KuRo$27-0<>A=5jJTv!YEx2lHy}s0k$xXS3)xJdI0wH|H3?LADRt*3 zosoZDA`yGz&_Rry0F-575aK!JVac_Wa0x47YkX=1<1~umc!UDuNwfiIF1@P^=ts&~ z+?})6CotEPnO%jUKJXCkzE2u!ovB3x-B86clDH*}YUeH7u&}JGUXW<4FuHX3OLjPO zGm6c~5v_~EB#hC4*5=q@UP<`)eG zyU8rUq$-{IREcsJ-G(16EQ?xDR%iTT9tQ}D|2D#0A<0rYBqP&50D{2&GOVX5d^4>1 zh($Hp+DRima`ZL*Zt0Y4;c`)@86Ip}z3}_oKojr*L{yEmj{Fl4q$L}^hU55|9noa9 zL#a+?l)Fo^IEh;DcO$W|PlhJo&d-MGV&=f>yI8{9mO_s;;(qJxOU5w8Ohd=tspLgoe=>Gf-7qVO({tGp2=P3r-2}X^KIYeF&n0(KP;eucqtggB4!b*L?a({2s@UGuIms(;|_M zi)$r>N6!1&=@j8L5jxfra4TW_<9)%zlC%S`jUiwMm(D&IaYLeEmlID%s|xL3tNVzTTLZu}oyy3ti5aTdEhJBI+-`az>emPGI1-R+tfeIvZqg{7!eVvOg-Zdg z(iAE~>m&(TIX~igu@S@2!SIJZ2BBPVV}C$hf8zf-`1xdW*2uEs>N^mEX}fN|!{(sY z#;fMmeH1Mi{gXEydu0oypp(VpK!YBNo1Yn*$wIeGJY!`|r@mySm1r9Z{CS-81lHG3 z*|VTSRaMc{kcl2qPgBATC^s2*Ywf{L1MHre0Y95;$oRz5zkd|d=ms4-SCK8iZ9+rp za*^7E!Sk!Zuf$NBb=}kK)k&`eA%vfHnAL^;;j(gVxu!tV%YJsi(l06m4K?*u4mrma zp-sH6R3JQ>lWxp&WWC6M#Nj8Cq5o;6OH)UR;EyNt@@FD>z7LdpvMKr?*)?b-0>x)bpvPJ^t3h!M^nF;-pz4|h_}ke{~QE83E$@oY(8XB4DLxYua7q_w`7SbtLC$#}wM@_@`P zYwkz$aojquN6k?VXtU41NncPi$7V)o6!^6Azz>IIe1IN7?vVk}Yl8}PN8SAFUIW9S zy`rVPIyk-`nkqRk^i6qvmxwYxd#)vJBaK>~Ghu7Bs%T)g#civ#O(&Cm9lfFfxGkZq znQD+4Sf+b?j>-yru7d%?#%!bc=Lx|g%EO|*oJMd|@I1Sm;4&#vN@gb z798mPoy`yDWoP%I$<|%V&4-Zgaf#7>`!G#V7=!{;756*5Uqiz}6oN?hnO7Z%zpIbG z=v^jANZY`-1&c$sI@WoI8df0WUCBhxR)5L2TJ-EZ{D-^GU)P?cTSe2q>rQ(A`^<`IjoAeQS)*q{uQw*tYk!@6{7k2 z>3IohD@C>>*7~D*7k82BPjaowa-XB>wlEPiZ>faF(w<3W7D{s^IQ)!p+$$o;69$#8 zxq(RqcoMq_wO6sD^KhTdnyA?>ORgud*`4pwuYG+^O!ej z%YxsL;wQdFJ!yg%f>})s@y+dNMw*vVJOq@cuVR zpjXT9zmq`p^sh0Le+!)%SYKl!taQJVK=drHff0IU+_yC?E+gANzuw03w*1lR&%M{Y z3H41c7A7?}P@7t!Lfvc1Km{#=+|b3H7-6~45un&RJf-#-uixqiKX z*J*r<|1jbHxu$>3*1TQV+x{OHz(mLLdyAEh`HxorI{H@sV{pvB2l)1mx7yoD-_~!h zKhN|(TK{W+|D*T(^O^pC>*;lDkZ)e^zudNeCfojg$Nh6O>c8A;|CEgSzr!f~J5u-e zVAS7IcK-=R{mmBrI~eu$Y5zMa^*b2#J52XyRO)vy>UZwye;^t(~|-6;KTlzul#zZ<3BjneN%>35^_yHWbx zDE)4fem6?L8>Qck((gv;ccb*XQTp8|{ce^t(~|-6;KTlzul#zZ<3BjneN%>35^_yHWbxDE)4fem6?L8>Qck z((gv;ccb*XQTp8|{ceEC3U|8tJaUyahNuWI9eV`TmfgZVep$Se(Vj$nzvM|&Cs|^c1-EYFn8^PuGk=LVt zzVq+&lm7*8=bz~(|8LG6XEHsIPmr?D9$|64|ku21PwG#j$cIvT@#8-E-N?{Y?k^ zg2=<-I^j*yCf3+RB-_rgV~1!#=>WAZ1WQnVr*7$?2Bro-02z{$A+;3%3OETfK~6ja z$RT7vS8hisEFM5&7B0%G>IS`i1mfog!p1t{#(Jj_h-e2^OIr3Ub18rk+1E9(M*s-$ zV1{X+Pr!w*j%ZxyV02_1cOT+qAV}M*4S-h(1~6}1rVXGEE;X#Nb1)G&GYU#OyxBS= zZO~@{-TC&lNJJfF8-SNJT?v*xZ>k1?G)>rifZ-2ulmPxh60H9Zd-oJ1>9)6vzRa#J z+qP}nwrzD;UAFD2F59+k+je!Cr+coLYwh{%@9eYBzB&=7+CY9NT`u=kC?)>6bgI;}q7dJIUe$KheH!$CeY@PT z6|u@-oJZ6f9_bkw2^150dp}FR@d+8}rrJ)DLo=XqeFo4oHLXTvG2nsghrZqc;?qxp zlLhEU+(8=#^lu|T0tgvw2UF|Gtnsm>z@-HsyWzZJy#f3l=M#bpknkc11dwxwivR*( z{DJQ+10eSRYY+I{!6yV0AmLMx7LYHHH$YDHMG(U2;P>MB*J9!K;x!lq?pGx=L~i9x zFx+X*uhG(*AQwQ+BCdez%!eQZEr$=p&aYZ%{PyE_`~cK$q z!ew-zx?r`IkCK4n3Ei14+Xx?ZJ}I_ocze@s>dz6O2-s=R-H)rd5StdfpkKk$Hv|?f zt89WFuG_+9t?u2QBisD#9jyJ&SKXiOWZtkX`9$k;!Pql!&Nf2SG&C|c0KBwEXP>E0 zQ?8b+e)>szrei)pU9jPS>5RL`+Mlg0a7Wj=R-nQeS`ht+2EN>nFgEyDM(L|)3cIB7 zyeeUny8?+iNKEtaTG=$?HC;q+Mx!m}O3(t10%%fZ(A0!t>`J8o8X7m1a!e9W-VZY% zU{eU*gTy9o*}0)^Mm4rZez(L&im;u6Do+ns7eR)IYcpJZ&$S-l?uoZFs6IFY`XCx3 z<4tXfyqupqiR>9nl0g$lR(lyL2Sy>2lMd_K_r6$MxIC&)f#YO*8OPpHKTPd=FF9>m z^^BsRPMdbKgB+AcM8}EWw*#-ty*iIpS@&iLyFjASTrLv29XH%83N0H}l2<_2+5G48 z&s^_}A*+*~Z`-_O*>9K@ugH-y$J+6eH?Ztdbn=-x`t*)xFUEGJW?cOUs#WQD}G^2;$O)9SFw18?cXRR)ktFSk-g)rd;RWElu(J)Mn&mR157 zi!zDu1DoZl1R~whISP+5iDG#=eSYk zR#UTZSs&LyhEKu7d#=RV^p3DD8}F@B;!xrWKhGHh^$;W6<;QweC_%F;XLo~!#9UeT z(HHYtgIy)DgClI6L9$j2M{ffb+#TAz|rn(`CCF_KRYt# zgq>8ABU>nelP=q`^@?&p@~NkWMM+JrJwd|UiKYxIG^-}q?koovDp`02?^l(X`YA&B zwp_-+l;{U8zuc~(x2}XwA>Qo|pn}7*7h9`5+RgeDabyaVBp(`&2xiyha;qUz+#wp? z(k}7H*NAUXz?4T|DHFx3C~cA48QEWr(GGPIsFFl^L10AnCP044(+{Cd%Obei`1$jr zw(LC!Uu$xj{1X9adHO?`mP!aWwil+YLN)iqx!?_CW3jI>o^3LPS=n0ADr`)&%x6v! z>XQ8VTflqRx1mv%a_`*Z;0wW_^V%)@_gxqDSe*3c<~eYdF7o;f%CsJqdt98rb{t*D z5L(q=J=L9)G{Ymqb~+5ioqD$#M<48G^gM*(jW5cU->EA^nYHn{3u-N`GP@>?_+K0G zAFC0_8{_d|TQ+Q%v@Y>&^RM-16HJ>ohP3dASypll1qu&zEWI=Vwv%>fd1JtGQ-P9v zXl&))3rk`4;uymM?<=Rd>*zQxyAWX{+RM%7dw;%8UW`mA^Kfp@#rkKNdZnl&0?9xk zvZsSoqU?U*e13E(!>9)*NrJd|sy8CL;qiZR3dPxhAZ<{*)-?jp6sCZM@*t(oPcf8!Z1^x+vuKG9eYLXb7An7VC|eDpZe-F2i$ca}S| zZR5MVy05`_Xe-CQ@f9MC9mpQ3;2d(vq0+&WAyG%H#!jsxA#Iy@zvZ;W z@>rX?4hG5HhS1uTxt9Fri};>tnssr=RvTg6*d~TzU42xR!Sqz`t9ks3zDO*OO5F1X zc3#u*`z-;Ox^sc=>YVLn91(8j>h6GAF#&L%cR4i{S8jU}$GB7;89oj*5)pOYCF+iJ z)Xd;c!yI(=uEYL;(>ApiC2x~sZj(reH*X>uyOLfW%PlSy-Yt?W<(uDG4p(Gkw zft2`3{-wcaZ8fH)ENs!3aP4WsSCYVkIk{^%n4Hw5v@O&_s3G3mVXQOoAL*m~8pyJ$ zn~r17W85<>9-flwIg@d2tK7!p6uGk83i{m5{MV}~Tw^`$SQc1;hN6kQ_#_L_wZ;KI zFFBo=^5d0;)IN7g1!MTNc|*MF?R#gLibwKn5orU;l}b=8yXNidUHOJY`CY<-WIa6 z&JdeUG24}VWq1Na^hi;aFb~YXD-Ja^=KAcwk}+l28}l?e%v*o@7#aoxlhVutGZPsr zC$frTEtJ_lf}?T=!sPmPhq`}^&oEcppl(TS^_I=J#2i<{p5ZJPk+sY%`#Pc?c?PkP z5zIWp?t(gE@t7`GwX{*!w51lQJwi&nB5_^34XCORE0}7RHKv=OrA&-WDY3iDaVyIE z{uQr^N*b%MEQ_6+Wx6UvF1Yup5m%WlRqM4tdhkoyeXeecBq`Ctrx1+meS-5MOQ0TM zbam3lNE-zGBxLH2fq}nxTxn1MyeLhogk|mhW!OYqTOqfe;Bm`kwZUEf{0$XeycPo@Y~8v z#wQwS^($F#Fii=t!AB7#zB{f3!&L}R99rTDTh*ltId-V6Y@VH3m)9iC3hw$G*`-+s zks~K3QliLB$bt=vu3SQ@pWMH~tVwK9UY-s4FAWiEk3-l!^#$N#4hfw}pgf|EV)F4; z9pVK0Du?HUh^l~iU|aUi>uEU!xasSZvYuSc$`9hD9}xCx6Z&=-ytK~hu3tMAzx`=A8 zQb7bBbb2w4aWQ$@5p=!_qa3st9f=d)zQH4V;snImUiz2q!B%ne&Py?|yH8U$Tp+fv z4CO!k@Y<>qhb?YO@dFScK)<(Ka(w8*$S5%~UW*!!VBE*VukpQ>pec)cK;@tD{Hm+O zu9a4rV}LwL8(4WGh~YzBaMf2Ka8nCLQJ8Zi-yRT+uXXbD-|q-pIbW z7O8VNZx>5%1`qPC;Lzp8M0}MT2jX_BE^)<-7;%ACzS8GyVdO)nG;JqF;8;_ChctFp zA#d2qLHR1(_L4l-Y|gmRRx&Yqquip*-xoJ@hdVt)g%-!SffxSVdZ-4vgz7M$+j?qA zK2llg6E<(F6bY8is)o2{d1Y+#)mnN{#F-CqbX2vG!mjPGPpoIT_lzAIWvSWxnPlq# z{f3?jm!-(IA*4)=W+5%GHa0}Q2rJ+=P`o-~8o7~b*_ZI!ExzMZCU9f!Xdt9uIm8ZjwR{pT zXI$06ZPDr2<8oeJW|Rjm3*rrEH1nFbL%B)%9zIf@$PFbM)+(LSSZnY3%%9|aJn$9s!TiSI@+UO{NR6n+B2s$>XbHn$$-N0}I9K+Ptk0B9ea43Dn-_D5yzp+9*4LYXXc~7_LCB(t7Zs5zMFGi2 zv~<;@{k*R!m_w)ROk3`3;kBS#Oz%MRV3s3+IC*LS2lhnN*|Iq%`aQLzHa>|a^CV>_ zSAq(;f(7!38{lj#3125R2ku*2O%e$dY{?nb>81=ohmtV+!>Yyn#7^km0?;@{+~)R^ zG$#4_8JnWDbZU`Ph0>S?ajloE@~C_6gyRAv>XDXK48`BW*fO)^aV3AaiLOU%!;+K` z8gh}@wmt-B%TuShMu$Zqv)rF0U6el|4M$&Tv$#4Xe6*h5lPo-}H4QE;F3FdP7abtp z^lZppM7pxT*O@+vZwg{M= zoF8hWf22C{Dat;+hIJ6k&uTO?GBAS6|t)vLx#Lz?sjTS-{rV@k9Pc(33 z*Bd=_%PCoD@Jl(7pL+4t?GR>!<5#)!^wc#6wygEgGV#w+(@^o;>dq{r64M-pSQp%t z8}fQuOv9gX)#msLbnV>9_YOWqD||qh?L+vnd!aVUq_Xg-I0KlQWh}F%5BGjjg8gh? zUXbFFu}gBE9V4WZABXa@#+d>`nXYVRGtW$?hhGwdWi*1l&I?SZ#zr_qH(+6e%NeW= zu+xm0te20l4ikKjZA;5sjR@I_-VTA2H{!4B8_X^W&q8E)NBa!8grLl!pJ2~u)pZfz z>pu8Ap!g)nJZ|WXT6PBfCplGUtw#6HA~SHyoLsTbT}m|a^q=Hd_qT~*zx913erXMS z?lx%0`lyJi$T(n_zU4Uc?4O&hwBY#(Qj#+an`cC8eg~0F!^I&Uv0qx}wpiQA3mART z?4d>vS5;+nNjRXa;S0eP>rBt-+p|KX-u3CgYApUZ>|&w=xfu~DAh9gucGg#g^I-E} zVcKUtcX|A?t}NoY0C?~<@lGh_K!u`}_pA7J;#-Bt+=ewtF^?xd9%RHzJ0;8_R&5+@ z*nw+PPNxq)P?DGkMseA-+`{V}+jjSXD1^~1hk6Bk44 zyS#F##H!7T46L#{PY2O(DE4VnN!;*tWjB+$uUWNF3;Le6` zpj2gdul>>}3T-S%nh-|p zYV$^n^sDuP+zT$FN%k|FT#6)^k>e)(3}A6>D3-ZIK#3W1e^u=wXN0cxo4oXKK(PUh zOPLXj3bw7)4lN3&D6*AYx)*yqa2_1`ISv8txP|}Z3CcsbUP3r9{c1EP;&k=BD3=zI zD!w|4@;v1FI9{=zqA6(rHYXGeK|$-LT5P$Bdz2eVjbks{yrDm=%#i=|C#&D6^)ZkO zD)D(tDVeq3H{>R1UAJ3idye&@MxH3YHYSvkqlCE!ZohRLcJl8gp zE8{$D=BKh+*{w@0U$z=$Io}0z$cj(3^bk`C;z>!=N5}P>yW)(injfa_O+*u2C1j_! zZw#bstOUQbzt34mx2*(dGH53pbzf-@Y1d#GL9(c z9YvVA>hYb`&a;aHJi%?UuN7L(ne zXD2yc8A-ykNub%%fo69;M-mv9+hayNgd3#}z>o)WwQzd7F{Z>sIXs`$qXNVfoI958 zQhk5-Iz|9WYFfW@Nx0Ft14^@aBew24ox;gWf~jr?b91A;VOq~k2D^SmmGHLf7O5(& z20rWTo?6hAF+sF~w8=$H0;q#)mH@Fo*54B)xoIv8)=_AS)(hf%vp0bZx z4S}6#|0{^no^KFzcqd{oo(~AD?D@K`M5j-j=@MH~E1K*rsCJQz9d9GJ2I@1U&e@pP zyT=D~L@9s-GW_(4*Hn$bjN*oI#(IV*j3Ub4&+~Ek^wR9^wO96NbbMi+z&%Iz6LU!| zO>2a<0H#?9vWv%y1w-`A5mz>2&gue{D9eoPN5p(x1jWb|p{9OhA9g)(E^kH;Wr6Ci zyi~f1A`}|Ci{NR$j?ikh{Gj4Wi`MfzWb_1p@y7$)}r)jQdgaxXzTO zjt9{&WmIVjCmlZ{X}bcUK&*l-J@hE7U2xJ+Xpo;EnA`rgf=A)~1azQPLvyJW?I->$ zn(>PC`p_8<0(RtTxA>6PXfG&{!flc`bYYk5g^fX^O}1w5?CSWXWz~1i zf0mL0(SY615gJqK3!3gUR>$Snc!0Gerg|bFyY$8Q4W1|8A~wR#kCC_j_t-Cm{4 zb?z4{`0{jSN5>!L;#9&)NOs7X?q8!pU4O8y4d6vTp?w|#?|IxV-nbCmXIL70Knl@q z{XhlILBzk)sMV_xHkUOoKXy7uq^x-)*H*LcvqulLHR+tCRod$J^x1If@7`1IQgNg* z;~kuGvS9(R6bz&{A5ZZE#o6>fAVlUOs6S|1rG|~s9 zfx_63gd6-sjtPYxvd|+_kc}`pxnUJQM)}8%%8E;-fBS8}T)NhbN>sC7ODjg{iG_~I z2{sr2XB3K)D9~{BT2`KA2q{C=4e!KD0%m1F2&M=3m&zMqa7kXCOqh87ngA!09l;-K zBo$3$B0-OrgeV}Rk^&ib1&F`eSE5fPq;XxtE`rVS1U2NJf=? z_bwX{p1j+nN4J&3zP^X7AJRHg;6z|wHL_Ol>piF9q>z!}t2Mq{xLpf>?;{&)p-SFd zx?%NJTkY;tLaNo~^XeHrs9c6-S)F9!wE4u&chjQ{oi4a39n}k5E7^=8N6TKrgJFm993eD6s4nWEP>{{n2#N!&8tlPr zg;BI9BTUg(KJ-!bMOeWr`l)Mx3UsuRgRxNz0*sbvoRQTnr1R3u)}?LTP3$!%3!SN!kVye<$D+;_9q`V!e@69{uSe@*At01 z7J8qy!?YXIkzurg7fF#Jr^6xm*ws6!%&Z5L8OMA~2CYU@*f4H@k8dDI8PV96y6oKA z3i%iP#0`(SZNFMO-9rJ7cMX#AQ=fT=P9jlrZ{e)rotA)HdO@SfUbdHfPUHCLxDz)r z6>5@RV5Se;&VdhH1)FLfNJ;||oQZX~TKJ2_cpxNr+1%c!%5gtTG1K!8&>=rWSRsx9 z`)Fv+p;{X%9Q^gP3U@S<6vp=09ErVla$=IhJ-FnDO~az~$FS20RXb=2sw57TYTwXQ z)^+eqQrPScW&_;!Nml`5P1Y_@FZAV6Yod<>LO3_1dkOjNM3hVpF@Z*y>nAG67IQM8 zZg(yT_Jf=!%cCF~8$y;FR_Awu%N1Ypk$a}3>G5uoJm%MR(sOB2EwD0cc(v6qDYJ?l zjNTG8j&XhZIiRq>Vy7a_hMi2r(vHBZjx{WZ_wMKg4(3Ppwp%ea&@+R0=s`NSVDPex z85C_R%9KUBAx#~3F>5L^v)1%BUX>u0{5nw3E8oG`ctew;76z>AE-WJ?eB$M=*zKN^ zb2E1*TmXc~RpSLG&h8rxKt3Y58kD9{JCffO3bUZz38#Z!5s_@I$)1OD)r)$cCN1gR z8$wj|g- z#)29I?(&+$@FG+XlnkqhCnQ>TB8tfs#U=pW)G2ypcp@#ifP~_{ioXDgb`pYag|8gH zi}oR0Ooq($G<6&p1dRCVv=;CQSZ@tcys@wjq76djYZ81Nr9SL@0U`QuV^zZY`h}l= zuO^f46S2&Ay<09#d z09N)-GxnrFLYG!@?vM}{LOxQ{Yh{iE{@JMt!(&i$S z;jvdNkwm&5z>k9a0g=x#{3$e^YO?mpZHC^$@NK{Pr%0;Wh^yzGZyZ5vEy%}#xh&37 zp2u3`oY(?1l7|)bS{^6s7Vv&c)~GR!h&sY!i^ouyK(vnJE|o;dci_gUmhoN6AD33U z+DT$ijY;W7EDaqdoz~HuEop&_hA!NYDmqvB%bA$jjTTXzf*T)|4}iR6HHYR(5PM;J zyR;XKD8!Yy-;2SqP^}Pv54chKY6upzGc8$iT!3h% zMfi>NL%rR-lj{J7kGu+=ed9teQC{u?#zcu?tITmJ2|L0Q&3LE!Vm@=S7B$gcdW}m| z;b;@I6Lno0kNc~zeu4-Rcuf*G5uD$n&W68z7#URFULSQ>q(QG_&u53oKCIeI#u~^w zKllaa3i!vL*$WH0D9xwi!x-%|7Uw%4r$^BoQ3?i1*D7jG#3>L1x`Eu35o;?=e#rq z$M?>O#+5?)A(0+dF2@s#%t#Y-nVENS8cS`V#~i{E_^iVVdskop)yPdINWH%j15=CH zDOzxhJaj>c(>=okmJnt?FZtDR9xT0#!eY%(-doI66>hj*B==rmkMTHu^3$DX97G^d z_p!7KgNkD^dRKS)pjBL^gBIWQX9Ch2*@H}0@x*G zI)M>ulGr)LFCsw1xaB01XH2{)nN*Eg{P999*q~lKRM%JL8hxVzUb$!L{4g=P?>MX( z+I-Ap4N60eWg;|3#RBt9qR-+gNk9pBkSD1fCfaHp^lDDK7b8-SW9o1drBqszddQ<3 zvHj~5mscNmYI*;U61;_k*>@NajUIV|4QF!*l+~EoH@!a60?bwJattqFj0|4}PnJim_@|OZzEUX!N^A2K;MVf1 zAT?N(?@*Yz3S7#2AO$!(Ts7DqB)+`LGAmvtLJw>3Exjau z9@aPWs^t`e3k=N~$X|{uGvlEw#*5oe+wup^{d~k?rR~F<(JZmokyZKj{Y|-3`B$Of}$0+F|;)@w=w-qbp97rTmK+ZzaIP_5~*Jx>aTXJzj+iL-rqRtZ}RjDM*W4Y z{zn$|FGlrWFx1~9?Vm^Te}kd^%VGR~7eoE4&*>i+>i6jPC*t=D{SSuvN6ph;80xQ@ zr@y!Su7YCxeWw5BQNOF882_?X|IbxW7k@C+9}M*eL;b-}e=yV^4D|;?{lQRwFw`Fm z^#?=!!BBrN)E^A>2SfeAP=7Gg9}M*eL;b-}e=yV^4D|;?{lQRwFw`Fm^#?=!!BBrN z)E^A>2SfeAP=7Gg|KBmx-w{y%1w;KtD*rQv`b(<(9{&?V{l!)OCk#dR|2{8DR!mev z{&!xKfZBhX7sdEjw9x+%hNAzKf%P8^#Yq1%#9?P$+Bj$hIz`vjP_YJW#{(dul z-Ns+f#l-ykJz)AZ`@R34sOqnC_}dyOx!D>2E2-(fM^*pzQ2$$0#q@W=6zea<#YV3U zMJxVI-^$#O-^TP;`qQr@sQ;aSDHir$2~xkaq*U3%KM{uMk0#l-yYj439@e`HKC zGyNlD>Q}tgf6bWsYxMU^{Wq)nD|_qTWa>AoV*CyA{yq7NRsALB{)Se6v8un+*8c{p zYEf3wzL+JBXp^*C=Cj*q261s&g0Wi9+@|T#_G@dC#1pgg6TF7g@&^%!*>sc5-uFD} zI!^yA743tmE6plZuUk|Mr$>P)C* z{a38iIDZrXaZDTYGGJUEmJ#f<9YYgf+iNvY|M>;rX_ss>;Czpbo~mp$C?ymeM0GX2 z3wVleg%y_kvNvO#WBoUv>yI(3ot-z^WYXmY7y&3gSo{%y?{f8a4)u?KYTv2lmlHDa z8oJ>~K7C?duJ&hf9v(*Vg11gSV>&ROa5Wx zmX(wmhzFEYKOVV0;YE>+_Kqu0_TES@u8w`^gkHB!-v?u2TUK3xzbvb-toX*f#BBL| z8sF&-kc-SYc#p~LmVT!R8xVNrK)0#vgG&|{Y6#dGEZ0T6`p zcF&F=A3U%YilG+sl z+)eU|Y7ex$|3N?lkp89%Qd0SZ%3n(PE*x_@>I0wOI*Qv5UQ+q;YgYDqcKUlZ_Bhq_N|z*<3#57W`l2qcGs6{=6* z59if4$ipBA1M|ISTx9RpOfIcYA%GQpe3ef?{Dg{6KAI4-MV`sU?JjP>75v67XKKo$wuilnm#1FqX zfO4+-Q*V4~;FEvUd|2v!XtL0R)KA7lp4{Q?0^?V-y|EAf#B}?<;Z3{8D}o32W5}l% zG=S;qVQ35n{}{}<`Z-%MSW7x&;U_QCUJ#MJzt$745ng25ivRit6by*K)4R1F=4?P) z1Lac{(|U}_M#qN*Fo=MI>)Qwfh`_hUH&_V$!+TVLO%f}gF<^GQ6R(dx=-B%U++om> zJCyU6DuqwSpP!rBySp-*om4U4;eo)t2oU@G;MWdyub)%hyqc1I*!yOH4h>I+PaVJ$ z+*YsO2`GT`!+2GD7zM&L8%QZwAEzFF z1XU98uO&xPHq+U#obV`_?irl-T`9V9$2AY!J(Wm{>w>fqnb7cDd8A#Mc3lw7bd0Lp zt~eI9LUZ?=+h{hk9|WnSu4NQUEl{FQc3`oSD-|TqbMa{v1z^x!TcHm_?(HljPBt!u zeX;#&$I#TFVPviA+e$V%(T!d20trd_ZeSx)mkzLlM ze`nce44Yf<9Ga05eBGIRPC@~y?yH$ewag8UnVt`FdL5t3#JNq1^3u^;fen6@&}R`8 z0=#OXR6Q4MtF)A=Eo1?TlA!^&^|sWjh?Z_^%f+c8b@?vq5pXnO)PqZ6t zT!2)wc|MI^#0d8nte_>@+YG3kGDyiC1=$8_U-f;P&`7l4#@T{<`J{I>rP3f2idCQrNOPQCPx?pv3h&cu}$UcV{Gz;{O#f8vN9z8$}6j<7D7FE{S ziI6-%Z0}PcC}c97%9#Ymwq&c?(rPsFp*#sZvq=yK`1o?jId_NKTx6Q_WO>NMbnvEMAN2*i*M^CJqu;d~rNOhvsG8``yA47jYM z_}<(*v2T8)nBdC=E$xz-*27cMEMJ!vKJ@6UzQu5_51&rROL_Q-i+St8TQ^J=R8@D? zZqW>SzC!+rbfVMI8aM?`rb69R9JqAP>X6F1c4Kk&HQ7ds6Axv-Ie#V0vhHxz1H-Fs zUz4{qx#?}N`A*EavB!L(iJF5=sk6Q$z)FI{QQnSl0{J!KvI-o(M=^N@t-R8jrg?qG zcYi*^8wdQ$cXwb6{x1cZViO5n~W6v6P2v zHJPwpPDCiuNa{liPX9+^G_Bs=`LKKzZzaf}X{?2Q$vW0{JF4f5*@gL_=xfU44So5h z)GSfRj=I`IZVvM2K_z>bBsj5tBFyr3u83UF2Y72?YggipS0ho8-msW*aXKr)xe10$mIJ1PXhk*}ljVDUDJ? zVG@51!a@lTCqCmB+68KTl8^4%CJN+C)9UYbu3Eb3;z|#VxcThP7xwAmS`AN0cZ}W( z&P4nNYhdYC4VYGe5`j(ktv9*-Mx)X6teBx;BOxLxSD;Wg*&TIQLEg=cGwdqSF5;15 zs+WWu--diT#CFac(U1w>=_JwgqTcIY9~Rla0IK`$IkVLHQMGYjH0YmaB16f8fB#;Qxq7AE|HqyqR zR?O#u>ouems+&C>u0oJ|hHtud?S}O5R&A@b;w2o{Ct<1^%E&Aep;8OSzGHCdZU;fP zQd#+@rMt5~Z^fo-^O##0LUc`OgABy81I-ZPDIrK-?tgt)McZZ9^d+21EeA_M0tsA8 z8#d(*12n2vT$vz6E)RJ}ODW}Rsi-z3;?j9-$r8POlwgTka(uXgw1L$&aXMn6aTWF?E-cW}B1 zuT@RyIMsa*j`zyhGI+l(ACvaQ_wdHxrb?EryR|OjSHa7lOx#^>cS3!5jQGcK_eqYtmG;-YT;BQpOY2zl$GCA{DkCjQ4@WNpPP+|R;+ z2XyuzCx`__$gLku~c2Hljk zvFc3d2Y$sB#ydV)Anzu(?7?oY!+<5vyx=|4lT5j_hxICpQl>llJ4=9=UqL3;5TzK z@-91ER}aEma9K!C#DXQy6N6-Q=LrRvC=LV;Q%y>FYYJtCbapAzmc>&bqCxumyZm&G zqqLE|{F4D3mwHQ#qeU1zBFnuGc#n49=6Gc1pPq(7w7tm74Ht>5pw7N8(_{C3BfEOUl$!WLgv9wMx zeP5wEuf4HW8T*Q*NX41AgFI|>SN z>!^@(@^q2;Cf-|EQwyzcQ+vHqJo-fD_uqzrIA$mp&IMidW%IBFiXCJfa-AR-Arx)5 zYs2@WrNiD$MoINsc@Uj7hY=+_r8CYUD7hP&v&lx8$Mb?7mX~I}JyR%I#|mS}mu%q5 z$k7dY^G)RHIfRGpGMI+Q^WBt{0U4?{+0$U+p`p_EkEmrN)m@ zIK#b_?Ni}UAgH|LSHLt7`=z=Vu#nqZ9)V@VpGJT^CO!ol1+!N8FMFlOSB-z%>{^7@ z*Dt`J06@^fsyTR_&m;f90@#ljRA#<{%7?lgAB&+y%kh8?)B7&qhYFqzzZ`PmY92oW z2P81;4CD?s7U(NHdgAKpyG0i_sxURdvzZbUwX%;&zFZ+z&ia&XD*dwTNtk?Jn>84k z|FdH5EvR47ON#LTE#~n=Iyv>AZk6$dsYlvJfPWc?t6mjPao4mF<;Uz^W_D%eS@dq; zuFd*@I8Sec&qoI*D4i!Xit^VN0^aP?iLnvMv2s7vTh=eqdm-5qFDr!TIf_BX6W4Qt0oQ>K zNU{dbr3r*Gji6wZJx56NDx z$3`23o0J?%80x$#!*twg##Nk`w%5FReoclHuh8+=?K&ZR)jSb(W79!%yf-2f;F(=` zMx*Sqd%36Ns(_rF`nv!!$*)rCVHtHghGa|a^8?0kFCa_O5 z6<&JSZAIix0(iGL7R;yjenQnqGf<8CaO7A)TEJxKc{}xXnue@_H_-04fcn;jJL;x_ zTI$WgCZec;g6{Iue{t9l~jxD|4 zla$}n@vO3orJD>8S*f0^<8LWZfdy{;k`XU-vnWtpDckX>-G>9CHJL_Dwd8C~l@c4` zh~f0u;Xj>o1Sd}O+8n58&A6PQZDjL3H*P$D(pi4J8ieG4gF^TIE{)>&0x4U;mEt^^ zZhy_ST@xX0ff3sjnCjV4fivbr3^JaovTHiX+}X&`{83IXQ~B2O>nML2V{bng`j--L z*2UtZqk_^6TA zO77FheQ5wtMcA;20|J?+`>*de9l`_P!;P}k%`hHwxmM;|MJ38Hfl>}FtwgJ+O#Zq3&f;ZSREz&j>E$yNq zYn}tnSL)u~CSs&NgTV;AiW)uDBpwI29Lrq#W81C(Qgu#dWVIDbd%W(6S|IC=%wgU% z1l2%(!jSVc)n&XO*a`-2gr^+55*W{olI7wjF5Hco*Rk}RUklO7 zYboyTemytfPAl3Wf(;~ie%R|9rL-?sN*%$5X0*vo&whI3%w0h{#iHak<&6a$f(3#e zqPHFjDy_m`EM&3TYDGlsI?k?wEmiSiZi4I(A4JLO`)SG^-};?iXi;!vM{A~f^vWV zd$G+^sTD4&eY37W?t>)W;;Vl}V(JJk+KluQk=3)NryFTxJu&%kA$6(d9mi#?teQBJ zlyy|4lP&Q~!=;Xn^7RJRNlNifu!&rIoj5t4kXyszDFKwkL3?aqvgFM~{Y3rM>KQuj zIMY3$Wk6pVdB?yrm2(y1jxY$dyC6NLMyR(Pvtp=}OUiVF6uKyu%!@pfh@+aahTdAY zS$5D0{L^SiTxgn8q~#B8s}Y+zQ*sNz;+p__-~6SE?GcR~Ky`ew{dY@@ts}SlB0H_t zwW#m0D-(iYO1ks6F6>(Zc3{f0KbMbO zY}+{zzdiG#L+IyXn|9F@iCy@*rol_X;8viI!V8wj_7Jiv+I2d`brs@fJE=#Hnb_1{ z+lVwjF=Y4==L@4>rVZC>(TGWpE{_rTP z5aAtW-n5Xcy}M36R*`@OkQ;KPS)S&vxa)j4zW~Gc&{A9zTU>g+WLFjUPK~~3)B6Ac zUVuAe(Ov>UUOB2%-#%yRtXmv4t$$((=)o^ICF9Uv*p4_p82|NG9@^^mZ77w0 zK>Zk#$p-j%C2gq(<6GdgH@5BtaSEHo1eY4UXkm_E=t||CaN7woHd!lAVGvp9s~35U zCrhQv57(`1(6wjv&fqlZnm~%wm4HE(8m@Tq3=0b2F@lm4WNRL`t)A(&*V?BQtT3!^ zO?JKja|<%QLgqt1VqZ38HTZz7(}6fMt1PJof)LD8S9m4{p3P^)H8h5X&%9I(Ki;ki z9@(6S{S&mNhRBn@|1@7%GauuqyP)o~GmhdnL6b)BIeTmqBW${B9u}gOWXE&V`L=N1 zE${cEJXfcK9CiEgW*4mD%bJXjITeCjzz#T%gIa__m`-erMNRG~5T2x9hO*v>Ul7FF zMRBrDG*eRxQ5xI?>Oxf}zWsg%JzJ=&Cwd@9Q?Z&SruMGnRY@?#dN$;n440%&dATt& zg*B>K*gTV-0&9#qkp!K!*x%wMew`0owX%IlV~ty}3#y15Aa&sYf7_bM7O);%H>C})y* zk?7&ep0VA!2q}j))y4-y4NO}aO8ei;AhsIdSJeAq<_8qmp+2LEw|RxKDDRa>vL1!@ zDYyHNC#{H=GQacA2@lWph47tw&Scm16@;XiSoRQb%lABZ6?9(x%!?!9;Cq`n-SGDJ z^O1k3#2;N7TOq}%x*e|-i6OtRe~jU@klcOvf^^1y_0d^8yHTH4csR2p_ZaJtFnrR` zBqh#zDOSA0(DiKvM`y}t$cd#ZHbwu%psYwlWkRcgKWdb#g=ZGuP)UBW-3*Ueo$TB^5Tpl6CDe;_FG-6=^$HEN!?PK za$;LfnnsrVq_HfT6S7QAC#jv`1d8evZbzQjGB%Y=nXFK#XJoT72g}Xo14Y1b zZm~Led>H#Ji1H?cy5QHNv!)sm#}6JA-FFLPIgqO56@cdm&({-W+ya*w%y&nz_OC;M zAEfSq%28N$Rd`h+L~{K6JDSw<^bmTrt90^a5$9P)@kLCAjcX(vkd*4S5Whw0a~@h?KNojMbdPK8k47VLL9@B7b+B>uFEOQJNMhig_ zI%kvMkns%>#!8WAWoruPGFHn(^4RVi@K|r09YFP;E_8X8B!niLq2*hV9p9{123kzz zjgFN7Qht4*+d>gt>TJ@%=+;MCYh7!dJy+nhFpm8BJ?MTPE$pt79iAV`!UTpvbX>&z zSy(q_-{ktRIKjgYo2eE_j1%G1bmuE&ZK+-ZkpW%&gVGeN(iFv^6C&TghP} z<}q4II4uVm=#L=3dH9rWaq4)E!udJ!@oLM@AGlZKZ}s8kAQd4@2PA%xYs;<9Gvg-N z``+H|nGP_ql8v!Vs&A*pY`0I|w=tixt5y7Lk}bKRLKCi`6Rc$R_-i?!W(vx1iz+8NDI z1rgvFQafV)j-S|YF<`i1E{X59FZ>3V2KEW$ztFzsm7OG2ksgygo`{wDohoRhTKI)* zWNj)~{VqPfQK^My|R)h^q& za+z!;_GPP*vhUISBx7#1nA7|LdK!}Z<3INvK+o+MJrrgGufauWR7Nx;D`ndV4{(pd zBy6eeG3=J4ib0bmLp+$@RT|UMbT=UAfZ(TgGq0%7q#zy!{l>fk-A88GsP<5&Z|Tt`go%N@YSR@sv6h)glzt)M!)`t zhMB5=z4K=u{5;e%(%f-7lV>tU4OG`lTllLb-~z>_TO!2BW_CZ?srp#cTcV5v;gbYx z4e|BQpD;zx;l&HkQH{M`H_@%Ps_+-#hh$DSV}THOYd6tZu#flv};;e{xSDaY; z?C1A#bpV$#B#r{eq`33qz4C@2#xj!#6`3v!m>ZSEt-Z7qMt%WHeSVEYEcKz;qgbef z#Ys)a@ZBPSx~Oy4j|o9B^$Zs8#3hu_;1X}5N}Vg7Nu%(8bvXIUG_$klOM;Epc_mWw z8|?P$TZUFN3Wlp^&iyO^0f&!Bs5ztsR4s92+aoAqPp?R|=O$O{I}{^b+udbvH4CM@ zqWQWj1>&0{$G>iLn6Xc}W~D@ioqW#itaNoeB?nG*>b%PMBdVM9=5mj$igG?GHgZ>Y z2@-ZtZRzM`f^{G}ZVyb#{tam^4S}=58>~5WXd*1U@t%{v6#cna(Us}1>NX!YdbOu2 z+?PLJAX7N`GytYqz?neAJ=K!EGW?+s^Vt39IHRkC5jTTKmfkAgxO@|E-n2tH-lnmFJy1b6|mN?Ns_eT@i*Vq+b>+nf@_ z%|>H^lXNZ{C+nwOs`-drQ0!vjU4|6GSzEAV9m5w!`u7T78b3wi#Lg+3m&YnAn$Vjf z=x)jPFok}Mkc%rh8P{?%cGW19Vz`DBfW>yIZ)cN|__bBPJ;}bUx0ek&BCS$+M{17` z3%QgS8Irn+W0zVolfyW2Qe!in7xb}0TevyPvstiGW>@5S3EuE00aEm6_5}HO%I~QA z4;J#zd1y8a@o4-kimO$>s3ri9_f5orqO}DLXp>3j&y2l41bW9sxHvl>+1~d3=?p$j ziz(KN4CS+?dutCvo{6kqw>d>xD0F2wz_Q(amQvO>NjmMd&5b;phmnr9V&ZZAaYFN= zGZB)A8T27$e0yqGv}^(~wVO1{`z;I^mxn*RrYlXZn-mi?UN9|Q+{+A0agu_0_$$|e zyEU+J;#38wBY8-6Et;vlzccTL5W8TIa<-~~PzF%r?^Ka_PP^_$v3Pneztnx6puT-S zO^!59Zac243L&$wt-~yD{QaQ=gcDe^fG1O&6dT*MAd$3a7O2pcF|HdRg#1XdhdI4M zTlO`dI;vlX9o&kq+Tsmrcyi`y6Gn#wUh6WN6-cfp6S(jSv(IN@cm|8uSlc=y4}rY^u_nT<`~N`!EEI4y0(v`gEzeS0`||^E0P*frzd&cDq$y4pEA# z>f_7KGX*SE#&0|yv>M8N8bn941sUE<{}M2*+#TO?8|X-Ie!p*GQ|!diwO)DkwQcB* zlXsL$T!?Yk;h!k8JhOOqoMn7#3OgK`+uBs2wVCU}1r!zG_{$r*tf7v_XPK?>Inn_) z;kl$02!KUqR2{zqu@e6(q$(kn*e3y_l~sX$Zs;#;-sI@g^}A}71=`8=%1N(AKN8e; zCq@_|X$$}D3VjS=AlPi}ag;IX@VjdSPMhQRxGA^drGGBxIcXk1m){VWl`F%f2Ra9?R_HB9ue( zTmwuiUyr0c!35}!GB=tRbc0n|6nv5ZUON?KUL;>Iv3Py>Nr3T|T0A(~*M_a!j%u?~ zGRYU!0`^H&1r)sLKC1x%Q(AEg9rI#BeEIPWbtN?b`o~$JDc&9*CnMV^Yk_9m6WWl! z@mZ^`Z4$SJ0(p_0z%HoCVUqrZr@#1UFm4-y7B5`Fc9%^pwj3#E@R1f-N3ig6z%aTis5e9hwAKa z+RaCvC~lsD^%G}!K*W89u$+m90kkGDTCzrhC6;^@-+M^qn9Lts0D_J}mxzI2C501L zmeKs(pb@2p=u|uxfNtL)Eu+Z!EIKu3$G`>oZzV{52NxUCx4fPBiiIXooRA}u7U42d zxwF=F#Xk-_di@(Q(Q%g3dw9S)azD&hk_czCX*;O_^vy0UHz7Hw{_wDys`H0-(#x>u z!Xs}A;?V$-cz+15wojYH$9h`sHaWn1_jA@UfGxp9&M&8RMM6rJhC_q@f z$u$6L61Jl+XFRCGQyn9Ch|UmuVdoxYmC-cGK41N28l6>yJR~W$hs<)?zrTi?bsr}l zxsFO8QRk#AM_g94;4}lTaDWYjjK!$n!@2exEaJ5f+er%Ya7X7+ zHz^egYLoZwDT#_wecDJCSRZ|lL+*gVkJ2RCa8@WPsL6HhDOdVu@~Aas=*0ZZA4BQ-N z1o2@J(rc}UMj(;7a`Tg6m{B(vMwbZpFM+5gFAt#o6oGdhIc9@_2MOl81bFyQXIv1R z$J8yo66vODf!Bg6{a7`)m|ok-lwmq77c5dJe1#K+)9xB)rD8^0mgF74^|bnR?V+vdn>JIMMy`NhtN}ff!qU% zL}bw-AK?W8M;J+~NW*(2z;Q0TdN4FXZ*|9*j|=UN70Z&Y8}~aLBc6JN zptopv)rhD*qZ&Y_7qpOx306MK8HC{8P}yL zn-Re4k(1VUhcOx}nFhxVK2W5}G#Tr<^>h(PgSl^XWAl7Vf_klkP>i|?%nB^h->+P1 zNGq$Q|44})2NlS*Gn_%`pqmSp7ZCNUr~c62$T-@iHx4XHA>nABIFGXzgtJNsLA}Gh zsC<$ZsboX#PRxj6TEtMAjZ$Q~jy3vG$lxaX1BPmu;OO@63d|E#&Om9nFEW&e|EJbY ze?}ScAY8eu6hURX#$6W=A|e}`H#8O-f<8UbhW*c#C8bXEsP6SiGU&=r7U2E1CR|#S zU74%Ks|~mxJfGw1CkqGfwk|E>k&ZE{`s+$RipwTK-DNirGL&z88^kz`Um`EpHpMKd z8naJWW`RNy^QTzqq*$vbWMxOkz)(28Ck?bko+q_G@TjM|`)MVnE|arfH*Uz+9@h0b zk---=ODk5!IzZ2%Vwz<16h1+qt=NgQoMvzBN#+|JtMzhXJY3Tx$TUJLjKw2h0j3Zx zUjR*U3(&n|JP{r%;g2SXfW6)g6NGZ+iL3mEgASW}V4j-2EnOlPRN#`(`k!YXw(UI5 zC5fa)<}1D99QQf%OYj`t#-}jsH3tltE9j8~hMglbckpv22Z!Wn$j1ZlM*HdX4s78a zsy)Be0V6n=tOu@2sRs(h9c2J7ghA>X4Qc|4D|jMBo5R1|npVqt(Uap6`((sb&*NI3 z^CkS3Q@tL84f&=9yw~nc8qWEPS(U&AxIJ$yBtNP)<)!Y#hEn_Ey2uWYlz~4N81*?O zpz4^+60c6126o@A2_uq=8Rm(GoWgG1p25t@MEmZalu zgiUmvc zp9wtf2BMlz=g2=Lp?BD-EAQQ9F#1KrTVzT%g1TiWRVVhyl5z{G68Z2^Be21VCSXD^ z?s@PbG50Aq|129@^*vUApqTaQ7d!qL*V!lC*YKFe3dM%?A>^ptUli z4m-x-l@qkvVN1?0kyQaBt~K~$=1x_vgrEZpZNOFf4+3F86Hz^m#Q$D~8Sj*N}fDT{&q@TCuPC=iu#<*1#-( zj$M}RBcwvI>Wu9E#vo|!^H6t(NOS|2RhtlV;H!3$@BnVEG*kTp=wv_562(o=o01(x zChvhHes)QQq(_sMYi9SisST_uZ}ulXvnO<3P3I_)0LbJm)M1wIQ( zyCCe=y8sfN$vJiug=aR@uq`IsD^2H@M-u|4?v{@3_W0~sc!t#2M83-2F$q;--bz=( zekP3qSJJ_DL)qAJm-|6?k6sSP9(G+DXirj2C-pcDsO;eE3bi%FN*^PRt@+>Z`)lHL zjQ4dzd9Bcx&{Yn3p-s%>K@O^1I0>Y@niajsuAlH{M}HviYHr`e(rgAcJ1?L;5>jFV z&Ja4_aDE9=*S#I_C5K0ZDTa`pv1~h%R%p(C8$4~)$c2HT>)HjQ^xjwv&hOQA!Me!2 zz8b4i(|81J)$V$MJAvR=Z%hvSF~$&&sjIo7Un*HZ3oK=!{L~G^p*(H`#{nCa^Mu+! zcQ{N`+sQj&jb}v(Y@7wd7`_qUN-7Enm-8m^rq>V@xnHlm35Umf`I7r37Ddbg9uf-iFLN|Q%qrLmI|F*BKyv~-{mt>F2ZzD9p`(1UC z^cxQAxJ^*=`p3>gNv5L6lw=I)9~sRIRnX0AAfb9Qix4jG<1uQ8&77lq7~89%IPc2c z1k+z$TR)GeapK6EM_bo4#jjfdqF1gR0?%0BbL#eyev#vCP2~|3w<#9waKZ3quAfBV zk#sTO_x6gX!)P{kHs|+~E5$g&zq2yL!=X6sgN1HyRucA!`Qxa8J?;B7QjpG(X%lsf z-#rk{6w9~5S|WI9t*fzeGl;-qM)K-C3qrJ=D<6kqPkSEg?>8fU>!i|-J2um~7%8N4 z&a(-c9n1j4q?K5{J?+SYb$^|WF%@vkh?vxuq~1d2vNivRJmnZ2oz$(#HI>hb7Jdmu zg_yqjNLS?ps=If&!>OlSju-OYo0kzLM8k@Mie?wUG#wMSA@WECqjFS zpI$LvQHNINISG9hb=hwZ-Ko7M$aMif%Oj#lqcY6Xfs#_#>HCSK_Bt4#%@XbXz< zh?9#oDKVzOYFZL&?KrJ9@3!veQDtgaV4mO7dAp{ru=MsxN!N2GNeRI_>e@WjB+u1x zTI$1LonpfihqTxLlA&u^h0lTFBThI#m1MPbaaB^rT8TZCt@X0i)kCxqR=!(BUM;5O z02f93g<5zf^Xs?lT6Li$XMo91kGd#|q;cgZ9?;){ybj~==V4~36yYv0<(^(j^ufAb zXK(Eu_16xiL-j$|Eig;)J_Xq8-4SLcycQk0auBb-iBg){rfEYML)pv#L>3OTQ=OYb z&_nw4{O$~><*MspQ(rzW{I9$(Yu~!PJ*aOzLJ$rfbfZgKW55UIA$L7M%xpbQ|5F_D zzm(!1U_sBoOvn14!N>oCihsx1m{|VH@PFj_($h21vHh3ve{97+)Bjr_GTlF*rZ5NHzoH6*n5 zrZ)c~8Uk7+8)a*=zhTP%G&N`ZH;nfm5n}J)C}^s0|LT4vzK!eJf~JVC~p0>p=pkpRXcQpt;F%6u) zGbjO84LbMy6LXO?0tU!+pUw9()Dew@XSyc3W#8EqeZp$Ei4H{4Os|tHZCgbQ3>HhSL5k6BN)NpA^KYe4@!@s}Hf9`laR^naGdzmnKqmUX{)n0N ze}GKX^na)Szfh*X$VpJ&_J5Hj0*3#9Of1a*>6oY)8JL;q|JNg81b=hH|7LN!{#zde z^z`&>|BW*Jo%erIrhkY2*9iNb%jsW3KpUV{8u!QwK}L-+I+y@OVP5L~ zqVWxdTb=92G=h->V$TS$+V;c@s01!|9!A$QK_K-FZDQs-tih83LaRktokO$i4;<|W zp{t{F2FLW9qOwHt^Ev!wXkiYq`!-V_7V-I=s?`@QV_hqZT^nFYRmuIuIxs!FJ%n`uDObw~%(?!> z`u8vH&neViQgj-YZ>uCbaCJ@0h}CrU0N_Zf3#rMA@3QHB@%er{%Y4f{OG|jVAL^Wb z-#QQ*=^rVuKBvzv_9%cn_^;M1vx77gP$#1)NjCY%l<-i`H515|E z>A8Nq+=0o#$;mqr&%a6~VcX|NLM?MMV_hvXXsx|12w!wG0fLY*&;-stkZTNBhBn(*3@=vhJs>pH=|goYCI}j1wDaAnD&Q-A;Y`x;Is76Fz+{ zZP= zRzE@4w$1AsfHOXCNA6fkeV@J&*|zsLdZO?;cq!_-m5sh@;=ksH_Hy8;sB9j;;{qP5 zbVToYfz{QvoxjDC@2PRfEMgaWzzp3s_C7|oG(TGOpKG$~Ydg)3?pXJ}apirsXyoNN zU1&vEjDd(LM>e$eycNFiffIbjd znp`um^lCX*G41T8r&DQH8Jfr&H&yd*On$&tq3FAt-Na1C20QW;|6%5d#2Pt*Vy3(O z;SSkeG?em8UShAzhoTq_*GYTD95yAaRI-9Rcau`Ww%!OtJe-&8<3V_vE_>!z*o7g4pYSH)cba%S_1 zxmqU)M{6i$_Gfq3?S`MK6vVQIzLk@=3DBEgGe;-J-?iqCU%@T`X0{j>$d^Z zH8E*pJY9Qc-O?#%gS8Fa7HAFO3XF%KHM3Ic8@ik&@z5M_~1lr zoJ^4$%L=2RwVwDIA?0nu)~;%0?(w@P!$P)oK+a$`EO z$=w)D3MVGK0Yq!gxZoOp(^RWl*D+$dB_p}=wK6;n=m@KbgEy6rwAP1UPVXf0-LanX zU7QlzKb&XTI0I#JXyMrTs$E9FC=4D<<$#_Xwc%8jOPO7ks6;+JgB24eFdaS8=L@Z1 z;n*yyt^S9%QB9m|C3f;#e0r)g|3eaR;47h|5v+}w>xKR{Oe2oqXrAPlFFFme?2UY# zTs6xX?BCzT5KFPh+Q3BQl^*U8mnez{?wY{u2ecXGR9ff~GpxiY`{N4P6@M_KX(w!p z0kXS+oE?epLWl;~luJX2??+KqBW$+DJ~G*69Fe@NPL~|6lm3^73>6UklpE-%#%VmN zesW3cT4}+zY!7X<5OoUP5d7H1c)MVtBB-=TOZ>ZlV!#Bha>+e;XTc~}Y~=`fa3-@sym03fKECD|8GJOhW%Z+sR|Wl1BvR2A%Ef9U@$h#xnfRZ+56Ufv5T3Sw=BcE3hJ}kfa!Ct;00RbREVqJtWIJ%k#sOqPrh`-YFM0g4}@6>Q!; z*U)rFcFAfF42r~t8$v|VUM0fS+NPG3Zt(}rg4=MSJGpc7tc)>Rq0@l^sgrn(>u0j- z7=OgCecr3E)o?r1-O?GA?J8d_wvbm?MGMKv)5tWY%6Ac=wVH@~6hc{?P7PhMCcLwY z!u40h84ez}Mtnx(GsV*RT(x1L_si+3fcaYFuVb0q#4?~hpK5L8-77H@n%%$*%q zlxS#+8!c(@YHO;(cxnStBqhL;(4!UkSu~$+UKI;jmH$fem3nuHu0|Wwa-nNs-Q~v* zB7{%Ud=bzAv;%q`?h=F+4j-uXpp5g98YSH2`JdqJ~rgkDlHm)SXZ zB9TTouTDG=pUifTAo&~5C4!Xnbc-pp6T|D4?+s{ws!SP(ax2ROjF3HI+G$woUMt0^ zQzk3*TrtqC`mb=2#*7Ff__X@KE5w#vCn^W0f+-|rJg3I=A zb?(5roBDG2*N_nWK^71QW%h40f;?x$#dd;29Lt)8XAagi5W+e+m&MoBMO^He_4OahpZEC zkJMe_aLolW$m$FJdFPtOs2S~-D;mKIY>qp^hQl!*SsLo%Y8U=o@AJxy~>NV|-fIUgeY*@c@q9*`@w)koK z8MEPsVmb??6S<#b$uFD_XDJ|)A)!_0GB7ms?7liCUXQ9qCYGjoyz z^Z2(GQN$S`_$^G8?a1q9E2EI=s&N*iy*j?pe6-YRZf2plR-9*uq#Z-neew;S^DI zc+agQ3wuF}go>gzG+A{y8STUtS9SV*pD<$4Q8*#j-~;~2n80e=*?N@CU#55Hf8-mJ(InT;QC z$`k*H-a82>PUk3_g%Zjy4!(AB+S`NCGAsQWa^9Xslt`nlUKcvh1y9;ufX%%k`r>2o zfKx7&=j-VhGV{*l=sc3^UPtrE}ygCrJE2q@DgEEEUtd&dJiTV8?`x)zOBreV921I%Khqth1y9_=gxci zIKTd2eQ<0lQinz2O+}2}3AvaQ6@lh!qOtq5H^j1^gj$_$quC_q(mF9c6O@UXigaKK zBv55%BTStxd8GN=!j+}=#|1J=sodm5pkJd(3+Uv19!o9tW=@97GUk@<6z===IDmO( z=ZCunD-5`ZS;*-J*dY$2Dgb+q^lTcnXxp1}Fc|ks3&^QH_MBpVehc>q}XW?ydM7k&k>|BgQ_yq~M z`-J*adcVa=x5=bWoj-#m`+>{tb{%n4*VdsLYL#pCV)i7vosX8GvY*vKrirsxY(UOGa4=1~(xueume9>(_H3m3Y6Ml!q#uESUZpBr;26 zsB4(WOEV{Z^{PL#ogon&d8u4PIxq-Dj=S@i58=m^_~U?}xP1MN%hZ?%A0<-`P%VKo z&X;po|3KCui~GRFhYMK$c`GiPacO+3Dq~Ufe8Q!B^n$Uvl}woErFf>7()B37*VK{1 z8~#>o6@$B}3Tjbob=+?f#QSP`Ht&OGn2r658qy~?Hl%a}!xa`)l z(|_aV+KTqbnexC1zQsI?#Z4IW2wDd{vPI=r$jq}aAH5F-8f21}q&$Djc^9SnxV`;B z{He7_OkYhx>7>hrz${!PGbU=Y=PvD#*A(IDz;Gj${J{np+wbYE0 zrl<`Mjs{3P&UL5_IwW&JzxE;?9K3ng@w(sR_ib2KH626vY%2<{dm6yUu7@ITK+RCb ze@|sKDoeCKnt=8j-4sWmX4pNxjueT0W&7V!O^J?xE7HWRo)^ChWaEfOQl~|@IgiND zJ;Qkh0r|bgg4|7$s`Oq`t#_Lg6Yw2goS3?XPC3K#h{w2=h%o{RjO*#t1rXj)%*o4P$0#>hmw znZz$lY0vUbY};O@`l^fQV@N<;_NB&pFUB?(KDWSw=0Fmwj^_2P9?v;PVLgt1(KF?` zBfnfGDO{@kmkcV08;V|_6O0Ej4RV;hC|%GzT8xLv4)DUq^^a!p!_{APlzsRw+Kp#x z6&$z_f^)(!Z$6h>N3*gg-x>VZoq6=Lw2?Lq+@T_)RBUri0pplJsAa3cc)X&|7|JWk ztA+*vZ*zB>NgU~vuTyOwS?!YaToI@K8$mjacMA`JiAgI*hGr3c-WUy{7J$}e!Hu(| zhFUSza>zyZTF&N(=TUFI5CV$lipTzLefZnoNLM)1`at{+2=6RKfdX%aCW<-lj3p?J z$ofI$6$neO{5b7ZN-*W~Qixt`lWq4f!Drfw)$Bgbd%ctYC@kG(K??>)c8Y{k<qHKK$+?+QI-B%Mm*O$*Ho>UWHx zh8ra*6%H?fxnG!MK^&=ks+uj2FOy^(IAz|qjHsIX#Qbmp+I$+*%0l4ZH6zK6 zcUsDEo8ATmMv+P)#{x2^Wp@zQ5DUt* ziS9{p;mZ-=l*S8m8C~5UJbyR&{+w*#66>ThsB6+J@r)4{*Le{0+giZ}h7xW}>|>UP zSoyoWarA4^TqC-@6H){lnQq09J1TVUM8-z2&_TjU@QFHi+ zgV*W@y1#WzB?7`>G8+>q!<3BJgA>z^3tjs$025re_$YBieU~BJ_dWG&Q&ip5uTatT zB>|El1&mu`{@^iuNrs{_Xl4L~hTW@?^$`h_$N)cf^rf)eqUNkYc8tHQPQ&UhM=1^7 z$=E>FIkfW;u)=4WR!q)Jif>W*NM=-oDA_l;MUWuEssGU|V zZ*8m|VW8&Nr-0ey;QNeN2EVq3V7W@1r?YW^oE1&Zo1MF<-wJA>?o8HYUH$w}IXe`L zfkts@!Iqs|%3QYh1p6|9i1Ak?@SnrAa);&NDOWV@@natNDPHoe@PZ|%Pfr;bZA!7p zOlKKAeCg<3&xeGyTYrH;Ng77zLKMv7eCkaMh|L6r{TP)rjfGh+%1mf%AUeSN6n1P{ zLEA2dd2?(1NtQ6u8TQc6v>XvdY3!{7@HWj<#rCE@7Alh-*Y9O%_-L@dC55KPhG*wp zl5>;tPWMmoxCy&h2ZA-_Fge*K+DI;;8>WhINoY^H3#=YUHX$WY+bV=IFjZS>p!lx8 z=K7_-qKv$M?qTK&ED*68fZ*smts?qWLlI3qNRiEDtRxdOqOHMU8koVPiAYZ~1mzU{ zdVutL3*712@@j4Y>-uysNWlL(wB;OTpPzo_=HFbecY6_ucon3T(5=;_F2sbzO;~I! zhx)`XSRCkpXELFb(ucbt2|A0GzmX3b%`WcoM8Cg!25XWqSR2NKL-i(tW4gRhfnFWm z(1*Y=Qd%mH+^i``D|>*2Bx&FG%h~jVK6E73>)EU$qlxXKVFkdeP+_hv3&ouD|0I^1 zumz3qY&rw2V-$D^A_@6Sq5(q{Obu$2de9ClK3h$k*d%~#;^1Cd@Cd1n zpfmO5Hh#${C>x7GeRh6vFMaLE-%**Wh7MB*)d(E_1CH-L-<~TdBekGkSE)&B!4N}L z|3}R$201qD0L6m+^utB!(oUD?)G7x)CI#I}r>=aldL%5pR)ieZZnHd7_MP~4XK0ZP zk~}Dgs{P`jeABs|Z;Jj@-xg62Z7TR#^7PUoZSejC=K37!WIxwb>wAqx;f-; zo}Tr{1N@R^gD6S0nPG`D`yZ4YA#nyu291lC)OZHa8B@AyBWB%WgFDFxYe#HyDnPDHigjt-krpb1VR|8Q4xBU`{91n=GNU9Wi0i9=$;HoZYiz+WrpJg!j;%)S_CC#O)$b+ zADD0BS#>o~OZ^S@GP%>J1zo7_DJ-$u^}oLFrfxqvVrL)w=oR;1z-j8G#1}*}EW=s< z4Q**IY|68E%j#Mi?fAy$cFT?SekJm|ig5try=X3Sy{iY@pi6yz*Raf<{?Rm6u(rKt zIql$58TY{>z4m&`#I)%_Fq2z0;qMi661NT9axrba`LgG0Wo}J!&zZTTHY$Yn{LDC^ zN&64#QW|6f8wDhG3hrP9IL72sgGJgEz$?-RF|wA`)S5@-WgQ@TK~A(Rq$U1`pM%ke zC?|M6rx#rT1Y?eqaRTG!0uXm+)H%zufPF5^jm15!PK)h}P^-}UHu#AV$)du0rx(5Dx#fEWM?pzT zUvCs!T*5CKh%?|HddDqw8*(DgrR-Iw&!H|&Y(pzQqqM}?@p?fTOmpnx4PVSgsURW` zV~aJ>d-~Nm0x2y~S!{<}KNx+xa7P!-<`dbRAkcxVhM9XdpE!JpVJ>p55m?8|9uE ze3_iGHvGfC@tAWWSA0T>aP75?bZZb>qCn;Z$DsX{$nyB^?mQ&Rpo6S$(~&K}S0%X% zF68%nlm)>Zdv=X%MRMKZ%J!G)Ng|VOglxJS&fGQFjyiq*7|a6y15{P1Ssj}(+%KI> zZx6y~Z3*q$>`|KX<6nR*-yonVF3>&hd=|xfv}@)4umBXlU*QEpr`Qd2GA9Ar+aK=1 zB8pXamVxD!dgofA_?aMr#Dj^6X5Q zd2F{#0P|ABI~m8|kxWjRRD68Q!qdk8$h{E39*~(r_XVbrFzr~_y*WPZ5dHqB^SsM!33-~^ zQgSNccq^Y`SF4l&e)7L+a0I?7^C(x2vt%l@hZAYUla9OIJ)VwnJqM;fIl& zp7riVF$!DhORVa6nA>LYi3xEVAq%GD!)d2lw>y2o0lR!%EAL-0Hhm36u<2OzsP1g< z^fs_C))XczbK{9N&17`kpaQE+=f9?IiQ_f~r9ChGbJzQ$7pWxgD`eo@mGt4)yHg5A zkl#@)w!BZuJ;^@-vZ6i>ehxZPyN3<$@a!P(EW(B!olbo%AE+_Jte4MCy%PDwuta9< z{n_HO=!h-)x?y$&T{&}mrrH#wa+ryK_YMphvMraF|89-k$lAB5r40J>WbRHG%3@wQ z+{<1=M-skBS)v~ufMAEqV&F@nL7vKizmSGzYE~jN1Q{2w&rgF>pz2XMRJ0Gp4nmjK z_I|*=HhCaoT%EBB%#pdgm>^CU(&jjFm8+=uX=}pA(F^@0? zYs`z(JpWxDd`nZIl_~1WWtVzpyStas2jlH?WJEoi;SudJF>%7OL_=IJiRrZSBT`97 zECA1Zs-qUql_JIm$YM}u)^`U1XIKm!mAIz z`ry7Qb)m1!ra?cAbQ79@k~1K$M;L(?OJ0hn3I(>BYA}YV{d(T5RJ*&^WZN(! zMNJxeI;N$V+!6YC6f+T|uh!IYOMVTWK1#$n1`JLt8}0DV7Wi+@z=}q784LBGf1Z)r z5{DbhQh(M_`36|eKOS>UwJFv}4cBEWy*iEI?@d4m5Fk8(w@Lm=Ol(CA(;Q26KbAgf z5X6)EGgWz^9OwMPKHxlCVo8yed37S1=)uLqpvz}l=0n^R6W%z0p-Xx9J*^{(6)z!j-Ng_ljjh^2z@8gAnNT()g&KU1_Q7{! z7)^G`fBg2r6SRKNN~Z>P3Bj+7sn6%yJZ;A5#%vPzfmfxW^>F_wUouk1n1y$CU8YImHrt zrYF)50{2ShUcJSO{BPsbnBXVy-K;5i8s`dJ>eD0#2CpFp0eKxxu*!Sc%uegi6oYoe z%YLJ6{PhQ*U@JYaH4FGUE@_EkGHhNC32i7fb4}T%#sSup14rcXLLAsi4deSgiCO}r zN|137igN|`=9Ghj&jh>({Fq3*XG?$+kL;ROEP#%WF(w&le0fyGXS z)yy3)iLp}-*^;ulLUhYFHA9LK9UB}IBgqMyGK@d@vf&Ps2;GO_n()}Pn_jiPZ+Ew- z7g2#vgtMweyCxJB0kXc>MwE+^&C7dof4?4&uElizNV-UL{zdng0L2sAARuf}Qph(K z2Ox_jg9g%0j>$T=5S_1i1eMX$9H6`zhfJqjEoKK-B6q{gO>2mA+s1A~R#PZbk!~a% zfiP$MNRc$-ixwLpULQqZOB$Dj zE|!v;(N+dBHD&d7yz|8JBmJo#NsMP|k5uY$rQz9J7F{~il%cWd1c_pGtE%NG3Bk_x zQ4Zy@Az?i6VmJdpJ4Kmt7-TS0VOB<#4f_oUyv*+S#XWKxeI4GDOH__88OakESDC0H z_Ri?fhujU38)r}}VS*%o_k1T&w^1fy%lYT<CKgju5W-(}15gSx(s$rDFTzX3|wYoz5qHW=y zc~taA6BW1Cq3vU^ogT3>u_vy#t!+x%@>E_-U#LU*2+i#v^CM)|l<|SC9IjH4|L$o~>Gb(~l4&NT+$_c5J@e65L-pn50j-ht1 z^Qr`MUN1lw+S+J*o$^71)NIf8mSQq{k)V=}cM(~o5E3#b#KYnqnS+(Q(u*VFX1S$T zN;dg+FqC^a;>x*3ODhCX;Mvis=vT(0+iBmC(iIFy!V~AdnE-2>gLN8`l)Ky)ixA@` zi%&5f$@o|?_j)(cp-mtc-n53U z-IFpnuD38+yQ?Q*`&6_gv^psKjE}f|&;pbRefIxF**yly!f5G&F5B8=+qP}nw(Z(w z+pb-$c*)@HR(}oP`g`P0UVdn*Z}Y<1<=J#mltUn@Zl@ z7pkF9*k8TdKC}w2Vc$BYCpOXmNra4G$3eu$7Fn~~9JS|BtwNNFUDNeu<|$j*cw4{GG8o| zED)N?I0Y_7m0tQ@D4u%mZvEeLK$kdKhb?4BY^`)3szV!s(>E)!G^;kf-;c3&+*;EH z7wzw`>%^tQe&PeLnplC%8oBLkP0qNQB>mOay4>8qiM|{6?znu}f6LB2YNTLYVnfRF zq9T2VDVHxQx*N!D4Xs(5ZurrQu7zzUMb5}a{A&Id)(EKj-uvW6_Op1UZA?jC5~(!x zJ><-X%8A{ir=us5v5~lSnksRz1~Jr-*GbH@?fBqHI8%0JdN~i+zoTdREC=XeLT-Gaa5jV-3|FVn zMa2k0n@rYld+U<*)vXWMLp#5WOD^=maEQNhAGJO=yIi(Sc3)7WV=+WeZ2Czm$M9j; zIc78gm(xE-EvF_q8D;HzXfRHuV*v||0X_rcNJ?PgYFJ_1shhOw)3S1RZ(Xjfiu8;= zhcSFYLMTAd#4ul~4^(C#I`d1W6?cxVgco!7ogyI)!@^u!j01*9ECVGzAk(ceN$7qJ z&2IS7)Bz8?%15Y<@r3*uDnv+9WPYUlrlL+9kIjXf%0No5Fe~eh#5=k3XhSz#(>nn7 zeQ}cdx0Cmul}(IHjQ?$r{?lds&yo4}kmi3GmVf7HSpK6Bh@OGt-#D88%|alyzhvq^ z3W5H+qhbF0Y4}(C7t#E!3HmQYL;ts2iSD0C|7)lI;aSZ8;#v5A)s%^?@js*TAJPA9 zYW`Kx^nU@Fe-I7J|LJf3gUtNX2lTgu=zl>pEdPQw|KEtF(o01ddmPCoPQPypW7Fg> zo>|$2LE79R_}dGV3IcI0Yws4ii>V#h$??+d<#_GWV|O=DU0%K3RnhJh(vU%w$o`^Vw@-{=GxU5}pus{Jyjv~j)< z9DzAF0{`NfUSbPC{Rq=%SJoT=rZ^6uhJ2n@G>FN=AMmmt8QL>TqXKj554FFv@ZE27 zxLK7o=ZCF#d%153^bkb8mJOI=?aQtd?Q|!A;`d~ww$0B9)q$b4kqM=tnE^0R?WdQX z>U4rCE5VxteKl#1XMWy+bc~U<&zTZ;VCPq|Tzg*-( zdm6q`Kj~nWzv-U7`*%|~G&}$v)zj3~fA8M!=Kg#Z|L`>tUrJw1RbKW2_w_;2yE-yH z3j@f3p*sL{`U6mLF~xxc90HO~P8yrt096A3SnWg8x3~$uR%B;k1DMA5NdJgt0hrGH zg)_a>&)^QgX+uBwxBv}dip|C86jS=}a|Is-DmH(11BgSN zoSTF?1aWM3{5ArWBVjtVgUI1N_QNawIRvc_Kn}E?ipr+>i2?Sb*@=lF(dadUZ3j0MHkzk`RUelb(J+_g-}flJBb%K*~oZT7o00IYa8 z!@KAU_&%eH1KmvITk@yg4f!%U;kRe{Ha-TRYig+f7|4dz9-CfTKCGEo-Iv3@r3=6O zp&f&pw)lxv>FptQcs&4Hv8Q(hTKifNuM1TAoOs^>9s(=g1#n~pUHeMsb-e}aW2O4w zGa7(fp6nZb!b5&Yos98YIsAlf3&{HMT>VDxYy381ZgBfK*nLYK*akH=HGI$`UhD0$ zcm8TQ@N*A%`J|ii%k<~JjqrO!gFw55mw>w^G>fZR^23-X)&i{dnVJ znt($aT072lf&~d+c`HBwSC{@JMK+r|?eJT~&EaQ(2p=J9;OQocAK#sN^Bb^la`T7( z_F(3-ggXv3Yx@CDw^m!%Psr7tl@8{Y zseMhRz^-za11GqcPa#`Z?bUoBbgRf6Br_J4MYJVa^}MhG19SNG@VUAo(@d*KG|Y$ z30{9ieCO%!o#+?i5PL@pDbrQ+px|Z2y7=<^VvZC)19&YrF&W9!}IKnk{LPK#O3s)4Mk6HWsH#;<`Gr# zl(bW}viMYUX-fI&+y=gfWZiN;&3H<)>wmWkb2_=Gl&*X&njbK8@@3)k^owX7a>Dl{ zowlk4?iy9N5cV$^wE|}h47M9tqQ~>25|}!#Xm&C@HiRUFR!t+&XIEy?9WZEFWx%#_ zynP~%x|e-;zP?7p8!O8zoh!q>bH@*6V2;fo$)1dEol$EQ_+$$2*PP8X)W(y|@)D%l zj@GubVxaGy`nN8nVM*RQXsEv6Xxt6|0QGz{lFxSceVlg|VabuDO5ISu0R)EqJ@RiO zG4LonZ`f7)(1erp0S1XO#Jt{G&5UN*Mygo7NOP@l?<6nC17o*OomfB2U4vWRczna8 z;Zu3pHL{Sk3YP_&$zS+a4W7%fFL{iE@^=Dw7^zJ&1vgYZ-V|3)m zFM>aEj^DO(L#TV9sl{;^7xj?0ScsC$n#WtNCY;6TkVXeYE$KmzQxAHg+NiTl?blUH z^C-4RI7n2}JUb>0fA57F{jiEYHuc7t#_4)s(`8L2#(?Z&4iCx1*lgF8xs-p5#Kd zz*9>zrdR*1_~$(w+444|@a+Y4o7%%AU}UBUP~}WfQZ3MBeC`o>2ToN1;li1CgIIdo zca0hZ_2X?gTevEd=73(~ZDqsRF)_oRx=gJOC0U-^#JKNfgeQt1rO#k)lgb&S;3lbV z;9ywa9CEFuYgr15d9%eySq96F(ZC|v>@meK+VOy^ibYJ;A~feYR!!+3$OsH~6R8VqNuQ~RO?A1&_Mlm`t1G|x|T2mP%DLS`<4 zc{(}PWxuOOPiOTH5-=uTzy!S~M@#K?D% zEV~JyJ}H=Rx3J(HXF(3kM)RyAsWwrqBlLPSMSkfLhD{k$fTQA}EuHn58`OJW@$c*- z1ctj-IQ?>E*^&#TBOIzL*y%uV7^|@d$kQVRUeZ|5VZ0Q(GLF23!Bzd1#EZv?aqJME z#_#e{KD)4neKs~=5wq+uWqT;GyjHRZVWm{W9g&+JNUu8_E2yiWohBAW9eJvHb!;=C zq_~bMSL^#JtW3KqY=3=n;%A8aqp80u6#I{+W&7s;tua`hJx^a8lvv89QZTnFxsF!Xl_;j#AvG%p#ETR?Z&w(kjwmM~Gv^@*`IN*q^aRc`0tvA#nK!Au z8QJK#yKRRKQ90ZGoztR5*`3#df3b$G->O60EcXMj=r&E|V0}k!c&0t1iF)d}H_4aH z1QLPZK*HHuqUo8xjuW=N%#!TukPU7P=dHD6P6;zYJike1?Z!phqxooS*yx5tsa#MJ z7GJb#{ijjfZiU$*_<8S8Kd@f97*?I~pGJaxt0M~V87o`58t*H3(1FtMiO z^Zbv=%Bk1bGNA?U2?zjIA;jYuhmsK9t>HR2-@|Kj7+G%PvG0x4jlJ*8W1rzsa_G+5 z-O5*9h=3P$ALfCTN#X{I7T9nsdOw|u@+3J#g@2I%k2EB}Hb0Ro3ez&?{t_X$$djTh zprL8c4attE#kSYb?m(DB#d`=F{I?`{mM3>5qL6Hn+R>bnAx z0<(vyzQI+~LNG?>q(oH|(vj&38Kx-7M0}lDyznuvv8Pt?1b$Qh62yyu0AP^@A$kXb z*^G=hzWYEEnWY~MovwS7oYd#|s$)h&&AuqJOjR(5J&#ZlIvAzDBGD-(_?( zfG@|ISOC*vljgEs0gwCKxoDgNQhRr{holy)U-xB)Xc)RrpGv;Br&~WGq+(IhRlN{7 zo1d-pV_Pba(PM*>8mW{nb=8IyES_s(N(GNnYbb-@G=)Jxh?JY2fI;e4@~Zi=uHx57 zj6f@g@oTdttnsqc!$o~|zJJNH?VXV;->bTF za|=HcPb5PAiFhU};&9)7yjvJs+wV@IUJ#SBV%HmgM5v%x3@q%UxS@n+uOG*=Ni8%xKI@3NQ(l+E=s=-N|>`U3BQ87 z==kKeCtcUE# znIWBHCuilOgEmg`WAHUtQbtr<1VrPy@dN)reH|S4`3LQH~fI1;9vO`)~WdpLY9K4K4gAk?!i6G}cyrqiz zrM` zU9Zg#&KRS>WjS5*vKcuQhsMXR2eBop2=-Ax-U&5Okxz?9@;eIC=9!-D{oas0c~f@J>#GM4ptUXU&T5 zm6&VrAXMM9BVWB{rhR{p&&4+6gl|R;piIwQ`G}C>6CO6f!wXzG3VN5XFIVl!-3RWH zp)%&SRxW4KxyB^|)crZdXvfX+6~kz(H#>BLdEW8g_u5CHzr*uG9uZ7l5wtTwoD?2HjN6kK8u5BDqTLy+ZRbEM!;#fYXuS!h)t_K^9&;7vB)|mn_NJS4r92jt_0cmMQ zlOXKQ%J(IT{C=w=`-pQ|YPR78e~34zSwNMiL?3=p%`#N`=B43*Ewe(a0F*)5WN4?e zbT7(Zm4ZvTSp$-OEYj=kxiBQh;mvfoU5*5esbmt3Q73Oihi8w&CT~X6xg# zEZH2*w4+|7^yWiVlI6W;M1V0-Ek|pC1KCsY>~#Owgj3U*g0b!nd46yWjIp-ZpZH{2 z(Wi8$Zz%bfoE?4pWQ;pV)0?0CJ8z1(PC!>7StxZFz0kFz>r0P6pKV`BWHFh zn^jY36_M#zt^NtqpOQqUo~C;^bV>E*U3Oi^XCkVYnFfj1vLuzv6_As@rtD9vk8f;J zXh&I*abP3+Y26z^V>AR4Jg(podC`mXQKRASDsVVa7a*{3jAG>UuqxZ2)jc62>-V7- zAlg@y%B=$5d_ypS*tM-2bZhFM+jM!0+`%57eU{|EmoIyaYp7L6?=YrSg-H)~{K{w~ zOSzmDj~@i$9|nzP^=edc`6L+{jWC&g-SZvj|9EHnl>7ITuz{wM< zD3XuQD(<102R)Ek{}DAn-*Hf1tx0+u*?NE|PpLEj>5ZE6(fDosO`NSAqx+2I?W|ie zF=BL|a8w-9;Ys6dwYF#)rv zuI`%NuZ*oa!?*c>~zhrU69LEw^ttoOI&P|w?=@R zjV-WOzEi4?C`3X3kdT1+m!(xj9ELy#VF-Os5vcLj-{00vAX?3b?YT)so=PX#*gq{> zbZ#;eaq9KZHxyO1pnVC|Lngze~<4B#pmyQ@>Z>JzUy`6F0JAUiq&?zAcvEtx_Rr6Q>66MF&VQwtR|HAC_*Jy7Kizhb z4hE^VA}gU0DHu)%PXv?=twaUJEz3^KLphoOZHTkDysjx$fSN0KS*`6`ojfEV1EEp z&2!;B5ykQv{h;Fd;!M1PX=^l|^CUp99@qe`8=4zGZUaB`9AYrvX{BP%`o8}53=r6l zGY-X8!sB?eQ?cYH4ApG-1w?N-L}w?D0!r(@QN-rkk%q$`jbI)7+b?so9aI7*4uji6Y+SDw1y4lt!fY(SASx_u!u6%a*_c)D($H0SN zJsv~Rs3`=wJ!lV$K>0SyMlm|3ZLKnhP8!%;UGsnv-$!Fjej4cT zQI@6xLv<7^+=6#^n z@5O8_{4y40DiYDD?oi^IEr)4kK0t}8NCoMT>)=%F2mmjV_`xH5;tVhrpi-*B>{roL zPX7*8`5of2Ybm7yoLh7;H(GGNRRT9YNoyq5l)iOe45hl#WL{Tr&}vyH_NWROf6g0>gWy{5B;WCY|do z{UI(?vKqi$)^^!-jEiSn@5X6qs^HP0m_`fbs2f43C`LQPNc-J;9{cm`z0ctbTweQ; z=Ehf84SiN+npi;9_$8rLVS!1zYg{1Z<;$^qSr=oN<&!YnH_(K3t0h;# zBc5Wp8)H;4bJ=U^UYmjuDp{B-me~T&PO@03RRupM{z4)JR!BA)av5g`G=Q;u*G0{Y$wm05U(sDofF?8%VmERxo_?!J4pS`2}$U7XJB{pgpZ2M$&A1N_R zEH1OifUdliW^UN*qOkWym5&bcQ=Z^94ia+wCSh>GGePiNvTB!}%jcq24S5aN1Mk4~ zyGG${*RgT*{QQqQ;zJCC%aT`?1o_kFfGytxIw3USuek)Gc&@cQV@^&97EW^OV;@kn z!n{2dE}$#Z>aT+S1gSnX_a_%C6VM1^lp0z~Dq6o-|NbIVhdpsrH2`dg(F;AvY2f=h zj;H}y)d{KhW@l$ZHka&dTQ@sDnDIu3#PH|h!AQ9rS|w=c+)6bj7cLSX_UyS)4lWjt zv{Zr%<#w&1IiE7hg~-Cn<>5rPC}yMm$`?(yXA`cOC*fg1LGX#c>urs@X7ORTQBCG ze;RPYiBUgz-Kv|K%sEL+tdX8;%N0yZsfyE)>$WSDhUNNOwiPk;c{h;^6htF1mISn< zgW%n8)-dn6r8QLl;oHQ`cO|n)xrFZwoS&zBPVg-{upf-1APQ>tr2*!jAoMT|b%}ID zg@Qfal66%?334@L*Bhj zLpPQvvyh~#eGi}MvZn3`PknaYiAsY|p1?R=*Qois#^txna*(+jOcA-v6_@49iXA1SuMF!;{x;%&JE7{VN2nZUyoY`sh#?(+PsT@xE}i4@?(oNuJyR$Z0#Qvi7jfsmvp2!>eyWz~Im4Df0(j9s-%@qS zhj1|=G5vWGrT(EOt9!xpeFRVlPSYHf^O_lJ-tW+%fyQbquoHK;x#l!Pk?CYjt5e?j zB7?~Injg?aU9y-ixR|ehe2ZU$X*Ot2IDPHma+{rR>gud+t>5&(F$4o9E5$H`(NK+9 zOcJeg`U7uBkq`9xhHOO*|4gd;=T7+;7@;yoVs}FZlQN)nEK5G%h3VKRk1q%0Vhc;1 zR-C*=&F71?3E)Rp;u*U0*QUDgvq^s=z8kuj{fx_wm|Ffd7}fKkgLpTN{G4GEV$Rp} zaaYp~M&a4=^kDP0LNJ;ol2bsl*0c!ZQW=%Y$$d<|x|!>h{7S0-r!HkNt-|rb13>kT zOZd724qU(8dZ8?{Zc^aTvnaPeVN(&3UPZGoWROI^78dC7B)r<}m$kXyHBfu|#_J-W z4a7P8$T~v^UCn0Ay@!FF`Q>S9`&%mkoB>KWW4DHO9)oR5haHOA1+9|-A|n@+d5;-x z*i=Cp(w(gQ+UNe??=bx=9q?{QZRll<3_Kbm59p#>Fi)q*pa{xxEkE}2Xqs9)-P6b4 zU5rnn!G*R@*hG;?P2!AsA?}ms7n7~8he(&egt(26-5MtFdqGkc!7fXur-%G_to2?s zKON?S4{IK_TDbtqf^n(A5AOXjh6Cp6I{-EuH_~!?B{lKE3ZGxiq1eD;UQOdX~(}cPDvc1UOB~ad5j%t^n7@@Q82o zU-|UHdSKb0FagI{b;=HF)`1? zZ`6kBTG-dKe5Uv7reKGB8M+FHPN`d%npqvWT?ow)dpYsD%{FVikifp3*z^1YmlnIr zovFO5mOD*&eND|gp1#hJeBCn*=+*~QrRFvO?0hj3hbdiK|<3&zw zJ|sn8LS~y>y=xTJG6vtlt7I zkw{iY*5V#@n796#*{|xS@0rsP ztBUSVCD}$e{?QMd96U-4B0f;XenXgN2)Bk@uzRBE(2E`M6~o7jAc5QFPg?1G^2Hm(nyW+vin?LMlGK0 z^8GFn-|iW)X;8jXuUO|9=VqsZe|Gi_Pscb2IZ% zp$ylBhHRcP!rE47u~Ba9o+t7#&_=~SJo1)&P(M&B?|VVH&IbM47UOLDcLO%f6yYg> z@;OWaxL){~qEcCKnR)XHz$CS9zAYN|bhTi5#Pt+K!%)awBXj!q9SHDt;$=6_aL@qEu;h<2 zK*uTh?^PdC2CBBVuEbB4Eafm*rg3c3@TyZPS}$pP%`Iq)J8w)<09M5C*7yv3^z-X< zg!loW^=x}t=&p0vCoKagFf=+j!G36*qO%9VrxLw78NFoK^#jA!7jWq31=28WF)K-E z_`{s4MD)QYr#LwEeI1Y&@NQ(IiukoLHSS}cg;iVFm1-#(dgcs!NX4ZoG?k4neA9u} z+2I_$h#NmI{JlW!u_Ri{8jLk~{Fqlzyd|uK7J^s6c$!O11(neo5-p63ySXINUdKH2 zGSaj=AF(a0%YnUG=Y4G;OZWR1lqUFy8yoPaE$(KEKaL?LERl;V;GGp#c?8uO2bD#M zPxMKtsvUWJu^;FAnCA%;C{>Wy1V*EOPFP8KK;_`f+@I!mdM+CnM*sdK>IpAO)fe1! z6q#v9*12@m@w9{I-A`lhtS-vbDBp2dKTiVJpaF%%E)=E&&S zq(|d&&=kcz*QYQbkw}1Mh%Ys-*Fgzq{LG5vg?kJMX00Hq=&n7`|FbPmbt+;xS{7U5qk2>X`5c{VcBETw-|&zXmGr_?aWojWS5Dv5t#@3y1WB zLOq8b@B7C<))Y_7kc_#m;a6khlhu#Dh|Z=037ZZdBGw(`7|5bks~0 zTTjfvM(M>SdlwmO^X;Pe(eiwC#^FEp9^WZ-v`}S|!rJxK7H^BQa_nluVqcI{3%aJ(f!p1R zS`KwDuKUK$qNDA=u4|jpT1E*%YbFgZSlGLy@g&W3WGYF_A0;45pLvbh5ep*YqJlNE zN#h@(;FRR;EIfw`^hHIKKcr!Z6)C^%A1Wu(Vj1iWlp<7~LW8Sk=aLwK_lo@QT>iYz zxz}r`>|;qXtZ$~Vhb0n%B^nn(_n7a8h^ZW`t8*Y5c3dcnML!vesLc_VRPHk$SQ=h( z85nAB4bC?Yl7t~a-YDf?O&ZyH0weB2$(U#vLs^2z1FhTT+v zGmjxDFle_J3ygiAd99S!tImpEF?YrC@W8N zB2^VDNP4-9fn=J?D2hky^;fq{hab)Qi*1~9uA3ipA}rgx=|R2hnLKer_Pg@X*Q^)NyUJeM|}(%`=eZj!n;>MEuOr7r||@W+M{+MsbhB%3OUqnsArVO zTC)v>?YOLPCG!e9xnlz6BvThu-px0QlVH;;)F5(RFt#SyL8llj$_!##8E}mv9mibi z0e()~e6xwjUp8ym!hOdlB!j=SjQG+=42Ne8Wi*JQ*`iS)V!SJRBYRo7^~rWhC4bG7 zRdsTS@#^Iwrq^M-$z&&Iy<|n{wrkZMDd+Ya0Bo;sFBnQRu9x^dN3~?A$~>l#U5+r9 z-kwI~t;?)R<3Akgr0vv>>3>!lb~O8pVrrpN|Be>p@#FMwiLnrs1^}I;9*X|)p9?{B zrYcue%UHMW3e31x>9opvd*H(DE|t6o$ufy?h)zh_PcJ~#by7)F&~yg)A#;>jEq1<>3&_gIjMF7PAj@;=88r|`ZG3h z>XPQOTPGxK;DC$Oll=}r+OH~WE1QtJ`BY14Yd7}&lAd(t51gyky(FZK_`1LV-Q7|F zenPoZdo-l@%W|wB16oV1XLy0vbxjUbScjU=sdFGf{Cv2Uw3c`Dg2SPbxqI$gd_JES zM8Ok^++L z9h(MFItEy!mIO2fHR@j#E%nNZ0(Si#&tKG^W%?Y9S`*Bnsqg$qJOn-gSk^oV;`7~A zT)Pj&*G?=-4q#BX3*P41pDIlKzTw7z2NI+`FWRC}Y4K810me^aRyPMBLG%;rC*ky! zil@v6Pm|?F7h5p5YNIm@XmLb)=9{j8XI3cY&-9&yxe@j4(Q@nDTxggh4MBu(5@4hs zp9{V@#5qYQY%OUf@v z30a;Df)|-$_fdpB7#&UquUx9nO@_@=8lDlF6<;TTSHp4kKL?Pqmv0CtNjchxxeK7s z&e{!-{+X8cJ-kCRF?v>|jM1X&;|HxyN9N<;vo`bO#8hMpb(eZ7W7_m2HlW6g3h6KL zpL%nG{!c{YStpYI!tP6-{Ym=+fj2%?@m=CRm5j-6EE~h`#63`?btA?xxY0uUIpikb zw@(PBuF2sg?XP_|%Zl)RVjf5U_eWdHqRK6^GIuhQW z=n{vPlj+H7pd$xS>O%;U?@R9-*>vd1A8&;;E=-wwfg+9U8VkQeKZ?uM;Sx+_m=oAJ zvoU^(4OolHNhK*rZ+H{N$6^AK?;)MPE3*`QVMhqKEvtvA^0WB*w1-8?4n|;d!`sH_ zwmmz2wv@QW){M!I33n3YL^qnfsMAEt;i+BxrAF)T^vDA%D44X1DzvxTC{`%?jAHb~ zBvU}x*_Ayr(y8o8QeMs)lR#dR-NNCN4qVTm)w7y5tkV>aq^F8}d<86X)x{y$**8?u zI>b72UcN&nrAj_mbDzfN>%t_;e4|THCzz$4)-1`*y*1R_5zzo0_9YqgzzHtQ7T;e* zyS-LBI@~GHuVA`3Vbrr#{NDZT#@U#afGl4m?!w4_Jx6#(FUpO{gkJ;Mp?zGYY;MlS zlem{{TOC$G?NH*6(BC%gv$@#F8ptlZ!jdL&2Ld?u(Lg`-hA(C|4Z<71{_^G9Qg`xV zKu(uHvg2eGj->M~j~vT-QZ8g(vT!#RPxyp8f_`8R(@?nqN|EB4AYTs6wF9J%y!J-W z1nsbYKFPI^rw^m2o{(Y9&bnB`3sv~oQG(_R>I6@sClc#xB`=-5=;}k$>OUlK?&<& zBRUKY%GY~+mbszsQ(~~XO-f1nb>F5Z8d-RKxgwB?$n;ZJ(MdCDuyYVCoYVqrcYHb8 z(eLd77(hEJV!wJS!bTmZ(1&rs_?e|h z3c#^5e}J=S5`#L$@p`Y(S3C5uo8^DBoVJdxDc9^;--z8c!Xy?9;YACIumW7i-Rzbv zeuTiHAuoWShR(BH6G}`#L7i~Kgh1@s;X1+PzL0^F}PojM3 z(F0^$riVXY0YGy>A3j44w*W(EC=x2jduuZm@W~4y+w-}&E1sPqxdWxJC8P%#sBZzy z@2%9eVcI{5w7q#)y^lJzS{b_nKc3KM(R{At^Ij$_vMEh_}_I4sR zZMY3@D5aPelWLY3#xtP)qbb7BFRy_^pT;(6rCp{HYPUL<*y%yk;=-l?;1W6x=-p|{ zQvbzWOwUioZsu;3a=FKDwcM9F%wLIQ@0{THqgQ5#L88Q+{L5Y(iEL9h`3Bx4(% z)snl68j&q%JZ@-n;|~X_IC8;wb%U+wIXyJlz%X7@-ESe}pe6$~G&j*&J^!&)Nta!8@__)jk_U-q$e9$xcE%i3aH}fZCw{v~(kO zw{%P7dgay`m(7pE@6&y#NE<2|K!Yk6|kWWBTK;xn5HsVCga;RYLTm zcyewOXDJex5ak;0);wcuMx^c`+}^>f$|Y+)?Y}WhJ9!Io%eL5rNE08 zVLk#>?u3#>97%L79zWy>WYsztnEMu5MVPBS5k7G)+2ni;1b5Y~*ajOUirvUc#zrX6 zE}JrwCt|U}$kGuLBbTC_P*xWQ9bN|mO;g;{TU+BAh#CxBsxTW#^79E+uKsM@n0$y&o&eg*==K7ys ziO1#VT_y&Fn$MSiyPspyM1tb75nU@7pVtxg4z-O345db=mMLxq!d-1VA;C5;bmVs zJ>KG+p0_BnLS`J}VwI9=YI@o97ix+I4aU{USmQ|52FJ17@>ZEoz%ba7Zs_@BTnee1 znXiavpy(WVcgY6M_WV4P`-|u5xSv31<~4>7@$bAGBub-VV^H^zsAT;<#JtZDOI zgnjo>w=i0}pO$P@w`g7Qve!QDwqr_7Zw-qouM$Y2RJHZx zg{YPvXX{8;j!?lW>^y6ZyEt?o0c*e+qJ+Jfo__i&N^~hpVeFQ-i958Jbh=Xh5{LoK zTkq53uZ&mdmnkgd^uy^Ois(gW@_vN&bjiV(!l0M4yxhLpxRqcawP$8F|hjHA%>@C=|Inx>Tq(z z))A;njm^oUCm>F>JuplmP*~R4&_!W)&HC%xhfVGGrhGufOW+yNe+D|~l@Wh%0Gu#I^nz{XL1V4xBCRZ81UFPX}5C?~oO89AEP9k0{+)kE9!ocqsML~84rDK)Axx-bs8`YGNU>rPY} z8m~jelrDYbAo?a_LfE(kRu9XXvA8FI25^;lGvS~j-KuIEaZRDy40>=(BAj$^6Zq}U zsYE7xj#f<%pgbe`ed!wG?FZT`18(MBu<`O{Uk4xFxgDp$7YZ5^q5-+Uo)VW?KB&ZjRH|8-Cw`lxyQC_mMWqxNDjOS01HBhl4 z%W3<&w*U-NFU$r%malWsUo4InNTu`*Ayi9dk2+QH#+BGx74&B&aWSeY?FdzJ!6!je z?>L}z)J{1InRUPpgZr}`OV5w(b}%D27bJSJ>#84g>7k~-%L2J{5;D0MpvLI%I2@K8M#LFqhSjq6 zl~=50kxD(DO#hy>Ku7Mk3hVvIxyaCDs^Dj-Yy46*V4cA#b7eAWN_*IH-nuPWNwzzx ztFCaEgS-Gb;m59m9t!)r(h<1ly zk>7)$To!h4iqd_-V-zd>eDN(gRY!Vb&4-&+((@Ga=Gx^G`KuY=m!2=lqAok3W6b0> zM9F)-l7cF9JBVivP2>5+Ble$?f&}d6Bj5HbP~J*;r?Nk^<)%zGhQdJ*$cnAVBLI5L zb!X_E6H`0pWyjAGv#=S`xf8K4qW|vHW*A z17AD54hr7!Ws!K)>6OtiW_-qs)*_x}uVutJZX_RMHNu@^=+-a5&T~FQ#7)b*VHfe9 z?Ks?8+KZ`WdE=`iV}2~E9$pz`0OxIIMvER;nizfqu)QAw`~VSXq1=K)A6M%^5zp+z z)bmVv4P5=@MTZ!FTQ1gGcOxu-A2-VrsX0_f(4QWLQ9Q-Cd6 zS;4)NO1Lduu(tbemEWRy`rft^NH9N{3bVU#d1Tb-ZfHpws3xYZ9Kj2TknW>1d}r$h z_s+h$Us2)~aw*q~7z+&@lZP06!;aw!l4J?~&@JNkdtq=$>)*5f5~)#;W{kHzSZ@ko z{|TXV$8abMQ9bL(VLNfE;db}9=?4B|I~E&I7?2*`4Cl-!${E7RH=YyOI?{84WSC&C z4c#I3Vu_d6kz(U4Um(flbR3Pp5E1*ih-$#=o#x}=UQgRPSi z>q)hFV#pwGHHBV;I}WhqqA@+k6te=n3ctp zwSK#=8Vwq%NRuU`+2@7(aT|a?nhvscIVx?BA+Y7f5HW&(Cn8Sihk4QZeP{476;w>k zyDG*ZEH{)PgjLf@@-382YB;ZDk(6U)tQk}o^Lj&dG{53zI{5cLwHExr*->&F#i$@{ zPQ%7G-8mge8K4W= z{TFIjpPGX`azz^T)s2@`v$`isa(`6H*O+L~dNW2T!Aue`y_XK^O#0MDO%+)7ZM)td z+~-dKoRHrN9bjxi<7I}iC?Xm0IjI5c;YF@hd<(h6UdLpGCxKI77Ig2vHU9nMkIoS9 zi_3|lL|J3O{LR(XG>ha9%t#n9ntR+BvK#wR74r1L_~9tYQO^bh{_a&pihS$yAZxf~?_;Qac9vEt?+1~@yAl$&Pf8QzKlUWd z@n@3}oCk|KI5$JJaI*T95|S092TsJP9ekx%$k%jkX{mg=_n8!!aWnYFG~v)^O>Rs% zgk(JpdlN)ej(2SIp%p5OJHHM+HE|+oOKZ8@+QG#_QGJ1R&s6(qGHVpge$Q>yvfIHp z^0m9By;-7*rXI}aDo(0ASncLUV7U73(T#Hg8fRI3_vrRIJfdp3ql_3fH}joi(F9Mt zGTa(KbK`}oau&!nCe)V~u`tNNp8s?CLqx~ERMzle)tI70pqnxAJ zEkU`4n*QQ!0Zh{Z${$i6RrgxnHNR8ruIxmW!(A|+ZpM!N13`C5}xk8DmruA@32X{X#$wwDcM`SZ}k zQsIXfEj3L7@h6_`%-S=P%R>_06Zb+yIW&$i3PWq6DPwEDB-PolYuDmu`0#7m*67~k zGAD&xk-Q=X*>X<|mi0sdwFZ#_rxb0W^^}xO`rT4E%y6WPnkdmD4>5jdeD^b-Q-^-! zLUPmbKyR02|GuF8joh8_%fWd7c$S?#GRPQU@qa^De9otd(g)gK#gHbFqaJGH(v#pIG0?8;*{k2_sJNhz= z7Bvx(#<4w3Fe8E|-h%=dO6ZMwB6@(XzK)Yg5`iP-cn@L`4sKxUErvf8pW%GBw%M7TM3{3elY`PQfnPS>?0)dvUmkKGe@{zJc zD5M(7SZe8RTFqE1!g7phGPmcR-hGQ!OY3vw#7H&S_Z9xdu9*_Dtzj~scC)ln^sHZw zf{b3e#vMXwrn&^~=smP5^*~~Rp^jIwEQkk*Lt%_ANjrPer9sB>w+w5AXBq=sqpDL8 z>_Sd5_8UYbf046IrDG3Pv&=+<=3geR{M91&*>D`|gUb2LckI{y4c9F%`~}%5l3b-WV{*#3PE#y)d}K2qOh{s{hF!m2 z8yNt0k2WX0YK8)Sd}h@$GRr|Fj^`?eQr(LKo&Q6PVy?z{BD@PDy(TIS&P@XyUeoPq z$XWhVZ5Cfy?p|1%|9H+6qOnI2Pe;zC90sH4YCat4hf#~>2f&^g7a{DH$rp&?ooDU- z!sw66yj|@1(ibcQ+2T^;)?08J5-N(SgmV%kF40H5`DsLMcz6c`8KonK$?Tu2yA4mq z(ztc|EfYq#9sN=3R(kQ6cQ;*s7~=|iq>JLuwu?^k?u9us*XZgQe_W@#G2Dw}&nVdm z>U!e2{6;kr|1r|DnrjDCNq~c<6#O|r>IGq?E(|9q!^%1Ylk9%eivAE22B{d11^aRI z@{-oVa!N0_Z{=p!vyyA0xU!zK^R$17bLe#W?#I||K)teJc`U+uEK7Id2;8GNfjlju zDqkxZ!5&=P$}rw(!D+5dQs-B&)oySkSE+oe-It(TUOaCts5Xi7mM-d`Yjq%xP{kEd zDz({@C7^SGpEr%^A=vP+!+04Hc`G^k5UB`<^awg8@zovI z1d-QxUpzHoc@2e<2#tSDRtkFJILJ>6Ub&05i-cu093nbLKL@+PPPIQ?#+b=5;M-Tg zTE@_`$?(ZC-gY;t`DF2n_g~jALWd9yN^2FWLk|4db9()2*@3?&d7x+zb!b-7&>obZ z>M_!e%=IjSU``WdVuyk>^hARGjP?9%11jC70oepcQn#d17S`3+0OM~vt%fggGLW|#VS!+a9YcsQ^o8fWkl9jkM z-@^;?Ye$8al-8w2x-Z|KNam}!~+)jRpGUdXR4d#V533z_b%-|fFi7y8#8yRR>(w_e9|%&)u# z9nIsJFAet$Ta@^Njz8OaH#Z|HJ+M*R%e=KGNI0{j-(z?+4>gR^{!f`om%Q?|jUE zJY>K582Z zMCN}C$T0m4kYQo{n;-M0vHW&W{%x83uR6>hPRgG~%$vi)%)o-f#Pl|0G&pbdKdl(1 z*K2*%VxZn?%uICu+J>2q_P6lzd(XEu|1x9VKL4qo{JyI{QIP+ge)6AF^xyas7G@ku zIu<${T3UK~9A*|;H7IIPTP;%~9bR(-Q#~BY*QwyO(a|%v#bJIGgs9)9_-%ob?$r&V z=GU?m(K9kId|gSy_=^45>Y2&oyv`T3;vZ$G*Wp`HnE=>_BZR~O+R6JGkN}@pD_KFgZ}hT-t-fu-?+;E zUOzcblv7Mrt1Go4K_XYD;31WV_?ohL0>2Cik0avklKFLcB^a6XL|K)*9){mGJ?yy~lNM7jxl@=s(K!2xJ>5(diDjxtTvZNlB zIRGj+F%y1PEIr5(lwVhNM=3lmKtcu%Do^JKTKfp(`X=J$2GZt6r#^^C2WCr3<}6bw zfIeybn&=|{BzPeGG!Qg!zNeZQ4s0MAil&Pv(J~N})zv0|$ovv8Pg}YrpeGI$yn#a? zAvhB%YCD4Q1{6(zBEQyr`&u}Xro1J<%bJ!rbDsxg1AmGdd@jH+L<|Lhub?=~@ahLm z$cj#|!p@J%@V+rG=(*2T^~K38EoAc>4tH&hmmbAFm>JjVFR6eImbNy2EWons@$d%o z9=SjHo=*~?x)FZvo~0K-m1?@=`+*EEVgYHQZm(}VJnUppReqHU%we0J=>*dRt#$Bv zL=I@Dc**+EmVA={laZ2L84VkF+~#mqhEm{@NuxkXEezrL>$I}1>P5R7_VHxHLdZ0Q zei~7;f1qPvz)wWr@#!%6+#_(Honk%y>nCjr$2$N`1A}r@CT%YG?hj`hKs;LU@KONX zh#Q~!0ezbAkN^UEo52)2QY$cwSnJ)y`hvL5%Tjf2UG4R#^4S;n6Vmk_E|%|y+cx^n0Q~vS zKve;X4bKI>`y(0?Z5E*(N<0!Q;~%XI+9_WK1VZ7)K{uaIqXW$waQrVc;Lh=k8x~pk zpB>i)4I7=?Uk28Bn_HN>?@rrann~Q@8nOwNrvfl1;O)%?D5-6BWinb-oTjSV(2C>ev;WFj^UOM z9^K@NQ%7Q${-~NxHC)j~@Tfc3U?ls2&xY@lgy9EDd=XaJLI7pu^U|*jVz=(s6Chw? z2=2Xv`cCPYK~B0A7P{USgnQrMTKVN~uQ87Obr6>(IJ)jCUBI2=E~rpFuzIvWlm~|E zn!a(fzih;@rZ9;6k063Qv{f2__V3G?XHU$%+;@i-BzmW z=-@Se7=8FIogIx&ENAW``HM@YFOSpP%&=@}$nY!vQB@hPAjZ^11y)pRHx1P6FWFLp zv7-jCT*ubU2pyY(1tN=5=zUOz#eVr~?!uAN6d;FAPT7>Q0r{5EA`sAO8gnsK)mShl zIU>Pp7L!FWM4G)L6fQZUZ^g-wSNa@A;%_rf1{#SvGT+!EYo?!Hz?7(`g&?K+{Y6sU_me^adh#cz0O@2p)Dmnr2u zcyCmxy(ufQvxf=%V;)#Hn7?qQZ|Si5AVUaw1U@@w2cqGo%EF}tIKr7Fdrd&(S4--Y zpq)ZOSOYn5{7F-~W?lwJHsx5qFtPrbD@d?2!I(~oO4$g@rAhBhDHB)k)uJ3jH(3zR zn!_-dEN#yT^u^-m#)XhE#LMj-RPc|i`DXGrmXjWNY^i(&3A=g&{OJ{$oQlX~mxwwS z)N@?Y6{2foFvX!5as)B*vTH<_x>lz{)P1dZ3Pj;<5NP3@v5?SNT7lHx)9_ALe*Jo` zEPC?CRUI8CeL(=4AAc64rVzl6>V#=3QOG>7&v^t{neD2LVHr(ilr#Hg8ayOiV)*p*7qscwr`NB*gbPU;F!PfsB+EfY12U|3M;w3ehQqajkJ1&{Cfw}6*iV%GnR%; zAhiM;`%UX8RsTT0r8*s9tLBCB-ZSeVEf>CM?Y*3dCuNB+qZ&?oPNj)yYTKwT??Wx_ zO*sN-Z4544!-_eB>Itqz_L)spDGR^(?X^WU+#{&iJJ<*di(}8cO+P55>UJc zmBrVm+(MYGX!>BktI~1KDjK$vHbfY)=3=Ai&R-9s#{(mBTf>WbbSXT9jB)W!Ot9=PuVm}I=G+e>^P98G0BS#FS=#$-7G(FtqH$sXcg^SRdslp_V`%mgHg=AmQWOzeDvK4 zW>($)(*+)wl6{WX;*`Z|Gy!(%;%1LxJ|1wEdod*jM`m+8+pt6y2`&~T5&>n_3F?Mq z_(bnU&D4kTP3!F)yLC!8a_%~t%sQb!ckW!ac8%P03?#+ASQG#ghABh;0|}4fh2&lm zr8$@-AKQVxNW*NMA}mCffq6y1zP>RuwCT>z;p$%aCQ9VTt_UlaW(pzr#IeN*0`XMT ze2FomymP$~YKjbVX_&&1A!_3~4@7=DQ(w>EVKS2DzOSL~LiKTH_G27^|41I>RYsOl zShX3lAL5*7aB&q^${3AyTIAFlCd-uKl+og>=RI3Yr~RrO^pxOFt9>+@y#uo#+tsz(4-K^!?=e~Y0FbS1ZFhilC zVgl1>=G-sqd+-#_K^md&kH)vYOpsSOYlE{L7wuLCN`MDZtCrVVMts>%@}lZ$O`vRw#s zKf&UZQAlFs7NxOrGL4r7ehuint;LpONm6~tk?e*3ewC@wAWlp$^CAG_col0u%jBnt zA5k9vJkSI|I|`Y!p{?yB8eQn``%#!GNzA13>Lhq1x+#}alYhVAq+I(ldvxhcc;=hR z%vG@(cqa#$Ey0bf#WKb1hWfI98Y|Q5uh+m(;k+ted}n4l1B2lGY1VL`4DUs%#EVnW9%1TY;R5zT3%oWQbNb5=ZrM~tW7oSdg@*wPEr z5W)ry4kUz;>yY_tW*s>M6ka$(!q15;Q10(^cu#Z?EB6CgUA6c=M(*O<6G6Fz??qp8W!)wNM0jsRmw26LquDDfeDIeK>+9H zU|jKO%~`>FlrkRtCWSpB%4$T{T-CJCR`_A$OA54R&m*KTWA}>bMX_Sm&6A)RCcA^M z+9Cyn-%hI={SXI(yCq)hlOW1YgYKRv;l<-eWLGTTXp0k{qAj>GPVQ+523F^B%9>-u z2ByC3>mP1wRibeDb&1{pLU^CAOy+E^+t5-9boG|PhePSN(Qzxh&cvvSqOVbTCtP7Q zWLZ_e7iMT94^sP;p7W!5Q0AO=mGGTc$DsKSjRSp|Z6lEkcWyR7E@LdI8#Uii@@lSS zU0n)OKbf|SqBZ;o@+4#3=EgvHnh*`*^ixUflo2uX_*3yhm%Fj92aW8wr3ju)MfD}p z&|!(RP9q!ngJjcv!ce^t{Yq28$l$qLgB)*Hbl)ZRcpt^5X!;eLkh{iRMbJ4^>mH59 zpC+UOrG*~B(-yK}VCl??h+8J7dgicZlCwhgJcxsX3bkaGO}kwp9rK-ste7Zs^+tC@ zYdfFMX(_Oo@+@isixjD5zWY^11xn{(_+I#lmWPfb*HX-T;oDx|+S~@Ak@P%a=R`Ux zkJ?aZ=LqL7oPbysYJmgo-r9_hLp+wzU{?>%7vztB8Kwy$EGJetYoHDCgXAxU*uX58 zj>l$?F59`t`#E$oUzpg`Je{sG80N8@h-0I0JM>H!I{n3{4AT*!V(?U(?&<=qh@(I% zJNYx?x~qcZy_#M?b4Sod&clS1Ga_kz57;sLj}{<9eT~4QOpa5$9pLnAtV7x(JtIW_ z>AO(G#V`1pGM3g(kjGosg==K#ouHD(gexCD8C5*)ejTOl;34J;Tah(K-b3V!u$dYM z?+SuZY0&a!E>kazGIO6!{YBcv^|53+fLAX>`k;ajsTOr#NMcL-Q*1w2LT79fR$Kne zC+euf%ExJ~+NyH!)3wK3*RdQ%<~#DbEyf9hZd3 z=lLe=QPY$Uc5^=@qWAq|Wmt1&38@6-V0Z$W1~VD(!^%aq8ZZ$?Tbh64lWn*7CE4K^!>y( z;54-zuRO}rOfw1QZU+AtQu)ux2tOrM8&r%k+ z+ymw$eVzn$g3$ElJzY!Y%`CZRKV-2Jnm?t%RWCMg7nd(&!-l{hllO5>L_Vfr!HsjG ztP6oze)UET^9fTz{)w`Ut8C^E^Q-)mAqkjvi`)k!^aeZIf<|HlaKaA+JGI6F#s*@& zjJH(qBxfrfH1mmR-#^Y}guQ6Sls7{d;t!u@PSa9W>{u{YfA|t}Cov8c!>MG?L@YMW zrh{?JS-K*vsmjp*5?yYDD?`)FnQ&$8k+;ADgx=hT8?_Z=E=Mf&F$t>&eYJ>b(%|~a zTY|rv1^ON-IsvmF<1JqEM+J&fI0uYHTcB1c_(mb}MZ;DnW!v+5ed^IQ)9N;C^!SXj%Tt>UZXbrFU>DgrVjejZC}(Nier4WXCxo-@ zf+f6f^t)@I!4YLo%kI^&K%mt2V$G~4deiTquMW8y8pbC!FW_|8 zRfctKer;^fWi)lN|EsDf^ezXu_aW|5AaX~ZtdSd5bUp5|L}+Toj3}SWl@|vx^uC!K zW)`C|nmTw#Dy*qjhbo3#<^b`8M+n{;PPT*%gaK}?-$7Nlbm>g0bam!5)D6r$i*KGm zW23Cuu|i#_^4U3l>vrOLdDc2uoGq`f>h|*wWLIORjV5;1Hp@Cd`dVC9``KIAC+syA z>sCSuEEZ^AV3cd6z1AE8{{fqO6%%ksI zg^zY-k6z$C2+3_k7Nhw189|=*Wsi~ui()JZ?$pZ=zZy`XB&``}cj`N28O`Yse*FZ{ z;oRu?iK>49WL7Z?^i{E~k5!$NJ6PZpbs@H2TzRYy5axj+XjYdz8=*v{f)B&`LBPTu zzq818;WGJ*iz$ijPH#gH-eJ85olLFQX3g_;|rrj6DRe8tKN_NV3D zt^j=p9ka`snmhiy(a&mja#NS~RiBaNIAwA8JC z-^B*S0yHdPh&RaJv{czQE139=rQpOl-{qQpXV=@N4{*aNm)UtE*P!Ymh)Obhy>87v*O^upr)_b>-@jc91k3i%d zY+=qT2__Cgl6-gcLO+hN+u~FCfB~tT=JV)Iez2MG1@dr}q*YO}dZnYBdGbp^o9)-u zgZ5soGxO1fVJ;S4U2hqdb4qV>w^ug9+R zh2tE>q{i3JwIwS|`JtPirpzLm7W_o+`D!wbO66*DBt*WW$(ssnQ;(rvs(Gb`tg$G4 zyVQ=T2H`vf9%@;#VQ#X1ku-KN;)ie&SxgAHTgp^o?y|R7G?)32w}uRI?E|<&8_@ae zrdCFv7h23cj5sTwG;{KUWXCr)9xWFH#f$dZmZK5rI8CI3&aSDndD(w$DLb}i{~O+t z9e_k7I;(caMna4nl9+29U%iPn)#h}DI50M+%YT#`8FbaP9X|AY$0fH4n$yFuMwD8vo#zEe%`Vti>*m4sIWGmT87cLJPu%M zD@_pFr=y>3?(fhLBm&}n;idg{Mo|k)FRBx*r>TQNFC^!Al#Rus`Q7qLZDET_-3#Ux z+;wm}E|b{Aph92`V4N8*J%2c#KTy*MabY#`u*y%CyhzV#K*Y;|Uxf4<)Yy;o-L`A? z`PGQNG*GRD`%*_?gj_vmAsn@b0cw?o9~2zlBQ#xi>0JR}+*1$@Xasee`RKGZCDv(b zG<7hYaZ&s04I>yW<2Am*wL^@zA8&JoN2ixmAT%X@#>Zn!SgHERy35VX8knP8kxeri z7X2gdW|`r;5)MSom~N>7ykyLTxWxj5452)xWZ#XTTFyaDu6A}Te`fRJ0uGt`Ezpi? z1=WdagtzFOaLNPH!*y#62-u#Z_-?2{Yh+#P4AlezmdUd*&jc1O)rOU`oLu!G zpIp8%d*yi1`%36rgF!@>Ly`0u=Qny`=}&tQq7;%b=+nZYT4?#sQfI3kYqviC0ssRt+G_S4HQ@RrNP?70KM zRf>t83#0(e+7DFV3`E>Zct{y86 z-R)aSZSpo0hTOelcIHd~Cj5T1M#D+AGG=nonTdpkKN1bT7u=!N5Eosr-_{xAn3z_SZ%Fluykx;XU8!7i=Lw>;_)u;KQ`)ji5gnW3t zcS9pu;eoNb{sAT!0DCx!oiI>;`chh!Ngy#@**W*feJpxuP9VAqCv@q#Ahl zZ-uX&{s#Y#C8Cl#5+VPa6MPhqL2RvD8k&*jkbC}EV!I){{z~55HcnWcg*8H~Z@`yEis=#YbUBJ z@x^d|&J66@aDiSpFD3Y!mvqpL!o8r3Tf}W!4+ZF8DI0yQ2m}~4!!SLwQ()_fp@l>D zXyRD&YH+2Eq={9~3}9K*boKWLvNX0R5?wwn!vHwf?o>>-5aeI=+f6f2b$}&D%Tu4- z3BGVLt4fq}ImGFC)ckrz7EAO{O#H6Jbb|+n32x`Wa^4;PurSLot2deRK}+qNnb@I~ z_wGS~%B$1o6!2lQ_%pFmnIZVO09D@A7?Vy%fxPs-Tm}dEYJZ@8_ER=+D|BXgvTq6@ z?Z;@i0VB~>@rk8GZCxcH($IvaGLBQ;CpB&d2ri=OE^CZKu+8~e3Ck8 zE_fNo@>X{ytYyemAwEV=?zxx(?>P-HP}vce1jIWOX>m065s7p`h;=i+I9K?}c|FER z%iBYPd>v|vI0WpWtTKgarX!P~cvbpol!us{H)7YJhoChoala>@f5{QinDTT5U}x9y z_22fUA|yBb^k#)u7KWF!>1fCSus_SN2UCe*EcT6%SSv?IM%kPL3VxW^%$hy-+Z|9e zgBGBQV^Jt{^^K*S1x&;TPi~;szcS5=nlU|QQNo5n^ ztA#ncrGRWOA`xhJ<`84u$+$Jy^QSV$XF6xLf5JOi@FE?!Vu&9fZYRoOd{`zvk|b6I zD>D12xEL&9Sh9iES)j-^tVKHo6zrF8m#0#*k&0N@;&!Yk;_`q403W$*IOo9Ld8G!(Lnu?3+#q~I+*2ku4eAMhJm3Kl$-<1} zt}jz5uk&`)gx0wxP(e%Z=c+XxcBSPLkc%qq?WE&g`{&2UL2OFnP96$CneaOYXTX@& zz5ZQ}1lo@#nLj|IK(+lgxs71B5z2cC`V~cEo4V>zzYuVBE9q>|b%;DiPTk9ixWMc09)C-lZf(JWDx!ZaV zLh$UwEQM0OyjbLwhC@{{Y@c~yX^vp837Tq z=1Uv0QAA!KXR&`22evYLMfHh1J~~RGs2=lZJJPS*pI8EWaV%mn>7L23lu*m8tVWD= zv%~SHShJSHLdo<1rdGETRtnh>d7N`XIWc0j=?`w{M4jm9N~TLiI$%Sj;)#%8v<(^} zO|0Z7U)47rpgVv;k^u^ApsH)E;nW}8TH9a;oHQ6}5xbko72?8F(qN%y#_sy@8}R`@ zu}$vW5L^s2IY^|qY~_o^6L0(SqF_HmWHa@@2n;9bFTHRYer}+%-7fznl%zP|=(^<< zjTco3^1Ndtg*BJuvJ^HYGV=k+#guX>i=BB5c)KBOP>)JT3E`%}r7xH-LS1~5Lae|O zxOS{zc$56ciRq?Vya-fne6lW6O^bf3Sp<8-cRzX^2Tn+N_0#P6RP^*(CRq>SKBo!qQC7d~gg@Qv~20PL!?+ycx9^!>)ny!@Fv#!mw1S?}S8+ zAh(mLCQKO)Kvd&Gyn0$e?#}KBRe=3_ZaH^e(LpCD_gB6{!UR!eM%d)|Eg^A+++$sl zFBxgGDxdB<^$HZ=sbkgRG#qO8yUQ?sf$-zGjpEti9bKVLhCDv&YL{M|?X?(x|FDog zogOH4y=Xofr7dlL?d_Mz=M!^iCCKj}JDrRRqq|L?pKXnt98R@I&hIB#`AuacT80qN z`9`Axb|)kU8;yHfza}sbziBpid);nzY##kqm~B^$hl4YH@T5!3&<2wFai2DTfUPFp zdpUf;KMW{@{X`EO*F7TwTLS5aSaNXjSFR{zdMf{u)U4y5QIy7-jDbvkck0}5mpR%{ zwVWjUl-moDFqP=7!a4iMeaGZj?Gp@OvB6f;;;=T;V97;f#!EWV?ji;X@cq?7nOA&U z^!qWRFV0-UAbfEeH-&9z6l|jrn;PRgjiO&#sBs;C#UeeD9O%9F5UlyI5za)FXl}o} zWC<*j8Lr7D19n25jHk;SFLFfo8WA9%U$gs?rAN3b9$${0|9nr$U!#=YSJhSI7;!ES zUbM>*bFTXPblU3WVfMqR(l|tAz1>3#=UMY<{8}A9roz2* z$C&xOSp;sLF9egf>0^iGuPwHkO(Sfp`|S;cCcx?G7%2I+mfI+s?3lxWC-qL0b1A-r zSg`|+RhwF3^Bm%omm%;652d}w7f26>{g)^%#d-er(NatB@+!=04?s0k$Ep9;Wb1c6 ziBT~P63H?8cNYTFbr24DJ79;K3CI8hK>yJFt|BLs3XRZEuj6crv zpYQ)V`|B0FjsAT7vGjILe^&k@N%d!*?Vt1cw+z|ugwhu+v)2w&|2dQYElKs-SBjGE zHEP88+PI0Cj_E&wRIh=jf90r{SYM-3f90rNBVK>YQ8CfIF8-0DdOg&?b5soUulcDz zl2nW=e@jv^zQ(uy5v2N~7ZexQ-yX6*^LcOg`B#wYA1$JO2dRFyi28Grw>DDDZwgfWY7|t(Sf1nx1aW`_kwm0m2^05jY63Swb8v9@aB_m?Ep7<`+p)5; z;{B!V=Gnr!%>tz=Y34C^;qseY-gW_-9SRI#k~f`CMpPKC;&AU`6ktEZHXy`MVLpHo z0FRKqu9%pXOSxB8Qdmu(7k(l*!1gW}5J;*70L3r>4mcb-I~+PV9U;$r@9fCxaQF1b zGwH-#Z2T{t8OZai(7Kv1k&KoMpenqsp3oG4gRf20%Cpe%dB!IZGA_p;!95Y?0ZmV# znY0DKfB=Q`afCf_=evi|k`B^C2};7u08(C1&{-Frg?FH99Xts@Zy`jZ!2m=j`g<2A zVKhOQg!H4Uyt;w->Fzx63to;@hX*EQM%#a4-@IrayyP;M(^c6%aHBBE*M13qO>Y&4 zeVkvt_ed`Ec^OHhnC~AR_~~InhzUb6!s9(l6t4;JtL+254LrRKC^~5(tG5JT`1O}{ zkD!iOp_dR(561@uFbQkAACo^TZC~;-U$lig+J_gVdq%D!<~)jD{BXBl_}92UP13v2 zD|j-|JI0A;69Ywty5QDROik@Llw0#8k6y2xZ1fhX^5mW^rifRi)Zzs41 zx1s}1?0&|>@f3Ze)&`^zeH1JPAR1_cKv27<_7+IE3&EMtd%+X2ZFnm^!)0AAleJKe;8UBST20=Q5p0nU{#iwWf6`D)?F+kMJt~W*<`u+=Lr$XC@JV$gsGXweOz8 z@M140T~L|5{k@YHZP5UHyU~!3eW1G6iO+7S&s(uu*e$7ux_ghpK)U|Z&t>NibHx?> zlZ;F@&(zp2`DQ84C{VioiHVP_V}KLMk5w?Z%=cwdA}6^XIOy3~x#qRG>uo)NNw{=X z+$cQyBDuRSptvoMOAt8pzA0^=ZFm&RLD*Ry6Igu*+eScuaKSwIEBIZNl9gUc0+A6G z7Y7E<()Elk=3pTfsw9{^QYv{}7a!+HaddC!7oO$#wdc|1eM(-0s}^vmo(Z4QOZ0tY z!9NSqC%290_(U3-99(J$0^lMvaX+&@^M26`@W4vq=97mgvH!vpu8H5(W((j2f8b#S z=No%7N6DTI4PG9%@RCB=kLE3s`ci~@1WybbxpSS4Qpu}mQ_f&{yCjGMFVnNupdS$X z)6f|1d5E0d7eP3o4I0P`9{Y<2hc&-88!t+F3vhq$^C>9~{G{q0w>%FHfmT8r{KXHt zrxB=rprD`E8p1Au&hbkidy)!<55Sp4^XZ^4ZZ5Yc(>Mv7A zV~g_kzQr)WE?L~(9$0{pF`U^O;V;gixTixNV&GA?a88xwYySO>rF&fV;&oa_3}HR!QN9XpSUCt;{}|_OZ7-s&~rB> z#wI1G89c2p-00(l4KXOyVJ^Wr01AKNM$0XWSjgNVRtOMBWcc8&pLT<}L*|Mky}++X zc2C^_yoA6twLBN_nwVr%!cn84UIj=f@3(UtG=*h zQ`#ZXu?~v#Pk?F~XI4V|stfi^t+Fw6VPrKuYfBRn591^(;;V=q3u6e zA6hDbbA2*>sLyd;>Fo8$blXdFOt=BPF)?%C{~RI+#VM{4<}V6yplWuhLZbOxsH}@b zTt0tX4pqQsaAQCvNnKi}Op;o5fVP*BN3Y%qI{wIveOSZ{HRU2^d`(+z8bOQk;dYAP z#(p|qd|@Me8r~`qQH%`{8*prqU@j^nj+kg7U5rw6)f>&R5s|5{MWwpsTa9q5_7HiB zkAw-Tf<1|(0oxtg4)R@kbB(_~d+TGU;^Cd&G~bXQKc4bAWjDkq9(4o_dZSS?HX zoW)kAdf&2-1SiA4elWsci!J6QG9*I`D=M=C>g@) z8+g!+KKe8C4sA^w>Cx`k@~O~PVJtQxw6|Wx_lySZtgq!}9%3w)d{bqMzRGflVLKvS zXHW3z*kcv*S+)ecrs{MsfG9AJTxIU=0GHn#;E!!Mc32iZ)Py{sz}xk-DPekkE;Z)w zs&q`B6t$IPF>d=*V4vPqQ2Wu>xyQ2T*?Hsu*EJ~712pu>%|-7Quw4|U1CuL*aiY;& z%WO^=jK${DAqA=GH_F+G=X#*g^B$JA#_X4Pu#F}|`937|ZvqTeO?PG3ycn@mFvciB zvWSNo{$F}dYgq^?^-2XDN}1(tsnHRsfg)=BIMj0K%~{FAK~=KygafEF)UMd$Gq(e# z08)dJaeb+^)+iRCJ?QjR4Qr{1(@EWoTuPB?N}j(it)rX%OGo@>WA{yv$MI%4cx-Je2nq{ym*Fy`#=Cm z6oN#$C(kf^hM%e(R_%AN=S@0I3x_IRHbG9c`-p}vgtch&NdX;R%|Tza<<3&uQ1H1v zOG*z5<^K70J+iq4WF4&MF}DY{597G%V)Ira*9g7`0WP2h&-B~u{6Ov_UG(iU(*oQY z%lT4wQlC_uZFV6ekY6pdOmo9ZpsujaZLhtqdn^P?kNh}A)rHQ^<^hr-9EBw_df~`{ z`SnRG{tRmz_^%BgAbEyQ55e+Gx5N_Np^j_!LX8eVF54SUtKCSYMawE4{UnBhKQGVw zW^XDLLE(?bZ!Fa=2g=hW2z9PZ<(mm@a|%ONv;FSL609@s7jw^rcXy*PD*lNtn7xw#K#9*SQ?X1)z3XgI(|AVhVUZ8SED3e#YG- z)M9Ew9e_OpPFSwvc^cWnP3M6m*>TQsXM&={3Fi3Am#y4}#}^RrCrH^1gK!=M4)X(}f}rlH_&~JCst1bxxSb@+a7C%?DVPEkLVnd%$ke#M9Gf$UTv-*=GtZqE<<(4@ zm8QN;mx4yAy7wd(3fnLbHMZg4OYh?2l2MsM_zWccqKr3e4|#1b z!~_32@q(y?_P(iZXD!XGQLeX7o z?iw_xQoR(UUgPz~296dsqb5Er8pYYSU#IO?oe2WYq%XJX7|P7r#bvtmLvA!O^N`el z=Xygbh-mRvh+)zXz_dgqEt#;2FSDq@O~}{gZ=X@@F`-hv{7U_-^~2IEwaR2?Kbg+_ zd#g%q$qf~@yIe6!w*Qabbn*7PFIlHgdIi(MB^nbawd)CnSYs>U_r6ESU&J_eM#d)3 z&URcFm_Z+l)_V_~>1HGce03}Iq0%SPRjG5CLt}VT2Lk|d>AOQ@anaRbU50kJ=I0LZ zU`ri?Q+4?zNW}M~Dz-h?^#U{;1LE=cyLmzf zD7jfT99%P|4j6~rzf94D!C}NFa(^B*PCc6JjnBh(#J{9VXPT_ryO%bZ;hhR&GulyY zMgTF+Xe%!YL%6K3x@Qnpzrb|*2GAHT$IqVtR;Ie>hJD3ZEz-ZBxUqll{Z00?9IPRG z1}?icK>_Q&es!=w;smC9I73uG6dKz!0CTLo*KjbWYI(EF!O#6rsdS6co^-j9icZ@E zWEOV4f#6fAxNbaayp_X>nwHC8F8iAJ5mFybT(#xtUQe)80X>Q3$FUQgOKl*cpam3A z@*H2T=7@me=7p7(5xi3_kD_ztMu%@op|Da+3tIlW_JA-DDQkM`uJW3=dqdcs89r^&zOCu%4t zNn&U3xPoBVKMf+qt_w$OlE$GM$FIht4$Bx1$@KEndp)~h7a7G%X^)8lmRe#qn&`s` z=4m*H%FWCb+ESHVrOfx2!{6thf7@dBH!?#=fSO#hq`cUb-^K*Jl_1eMo|)^qRV@1k zYaGFvsXnAv3hJUNb^{|fDzt47c5`S;)djd{Q55WjtecUc6di5^+3hKrw@O(_u>ZlK zFWtXOeHK&_N9t~PxcmwLS(CJTq~?G00A4a<=9w+;8ThAMGt_$4 zt&MRwGjPmi?#}sJeD=R4sZx3h?_S#INUEce)*`x|lw@Pv4NPrI-rJ`B!IXexz>Wb; z-XE~LEfH?X&Ur##=EY=w3qV<4MRT1MyUWqXc*A8LfMM;_`uY1D>*g8cP(s;?f8zsY zVt&yyMMQDPXN8-Ab4O#u60v9sjTj)8w&RR|^CH8(U3XB)&@El=n z|5}w4ygA@2cfpuX#BKTB-ggqtG)I=gd=%cP9VJ^J=xk@4IK*eeK@{T69sPzX>wF;& zr?+1_Shv*7Q^mLUDW+Jqc&)73H%Wi82C{)O@}If!VDv5+aMd`Qib4w{-e54shbx{^ zUlU4Ua6>uJwS>7@df;KqA)4Xg9NCe}Va?vOAjaX+y&S1~DBj;qO%*Wi_MjvU%LN3J1Dj#xP)$e3k%&5FRL1^}= z#zxW7ZIiZKkQTTSssh+rt5>AvTx7jIIz_;OKs(00<&>@J+;L8LL)xdL*1ChpDNaoN zLFhCn+JPDSqGav7J9C#Erddc(F0ht_8EJ5saxE&vn3L+@#omj?jZpO%pn5Mq!D7DJ z2h@7l&h<-=D>uyJKX=AGK^fNFAw~I`R*Xy!>N9$<3n1rRpWk$PCtvFR6oZvaMUf|b zsn+9)_*Q~Rk2(u@DIc?f$c7YPjT*M=ALIe@^K36=n+a)j*A~@`xH1q>C*uW0whnCFN~DcpVa|L_k=X{OHfrfOlb=7C}3dJ_zR<+J0WI z6JWZP&QR?Zye3(HrYk0|y}APlE%K`GUIMViC{~opNEf*0DU(a!;x*pdRYw}K1L4_R z7xdihr>H1TOrTWj_UZ75WQK#4s*Zocg1B1>ZFzQ^3Y%a=FR8wnP@F3GVY_+ss0*UzD!D@BIiHUMJeSQD&)O(ju-klywu=H| z63}VVeIummskI+=a>}Ov6U`^BiDha@uv_C3hlMLj89NX>%2FZrVA>i^{ayY?GfHCY zg5^=wHlQNXk$$7uZ_`@k$63&`g$KYewP{5oXgNVH6I}bxo{~$fJ~v|1nY_8ac$qN7 zsgt|3R+pV;#$E0^AFbBytpujPsWH)|bj(|wNc2Nt5#U~au2Ad@oUbD3oz29>Ev1={ zHP{k<96w`;vE_BVdX@|3QTxeG=NzUZ?M<4aE!6KW(!nDtK#YT;kWAq6=z6Bx;UTO! zk!t@_jBiJ~^E*qc-j7Q?$&xQ?RRJSObaKNt<*NHAy+Y>fexAS&lZ?c09#K^F_eo(k}RR4za*+XXO=5gHV*%4!*SDpda!hnb~>wUz0bTk(}PS~Z=A%y zf)2^H-poiu*y)*uWt=uUmc{66q6of~lwF7u(tjh*jbKLwyyqp~TQ6>@u_u|?Epp92 zs*d)vUw3(2nkM>~h~1*dkO~Ol1u|2_5fKcIGBmgjAL1|Ha;2 z1-B8ddBQg{Gjp7n8DeH;X2;CTwrt1D%*@O&GegYGY{$&Z-Xv$v%sI2OUu}I?d*KU7 z)laor>h4#qQmcQ@pB6DtlvLaZ&X6|7I9ER3CAxkNA+&?o`(SU1Jd2>Yz*S?+STkLE zOXtF0cimKb*u_2~27%l@2q8EV4uiHtB>5$Q3TLMHGS}|9y_j*IA%sa_{k4wzlZJd7 z+0t-sb4k6XnZ-__;Y@vc3V}6U#-66JZo#k&(f*bd@P3@DJr%YJ7pI+ar?GyS9{F}Q zq}JxoJITc79v55`VM##OJteJ?P`=smfXe0Vr+<7j)GQiL*oWuSRGixMYS-3 z+Jwwu@H7F!dpVg`ALltXd`zofe_j_a%M9fQdGkoDAzQ^YjT*-TC4q+Mdbwi4BY-nv z*^u|RW@_emU~PDvDz3R`F2D%K3BO|c=r(5rnnv9aR%{}r?6w{^t|DYPn%xtFMM{BY ziA!oS`MYUvZ=2CsjEkgnRdCbv2I|%#*Tt5*XX%7xYU=N z7YL4FudFYjjJGn9rC*4qwomR=9|_37CVX-w9~Q|a@*mx$WNdP&rnNFy+3W-my@BfG z*lt3+=H@hynU(E9y_rQ7n+GtS7=OvfvBC$YkY+5HjAFQkS9fd~pH2+hpP$}HW%8=N zgtpYjyp|eqHeh?avt#$P=dz1oImVw?#1vnSaBb=>zd5p3g+7}zgJYnDF;=TZ)J$XU zQ0i$_ca~gohrWWF706|pAyKyZFg-*@QYhcb)`guA6G4SK2#7J>$ z+}kb945<}Bwz+q0P0e)l9xu`$*Bs`YlZf0CgA&A5Vp}B55sN1xZbxaOM={obd4A%&<2qAl{s@AH{J#`pwFXp;r4)35q z=OKm^Wm~WjDgQOI%th9+#4d_8VQxQh<%wS8M1#fI0LRFnP4)u)b1qj@&XZ5pn4v`{%4&<~gHZ9)thwHRrE0BBpJSj!#M|im5XfwqFjX?j$&y zJqPS8g=w5IYqS}AMqu|LsjDtku(>7KO+3Il2<&;9rBMMmM$gk_(qvmmx392%8`)+J zpb;WxJuQ%qa%dgj?rY;}1b0ZQVn``xuBEWf?xeEYV8@iKdxdAj zC7nI6{`povKzxQKYmYu4cW##%Yp#{iskR*pzJk;U zwL1gxe8yr6Uak5J2*gHZcqOP??x;HfP~{aj_{%=~DGGA8a6}`CyN#7;L&|vbXmF1W z-#m$oft4N~G#NE3$7|cK7v?O(^Zk|A?%5!*e#Y;vsv@vZQJa!@6#vkmWwW}g-4^>Y z3v$>{lH8mihaVNEhx%zb+)FrvQXvw)!zJ5yHi}LhQk(rex~tA>Hbq+az~)FM5NUsI z^7WZ3gR>o|DwV?~PLYsozTONC&^Klx%h>-o4jFNG7I(LW9CR6z#x^Kgj=b6ydd91a zb9u2|MWtY+$A{{sHUpCrI!|n=D|`5jP9#fq=u+^OOL(n$GwRBoA5z6EL81KWG38OQ zWWkY7nt*NYa~|4?yNE~B@WSdE%|j-0{#{YNCdavz-h2ZrRiscXY|4+UU5UlBayZ*2 zMETR5#7~o(9EdbeM>V+an|%qE7SzT`_`8?27Y`bb>3|uOL6i3GCFNL8IgRECs`z|k zrcYvfpnz?Rk_fws@^6nuwH$+>tgYc)|P~OvKEJ=O-240j^A#p(%JwN_1TCIx+(t-coI>@xfZ~w+q>1wV+uC34z660BHZM|0o$qmskzDTC+OArx zwM}QLZ4HjoHW5{-z0$oK5n`a@?KMw(e3 z9ghLY;TF?%-jDe%d&a_K!ggl;yhF(*=*MIL>j!FHXpk9LUx*QZXKe*-`VKWbYp0(u z*|{!fQm=Rh_vU~46tYKjXO`l$9TOSs>RQ|z6IpYNCbvDFTw<3hOLL_aUbwbRKSt$F z%U1~&=h3i#Mtj@JEH1;J&IZPByrlf*H-Gs3W*jlFi8AbM!suay3?krBTM1s4{9uG= zt;%a7r5@C%c+{?Yg^u%^Vo`R~uA^|TJYgB#HCpvLX~56o<`j9cFaX$`BtS0TAonQN z;ueVu5@m(C)z;N$01;~z>8gxQRde^OfDPx0ZnPQln))q1P0-DGeGS1(1NPTa?Qbw& zRpR$pPz-Ip-oV<+bRms7=d##_*F&M*=lS5|5e=;h=_tSjlYt-m$Vd!rWr5d(y<;Ph zmN*|cJQ?2xMK=4ZFsssj4rH3j2BhP8vhILKSNSa)uL!V8-2$i6e%uY(pRM3&vu}u| zINmlUU_mx}^5nU{#m0hH7|FjwfAXr#Z!?%Hi_`LbkmP47lh`!fq0(F;GOOGPo{Q}< z6SHODfN9@LbHRzvcVl!7<9{T=&@E==vQgPnC$a zb6q$za`vyXE_1wX0=A%Aff-t9sjhQcmVtC#OuZq={JxC?e^I7ewC*ajtqIXQs`O$y zMdc`^P8PB~-sBo>Zy6Pq>uDbk9&5s>FP&e%3jmg$IkOPQw2&QF>WchKAmBb?(REdJ2^@}O87QHR_icd?drkF zJ~-;6%KZ`?5(YyAH7+)tM~c?cgV}F54ytN_OXFhwOc@X>{x-1Gg{?my4Bil=DD{b) zA-6YOfQ!57YC#jZu(#XVy|;QBg?7@&!Fuj{crav@%ooo^Q=iU*Uck@1xpd-O|G~Zx29|)SDlvz|9Iou)`uY4{`?X--#Nfca!;jCC? zlI6}B#!t+2#2l4uX&UsU8TYH36kNM24$+wx6;?yP|CZhr!P+_tGg{CR&-q#7=n)p^ zRNq4Tv+Q=&Gz`x_&w2TP!kDlYnu;i|ZONXGSkJikU{(`Nb-fBPapaUfthyam zo-8-`Rb7tuc@DAV+%|bfF`i;Y6X!aUvbDi85z&|pF;E7DQJy>lB>&z|P> z40y)(xMEPC$(khGgc`VRJ7d)qIC+8RGG;+s4h3bmP4%bvAx_6IZRoeF3 zA~`?!BLsE`tP;-tA-$uSh!ipBqUsI}RrGQhsZ!<@U!gKN(GYaQAUCGWi zBUUh3hcB@2o&1~o+tPR{0YoOK1y(B8APR;bb02|owxAkmO6w@(^I^VNa|W=YE)(wC zTCEb(YAUxX)&Sl`_*bppKiksJ6g*Ne6Gl;{Y|U_&zVup9-Fqs5;4vCZo2b$0@ZQLPT**CbV6se_F$is(3Vba!f=S!Z>4@WwNOi&aN zxu5gBIELdw1YS=%V!cZ>$?L@+;&wu>@j?5!r(R2Hlw$U}NdCie#=th0Rx1=zA}Tf> zoD0RJ^0YC!yBA>9|3xjp$Ui8WsI%uYK5$l>{R0=qied`t290BPPC1dhfDA;OjMp%5 zR0$>4*e|JHuP)8cZ*=DbZo{~A{8-gxjGVJ{SBVKoL~^`&h_5 zO3g>2ok=G`8;5&Xnki_7LSdn;i#q;UljCbIRr>RkwB0L@>lqU>V(Dtq!C2TLfG)BJ zvjgRemtGeB1|>nsWJg?B7r5_5inY5@ip>>ykWEuM>th)gnlO$F&d{vu%$8S$YvV3F zDol4Wfo=F;=KK+ph_FtZnf=zX^M zbCtf5Y5hTMuO5zrsN1wkLevSB!FrUIB*#x2+U{##;7@MA*yT9JTq6_Uj*S~LLdNwhl z&pVL1;5pw=1(JqkQ`w&TCA1cl1!XuWRb2%+%ypo-Xy3B?zV~=2@&qzm) zHO~f)+(uoJtMz&Pitbz=?pC{6W9M!-h7t2sh5M*$H*&$GxmDxDMPN*@!b}+t7k}c| zY(OF!?HN6l2*a?1IgRAq7ArL2HshK9sDEc|i|1tJx1Xb!k#>X8SXU(Vx%d=1z(aibuM=#(|*hoc7Lf9%v3Khw+VWPe&OaX zg;T4@CRFU*jNw>mb@<49-}7CCg*>K%*h)?Lv=y-)H>!m@2!rj8mHEk!xN@aIHx{mg zrD_eu?Cl)I@FrH(DNz7zs%k-A-0ishE~kxL*&fWR&V(3{QRGZU+dL3vI zjhe%--ri3XG17Lc!Y}e;)i9B=Z8rDt$-+f2(VlW?!_iCCDL+9@dVDEqx28(*r%URF zFz&DLXAd#?Kp{hfJIix$zlvn?itC=irEug|ls$6^A8;<7S?@w9>0`jnH{e0kEgh*& z?g)CVMvQ;iA!d%qIi4o z!O=7-KYhtQf16?xK`6t>ve^3KQ=L})$k==IH~>+>-n@n{|Fhw?Fbf0N$Em!6lRe>{ zxj3+`^VwyW&45WiT-7nx$foTisqe0mHLvzbSyzIpZFnjypV|1T+W|~Zr;vv%F9`ip zW~*8u#XhCDN|Y2zw^MAqKmlA1h4B*+w;pYnr{ch&)Ao|Wb0B0Y9mxgRTOx-?8!y7+ z6sY~&tj3<%XbZX>ZREA)Uahe$9XB0)NR4r$WPAq&uaU|!s=Q>zTOC5)d|J0@q5Nj- z>tzR*lMx~YEPXh$?H486%XHsH4W}{^ARUuSs%Pf3l8Y^5Sq-rZIl$i~Ssi|g&D@|@_HZ0|&Ab6vU z5`_V-_0Y|45bfTZU|fb_v2mhLxxva6;iBKhmKyIgyjOY&Sbl-kr#TmmR+|KNEJ%b( zy4<^<6OLxYnA5n34IeuxT0wLFME{g9bW0MUG|1oRind$VQ!#hq(6`$j*?Q+lbWbQc z<-67r-;~yVJH*K&E*$Zc-8dt`H=YX&Fp;*DQ4&<_<#+`j)Uh{ECvrH5*)mIX>~0Oq z;!+S{ZOSdvq&l3Ed;=bsk<=2GBd5R2AYY5a5SH&gb)fY4F%qD4OAK0t!%V-p-NhJ? zn>+cw@cE%AqkQ8~=N{EGo?B;Xrb}ZjOLAA^^|QKyF;j&#i18hjs~NrpCy9`WZ1ve% zKzmLmA>oC+;R~H03aH?^dCGyK^9sI6zb+>k4g=*5{gL*ZTsILqqPp59YQcv|ClidA%!=oX8) z_IM}ze(O4MN`5e(+(dEBII$5z1r+?11$laC;>f=^S?yDk;r2y;r9m&Pf2!n+f$}2T zJW?ENb+4$gk{=u1;98-5N*7nP+Eh6kU`SXTKpic3U0Y^Wdn}?{gL51U0)9bngRYB7 zZ0`bBU2n8}d)Yk+-+-Q{EjTs}cf$Le>^I1Z$fPOCl#Du-k}(luo2_+Qb+LqW0iH}~ zedaVTetvc{+raG{6NkEb;zf-pbw46Q>~f^2*nCzu7>6!m;#c!xwf>;QFj3MA9hqGA zt`&`#l}(BY3HS<2xI30Yai4;Zk?;jKK9Ive-byvw(Lkn9;Kj)F_pbx#1?9fmuL$n; zFWE#>1qGD;uO`WWU#N)exenRn*t0!cM^Y^4tsE>DFK!0IX=l^+<=<(m9F%;XkUmkC z`&`0Ll@x>u+;&-ET80u7X+c?hd zm6zou^-aTskawC|aG3@kV`fMwBtptv?#II&!5?X)FAOr~9`(Kv(D@4fphy=}Z`*^H zoYR=7rY{H(FnByFUIvc_xE?YZyg=jE+eIW9fro9S$zOX__g*>0%StR@0(rO?*=I(f zSy7euei7^_3B)kty{f6SWgHzIm(@&xmAd1ddZFyQihKB8zMu9kWYZ<>vsjdc(y?-; zD)=@49ynd&EalnJ4K|rStIbxk(TB)3WVyY-P7+C z?V(7PIo48&L3V56MBD@QA1DUJQNO$uH?L{f%#y=AXBN5wcQ_^o`V5xXUmSMsyCWRHE6qME7xm@h~CDS=xrh(lbMz}nB zd|3D)o@H>81mg`Wf&l2e9zuGHGtH_YTX5D=WaN?H(s?Uv8Hz1BGBAB096CVv4wtOv zo215w%e?@2w@tyG7pcnaaWPE!#QMN0nnQkxK1d`0uVplZnWS1!e&_Y3ov3Z?kOIv7ncQU z_W6-qx!r_LI71wb7>;8ZWrnLx%$*$1?f4pnXJQLw3h*;=?1pm%+JQ% zc+q#Sn#WAMCksAnbMRKoOw@0sbcxanaoN9u%!av5v}jeWqm%T}z3g@F8=K507raI_ zXja`33ud0pxy8gzLu?IC$w~Tqmgwn5q#hnMLNf z-xuz^KG-@Zu_TMXi+<8kZk_#Qi=Wzt<>YlP1sf&_@l|^xNSwBbM=_J_e2`nwqrZMu z&)w^>;~t~GxUcjx@^mbA)H;AOk!OmHAsv}Bgx?Q*o&;rnd%san~BR=##i{RzK zPDJtk^XUmy5PkjBxn_dlm-ce8*HjH833ct9tBhmur6Z(5xtQ@GBFg^SbG2_+ze_3T zPK2;cML9~a@x)cmvu7)$DQuMs=(p8a{d1hXfcA1L=ZCb_@8+aK?Kh`iHL?bJnffE}3u}|U>gp+5 z(SZ7P(bSw);E8a2g)vRfa6ICsxhM?!=&lOmDhg$Lz-PsJTObc#$M4MV*7*Q0pDf~F zVNp1zm3}#+1%uEy3<>Xn3Edm4fCv*lI@j2hr=Unr7r>Z%d}sF&tCW*9WO+rr_+Fr| z3%Uv-%&1L!mnq&=Q^*d?`NgP}l=wAH9>(26qLfm&|JOu;WjRIC5W*L6Piy`XSI8Ll zA{?O~Mv5_U*ci0RC!Hqyop{#rX0P+8yQvFRD|*`KAx;w*X3Bc zsg4MDg;AUwN?U_mEG+%B`%j861xe=D2ublgkLh&$Dpa4oFcGqJ8m!wWEo3)gTTMw{ zK^wO9V+UJxsfE9ytv5l=CHByNt`7CYDu^!g(Cs25nS|wGXeh*f(;Eu5pHC>MlnXB^ z7|l3kkX^Z~7d&7RIc(`KsXgJ_O^*Rlxn{W2M~>4AMb-kWCwvcM7&7j@c;u24Ql0bm z?W#LYlfe~6(`5)oaA>0&g?NH2%VqdQ0Bs^G7pq)ow?}(uXRL;R!{xpS-_V`^f>4zp znDRc7Q+*9m6)8J2JlQO9=m$DL#3B-u>?Xh5opC0R+_QW4SvH!`+Ja`s!9dtu4DU|7 zk0QyI5?3V2kv2UdTBof4=sQg`JBXGpPl%y*ay1Woz+6XY4>KEH@ z9co&lgO7{fwMQ=`@dFM;+`Ta+ABlEfm`@-^#^r zx%GH;UVkZZyE+Ci)-+Fq8RUHr&ho>-3KUlY3ghT(R$*m(b-#AuqF*#od+EfI6Cn>6 zbENg;nHkS;1OW{4{p+DD@GkM?jHba3^G112RR1lWutS3%R#2(+f2#GAo3Wrj zrdjoEYZ8ew!t_YbTu-;(`xG0DfLwLL)Pq{#=`?w$`maPMdAWOI{3od!=Y#g9RcIH< zUDYbc)w=S5x$Tn@sh}0v_LwWoZG*V^FGk{NnmTCgKu8 zAX{!QB%?gPT5gIiWjmkkl_Sr_;%{P_L}cM}p6Iog=;&szOd@B%Y-+?$Ri14g4|wVh3l@9C*ST)Y>|G26XnNpP-H=c`Zn zP8}XU7enrWd0)S-uSK1pvvFO^iEx1NG?jlVf$9QgU{%WY3dQT55U`Ruz~pzL(3xp) zmXPEB`@DMb*A}v-gQW4GiK7RkU?-@XQw2E6jpEh&Y{?RGiAXlH`&I!+7;SKcLu}E8 zB-vc=lNdJ{{`2{b#|}}$^y0@Qy{9hd&`4p`-O4Teqkgw*e$qO?%ubL(?N&thww%Gd z`Qlb;E>WtMFRt6tROuID9Oo?8bYWZsIm|_!d|>izjdLnZCYv>XVJL5tZZs&BM&0`t+Uak|1uD0|9dpCVMMQb_vDZ{oCtbQwgmXGWyW7TcE}k0ODW9nqQ_s zC}D}_Av6)xg-jA-<{8Az;5j^CUFO!WZ@8QYjSVX)-(O-SEvPX3JI>LW7Led96SH~L z-yNgH1@B?Jk9yyRtL1&)1tUZ1)=cf@>TxjFf`Q}`O442q_ru%RQ7oOJW)&^BXwZ8y z+^$x3GCnub$qC6*%Go=Cf z6%|?}H0vl^`RYpP2$>3VmszYj4sxN&f&H_(>1dEe20>ySaDjZtapM-Ji7;FV84u1Z z;39HTFEsI0VN}4Slj%!IS%aNeOe^C-+Ju-3bOC62QFxq^#@fuTfyuG3x7S@ajE;2z z**l*Ie%Ln&89DI!mtr?Vk`|2DO?A%7bB(a&ROy<-cX9n$n(m6)0A|C^b>%HzeQ~cT zWVPWcOp{k9k5$q~rZSmotG$AEjb&=;o2#Rsy`%>wC%XHn^iRcOs~~RdIek94%cJjz zguCyM+}H0m7dC-!ygi^pD3;&OO%05`+4#J813Pepy#9}>^*?+0Gc&S&{TEvJ&#wK9 z4D`(ZRsQP+|43B^CVB?ef2se`ga6&NGJO4K_1_)lZ|>-%@91Xx8(;oubN{>9ynvpA z(Vw32M0B$9!b;Mz|7X|ww`2eRb?bkYe{KE$e|D{Z6zRWf)c+q-e_iW8mh`{h|6_T7 z>i@j`@0EWytbbSZe>cJZvtj-3TkZc z|Gyd5zr^{UmA{7dFOmH)tRIH;!?1oB)(^w_VOT#5>xW_eFsvVj^~11!7}gKN`e9f< z4C{ws{V=Q_hV{d+ei+sd!}?)ZKMd=KVf`?yABOeAuzncU55xLlSU(KwhhhCNtRIH; z!?1oB)(^w_VOT#5>xW_eFsvVj^~11!7}gKN`e9f<4C{ws{V=Q_hV{d+ei+sd!}?)Z zKMd>t1BUf47W|7+|J|_uC4+zJ|IM)eGadB58`giOY5r?AE5p}6WbvOq@ef!1M=0n2 zmthqXk&=^?{B2mJ#s9}_R<^$Zo&S=}`d>U&*xJCx(9GK8cZ#T)v9Xc8k+p%51Cb^X z6B7}go~5m+9?>5q`rFOgC|jHTp4I4&jQpGK`A0q4J2(oO>e>IDTT1U=CREJ~9Zml% zhn11(?-Kq+?*0?{{#%A9`yZbAJ0DcU%+k@w{`aG$o}-bF(cf46tv4MU?Tz%TU|fN< zqr0tpiI9ZO0sRCsg8uj=Z2n3Gp}T@<#n!w)y~_fnm~{h?@18zQC9}N*$tjS%!w&b$ zF|tH9c$QJnBC?To&{UfKz@KGvxqYr#Pm4;ImV}6zR&6AEn)4XGD}eBM85)YWb#L_t z0B40d8wH)1`Sva}S4ngZJVY=l_==dqBMbu8(n8LSMWWHUooSzWtOliCKk+mMN8=jh zwyXZ=-a?5GW@XNilg^v_l?xvGY;xK~fA&+cY|b-qKlR-SMx*1Q*idzEweTzlg9e;y z%Rrf-@9J9yp*NhZ#Gj4yA8Y!bxxRll%-=D^$n-B8@t=zNzxL!G&ip@P-Tyv3{$kzV z(XfA>As}GmN~B4{%J4gHmYso!fu4nph>e}$zXi_HF#MkVKO$$@SboRP{#WGepD95- zTQMUu6H`Yb#{VgBmWGLuh50wS{zv94L%n~%F8g29`+os;8xCCW)Q)Jt^xFDXL5l}aQ1$_hlokIJ$$wAE`%iAc!lW=^*vt^^g zJ;myVwWW?n_sw8k(V+8nDg8=xA_!ynf`j=-Pmc z3icuFQP^)=TU%g5Eoz`@%|N58ZFpL3czD6_Kn$E7h@!t!TTOr>uugT!Xuk);FHZGf z8N$i|eNFSTS_feHl>?VL4`6&VK_vekT+hPys|sHR2)!D0aSGkC$A72?guaH}83M~^ zjM@^}$NLwVfrUBb=F`NFkg(VHWUcN<85?n6(>IwojEltlkc^6Y$SyF;P$;E3k1zu@72G9P0P98*m}nY*88zfpyaBVfH{}n*pyLU2*=R6 z$T4VH->nktAk;On!WL82{eZ)%Pozdq-b==N#HV}kEpsimEG-e}!PPl^-gO{XQeTqb zybteP2>6Vg?1Y`5pWfG&J6RMU)E7C*+!pM#k-^@#32~r6Xpa_$yuq+QXwQC4zK;IR-kv;=` zd53IwlYj7AZ~OA**OUUx_lx&nY-Er(7#&FI(Qgr$ub%gS#&>}5X7752_uzCEl>a@u zu@??ZeI@N(eap=N_qC=|m;r?IedI+Y`I6T-vNJj(VvO*4#S;uj`i;1{%?S+Z4HIyE z-&pKTHPizEl5 zsRmcH^}Jvw`nylAy;0tqRZGW-G*P4Te)7V4uPGQ{ii%cOTyH2|TLHZwvevt%VSlUU zT*R`o8y`=mTV$-Ks9ROdy)XfXt3cIrH@k=$j}CO?DcoV<3CAAXgJz+>1b2sODdey*PCK=~Z5Tg>LZAR?i>alrWQkSZ;CPFx$8TD!nO{jg<`O&a?pxb@*pf@C5J7-P* z5-HMp;5H~pxNUuoq6|IWF>|6BM$W;g(=p#XcEW5Jl5d2{>~(#Ca`-&>0^zGwT4oKH z>jtSRmY(GV?N#5`N8#G#YLCat;C{raFu}k&EKQ**qKBLv^`)hD zA_eQLlA61aPRm_DDKWFnOKTxa?@nKoK|5oesyOSWEb$jmH!WAhoET+I=8|$XjS>%4 zQORsiZZ6vm+*K%uW%R!*C$1A=G(4scjSN3)P4B_=>b!Jx>tG^}^j%-tC$UwBp&Ly} z&9OUthCPVM!mtKp9{q|+Ut0v)JVdvwk#j<_7YN`W@whELR=?5naDHCC^c%mR>aFNJ zQ(WbvGQR(mo6`0Axw8-doRnr>nadd7@Kd}JOBI7RcN&u2ZB-kLj1M>;yoimHDN0>Q zek6?69bX-kylu$RS+(pH6~?C#H%g;&h$Jw>Vx2dy`>wo3?Q6%*Nd`_>--h{}G5D>J zh%xM*IfiAfP~0^Wp_I*YtmqK73I%a{&2kO4LGn=$5t-6Oz_;WgF+nH?6j_4n!l^(! zQ$BGnqw)?+El`9+&RInh zfH{3g+=bU7sLwIi$_?G@=-&d8G*w{49(0LIeNOLb!qk z7J+4%<0MuolA5bV_XBsVw3lm(X2@sfpjhz+hjZ?JjtEwTKuJTwJp54(VaH<^#T+M8(V+d=rV;}5E5aVi|& zP@Z|?G}O`lnSJN878wD<5CkxlT?PuY+Cy0`<*%|NMe?a>Y*@JdsTkqjZ|He5`(_c% zKft{Vt72r!aT1?mQu?2!awLC#$Dk#Zy^ybwt7JWb z`+ZytvJ?xi_K!zd=;RJ^iJ-jUuJT{ML7z}grh_Rm!;X)z-!GG0@C8F2cfzsg{e0D% zwIT7I4_OPBbZQ{+ek;mmh{Imj{aLmFS0pE+%_WQLpy%NxO$CG?=>jIAZXBPwheFc2 zT3YZa(?eS=NS%^5h#-14)-I5w06HbylHkg(&}altx#*grEpLb`d@~NEF%1%ylj%r2 zQy!%_ii4k0Tvvr1K4{&e26F}BQzu@()($3(lso4&HsgLi;zb9E7^P|_(_joj%9Rnr z*zJM5=>WD;`98TwNqKL6tZ>^H0fFYxXM{)`%gS3H@orS&(hz?*gK+>9n(FL^#ykSy`&Z~1fxGE18HQ063veQ;P~?~?O#}6D<#W_O zgNPW8K5O2KXw!8gPz&ve$bLHpX5_FhVG(K2?g&T|<0 zJ-bA;8%9M^gB2kXY0o0zN^Miia<|ys2ElcB(T(h>X*Q;)wcv4of#gyAy5%F;Wy~G% zbMNO095uXFb+=R|WxMi6i#3!5Hqm?vij>b9W2Ku&Fk1DboeIIMPKO3A86#eq1)+M2 z;*7gDT!Y?&avGfjMq)jS7ncA}>)ER!v=|{@_Nh<4n9sM^=8)7{$QDn0;O5Sb3re(f zg>{y+_|;VvAw1RosFD&82^f)z{H&UH7mtehY|7tMWfy+9OSIS7pp^=p3+v9`zK|fk zlIMzm_M-1H@NgF)Hgb4FF9)O@7gZ_Y%})~^hX!5#6eIV7JxQ_L8VS7OM8^QwC^cBn zSuCU=s?B_NI=Bi**dFw|a?)u?u}Nkwl2J7e$4MOVFwdmY%v>hn8YA|UiaO2A!WRiQ z#C>$)fqZ4Ly9LQzxi1o=VxXT*q8k}lwtTKd->EQVB*`u>5imsYh-#r_t$8dLr%4(u z|K^H`Vbybnhy2r!IE+uL8=_2X-i5Mv)^4Ewy9C1mtULZl3dLrrU`=-E*r!QS47lb` z#$V$mnC4;xBp2Hdaa~*X&{X(LD31h$OBG4hPUX)#ig5q&{s5Q$~BFEj!G6XIeUfkBQX4Z;(<%NmFwZJhJs%jzO77eF>O(!?+N zI_&TG;X#7=La=V)A?z3;@1#YBamPz0Q9`8mS6ZyJ^mKBYFm3pH{-b2p@A5&*r0at< zr?^~G{*1DEf;-P#PL{MMSfw=X}CUWKiB z+(I3(7~+=~S&+!Nqy$ryTTx3_c)E&OECmnh1TWCkSS(5s!t+kr=1pWKr)=4fpdNVk zomXyHCRH6o#JM2l(MY2k3n+^@{Q*{0DN6!C%By`4OkJbXM9TAe-cQL+g(ScG@&z(q zwcM=HvZs@lX6h60FCZ{E@;qgVThJ=-dxBTqQ>a(9I2vt9T4uue9FyD`F=~q+rXH~v zyeR&_87zyUBC8bOX0Smdbkgd4rWODE z%-e-Lt4If>y63-awM2dn#MR~>2v+iBr#}%E$(UenJ)2nW+x-4c;5^7lDbj6D?E}OD z))Fl21uf#r3YyVn)#YTg;~QPo8MeJcNJWR>g3`j9KU*hZu-KDaZ^>0DY~8cevIuZiQ7XiX*w?)$Dg{)$SUB43|z^ zZMq*%U*knQyiO4PX*tUPl`)hZ9-SBL645P|259U@bPg$sT1NWy{vh;ZMG?B%nB+rEC^VEI-@#*v4sZ4@SqLMAq-TK8_@jLQ}acw5tn|us#EqeMa)e#|Ypi zBu?QhoHCIsyhmzy#R%W7$^NMaYXXS}0Bk}|By-zfcZ!ul!&9w#?;AByBhiQ=iA6Tt zh5M6qziGdFAR9PUTiUyGHwah*V&hp`isQSv95;teWNzebZr=KYZMge;J$y>0Shn76cAe@U>hEI)VhWQ2ZA+_d2I>h=pHrjG9Or`P( z8F=K(7|K)aQ~d3BZO=9L{h%-+riiE&V|ugUu8`1PB6tmSPX*9rQ^GJ6^MI!YP|?Ke zO2j!6b$rWnO=^LyG}zC7)dIzDqU?w_*5P1YyP8{Yhi`fTDoN1qndkHGw0pQV1d zH^!hVW;PE*y*Vjwo6+Q$!+DU-Ef$Mtp#Ty$oI}bfAOqpQPf@bl3 zGx&67ta)t=--1(ICECyEq7tsiLd6uA*}GAb$p!&gsh_iAr|Z9fXVINnUVO2MUdV0t7d6EPOUaPX0w<_=zmR4J|Ag_$wUYF3NrzCxc-=0YdKH z!M;>pPtnrNGO1(7_h5-W5OSOCdmNS3HE0G}rCMEBor!M8LnUZmk7}S&#qF{lcL*71 z34P|r7YU8mcHP|%x6icd%_q`%$<(b8R>KY!#`JIr$X6h7X!np+xuU8*qZWS=rFSDv zi8%8)M_V$JJYg*qV&t%1<{!G&Dp^>k1gtZ*=6O4dhW7SC8y zJCc)PPX6fm%3v{a}=sE05_QemsdC2SmmB^JhHfx_E>LnNlOwB6#Cm zIfvyJ6rIm8FE|A7e#?ZH;<9O{#+Rxx76tbQT)KM?n2T$P#PObrN8gg#Zw2`3Ta$Q0 zp9-y_@K#kpEefsndrSg&A5D*@z0nOaamZ+(yaTh7Ssknq*kX#m^Qu>mRG4h~m94F) zjCt5%#{1AQRR7G~b&Nj$VG1zR*I8Wl<=VOwt@+f+Y7>Vbz{zFg!k!T1;Zl<)lhdN1 z7kDz!pDg&}Zs{)HY6^Y_I0~|sZ|qUT%Jy|19=SV!gZt6_S2+8y6s;mwb2m?+zOX^j9)FF;S@d@ji)R?l{6FE-DVhQ7B$CeP7%oE z>y?}NOY(wA_5>N{i(6&Y=#;9)tmwpWnf1uJWmP4#JA%zp-puLp!gyotrK#flns;m5 z=(+H5Z9>20OuFHOSYw&Q<|Yof1+9S@T%-2MXW^Ndj@$+V4KT?`P@dlByoyl0U0;78 zebt&JWvKi_<)q7n$Rb=J^HbDj%U#+v2Tc+p)pX(>fd>z&L-@q6Wfbix>s+Ce(E=Gdux5(nenUlbraTeJo9QU4wBj>o^jBO-p6^z7>*~&LCht)= zkzHH!H^lYYZQu+#xz48KpOz0ffs_)pe|~FzI7Tt7LSynNVFB}&M7q%r zsg>1wJYCg+<_{cRu(zy73wBxm98q+_vKmT<(Wr0-ryG8~7&N-;4*|;T;;o_OT}{I@ zYKm5ScH4$^QPVMq&$cZ8yt5YK=Xrnl1*jS7 z@RzZSI%SELTNBV8!;8WQv^2Zh$H4;8w@lwl>M_wl2u0eM#pA+fflOTSaGI1bH|Iea z`g?dl0FcjPG|1IBxk}e5^>T+vArVi*mCw%(C!|>;{x$n=iXFFy^Ws&8Z-Nrvng;zU z2aSy^g~vQ(xbS(6M{@;dg;M423K@gYgA`73ZRo;@>;bdWwk?2})_^Y~|C&nlw zo9Uzv%qjQsPVDQRrh2Ng7(bDLxa^CKzdab+oOoXX_n8ApEIOM1X!5wv+6(D)^og7( z)g2^r8Krco^qtc$AE+&OfQd8i!_v=U@uYG=_h>ZkFWJQp{Tf_3pa-!znwIr_}#yX?%Pm!XZks_zaR9-(5JZE7@(1%y_z7>Lg+dXK5R zpuA|H@AouywVJ?@O7%F_{F2ck$-otM=(`f2Q+G9U;~$@}uxDTv*6oE^D{5iXG%vVv zlu%nOrdkR$>t4;-5OzQ0#TP_Gd0%$h)1ilO`33n5cU%vM-vRNNwZLEC$-qQ0>zSzt z)e%K6ptKBe?vWq2r9ug|bh^~W+1nvqig?w(FK-}!b+`D_&vRRL;W;im9_G^SRaT2r zuH_yer9i16D~_HcL1llYz>H|5?wcvzul%!R+Hn-XxJ(e)*Vw}z3AVs)!E`Ia zv9lA1@-fshI)o8tPQD}(UgW?dC?02Ah#(EmjjhefQG&K8M`2$sxjHI6$4K!A5z7%I zJ*9CRbW`Ir3uM+Lcg34z_??=< z48aXgqDaU1xCB(nM7G6(0hr{|aay^fY~J>v@GOoNUrcar6%8Mj>yYH(17*IW6B|Oj zL&rL=R6D&>)*v&YJ<*k@HrT(JGc~J2%cx2ZjcXoAA*}*9*zSwuv8rtcaCJ_M=IwsM zzvKuRKnP~p*4*7)DLt|Ep*gol!MCVWpN(SCS&XAfc9y6}{URft?Uik+*1&O8L>*f@ zc=i_P((NiCEEl5$Z&&^`6=X2hdd<{a)L_J&o7SSU?5RuCdYzih9Jp#_Pd7nwiY~d` zU+6foqmX>HH%g99ptKf?&p%B5P#9eQo}j0SKB)CcuUu_TPC8SWOHWv@9?2>&)F(%( zH4oE`ikupkm&n{FM6!ILLYOFqTs~RNmghUOWDEpV&by4Ln)}G~Kpy&Z3iHB@|L=1~ zlC7~c{xfP$OB`fl`Z;L@tp$^@uW7Oih|SI=as3C*h1rZ)FJiQ1<+}R81gKTeJ^Bgq? z_BeR0z%hKStI81(e>FW02p8_f52|l6hJJreK3Wx3H}%O^ zbbW|}VoU<#)|lSC4V{yrEDxCIMWy}fS;uyZ3`(L;5IyveUuscxR4eMBbq z1;OP!hGT>ruDrH4(j7oo5IAw?s{f0ly%o+$D=Ey@;HHdI?RR^11YIOdBMSy4ZmNP7 zI<=gopFa?LtMSid|(B-_oa@Y4*LC@42$+|47AOBL$ z3=E9qx;y(D=`R z$!V9w?1Y@d?L&NS;&!&)KutL;PWF-JPp2@oV+DAh=ngvatZqK7LP?-CmkFg|sWw(Y z^ZibM>XCknF!Una!paqxAz{-8!PRqGMDnSGCKG_U`~-djc0 zv8{ibxLfex4#C|mxI-YgySuxE;O_439^BpCT@&0L8nXZU?7h!-zV6dK`r^A_)L5%# zy{l?g&04hvT>PH-5Wq4X9V$T0_b+LKW9ogKDGFIG&rU47gn=M#-1JUgc7xinBh+eJ zt|X<7=%8lNhf|qR%EogL ze`xp?Y%!oX((Ms|Q$wE7`f8VSJhVvG>9jK2U$%ES6`Tr>na(j;fCh6`FW54|>qN`v zv?%pbJuvUre9X`?9z-oW*UXfwe_1fCkr$W2ZE|+uKsfS^!>vofT~pSY!bllZplpE3 zx4|ti9GA()41OtzDecMAx^0+T9)KEYTo7o|u)5T32|OtV6K^7Er?JiIJgc4*`sq5G+Ag}{$8^8H5q=aFe* z_r;~ELr1NS&`bHPc5H zxmwU3$Rgq|prD>NJXfgzo+@k0$+uqjIk{-1 zYTVsrV;gvE7j>n_tZk>j;YZOe#9SnUGBXi0;+{TZajFQjyXSR2<3f2j79uNU=t6tQ zod{WMX#>+~QJ!4aEwrJ#GK%1@Xl$EJ+&+@Wx^zvdI9V|?s=ee-;gXIH*y$j4UcxF8 zQP-L*yg8BQQvKvMHWAxE3E!BN5-Bij^GH=dji_TO`+<#|>$@y0LtKH*G|im;-G@g) zL^bn~1=o_JO8u}Y8R0_z`Y2FuTfIJE4zMf^ciL=lhID&_Xolq}0IufH1Lhk(n+)hv z(+e7ndaGN39|8}nVEcN+)3OiE#$scZQBo}7RLoa1l!~Nz$;@-gbx%Sd1-6?*gv=!5 zxkVJYpUwd7>ialYZp~OfnLQMY-40Z3lx`EHdu!ZJ2_CW&k*A8<)+v+bIEQ-M>6W)O|FVs}!G8k9les~i z)p+}CR|K=oBFs!Ydu3;%r!hLil?Q9$;Bb7WQkoDYp}7mBM3gc25HgU}v#bWdAHwqE z_OW1U>rH>~Rcbhz?2MFWfbdtaM|DWlQa2 z>NMUFnC+dPANZ&0G?8{J+p+q3Da5tF`jb6`n&O?arIkw;$5l?xtv)O6$1rLJOD8#F zPMm+Xge)yEu4FZUCDKUoaK#T(7gIk=>!&W-BhpXx@&g#*1m57vVwSr= zIg#HC^hNR}3d$DviBU}}wePFG`sngqNUrqUtQ%W)P9@<`tg&9@nsmO%VH`$xb~IMh z8GAO>W!#TAV$EPZ6E>!d;F8o;dI-yM#4sFxe@|J$Lq|(BQc+y{6jLS>b_C8cld_8V zNVv1~BKrg1>YRiGS2pGT)_(TB67MNh;Nj1(&HGsVR`fLN@nFHc=KLSBTrngs4l(h> zm0oYyZ$6Lo+P&4DED#`hp`!dj)1W+chvX>(n6oi21u z+}l`^6=w_aEIcr<%;(Ls!nYOWZvuv}U03Ue0C~ux>ZVF>}lG%ks%$Y?%h#nT}y!--ky zLyi=+T7Xql2Vxv(63$iE?~31OOgumBo^djqov`u07R=W2h+pGm3*)zHz?pZjy+mXT z*yJ1ifNssq=E44Cjo`hd%>5v>BH(6XMZxhEGpmYTL02POK%dk{hd9Q7#lvYq*n=8X z$|~_dO?b-!DB%KFS+%wV%`v8QBn3;DFi8iB;#=3Ye?`}vd!{QkC1h4R0bX1TYJ|69 znGo?E)3lExc)Fvwo%|yxba2;mla-;M+dT&g3*BDzk6scg^d3$&a?BY46Zh~9Y-`D) zlZ{D}Ql!9zkXWQXN@uFJ8asyREEYxM(CvtpJiHZ6^#M?{poL;TB&OmTCCtl@(D`X2 zk$YnV1Zk1om}FR5lFm9Pn?~Y49QbA>(2hF$2W3Vt{4Jg1V3NekN1V(f=@W2AF}llR z?~hk1=JJiBsT?LVkDSm!Sa;;n1TXv2+ZJ1EM98fqk3N<~L7&x$4h@M~3Yap+?Tp%2 zIG=0tcUfm?ntKpITXt0E!X$m9Lv~?(ptFR5wjeiTo*0a=tRto60_K~qJs=u6BaB?? zmUKJv$yn?Ro2C@MD3*eC`Kk@K*czYRhxmYOy5g~4M!$_T+L+Qfw-fZ3#^x1Ft=mN;mdB40bq7v36+S;vc5JX&Qv0b zk#W924@9Kz=4WcmY(>|Sp4?4HHXz!>hKFsoh2d=>gR1a_}{|39h;|w{u zCo4l<_I9Y}FK*(%_$$<4)nu6SL#UEe`ub8S{^<>-BKU@1294k@*yOh9-1@$jV3m~i zm(Pyxk5`Z;jHfZ*OlcnYP~*$vMaYF2ZPa9js2-3NeLtfvR!b4~;t1{(5JK*Sf@WTdGA+lf5f6Tq}vW87;E9!e>2B(JsiK!;>}i%&PAlrOE=&DYf0+DoKXazWKiZ+^?Yd>dknN z_G_~@aAmWtRF$B0kvp|Keo(HjpOCIX_vO~AY-ku2pmPOlW0Q{sliXQQMb3CvyLo;k zOxK~eXI^TAyD`PNcL0>rt4yA%0^Yj$&=AvGQ<#8TN$KTlF?qGeInp3kF40?=_Vvzw z0B2(eoDUEF8mvK_C?@6yLZIqEg3F%dZZ$u)#MVgJ!Nsi{NF_;a6O9sSRX&~jAtxWF zf{p3mnL|~r-tbj^j_?i`Oz}b3v%$|+z-8mdOz;qLjRgVz!53i=Ef|0n4(%m6j82V@R4soKEL1XW-l7xhnN2YJ?7F;7i{kzy6Te6v~1f z9kS@C3!TVXX3J;81r>)c?H^ACwn200wbY9uJ!AOm0tfYQbp271`yoynlI`U_^|tKc zOXR$&aHM}(oR^6!Y@2VFHy?wW0VY@~P2cDVSU-Ow>ZB1Vt}&=)k(}=mcBj&qy@9N% zR78&(Atrtf$MQ9*G8OT(ihFcP@ML(W5wW53M;oen~lg?}pARcpmpS&u@4r)iY4lEf*#FA8mU&b%vHH%5eg6Aa3m^$ATK3 zGsWe57E(_oUXc5b;JD@(atpt$lg;N8XQLT7O9BT|8i05skxx@iYx~gb%NL>-A$fw1 z1cN|EBYno&BPQFtNJ8B`yipzaiml8c64N$1l(hYABY)z~Lp0atEK-RPZV1QOf}Fc% zBHOVlQM{}B1fp9%v&kMtej|;^e({F9+nR9JyT9Rc)iyB5TpLXJ6pn^tVvL9stNUei z15)`!ZJLpRuLVWd?x!dLc8sspgPUzJYJ4PLAtJ%$CbBO~D7w3E@Oa=qqkrJ}HKV`p znpXY;v5zKv5robs#B}_GVU&ZKbvEXpYr2_!K4r~aY~UxmbbeuF4yxI`k}i3lh9#z< zp7@YuA=*}!bdc>ZeCtk-DjWvQvU`Qs{rMU4Vd%GO{BgzHbwl!EUuiE4J&I}Zy4ekx z*RRL5Wjg6|2yF=J=V_O4U%7oNKL8A25{P?8TL9A;oobS1_Tfrre~sr!c!mCibb!n; z+Z6i@H6~jp0vFwsWee~FtD06_79&U_q1F!?e1Q%)Awr1;am$+`lP2wO{#tQR-z9?2 znr`f<@7B)FF*aRv&nx@uvW#@dIKn^en>dwiG)l%GNL4mAUOUn(;)^o2K>z6SjJ8%W zPKs9T`Lf^3(*SQ6k`hR1G;O-%@BWwzGNW>o<7g(n9A>T~RbE(S%`-{(rLQyLF_z(% z(iNq0WI<3Gr)i7EC`CX-5?+i*<-B51eDrq*n^4;#Y5zd(C=tvqfVJEd88lMpkw9}j zv+B)icpfGfoV+%frH&?#;TcN1+vK<*wBrN{rifrB=+H$C~-Ow!;H9@;rMmgx=CC9{)HWGC<RNW2%LntH!9FxfYorYdf7i=pq8D%MbXYdh7cBW46wdby?jyp57^(>+xJwLott{KW zFUGti8syj(M*2gIx7~vz3U9D2*5DR_StFdPe%+cOMOiw#Z_BoqN;{16^??NhZL}UdhhoYOGE=MVb!*fo#LcC6!r`A^M6?B( zfc-!5X43MnR&|2zn8q*cXSYW3Y(M^EO z=4``kJ~AQ0d#3YlK+Nrvm>b-Z6lRWX=%3S9Y&0L|qfcu2YC>7)4K7k#3XvFZSe=m% zr%mIP(DFhm%rmn9!!omH9xd_UKpxj(E5VNCH%^MK4?o=| zp?iPA%8o|GS-J)jLcuxb*d**{O{`?2m@m$r{Y z6n(q5(8kKEU{&w1Gb3Qa#&vB)0lD`1#240TA7Rqh#3)fzj=3sFU)L_6TtMad!S(Oz@Bd~U3L~8hNo5|&B0C9551Se6uT0lOET^t zA!7A4ZdcEj;<^jhB0Wnif1yYQH@^4iHkR@SOuEotjXnBOc&(%ebp)usY`5H6@O^;l z=P;$5w*jjYju0*sIziQre}}yA7KD~6F6n-)lDcEGdam{CAqGph!K%32PL;K_S2_97 zi^8NB%{*Ecj<<8x@Zkgd6R{(&N!otqbYaxwNXgj~a7$l2ImTpuq;RZC;M zyznYL&tAgpvsGQ!&Qfr5! zLflzqroqYSMfhB^amL}n>LoRCsT_xShy^Lbje__b@U>`K)=67xrDws+V9AqKXdz%V zCU{IH2(9i}K-s7CdE=22$b^b|l~43`9p+ zMm;*&qUnJv>gQKGhMQkL%bbi`in{LOpQUrZR08$EPW$DC0M^;af9z!?W25I;4+m{@r(FbD2YvV1Bf@TT_WQ|z0i%pZz2+TYT){|~aa*Wv!T{Mpk# z#cqFm`d96LZT-)2zx#P>|5N|=d!TQ3^uHlW{{61~pQ?Xj{q1M_Cr$DvboEdC=ruv!zX&C2Doz%wyidrJQ{Jb|JexDlBoL z54~?jWGKGUaPMLyU_Zn*AjD8n0e~_9uaJSBn3%R}g?DyhXl;NuVFEb7_AVF@NU8(? zA^DD$f@dRnj%OjeAbs-NAwU?>3x zneiAZvM~vH$0rdpF2^9jy%6UC%}!vLbp*hG0EG)+n>Z}0lIcm3PD{_S1=_O5?>*T22%-`@3a@A|iQ{oA|#?Op%&u77*izrE|<-t}+q z`nPxe+q?elUH|s3e|y)zz3boJ^>6R`w|D*9yZ-H6|Msqbd)L3c>)+n>Z}0lIcm3PD z{_S1=_O5?>*T22%-`@3a@A|iQ{oA|#?Op%&u77*izrE|<-t}+q`nPxe+q?elUH|rf zfc}m3Px%(zKlN{{f11tysek*;4gO|W8EEO4|6*8w(}Vvj!}_Nz?w=gy|DFC#;ftcM z3g0WkDkt$D^>1vyRayTn!^+6~H-`0<3jGUVrDu8T=ymxQ#QFyl`3HLX_jeYCH}e(? z?Hg;!%=|W@w}pY}&CvD7^0o&HGyU(LSYAO{CdSw8-}}FP@=rAN_x1m`XzIV;jQ@nD zzG9)Twln%y``D}I?myVh*#5V&vsa?`FWDIjEz_U6v)4OAqx6RZ4eEa!Xd-y@ul@XG zI-{q5HKqN{boSfx_fON=Kh%H!GM%yg!(#Tvrn3FEnEgqj{$^8uW6FP4ezU2+(bxZi zO-+zjN>;BgvnE5P(4ge~qyQn4vU!ZK42ggz;^Uerv%C_7^66Mbjp7F?#j!#Vs$uS0 z{d4)t{Y?k^g7CxQ2GLEz7WUXh7~Af!eTPVX*#NaRB#VE4r*_$)8kQO#z$X+*eQFB; zG;mU8!t59ZkV7cHuAGiC1bl$_3_LX6&Jm3E5ygITG0T`%Su3jX|Kv33Kn*bv7OTfHs=~jSVc+?1njse8r z%xGxsh$b6QwEjx`+VkyeVaQqvRsb(++TtvIo>UF|De4G$0K*W`lmOoZ#aV|}p|v0@ zJHd)NKd2yli+;h(d#?UblHAflKEL63*VcIHS>lVGajo%^3g~EMXY0ob{B=DJ!EoL) z?-$?maRO8~;;-G)^kS$oE!P4+kl{rfAT6}*^^J#zoeb(K8R>vr_UV~UFfGtJNAE`z z|8~lkZ0NS+n|Roal$@$4xPYTJ$E$MGLf=eUMJgI$2(OEis z^nO6!CIV!DfZk>>rH<4}PfK!K8UV60j!Tv^K(8pz09=5Wdww8*j7wZZ5CHvWd=DuA znQM4!Krb8508D_G7k(N*UO%31GK%;75cWH7jl0*z%v_`h0G97 zPc|M%eNOd2?foA`KP%PwG_k!Pt$${%KC`LuepLPV4Idr(dJiAx8}w}(L#IFC{70Z_ zf2D@!!f*Q{niFl7A)d;-60GANtPR_#UIqk0;KxBXpHHF!EE@2>pKHRO5tuYAvhqJW ztqU48y0pIxtbcB9Vd=g*X@6-Z^MG&2AzGgD$DTlNun?f4rk1h*;Gx+&cuBk+b24r8 z(T>wH9P$KegAevgX4phge`#z$*gMrU0~JhBgXl)m@#eaLwZO;HOI}2m-6W0XQ3x8{ z>r3uciyDC?3m)LV^G*6r!Z4i}#;rb>y z9*&odShf^K@$VzZW?Lx=J9+`5qc+RySKe5hxZH}je#2y2Df=E_S%%h~#~c=oT6$qn zzv?&BzuU+U2oDoKt^1uAySMHwvTRKdwt<8tIUdEd+paj9C)PtJQ~^+A2La${=XVPM3-U8gpmEO_2lb*_K+gfiGl}bMCkb*rw z(EX92=H(Wo^Z?{1D98g*<&%p6>I|a#Fi(Qa`f`c@%M70mHIMyuF{6dXm9YCtO+7t= zW|lE@(wCelLQ;7PU&#w@*}i-(A9JJfr6D63!o%uvd_kWib1ojEnsW*E~fdCn-RVom^j2$_Er$MvFl}YiKRR)YM|YnB_?X zuUSnO#gJ(C4pF(~N#shBA+HQLi>UO}n>SlX=P4%VXt~{SnCnbMMtC|aTn%{1whpBN zQIvO0*dAJ^_V!O(ExSHKT43t~ee*7^f(^k=vX5W}?Pt2`q;Y|42mN^MmN>Qs(`aZE zEbZykOaHx$5>f<({qa2`zJAYH72*q!7;^3lF8=EQZGI(!X zrL*}}WM>Z>IBOnQFNnWrrf=z>=4XZw$_PSE?hZu5O|_+KDR8(8YtEX0$VE%)l%Tz0 zd}sp&aNKcIx>kM$NDkFlzc8u6sT)X;3(=TvscQKM>!oS$Oc^tG@71C_V>fvq@0#N< z*jKuqW0>>BkBtk#V@Q|VJ!s$`*b2-QZmcFf^Vw7R3gdV62l&$~Gr5#d$S;v}&uQkk zzf_8@k;9gRV966jD|}rexzw{h8KUWHB~T;@bBDkP>x_Yf$<_{_NlGI)S-H4)t}1@| zj;}U4{^v<;w9 zWaqeP9i{Fc=(p0KCvMd`SJ``JJD}qx6s^0LH}#?_6=qV$YtOARHA`(9)%*NVhksLn z_^B=$AHHG5f>G@l-!kV^dosrG$4Z|X9x?MmrY>LJj)tkbD!_W&1`SUHSY{$noF}!V z%u`+w>{b**kl$6=I9D|-`*9l*tXOl2@pR|K!|2h#h&(sP`c$NEnxT7wLM)IJBobRP zNEzxT49DG#V=+bzI7uAD(QS<$*%`O*t$iTQ1_WuX+^MD>c&Z>x$ftp6t#8g)qm2Ol zA3LB-V3|3BZ&ca=jO)ELWq5a8nmIdz1TNUYg#tWy^4Qxo^U|@9mHJ{(0ZbXEjK2Sr@GMzK?j=*6 zgI)5q8|aHL%F!*xL1G=4R|4$o8^geu?)(_0;Z10&OmXCfxN>Q(7)(eSQxY!_M@_?* z5Iy>Nt~Xp=iE%CsTR0+EeO&i}#BXOx<`e-oBXKTi4Q&^yk0-Mq>i|3}dGNCeinQXY z?U2I|*F=M>o49huXq59Jm;Nw$rZktVHrJ2Or;7=kLmkanCRl#D!m&K~Bs1Yv`rj^& zIUE>sqQCYjy=)ZmM|@W232?8m?wn*S7|6CnqWM}Z;NB$GM%L&W158)3^6OdgF<Uq2X_gla07k-heQ&c5eii1o@+B}!^!+>(=0mMRz zKhp%8Biew;O|ne++)8!*no_9x04ec;*lEE!prULff1*{|kY74_ZyBYbS`s7mrjLe+1xBmq5mK0`d&TU$L@E2`Nzfdd!%r?{P6>d8_u^V%VXc-E%=&PaR`9|hw4OIhrM2`S_Vy=0-w!$i-M_UpKn2!U;7%_Z{C zLFpIWMs|t^$)@}Gp&!N!D@}zXgJ<#$@}Ik+`Yv(D`zX<)7*_Ct?;3ZNKJtv}JmtZvkg6IVSVwNvwA&@pG2eN>hK)M+!}yM5 zZRg_|9VISvzGZDdu@d!6l3!J1z?XciZ|8oZ6(Qp&b(Hhogm&lnwzq*8WIa!~xe-n( zqqdYfxxxht#~@Zk+TcLDx3=Ts5Rc`wxHZG`g$3hM!?c0K6{L!%4RnEiko+YO8`u?J z;&3^l%6HE5e+}Kt7bP?`Pp7L6hI%e1;MpqP4n5O{OiLM;V>>}q4xZ@HU!7wVa~4YH zB!6UDcT<$SSJ(G%?g-q-eVCATLHbnC19rrb)dFN>pc!zO$$3Js1Du|Nb3k{fZ;bSP z`Yr@%QHoGY*2=~i@@VV2XpKC*6IAkucm*2WxbksVW|Xdjmy|nn<*NnC9uil$?bJAU zS0JovgSHP#xkgc>xyN+s#iuUr52e%opY>k_7?pg;b!huS5?eaxG5uiioiR-~Z3Q#v zG?52YkJH+9)fM0;Yma$uW4TN$cNFzq`nqhZM^mvpADoZPPgniWRW8fFqX^3#m4+(h ze~aIvp{*F~=6OiK?EA&WxaPtdTm{O>_yjZ!W;)=9ldS}>V@*VrE}dbZ-BCqq;TdZ% zO;Y^xgkLt3KlcmL3OFls4BW_S&sAfiK`eo+Q1*5)+)gaF;=!!lCv8JYd!4=PP7G4fn zhbJi{)a4|zY`peQ|3a1I6dn|Y!hCfQcT{qV+#i0T&g^6#^W1oNMKW`}RNp%{JNKnn zG=B%_tYby`DAbAhL#5&4LM*aWG#L>)ckoLA(HsrO7q@epZnW&RQnmgWo57Ko)072n z5C1ty-zP!cKn(qPFSpWpb1R-%=xh#Ri>EaBn#Jbrl8S{KxL{ZmiaxH1h{rS>_;D`O zbs;b-86UJz-%w?gU#Q#oD(2r|FDlTD$X;jBmxo5iY_PX0Y$QblCx#~4sWTBUF%;`% zx}`=SJ6-9Zoli(h`Y@Lf`l1zG(F|ckIDC>hO-EI^W64qjEfswyF%A{YrR=~=DmKop zi*>|Rw(>sKPe}NYWv$+pHax2h6o>clnB2EwHYBBSq;q{e| z1b;Ux%sp~cJa%Emoo$F@{7qj@+AyPEAmfR}Wa@$8c>jH@zm$r<`(du(*w6sG@CrPv zU!{^Kri{7Up`O|8*U-a&vA&tR7hrvQ{O^ey}W zjj|@IwyLO#stmo3O(v%(g@pJYAx9+LQG866#kiv|9_-s8I<4cHiYEE|1knN&s=h>=O z9>DOUAFfJt2<7E^$AmrdD&7#Bkq&em-W>}>%55(;Ec&81{f-72kgFk~d}8wg&IeuP zIM)`}CWc+cQ^)%k)x{xqxxl>-v6li7I|}5DJaD4xv5%!fQ!C~q1>A0*@gPI)n<-#t zv8tkIf_9`sn|gJrqbX#6A|3MzA=towEoBE`gkS4-R1+>+I+ZS4ojD0{2eZiLn`hMA zC~tPE)DWtAc8S}%ow#0}wFweu&+n_g{g{Q~X2QJD#KG2PRS(EehwtVvdkgo3yT)qM zN-TlH3iAyZ^;&taHJ6A#wxY`UyoHhMz!H^|&g$0AH{EsZbhbAWN<4Z0{46~4Fp0b9 z(cb*g8@vZGxsAkfl#nnZ(95CxQPOZxj5XeaW*Oq50S!vhhLLXPN5@wt3wp$hUjVvX z8$G|!41NNcSIz>-D7E#mX?)@d5;#Fyi0Kzs8S4Xtec%k7)uYHkELE-K!?Jl0uyi2o zEVf&?Og`miPNcun-w;G_T<^goSMRl5b2{JBGS(4~G^8fa%Av`$)gD5qTv@?IU*7HV zH*nN7zsxR?h%H|&O~ER@bh8l-hGH8x6vqu-mUlL&hD)o0n$dQ%{3NutVkyym?gCld zHy?^Z6$sNUI)^By=v`7uw)%;%Ufdh!Mh<$+{nkITVok@8G&#X} zq#kj=sw#UxPrE|vyG!nIILUTuy<@%@6H3&Gj}APp1^GOu5GXN2W~%NNl$5}wZiD+S zb|_Y$VF@FGLH?$ts=isl1Uc5iW0wNgYmS{=AKN~_4d>ts?(f-%r*nuqhH!dQLiQ(K z`I$6Gl+hJw6o&z)`_XdU1dR^wmNYUz!04KQnU(i~5G8e|2()U=Qi38G0!lm~~kf3!vEm;bmPyD|`t zbrO>vUq924tTf|?X?~hA4{uuV6S?QB%{VNRug#SZNy1Pt6WFF1!@N}YP7PjTRhGNd z39kX+IsqPPS+ZqmvU!m-aWv+Ka28pN_rF`pRA%XNuw1l|&B|YUo%YoiaEH#n^Vwa! zoJc>Ugl8CORv~fbIE!rOTTC2A9tf&8-L)NOBl1z2NC&-rQ(5!!_qC;*nA&|gf+c$Z zi7HGsosNz8XnABYw|c%GrZ&`@(;4ExxLmFiq5)i})d0HOkc)Za>va)@2J*o zhTvS0w8zTZo2L-S?eZsoTad7mzE2z zJFSr_(x~9GOl~QCKhY-$mz6X)s*C|uG1QK;lUbIZaeG8q0CZLIH^=cKo*dt!xF>C~ z72+;_u2SLK2=_gKDC)3-pvC(s0_%2-$ikMR=|uGFmLpkgO=3ZntpUv{l%eHu09QwO zg47`$^K^56hn6S-kU;7)o!lv99WaBaZj`>3E-HhNyw_n44zE^{)s_0f7PW>q>@B$4 z;C5^#si|S5z#70f3qg9pZ~=dSmNC-8YQ#ac-&cxaed_@cZ%2NSPjXOWS?RlN*BtY! z;eBbK+6(t(PQr+J`Yu9v>JI}nsts9`oJrwYZo3R_0I(h@NQSh6dd+{J{XdMtnXKY8W#HQ(#@mm!xx=E;ODhqZ56k9LH)ohKmMRies!H60l01jeaJwbgeO}n&smD5sdCC z$Ksvq&G1dazy=H=ssf6v&!nKy8^>VUlNhy#oY8;|4$V^g+bm6v+L2C+WK5M7xeV$> z+_dw9gt5leY$n@{RW=3Ukw11$|&CuzQ}b-Q`4ICi&h zDYq%uQX28}j@er<1DNvr(HRdX+R2*BM`b1u8)YRJCKcYH)smKAf9ImG93R6GU zqv)rJhQUv4FaVA)RC{5d{`94^Y|{Wz`tmcLk^30TvfKbnS1y>cGeK~19`01w=+Bkk z>fvzACo>&b+^-y9R7f((lDrCjDBZ8oom{}PkLbqYH2H_G8VWV=H5LF-PisY1v|%CizaY9_pE48%WtW0HG+)$ z>N=yU4Llu7-O9-PQ!a&9))M;-@wE&^bK5v^MK;a|sevJ1+9zz+fFPv|Sd^wCqGqj* zrNV^u!9_god;Ads2w->y`Hsld>+0Pxv>i#&eU;v*RYK#fJ^4HGPVbx}uwHvnJqanJ z{W){6Yoi4Q;rx^!IqxrlH;VUyvhLxxZ9SBrgJtXtbs`X8G>pRxEY1O~$3~Wp-J=O( z&8tCGwvwjSfir;Rk<&Fv;pA!Tkz{&&+(!QJZr!Qa?!hP*Ken4@py~lj50|GtdJsu* zv8YK@a6888d)8h&qlhJVDkUUoGv5%vV}si}vYvIvJuJ*J&gxI*LTjs^v5-2pe!hE9 zr1tLgJpp{!Ecr;PTy6w@CP1BkHO8#lQK;}`Up|AAVzocOA?GOvxD_U|BKcbiG2MqK z_yJ?lRq=_X1RXtPp-&<4P34>?pP$ru93jNGE+@^k#nO#N5T|g4wF~^|%&o3qgz0Qs za(5(`V~JO0I&as5)a#N_VAcF*Nl_rjgCTg?lv^o{%zNY+hCB^=%?1-#G0uSZ&mc${ z(AnnNtel(jKF|7y>h85$!kOD&K>-i9^^$(3I&c*pMW*6f!&$=nRS0tI4vj8-++6rF zj^m@@LR`m~r%HN+ncQSSwZ>YK>E(u6*AkyMw;wuv2iWuW=aek&K!*xBzMEALe z7Uep`3~311Q$=+O&0JSDL+PpveUz7!;&b?}V-HblWWs(=0soQ{k_pwx3c${;)9e5C zW+G%a{0!zrSC&SXbmHHiH(T ziQ`ZzcJ+;=o%&D21x;>X)*^U~I`QeNvb2G^f1DpQCwkr?L~usF68o|qi<-(V!dC}- zdP@n}U`!^^?!qa?wv%ydy7!&hf{^))#o>wIc)|PAz!hWM_;5Q(Hq*m0>7gX48d$OU z2c^Xz38T^tjLt$O_F-+hDWD*~0{eW`+Kp7Cq87iCmL)8Rr}pp}cBUJ)rgITi&;y-l z=w4c9fAHdz2~>46iiBCKK2;4D5pzm1qsHVW9)<7BIn|(`C*Hl0(YgkE4fI&2ZCHB9 z_{8&Y*v)REQxlgzIROY!%7=4*I=HOV0(lB$s!$k)ZHRlx=A}VB5sv#mAR$|tlil@Y zD(83Jj+)ZB)CMSO3;tTQA;7J&dIEA)qr07S+H3##_&A75Wzxw@2`C$O=jZ|$-MZJm z%NbAi!89`qG!j(DZu3`YgE%*JNSR6jc$ zcY-r(H7u0O0AOZ)J7KMu6Q0jCCzKm4R+s+Zo=(z2NF z0#!z1;{m1v7$g~>&=#tu)&^eV!M(K&ZopZSu@0%bnL;r(R5c9_W@hZJpRkb-5S@K; z=Z5Hfpvh4p#dWJdERJ;h+hTx1ab#cjh%(X2Bt>)nz4M~0sx{h3s3K}Ol^QoBWbtYl0{4398*MK}^ zmAl4YA-00HHffF+P>IVjy$Zmw(995lceqfyDhX!Pqm8--Dh}>ysEa~VrIUzB8bNL+ zQ%#vO9D%6Eg+A+R2YR@8#8(6M@44sRc}E2vquyVA8xkgpEH}obAZ!VaHR2iTig?LL zn^i@>@6<0;M4*XLkJWUn+wU&Nx&YxPa33YGCpf%9n+$$@*3&6FKiz9FNrGNTpH2^u zzFxE#jnw(#aP8xl$>$q=U@ge+_;orNA69Rhp&-WwB{__GkAmM%vPw>MBubVT(B($6 z5^g6r7Z-zP+MqTdpRj2*Z+qQ-b!;B}hFvqbzIKD?lIIaY8mRNF7i41on3Ip}`x?@RzwdP<32n z{8ZZu5wKO5t-`tcD1Ap1IPDXRU@<|~)8cTp(_qQPd?@L9 z8+jFY)sv9wX!_wyjoH08v&d$R)I2#u$yuw5G#7J`s|3Sc5F^E#-i`T2E&8@_mbXX( zk;2?~0l2Z`E^qDmd;U7t;RCaZ(EEje|4~!!lQ&{})sx=SL*lzbQ!g$ww8)a(Z##DKB?wB%@ znnmE}`GT=OH+|@^y4Yf`-89CvzTe(JYyzB~j)qcbYq^cI&51r3c+%)ZJ(K2(j}iOH zxoTTSYLQEt@-hVe;HkX#_yXzaxc?H#tu)WyK3Zl4UQvyG?Fp!k<}~%6ru6@vPkD>y zu(B}G|1IA1=M?>P46Jm2EB~2qVqs04+5b7A|DVZ;VFp7bm`S<#5`;S=E+xwrdKSED` z)c+Nu`W=OOi#svD27g||Pf#q3Z&%06@RlR{D=x+SIuKU2w>$CI@<&vP7LSgW_U(TD zk+=HmV_K-UQ@v%X7#W!UwWeod`+Y%g^|y<7+h(F;`Q2uvWBy~m|2gih{>KoRq2AVS z$Gp|vPW-lhd;RTv|6TiExv~G(NB(>N|G)P1Hnx9Doc)>b`{#2fpl_>dV{Bz-Y4b;t zOG?{ZACKnWp1A)MIAdn|pTHR{9ov5hoV`9}pKW#ZE$r}Em|oj&r+M3;qG$Tw<;`9@ z{8!$L@%8d)5n3H9AD8v593AJ@VGx&B@If3M z<3S*frK}wN*D=(5o7rw!U2Trt+bqwz%8JSsTZ$W9zt?6E$t&n0(^azoiY_iS&;liT zH3QIr%HvT0^mqI4ihkM!p?9dPsz+jR06YWo;^gG@3MdBkiUkGO-qzpR)!*RF00~&& zaAH?hR%!$=>Na|T+5`%i_em*{2t5LT>ZOjuQ?-JV)5Y{kYAHnN?}>)Q)6oT%c{255 z;6>Snv9SS8q{9dB24J9&L-T^{?;M2lzN6uzci6oKDDzAnQNw=TvH@me^A!a&Y9}%V z)Cw}Vc3@5eV2EG?s?Os2feJCa{Q_S2B1!$zL^s>W>_PFqP2k>hxwlS%Iqij|eRZ~D z26P)lrh)~SZQ;qX0Cj)O=abiPiJJM#9L1K7nXW#$j-fU%P{pIGrow2H0uCO7J_VYb zxK~4ED8s&{LqzJr3&d%>#Y@&^P zbLV;-o3b;&rBZ^DlGpnAdiu*_-V0AH(V@iANXcP4a7PCut%D8ywE%!L7`in;vo`<* z2SdcGTmq0}cv#Qy1gH!Ez;qLuw%(ENwm3Bf3&0?8E8ktU<;jxc5Ne<7X}EB2R>b;6+@J-K=MD?*^l{Qqo&#_O0~v zTH1dMb!u0$d%-(xl2}z}T2?MI~QTBl!;xSM0+_AO;)s%Qq9=KMF@GlIl zJX#~cgH}rP964(Hj_f8%m;3_kLy?%Q`V)S1`IV)NRpoOP7kxE~=$D#W*;2yBNbpRWB(1oW&ZiiE_4rYo69^Edu+2M}fD_o?D z_~9_mx$Q^j2A`A{m-%P(j+$p(#%jlxt@XS3u2oPy1Dy*^qJ{PrE4!!qEl($(n@5^4 z&tz}j(;&}FR0z~lcu}}h0>g;X8PD_&r;<>0jZfKKSnEWi>koH43`20JJqx?(wy+>R zOn2D`;7Sr`;-us0qt;%6j@B`J53bDXSN_ z8Wn09p8O70Bs39IZQ@Ti{7-XogybeC8zT^?QIROaQU1x8?L8fv4{O$*ZFDBoz3UeT zde`+E3{+UK;5z*AK{Ga}sSX#%sqx&tD7JSJ>9W_u@D>BW-LQi+OaNvd}+-$X_61V`nhlL^%JP(wD}+VSwKITur!G+z9K@(#c^04XZiT(s*_U{a^0;-VHi z<^c>6xrcG_M;RlkNdt*&*)-MhmvdVgJ}wx`P0Hx1Ue0oyqMF?k22~FUjFg}G#|-?Os|Vb*i5$>dbr#7#SpmP>eNA#(e^|snOm24 zzuRDOrr!Gz9N3;FQPZofOu{2^tb_p<7(N(0cAW7jYvY1Tsz>Mh`P)7rF=qbt0`u6t~{z^dG<`J!YZ(w!iXL*{w93D8E<~jNqIJ@$1=!4a&R^d`5ozk_?tl z)LBQ=49=gkwr>`1Nxvf7j%rI!T#dGVBJr%^$DS4~Y_4*!NB{G>LbD+n zv7z?@X*NSZ9THH%PC@=Fj=W6hpN-RYBpQU(c2KJkE1E_pm9?U?%-Uq0L8bAP)EFc}Su_25}RuOW3pL`j>T@;!bYI zMzI1t>)%U@d98!%wpm%f2pMOLDA+)XWH*zB3d$!TYzkd;LAYOGn?s)YZ#FP9Xnv=x zRlzbAh>vcoaI(0bz)Z8Q!1B={Bf1B_-kYfFegH*?N>GE2B*Gf&wVSuAMGg>Tb8N6I z?NVY{;rC_+nM#P1Z9rjZX;ev!{q~Krt=F(}&9WCk8f?N|1HB>_tz!qpq;RcPF`f&w^J#msq->BPP5uvupumO=9=W~=ZU}L2 ze5HDM0YioNxih9s*FvA+Eo37ezAoNN?8;0qVot9EwMt%O%mf$K-@6l z<5v0p8aZv^i>8XeOzza>3vHrx?1H_0_1lpPEFIsf;CoP8)7fePeN#VObx+FdIn$~1 zoIWJu^dPGC&HGonJ9w+BlS;LG3&iGA6dsWB+s$ytoE z(l}LVRXcnbH0!eg@4)Rl13WT3O=scA5i;J}PU5uKRvYh`V^!fjcnnAqemd z@$7MpwXk}-UmMnF;N{b;@0m@?6rI^kcqc1ZI?b9yjWQnq^Ujl$wiZ`pdPf=qYAA

    x};LefVS3j;~~q72Sh= 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%0Aota5Brg?8UAb#;j>l<521HPkir2oqFIMz;u$rWr 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 z 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⁡+0HPtzC5G_;WJ59{^&(D4*3pRU0=^=8Ei% zc5}i#0i+aot3rZtY)+}XK!&x(%XGEi9$4o2&{ab~+Rs}6at;-GF zK~5C1YQSxlHtAK2vqxOdhABzPz>&hJ1~bKoD*>no2Adz@w%fPdwx^jp??Y#}JhsD4 z4bQM@x-5#+(SXXa89sj=YpCfg$b5;1_$O>Gae)*U&qr^ioeW_Xk3w)?K;zmh7MukR zxQk@23{gZ(r7x*^tn!B`rC~0ZXY$=U$f6~d<$N6Y3W(%bAX%x&r5qtp<*w8JFbQ+m zHDzQ6URu~bZy-m987@rqXyPiSEB{&{%gvpjky%$zSLlQkXz@zulHvHpgSjaQK3wx$ z9Oho-*%G?7d)WE7nkKT0fQ5o4ua>DQM2$^HXE_5&!flYe*>=D zIRbCJijAY=<9pa18>A;xnz*zez?V7;Z2s!k0ih0m$;ltVeW~dlb#zQHca&WheTR|} z;^{7T23?U-cM*^qp#0F(msq4oKrMh#qHifKZ~0{T`-4ms_Q+mY53oK;C-^9F>w=s@IhedkHHZNrwf7s5$n%e9Gi}GIsTQHA1Sm;2;$sVo81Pwo<52M zyoVDHrBdfwpnO2R*roly8DqQQ#Kg+cOx=84&6iA{!eK=27-lg~{rF^ujvi-PdoXu= zQ-I@+4En%pmt9n(PD!Go4RoBFFJPKWlpGG6H=Uu>%vWDBEr_X3yNINqAR2(N#Gu9P z1a5{hhImfREus4MU%q$Wt6(xJ6Z4*i^KqBW3cN-K_JI)>Kt}00*Tc*WKo3z<6-)gg zm%qbPysG>|j9dlDx!W|^!oo8R9oyO$uG_WbaFa-n>KCO|MY2h^*}Z63bxec#ha{r~ z3_kVl!qah=TC8~E%Y1mKZvL)*v|lV#qwj=k8Gqas<*dE4jp2BDqr5QF!gA@#`!fa; z6y|g3mwGwpZD)0!`^nHD;Tcy4)V(<2IL9qg;m_>`=5~noK_Ac0XbUQYeQ&EOY}yb6 z!oHuRmPw2FI<6;_X%0*aEPf*pFSR@R3UaoyDCfei>s1hq@C-*z+9t{y_6@+`D~@t{ z@Y(`J2BKt@_x>Yo#^ep*vDelsQAq&u<7Z4TlGsdgrx3|91^E$eg9UIk0J0eRAci;0 z0Z3KQrtH+Yjy^x^Xwc8364|Yd1K=I?x8s@I|n0*S! zj=JCEfeQM}O!;VQr{8E~a)D~76Wt9Da;_}b*2FYWhn$cGRO*<%>}J(sIrEUf)-6lg z+s|GpNJdB1&rfJMmdtW`w)?^@t7WM+Wr3+d&eMAng&g~PxG{G+qP}nwr$(C zZQI?at<$z`+udJ3@65a3%A+sB2U~8| zpcy{rbLyzO`5L|GbZKg^WlKI7#R9=Gpha^^7<{pu()suqJ&2N zX#O6cX4^S@%^n-3-*&A?hDj$WaOg>d%b%dR7(utPMF>1dyk8R&ddE=neP=~ zN5}fh!Y}LJXRsq{^dYph8?|@t`nF~lC#fB;ZTK+yNZ|}U>RNg9Hm#kuNUG;Fj{5Kn zoDgQcrZ{1fg=q-4GIFaQdq3|my)1389&jzlCG`wkYD0I(;u}y8$H<@viV96%wzFvJ zI$WKT2fuEHN0Hznn@23dNQ7oFhP)8Bzh~!v+g=V3E`SJdn!tP1jbV3#B+rAL7f((O z_;6VoJZrx@%?9sR-EA~;0h9#dQiJc^`eO_R%+$64tl6)nYy-siW~-UXK2mhkYDu_c zjtQS%SrB=Tt*1N)+D|A@3jBv-MS{Kmyb^Qmr zTp7W_zs`LY&#oO z2jnOw=85Q)%0NvM>uQGAbc6HHDtS%Cv5%@FaeZEaPA6@QxrL?d1O{-01f_mBM0q-jHGfJz zwySa7pe53X5;c)^IEOtrcLjgrZ0`Fm?$EPM_fZ%Po({q}h;VjS;UY|B<9p$bBo!-V z04dNNi%<4C7P>P-5HRFxKCewihTF-wTw#o9M{9dBPDI)*dx6Gta752f35^5H+EAzW zs{84BXSGGEqx(~dx8RPx^#cD69wr76?W<|J{@*?!LPtuY7S=%-eh!rSH+$Xd--iv z+sYh9u9p*lml}b|-j!KgeNi(Q-f>V`4pc3iqT>B)wo=m|mT`ZscnWvWl*T1WJvGYH z_G4`cxn!o>=c`z3t9Qh@QR!B#a*cbOi;WWY$;l@?9eqFKSh+*M;iNosS)EQF>ix)a zM6q=pGoPk+g)B6|fJPF`nl*VDPa5sayd#2Oj8oBrcEpEyoj}~DM*sV^(=Bg=A>D!W z>!K?jdYD~3Z=)bLD13i{dA!hB%!3^C!HTd6nbUtI6IT%*g(+~4Bq0?+N&zrAo&~T$ zQ_O8KQQB;oh7~;m7h*<3MO>?@9kZak+5{GtHM>$UH-1SILvlNx9Gsy)m?YdlFxgwb zWw@w`XqE219LJfObdDmz%0_UZNp|dxJMtmWTG>B5@`h|sFHke@YhJ0|8tuyl{dCK( z5sP|~-~?ak45|=JH~dsVu{^k3EdV;c&lZg7NDs70-3NP|YPGpjRCZzeT7X}Fc3w(H6 zdAk>XscyZrZZh=RzCqhF806DD zNtl+Xr357GK~8ld+Tf#O9E{qYHt;i8529gZ{OXu0*Ae&piVgH~jU+W4Q-&S5!r~-~ z^7<#9$w1r8aE@-owXY}MZlKm!5{*SI`YJ45%nJzaBIbN6{>!g;>I)5d<m?`L}$X9?s;)!VX>5HQ5(?B)N!BwJ0|}jb@?5q8!Y*JU211fZ;ovFUff3GKzU^ya1t+$D}h3|C7OuCr+DUjFVb$&LH?h(z?6YeK#&CCO+ zcLmreQ#+DHLh--ALOtjrdpl%vav{9pg4eYu+Z|?(HliV>w(q=japG{4Vmfw29V&$`3C~Xj1L=Pa3_2oa zOnJNBm7!i&!Mm&p|IWMd!GK$J@eX*JZCzb?$kvZ)S>eu7iZ z>zG&tZuKZ=+Sfn3>=`+UjCKIItZqnY8YT#?8aF;;V(pN`6aR?jm6Mp>OMw?Z@|v`ERps4eH8!m=g4B8)f4G6aLx~NWig>^Ev;cnKITRnM&MBIxBGMF%Z@y} zvU$*9*Og#QV+iu}TCGO>V_&D9%M}eOGa{Fa<~eQruxl9J-~Rd{FUB?q5oIQlY+LEx zY%KChN)ufO)g|&0p3Y;ynP$=oViCLjHLX+Ohco`7>t`HmX8T=mOLnfh5YM~Dk6e{r zaM^VAP*T%vna5A5bHt_^jVfu9F~DX~@54s^NEe~7Zj}%V$1h)L+<_o=$lVBPSX~5y z_I2xO8Kp8-tV3bj&dZ$1JVK6c7{79osS2xZ=UT*wvFPM$;W^G3+LCM`Q}h?42eB;m zIY$wWVlH%leN0(@u?ovwv}oGEe8ndugFUy7_|QcRhi46CG>V|upisi2zbSbkdRn^n z$#h93e@>TIcX5jH=;p$w*Q38mXD4SpXGQ6BXx1Gn<@W9aY^`n08;CcpmHIwKwPvVD zKctafj4+kmoJ8fVNv}xZ-5+SDZP$(IeN-8Aws?I#a`?B#n2SgOfc&Kz zivISW4S{!}tWZ(SShMO5%(znSvdntD=fvqLleh!UGLEs2PDt8IFGSXHR8EuEa02;W zoSX}Shv2qO(*RTgyl8{e^gG;l29ih$BjhjTZfD5pd%H(OgrlTzyQeIHZ7TF;5#BmQT4WFGSAnC`nkb$ddB}bGryTrboUr- zP1K6*SzNAd-3UTU53SgmfFiF-g<9F#prpWW+wcDLN%c{#$IhTR!4#VM#)rU-?;U_? z#hoBF*Hg{8b6;}h$gF4&3UM>>3v*3dTrd z5CM!hD9QWByie^jj|a)4oX~gP(^Q!8?DCm{%i_5W-3ybGcA&FirYp^ak6n;Xmfhnh zJ?`+L(sNQmmIuASd8X)H6hSX~r=$K0r^-{aLCd7NM}$V@=W*cWaGc%uKDf-qD;!c% zjuw3GJP4$dRwKB7riEQE&(L&?u4NfRw8+}{ew*W=**MsY^&A-yCFy+qg|70L79FuQ zh!KN)`g8n;?yP|SBOzJVv4p>n+u}!m(%wMewRd%Vx0rVoL-H&0`tTc3F9b>bh*1nq zwBTM2nK9VSBbhNrf6r zg0VDH0vks*`ge&wOK}B>1UbnyPr~?EOhED-xYJivmb?%22tJoZ%`jy_7H^-{uyFbQ z2vlx(`xxz(N0;}eBInqu5!n&Jc7m+PdW$Djnn(pKm9xL(Xv3{8SzskOqgHXH)>b?D zGI^h2jGm}O3NRa+l1D~5r5$m~^J!BO@Jq65IE>=H%PFK*~9(XO25uaLizr5`J~kK=RoVdCXJ(WS@}Op=eQ7G!2#>Z)$=D8KCYB9l(~&NY{#3!|f&kY>rwI$y;Nm4DymzAg}<;QcgGf$AN;Y{M#XyPnwj zTKBDdO=V919U`|H1U9tOH%;d3o->b?LPU@QD-0ggsk9obh*3aa`&xs32`Wn|kS1`Q z#amU16xPd1cn};^p!@P9eNEM;NN;(Ql#+yc*RCrPS#))=%%2L+_+4MwMg3QQdp}wz zsTIif=wh_9`%|qHp?RTRjX-eUE=LTXAN#Id_VYu?;kn_?R=tWKfM!(KZskOnl`2lY z5B;3sBTInYGj|%l~jGZ4FIBw#B8P39EaAQ8f6sCk+VP zGEhBNi)*&nAsn;196y{Y8uwOhCgR}o_w9RA`V$(FJ*~WM$ zT_yS)vC@TmFQ8GmF5X-v0QEUt_%s>JJQRU}aHs&!jrCZ-2hVSr-j9VHvFsFyZ3y{I zL0#}bJ#$DtFU9V4lm5R5TN?*8d&rY3Rk6#k;|YD{EoX|J_cl>pW~O<1F8L&dn=WKmfx{(+r4j4u?OvrfXD^BL&laBm8qiqp_SN$|)m;`HffZ;e$b?blo zA&kd^jrGMV>2bgBig3}T{vOZss7w$ujc@M-lW+Rjo{ShhW4fQb9Lc4m%kA!-$5B#WALrQ4nMRoJG0Drgjy!EQ)y%jvV65;>OE)kjR@V(k(`tx z0-^@}b0#E>LfUJdxzXr@>Yx-QNfoTRWeDDzb5x31HzkkE=z`SJJrq6`aA+$q%bDeo zXcw-*)c+_Ii!0(mUB@abmi327PzFVP@cgil|&_slsWVy$5~?UPdtjGUA( z2s#3QU}Vj`QhJ+FE4&Gb%LQp>^lncXM!v)>fR;;eJLL*{~{+TZCySb%-k+5D9b;k%t8=1j{U=FZlL!%WF?mT zS?5Gwpeqp*3&c0UMqON&FLX{`zEM@f>TrE=+K%r4)`g{~`q3!-wu){>dK}_GI7oL6 z*bbTB+5_Ly+9RIpnOkpEJ~s}#NBgcUWuQnf7Hz}am7DW>_nee(3`;&3!ylW~<%%2* zQ-=|u>UTeq2giCzmIA&pVXo0m?GyS&MCvZw%`L2oY_i7V-Yfm&!`#+jj8|QN4l;^Y z-s7dFJP%5Q*$7~TBT^PoB;l1<{E!ErW!qq2?rUf@L9W(B_{5n+v(ptI%w>;4J9Ll; zRuc;;D*=CpOv-egu=z3rb7xG9Y>HAsd3_vYcs&#(bxChaod*xcay({M^E@~sW`8;pwoBm~oEse>SP811X?V)h-=%IyE^fY0D{x{T~ zv#2C5X9O%uEUlIJb2yp;?Pm&u6_uF`2*UeiFN_-0}WVb zjlHXvl1k3r%JnsgP|kzTHaW(nHg5|lr#je)VYcV0eR-@HE$4qCecTIGC5G4_o!=;r z#EqZn2*Te`Z7juEGG!+Y`%1R3Z?ETSE+y&7HYQ!6ZSEnm zo@@|svo9PUZm>_zS`}EpGmdaD%SbddJgxhSG(>_1#=xs>W zb-gn#1l3H>f8?N3>NwlfiwiRq45Xjo!H5~_!yR+t(PPIEz$AKlPDuwLu=2oRP_nN`Dj+?nMutYKMc8t4jn^4hNK_km4 z2NEk*Z+?2hs}{uBIM7zWRk8><&6wdV4BbUQ>vM!CVr`_SpS*|=UdWIex#n%)3~eNx zELS`SqC@gDc=!4%;THL33JE%XbJ&Z(d(s-e9ilv5urs94>*g#ib*waPCg@A!DoI*y0%1pKZKK^jUV0H6ArjXqDBW!US;`c$Hw>*5#nrX2 zr(;dEKR#sb4Ah~*;^5Zh7o*%77$)bhugeS%lkdpixQcolGs`3ack_>nDLpNX!0`Y0 z$PCuVXfKj#`qYZGLZhWl(eX1E(G-r-aR1#ezx;{VM}>B)%n(lsT`UjFa%I?xjY|6f zH`{6}^O9>ZH#3|)&JP2-tbVtO!yf~%8ZkuQLI%^~2&zo;@e4jYv3A}R=iZfic5e&L z!5Wi|ksfZUF?dOZ!e+x$x@sK4k+xG>mbz`*^Q2+rz~(IH?jshS%Bpr!m9m^Rj9s>2 zlIPm03z?eQ^FSe`TMsdauGxqHI&PlD-J*6Z?h&97OgY|ED5zMcy2e^eL+~bp4h(}3 zI~~jzcB^YLkr9u*O~V~9&ya3Us@7=hp5{`Yi)jaRyrRX&-kWE3+i~!j9MlUf#(J-# zvrM{#H9H%{wrcuC;NU7`w|c9a116Q&6SF6E_Kzb1#54LU(-^U9G+w$059#R=pOZ8C z(+BY?h-k6Jl-=!X0J@1MMx!tD=a~p9v%@(;8C_!t<)Z0>c6Gc_71m}Y-KlY0jEZsx zT(xZQanR%&HV7@1W6peLJ&^t2-c0A>(?f?X)Cl%Dv98QoEarLS^P#vMrdhW(Y*VRv zk&N0Yc|`#E?xnD=r#%?7^T?Jv>AVTEu_oRaPAJ;h7Hh0@7^%J|NbrQWO3Q7m;?%gv zbhfYTUKT4+?ckGqy*v@hjW&IYf@wuT5Dn%ZSEiWsP!qrMKu+z1Oip@;Fj)vP_GWy=|aGWSQ5MT15(#D2@LKkqr`85)e0e9ZMtpDOw+)0pKhjE2o=_nS_e zH>JzTwukjKm9CohhQax*?qv$st?5R%q)l`&;fUanLq9Vf!aYJ?Gqpu~JXxUlNn`B-d8FI9a8=k1?+<-QJO?EdZ#xKEw+; zYy=K5f46>@zBMSyt3Y-Dd*o0zot-~m<(C#FU_BlBbXD_lhr%#HC8FiiR@fHDa(5_Aq@ZC(3apekZLJ>Ka3{dIoZu^(G{0 zUg8NmkN4=n=F-$!NG;DBUl|$mWma+b%qRyqYd-HpR7twwuIL)=I?F=gohRz!$! z7oFiVQ$M(S`q}e>6gQtsu~y7bWZ;lI#NZQl1XGwKgP%{kfY{!d?=6>A+ly5T@8&DLG9^L}u#2~^E!ofS96WKP> zdyQa_V5SAxDf(=Io7b6Q?Ic$y!RdGujW-_=`>}wm&*PQm?e5k<(`MzKViurkRjYo+ z)Ff(LIGF1}xp8bjFK0Q4R*W+au;}f}@hL|mVn7Z*#J^ChjIe<0xC%bG-|OQ|R2Yxe zASIBM#hA5rv!@ab5~@I*C8*KoiSvFFfH#^Bym>JyWrxnc=}I3lf_Ez{M&XNb-u88? z|2`R1LdCNp$}S{3lp%;&+eZ8)m`!3Zr)i#)V`-!jR21`aO?f!C>}oRjGp5#xH#jp& zhOH14q{U&-^r|zfEg|h#9gR?_f8<}D`ugXwC^Fip)M+#zqTio9JB*!LwOcUH(KD)w zl!Wpi(s=Kg3fjANf0s;wT5V9Rx*vqy52=6SlZ|w@|ty{z|sVdB9boYIpTtse#FHg916lKpz)`- z)~L4b_V-zlh2h3vB-{oOkH!@Oows&&8rR3@C2A^|34?Nct+X`Xt< z(CCfaG^H>GT^&HMZG%(0w?uRvN+v!De_9Dhnv^f{5;?qW4ll)1{RnFDn}69@tTtwD z(}JX$j}AB@TuFisY)FpktOT}Y^g`>}fR9g&av_-0hbwJmGA>VXPZf2Cmze2=NOFX- zEC^{pW`AfMcb^zVD5>=kN=R`BWmwA+VLOhL&*^P*+8wYC)GY6ZYatHGa#;2+nV6j> zmCiO$;Y;{5o|%)AtX(2KjflxL7q=nX5K$UxjY&Iebk`miLD-$0TiU4>NYK;LrIMoY z9pty%SU#MS@n88=ASz>UMN^qMkjz^+1gC2)ML&5}eZj>%(f1?_XV$u_mWY*BGAY&h zVX^I`32C>BmAhvdi0ou#^)nvTz+%TBBNoM{K4FS)~6*Q(Y=r_z09U8QqP0rRL3HJwi++3+1eNlvYq{ZP4Y(!JGezkFZgu6P`%JP8H? zj5@Y)8t}Z!xb-3kGN+ETN>F+k*xsMuQ;46uu_sC`GV0+G9ozsfi!@KzFhPv6-%I!3 zMy*;2y%w6Zu3dQz+F(L$U}7m#;4qr?$(Jx_6$-QSdQi<$Qi)R{K_S=Gz|qe2*6+gE z6jf%d2daDnq^2(P|>WNlBJ1W%AGIsdB2si&8m~oAwn;#H* zW%Si=Fa}PHfVkW&v?U!Uje<6RAnzZ_l?R?K+c#?wUF-<;if_tBaE`pnJ82h_zNh4v z&&3^YVq1)jDtlzs2ATdfO-?@Lk~VLdd>VXPoai(v)6^zjwul!LGbidjci*jyZZ?Ah zsd>AYf%`KXZd6xs58f}9*{Ho}c`dL*S0!?OjD^&IyVY4+FFFeoQArhP7ZO@+Z92**`3YHD`W9s37-qvp3IAUb;`N*$< zXSb@MjlBPQbe((RdgHZV`X#hYL#-|eVJC@gFl`d{!-hzO9#Ko6hl1!BHhJ?e!FBm{ ziDP=d9O%{{7?PK48O_mmcnLp2fIdX8)NS_wZTOQ8pl_7grZ|oE($zZPtr{@@jqhGh3)5v9tmF&-Z1ljJ{}USm6-@#>S62>895XLl$c)zJG27} z1tmwHnwg;@Nyg>%D|Eoe3Xa`>M$1k^{3yf3!)c=m(F}Y&N8hV4ojfX4)8%H}Cg4=C>muKuki}sElDu!H84Ou96E&nwgcr%FO zE@XePw82QEuzO3zuZS3h{)$=yHtXa30bP#y|My{3_d%Ztd{|f|) ztuQaZLRrS%P0n_n)BDGvZ_D)PFAXo$ZvYy=JJ3Q1JbWgpetdRP=K3-sUe3^E zcRS<%yQoP~O+i#y2>;lWTmjM|6pJKL+eCO_jCAfuM-n9!@prEOpO1{?DQiE`>(JR)_=Ooe>Xe*EBg1N z{x4X{za(4#4VJ?CFKg4k(J24GQds{*toe8H4=jcCUo4jYJ1ph0U0F%{a*jBvQ_^mQ z&u+8r2a>W3ZMBiTL(``n(Ag=8CuSEQcmt;u2rLk{0UDVWoQSTrHa43LG75nNAVwB`4#*C`r{aQyfdQ^cH@Z1ICXa9cg8~5X z`sxor4@(IE#tAS=_-Bmx&t$LwP@J8^lYMi2gA3S_CBiI=`hSp!5?{$EK7ni@zdS%;wE%e#wsmj)YP(r}{uB)SW1xxd1iAUCb=6(yx+;vwbquV=1r zcu{1d{gay0{SVU1>l0r(q4({x&*8ZE_BA&ks1^0qRsXoRxNYBW;|JZLBCN@5Dl05} zSYTFIfP*uLJAQvIbhtt28xTM%Eb2d70ClWE^q7@}iJV1%00iN@f9A%J51-lG+kROY z^h$pVZ~?H~_J*PUA-P4p{k1~$P2dBNxqv%30i&1r73l}SlHMBz^oQgf)gEx=;ER9; zAoD{PxV+{CmA``WQ#kHy+!wy6V;px7ti0y!C#(D?JNqXa{-@Y0Du2?K9y z)a>5h{Xb@>04-*g8C~Gp^iN^9oFiX2)*4j`Osfz+Gd8u;X2 z^mi}$=t`yoX3fm$!TMtISktAQI|5YWH^FQ3){m~%m$&6F>-OdD|~o84a) zK)?bHZXaX6fd!nNKVX0BA3dT9Y>`;`P5`mvoqB%_K*m2_;*NrhJ)m5?)hc{D-hXdt z@9oKK^-#ruMFs=)Bm6!%0K0K$eE**Q!>cJdfPG;0%c1$j@TD7Ql3NR3(ee9O8Cbpc zdpLz9&KL^RGjLK~B{l0W$bc2&8UY1RQ3S7QAEQ8|W-}=T>+|$;K}Zb||9WaPWgDFh z%PEhN>Au0mz_p?qcS76H!%MlexGr!fkqHgYwP(haY40V`Z1=dz-Kt|r2PAjjg^gw# z`(cPm`g&HG)FLJNR5unoxl(cJ0vDfFX%Gh8jTQPR`2Ox<@>I)m1e9&TVUg0vxKnx5 zUc|;tzl3zidKx%%U9`}dp2qvt!oL5#T$EDWofV)ZeX+Gisa?)hU{B?D9GiRSJerXb zeB-%%UQ#it?z@>uoy;wcnVv6lW+R{LE$(03^W0=#OnR1+6%hqRQc zEqF1ClA!^&^^VlLhQY&2fayB*J=(1{E(5#T^7V{CAj3Sf^0Ljzxshqcr;pQ%UtoJe9EVqQbjH5GlALxi>9g!>72@tV5q!X zP?aQtHc@ju&GtnGfu#P($|I|)c(ES2pbjlz{T;*e=)|uG)gG=s-nAObgS}!mF&`Vn z1v#!z+g-}4M?-~$eEXcp+*ON-&*JbJ%0P+(~zSyWl)Cc_GUVf&m3K_HXq z)XXM1cBWc2RMer7j}%JanN0yZz$aFL&wD@@c~C5$!Gvxfc#9^uh4lU1)(DPh6xtS? zRHv!1n>_n6Xg5ac6PyH`zf;5D#a+y?7_gvF>)$1I4TBT9>ypx$SSZ@gwHk z+-E-3M9ssd)Y(`TU?sufsOmyE1&4{css+REQ%s#jtE#c4Y1`QKKUm1}!2yGsIv|hq z{yZ`}_a8T}$toS?1%DdO-UcoT+BG$33l5L+b7%z@F$TsGOMALelZoi(M1&xXrarRZ z416|5)9UYEh$v$5Q34N{!CD-YY-H`Sqk7GnTU-c<{*C^ zRvo$-LOV6K`nyGe`75plhL@L}8CKHxPX)rBPuhOcKaJSn~5<6QA)L z?IN{4$=9ETRtn^7(>gypH!a;vaiymg+#+_DOZ!Z5t>%}M2S%So7b5<{bRr-0nuK5TCY|S$36JSMg{u)hj{{rxD+7vE6e= zG-Se0I!QFWn9rv7rzLi%U+Vt*E-Z}!RGr+H&H5MF$Pn^ietx9^c6dTm*UE(j`X`4X zn)yk!IGr}wXVY{&u6?n2@zrzv05GP=sKRPsC>DX-@^e%Y{f5cw&Ypd$?fi|9_O9Yv z{>31-8Oavnd84y5QGMkiO{da*mtR2-QtxWR}Trsl^lj3Ajx6!;m|voT9Uey}A24v6+TK z=5~fKT~pc+1M%EoGlWFS-=uGkKb=*yOLkpf!nwk7xB@tsz^$TrOYSI0qi)rW30&mr zhX8$7M`Nq0RnrC-Np1`^7sSPPw7j*@7yqG*%b*A<12+c5q%pK|9+>=w&H%4R2%=Gs@wL@CuaA+jS1M zP(tUg#P-iRZEY1-b@PJgqRSBE?aTJa;ydWXg5l_f>N&XklA$MdT2hg8Mvmm}9qNU` z8IdOqWpYBzk_XWw@LMH%jt!{>Ju`nea9u2METwmSUaTBAlh)B91_V-D|KQS84a4OP z=;?VpP{qYA>NM;CXIT~UDemT&$=AY?+YtMX%}hfKIh|(RwDpO)Y{(~m#Z|`jlhE4M zba%IYugB6{7n4E>Iott*WE_G&`%I7o5c=W^+(VeR1DjVwnkrwQbQ2Bu%m$n>qUL|y z(sZ}%)Kie|1GTUg4feFyA|q_N-FkD&4G{kf_yM{wkPR(HCSf)PQx4Yp?N zKTv1xC#-B1ZNPF;WCD&Xv{Luy8dhGX+Y?eA@s$_cJOSai^0NxBy4}_eBV2J=NKeH= zB`=agWONq@1(+xf1&-29DtPNlWJYxMC^J^X(|*SS4-WPQ=o-gpBYOv?0yr-Bmm9~5 zFnC5+`5f{d?|sbk$S%CRjD%@>lUEro5m`Z;Lvj7(vuU`akCros9CAR$5M+?m_}))J z0Tb?ZPdT=-h=l&@kzweyf}ivKOdU9H{;@n3sF~*PLAsK1nncdDX#ZS{0qeL8*TmqC zvWBj1VUU#%m;h|Obpz@jZ#>1r>20hjz(Zd*aAu9aH8@)HYr@#I22rbSjH&z9H3Ps( z@Lgj|n4Iay0283c?(;!*{fsHy-|n2MT{Yg3Fw)nT+W6tr!_FQZQc^K#wj}{ribPao z2)&gk&*__7M>X?2;Fg12?^cLvfz|5Hv^SoY##+N^x8=FKK{4}Kt-7GS%jD7sNoK^& zVx-PCc-s}|jn+K@vl!$XS~nn+E=$LHQAuKEeA33tQJUb~`O71dooKs;4VC%mDqRuv zl-Z;ygY-VWzuyScf4g+%CI_itqE!0ebzgqL*I#cxXP=C)k2apu2;Ax|sIvrexRO4jkh81m(txH58d!#;eI`FakK5qk`# zVe)*pm6d>o>aF%Pn0RQY^n+t+SxNbU#yE@HQUe~GXc@?OS&3&+pwG!Kp+=#s)qyMCnTfT3zi#&|!kd~Fp-}*S)55Abcwa0a z7hnM#L=7u5Uqci@-2I)1qeaW}gpAPh69_;B%Y|PFyL2;8oP`4v7kfSU;R7al)# zbMxP(OBh#}p5)m|3yE1hKqX(P7OP@?$u*UJTk#@HeQd}X4llZ|p8p6LRP>f&JVc9o zK9x>QKWtoMyk+W>_7&h?0pw~@#Z%lfZ9yrR+t1FesX33`3*NKY7!v2{kCNP`X0EEo zppUOGYTjL*)-SX>`*RFq7N6koo{D=0xeJ(`)ibIxpS1U-X3eSsPU!XQ;0&Sjf<{sG z{zkx?dp0>SCOJ_RpnAs&CA}Y(JNdRsh@PhyVmx^>KOA%u{DdTH;Bt0VD3T++DGs<& z)Tb4cD@z0jRESX)S`LY|@xxX7Yf5;WjCJ-AIZNU4tNkg}+wH_?lW>cYLkUBjS7nrr zTg|wZ^UC&yS1+K|km4OO@uo{BjIWL-s&Qf_WS;j{WD+d97td&%U3NeJj9m2>Cnvda z-8_L1rO$3%Pn+|T!{`B*xY|5o#h$xFcft(S^1erjeBq^40&e6|BEj7G3&NmSzlRjd z^OfdQ#a%gf`FM(mWc1EZ1kL22ko)vU43Fia4b5`W%vqIK)j518cBWQL z6Ga_M;Vnv3ylk{Q$a2DwonsM)L=mmd2&`* z?>HC0SQzBRm>k52NN%5)SmClJ8L$j{#q1z>avKra$Z|wmbXsxLXYN}-yYpS&PFh>mM=kCCnykj_Vn)kL~ zMQg^DENvqjzx;&1L6k1?8+E`Wha42Tj}I9XCznXM3T_k^sdNYHZe5xP35$%_ra)A$ zjtZP{r()oVR5iUbA?7YdhUU+5dfCc%UNGbQm5lv^py*KLV601J$H&E`=&ry6Bn1@P zu7KDyHj(>zCr$ zRuV!zw_G(3sxg*CbHq-31=eRK^E$3jWVNbQ9>8{qTqb60`E-rFpo3ruoC{^!D80E_kkp$gqSi59&1XkWzuXwaEkr(`}aPel1t+NU>N^fk5Vmc$P1^GJ1 zxfAI~i1?wcS_6jChUe5|)h$XNPk9kTU0e@pl4mW(LxB{uIGNVRA%zl+>ic!5W=0Bi ztk*OvOjb?9e^(qS!xN009ooNXh=!qjwk}7I(t$1v!N!fWR`XxR9xH+Xt0P8591zI7 zJbvD9I)sNnN1K)DTM<0wavjWfib|9d0u>xuT0M)PBwwK~baa)O$A80>7qg(5 zsN1Js5iNqrth&B$qOE=)6F<~3q`0LclVOk$6>iRViMqvForg^3t3$yo9Hl$e4(1+2 z+aT$dGAZvBK^}!b;GyP2SlmW)dECMj%*~qEc4?dH_Ab$|b*~|pYjvMLCSs)bp`Zlb zr7d1+63;_ij+L&1@txNI={l#gvf7Fjecq2m?cj~a=FlG+f@;9`(BwR=jahF9wt~T% zk!gqT1jh5@Wcm2Xiw_g#jVyiVg~VlZ%^1?B!*EB!H$t@XT8evnFc${g8Kt{Ku)zec zPx}Mol=f9h>0{WCj5hh1xi8P0`KxGWSd`qRyzw9-uz-*w^wuLG6}1?QB`j9k9f*j% zC%Lt-6)N7$t>E3_!zeie_onQL9j{3@L$bDKNbA?yq4uuJHt-J`+aYHwju$=Pl`hJguRd*j-Vbx~768}B0fxTeXbdbf2QK@7W$uRPNR~9a zMjuoZ`o&qk9u{MNw0n95CB{Nky8(n*%*=+l#D6U4O3uhE>Pcpg#Y7}RQfb37DWOcS zyF5n9?sbbV@#ae4ud_;9e0n=@gnK@I%&Vj;nZCHE|{>>zEp6TjJT~D;*u>n@z0K zw6fh$6S=NNadJK(_vWQD0tku2uK3_o$=k`M$)@YIb9CIlOpkS;)z4bq4xgo3YFXLee;Tg`+mId5a zV>XSZGI_42dT6M;F>*lL(-P?hiIG)a%Y_WQUpaQQ?czjqdgVv|t)Gu=+DlU^ zcIoey0WS%STa7*rFIXk6}OUrGA+R@RdHXP`fc@%FiZqo0__y{U*pfyOWQpD%`BvNV%M93{0jKc>D;-K4N zcn*DJ!ML*7>HzY%Y?@42%w+J*Z0^en3o1mgTx#^9C3%A3t2Gb8ou|myWF0&uA!On2-sEv!EH$nLZriya>#yoPp&8Qk z!4&DMLBlNdT#4ja78F1e1m&m5);#XpeKVc!4KJ%$5m-*GcK!hKi!%N~<|761Z(Fh& zd_dNjfSlR2mQ+I_2cb;$eK&zqF zWqi%45afb(!FU|hq7))@;^Qpp^Tz@4Bn7jS^~M51ey?AarRu~owYC#wz)hkq)@I|| zA7s(9g}Zs72XnNRsd-^)?@3;lhf-|hf`7&#*I> zeCOSIfj~sHq zTUp2dY_3z@u#E56&ScWfN8o?OLa=^R(TKC|6RAcym&A)kk6iJJ|D%hLc4Sj$d^pm~ zw5_3Z;AHlDyBU5}eGqzKNP!*VJEm-hS15<_QHdnyS?GXrXYgdoig-EOk9S^pbbcU= z@4{;~w{f62EX~BSkAPdg@5#Hk=lZ@dfrx|eWA<#*CosTQ{;39ke0^e-6sPv?Z-Yo2 z`KA4H9H)ik-V+qkIs5fjPubjNQ(?)`?6TZ*yhGCHX>+TTIO~;I*)Bt`(<+Y6w9$w& zOK*IhLSx$`?Z?_BD|hF0=Id-|01i+@CP^;TBlRh{4q3NYxi5XEc~Kwt^cfz@B#{4r zk#Y<5D+NYMz*dLsmi(l5Ikq`Yz-LK0 zrlwQWE^q>+O$v8oFKk&`N~TO!DAcpEIoZQiW(&b0U^sVJ-8{aGgBC=ElR~}l8?ial zEr@>)pA|j!O5!f{xG<_Rx0l4ab3R~XFq#<31=!hxQo9s#RRSoTzSRii}m0s^~R z)eH3y`n79y3g-|PSjX{2Oh%3CB^;2H8n+RhqV+isbB_W+QgifNawrO=O{`sj3gtB;u!oCQ7(oNaT9<_QS~EKNr|K z+a{w8#2clwxl}!4S+hnv4_i)XxVG$F*mqYrhD&0FzzJP)NpQ&cMhN4j$a8Wv1#}tf zWTJU&cMo~2H_s0t2G16Iy~>lqQ_awdtjJDoH)?_{rVGa>%70P9ywPo=h%WcE>R|lQ zM_TV#@0hz#;I%N0zV{1xJV1+h=wXNFhp;e#W)S@=V*V;-=Joyx@Oj$bnR-5m!|cg; zdNLonNw$=3XR)67$-dwg12sEmHT2jTYa(q;$;|fuadyu^vV85H=-b+D+qP}n*lpW3 zcH6d%-L`Gpwrx-U-kJB#Ip>~6DQRa z*R1w&X3T!~;&T`K4cx8zbcfPN79tUfs|gh!&B)XVGvOxA3hf%`@TVEFg$0*wK=n<7qG9)46)TEvsf{K1K70CH zrj+4h>>0L({_9OtX4~#t%g*X=5PT3A;MV>LveV`$x|`6oeA z{?rnwY>`+>*@d^*@SP{3lxx_3^pbY(_t%0v=&njdxWYK_Pn`RMv|i26f9f(7?e z7$(B_=VWvG;EBajy)Nn(s04Fl>6~Y~zWxxR4-EqH$8K%%9%mz%PL`c|^ic0avRL0o zaV=nyPqy03oxvRY)@7i?G`P1P<@dpWo?=w?)3`hVPRpfE!}T7!Q-y4fGRKNlS-D?~ z0O`1U9oCFMpq_@*!NmRk6X=BzZ)4i-)DSKsj>w&F$Acj7*YB%>V_z6dgI*WUxsTGh+W|`%6Gx26qCTMl$b9JSQ?ZiY`nD;hlv5DKflJn7kg10kStZh;-sg37P-O!yQ=fljS53DcMlYA z$0d}|ViRp3OP?#9$sh@QwLAOEHgT}(OM#5ldMDBd80_@vTZNW42!*R>&f*mSfx$*3 zR3FkAS1xj9JHRPnPAyBfgP2| zhQL_k3{)RFHWC!x_{=I?is3DkcV_ylxzELoTPzgMY4~H zcO6s=XKTiga|)jy?%OSVY4{Y46F;YFS{kh=Z$xd3pueTqMHdDgrjSr}HmTuZ>a12Q zMRN-&0Ez8T-^wN>`O{kU_9XYV)>by;gs?*G6RABmB_wOA|-@$zTIWO(HAr9>y%i=1vFY0mQ z$NNSi?dU0wDDx$KR};(ak%z%`UGSTwJAomc`{xjDrW-i zTfU3|BmF5Fa=x9vJ*pBoJp@=%JAuTO8@k-9E(fW^)bw%X=9mNKE8^Fm4_XZ6KMkUz z*@Fykrica2Dt5*;-TT`UT;A^+*_Ar5bZwSj{p{+y;uM_Z6X#<*bOgrBtj;W-oo1Nc z8p95UXE!%g>1<~^v5kw0u>2JaU00FE;IK*b^lzo$N_BUdgr89p&kk8dl115lC*}CyFnd;8wfSocpha; zIFfe`!)SAokC}lrUK>4DjdGudHJBcdGXLB57A=Fq5ZfGm3>X*JeJwZN2rA6xdoV2ydKGTfe11jWv(~P>jtYf zEBYoGdvBMQd6RtoipA;0O)?&9uEBw!d#&HhZLcyfC6jtlE8v(=Q$)g<>b33{G^3NS z)UhZgz*QJqS6BXRjQVj_Xoj=P&&9+(!d9Re_k=R&Z*tb6YnQ~Mp@?YNRA9F<9oQ_P zlug^Q5%5sB`K-G7Re+$X{hl!cYAI2x{+HG>g{%7rxnr0EJ3;MqoDbFLOYc7ELhiB_P`S&iuUv!oaZe#rRLf44?U}ePG0|~WQ@c2T zI`W_v%Si;&+H@T>#tcoa%{L)A$o{a<8)|ch_A*P*s3OB}iW1SrB=P>>-mRauiH~)3 zJgxG^?~wzx5&0WuYro98om?=tPcrgeF2Rfan}Ll*)EnIbFeaeedvnHu+P&1#f(Pjh zG3U4Mkye<@k{t5YZ>CV$L@7d&V!O$#ru_S=dD!-_;t^}91rv2n%5o&+#0pL`a0>g` zfyh{mia+}hNHDlQ3ggKAI=u44&rS^M&4(|*?%Ivo1-GHByx0WrPA+mho~XT>V)cIE zEYVRLJX%rWHXR}?I3q1Byx^LLpFPn^8M$-Xt2yn~5YF=8Pn|S&hz96B>PI;GB(W?1 z9{CuMfGpcMi>5GSc)~%9c{iMG%fTR8{ji&$qzHF%8F80ZrKB-^@0ye>FV&}uWQF$C z_dMhY82Bhnq6=q(q=uYW)1Gu=c&3P2Re?&(-x%boctd~6KE5CJ{xB{WN+=3K@^h7Z9X!!e^>0ta)^M3Jz*~S`_3hqu=@?0vz=VL=I zCvgGT|H|$v0|ldhy+-!hA}ew$V9u}vo7NbLU3eO1mMenjun6I`##1AZ&_bo@$uP{Q z3k0oGl!sU_s?pmMU@t}RomZa4p#MRVahy+LyAbVE1>bg*>Pv4s_kR^!!=p;EK7W-8wPKLxVn2 zq@%ik60uh83@*yoxC%#2ww>+^}T-)8O>g2V+8mKfAyr^8(@;$3BXY(AEs4if`hT=m`hW&-u+YL2mZf&(U~Cli z%ou%1+Nb%Sh12V(F(uS^4KA}Ka!|kRJuLRw>gzBNx7}xZ*vZN=@kOsqTp1)Bm0u-MNaJdd4W^a zLY;fI?RJMhYc<*SK(QCV@&@hU#|d3S=1^cHHXF8!@0G>)7rc9c-DLl?kZ#VIK`9V> z2)B~ezC*J6<5%Ru^^OB%%`1ITU`pa*SqtdD;4W-)p_4oHRY*I2^0dqb9<%uoW`?+} zAtNvPyFTFgP3I-3CZ6|=lhYr{c}?7B0xYHcxd$A5tz1yT1nEZu07;S=IwHvMNyf>@ z#++Kr>0g|Md4T@~9y-*|z0lZITG8IT&YJuj;!I^)lc8#Y1FJ(!TH6^yYp7rz7&G`l zk}lI^s_oL#g(D5-xzUZy^D7DJu?a#l>MSrXuuOlya;+wD-**1P2=O6@Qof3k4hka4;BqLhEj@*@)5yiZKraTj+ z#C#oV1X{@GE(iLHdI|sN_U8)B6Ln61X}BLEq^JL<)^=Y;8PNdDUpZ;~iZ+eAPF{F; zc6J{q40bqu2Eug*yyZpZ4%DcwwFxq)iceO+z1Bu-I;0)htA?v}7*O8Nv9*)=gLgaE z=CMep7&ZMhWzgcX@lX%Bb+`q6V@4kki`5+)>>({s&P5F zkx>vN&hH5WZPDim?GGH9sjfac$;r#)tk?A$iq(fTy$(dM1J8hNtgfXH5?dDNqoP`(cgt(it4t!`s!m$<>XAvC!EL+>}!f6pP!- zjJ@FoXl^uU@F}lg36*RQBcg9t%6d?f;}UyiCDhL2TAuSI{g+a`AA=3~C;NR??@jB^ z1&Y~}!324{ZY-rfDmN6Q@5BdF`{Fvu4iHoTKj)eBImaPunavZgP8<7o-fajXl8YJV z2nU_RZrz_j%*(`j@1InVKDghS7Sctx#TeMH!EHndug-*1Dl*T(_Qrvo-1>&$B#lWX z+^)TyZEAH-w$7N5{Yud6h!!|;4n~3L`czTjQ?k|bI>|m0cs&fnG@s59@uZ-(*{dq< zJ!H}PL?xPKOV@+CWU17~cgd1+3n~-&agif1!3f8Hg`nN@;zFSBehMa!{l4B`GO_M` zEC)g|@6j)I+8@)|Bi+;RoWcmjg!U!itm~u}cCq>xZ8bpi2(aKVTOE)~WUg!MGnCG; z5${Gryi1Us#YqmAzYV!iR~OF+n;jJQHYeVL@sRVh)g6N#<@C-8+G)3=5Rl9&|0SU{ z06KlACSQWzj)BteCbJJm5YR|iho!OPeyTmBmsJNsjJV*mqz_x^w)teetwcA(d3(+_ zA}#_8GoP%0THubcRX?0q$pZe#(?V?uyj6jZkmfa(SVzSz_+}`>CaPIS9 zSG#C*J-2nMFiYU8c9KXxcCHL_-2?DMAMGOLP4}C!J!K}}ffR0bNrseXqn2A{*SDE1 zv>IRbCoYQ@R9i9W)!7YHsp{U zI?O9=$Cqa#9GC8h3WKbzH>!H!31z&CP^?tj@`4aWIY>?D{GdvD?$(O|_x>ZYD!$U z7>ixGwF^FDfX%8qME;2!Yi;}+L3x{E*#;8~Ywq?*7#>L<19tDAbUK7$Yj1mgKe1el zHAJ43ArTJAlWMo3OI@e4gD_Z0w6d8Q#>LXo^AE5T$^$x3!YAIgW zXLn9kga8F24l$zk&OPzwODIO29*%yF@9>Ep)r) z8b8++Y#E<-jwo8aTe$@w@))-VbXB6zmAF+EsAv1J><^yab?H3x6>C7*3xz(ydDXsuh zJkQ!F%A_%sCthH3AwI`3*z+)RWXf>Yn7>}$$_&A}-e+%Zo^{ubrGs@r*Ui5cVSNiQ z*SaFiP5CU_b>+cd$q7?_cqd&5Qz*N+F`=a+-DJncAk?5fgMbGk@?W*Ju*omq7lBv4 zm(_3Go^Irygi~-wPx_I?%~8Mui;%l+02cOc=l_oX{EJfj11uOAS?JmRx99m6sQ6c% zotgDNl>bo`|0**u)Bgwl^DkTRPyIjfpMQAEKgItX>HC90oDH1*rGfr2K|k@pg8Gie z|AglLjL3%KEA7$nLp8xzSCinjz|6%-(LBuQ!|7ei^Z?p5yTll|v{2%nsKj-;h z=lXwb|2giz$N#Jekz|Seb~JnBWm{@1ApPb-&c;6)a<;;?h`*2v;}&z@DDKY(`>d z{qSA=nnHV(I*#!v!@H5>2BdssuzE8=(x%?z<@MgOa!2Kjn==MP9 zA-_em07&DyL$P{@-@xq|fl~**2=V2{2~mK}Xt8ZqVfY;i`G6lZTGt=sqijcty=1M^2 zw^;ouKJ6FDXHKO_fHF9S2vbJ)q+vj;ndRw&t_T1DVmsd#$CrStUWhMl8lRvlM5T)? zYqTCwf439BANW&Wd$_>F=VcnMLTK=sq}A_Cnh{KY@vQH1f(v*u*x19T9Mn32-;OoR zb}#E9`0$E@+pQ)ciDzaOa9`t8T!DyUDc#UOf8gvi@rm_Qy5aBg89yhXMu5W3o^&xHsD-ZL=6eKW5T}CZd`e$ zkP(L5sLBm0)H3n4rzWPQXq$d+GC!LTMvXJ8H{-0sxdMuz^I;ZO$E@ZZlBtDAAu<2* zG0A?$Ii&PLR#+AKO&V}E=Tdbp33srw054Uq3a^F^}Inue4^`brcXd^-5YyRA+1#x)-L4)#wg0hLC)6{zZw^(mIion zHz6k&SF)r12M-{9p5tVI!K;%u{WTsd_6Q$X&jsnn_&P8ojn;R{$?8(n!j?2ehWEy8 zTb!!=xg5wvHfR@ghjTl1a9(t)_m(1$&AuVuJn!Rdx0GklXG?2WA&dwSC>|-@s9*_* zQ!VQUO>(`jzZyo!WHl?7HBe=Orq8CdGIUkV8su5krO+K^a> zJ2e|Rl^Vsm492N41Eej{)Lh7AOgUdM4^duoIvRsbxVk+9jp;Sn!+>Z21 zS3KSD+;8lUXF%91frl-cV0}R!GBhSpTpUerT#N4iO~gZj_BXCg&uuj*kgu`!m1KVq zoUdLB)KEc+Iu!4}`GnWOo333ca3U74(qV)FM1}d_t@iN&cu04JzjWk2WMBQ&81aq@ z?>yM8j^l?>Wg*mG=aw@k;UvRu(T!f_lG9(-gb?U4XjlH_F?mYh6_)A?8u{t%X?zdt z9Ean|>cwo4YQEgLR8$RPyZ3ocO`)Ykvo!nF0yK3y$ll#n_?-;4+is>hjI5(1%v|68 zT8$@wok$B~ff}ZabgmmLJ9yp1PF!bPCE{Aers_n8g+vDw(-_39UCd;|K@|eXrg8I(O@O z&KL0R3j*#JF(hdOGR3hf^TZ8NmO)fQ(CM*1#R3BynpE{H746XnCYC7fnmM`}7QD8r ziB{*Uoq?IiS4)AMF)r%c*UL_9M<>V**x*O;AnY*qW&PdWi*&I${2(G+NF$+@($dOk z@dso4%NOe^+&25|`as&ST#{4aUlyRCCTPWu*3D2OF~gT37bBlU2=+nM8S45w!^6E( zwbg6U(P(+X+MnCcL! z_?I1&YL!jq>r(2mFutGXbT3JOiuUtSS@^VhKf%1mbpq8U#3h)JGN(Ndicn2xrPJGd z*#6h=Eu!iJO}D&<@C^(@7g#gJKlk()K;7{iVnEZhKIGE0a5~OEkw{;PT}nY6-DY8< z0t>Y6D*lG!-YEBNMO@l$n?yhiC|ak#g9-Y`H{i;%xH55sYej<^>QU$j?%g_aNxeAK zesX8rSyZ(xJJjcuW^F=FWvCA@qh;qvc&=1X0Ul0Q43R$;_Ani>U^I?6tyg37p*5sx zZ^wihJVOY}%AGCOJ$lv&d_{_i?>b~*i;N!)g>5@v-fW{EY>}kbx4|LkQygN;9hk;B z_KA@xyNf#0@)WX(y>vAtbKNcv87*Tg^sm?@6o#&fq43N~&=OluWrx;2*3GM3qZc9J z*A)F>2dSEdAl`*`$W|q!4Nk1&#MRFbAeSY)y1_Ww&7B8+3xCKd`}1rq-geeO_Lhxo zX&y~mipKYE`{>f6$qi9c{F!O7Fm*J49*|Qk?MJsEx7(PE?W?*)SbO*+DS3Po!*Ro3%o#) zmE=C0oSwV6IrL;^1N|u989Mi1T$C9NG^#a$%9+j4qAO;LOc2N#3jru*8i-IPz|w*B z96#h;Sw1C%t#S*`G7^#|mpWn9i!bWD90NU^lCaDx-)lK){T|F%0v7F{PeKtqW*Nwi zHL%|YA9D!UxE*CHKz#+%RG=q?lGUU@9Llp@=e%&oXy2H9fG!+tMP1JA{j!q5j5KnnxdhIh>jHth7v6#(4v7-8oy=vDWpL6x9eHIsr zjW$|F151!4*qv5l^eQQ%WR7He*G+AG&#_{zZK(_7Vfv&7yX)h@aJe!jayx|SE5io^ zAkwf^R8Xp-K;Dj+kcy7g&CW@}YhIMymcJLZN5i^u-3I4}a?2hm*Ym^>|xB`mh!R`Jm+V?yeShX*TXsT~9M$AsLI2@?B@# zugo@5(~u`Fz4C^^aG{SOC+>*F>`^3PStM^IqfIDUj4KZDxBU6?#w#~ZmNS@^0IagZ zX|pte6DiSkl~7q+{_8|r`IxyfQUm{1daJb06>M&em;yDoZAWu=qiMAhb&9*%J4~kK4u6lg5Iplz!Ovx5a z9r4L8*WsMtew`&y8GO0diHVv=&@A;Sq&`;&uq{swXuq29q9vi$rd1XMcLpwSfIZ1) z$;T$)m^ta_uwDsoz&al--cR~*^e-w}!7#Bbl&+aPkNIU856^AjtShoMROhA$Zr|fB z9o6PFH2LHt#G`C}24`%MAyrbn{Ta4f*@_O~p=z;a!-n3?V1%1+|IT=otqtLAGjN=2keAX0X zQ!Z?1s*#YR1LOZVDF90+x_4H2#iAUVSEYG|)A=nP?T^Q-h9D6sA<0;jf z!ENt2siox$)G-wi7;4X>w{8|lm6Gw)x(Ps@-Iuu`mxbL^BI3G3^OScT>s%we)Y#t& z(M4hg!A+W(gv-E>J|YR|WZk9y{;$#=^cQwwg4F(5y_NeQSe!RJ_+&Q|VboF`y(4Ct zJAx6e*DvzD9Q)cfSyBfl)bs570`~SjdlY9Jp`73>LO0(0*h8zPyp0}K641h_&)6)< z(Z8?ho=D`d`Jh}GJEOeqdvFPy1VaF?Dtk&*})OEt3oQZf)5L_%r6SDce3 zJ+vdYbITka#=X_**>9s_`58ck7gs*6S!*V%WnkvFiDuI~5F3ielPiy#v5K@!k)^`i z&?`B4p5pJZaa1t4D#@#Ee#}-DjSbGY@ytakA`~CB1t_@vC_~{nbQHU@L#iNgKEJBHU2&W zOOSU7Y4UYi9#NRlXk8)t>Pz~BGHZTCjtjJ^om?0*Ve#b>Mk#r^eeUzmcrZGXgq6uc zRVDduFy@U>s>ESJTLOGgP1r=@L=JI4i#iGp^94D(InF#_MV>lxLbE2T3k4L-g|H#N zN2$(jG1ShGW6RKgNG~@1Lg3KjP1F7I(J^932a}$K1nCZ$f(XnKKN4vz=TD85m);tW34Po zPX4N?!!M)GFYo!NSr)9yhUeMe^JV!?dlw%@AlhCso1}g#rTDaH2p)C)FWy-8Hh#-%DS|Z( z8D81OlvX!TImP6N`I6Fte$8b8^wQr`V3?-t@=461Fwa@ulP^D+b&h~%$%Qu>_5>#Zx5qD)aDMGGE=G?iLj`||A_LJ8AMsv(31KpPRJ9CZ&kwH~qh4Pz zz1b|6GfBapH5BRWUB>wj#xj+%+w~!nX^bip&ox>ns6(PQTtR-o?=>KqD5?@37`-Jx zZg6u7i<42qjksT`EU_kgEAF9i6A1WKQEiNaPU!-!gI|Noudqq(TI2Rr(tV0JZDH!1 zuOp(EF{yVTI~^>fBz=C_xE9$<(*-PnmcPOG(+dCMM~pnH@*z6Y0w4cT9cq!X(><2S8xVgI zn$p2M8!_6LQJ{~%B;~R#H=_l@`)D6LNB@{KdFJ&b>EjghPOqlF6= zBa$$NHlmF)$yX?Jjcr_n4euiGJvo{s&B1Lga?_YJ(aeKi;(lJWgbHzdwk@D(! zrli$zfV=~v-H0*Gk-ynqi4Xgor>NE6)V%FArVc3Ss#Y9DZA$Doe3=C1yOzplfcYLD zIjJ>hu%wHfV~$uy+BzO@#8!Dv^PBU95?4cPt3oO1)r%`?&4};3c6R=JXmf0fDxtMx zF~}Ix8K-jY>@jZ~l1AO=m-uvA`C}tiLS@)mEW0-qQ|fEgbeG-ognxpX7s+Rv z7s6K2ini6J1sFc!`V&5|~fmOXgg>`vRKX&Zn zjCqFz)jQ897Hyj$tU-413rQCi)4N6s>MkfjRMoDJ5iiekO1S78FImFT%yAj2R&~|j+Vf{dfe5_l3w@9weYR4t(}WK z;)5UNUPN1T7L|Xa9F9?DKo2GG>g=;5beY@i(N)y>$QVApbTkaZri|ZL3?a0IZEe^K z={5VyIw=pOe4qVZj%5s90-HNoU2i?$kv@if6n9^?h<#F|^AbmdxF^&MU-+3_?kZnNyWI!Tz)^ z+x^Ef?fCaj4c`*pRh5Dv6Addb8lJ=Z)7&hW!9;YOp(L z6+l`NAIY4(qUPS*xxQnvsYeO@0=O=a5(7&6PXc}#f2|6@WWgrkIbacfS`QfFiciS$ zNm92xQFnVmR8&6Tto=DoQqeCN*M>IA4x=d?{w!XsX4 zG)MLtm^77R9DJPuk9xXFc-ln>xsA(U8y2fT*ysqq;#0xAz1ga!Qnc3RM{@r?50w|b zL|~;WcdADxnj<%IEA+@Mve~*5bLSucu4KQY( zys=61lFeNBR8pwPd2Ow~)bxugS~&h!T3yb8bJH-VE|A57yxLimZ%}WI8z7Gd!et3Z(j6W~l4u6C%PAyYs_TfRST$KIEsGuPMtf zpMm@>@kDSNE4(8)%TuD3l0b1Sbd|y#G|lzV!+u-nREL{V$Z}Z8yFv;*S53R6HQ@DAv={))YRph=Pg%@j z^{1fHu)>t-isQ%n!%lzPU{2c)Y54B%1jcA?k6djxE!O&$E47X$r#aiGYPEiu{%y&= z;%lq?dD`DOWl(kSIc@T)Vvd3%e#kVO&)I>HIY!auR%hpv0P|#)-j#UbU5B^pr|+ zV-B1|`W5iX>F$whwupj8OIyNHxxo?FncMB$jECUR7vS&8 z>C`k2u8P<&@8~94!SAWR5;KI{UA8u1%{6`92VzPIV=Lr zQP~1@z0Wk9@an33vW#?0uSaYdfOfwAuCOFObS{OFI>ENAMdiUU>8RV z?9*R-stDK)=gVQX`3)0}rZb7p(VZ$UCL^%QUtqi1oij081rM1Ge6$u_1ng-HPax`F z4Pe5#giJaO>R&j>l(gSB0vMhnPAv9L4o_@75%E@wYP&QZ0k7NEHrjp9G3AJtFs3BkxX&6;NfC(kZFLD0j0EAMvHuYWvEnvfR)8 z@#M9^n~e*`eB*5fO0LN6jBw3umfq#q*+3R{YJRpFeqB z$dxWw7LEEyxl3||Ms#rOg5m5W^D61z3|^zde0QJ^E%)N2lP-TKG$H~52W(Pmwgexm zr4M!7bRJUO2A#ppN=6wJFYz_B+Jj-R6bjlDq9jd1%8=imDag&!a<{CBP~6{Z}a#-7a0m(ElcjbV)m!|q~B|_U@?;*KQK7#CObg9-6&CuvaAF1WG7Z|AM>)w z2xCh9&luseIm3Br}!we!8>{w2`3gKG!JR=D+9RX(*TZRVx->m12 z9SZJ)b;sE3n@a1EpWD(0qUgI<5ys0}5_zMwPM#6L&W&xfqvekqW)awd1uknR6ef7} zkW}~u9jgxf1o|#jK<%vof(x3+YFpKC$>W#w5jCB^6o~UfKh@=F-xuN9uIWLxz*mS>ex`o?SX1`i?a3=Rvdl5=sG~+n?~!EHEb1f7ay! z2*sgwEN)NlUE43cQZ0Es;O$UOE?*gK7~lnF-qrUw5(Q6(Je)P)mP}r@uJAGOmw3$^ zgXEZ700;&ZKT#2dQlUH~+iVZ=SD-)4@j-Lhd+Z$X#t5a5qfLoeeR9MM0Uk4h7F zDXHnwP(!JZmHw+z->EAmZChaHmGqvv$&ARgMOU`J$A}(E+~p7G|D^Ec@wGaYjtiCz zY>A%EJ&cGNz&wEKk}LF^D6M@0{Qb00yfq6@NtX%hYqMUNX(OFS4SfjvCXz$z=Wko) zm7-@FTG9mKterX5DtW&p)w8!U5Ej!z%FDnLhJ78V0kd;7ht2g!d283%^M z;&=Cv;Q;1zIJ|J9t}CS>ZPPgQ=2hS;2+D#b$oh-{#*|T_PaaAie!8~4f6-mzx{qPe z382@MJN>drgM2#KDwn(T8s|DJgL1Big)5{E!!EW%=TwF6XodR2Z#seD%slB9ahI-< zo>CzZ@6R=MIW(!#(Qdny1 zB2AHLa&q)jWxmhK*njf6T`@7k{oP18nf&qSbkTiiU5Mm9`Z+k;l(=OxT?r9Ap#C>$ zHXg=lws)i%@7M=b;>nqb{meqZSFDu z!I}DvVk@H?BnLVZoDH>BNV^wxK!gf}(Kc``SyJm%l!6mAQk}D$xzl^`*x$_$iE`io zhtdZRo!ilPC-fyBtj_yMkk3oQ7k_nX&$c{uB!(BgzkU zDUDaE1xPo@x-{oCJ~KD}c&m*?7t&>M@YwdJVfwfM-%$Fp_fk_ePzJhfRcAhVcs(!+ z;#f$!x++41+fZxS1%y`yt#60f8XJzR1FW$DBON{Z5*sK&2X$G#7TMMv-L(PqqjrtP z{?k|-Big4b&sonw^s;GdyT*m9;G|Hcxe7KG&h)wYkYp_KJ4!k}s!jqwTHs!Ss(V!Q*Be^VDFioAdr9TNldDiBq#gIqI7eT@O^Z>MdP#tlB)jf*_G0>{KefzjOD&nfoR zEY?@cgMrxwt+QZ{sT4d9V4&wsodRmZBjeizSqg8rg0zf-`eJy_`+j-6#@qDWs%G4;hxC4BOa^oH-jaje6CS2;=sz?b`thao|SnO&|+D}8~K7UHu-Pyl5b7c)9sLyve3#VxOz~Esb-4%IQ9HQBL z61rE=X`F?XJC zYBEY+8T-#(hrlY?TQ_kOMw=dsb5H^QI9F71u_rwI)doy6!Q`ngrJaQxBo7tIHr_Pjgdy|b&gLIEP~FX zFnPo0(Wi~@RvJ2W-dk0C4+c-CBfKI0O6K(J;Dddg1$J0m&^R)mXhX55jlS1BsyDHt zIKOQatP9x;ZibDV;bDGEEz84`s|8=H<1-*LE|bucJ8cX4aqZ# zLXtG{NEoF&EYR$Re9+KWxp?6?aL^gu{^W%Jj3+khzuA`9lF|7%!o@2g67`nbJTJ*V zl@I7;Dq|(9ETq)W`3X9#<6x+c?|2foYo6@X+a8g_ttiUcl3%V#bvi5c1voS>r6nOx zN`IS0x|x6~qR@NkNaico^?^TZQItgZQFMDv~3&Hw(XwoY1_7K z+qQjse(SEY*SU8`>=QTQ{!x+fy_J=fS(RT!WJNviBWGLuh!kB?e+I|w8DM)wma}E9 zhinm3rH9G=iIa!rqs}O3b@8d{oJ#nzigo+7V1yws$m4@W$0;nYku#OL!InM#-{3u{kCqX#? ziqu^U+nfs%E?iJCP(_HhmnMOX!rA(WngqK)mV*YhwBfaqD-ObkWcyTUsLi9I##&)w zbc=h9_BB&N&3aq)a*!cuc@TNL;A3NzS^cGmas$R`A_VXqwH>lPF1e!{RBf}#>hpd7 zJaP+ik+$H>EYcZ=JT+j551vU&j42g)A}wnw&MsH`q3U`C;Tkj*-{#VJQR3?Ie!h{% zB`yJZ{oIEdUixWFmeBQ7NvY+sekcJ|)HI;x-Fov`nPIA=4>CHn>`OZqJ|~wL8QhBl z8h?Kx?Z;CZE?N==c49E6p@Owqu9Kl`q2Rl*+4t%|W=W<0fdkIN;XRjN=G&_t_+gsr zb$|@dp68fLhB@EMeJag@+Q!Lp{qAl!nsGVnQ2vXy%2CtX_gG}~%%ZZA8HaZT%w{^U2!tD5)^HXAvb4?=4EjVQYh^f8?e;`3(IZS80JSsUqF zU2w)pFbs*s2J4JUXFg!iE*Jkg4C_RvwmKVQR88T>bb6?h$#%}mCzVwNDFd?zVZ^=W zR&1uhm$*5iACh6^u1}MZPM|L|GS`M#3orV5cy#_kwLdb&HQEnhr4}@&s_6@Y1PxzK zi&sHoz1&V14c{Sg8|LC*`!#prs%AX5K0LZxfz>l^;aihH66=4((GACBS@YeTKam+;?#;=j^c8oPF~uK_lZqr=QO`Wk7GNWt2|;-&=SD( zfX-OWioln`!fUdO^0!MN`l5x_M(FH8LGNmPe5~}!?R6lhGPnm2HwQ%(dK+y~jn!a& zU2IG^3$P~8bYqLeP72Jw>s?Sr>qgwbE2jBhykKH?eGrxKzS~bV~)3yW{{g= zq={tgpPXhU!e0p9qNR}#ZlQ5PyVV2;~&)Smpq9SPeDmynh><77&USw ztC0}W`8qi*v0`%*YHD4$uSC>$PKF-RKDp=|28%a5JUb^Q2Z++0T%}|6OGSOMG8sw2 zkB0B4OUrzag{I;iTZM|SoEA}xQB=|J;C6KwkjmtIp9S=I9^>}x^CLxOkmC0XY%Tj99k%j69;?x0na=c-+*d{iCU+wdPb>9~1 zeV4A>ofJn`NNxzOqB#+e><35i;Am_*x+3(RjY%^%y^#Cpdpv44R>>%(n{oO^XDUv5986UmT3 zBaY=%MwzAHRtVgPdaTYZYoRf7QbBx0Z7%0H6zgM1X|{!_KR42}pD6a_Q}dFI^J>X& zV*%QRo{g+mN|!9Nl#qK6Vm``as!gkA6Psdy>f@mE)YNP-z2q~lNwe1RY1b{mny?*G zguDOVa0qj;SSTUSm%IZB_j5W`ZIbI=+#g?Z!zQ3#w`iLw1=t;rqkAk7qlV6qZzp zFELUbmA3fG!Y3K+kFpi&FAriFByh_<@S3^8Xo&yc@`W`+nolj^3#r>t^ zh_msSF`Hgo$-Fac44H^rVFCf5i+K8!!IoaVh;yl)MqXc$g-|yy zTxzBm4t}l{`^?mU6H(VKxXC&d-#CFQmW!L5z#|=PyjA;047ip8??s8&R+J-!noQmP ze)DbvH-oNn1=d@SH@Lz&4C*Mic6rWNPhDx*o0{u75`9)*Txn(rQpw@&1%01&#M#dm z2lH$_N$Ciu?mimE$%vm@^leEw`T6O5P$OrkpKUM(yRxS>HsIwIi4upw{;sI1@KEEn9o=R) zx6NUDP*>OE*3uGpSovs=&&krtk%1h^f~)dM#9{dF65cifC2rtx>_u3@wZ=+u37BZK zD(79MM_o8J3g#b+$ouJ@*hWDoy#rkG2@;w8pH%n??|$B_J9p(6y6H}EkA*Q@oXR^x z+$<~uv`4Q>Pz5O#cW^0*yf2w_0;*J`6ioOmU51;s%1gP;nAS5gw~$8d1DK)K-RhAa zD4WgT3(39o;#4403BX4MN9E zq9?5bC3WZg`J28apz;fUH^n@PVS7=}%Hu3xyNgw+;&{k!YWGGwtuP;?nW z;T+rP#=%~}%kmfw@E}d)`m0+u(&<8VHEJP80EBw!H@Np)9P?a8_nOzqu&B$tcDx3Q$zb2Jq35XX6xXyW&b32l3pSu6kz z7KE&=i{G(ZA@r{_1V;dy7W+;@*8~_fI3wjog{mOzHEZlOpB@lDU=wauqJxW#+kHqc zELjVKB;nB!Dsru)ttjWN4y$oUlN`i_)4-499=**|;U11@^vBvYV72XRebHbgdAB;w zYod9P06oO_36!PQ(Ha3Tpc`RB^H6&GASAo^I_`5QBi(HI;E z_!q~C9N<3T&779u9`jcD@0fuH91*)MyPNR{`$*Vh1lOOA@MscqZ)X6@N-Si)B24d4 zDGH8<6Nj0bj3v&02I|G7@?fu4Yv`!`E{KJILIi-3`k$wlZC}2sQ3~IZY)bg@Jb5p@_zL4_fbw zZsfY&98{t&Clc@DnnmScf4|cIT%n_zzcr1X1F@}yhlZr#+&F1MMQ$2#1!D)P0zhY$vKspcBm>h~xx@*Auj0yMR*pKvgelC4 z4P@M@T3Cx0*R)W6n*RJ-E7+hjFm+YczAb~xg~Q>f9kfZtd{Flf+EHJmz^!{nW*`Aw z144K-uxI)!J&SFDxP49HKxer`JTtQ%L-gA zZoPDh8D$o~tmwaXLxx9-sO?wo;GPb+-w6=cd(G{IDAw&n_3X+UE?O+_q~{T&Yx`rn zugsKE5MsIHxMhl9!^xvB>-+)yCcv+#w3uu+0!1KvO?yxv%od8RQ?e{J7G#n;Xd5#3 z?n**DZk$1r7Wq?0z0oznU)Y>tdetiHNKo;C4`=!d{6s6 zN2?Y5zl5U0>Nm{n7aFk8H$nmAlS(q)PmUtn*^#WAW9F5tc4$z0v)pgj_Oi&E=wt~* zC-P4}=XOD{0}M?rIC_&vpz!64c~xesjC4XIj?y=V(l-}O72?UfWIamhi0U*b1zNFQ zCCd_m=nE)a0k28P^5U``iz^{8D>$J0k@{w|8SJ^1tz38$?q@W?IglYm!*fn^Rc>#U zPrpU?`^@6i3E)drj_l+bX5%52S$N6yfCUO+XH7d?rXnyUB)nMjUf17AO~aEv6vqW! zyO=0S${Ov(-{Lw(272cI3jf0m{v{3> znCKb)1AzU99{d~s573qUACud^@x=c#&z+2{sECl*H|VPP-*T?(jDNAk|6|Ve8_bl} zcXSdm({~_XWc=2x{g>wMyTeTE4FAxnjNh;?6C*3Z-|{aO$;|Oz+kY~y|K9)a7~41A z$;$E9u*SyB4#mpKO2GP!a|8)koZ|0We`|7aK z|118t#lOe=)AD~1vwwT?w;nUoH+uSimyF*!xqrw1_UP|#76!I|de8o?^82UWzmEHE z>3fXd+cyUJUH;wkx8~oo{w@D*{~pW#Q2s}s{)d|XQ;YvUwe)vv|2qTx&s6z;Prm=2 z0senXyZ;UW{zi8HB?F}Yb{zhHmI1QSe*?n*4Fmk${eQyZ-}m!B7+?naZwKLjx&Yb# zCG_Lv{g1!o-_XAY`oAFH@8kXh@co_yEbRYy{{A-z_#bNg-;sYH;C~q7{}}=<_f%2F z8AY;=)$7^7TsOA+HUVzKAgyl@emenEKp-wev7!R@YkSfzp1p12BN95KsXO_xtlp{5S+*bg8LrLS}OTyaD>f z&CUNSv<&oD5-7m_zVY6n@eY43NazZe8>fbbdMkigzu6bmE>P&Qe`dLK)CB<4AZ;>% zmK~guA@;BIjuO=2fdohb14Cf>56d7Xe$;&!2M6FZ20{Qo046FW^k0y}y`yk`FLZ*8 zE{Bf*mA)Ah+PI&44!|570TO^_-6ZCKdf_IIF09!AOtBn5b$L9^Xb|Jy589G18QK#I z!+bNVH?{Ay0@J*5)oj2VD<8JSXvbUrKYopuYg>OUQSBL6 z85&a>nCb%qRlj@cs!qnM;t?8krgeW!z2{G@yM?A=c0&~OL1S5H+}|FwO)o%8ix_{G;iaxQ%_ zQGVVH+|vU|@8ZDtC=4J6hG7rT?gv1{#T5I^R0EQYj~kg@0aXG3Snfj8H@ONvmt|$* z0GPyeNq>oE0+`J3g+g~zKZ4r>rw)7(-~rV2Z-qvHc2mEA0|JgK`Vv=5jV>=PKHCDL zQ~lC-g*O1EAA1)#2QXRTgOHZJga=AU_zLLWNBJb6=NR}KIh|Hq-iUz9n z*YJlQ-9hylgXyMc$Od@@x!-?m83hD*-n zO9#^EZuGs@2Q0fg!9VNq|2(0K1zk_zTkxaa4*oDa;&t@G9+_NN z+^-s2-j&0-rVBg&q8)*oH2;cG>Fy%2f8GOIvZHqaTKQNKuL)3kAA8*b9sn!c25?{m zUHM4kb-4!XVWoQGGwg#~9Pb%?z(>AI8ISf|+JA>`@z4D7SpLN5ssA)&u5w_GL5ZR@XbNImVs() z{mAdb*(RCXetY3#8iPX{SUJpbgaz?udC5lrSC>YYBA?EgwEy+}iS*YTF#$qm-@{cT zKY<(d`X^w|_%|ASy*Kq<#2t&8xp{}LQ?0GzE97EFMi)ERCH3(n^s%HwOlfhoGXa4X zABQ>~ACiIHJ5b%a3S<)Tf|qhH{>U%d-u$lW%|`SMQ-=m*RSgp=+Y`>{sfV26+g8R_go7Z-gq?pN z!70L5O9v)ILpo`nVy|RQc6!& zSMcys!Wf}p7G4oYNjqU9OF%V~s+5<;t?#o>-YMtZh_5ugs(oyh-Ofd&bm3#(c!!mp zCkvmeS3q-@9kwIsxKSx^Q?J5>uzSX+6)>f*zgf=`HJTS0&(wZFvz6|?CL}4eY!Z$! zy)=zsk4eia1GbUv3#?9b2P}f^M#dK%S+i80Nwj6ni z)D`s$KtSlX;Ky2`?_PM;priV(0XOjt3=(C4d9}Hc8O@@FOtEsF=2GF-QC^S-#&(xF zp>~kF3a_;O@QO*xM;a^hq{zJC&$CHkq#WlI9meJvZ$lav^j@P)#tA!MutQN6PszFw zGGP(-sa&kNeO|8ty1c$GYWdQ(iucP7n>+1Mb3|BowsifVz6Kee^rbo$Tv*I##MEW( zyP|^!KDiM?fI#3eF)4P@;|lHBSf?MVrKS3hqochmgs>fWD0TDe5A%KzNK!M(;SJcHq!?X_kvjYw!-gr>j(X6%=&MlDhaoRqYu0sgEPO32FS zZH1W))HrozIT!m{mw$lISbPu4flwf(gN=% z?sP@9QKuVPFDn*iQEZTKk*Fqlwv6k(bA=mzv5MX|bjO;+>UeRZ2nf5YnVSNJm99V( z^!UWS`DorqGFS*CsP1@oog50)-w5g2J!6y~46M$qm1h_#5>Sj1$_L$V)( zUr|1QQ^Eg`bk>nHLkRv}KeR}+W>`^ZN3&-jt@QGThZiy!k~t#1AmA-+&8|V5RJ5n2 z-|pSA$7zV=zj5i9R=(=0uqxPvkO|GcxlK{L8_o9-mGu@}f#FPXY@Ijfqs3d9aHnB_ z=J|?hqrWys$jCu3OQXO(?{#tSYOnl40>2k582T)bWj6-YBLfre6c)VU%+H2dYn*l<(ur!@NT+ zN{}$SbAxqhmn!Rupf3yPR8q7;11f7vqk3{YKR;DluW{wNeN)$1ka5*ibl2&{bS2R= z_Rcjq`Ze*AS-<}y;4Az(T+%@Ug9$^_7tCAkg?_`SSw4B+3Zup8)3o`1iG?gG1vAT{%P4gni9)I^ zGSgB({0Pz0R;B(LMP1UXri$Qfp7iA_U6Kvlf`db?`;jXgJ^!lEM=*Qy*=iv}^8kG< zZ>rom^Qp|=ee5oyKOnLw%_y1G5#=O=T-l3h&LliLL9hWYNDA#fo~+40u0t!N4i)aE z#-Q~lXR$6y6EtKs90*}CY%d0UgLfZ{2q*}Cx{5}RQ1IP%lCE#!I{+Ec%(zQJJ|waY zJb?2IK|*Xw=8kKxN7OrPZ`xu&lux&QW;dx(cIGw_oUP#KHUA`Ol=}jhcb%lNx4NM) zIME)^L_PM{8RyGl0trX3C*|xe()7q%#SL9uWJ&U|&jPoC^U~Tdql6hEnO!Hha^<4! z(!94ZsCPx8RL(C7jVoBT`du$>yToiB^tiLH7f>sGH=93?qtc1hx0-ai!4#;}M>sa^ z{7w;F(LES|i)l7j!!`rE{xisNX>AGHsy+2nX3?V6bQ0iZ4(`@CRpx{kYdW3DhvQwJ z`Bi~!C|EHC5;~m#2LPH1ac11Au1`BThS#-ZF#4&i`pWLTAO;9j?IC#KG-b)nTZwv~ zo{%(-*H?U1FrljG{q(o-(y`~rB9S@o5eNYGABg)C4kaP{YlBsAzPsnfQ1YDmL!T?D zD?6X5`yPXXq>!zZo28H3U;$6+9;`h}a^ve#fX_)kgjOb_mIL?PJ%$&)|MwWp_q zC?}_^1cxfrs;>%23e4^%dioa)b3vHx;}R8-NCzfMO%drc*NF1a5r|cbpaq1rRfD@3QGmOxj#MM?T&kn1X4^9Ibz@79HYXziyNch6Z{%|2Hx#Q zasmW>^fY2L_|BuE0DL%B#Qd4&8#EVn^LgB6PDNwwky<;m+$FVOeLK(FL_;yWdsOng zJY0JjAr%V}FKUG-*nDlI?^{xU4Daid)X1cCs4LbiVewrOlFN9MnnM@_Cx7Vs2TQr? z3h1YNBrTgQ>L`8;MGG`@7(F*?!Wu0~-JR8D<@u$4_?w^nnMb#*#W=tdTZ$vqd(p7` zv@C9SNCU3ZB8{8?cM9Re8u{!_q6yqDv@&p*%ZOJGc_QmFci|nATM_qKwFkg_9h&?h**$zLH zO})K&XW1IbR`n%Z{vqeV?`-{edevQXBAIbzud7TV0mAnW3qDARq@&QZ7SSdAT&#yB z-X}Be+vbJ@Nettcl>82g@bb$sIxpdx(1}fSkl6Z;l*9ab$z(To<@?La_Lr1Ef zbF5f|luZcK91Hc;pRdla8B=_oRct(>pLa?l*nUOIzTAX=oZG{fTNWcF5Rv;sb--wY z7aErhc7;lrW8Pp;mAW~PwAvKGMR78QCA}Ialj`&)MTHKX!a*I8=Gh@FEwcdGSoWSq zq(O+114WSY?p{(veN$iD7(QcJEZW(k?_eV|voV)vM(t&A$dAgRrducrtc-p1LKQ@% zZ+Himbz(DlD?n^?pp+aUOu`Q~J9$T_C$8MEm;+;){dg8SJ!1kf2}#F}J2Q?pQz~XO z<^ybM5N|<8>}Sq`CoWfJ`=^Xh;4&RAdD#pd3q#`KRs-1*R0Ml|K;8(|QBh2aNANod z5H*k?Sca!{9vBehuL_BIj@kQyj$G&kB9Yn*nwVt62W&J$ikx!iF@Ja%Wt{HY__m0S z=8wA`#e%k|<8Fp+Lxs*PTb=-1b$WgHDNf$UfK1&*O6jBKV7`Wvvgy&jt=wvzW~&HE zS@VvMgG3w^r)5ry?-ZG7@E}xPwIW|UXQY09j?To?WrwXt^r1}7TzHF+5fJS+z{3li zI|zD}t}a&W$lV5PlcO@`G?y=C(7D7W0Mz_G#%#sQ^by0XuQlCwg?Zfa+x6Tk9vGRS0BEMe$l)cA2E;e2Bgx|;S*UYENRiY0&t7I9de(}_B z$B|j0RRBt-Y%s9>xo|7WUy+PQxn2d5b|}^I#@U5}L+AbejFOLM@`hy-Hx>hIgx(uB zbE2lkMO*juY`yXJUXo;nX3|!xQhfEMD#`NNH6*~8pq8yQ$ARpjcyhdZXw0eU^n!@{l+Si9c)oDIN0XF-_F%rf3>#`4UYK*T z8eqUYUW!E`rk*n^h0U^|xPsW^qgwBX>330rV^_m19EPNN<2JjF!y_?O^i-Y1b4j8~ z#uCU;Peazb<=ZC?8MK3}$SAO(-K5Typb;8^F+Nw&ki6(w+OXl^X9YN%s51~)7-k`I zT4;q$;PQ@;q1Efa6A7Jqbh3E z;Tz0JRbjHdE#DFv$zm?Y`NKPbxVwJCY27MSTsf2ciG?JCQtPB;wr!?co&dUr07}sv zJo0%j-r}v0F@;iYlX-d}MNJg4qweK(2Ud=7deOK6xBeJ{%fi?3goG{bHyOg`F%}#3 z4F};88@dN{1~_>V6-A2CX~i8>v%ouYtKXvf7+d!0%TIaK4&0=v-ySV%2M*Dd1sQ3zj`5)Gk_sGKIeB&p-?bgrE4^?<-ljs^w8` zR!_RDKsWgSeRq2$ge!O2%t*IOv2lQPbqdFQ4)h?pbKDGosyT4i-YZN}_!V*-U``p( zD9z)+){&~?A<{Yw9M9HU4p=nC?OWB~;z8Clj1&=<&U6mrJ%=~fRGq?}=E#7Z)UbOJ_oe39bwEl^Xf? z&)=#(LoBT&)&?9wZCsuklzzKPSYKB(OfRrBrgCyQIpP$BIVF9FViOG1YJmi%(K^z+ z_5ChF-9$H`#KQ1_r6NBrBm2As9vnPYjd=twaUJEz3^ALphudZGgM*A|wfAN;Ws| zlH+vw$BU&pEe9>9Houf7c)v&j!^Z}3VRN+QbChk$EOfk%(sF7bEa}|-Syb;=fpP6H zL7?h-<(o5>5GHDMWvs z<5Jm<)otzd2_Ud9XDo`1g!|!oyJFE-D5~k;6Nv6&@Xx7?wu2XOv7@xfpKa5Y^mcY^ zrEyYV*;8uG=g|EXA;vu_Bc|aISUXl zGo{mmzeZ`y-TUqYYw;NhhD{(S>_EF%1WGqq-u@tCj#ofV9m63shE~arBU3sfFN{jt z;{{TS*v?n-NI`&bzP{GR+WKHJL{v)Z4E~Uofj;+#|Fw9PFE&{-Vij$AuB}x9(M|)K zqhsb@HhcYq^}xFg>YZr+=RydZietu7F=sKKe& zPG{1!lUhe0*SHJR{5hYcMNq<`Ohqa>(HTNgwP8Q0%m*k@5uqR*d>NFY9S-108rOe7 zK#~r|0#r=(C+k@>h10K%Rep=4Tc`&Au3sz3zq48k9P7HsbvLUNB%#=3apT9 zG!!yU5NHb58MDlyoc4{GIYF0}cF!9qG2uoFlik{Q${DI6E9Ad_kJHMnD`_fqKngZ{ zCw9tlitu7>N`ntoKNp32RC+asZS7t+<2rh;$deC@vb00UiEk0tx!E>rSm8^sG$d;J zXyCx%%EjJ^>A@7O^JLc7T+}QLq+y|nMsBXXqNL`$^JD(BTUUO)%jIwMb$IlO^rdKX zaFST7VzB9v)w!p{G&VoaBnP_iQkuGAvyH^r8CE{n%S(QMTic7z_8o`84a)$*ch0O{ zcr2ZXTsGjNxl7cNO!S`g$2sJgumnxh~&A{ z_J}?@CY(FUsg1cq%?$POP&k7wPp!QO{2i$J(Ab+)s7y#Bh*@l4C8=ojWcBNVTpjkv zK~*2HE?PI_D7%jD<1oAmWcg=strt5x8?u>Xd&{cn>E4tV1|+5*7Y}Cg`M@$^UHe9g z5ruGp_@GDEm2yy_c!Y%#TnNVta-(w6CIHcc;L@z&5h|A}f*~>6k6T>Z_6!Aql~}}7 zx+Mfjo~z9+Lp?8FWkSBg@rM$b^PiynKs`7meZQFEy5J-v%FxZ+{oE{;%$_1(#O@ep zuulE?Ou_kj$Y%##V*vZYND88$ zcAo2F{SL$k)lip6LsZD$;VoKKMUn}+Be(DmI667oj!X)8wRPk zNtDxrj$O+x6{_-aq{@5}NdE6Z(L5d_1(@8nO@X32FtFDSEIm}Xdl1|U8f4~!L*92aq}g z&fN4()Hj?PfPq(B)r^p}168v((q&4D zBf5G^;3@zV35)?uAD9D>%HU1;$#Y!;0oak?A5|mBhBa&rY&OY)fIojkVP(rkwZ<=h z#y=I#yqp-KBquxpMUh&qb@(XcEaEYp;>{V-TgzfMC`Z^sLqoG#aHquj>mi)#pZ3BQ z!zsc1kz}+V-)%>Rtyr!}yo{iB?5$|=D*T0?%B$-w6LkFj@sv4XArk#&j_#Nk)e_A> zS7beu0KtsW@AYo;PeJ(+kDEMDA>ZjqUmcx{8?7vEP%Ta3yP*NDmF1f1*m|1K6SBYx zU9*?n>>6wrUQ*cFWoZY8nJXpfnCQCs@t;n`GhAM6eweZ+3dKSos!3)dZu~cP#`sr?I1)$zPkN^ts?K>3&c>uBUk{?xU-aZPPgp+p0182=n!|FQQzMPLZ9i$CvFr0~ z#oeqgISo)`+F4U;l(#;}A<{o)`!rD(%qR2DW^3?!yEj_1A2ZzwxouCB>PTar+f&EP#!I@y(WW2>EAq( zDewQpbZD5%mkn~Zfvrv}PSK?1{lVG*@TDX12;Gjpt}gs&+*?oJiXmn<<-8@PmUjt8 z^|)^@-ia$eW6*$@{V{pi(Qt+N=VWoRzj0F`2+ab?(Z5k^QUr3Lgv$BoHabt;)a62c zDaG$yhq91X;c)H_pmNJOY}FnYuGe<;k1VrJV!*(oD7PO`LjjU*S)(vyphT}0Ht69v zyxR1Km6`7)P;2Yj^E{w6#3}sHDnl?`)q2&fyS}a2`Eg3?OEV#yK1vv4r-pVegH2PL zEsEM1t)o67BNvoemnmN8M1CsLjja62`|kHMOfT~%cqgPb^rA*OK8>L}bip;4hhs!w zIAy7pFZ*c}O*OvG@%^t3#s|@$KQ<3I#1Tjh;*7b$ZsVtCT&A z)+@Y_z&`Cbv;2MM=G%+yDZI-TTMhUd?7YwtDr(vP2UIQ+WN>)Zx;~jM3-R6zQ+T8V=-(qH&?x8UmJnn~alHl#EAcULB z#dRSZN-34e0#RZ*798)k&Ua)4BVj32eq5Oh4Yp8lyTTdM4OexhAB(nFb^(uOqPs0I?5jiC8pyF2ai)wDQ5Q5nZMnmp{b4IvI3&CM+dbYzSit+F){h zQ^Oq-e}*utYGMifp_lDXkP?o~(VkIIabDRU*1BI*0$d@Itm+LoQ>JAQ!?ZVBFp1x9 zO6wA-krL@?`@Xt}S~%U|^I0Ii*)?Qcr+lMcw#qZg%}xdX=;RZYhPfAfq|z$ra9onH zq(QF_^LA)Cq|~&A{hPLHnIa_KfL03Jnk{LGKnCN~yfvI?giFbTZpepajYz_$Qvd6w z%`JC`G0lPe^SnI{c926OcRepBFl=v(Wi;Pe+~Wt>y%ljiDwp4K2EGy@8gsxdS$qnT zv?5Sa94k<*mblwOf{fV`EgNPyKGd|Ps)TlV3wB;fg$X=9TUMD+PTZmvmekhoACQc_ zL1bYDLP_5Gje~#cNml6ZO7NU%$Y&|Tt!#wm>*Ypnc_QuutX2HNBCaX=^#ZhVKj)Nd ztT8@qFi$pr)#1=g5FHaLpTgvW>xP{uDwPD4sQbgl_1JAZ#Xgj9(wd_sCK-Kcnk?_uvsT>N+G>T&qR&h*4>nUxgxdCl{ z{;e*t^0iSQXPj^*OTWkaSylJ;8Mck*QYXpXV+=J#685cT?GWI3*QnCKIivOZ(#6b``j71w~xI zMGb_dP{JTPK_^P5;X{6hVm9iff$=@egA*^%70G&-i=2+Mjyxw3n9C~VHuC|5NF`O| zgbunS7|yTPBo`=70?>xmYBzbHt_3*04OND(buFV5qw$3r&|%{CHN-1kNPl+6bpb-1 zW-{QQ;(=Y755&Q{Ixspk=+ZdvHAHgH^eFU6BoLw*5J=7Hwo$?vJ+dNs;vGVQSt*Dr zx@q_Ier?KA9gEmmFqaZcf4DiP8k|eL!kTLLelQr6Wrl5cL{GSw|5E%>MbP$9Prges z$3VQ7q&+(#Icq*=8pKj`ii;>o&#kU6krXkxgk8UxwZflM@4wu;Mm_{jW zTc}%dpX+Jo3;4{*0H0?AF(R`Rp*7I)I+ndYf5_Nn8?DTaIwJf=KaJ-*lTez>uYt-t zdg4HQr3}(-^wU}2nM3+cp_W6J_w}tWbAl&&K*mhR;G@3&!SYK_M7(5%8?8AV($hnf z)dy(gl+p(d(_2eu+$V{!S{C7#7sc`U!x%rM9hqjZ(}n^5le~thP2tj5nbj@ZLXuPS zREGu?v;HCS(GlHMub$IeO^f50D9b?2x<-9FXjn`VZ;o~Sj1l#zT~)T3jhANJ#){Hs zV-NW`H!AD7$)chd25N?ijR#hLz4Uy8owE#%*=9l9aA}@8zC*f`r{aire~u~ib8 z--&c9!0+-fyccCjTHR@YP6LlcO=5{&*pcbV-5i>d6bs&gP4w4Eu7 zMLigZsLhZRmG3g|Ss0vi=^JQo^v^a9Owv37(Z~Ac_C!c*T6_mHD??>rp%I>YSyWyN=1X1MZOIh`JtSLz`K<}%^y8~rt$=U z+M#wJspGU03E5Y#sizmoTCoj;ZaFV;CGiS7x?urkCsF5@-^@0Olj6`TR3UPnF*YaK zLMQ9b%k<+|>T?Yv9Y&w)0=`dLf3k_lpEqjRzy;(R(j9XlwKy#?r!|{uL$0s?&SuA-Al4%@m9~Gato0gBN zqqwJ40PTMt@Z0*&ly-UF_c)Kh^K`yyXW-|85x0!((ST* zeO&DdoK|$*)CG-->}zD~*g4gEyGBS_-yRRUE9(`2tXEamMm9cY{h^x7#&+cMDJ}8D z4>(7yb3sTO@p+B`y0fVa{D^X^`d~m2-C`s^9a>ARYjBR&Wkn8D_$M`=V|!n`_~~FZ zSvBwQ8Has2bLY&b_-r08h=K_4{;QPw0)xSjz-z&o*GL)rO}S&|-;q%+_53PApN(9_ibOa>8p{ zqvTe(xzMnN>H>-2B*4ht-sgO(o_IaT9^{3;avvu{jc1ll6SWqI3^U*lE+{`G#%Fpk2%cq#-9{31VYWHyKXa)*HW)NcXn2HcmVF!rTnxtA zeeFTYp1&ZVBxY+P=FEXYJ89QJ`ej(yb@2{NMeAA?Ge(K7j_x%(9+-`SPg~DYkWi7& z)tu|9jA+x7T7w!fDx^Kdz3a{h`aKX+WFATS3A-)4_a^T41zdSo#C3>!mop~4u&fQf zl5|0l)eIR$<3$PWW>Xl0Uq2w2xFm%YwLbS;Eh@tMin${J+#Z|^Vfv&#nT(dViUKU? z;*dTke`iI6qw-MqlD#3AoUoP=x=oLE?+qockrg9~L!zyCInlL7PwG_BQg~`-KdIr`8(oTk zvL8&^1!dZsEkBli^cY6#iAg4du(K4%g9myPdz5Xnw5FBf*+#rw!?FkCrZipVWbMv zHF(jCQ|NXzw*9&0TlSK|k_HhhzY+*Ou-!97;q0D0hm%Y~lnpNe8Q7-05~PHc$58cB ziFpAgM(SLsPENrM4cY zV~9yC2*Q&V6k!RthP%-VoRiVn?}wwhVygj6Q6N0&Wh5$Ur1SkoVep#Q&WaLbmID zep@^%S#k?XVM9n4GCIz-PEQT-G;mru6vH9IxsaDf8&oZqSd7U$)0XMo-wU@jFjk z0$U{S`yjY_OeVgErnxQ)SwE5ymy0th{g~CC`&vF0_0s&T3q=V=gaIYWJ33M3=NZ-q z!W!JZGGP#V2-kW;%LrUuc+V8B#Y?u)238q;%W=aFEX+Oz`9R`WzfjG%rn;Oe9#?~Bc-T=)HV$vyRr|9u&XB(P?=m%8aoEU zM*I(K1!uT2JreA~G}&8;*|g!-yr7h#pNuP6rWj9vdJiUuLOwkE_Py&{q?NXril|*{ zoMR^YQ49Yx_yZTwaX@cRS`_=uZ)179Gj=j}q9i5S%t6+K#`@hqE-K=$u1qlpsLJ7n zv-r@B*7Cq80FA;N?9;F(A|3qbk40@<%QS&L5}N;TGxdZv4Mmi!75hWTP`3NTH6&`S zX*lJRT>*lc7~c;z1b}2@&9hu|lU^mV0gcZMZD#alPZdic7^kkk5jCTWCL0jS>j75+ zY-?OQYVq7sf#b1yHC-S<2 zX-0k&>_Oa5e+JY7{ky3Xv9qaDBF8hQ#;9a=6n>ZPO-0&3iD)FshNV3x8)D~-oPPvI zAqdM4m(At!2LiSZ6H+-uFNz1}T4AOlq4EF4-dzRPv8)S%7L&!y%*@Qp%xEz)vnBM0~=i)K_9zd2& zeF0fd!4-sA+M^+($CC9<=RmM$9g58`fuh)TtYmD20xhzMli4EXi;OI-k&$wV%CRLi z(O*Jppuf-*b~aRd@NzE3V5Qg3LNa}sw# z&!WSI=J;bPsw9X`e~3gx|J)HqvIt?%Gg`-Sc)XW0BDN*A_EO9VJZ-Md1Es-|>QpKe z(M@hUUB}a*)x%?L*fL&BJ&B|U8^k{JoZBLo`V-CKyjSiOlc5Y0%_Vyc-`6JicvL@B zCz?0(Ek5Gy*CpKIm>%=iG+-cWbv*%3S6rvcfeW**uWxY&rN`~Y`uUpor%H7#k;x)~ z(HRIXWsLVL@Y{RZM!g17L*ok+7rpW#g!0F=oy%uZ%Ff;@HI;GD&V3IynZ`vn&vS`K zx;Sw^Y){m>v)M2kPP)Q;-1F2V``N!ZKT{n@7(dVxhCHL$SW2*_$&K!J7jEEOUCdM} z_|Dt5wa)rO)sYh2X?)QGtX||RN)!?#G$sxqee<`# z@i2`8R@bM|^r9`65^#L2%n^FpWXv!O$Y)$VW|gRltp^6pSd;Lfoo2AEBWA9Qtl=!%EhDa*Ce-v+FevgW0VGNl>u;V2YPr!i4s@mPWvs$ZQ)akx z{nw!|`kX;Z*lQ^%zaB-2PGu>KT(j43``6-sEtWn6V0_{I>D~EF886>AO<2hBgVSCV z!IRGTc^~!el!GymK`(P*p=GIVJyu_8+thT@HIW7uf+%m^!5oY;*S=&czc7BW4wM76 zv59W;aN$vCkXS-Dw`lt(=t7#Xyf7@nSmJw02J{oy`aYk)2_HYbmsfH>7g?*N5B zO?6tx4~3STwe#@1VY4(+NVjj%kwr&Ep_t!ZU(>#8rZ(qG*S%>+S)tR>B*x)qhy;+jI2sr2BOL^vtn#&8>L<8e&*98H?;K-q@$JJMA~ z8#lCP`rOQ0U?ZgsKK9Wc4-{Zt=#kbtEv>~eg=`rasJ7*kkAi#WLE9A@?VPYl zB%W9uNz+}9h)@q0Pt3z4t`YbtqP%2B3;a&b827Iv%b;Qf787lLuM&;P+W%NhJ(UGbuE$|g`-wy-FpK(Cxs2wwB(`tb2`*x;U z=kIS@Y@r8nPDu1*SE8^^!XEY|?6Az*b>QlXH1cKDk0?t0DYnlKVVnmy+{tE5 zSd6vshjD|^k2lz&WPXt8dxCx+^;T`Tic*>w5uMENmD@>YBd+SZSEx}SM!nQwXizjQ z%?+f*>T+d{ObIseD+%DziB02TfEuR5E%m|(kKQ(5M!WpDUBr_sGw@uD%s z2#>6eJ~9Le@(Tr5rQp0gzUN42TKTr(cpN4#x3+$S0qPaJd2T1Xa>4Fc#f*Bqg@m1#xtklC|E#LczY zl)~`6tI01y%E;gy(0SAs_=ga}zGQ8KYDw_Yc$a|MNAX`}_P%ZM+ADa)l!W0?r<6xP zoAMbkT8Vg=K9&$?x{|z*RSCBZqgy=yJ575N5!Wy9{y2&8Xu;vu(w<8y$sSo69QI{V zb@xmy0XS|xGMsbA(!}uXh3R?`;0Fjr4dxc?e>qzT483P3rk-KSuI1_}E!e|wmwj4p z+6pxXhBWOT+8&__OysV=4cJ+1d`8e1_otibPm0CLO$0V?Vg>h#FXFav#@gt)RDO!! z>3-UXCBb}U%Fk%W<&jaRyPzehr5c^EbO6sMLcESh^_i;a+dg{hctnn#&7xc>V9Ymg zNa$zu`EdZ77cWbYLpO)tp^O{7XenlZ*^cctE+{UeCd4a2@9NcE^SlkL#4 zirdZoq60X`W;n_}-#;a!0oI98lrxBvZzMCUX|VGG(ID1L`%A0Xg9To8YofK2e4Zqi z<3R-eY-rT$9Ev`#SF*Re+fUjiEB8b*e>JNrjbr9IG2^_xEDx%+LjwkR%W?Dq+!26z zZ(q(gd0J5e3WR=vxhfUJITXib$no7yA8+Ek81$dgg6Zi@=_{8zsu7^UiZtm$n%$nb zFPHxKLn$EZr$f?q7y|3A455SgS0dt+zL+OX?^pUSblDhi!ds38uAbA`9_iPgM&t`T`1epGrXLPlxi=`c;|r{#=B~Fn_Q7beQEV! z$+YIqg8Ul_NNVKI!zTA_6^&v58V4#0GuE{g;p>&p^*}U zC}fe;n9L-9_K*UX3clGaV$TDz{KJ58Fmt+RpQ>*?BezZv&vOfLLqzGr-}xIVD{1D) zZ+az;rqE-mvR)wTS+`vbKwLvgcQ07>rsT+9FtkwiaNxroM^oD`I*N zWfPy+u0}%AI+fGxI8JYy{WFOqKf)@4dO#bC<=V7OI?yEZpIO(5x0du&cYx^jkmKPWC= zU(keNLri6;JuKs_*E^zKsill!Vv{2e~>o}nXlAg#(>tx&wEj9Izb51V}}Sy-o8yu>}-Ky)iTy@%2&I(DYU+o-=UUKU$gl2*tf=SXnUF@Y`srwvlL_co zkP?B#Qjy%I3*M_Hzfqw=>LBmQz;laO;Ospn(sFD`YDtAtEgivZcZ21eD{m=xR-x=Z zok zR^&9A_Q{bnXcYco=XI-=uB;lZOo~dOr-`eR<*na_yDp}}lBxK3<>x=RV!yhzNJWNR zpZ{DFRPL1{t=tizh<=c#pKk2%aT;R&(L3cDPCwf#{KVv||I-*GE)?o)JH?avoG&Fe<**C4Ev==lO|mFW?iqVJ zP@GBXO-Oh&oLxD7lE#Hm*Z122&g3&1vP&B0a|=RiTpu80JJ|8cwIC4l&5|Hm=#rQb zIE?UMt2Z*XK-gk@FguLq%C6WC>3!qBRiYhFM2PmQ7v{Tz@$5`^mdq{Q!|)!f zEE;ckjo1YWiI!y4n7Dg}NY`ys1Z7j;!|yAsfSG6tiN(##PZ2+SSJgR@J0FQI@rbM#?r*AN4B-7Ch;P;$1=5eC&71{khtw$bFiwEWa;8GXR)iY;g84H`WX zva?rE< zgQ@t#PyC59GP3C~%KYEqDgUBm{$%`NWa$3^rTpPz{@L;m;PQ9+fUue_8(j+|$1yWB#^~xViD^{`2(u_hig}JF)%` zCS(3wG>Z8Dg^c;NC;m?|hT#ub@hA9SO%HrJC1(RCcRS;MK_3kGbb|Vh z#-g@1PWW^(s-m*W0>8-^W#!+k>HY-&L4f==Fqr?S7*KQ~HouVza~sp&E%Xf)ZLRff z{xc$K?%?PoWTx+c&&={$%h3NH6$VCnd^$CABPTOQe68OG%O4ZxpVG_!N>ce(=AY01 z(dIwOzgzqj|4UT)JL~Vvzcc<>{xj$A?|)2~fA#;n{N2+(YX9Z?|9Z=x7CQe08u@Fe z{^!yE$8i2Nyt4Y%zbE3qkNdwPRhSs@X&705A0`V6J{u#e4iue)lfIR?p@5C4mGSSv zq!Vy7H2yt_tQ^0G{m*XxRA?BPnDOa^^zFor%}vdIZ)E&kRdO=6R>l9_6`lIO!cfe= z*`2?_;`l7=e{$rs0nYI54s{9rD`*;2)sPe})Qv4fBVffSZ z58U$~k-tEdzW}1YbC~|*{N=U$??IKb77=aiwHe+YAg+)gGDy_y5mNrGt>BiJuCA_M z&d)LZrR*SJyVuv({bf5J-fbN^ZBc7e=3fh!ZZS)l;n#GP8R7=3i51JZqgcYBuIuDD8e`*FX z`*so%+z)XH(CPx3)j${w2vF1nU(AnSsc#H3}^t#wTB*l8-a(vEdoTiLPV3hYy3Jk3zO;##*Nr zK2%oK2HD83o_^&K2umB!zG_)7yu-pg+JhIB88euVk?y1l4@Njos+&K&=A`Y6izFc9nR8e385AHR=U^ezAR zPO$eOw8@7)!{o`N=EurJ#KZ)Th$;uqZx2tDM7 zh&BLeOy>`*F5+i!dq&{ozIQ@=KZ#d513-F-SCMi6(&0`BM4e|kf8nI3F#Kub4?=OL z=0Bl#xE+6CwZ}00tN3?9aqj)jA240{*JuK{W$z-wV5^nt+73J{mm4mbpKY6i*rUS$}q_!0HG*}5f13*W%+8(AyV7GOn9ko3Uk z!72_A9g#4_UUl`dSY9JE!@}zLPKWnVY@Pm&3S|_Ooczi$2{@hhS_?zK_FN?=eqQK{kCmTS zXwy)*)!7f2LcmzdhstjvUU={UO3?ng3W3iQnBIxu$gf@v!o~iY#1S~sISv9u0Ol)H zBjlx#rtwkn0|jwqWq9N=%h>#S5f);(R+`l}{ilG}%IhKpzR?5I^1F(V!4l?DK*fhx z?J_>?JIPyCg-L)iIEDyQTIaZ7K(v|V(XE~c00Ckv-#f>`U)&TvK~;zf7g^TG zuSC6_P5|HFk9_Un0^=VRX}I#C!K)LNKhkN2F#W|dKFSDA;mKg5_wTb%e+sBORx{f@ zu8QEpEB0?Tn*_%nn_0lUk5X|3B8nw-LIZt+$CLHtb`Ub)6hO^t2Ob)Dzo5W}pV2<# zQ{~4e)=%n$zs_ZR8;2SK3OT;l(-fCm``~B&LFQWh*2(mkRkg`?q9r~wFdqO2@%8Js z%OTk2PVBW)-H+MR$rV+Xz;YO1&pbYVUtGZGIG+6N$PbTjf{Rh#>Kcqa2A}|)Zv4IP z8d&hQ+3pTPb|sBw?`{~_G=blMq zgu$1pa{UT5Onj}$@hM3{Wqs$tOIID23fMV!;n1xkQ%Q^dGYQa)S%wK#= zG9PgEDZP*tmW9+w1CD20Do-Tg_O|BWrD~O7AWL%$NR)b{Yp7t1zi8NZOaJh!y{76~ z?e$;04>ECX{X-?H^ zZs|W0nZ(!L2!ySgH3*B1cU5P41Ju#Gv=y4apserbd`j}Gc5!N|gBN!b za)NOsJJ`MT0Mh3E zr!sdY3v!+f+6CR=#7+a87v1Wmsla2sXTUed`!Lfj=>hb?(%MxBBTNK}M@lauNCM(W z+xk|E{OfzErV%n(_0m~2REePJgDI^HU1g&tc}CR{=3#ablWq^_)GHg_Nf{f|tf!>K zJwu&U6a)5`$64YBm$_o881|Nlqj@z{wTj#hB~_GScZRNg9a_e@wR)B-X)p zt-5xlda(|JQL6L+X-hOU7jhX>&L_-$l&7q=`XCdoj@NMYlc(=JunV4<^?xM0ZQ$@sObXjcZb~n+@{htF3({*>44B zt5yOvRgfa~#d|N`;C1mPYnJkyhy|>48DRiXVP1Kwe0%_IQ(fWD9J%+|m%r49y`aK7 z_jhXG_+eC92=)GS%bJmJl3};#L@#m4>MdzN2=wT;D|`1CKO*o7N%jQ|fAjVZn0{{pnz-s`?`+BcNCew%HB%i#)>RT_u5Ep) z!V|!br-iXV4N*oq(F>C8zi415{%Kq(;#$e3>O_ZyLkjaLFDiTyHuShJI zR!`@SD=}v;corZdB#j`DPJfen1=^R< z@ddnohk*M+3`rV>OmV2nJa$QxVGvRG{pir2VvYe0O{!{|iuT|Y6H63##T;D?3tq?7 zM7#aT&cICMy(v%57#H>V{c$V0tsP_wtpByJA9fJ?toC~6QM%9^z8?`TxSr5TX<=!& z@Rc$4@tt)UZj=3LwJ&8*F2O0klm+N}1GHjW^ZE}XF~i3J7bBl|2=;!}DeBs5!~LBj zWOX=dJ2tG+@gtl2^LV0pjs)ArBc&1caT*AUOWZTF2nGm+!ltHFhbpX#9SXHyS$I=92sS<)nicUG!xBu)jTVH^41pMxBC2AA*4RNwbO zPT9RhHO#pJXPQ^Z1oaysGU^D=B8^StQ0KN<&$h@}`^a~v40N}6U8#hj_B%qoo)h9q z_|Z)dN((Uvc1ZMDJJE(=FM*TR8u{PG4+*mPAxQ)%FJl5d1fjzvhp}oX%jIX=U*LG$ zJ<4Id{O2+|2%JDrS>;f9H0Ax3C{%VSyG#tkd==#(+Yzh2SxPeyJeoJ2GE1GYw+k)>SLXaSvT0B>KOaIeY9=s8cOADZ?o5Xiw=M}BD# zt8Bd;L~kyVL@xXJ93^V|^(2<@hA2cQKYc)Y(^+S(-h6`MI8Yj50F)?{-of}) z7MP=TSMfI-^+vgADd5s^TPFfyK+!%@4l;7Z34t`YrSSBpYNaO2jNP3py= z_In*;cNSG0%QlT!rD>bsBN^&F%t+Z85}tDvRDj!~B}3%bxgAVLEEvrLPV439Txd*T{KD z_!UKe*nX;p0f-l&EwW_^X@g%@a^f1t2#|{sUY%eZt>(^s>cX#b%KkhX^H=RZA-hY4 zHna{VEk$E{H+}Tz(c}iGDZWiLS(v)nI!;&ywCk1UKg!R!Y2-ETsCb~o^HC{B%@4{Q$dc-MlFhq#GcK7EtI(T1Z`evQ!<}4@d=5NC zk(K1$AD^7LyxjL>W&?dK+Zs6WV4Rm34m7GUfy$cB(xxk93y%}X7zqX_WaHwHHe%1yIO@AwjR1%bs3pAjoD4}*X;Rn83*gR z1t$^;_3?)f)9`U@yLx5M9*dHoa!bEO|FnMlx zYXC$VvWyB!RS?MA78P9Hw!GdxPI$qKvfWgAx~Yw&V<~$(9^XORYZ*3%Jn2n3yXZW_ zo2wfG9Bs$NiJN?dC*Lj^I>=N#RTJ1`r7(I25;;g4QBTCdW=6~3PU?-w(Si|L*_o4F zuDevqV*52Ey{;!ZFm>?l>rE)x6Hu486{HVq-gh6AtnTgQ!VazaZK{h&1}r3FF;c#Z zw40^rdTJW-_=P9l5Ew4>5#;zSv8Wx21T2fhjYPCDMT=3z0sf|M@7{Q2=819!lM;ZH zb~r7TCU7D}dae>G^NXcUv=w*hOGDN0&&5|tyIeu$)`&?^Gn;la*9WS5IG~Txp4yTRFe($Gd!`W&Cr-4zfGf6Tq2Ex9va>Z}Bh4ZE{A7wY zXnqp^`r$X*{Azo_i z4~57AF@vB6t#rag;5#3YICQekVt@Z9X%G5SJ263O|BUX6T@WnJOCEf(%drq@skZJR zGp#MbFxQJm`EHI~9h(fPy!-2pEesGfF8Lhz-J_G~vrn zNE2>bkz2WC_V;6+YrfiVqGI_OK!p}o+^tw^C90)i=C+7t(mN0vipP>GkD9THv`mmC z!(7rUIe8x8@33){Gq@_rtFFIJR}_r&Pr32TgexKx9<&4~xRvrE-PQ(B8EL0d=CPp( z1cYF^WLTKTDs;{`@j}`XNNWq@>2KUo*zi&g1Q?b9ivaCg3{=x}=<+4F6OI~OP&gQk zprpIA4uxRRqZ<6k{v|=#C9uDE+ijJH4CM)HN0OZhhojQ2MTRq@3tsNOV$lNCgbix^ zaSRqG?-JbL>$EteFs0eNMD*U1@CIep_=Fr2XjL;lH)6u#%O#9bbbs~GLi%!-Tc~c&i$>j>L%^?0^<=5ESAIa(sE1zQ>9@ao~hzP4@E#plCLP z4fzd9Rd$o1PMREBn*MESq3JsU$5-AIy>}m7BZgEk>1kNtwE4z$|4`P$@1z&fJL2Zt zmWoKMjolU*)bTt&;~ajXn%q}N3dFAwhsvlreff4mq7?;UZ<#xkqX+NFIVX;JqHq)` zIJ)<~)hNvRsF1DQCvs1|_0CvM)o}L&5?=PLsc#j)3A zZeOvl(-|(ul7jmNJ*n&+#<{n~G8M9$wZY>lj4ERf)!M&M2SjbSzWV{cRD-0Ws7iQX zbQb}+!ObYlk4FsFSJfA3#>f=zJO9<{HO?oq^P z3DMwu8WP2f0^3SUH&aPOmZ@N5x+QJ6VpA#Cw1|{<G2$V#Y&;5GKKmw>oMPO@%h%<&oUxl6oz3%iThw z+4}SpTpPNK11%H1f)QE#!)vN?Kh9$ZIg#wJ6gp`OD3v*bwy`MeW{(#!asg4M0g(wZaH$Q)0)#vji~Tm1I5x z%$L~kaqWJC1wHI6bHtyd&7-kKY!x>&>YR_1xSC=cmwUf zam_{Z-;FVyaVlnx?{Y>VX*7(!h)<@J-PL2oRfMcWvwNemNGsATb4yPp`DovjA3dT9&lSLlNcqc3M zd&$}9ozn-kCtPBX$#1z*k4vPI`A;6wvbMQYGuj!fZ1#e1z5w;|Y_}mk^YdCK%qkAR zzRY4u%>$^Y^wW2kQ7)g9X=XOkli7iYK9nS5%mp)K_>Z>7du4H%vu z>=-@mx$NTTPVpBNF~wJ-+*|r9?@sJhp)VH9ps2`UjMeH9H8W_tl=|A$oh4U1p>Lq( z1@f8Z`LLDrqD3JPNbNf@)ZgcZZE5fWE@;+UzGZPHObD|fR7mMbvF{j~z^b02!n!deqzeBBxgC@#iw^0UrYO} zmt#FaNvk1B?~2W#p<|An?U&-Xf&>_s%zz7K{Q@1XIOs`JVx$BH*4?&NhV-gewuNtP zP0dX70U!Jz_dMFXv#9(t0)^T|#<(tfxGAv{8BG~Nls#@zlkJJ(DgP5C=dF)>Wx{onLh&w`!@cD0< zWv+5oCH7IQ3G;`EtIzbJrzil#?t;(QVbJn#Lb(7?xadoU0!_&jR2@<-XtV57Mw#JauhQA% zg4`xvfDHVUViiexjQvi3QFHM&D{9sT?)0pzs+2l=X-9rEeJ{z?>^)#_B|_tZR-?n% zGy3HaoVw~t6@y2L-P9AL1J{AKSq8}q)A(hkOon(H{_gEdz-G3218{`sc~1+tlRR?A z*N57;8lhdHsu&{5*&AuUs|EJ$XXj!3MuBA}$WAKzO?EV?x;Gd`ETTzOg5`<~)2Sns zpMt$99k#o7B|5P$?aE)okDLncOa-CpwK7A1Z`%yoIHxM|2~mC5Uc1<9wZA^>uDea2 zr_a$)jBH4BNq-{}fO)wy_%1O^lXXDrD)I( z;IbOKomK&)DgKVk*(+k^*`4bnDwBGc&@X`N6e&KSxc658%KpQ$089pK0-ggF;hS}z zA+GqCET1HG%RP0c7esl*EzZif!xTmNJ81mT#J$GKv>_Gj1!U-_hOgfECVkn+;=)>`QYih78RMcjKp2a^kY1yprYj?!S=YWnHN|Kus0}NI$X2;=c4E&z;)O!qPyyR=2B!te%T(&2EiZBPrbcxXK=LxRHbs- z#wp+>VI ztItB^gf0+R>B${^r4!AP8@dv@;}%(O-io?*5CB&-Pf#qseoA>#Dp_>mm%(M5C(A=# z^$_)p8d+Rhr+Lg|&c83p*W$de)?aA&LKP_-`z7UP)}G|jc{#LQ6P&`?ZX(Il7AG9d z^KlK9$5vm0l_j-F63*UL?d7B9Q@YnI;-G1J_p(Z?x4dTaBvpLA2@{F<0dUZpbOcSj z6hcnuQwp~@`a0ee@-z=t|LBsejE`h0INAd|q<9jf#!UJT*SC8_gavlz+lc@p$EsY& zH#J{VmM=bixf|l~;5Jrx2XdB2L`_A3;@apc`CDjOtHb-fw$RC%^PKp1kX9(Xh8D$d z_wd|c#xGAljo0cTf^}g?-YxjO6MybfcldC`x9vcd!Af4|Q+##RvRhaIUOhsK0>G@o z{GsD1i&>~~|GhXQKWVc3@UC{h-5)oI)Am&wzVjoFF_POOTgOeCwYKS8t*yan#x|l# ztyiXZQ?jSL+|wi@d6squ`JqG7aZLW*}siQKY%m@yR%VJXSGX=fk-F zigzqj=9kW_;d{hv+wEUGIah?r_=d^dN z%o4H!>1-eZCd(@C0SiZdw-azdO_X8plg5vu#9-f_bd+J_NPmsuuUGkOrqlx)7mwL@ zuhMaSRVvDk+H(@=RlqBwyFsqrAo@OB+?=8y9_9ryFXbhlZ3=cUciQVO*hsIenb5ppC;t)vat?puK8tuxwhF{xvC`Ksh}9rVxxhz zm+4XlZQgaM4ZDXzr_cM**)tka4ctkP8!7`Q_KA@I(%KTc31in*GA(f-Xk;qB4T5-X zzc8!PVIF9P$`+{OWvcEMub#?#Hg=KM8g&b_Zu?0$aDTR|DwFsO-I4NqA_A-YDYmQK2@|tb(12OrYjeSA zz>enN7^41pA10hj@VHaI{;7jZQR_`TfZ++^*nIc+;Mm4J5pR{Kj!RuQBtrInS(gR& z4lY~po!~63jC9upEz3Z<9-97;RDR#)uRt-TJLK*vQ3Z1IPm=zP;MKa!*L(WVa*s~Bsq*_mLn0t> zz$V3J3-Hm}`cQ`rC&5)M&}rPPWR%}yCEf>?yD$tEetN*c@ICwB2l@rXQb&(AmKqv;SZGLld=fZyBiE6>?7H^AkeDU09%>XYj{kpcxktk>~`1ZICw`lyV zd5MpSzsPIW7$nQw0zmM4;XM`64=R+~M4Qci{&Mu&89rz(dylOH-YB6Yl9cz*X;~}A zAx-9z#M=>G)fD6@oP6YH#`sp+S<+=ihB(vNnu>MlFhPD^9y-0tvE64v05Zb633kru znyRIelF};6_62m{Cs%CeY-g8OnKV+TAjRs6$PTwuWx5Z~5jEQOyCV4jm}6LWF!U0x z{vrM2*@zTzm!j$pO*NEqS?N-h+IBrLY1=$IuY{N6b!J4a4Z4!u9Y*vY#2x;C{`U&+ z9`DN&skmU7z?SH#+=Gay0nB~4F4;orL@BLf;4eq{;>{U=N_tFK@9VY7Olzq;YUl&l zm*E`Rzi->p&lNpW&=STFr|rzKmdSf9sUEzQfv}ivlOFr-G3>ORF6UE*TXY56X?`T6xwO-QDYD z-A}Im-8e8f8o#rL3WtPf14{l-cTbQyG3Di=cJf)v5kzyAw)#;ExTbu#HhY2&bt zN;8G55h*Nn^pGaVv^Y6>snTDjW$fR0-Oibq;Y!z%evOAMdC^7opmiXU`{-xkY*ONu zOm)PCb%FX{rr3BGr`TST2HQ5Jvp$t^Ba2|VVh+u@&2IZtxHay1m&nC~;U5F@3B1 z^scv)9};EH0S=`H9y+_N{#xi=K1hT2jUbnohA;N~$ewL+;y?_6by);yGjkE$G(jGr zGKw6{Zotjd(F+`PrQue3m)%dDolmZ^vY-fWFhI*4(`xiD5*0Q{_4C+KXH?ZEn>(brl>JsxVi<#=@CAF&~hOMt(s_#YZ(N zVNN6butN_`xXXAEIPTwF-{w7CH78IEZx#y9ZfnGr7Wh(qF_$*BuvIGwnr>M%qjIph z(b}K-+F=-V8;Hbf)b>cqAW%7KnLyoaBx8P6M-a1s zcw~0bW&eq0Q;*+8>LZ$S9jwAkB-0* zF;QSNH}?~YT{Vl<<+31Pwtnjj*h4A>&pjCESyQKgn$YmrRza5htBoM-mwjSocb6X= zVVGPe%BEmqQwbWF)*BD?`B(5)k;05qaHFAKAE2IIC+f+b{PHVXR|gt2z)PgN{@64? zH%k{t@7`WFCWXC9SBPQlU&YcA5(XcFULt~qOJc^MOr*ZZUh)9`+D5e)N6lC;AiK|J zUaw6rc?EBRPaB|V1vQzu@hEn$wv6X46-w~ggc4$rD;H6czP%GcHW8u_D}itaeKkNz zZR;wUTkQfn?&&-lM$+@m4y?M6KbCDj;SGDZQvShIFF3yie1vl89w?1jtHdT;?Awg$ zRB3(m#Qf0Xr^-Sa(?MXZu5#82SC19d!V`?jcF)TE96(UH+MpK;-N90|j%faVfoOCa ztLB_2h&)}js375fQhuM)Mylcf;!|?*xyH6_r%8SHm8^NS&nkM7RBa>EVfoA^*WHdF`nrX@#CgFeB$=)1g%pRB5~@+s zh~3Vy@qz`=ITR+(_&oZwVctpuN6tITiZ4OnsdR*w#P5lmo^5=vPt(8-^K+U9=3^}= z_Oy{VS_iczc62;+^dU7SjZ*O)6nw_2D@Y1b8Sizlc?)UXW`zn{v2Rx$+|I^us9)&A zneE7x?XJ@O8#SHFG!1j#Gk`3-TKrU`^SETLlTv8?-+<_)!K*%;4rUGn4kQ8c81)*L z{6|s<-PDAUY^<_yRA{WRl;NwbwGn4GEvKiO!LGG$cg~i5+J?H*VsR$SQI=e#o}9@%>Dg#UmiHtoOO65o{8emBI$ zDI;iVlsDbbJD`wj~(W$#NEQ?!Fl(i|hOpEGh zTIwBeU{*?7LY|cVDuZ-A4pl^<`^=Hj^XKSy?K=YCDokejrJXLu@42~CAB$vseBJnr~zpiY81IHb5r#RBq-tmRy9wrgGKi>)+dRGV$;(9gJS- zgb;y+HY`$pIk~LjnD*;&5o0n??$RIYEN(mG&O=kwkEX$bs4REd@k~LsHIl}Js3xVK zio{(E%bW`XHdIhCP(_HhhbE4c+}Zk&ni#7unu7+VwEnr0D+a=ccRBfZt>iu=^ zG<*|sfwthpEZiBJEIDA14~|Joj42suJSAf?#x7g?uIh3b{t`49&*t2DLE_^4cCLZP zB__a;mE-RY|3EYe0 z3*O#%3dKVT4r&59R(uerp@Owqwv(Z3q2Q~r+3&jpnMIYpI}TV6hu3WU>4E~vz&F!m zuYDvq_FTtoQjEDC?qg{dlvYlb%U5^9k+ky}hjKsKDo5pS&+sIa<=?Jgrb`M!1@F47 z(X7TzE^tVhq#%&ufe19IJu#6;wjCwz)(O3}l-KEL!wfC9LhldRFR^T0H7R{-YjGHf z%fW%<=R^WW=9%}FKS}n*lgrz-Uz7i)+6lR&_;FNh)$bOwzMDVXKbXe z^}rb?z|bWY>aEi%o%w)4J6-&1(XHd1T5D~LQ8b0`Q|Y0OCfYd9A5>Npqzuf$gb{X| zTCkV~o?>PRDI`P6T^}aGoj{*xWG)Re=AZPx;?nsG{iH}2*JwL{k($?>tfnvcE@=34 zT)YAr?d5jFX!r_=Q*R%UWDFX%ou+W(Q{8**94{xihz8*4YV431g=|e#-b*gjQ4)k| z&Ual?X~#G=G9jmx@g?$ulz9WL)f-U=G#(H7GlThxth@X0BF!mjf=E* zM>oh+vgv5iYitWR_zJE!?MS`6F4Y~>-7f|dY= z$CtE~j4(VYOx#Ax2!FdI!VlUn+VCCS$Y`A{_xF`v**y+qR0g*I;^v?zLN6oDs?i$E z&kGH4Cjr*@nr>|2SP6lddB#H{Nql0<;9p?uW%FHd2l!YKedw7bncGdmA#=YKQWt@(m&Gdn) zY%rnpR~a|-L@q#JLg`5@IH@SQC{N8hG`80WuqS@hgzyh&_emawizgu`FpUe^laCm= zlGaEF>3$p?msqj62{pFN-&P{%J12e_)IK`v7y^qmJUBTeA_Iufn^>V^{g#aKe=&B? zL83HWg7Dk6ZQZtQ+qP}HZ`-zQ+tzK{wr%fy-kEo2W@EqD@4u`Q#mo~GQ5E^i^I~l} zmW&?*-`$v=^&|^T#XGSM6=^jqq8O{FqT$Ky<~S^s#rZi8==nOq?KR-fA^`Rwi=8Tz zWLzEUjmqaGY_Ph}t`@!rV=GNU76U3%xWSgK)S)X2H3Y<|3-ID}$7;DtYzn_V=ndU#aU9&$ej;@f>98ybjCLlQkj^NE_9S3G1r5;+;`>-qZY2(z>ERL+@jDd9h)+=6IFS+HN=Z1`aCNUjs+?h})<()k)hrt?F zkEm|BOiOX;J(!3sO>(n$xR}h#`y-3_+JqL{HllQsD?F#<_|{W~jx(W}mF6>AjdQ+I zE0&=W;ut()k_25L*jZ5yb&SiJb;EGk^rf2X-CtDwN0g=OQ6~G74B6ihPNMWWk z_xT?_o#5uswQj)rn+b+DSjWNLRW`1#nVV^A?FTapy(glt>dR|wEWs+d+ykJW^G-O2 zh2mgd9cQWC5!8Jre{eDr7MA_mQ_pn1U5@JIj0|!NCtz2$W&<=d()Z%Lo4ds_@;d=% zqHqd5#cm+8BX8y4)^7i%5B@7c0gK^mymN!{3 zibzD0^c$Jcd&CHiHshyrPuO@5jq!2wp7KoU?LTLgcCiJos!ozP4he8WRfUI|wCnCO z$GL9{KY+TqowSjbc)%(|dwxxkR*nkdND*9@S0WC_|CI2t6)1NHk7qB%5^gY2iciEu zqgA==H9P6Wu~o46T1Gz1@WM6@J{uV3l24S#8v3TfSNQbzVcmPE!qCfbhI=lF<>FM{ z8|7wU8KymXSAr@|wS0g}P2zpaq7zW1BBfx$XX!QCwo_ioYs0jelevd9?i$7nv*}Zh z`a;=m17AuRpeL`3@WCjKtMt7u_V-J9uRQ!x0{&nVfurN{PcU?U{qAIvf_a=PqnZf6*sgZL(1M&qRLR15j;@ z+`{;5yX09Q@CX5mXlR;;!g_!9wP4!7;WN2h9KNj;&4H7Vh^IKtvqUSuS8Q14tITpS zXow(WLu108{Tg9FjS)Bk*sPesb4@E?^vIl)I~A&eu=l))_hLq1!mw?GdATkwHg4ZB zy|82h43dOrcbLenlD49phdQjrF-=M^7fv%jl1I!gPqjw`rg4#tTi|-<#pbf%TFQQ1 zy!TYwG68z1-wP;9gOd#~wj>1F`SqgW#{T9> z2>1`jnH=CD;oX9k(E;;LRetR76OM@ej{V(aq(cXo2~Btu~vfP!PIB-BV{Okt^K% z#K6)(f8fs?8ii?8$iz)8A^rP!(ciSeUo7ACNE%;_r)yUHR zWw~_dhFo|2J^H>;;xdJa#BTc8O_N|etA|mg#!i;o4xz@QAE%jwq%hE)2NcmH?@`BN z>788fhoef&^;FVhe4D5oZ2mjF&Ke!v;=NhS0*GC`#FgrYy_f8bz@~MPYP9v4O8Sau zIu90Cig5hZAR3Z}OUtw=6}egD4U9dc3ILsX>U!KWkPJ*u%?c+7zKR==YN+ZP0%XL9gH#t2j3rDAW6(RFfu(BJ>+WgHzO zZKtWzp)=>N2w^S|k5`H?lsjdcFL_esWRfv#7B8KG;7~fCif5Q&Eva$^ewXncvH~~D zJ8wN=##v==YX4+ls}&dQdU%GK|MF9Oe+X5)+u?s8b8i)5<)Lfe&>VV z<8=xFKSD9#Oo`!XD3lz>`2xwv5QL9do-v6*&g>B2ifGUbg~4Z zQ-$Z>3;UqhfkviR90SQDQ225tyejjx#=4;rCmCC#8QV){3JGN1vYr)mM2#Ah0v%ZI zl9h?U^u?5JfVZS%1@SpfWi=3()f~`6NP~0Q3=UkY)~>vXk8_&f9LSKO5xM7iD);xw z=ZIA3hs@%2iQp@>PVD3w=98gT*?1{UfW->o7p;3-W+E`np+EpMrIcxe!kEBP`b9sBtQJ3xRLsjvhtwK zpJg7#L>*{fyBb_IH=2>_88Y=}KN5zEH2u|$!OX_J+bVkjh7!JWi0b3D=w@FoUYo>k zOqH^AHpj(3n(NfmkN4-H$EmMOE_5%kS)^rCn?N4y`9uB%>ytn5_=i8>JP$v1w{{`l zd;`FLkgWA@%#BR+?fgIe0G&9)zo1NPjsLSS`rp<+ZtySr`v(jD(_~;~Waap0kN=GS zLk9n8GBVIJ|F`hJYt=I_(KE3AxA?zHyZ;Xa`;S=t=N$k45v+=$fU3OeUj(c8e>1SG z^#5qm|88La>&*X!V1+GAO-&q4Y>iC*(XLEP1azjR{{o_a(XE||t;N4;#51wd|EtRU zKj87-X7-<5|F@a_XXC%fEE~iBB&Ppy^uM3&-}I7|{y*!~|G%oz>%{fj4iX>;-*^w> zEeHkSma_#Z7e^clWtQ3U0SvASR-iYHfdBaTx0Npr;-#g74~{#%tjEg{*x^{mLW;`8 zI6zWq1p$)F74Y~!uwIo`tgQ(XGHu#P4YU_B{8j|w_cb<_=<44a4hGDPa5V|Nv3?U%|x5`UJ8D|{HCQiS93v<)N-py@g7Y1o_ix9-kEfoafTGrkzbQeoIu#4lR z$IJ2Br`PUou%@DBy}Po*E2KG(L`BsIg`trRP-1K-ozY#6`e!&1lEBaiSpLf@n28_t5XR9FIGuqIz#o8# zN(ucp+5zs->rRo0vzw!ZD<{w2^u5cxVbV2-sfyE3%X zoq%7zC#$q=epaXs46Th!C=JaFfPv~hz4TP46IAgCm`te9m85>R*GDs*>bb^cul+#W zrrQ1#^ida=6;$O({oMF|OW~LpQE{QW$c6ScexrWU!7P8%J$(=Crf_I@06eOvsjL6q zz2D9K`7HV2YbLprzM87K>;vxahopCPWPBC|kORYT0O;}upyFbR`^%mI$tEX_&2E5d z006A^q3K)Q1Yaw&vv2@R<9nrlM6&=)=lH^)`>3D69e~q@e+cjZ8i#hmB0>A8-@pL@ zCl&pO>!ik4mzQ7dfYGUbYrMl70@F`?3S0u1uJJ)g%U;6+B_{p^_8p>p6VP)E{}Vd1 z8-g{>`vmtNEB_SGr>*cqNQ+#@2RSbI2KR3_|0k63PiXm{(AVG4>1VWipSJT4!EFa$ zM_ph$23O$8()ilD90Ys%7(NJ@-M+E4C9GpTV0!0gePH;H-bb&U{||E#xc1iL4LzJa zqmmc)ZT(klE^e2Y(ubcb_#dDW^Jh1JIMm6xNvJ~*#}>zLBTzX~rc*nJ9PVR3{F0wT z(1rlyKn|ftKJY4 zZwZFXAK(D0^h~XUx`m-ob2P#pa` zc!-)8Go{O2%ak0rlsvu+AdS8jzgq*q%7-)ji~fM`GrBm?%|yN>f9l80hv+KJVDIhM@G=KuXJA5Td;msst-P+LAd3~{*fnq=*_+1zP| z-+yN@|11y_AY=_b-9+&dxKnR_1NKk;)w{O`GoPj0aj03_5BR!u+PZ#1uJ&YfaSOdt zUoS#mD@w$amN$D-5NHYUsFMkynb>{9{rev~4t~81mb4?g4;RMIt$VfT6N^ib+}yN3 z@4EoJ+duuss=KMkAol?2MAUSvnfJlok~W{(*W?Q9Dt9?>f{O*eWb13ZS`LJ66}f|C z#=^3Qw?wO-7gk_k4!>SLNUmo+oq^7>U-yNHas>5?x&ya?@2ms)d<`*sc<3eUodI~&KMYMH?c&I7epm6 zbzRZyWO!@{NeZo+MqtdY%wjlT(z42cZRL3TL>~1l`|x~yjfyu_Ra7}wg?;CaAI!iU zn?aI48QnUg)+zAG6y2{mn`x+xC!6IZNVOlWZD++m-#ra%T}s1}zIW14eZkSV8|DM` zel$_c_Vj<8cNJsHk*7-CP`?2Lh9M_J+DHsO3eOvM*F7}jCVhZGq6{;yx79GCS+*!UmS*#mZyF;LmU5rV#aTEM3>c!z8~CACt?a7!yzQ}h(4MqKhWF)2H;ou* zknu@ht7E~1$BswNT<3i%I(p)h8#4q71f3F-VwXOz(OyjS_@i1`ssB1TIk-Ux--Cxz zx48YX7}BLSlaOvU--++A-2ew<+pzVqPVXBzXt}{N{FA%8(dMlY1#oudXcT>d*ia$&-&b5nC$4p1J+Pim7bX=$#rbELvdp z@ab5-88DHQa!~Ubm?yovPNS@O`tTSXIf_o0FX#AeJ2#BF7n)iUhk4Ned5euG$*g(2 zjPC#sD)+uU(oy)=(vi-e0rHO;eQ(uijK$LNPu^s%`w&NNQf zn;S(y*h9_23^2T64WhW;H}1n%^G=e%QXo-v&!_k7Sg7evNYDNiqv~jQeQu*F(@2p3 zf?ekt^9q7PjeqOck$ng1sqIp}`p6^~vIV|cnlZilZ^iugaAeEdkfOI2)NN`Hmw?fk zVnCHMMMIV--^vxmHYP*-Eu$eboos?y;?HCO#lFc4d z45J+nxT;yiWGzB-o3`b>7 zNUsQZD>`!O5vLU$sOfhHb{ue;Gx{U^ZH29m%wb>l~ri zqkk2YEn(V}GX*#*9@^4bpSeN3_m}+6K0;u)YlG9TP?jydP&&e;x`Le!6o;`Idw@JW zV&El<1s%apu`B1uTNql^Z%w>-oEXOm@oD<5DC4sWYusmJ0~RsM9#gi563c5Nj}TT$ zMcfg&>4o&V!?l9C3fgIAVbqbQYEZ{96H1Eftai1&pTf?xtH$xyryzNTxIda|?0W%2 zj7`>ri6Oz67;s#4Y(NPXW_M|}spwT@T@&Krhs*>q^_ zod`Cmor&o^znZNfn#JC`B}cy{UNIjEcm{lj--Js(YGzR3rgQ10oEB}+EhBJ;al7nF zlU4{-p)LCD92(NR&8s*##RDnnN2uDQBxIuey>P|6<5A-OCoS8zpysV)dGP+wc=O&nP6swq)L<_GV<0b`4&@<(jei)tji}wOm*K#ATFl)LOt6Y?50kz)5^vQwslw9x6HC-huJj1-2&Xb zNt(pCRN-VEi`AE!5W!;VaXK^eL zsM=G=(s}BNyN?p}Aw3~!Jg=Ylx?o~$>F0UA$;zqM*fNm??+FM1b`iwm8HbV({;lCU zIN!r-OBi`>)3NW3)Q!FG%wxadQF7?c+TF@mUWkAfbwAdDl}X|TiWb;NEXDwxi}EA| zM5TYR0FN{zz&1azD+<#x*8UO^xX6>DETExj?+xjWsKvI|@a|xkL*;u28~nEWYlw35Av7fjk|rPy5sU6MBsg|Afv}dB{ecBUFzx$D_DHj#FR=N zrM6H8!RcQH0U=UudIAQiU&*WH%esnRqcH+)9LBFLny|*pQV$mm*#-V-UjY_pMT_WG z4H!pwVk_~a`fnOm-&SQ^j_JUSTBK1^;Lf3(SYzLP$uvQSCDw+H3z-S(p)X{;7OuP# za%ka^zuVXgt4FFn@H`+U+SH4&E=jIlECZ0${{1fp^RwUuR1NgTvwzl70#C;$p zXCk;;Z6$4>{Q<(+=gjbV*0J%3bRLw(u>DJw{kRE>T)HAw z+n1vx5Rr$%birstmReQ~_k}8$V?SU}mHIeOv^o{RMR79!NP4$SCpYR(iwYe(M}RsZ zEwV#eS!DyVu^haNNrMoj1c@LQJiMif`lY?OGknLfSaz|+Jitb3=3uVQjXTKTke^gW z&$d$*Tbuamhbf3k-|-Hw>c(a9R)g5;LMb^$nnoOL_wbHUPu;jkK}h2AZjK0UIWiGA&ZSDb!~1(|t>k}^Qe#e9z- zWz(nqSi9Fc&ruPQvf-Va1c^K;OV64W-zzoO;6bRl=|H}E%}o3L9-oVC%n9F&97LI( zyYdksBOp3#hKCopbQJWiSYNK*le-VxB}ZkgsVWR?OO5VW9%bLdq>SaU!iRrQCALzH&szZp5j
    {yv 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 z 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

    0q@w>%RDp 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⁣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

    56#!trkbwSA*bqkp%+>=gg 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

    Vqy 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 W1$0{qDP@5v@Zz*=sg+WIsB$QoD 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ᬑ z#ShFU(vnm`hxa4Zh7crP7hgHD=+KkiUJ7ZPm@;+)gd5q_=Y2!oip$mD;*F%4GcMrBKq{B+uw2=bid5(cNZ?|cfamf5s!nW}IoHCg24&2OHgCI-RIzOJ0w zA=;V!^gDP$vgCaw=V5HFE>yhCJE{a_oLTZ=)tubaQ(e{d8!DjPo&q+>f3qp#>QM6 ziEG)G#X%L+HYNTr{dLnGo0FA{p3M9+ENLQl0DyfT4fI2A*g{6rAiN$dnm6C3nu7-e zQkpoT4JWHm1f6$z#AxP&QX%uAnX92#{5#ws^c{Psy7CoJvLx3y`BF%Z4Ip*Ir6+<0 zXov0NagLcBeJDNkxHM~4=GiJi&pGn*Q@cJ-|IdVFDWc( z5W#Y*f#5?sebeMlZrStL$;5=&@WPOR9ZIV~ikSHfH80f|7htkf0;vL5nS7Nc$e}%K zLo48+s9cjibk2_c)nHds~x)A$@Dv1N?k+OkZpFZZ^Z5zW)cm8@Sp`nSO%`+Zg$BM zJ49enm*YoJMd#V7385tHe3iaE)@L1-O>rgTWOVYoiL#!IL~5J{Gu;^Lps&D~BT+hc z>j5$>)4`vs0H8Ue51S^3n};FP7Y-5Ny|x3Lt+5z9)J*oKnd6x4wX&^3ep z?y1)hKNjC-*8EG+TugW+H^Vs%Y5XGji&B?Ig6V_||?h_aPHu3ub2#zk3vCol7uJd9R zMe?_m(u`_9X0_*mwvQ#;0h>_%6=8 zXY$u#Wjm-tYm7dXIAMq8roSw*A7GZrZB-hW0xe!_nS0LIeZoWbvn40xh=FOqdVdK? zqmuQQWo$HfquDD(N>T@@ZW%!KWFM7a)lSKyFgYVPcMXM&`XAZ|%yMPAC)kE*u(uPj zX~M00LMcW+8CA1PGoAwVA5Id6e0U5Tcr~_3Def?pP`lJQ#Y_#N6c;x61DDWoK<`YM zm-;R2V7k9Eb~AS)CnZ|XL)L}H`rSV+Dd4TGPBRCn$l`>vc+-v5^T5ahjlmoq(6A>W z9#Ra(qBO5(8bcooE_}F}ctD$kev_ydEhJ#5*n8p{7O~PWnD)-D0zpZP9|Ri)Ks2=C zSt+?muMysa#^Z)IHGH$9iX|6_Q`6gwn$n_nfxVCqk$;wxl(s7S8N|{iEhx)BrOZkgJBIW1U$S}z&qFp6Nz|MshI}1~ z=osMdd>l%@0)2}h%>SvqsFA$HHmzK>$d2Vwf*usL5+AYf@TAyz{4 zBfE317iTIE7!ls4JnX$NOy19J4Muy``fH=0dgeY{{E+8G z4L2PIDtAE6B#t1u6pI^j2eN1#49Iy2sUpnL91k1+CDG(~2?Tf1ts3msMm15H!h(_HJ$%efqfmDw~8$pk%Xk%cgh+2Z$^ zjk||-y?Z+*<77*wy1t$I$ZXy%Vb>#q(508_>$H@`0d3|9!O5wjKHl+Q5?h0MTV5$; zCmnCpC#I`T>V~{-ku;y{C4Jq$Y`>*3`P_jj0irb&CLT4kaEg&COxXX5*8M9o(bEYL z+X7p2CGHG?Hec(BQh!BdCLN0CF29Se`{mg3>A4|d6)&!dL_(Mi;t*!Rb(u@;g=Trt zGyjIkKpKkXn!S!sw-q4~)fd%~<^z3)k9hZe1-CS=->f487|2RZhu^~m*RlHNm8tIg zN5WD0uP!6KLXF3B#m4sNRN=tbtZ&X0jE`#wy9b(v1NxF9lS>p=19HNIa=#jSRxc!# zoV=9lsuN(G2A{06jY_Ov7m`o4aS}pp&Q$wy*)W^WdLz8u3RESA*rANr@iRp*1cf8OS##U0|*6pfVq=5%IFl z9qzAjPJXp0utKIE;bN7NYG`;^^%rW01P;d5Nn7Gb)&|A0T=Q0$j>9lmldkJ{rJoC` znV2q%r6X${dUnYK%=COdlKY9}Xt^FkXyi7A4SnB!+E0)|!N#EOBT>%uJ;1!#tLmgt z)`xxdQZqAHy`7S1RkLZ$-$EpmwYzOR4jOY~%PW~`bE1g_Pf%3~-25coa81+cYE+|DvvZMCnbOo_3gcYqx$+Fu%=CW-}O>YT{BBvZcqFA;0 z;qgs1Ki1lwt{kC)RmgG16nA0hHXK%uGguLOBQ5RZS%m0ZhQiP#cLR55Bk^Rp{3!qf znz!Do$4?2b&?iGk(BYHQPUM>hozd$d>ccq)V={wI_R>=OO52Wm?z-S+X)v*0kXxORTYZawHyhLD{>NQEe#j=3E@TZ-NB zAzMd)HZ?XUj}E^W)z-jI3jVs) zLPO(mppe|9ixf!TWJm}bJJ0H7UNai|0MG!g9A_dFSfpK5Z6&55c%4oUj!A@*25tnu z)j65KgwN5c;RcjzK))wdW4Lukd!fh8yaP5?-t2AX#XGz0F!)3P=7}C{wb$NJDqYN$ zm4#|kIsGhfa2dQ?wbjK5mqOx!)txfi>wpOLgz>^WO5zfQpC-afcDnT4(Fx=6on#eM zw8(tQ_U6SO!`K6}!H4DJmk1h*{TX5@eM2zSqRG8hRh(fZ_GShBsZngSigG(bm2A*) z;N&X~C>^y!_IySiu-)L^OvmEmeY*|JFwPl?j?7vN)>*{Up|~xUX_pp!V~Kj9jM^zh zxj)73g|Lr@9XPDh@Rl3dyfKT>5ByQw5cFSLY%$WIWO^Q;LE~O3%{MWMQ)432Sw6CR znQX*0gOBoc^2DguS`5t!Cgu5ov{=0^%+YBf#=d0%Tw3uNTntd7ba)(gOLoIzjM6_< zGxwC1EoKl)-5!h=^&8NU`Yl3x-?GorHJB>Cv(z+BvoucROz`|;4b{Q{J?QqG|)kG9;H=}KQH5CTb|6=@hi zhq>+)y|dy+G!K~_TU5eAr*%0j-)~j9Wk_jhydygIrXv3^Lb$h_UC$wE@Tk)&qhL(<3>htj-A$g$h_hWt-pFc%I!DnhpMV`_y@-gLmUu(Y z;@sPDxPNFaq?F~3tqhO)u&B6sq?ZBwYCAPpaKqBT@EL&ZedGTQ5RMwcEim+Uu@)Hq z$WBZ>$CTT^)n8t8fZ-6ZUzi#GBmO~MirRM-E<$Yx7_mjO?}dzZf+!)t}IyPv?H7C*rA5o)$OVqIL~@C#=p=%Evy;Nkx_&*n3HcTJEC>C=L%6j z-c%F1L-ffUFSjGv%2BRBg3IA33V%L4=6wN0kJmHR%gwc(w$;)t+0G;(|EzdMSa- zOs34W>phhy&=3WhOhJu458StFfBca&kj?WEDO(KwO&5mnVf-6mF-jlIv)11?dT*0~ z#nikjq8vi9L+OH8HLWDS1+z%?=YE(aW?L9)1Qtd=Ur`;-ExQ;Geto9af);VtNk&R_ z5Mi|UL=Edzv%gEOK%=&@{?_{^#wIvcrXPbWoF12*;?Evd3Rv9fjTM@W zo84VzL_wGlI4O^Q_=8coK*x=(t;W?c1_dz7Uigz`%2~j+^0Y<-`A#<89*Cwg|Mb*b zH&hf~X$w|X>TKG+-bSsxi-(Px_A1A*rT)iU!4#(RvDcREpo@8IQ`?lYRjP-s5iCXn z4{ZsYerG!{eCy!U?hP@$yOObYd~XXOX`}LaZUU#5_2GqhiZ5XeK@*_0`D#PPHXUe+ z*~owc;-w_mz=q_A_DVo&dJn9QHRRaT2sfe`LzvQ52GjBs&s1SoSh1;Yuq0;)>w=I5 zbk@7(ao34qxRP2Qk%SaaV7iqoF^Kn5QHJ}z7Du@89^zhvYZL^_t*#?4m;_K z%87aXH5b+*+B6%>ayA9?4pPRyTrQm7dc}Lw>N_r2Odaes9e8OT51f0zL|Tb0K`kMF z{zFS3*G+#l@5W2gja4vrP;1&8smshfnn*QC0kp))d$(1l?ZWi?4}X}1_2Cr<#i$%K z^KmB{%8{w*L)AMX5yM67N`=wugQs6TJ&U)ub=(h-k+IrrrW-6(~Dv_d6=xE?-<#_3J;%2)!`* z=+zs6B!oj%OqcGPHj6H{hj_*{W+6I7T;`s%iAmp4an9%9 zjWx0_#zdAruxNo!15Q&=OgX2{TO^$Z-4rD_j>t5&ikB|p2S(3{dd=N+DPx$<;6nen zSxm?K`ZnCKw)_sVUo4|RYtiCLV28d^;^N$4RFs6=Sqraqr#UtR>=koae#;6K{NmcK zYjTO3R+7+D8MW~zK1^x87WHzI`)u?8c1}}V61w1XdL`9fV24wM{H9j`CNn1S~h*0Pey>P7nfxu*w~_Y{ zR9%Rhz8d^@i0migW=j-)SgxIY1PLmQTHL(fZDEvc{!d?BIDS)+G!pZ> zxq4w=d>54k;RkQ=Ua_cxwlgI6_}}4PaPz(I_X$?Y%tX$0aJC6doC*R;EYE}OS^))u zk|U2zEHDwIWAb|C+K{99$8KMrmYoLsQiY0#(M1-djUPh=Xc{dF za6DUBVwk}knAtlx3YzNK<1;WaeQ_Cj|GM>sdHe-+IN<-l zXQBUtXM9~l{U=27*B<^H$$w7zZ?pJoRx)~4U-SR(>HbfNgdU%UOD4YMZNd6l7=du3FBKfj${w9z7u}C=nP(lA;k#PK_ z`uvAQ@)vaiMfbHgMb0}ra!lsj<A`X0;^1=7bx+k_655A&?D6dfMNuIXH9~;3sUP1?*rHvB6IcSnh1#dj^3{i0RoV( z_~J`)*5msP0{&Q~IEg*q6)R~HlPctXUZuQdKM zxKuV`9U2|RB$k4<=U~p~fS)vr;60$v*dD|a9gy4-LPRY`;i-Q-T3$DlR@Xaya|j&6 zu^eSQ1`rqw#DID$wDsM?F`I`6Jy`S9vz+fcFb20PWQh6<8E@#t4@Cb0cF!)4oTx24 z2Q9`?l){GRYymi!os{wLRY?X;;JS!CbQ~N3c(BL)I#+H$lKiV29o`(~1_Sw3gsekw zbVPB0Q2bnk0BZ!yZ+>z>-%a>!=>fnC!tK;hGh&z$udkuU$d-`1C(M5jm?ZV0f0G81M7vFq>67DFjC;^2K?0hJn&R7R)IW!`n$j8nC0nnA;8OOdBAFa)otg2iD-UlbIR9SBO;<-@ zOtjNf?D5cGs^@2g#%y?;LYjPV85=okCp$B@BzE!XDYpr#53jvC4WQFj70T|i;P?tw} zzimV8=F}+Abb5V#nIi$Q?T!AU=|+FhCZ*T+?r^(oT_)HTnv&+oxq>*@podm+{fV)s zUZ%J~AuLySb=Jzk{C7X*vGFNVFf#w?c^cGb0up;t-0{!JtSYz{L3t@i^~DK#wj6t@ zd}z~8ZO%I5LcZ>718$RJt)DET6doI`{>{xL`Y48IS4B*I8TaTTX?2+tkbRW=1&t5p zu+1r2Z_;pP2xK`9!}w3pVw)HCc0dVOSEG6niO~+ld35LXg;*}XH1U3qjj{tl5!!IM zOHY=QNnBHQ)U*G5tFRE&C&|(lcPqA{rG#wTp{lnSVWhG9b*-bSVql3%?XvY+w-K#V zMa`@ESksDox3RMnR~C=!jweRR9k#9TF@LsFxksnCn^{$HsC}$a=%pgOwh{Yn5LBbL z?*n|f_>o(aDfe&~4Gv~oY0jrK)oXIep0>Y!4LW1iy@wD`)oXe%Pp6h8K!72;ACC^( zhv}8N$UWb?-YEE6&l{7|;=1adINL(T0?dTL3h}Y(tLTDzm`5S{5NUIT8^aNfTco=y zcYJ|L_nYd71I=!aU80^JN@`KSE6gRf_JHlSt|t+{6)Sq?Ip**23LNw)rOCo7!2u6SDIK zTh@_g91pv`R)1Q7uAe+Wc-jYy&W?tUiO?73ztX4K&o+51It%Y~sNXhwWkG}wlxn0Z zxy z7Hb359r+GPf@mLmtzdhxto#%e#r6QNNd!$2tnQqM)GA7!H&aeJ>{D;sbD5#A%aUR6I&%C)j4UyEp2 z=oV?wuC&+;(`#BEr^3l1PLcdDM&bJHo=V&`Lzrf2-SS>G&eP7&#U~rmbdD3N(yF=+ zZ>T61IdtD0*z{834^cI2FO+MzLsoD5ICH$a>Zy8^j~d_i4pS3OySm~gI_>9=@2a0j zLBZEz4HPLtyx)xz66}mMo|C{QZ;>baQ}mwLjVHKV3Q)!B_$+=P!LbaBWq$to}gpLx4Yt654aP6&+xRgBnR6*)~xF?5{*wRWPX(7<%f*x6=P$q@%QTVL) zlW>Rp$BEz| z!~w~plYZ2YZ)Jlnj>QwD^ge5E#-3MHiGywr*_`1HkE#r+9|>hb??IF z!+ExlB_k3lQrRQEU%8RLoLgCJ>`OT<1txb-FL;4IgWwJdV2eqd*QKSFqh#}-a0?~{oCta!&sqR5A53=hv=Q)zOcp}*6={pV)cu2 zNch-^|LGD!(=PZ!CW=9TItQdU6>=anE+htI+en4ov|>}M!YKu*wF0w`I<2`4X%68D zE=)&hx=D+f+*QhzwzK#;t$*~>&F8J|Z<3f#KE2hv&u@68Fz72-e{DM9sbcA z|M%r@g5*~PE9;*FWn*Rkn<2@@`X{G+DUwisYX2yb|ET&eN0Nb_{;xZK75!HV`QOp$ zf2WZDK12U2g|M^z!$V|X`l2uYe;y*u*O~Zd2>E{m5x-!~e}#~*%|A-we{+b8jQ_}R z|BN92$29zk14h<{e_jP&(c+&u^FKJmFEsOSf#WNJF#VO*{vJWTFw?)+d~t|O^nWFs z|Az>Ys;riw)lzLoj!dOZ{hdMuLN0Uf5@7=p0bk7DBTsH)GaQBDQbUuf6_x5zB^=eH zXuIWi&FAY=ALpv*+uAPiQ|dm>^j$Q^(S%c$Vk6l^|>atrT_p1inI}} zH2@ko87omiA`{3tRM0?SUo`>&KuRt?+V}oR%-%`Jojs(zUF5ypeq#`^KAf)1yd~CZ z0Aq^eZSi*iNbpdm1t1vUQeQ1Ae7I0dR9z2W(hVReyN5jhv6Xe;?>#xTfWG*&2qrF} zB;c%QXuXK$yHNBYYJz$zz1z{qx+=B+pWAwpY{Nb@ZGxFv2*m&s5DC-(fx?pP6I;-_ zkahiF<^A6@5CRiEv5J2;v{q(xby2SDy1ewX-}_Vs;N(7Pe`W!?*g84{u>&jZBqNxt z_!R#V_p^wq8y)w1{(Iu^&tqwAsb) z9VMif`m+GKC*vsvHaD}dJ{~UgqQ~W-2DL08k6x9AP87oT?yA10;ZuJQ?)`GtM#M6c zX#q)hWVCN|G)PS7{o^d-#wT>NmwG2z4qczx^#wrJ#H1FDRi77O5c+x-=(}Drf-Jxw z(k}W4U_b{UGC=6hPB68;tU4bXN<2CM@*A#uwi`g-c%M)_fW%ipAb{L^JVX!xqu&JH zG5~Uq@OFT{_CBFl0EwT1bb#N3_yXlrUj-qY4*zVtd~GcL*?0>9LHPB{2O_WfCIsPE z?$^-ryC63}?h>AW>+Ekq2s%z5h+W|)c!JK84}w6n4<9jv-Ju=4Jz+zQ-ivP~hdMYS zmWbC^yKiLv*M^`@A@Ab+YR&!~9G^%#{Ok=k_Kkk;KQICb(2*aH32+0UpL>}4Lx@%| zfEq&7+J2V>o=ob@_Si)FsDGDYpZR8I(o6F>DijGn1G@M7Dn8V@4L|r+2mXf8ylstL z@VD!ZuxYz{@8{?ae`gol;LBC-XD7Kgd|M&$#(W6QEP}JO5DhJ@j5Pos-SOFH+Vixl zMZ3RVvaZRv4^R($L{J9P9*WjydmF;>wT>mIaHb~2AdrA(n|h{QOQ$^kSqZmQ*&C7!(>XFS-0yN zMnnB-*~Il|SSUPm zy*GlaO@6uU@RsGcVP3kTK+YQPBuLrBwoTP8WbPW!J(;^0-<_Uy^(Tri8SocMb-y~U z!noy9wYCzK1BuTwR;O}Hal8U!$Esx1HDNICvb5>~?&itq`+1m?#p=-AVjG`Dx!|0M zvobn}!PNNq3{rIlataFaMqKydZj8E!s5QZtDz~$dDa5uYpij%^^jN`ct^FYCwb|Ih zh@g{i2AwWn7*9l|Y#ktd$Ez@0!sBmcTC+ZGDo1qQP(vV$J%3w=8`nKZ54CisR82g6 z-Ue3e+PxQJ;83R zD*VW9u_l2;e|(P0t4yj`nF0A=%w0}nsMWdGMYcjUw@lCLh0EG(AvVd^U+ZD~oqYdX zCJaUW$eiP?d;a+3y4z*|1JWAD2q@66q8>I9C*3KQ6?BBZdF zG(y(L^(W(}VA2D3Qhi2Oc#pOBb~#BHNtM6ntiF1vA>PVUqbii3>6Np)ep6DOtozuj zS-t+AlGx!f4siYouwl4h`Qq^US>tK02+AZvVbLK(+f##$M-_04JA2`_kl0;U*1WKj zYD!ca6>#!pM~-euE=VEG^oS^#@wF#NxI6K*LDi3%N%nh-pNrM3ygwh-l$i%9!@h63 zOn@md3|+$9u3@yVMoc5!9}J;^f8!{%QhBnS^C{uX5-3YKG8z@ksmtS0L!rD!GPtE% z=9RA#-=>7EjKo$ZPEb+WCcQVbyBen(?j}?vjrM}TjP6f_gelMqrAyByyxP3G`(0o0 z5lo;tHAC@<2(&WuTbPbo2rsT5wxdcl@6@^I9b|K9pgDnkDwRdqO3^ZWT(rVxUJ>e& z;>9uWBiwO#jJ47`?&kM#i$H>eX=$03wX zm6PkKdx~~sbi`Jhk)&JqR^#|L#~A}Jk$Cf~vV|{Al_-lAes58|g=JRHlp+6HGr?0W zB1Llo0esu0HM8a=flcAH-dv(d>*lZ~J_+k;o`FE|p|*wB4}hKIT{^y4u)H*&WFJ}^ zxsT#<*!_5>@Sun48J-4u&dVMoSc%R`vxWYq>)3Bl>C4`yIQYKda0;S#Ug(nRyr(&Zw;GQ7RGP zV>@4r86nRrQCz(g%p6-;e-CcH;DdzDmFAmXY0>Q_rIAXyy}U>@v6kXY~mEO zoP698f~h+f`K`^{Y{e7fWv%TEsg)7}7kF3FU~}hnCUZ_m6_69)(jXJl6kMY1N=MKB z+-;hNuHCagICR>f@uK2uamZ^C3H9bH=Iqre&cQ}j8%{(8uwb4y4L+6fsa(zYNv^&O zyB^>;Ivi_SXi$NR#6G&B1~@!CjfuI?j}fiyM`WQ+b>WG)d2gi}K}42VnIe=-ODB+; zFvY+8Ge%2|c{v+LG&VwO#^8-K=x|={8UZ#pZ8?1#?Fed^FK-0<3_L$$j9&vqR&~o^ z+BEG4fx*D z{*BzEo@n&dJjq_c^br%xK($Wkrs7f{=?t!hKuFx(e0v33Pg1wHplj1To$j`ngKd_? zWSYgc436;`5XmD|Rl+Q&@V+$6#EAQ|3tPs7aev&?@Tg$p`SMpQS+w^xtit8hL&x$D6LU4l2wW8(j7omg*d@9+w5_jL``K96e@|mJRKve}@1-qqd+&gNkKdV39x6fJ28BywkCG%*Q3S>T8c$n{^NP5ri`%xrY3 zk>0qP{SMob2p@7BS?0IvS~OCF_{^y(p156GzL;x^*3RzPt$BG(+N$8L$C*=}jTkk0 zdMYJ~(t;w`wB*Vyr25Gd5q(2ygZlbnz<+6gRDTl6;i)I^E%u1WnH0(+`Z%@_f6YE# zaG-i*UWm8`h!?(X|GbfoOMr)=K`Hy$)wJ?3LHZGKzg~g07b4zX1~x3F3lUt9n`JYg zyJ(Z}UDkX|Q5J7foWqQ^)n;m77V>ile%KQWI!}oYI!_?^UOq=)-FYQNapv!3XLptrhEGR~+ z%YDKZY?PwFa@f?6_ARcAtl_MrmqeVuBaMxzHdESm91V!|t@NL9;GizIn!S*2A7b1v zP~)+d*ffP!sL?K_2i3=g%9mgV-Uf-+M$Vu#Q?K|DIo=XDJcnVD4}IVj#ky)tIZ*2t ziI%Qjg4mYpfdd^qJIu^Lyw}j`I^U;TE%kyG*t)1A}G9 zQ&sv^%P6F?FKoByZC2JDiK27}?1C%53&_-1C-gjz`-<=oIHwTzjN#nK3@LcwB@$^( zhDcYz*4_>BV*jyxn=+>#RQiHs6B^yD?)^w^ilOg28E@34k~PXP5>Jf7{0#U&80?QW zJ%6?u?eaJ)?}e;8iUHnlRSO~fMiKI-bppuEXeT04`}*jKBVZ~0i5<8-rHklvacA}K z3wq5BwcuCV@5P?eMJ#MDR4oHW1{_-#^GST)+%B!Iw}Q|$?rVZkL=`WpqEt!(Q;zBA zYsUup-cqrKe{nExyR%2sgK{%}04;!7j0WKrr~w?>5!2+z<{Inu)stEKBpEM|R-9f5 zD&z?k$s=uov$H0`O>PZ6w6_~45h~bFFsai|>w^v_V-1GaiusG3(!U3ybB?;rA0%r` zeII0MiP6-qM@bV(Xa0$2wQN~H(|0c%A1Kj?yu4~4{t?cel`W4aneQgL5xE0TT1I5R zO>Wcv7?LATlkOT59*x5KaF%>g`HVagbEU=V>Xi7q{rrJ+@o~N7=kn6Be1&+)A<|9X zrtC$OE95y-DM z`{-9vv(vvV=SF?%Ce(I9m=aA~uNHOe8$&)Er(3s$&>P6?^Ck+9SEy)m>_OH%vzaD_FEe65Y|=&>zv8sgTIvEAUn(} za(oI-S?-HNq;$&DaAEcYb5I!bmGxZKnaRw^Yf^}eMu^vWk;(MUU!Qu8OY8JY<}?C)Fr+iPhsdGj<`j=SC~t6Es_*6ljJas_ zP-8%-sWH4H8dBEqgW!&HX5jMcTP0TS`Lt&<5`P+TG1i9Mii{GFSP^nN8>qp3w0<-< z88Dl_Jh^MAhJf>&cG~8Tr~t1-pb@A5Ry4 zC>z!B(||UCO5qgg^1BFvJ-kvCCkQkA_K1t7X!ZKFZ1vXSRiqb~b%DSNv(9c!r)!qYq&8DTM7d$U&Nc7SCTkMxDc*D&5O-~8P}26y42P|KN-Wllhhb9Fm3yRU1eFBxY-OPOCtm*=22j!?I`iHE*%G!SC!VqkS& zP$`vEvsIOeU2*SeFB$>GF=HZ$7qOx2X50XmT@SUW=V?PBvb|{|HF)a|Suwm4g+dbs zGbp}{sHo~!Sw+4@LDVAYhx?=mJ?-@zl2^N}Z$g%l8g$S#6oAN9)E#a5>FHxZr{h$s zs_w=x?>$$}rMp%yBp1JBGHoAH{7AGe+p_OR$Sv*AjeOexuyJ(lpH5k9ZBE*PIBHv8 zFlwk*s~hZIbQwc>kk#T+BEf{4NaEpMFFy&<#$fIP2tq&T%4sb%T15HSo z5{?OWtk(}O38yNumtDG-dOUI+9{D>A1Ma#--0=n%AYLyc9-6=z&Wku*`Ih9-AyFsP zW>cMqUY{f=4pO!x55eb#fgvhr-qeb%)bNb)Aggii=a@AOhF2Ky|GH!IAG10EazP_G zk1Z#+@^?gOk=Aj$WwGPjC}~D+g*Ik1%w!LnpR&|#_3x$>cw4fcgeW=P$5~MqP91|J zPj~ghx=3)^7x)2<4XKeG@a|1@x|b^hdA3E~ttQ>L*;mUpCsWqrDA#@3`;+(DdTMoo zm)-1_tY%L8avRKcvngT!71nsU#pm79vB#L_WUEQJo}rm^m|{IVjp+0_;A^oQ zyVf1pI_y8C&0Wj{A>72)QbJzV^VHb}oNd;u74l2AQ9vF801p{L`hRE#yi91(2iP8UmSvzL^h5>9arLC&s-T2+fu7PINH!`qnNthNAdL4XUUv%u&(z` z4(W+g0SRUJ85FOnn}M0c4dRV-4N#dxlzq<&alh-P+dgQm?$c`f!9Ig~jvXZBky)73 z32g(+uo32zPLv9U>Y5>~ZpEH81SwHf7}<@A`MC&+Q7A%9=jR;tJaVmU#SCYI>aD(3 zyNV(f8@Y?%YrT!q{bNVPz;P!)8)-F- zVX;ltk%RArnCZPZ;Ej&Ysj5TlNW~x`WJ%d<_{MR>$Hoy_q)}H$KNS_9U-GoUoUV=! z(KKyXZGs@3Fe_=Z3ZX!vf+IcrB&=0*+ElDxm?)Un`M!!z>HQ3Js98sQsTt!h{vw+B zhWz%}od5!M>}tF8SkP=ID3QuzoHTr4kT_`?(Y*0)J{66FNvuV_Zs+Xk0MoYSHyX%1rxV zsp@-y_T1RS<9xhIcp2#~1@psO45({9+xifG%rpAu5%9jp?b3}4@k6GCkq4v@{dPVY za4r(Ty+*xmov@j#S>=h-VG>o{6NQ$V)qovFn2mAw9G%kkpr_BK%V6)mdXI_&wJG1v zX(ww|01Lq&2D6DYM+Gb8_`FmS)BIGE^s*PUCbCMLU>+))naTY$TTkc`29qcs)Fw(J z15zIFQ#oc-2FPNMEJ1dnn3Se9f>`DJU6oartboqjLAeagS(WHk|F(9_@>6qd<5L_k z0Iq0MCsCl0ob~Jii%>Ggnj5~!*F>!9qEIXk9+>JIVQ@)4-YnPz{<=UX<6Xi0b<(O9 za*^PtOCnT|F-d{U`y!;h&YhTF64H3C;TIvMg#zas59t1AgQ>Rl4s7-3)}&*~e*2eA zh|k^~(qlWy;cy?J8%K1`l(>;NSIuly{JJk`xT)mi1ZvH%7jDO3l&a-*NiyJsyk(OeOLZOOwlt3h9xiu{RkE;rTINT_q+M5U|k&Bgxb zop7z@3=~++kR>t{$e9R;?;Psg)TUNL%1q-v#y>5`QrR(YfKP59$e7SMmV0d7I*R$1 z{KXB9du`yXoF1TnCwhL8@zb1nh)yBX@NDC*knl{b%hfzUEY<@t(aZYwMpcgIahipJe~2FCG13xg9N0(W z$2^*qfkLj@LpA!;cQPvem?M`V;_kTAlc7?s{Fym z^qwIH6D0)hR}J1+78$I~i5W6S{nX?Xr+Y|QzID@*)$b9fQ|eC8GBinCYSn?^>Fn!} z+2ruKU92Vq-zirCqaSQNpk5d&V^+k!4~Y=mkRK%Ecal)EIK>2-VXvR5A=}Kzg?in& zB{&XqpDm7qX|0J^Z`hna2rpOtC`KQclV>J+NefusHptGU$uz+#tiGwOg-e-M?PB(q zsc}x|G0X#n2bDUN{Ak+ELMrbHy6RfThWO}>S>$AS;^?>)V+TFcPk{bO?-l}HkvWU1 zWl5E~WIOyr+g;3xn%uNKqk~T+n6<_(JwCUfC=5lBS+jR4BssB@-wZe!s0|JdGnSU6iR3HXCEE#+3?=|e zyXRRu)xww(o@J4u1c~OHH?JJhek?3?%k>HauyG2>R7fy}HXX4J4k}bR?cFz+K46dx zfHDWD#wL4s?KiLP9=K6A9p+}F!A>gGq^KX+a4?J0FC#?lM1bg=bB9mFx1${{Qkfq6 zr4q?x2Z8*kc)uYESw}vFCen=8KY2_s+87-VYVSnS)J9!B_x<7t6=yuIJECm_!y8FafbGE8$2pbl2B!VPfgqrm1536 z(HsB%C1+j>fTFn1Ouz|!zr^9opnR3ejI2=LOF(6&3q8xuKRrsIwbW+~XA61M<%hp1 zG=ys8r4XjwS&E0P#qJa@JU|^hrN;X{#R8Tb=`bq|=QInJSx#lSVx;IRVWy5SR4qp#{-sEnpq+AC*q5E|*$_vGz$ww%x0eUl*jV|5R zb#=uaSSc@7pGyhsj5?FZm_1eEgz5tkAYtBck;^wBU6)R+#x8k#q7`n?C>gBlEq9N* zR0FTvHgmljAK7sl(u!z4V6g$Eqs1{5nW15Wb(ZS2JWmx;0UqE>ZHJAsUIjg$(dog8 z(dU}jTSqIC)uJ8rsz7dso8a;3<;|$*`&vpcmpuIn3!>SrNVMi^0rBB9=pg`^&_k}l z^Ei?9dPum9xb08RcC$jf)MoQ3&nt7>Ah*f<^2tNLm%I>rnYRMVM-(e7fXSQfUOVZb zbY7rL28r6nVhOml;ym;dyqZ50cAgTC>NZFr-X>2C?i*PEzpC7lkEzHVhwTd69SNG- z4cPPc;I;>Mw_ZyRS)iBA<*a%I)xaE6vnDFczEyS-l;v1S`%zoLfJLC6M1rhCq$`FM z?kcLfz)p~97gJunYaAvSt>&JQz1`AY%&|p6YZiM5L7m<)I_JYaR;<8AP^&_H>Vy{m z?jvj7=XMGBMWHBM!8XKh`|EA4hAj(xho_xQq&C3W*(4~nu8xNUr-G#8;aA-rv`cxR zv}CD6o^_{2a@#`ktoKpyXFrYomv=}%w}bZtzE6w7-+xrvgICw#-uVIQpu5lfS3c^m z7z779E7Lz=mOmktKS-!wja>g?T>d0gewEod*#Eu!3s?D7{&zs?pXAlw;|KpIKuTCa zSyD*se+x)4GyK8x|BpNH{{I4y`g2mh7Vq!t^xpxg|6HN}uL4rc41WeK{tb}&v-HJKpP-!dA^41e%fzX7S=fYfh5>NgMso#LqZ$RodAoUxN`VC0^2BdxiQojMI-+jrBt;`|H@RQLKMl z!mm^R+WW@^{n~!K(;vtGapc!{78aHdYZAvF^$%Os$1DFPq55-O{z8xbCF}a{jMaZG z@_%KlSpJewv40q|{x1@$4_Vaz#6iXOVTbyM2$%8Wqx+|XiiP!`8Y-3#@9)2va9KYT zyT4Sze`=_hKg`0vP^o{Xto|tdHPwGoR*ZjBO#RYOeSClZgR=T#z5mHw{nAi<2z@`s z{0}Ir7F89U(`nM^Hfj4s0sFOP5I464SnJj7pLE?ifo*Nl1QPav!WRhIK_Ei$>mKsC zJKp;=QnSWjSRUb@R$mjA*chWnfY1AxW5@mWQXZL5HAF03;|Pj)6D<1k_wn zu&^N28HUydh82-^;Lrd79v=e$7~!b_z_|g2h`$e$ejg7J0*<$LymM%%sdWXPlxBE= z+X4;e{4h_AeYBq;jc;RJ1WfG3F@~SCXKDg$d#(oRJ2?eB>XL5;ob9&NSC_8_rG`R) zsIF#o15Xe5W{sn`=*yhwRPPLQ@iuC`x%pz3M!q-)D+DC~PdE(VuTXFASbq=r$)8qn zF*%!{;X4A^yI=g%`OY-n-Q5U5*v8?z;^F%?IOpQx^UFB|Ik*|TTQ#-7@G#KH(Zfa_ z*H1r6vNL15%MCtGxA=~jmh}7-UX1T=RgKoG1vc&7Xk~0?d-DL&@g3L?_}q(ATU}4@ zv@84|iz+G&r2VQHZ}&X!h~lWm+Xt10+b`s&=LdcaBF`H~uLJQ3Ez9n}FpC;XO9Amu z@f&{cCO3Nh1vul`G}btT@F48)06RxeSAqdNmyVC%Z(y1Y9I}C-MczoW<`Oh0{-Zi}D9x z%jgOR{!aFc?f|s7^F~AmkolqqQd;?dE?7qWDjI(@;)ht!I)dK^URwF|Q7ivdJNi`{ z_%-YiT`+m_DT+Y5{+$Q{J-Z8{=R-pksLjeYsRweI@hXatv*(Av-e>mFtiFZyeLfSq z=lkk#_vX0=0e1mr6hENA(8JPqKLX=E>vvD{_w0cErj34J$GUeLz*=F=H?xuVXcWi7 zC7O5OH`nDC$h}YqLyPT4d{p1(Y#!}*5r8E^LbZ25!sKu70(9Z#^L#(%e|GT#E)h0% zq57X7_?*1q0MrVLJjmA~gy6h+2E?De7j1>&xYRqmjKV#%VHfjnYRC7=z4yWzoWCr< zO76ipf^shh(XPE~5>md^yjkhJX|d6T*Z+u*IlRH&0w(;{_QE-IjqTyT=1afLFGhgy zb{NYDQNW#3Km4@;ngM( zdpfwSf%>6}Wi{S(t>euS7(~d?{bd*eM9BI61s=j+?-pHXoy^*A6qu9X(C4ieI^p&d ze+YE=2JPgjO6lF{`h8tzYfEmulO`TKDg?L(31Vjl{KB#B`F-L$zm{|_?v6R2W5a{d zLkI9UuQs8w)BCKq_0j2@IH5(72*nTGkk7uQl^B5fyMjB)@t$vrv>)134A@ z{lxv(&`J`)m9!Y@W(HffLp~L=ZNrn^b7gnl#OD5+hf-NdJ&-mMQ#!tLug_;@U8f{d z9V2R2OHM_t(7fFzwpz`cyP;|sD_JEnbJUnWI&e5CRSMH)c?7hJgRvMctTBfmw>Rff zel#vb!q|P?El?R8aW0MCid?MVbc=kN%d!7x@qtUFfxl3a+c_iS!jEq94$uJ4DMStsB&eqx)hy0HIJXiHcn z@?H#ugs7e(Q_n-+Dl4OI2U&=wVr0l`^Hb(oOfjyZwDSu7YIuuO$qFC`x{Z_1MA8O>i?{6Rl7;$|!n*XtHCIgcL!*F^ z>YY5@{L7VAJ6nbB627*|vsP1UXL3(p>cTWAA!e93AbTC-F)T4V=I0_J`1Aoa(ctN$ z*wopl$HVghaea?Opin7vE2om3+S06R%c?Ob2lJ%}%zuD5A|_Qp&UnHWcv3AK!G&$? z_=qREhjx!`Xof`AiEIduYtWV1j~@Z9t4E}!Tf8VMy6e_meu?K@9Xc9Ul<^9bl5$2}@L+QdF#U;grcwPw#|B|h5iMXT6c9ph@A|NtD+t05E3r>tO}g4TRCkCqoUG= zu6cDcU}rYV7Y`if#|~wb&+DG~alnX0WmfSJKjhs&_6A5n@TQqzb4WzAzhe`mmABg^xC`pE zH3P+_j2v;uj=I`CUM|YV0Tl<>R0N4W66}h0p6EQ#J472%8+X#RXJc`(p2+wLNd{}D zJXu@oNUCN;EMB7BVcJT*f%(hOFPGop>E@0Apjqd7ekK^%eKaGyA=0xnNTzZ?neL4_ zl+i3R5+w`bA};!9pe@kfx3Iw87vc8x=|s z+~2=A(4Ihq=3F)ZtHHspm{wkL6<(Vy?$HE8r(1X2mxOQAJpgcKsOX}fz|ky&conB< zqVcFF&VPN`4udqKob>wTW>uN7|+YW5ZMZnuW*iO0s4> z*hbzM+KT;Hc(H=AM02^V%Tok$%jB$Q-)_W+Xx+A4D_P2QaTuw-ri#io9w9S#5HO06 z>9HGnC6iNdRJJvJeI+qjo6p+96s~7RA8II>8)A->L=8dybo=pT6>pbcF_3a8vl=J^ z2_bSXYgkv<3)ZY&a%X`QJKN(QDWg`brJ+dxSDM^DiM+qCsgUK{>{ldmX})VliP1w} zL?0=nj8UKSKDP?bre*#b+Gy2MD2-Y_jC^sieOCGD;H`aF#qvEyQHUwUOeR?}OfbV0 zTSHp`%p&MS)}NNvKumDFdzrjDX`N`NF=;{8cGzHW8w#6hwc6810Nv6%4)X-%ot+|P z$I<07s#ZO{<4Er{EXn7~hT-c)#i(omp_eZfFHM?!-IYxV%-&71he%c5jHZ%Kwz0^= zeAqI<;1G7S;~DW8n1GMlGOnn#WI+=QaXOp&gM^w-D#>)5^ELRh$ll{sxWe`%GBzc2OvP|;Yi}BJR9)i zoZHOIz%rCkOb!c77G{REQ zZO}_!8LiHSz7telVqQ52t7^*daPRTHEzWf{&6iTZ?=?)pBl^D00!;*EAUVt1kA2y@ zc1EJ5_6Ei(gG3K7Gw{EZC<45f{eO*#8d0yAZR`SiS*P%cb_la{4me3)9 z=iBKZo`Ubv&yM5}WUvmy^+|^p^vUZ{Yuh!P76JyCUIg+UNIHEyZrlGFEf1dvkwo0;W|E)6-M(U)=aqFo-T`_`6Guw$N|jl35LbKdW1gJvvV7KVeg(gQrn z7gGZ92Cx=>)?62*Wckq51nP78zEGUsW6SomxTNV+jI<^Wc6X=M zy*PJra>j%fm5rOPO92(5kQ5lft|uvS`=wOVOy2jp=b+ZO=c8NVGTn2j%N%vFy&vj{EsH=qy6H z+#4z?N}Jg56Ut1n*(Uxgcr#0F=ZWne89oCNi(BU*Ag(Fuxf5Y`1NnShp%O=V$2=Fv zc?e~@pS4jtak7!GrX%DAt$fI?T0_WE-m+OI5Y)U4&AAjKtYi71cZ&;C&W}_oHVL9w ziluA#ataIsz5?TU`i@bNTTEu*iUODAOnO%8O}1Q_UyeZ!x!lJkO0@a8sTdOf)@ zKBE$hxVa*{l<&~sQ6Z^46?}tjAPvlLGi0N5u-XU9N;--LyH9xtGY(__7PRP-nN&6Q zcDZF4QC~j?iv|Ee5C6&0=VTW3D-OU;^nfbsIaC4E)!1k}J;oO==tzBkp+I!-T*Srj zQ+JD`DFh&)Ay*(zgwc=y(UC)U_kazC#1W;5alZBR(AcFNbjrnV5*6$Zxn{CYi{8X( zx3xI~5e3)ZW?n-3lzn8FcQNAc4`tIbcI%dzFIl=}{e%P;fq3fG36!_Y8qvN^Z)fLL zRvyP~g>2cb_Dk~hL`!ebvR2e!F(#B5H*79U806a@ecy*OPe^opPQyQf-UQ0d>Ksy= zN#1(^=mMqtfI(I9{6xf`do(^eEInEgsD8x`BfA}*JN~ppjQK@5)MWf( zW+3Jitg>BCw z#r#w2MEt1vB%#3^Q@-NY%%O8T&@fX4+G5d1mY+`IR#H6Rh^f1@h zN57cDKhS;i(Z_8orgRY^xWcn!J-Q7PsYaQCYBWHg#0k{~rpV0Sthd)PVh_25_Phc# zuqoQqFca3+Xbv+KM-LJ9RHS5w_lb7}ii1O)i_JlfjN+Y#Vj3TTmQVov0!Rf#noyMvRy7Jz1y45R0pRh zxk~O-Cus~jEAH)DNQraIxMsjKk4{S5@rM$SNi>yRlc5%_#zq$R3i{cqSKe?Vg5}IT zePEa{rQq!ICHwn@#h7j&y<}ghHr#-4gVl1B^e-2p6@>RTEEOGD@h{-X5B6Y1w|1g^ zfX)3mZgI_zr6Rb`P*!doDOOG;v#q5>Ixl%DZ`5P0NTx}h1-{xGna=3C!BAAGS9pTh zC-In?bL279b%FJPYZCjJ)0QY`93Lw{@1a#Zt6-Hb+(Z#|EaPlaFc4Y$WIYnl$3~q9 zHX$UK*ELNkRjNF3BuVHFx_!;l-OnA(KtU!9YtrsDk~KP}rTEsU@^bejvcH|@=9BbM zqe*`d6+K?2&3QSLGE^Y13 zIWV%fum=W)^2~iB1KRAT>Wh;puuSxg!?(yr;S_c~zbEk~f6&p&$0C&Y`90GC&`>pA z?q{j$xhmb8OxCkq;Ve9rEA>{^PGq}a*~StXpG9Flr67?0hFy64ItxYo{8a3<%D5I; z+ixxH;^8aa{jTR4zTZtH$gjh|h*3F z*6mxszGw=60=b5zpspWEtzh>l06(i z*b}`Fp;y#a-r9mYG35PRyh#EdLiBjI-8(|U za;_8RKu>LlJ(0iAeb6#TKC5ofpkyx-oueqlq>;8at}Vpb$bH6Kgth(^voTs&hL58Wq0TwCcqc@kVna^k~uPq!Y5-Rdwyrw^_jFW?In_ z;Cw&O$S(qeiEVPnbsMO}!w3__if+^Rg@($YFw4)=a`?MWXP21PMG{O9H(6^L~VSJ1!*#{EqM=fs;@|b#3%Aq3KGOZh~ zvjq81k}NVdv6U`%q*D!Ny1J?tYdDALC7WTU3hi~0lma3i4f97tP*S_?2_b3Hm*e&0 z_24ZeC=74BV^ptC!=LB#c|}G6rseN zKB;QzuY5Pp4P8Qf7zs~|`0Ns6^_ACp*tX7$(o(qOGT0%YVBz%Vu;wP91|h}Hs}{zLtbfANxNxM3-t3hd=Z26yn5y7V%OXUeW+k(oW39504de~~?yw)Pb{-*d zyHTDvyNdK=*gfAt!cT~FD_3Y^GcbL3OZuTU+Zs4Fox5?j<-#n)Wy`--0O` zYWI<<6$tp-QC$2QeOP5Cp z6(5Nv=~Yb5ATZ#!Sb5DxhcL^c-z)bTyB22?w;y9k3h91Qw0ZUCzk_5(D)r~G**;J& zZbyH;yO&pr_Kmb?noHB!TBRKQmW%_C7k;i)@i|C&%XM#d4p!i$k zp%f9%K9up^Y?W?b-8XVUR~|Jw!#>N_givKH1rM;*@FY=YSyBOy5|tjJ+VFX7bWgTD z*FG%aMB+F%*#`j3%*h3aSPXtmcv_d&6aco#1me!FvZCn^MY70P;v4UOw3wFE)Epc- z_E9%_dpR$>=WrbgO4gnjq)hX_wwPP780D%vrR}vhi4`=(kj3mizHgHtZn|k65}}pm zByiGop1b|782Gg!Pq%{-{pbDV7T7nK6*)f(8YG3_O>jQPPti(|x(V@?HF+aI1k%D; zs`|r$p%5#lC26{GEKMyWpAp8<=c=*^9d@!9IU?M>F+;eTNugD%mxfWT=0d*6 z@ksksRG6?**^t}GDBJst7O@?%j0w3i0648 zk=ZyO1RpkrRT*QxQl%H~Mi-wNsH#WD{%FiV_}Wmdx@wisx{=AEmxm~4waM;a1Ivb{%8s)+#6|<+l13lwY`+pG)O&2nPkxac z>RT1EoO_WS>YsfFKdea?vi2P>wmz-#SaC*Xr|&_NEpT z?h_o7hYlN>WF*l z=Nov%369iFhcWRdd*5d9>=34K%TCuTvUj-ye@NGxUS9}1&Iw8En_P|@~a%X9A}WDCeaU5Kl3ITMY@W4rgto?Ar;TqxCwO29M3C#xxP9wCcN z7F#1YI~NhacQUs?6=-Z*YW(WaVqXG-I+`@{^^tmXs&w+S zkey=;xOa2+fyWwC&0? z%>-$_?WRj5OazY>@jQ?zbZ%{jQ$D}Wa{K?d&RM54Ylny9?1V-#3Z z99*tehFDJIkBpWAQo}tlY@mrRbT;W?eK$Z^XN(P553*Nh`j0KL==Rw zG=*gn9}}~9lrZ;xegt?u>}g9o?!#mCVm>^W30tF>&#<>#$$aIUb&rLanzru0ZHhCM zwV`I^DBVlJKEOziqUWLj{TdoLis9bez}Y)9Ax>BfX6^_L?Pj;jaXtN3@|F15QW)CTe}$#7(^MW9B?R7Z-BfErMK~9xb%Uc_XzZa&3LU36wk$UlC&KTgMo$NAZL zxkQi=(HX~71rh8NUOQ~@N|@4c+HbUGAx-G9Bl?2y8SEV>Xs&(5CpT5*TV{OPSPD*t zKTYUTwdfPY@XAD(#!XU^CC^<17UJmZc+=`B33eNE||vFq(S&=Y%RFQw^_3vh8dwP8)^ zO8GY8UHtt>DLYyREc*qS642Bi;a;q-YK@;i>#adB03l9nWuMbv$Uxi;1djTIcn(i< z&}^e!SRe2|p^jt-Uyk&J>TEa}N5#8va#VEN8IUtS`q`YY(X-mOG<6f*q9iBaeLvbP zUhKWe7(5gW3=272lgd(ukqfV7kgvk@elLybgsWLg*#Gf~(WoSxgb%mqo0K!=N;hjH zSCn@(V4c0El zLyFml8iV?;n&#?3^{(%|h_g_SC^HA`EZ%8YHBenoZBfrwfOAyq9w`vR>$!axM;fC| zFDY_T#1B&NHKZ5U*RaLVQ6+QGv5h@GmvOCE>WHUNdlW90qahFkE7z5w@ehnj_$1Q` z8vg7tunsS;7mn1(n!?Wq0)vZ6s@kPD`8LOu;|Q;e^*p_mjvF?}M%r~K zW8soYw66nh#V8}+Bfn7cUR${xnL&)SR2tTw$e~b9ng3wWv=SqA@&N$K(?({4jfl;? zd1WlcN`okp?@sr6F)@{lKM_PiigA(LhkI72%O2ekFf#Em$u4fzx%W3F?2nIk_HA)V zlC&6#2TajDtskrX;Z`X??1tor*PMuSp=OcU}m|~KqPq!&7z*lxf z+p{zC^_Y)t#R!)!z^bTH{f%bSpb>M|z5yWjq9k6aBk>(}Tn}OLb)CLx_}xLi z`@fp)X&zj*oqsEU$i}jbu)YWkgbET(V$TK~OLI}KZ`FoC)TW!EL7hiGuLBneAk7)z z_6cv=(znA{C^~CNG_2ywovKb6>KA&f$!t_2Js(Tr!7a!+o`~b?E978rX^-9w zt?fiuEBP55*0FsI;cm97PIqu37_#oi6g1SErYY~&@yW9?iOW-vHN68!e4)P6qw=($ zT3p=#Pkx#uXr>}@<$kBxNa58mHkKpA=;8;7ka@+=ku{Irwj|f*>jn3E2iORlO zS$HE^hABXmyY}RmwJ}!>X+;|%ngqNxQG3;i2=(uPH71Gk)G4H!%zvr|(!DCT7eR&c zL(lN+J%@1?Q&Gs_+{;F+w(MWkYyjqRREnxO&We(fbM4tXVL^eB;g&9a8_T^dbx?>> z4bO8AGOu{tll2A>V%*DGX`ImuRcli6OEK};C@=LPeS?n2?Z!(n8ELA;h zX;DHh{h*%DIi{|JjQgY8rdP?db;^nSg~x(r666Ah?oK|Df)o*jb|PEPfR{h0S`*WhBR#No zH8`Ji8uz@BJ-mf$M~`p;h`WtoxRZB-=*{A^<&A}ltp&>8HxbJ)SYLQd2-*tVqIyGB zln&h4hQ9s`8C0o@O~-XJ(d+J`XBIo2M5Eph{QP=PRTaH-lGwWc$%CMC9E^_N1fjw2c z>|5B0NHsJ<$+`!nxsvkY`G=Xf1-%?VL?nyNI(c$n&!gcovaIcXZOm9$XIU z&YRUlQ@jK}4jS6Ug7j_;qMUqFI8;6jz4S>!maZPfQW`Pd;UdL78%?$5ViGUC*pE?B zMmoC=dB~_y(V9JXj!Tu77|=(v!T1???eYfoy_BTTN3uiGK#nczjJq@5Q^qW*LM4A) z?dPs|!nn)XzaI2?G07iDDvWezWr{RjWs*nQJz&=Tdie+-=5z5FA#-2gg=pkiU-pT4 zXY^F-dhUhA)&`Us{z^pZSUS`9WmP^mc@{YE%>FDB6|;AxTJGF3J9<56+Nc zWCC`IJBoO>5b?3vOEZ|rQnm5UD8jfC1ieFymqaM0!N&_=D^2K`Pl462_eP5KDhUqm z)fEQ_`!;<|zgV`RQs^=Nn?d|1*tqZZV`&2nm~NP4ka$Wds@+>{Hx@NI&nXRWeMc}J zte9jhUR33ILY7!f5{Mz6hj61uHCV>)DHG0!qqCRcq8HO?L6BLDu7<_8U3#+Y3$8i} zZvqA4N~FqKTom(X*O3~JTKm0fzn;4dv>x#m(c}TU-G-pkeo^2@l7+vfdnm08^?0V9 z&4Wte#L%n#{B_DDv|@UGvsRpH*RY2Sd9OC8SiD6ilbh->p@Ir*G4LGXrR}tLE3o+t zKZj}0=0{Yn&GFb#YRi?M zbMk(rL4fvR4^SU2HhN^zg7l_5tgVv1Ig=l0Th;ZvR5N?Cp_l(iC4RpjqRFQ7R z?!qRJ9LVPHwch523Vus-NZaxCJRTm!NP!xn3wS1`3amFa<@Pp>kENRn&8UTld#Afl zDT{~$o5g?$Zv6VtbRthRy!I#_x1?$(-`sC!TAj=1rQKJq zH@F79^$UP6QE@8~Q2faBqsO-Wy}_w#ppLy-H@hP5wHxieLviH8@r7&=BnY2F=2BuN zHyO1_Y?a0Z=0AIbUF1;ur8MPEqUMX=L|V(~Tp`;B_!qizKjQ+~@X4Iyn~}O&)c^+0 zdWhJb=zjU}RzNp;aJRq?9=G-qVUDz+DXSp%sV?aLN%tY7I+5>*iz^VyWm&>^3@oku z{yR9va=DPCDRTU4Mw86&WuK%+9mDThmCibDX-tvI=NX>1ep8{0e-g>VvbKv?qEakd&6_R3Lt`JrJDWUluyLmjdEF`XA&+8>=g^it!eso9S! z7nDmk%lhp|V6$2!OlF=@Gf102YVW z;vc=(xAM6bCzBalE_@&1y3U=RgX8iwJ%r}0+F{CCK#L|YY9E}qf}1ki*`-89+V6!k z-ulew#1Yx1-bJBdGKh`AzT>WvzN1vsR%+q{-$#3)NlQR=21lf9xBJo1X|eP>T53Xa zx16NxoUhfMl>6dS-iZWLc{pmdk9ppQR zs(`OE%m!SekTon8$!CWRy+5CA38PYrn5K#PT_P?$?m;X{#k;TXRFPkJo*HLAi*1NA za-4(PiV>Y1iKJCz9fNI+0z13+48lv9kdC>Z`?%QF=pC#dv7q=DquUeDa^da_1Jn1Y zp&_K@XykQ}zb5f{8j5S(9V6jOLv3(WR$P0^q4$VMHp!K&gmlVLtB-Dyr+mr(mMnmW z5`_guGzuMte$9smfwB22lsfY1e0$#1ru()W2-)JhL6P(Ji0&5ImZsMa%y29iKSHkB z4jK_x>zCmcLv+s|OHT8pKKW#p+J+t@nOs|mE_9@;B)KWv)JTQPuoDdpiOh(pehD87 zk}X(Ic`rM?5tv~vpWKk2ZT6IcQrYFulG=Ts6IbdA#RP4bsJ-s8+wg=z4Merrn)4oq zIs^LIwIC!&v(EDdaNpe5?rb)c=?AzjkJ*PLMB!j(QWeqiJ&?Pk1}lZ5<9Qe-e8x9R zjme#VvYG^6)VjBIe-`=nidFqasw4 zvg5W^BtZ$on895T$@-mEx=tVRqeDRbind`lMA%A;0xW% z*!Gqme*AOdW%TD|BSr1-xbQ_TMUhpE)IKhnFR)UGc~uMg(H;13M|;~4S5=o!5*c>A ztL-OHUP)>3K}Yayu-GKRv^7tA0;!Qv5z1lYM{MiPWaV0u?}m3PRSFTnXnGEz$lot) z`ldH)I$+%79v@BBY3aN|)~bK{fVlwSRj!QnZkwV@#?@4vG0qjwpaz$)QNQX1V^iXunOY=+aIO{U(MaS zhPFTJPw=hynPg7lvxdJ%i=9B(IMlqPC3)U#B7WxHCUlPpHl^Vh9S}Xz(ohyfb(v<> z3L6S%;r>b#8O;y}cI~KqIDl&BV0U~yworsUK#`p(841bl7%Fmkv5>SyESNwG=ns2<7DFiSqygqT@var!017mh~I=tHidp)tLx zFXoEbv7!&*DBwTNUOuY}0MuN&U18T!&nJrbZcfXI5~5-zK*n+kVVDm~+L3>0AZIvp zE7G2qMI%DJP5iN7xu5~1!FLdTFYdP08op6|PVmJIY=MApnmAUYOQjhgdLQpQ=#pfC z8%c{AP~jRR`yMwBdrER#oy`wv%%%N|=Df=q{Jo0wh~T_{x#LzXJyF^9gW`_+EYf0v zXOyLBnlZk!{fzXR-5TY(J1$v?UPL4J(sI8Y6IpK*@=KKk(%eC2_+B+JR4F5>cYMGU!u(DnaK{lAC{&Sd zab?~o%ia(M+Osov-|8gV$5vcg1&cX7pp7MX@R{kh6vM_M`+wi~AKYxn^ z{XcIiFC!%*D4ix;IB3Kd(!E@$8Y{~LjNs(!_4#%zhV109V;sV zI}@7@6uqRgfwhH^psks;$;So#mA+x)WF?^gbs7^}=Z{x>G^eK*Hn5j4u`n}t{s;?w z?EY%@u14_jR{sj$F#jWzBSFB*@o(W9){n;Xf6LzdsVV+j_U5lp*spp1D|_=R)AY|= z%^%sDKfA~OV+hl)q|M*j#Q)0Pd^DW@pJi`aMYVBOr}@G`+#o?@k!d($q(2fj;8s{} zZf?+LXIO#K_7HI0YinzPa$Watc8*xHkFSsQ%_3eXrtjes%lUsnU0jDT)`yK}wPyj<67=?mp#dCWBVex1$0in- zoJRU`GXV+ikF*GAeGbEBC;|oqC}v6^?oYVbH-?pQm>W&m3c7bLmZd7pBq8 zp9J&)LNXByKyqqmV0ju=AB0WJG_fwA4@j8l(T}+F{ZxBwcv|Vl_aprKcf-T?BKB&g zI_GD8G&Z$Hx!8}s^A$0Oi|bE*nPoxmTUP8Jzl&S& zt9TC~+<6z?;K!I|_F`7|XJaO2W=255ySmS{(|c2AP_&AVNyuO|CR*eK0K2;bvmJ_` z@+WZh2S?C1wE=Mj_17VUWMd+y#N8^F$x`@#l9G!Ia56 zk%V*0uhJX*R-lObLlnVf@*9x^&u&*Z?Dv8zbiuFXZ=&%BmVSsNtxtL&5tWzVg0|>M z-S~Y_Q<$HYgy@0+jgj7ZN!Upe1AvFdV2n-S9c!P6&4P^0ega@hF@s0(3&r|H_3Je^^VpHl{YXnFn!gP2q3hV2>CJyYJ8Xe=9B%loxF|Tk&SG; z{~``#96I|}b@{wdQ6oIf%I5S&kN;j`ll6uMWgMEG{=zu{IF88*MHT0!sSmjy}!<9p_%H&tQ7MXbf3 zZ|~xDO9XUpq_4T(OoLRwF-4g(yT*-z;?1oNZ}da~2$9S{C*Lp7au>jWSEnq!XVDH}1xjSUmlK{Kki*6A-sPgz3Vw2` zX0d-*5hXxS>fdNF4NE>Uw}gKirREMs5>M-b0SZ9Cm-FLs6gK1%M9b{}9vXN%rzAj_ z*52n=6CfZlNb5ql`pWb=4mAW6adfArDIvf5F2EK}?pFQU#r%+4wZVU^B{4KG7X%2Q zuODzR1lQ7qvwEWYK65g$tmYbA0SoMv&mZWA2N<8kTd*1X?io#ZKI&IpgSo>96r|Hl zuoI$zjbQi1!%^72w8{L<9TSJPK3>u&TH9t{1zYO7H%-0CRD3<|sb$Q7um=|06W!{W zR~k7{*oB&WzhVtDe_MKTMw*V<>l(|wDN)QQi$)Xf3cMSjI0ipfQB~Yh-Y&U%m^3mA zw6AH-J?<`*H;Uqt@F%jMqiNU5V=4HZpR)+kbt0Oi+CMMV^Nrw3&SSH`{Sr zKI^r#_MeJQ5NNLl!&S`~MkOY@ePVtE)X}?e5EIs3a%JmONn(njYUt;BO!KdHb#AUl zkZ>1vhIJ#~+rIGxGT_}$1?WFJcrsY#wdRQOh4Y$~xlODEL)L70rW&s*K`Us^P-1*; z*s#N`{5qWrImZs;is5){uK~`7Vg1}(=(*N2;FssKpW~i(4|;E9<0gz5B?`qWtrrt2 z32~@xbE8F}|5m1Hj6z<$cv=lrDr9zVMkh;O*`!I4U3G}H|D~8&w+D3cg&qI6oE>V$ zOUm+&vEDk45eNEVhUDILwnTbqGjk(jmU}BQ z+hB)QeTQ;`c&Fhgbykp!6}q}Bg{&FZBi1hJV{Usxs3~{nOZ2DX$BrN zUYUx!3*PJ1?a@pK2W9YxIaBO6m|ez(6v~smiPdwl?XqNiWSBscn$KTa4D%JLZTzG- zZiHs4mV-4_kz;lxdM{oPbnz!@7W17+1g&+MU;)u!U-+tgeF1JhyCIx9@$7OeK{rG_ zqanETcWL1IV^&%U_tv`SPD?t=a#(g@l)C2jmNp^=d-mIxzj=-y5_(6Z`+-Kk`goaK z1G^;Py0Lk)Sf*Pnbj%l4!P;%T9@9{2E7Q(Ty)^^0;hR~tmpRTg2X zYkRE17sN@XgSAA9P(eP{3zh3XZ{#4UHK`PJt7KPmrpHF62a0P5;n68#w&kRb1=Y$g z77wG-)4AnN&D#l^0mzQXBn+lE*q~X4@nbU8HgBXS&!zOS@Tx>*`1Yo-@)PYm+`5>) zRf~g2f5IP24bG1H?xq&o75+(=z;efCQ=Q(Oa}|45b4pLOPYG2I-85RTnVZX7b@&0n z3o*eD@ahc$9-0J_EDD8kUyWt#f;ihSrat6wKag^k5guK-YKod}?*$863~$*2LmeAI z$IVo`1ofB5URO z#o?kCro@Lgwk7xtj?0z4j6wMn=Yld;ppZrwrS_J!aAR?!hXGe(-((1mezi%Ox+|mI ztwWSg@HF=9*k$8~ws&XA#B-b};Mbc$Kx!-)&yi|u59Bg^(e4{hVy$iwUOSr}>wPGd z<*QnLLlowsM>m&)^Y^u%KoL$S@9lMNhO2XBNR4i-)!Ip&3(KO`3qqbkowf#-?#k8P zc0o=!e8e;?xPzx#R>*}6njo_4iB4lpOy$vLf3}_eq+si#*q$`h{mJJ>EdsUM8R`9$ zl2j^yVYXLRgh{wXYQWZoJ`8sOoVMB|@H)Ovm@5EDDoAya5bP-g6D>82T|-r&Fw^l2 z&+Fk?0p}e!o6||?41&fckH)L15U5P4x=r=n)KJ_{NddA0sVcxqhLP~WqUpG$GgX(` zB>KW-Tqz+o=q=@ogkr_T{22jYTf8}W#zl=5(3uAC=EX73s=Tb8%S6_`S+szgUKednmO^+pNd=^nDQmf3Jyd(jZlx`@Pc035#CB8PD@1>NSW{Fkuxg2Ow18>hN#Q zPcsqQZ=cqQt9G>9^KK$nF^yc|%#{MJ88Csm5;?_zCg^NR7H1~5P_0N%Lp?Gr z{=HjAE{PYrs!ramJF|+mWrzB_;;c=`sWjCAMzqWvG53`+3c$nZiXqa+!XAbrCbY&8 zhxKY~K9q)J?d_OggJ%dqS-G?2x<}7CzOQgm@m+@uOp)=Up^$9{^qXz;gDs-e`ZgFi zU5Z0&xdY=k`#up8MR!qWTAqA1k(aKfM6TQAA%kUXh5i+rxctynF(j^832I{Nsm##Y z$GUm7YxE)n+?s+v%phgc5cs>`4(Y16l);IWteE;4JjAlNS2rkoySej#n$U-=l0Wy> z;%#RgL~q&1mgdp4rAU1LwvR3ys_YOIx!+8Sg{hmZgjh#X|utm?h=*%F7pu3pQk? z%zYNRe!iV`R=wrnNd|*WdY5KX-S*B5|Bs- zT@tduG4nuntbzSL*qB4W#_cF;0m>_=raT=9q>Lsx!cd;=I>&`Odi%!g161K)E6RFi zQ8a~S1k*b6hgPm(LP^(?)Bskc7rH(OKWZ4jHk@l_uwmz)OrBIITnmoNb!G}hEYrg{ zZeN;@9v*oDlwa%paX2wy>MWD$_Mtz=MLV%ePL-97;2;`wwTduoKX$q8F*0wNu$$$p zJ@Dl;4$*ZBNhS~+;ENok=4Ib?^~#+;WghpDnWu|_#Y#@)MW3?Bx|kbEE+KRyd|=37 znQK0Nleb*tpO4}&Kh)|#0Jg~Ot|^Z~cxb7AV-nT5!**8$Xp2@B6iflF)>`w%edKNs z8(CG`J$dt2RJyJKZ7p1cEo@3r#d&Ml8Y`2!f*zR26&DhR!nF#)o~{`(8!M{c*sFF8 z@;O(p+Glnl-)N&@Ft7w(g4t;$LaUNAN@h>Cciq(1_Z%zc+?KpR8m3EXu)97U43{lq zB(sB`zA}6;03-=pMFF8K3gqdC390B<-RztsxaL9LZTWk#t%a#=Df2Ly*hSNC88Lx0 z?M*Vj>^#SluM_u^p}@(3lX{CQ*C`P`%vdv18`xqcKmG_DJxmkTNXX7=M#I-h;*G%G zh8|wkotImov+|eORxd5Hp)WQtefU%FKAiLwu*cg9!iS|G$Ok#6cXze8>qj?8c|A>! ziD)cJ!h4-@zcSlMMNO8t^vV+k&51UKl(-`rvqzqUX_35@j5?uUF|IJg*W&l(jazP> zENd_={;SFkyUo%BR=7mhRa|*-`L7dA8;{EXRx_7LJH*EwjK4|k;(x! z$cq%2;pO6T|BG6+B8){0d!Ej?aTSQCmc%o(@|4JdY1H$%6HWiGHQVxVKV+laT=n>9 zbBKXI(j{Bebwnq>U59gm`*oH;r14~5CnjnhL9*1R5c^!gLAN|Lp#Ic^7cB|4Hmx$l zyVG-m0qjXUOFT9S#mq@XhxLkk|ElxR;`yW-NBg3r5eO5_LhhQ$^O#?j_VC;W%DN(L zLve13;PO50(otz%LzPQTLO9CiQ>q3K&52WQ0AB$6^e**L0cwF4m1a*f7?fSfAN=*e zid|y8acml#`NY)pr+Ist%Y%t)Deq`G*cLtbiL74zGkRcsw>PbsPF|nnX-=Ah`6x82 zJLC9(HlHO0$&?cdigG06=s+skj+6U}vD%Nt<^_PdrJnAoAn}N6nE9EhP(MLD|jkLSe-~Uz0gYLpkRDjAqtG99=7?b0M8;|s6 zB8*D1qj$tib4MV;_4-AwmwjK`CQI_*gle8`pWoiTXOH}hJ(L5CS@6c24{K=El&8_d zN*qck^%;vfIa=+S_K8>)ix<+Bp)<m@4}f<8E5Ia6EO*&p;RO5F9ki3 zK_sLGT*Wy_(nC8^JD2p~Vcc7-p8Ylo<{tyd@Z!qHHEYde)eMaMHj!*P2O>kUcrvAN zGZx{tDbiHv8#+ZN&r`fTR`v>dS4BCM&5zm2qOrjlH}1Je1^D8lwg7pzzdVQ!^#PPd zTIm!8tf>3}VHhr17UuEt-E&Sn5VrVIT0*$`TaV;6JQPC#hUGxQfQJ@CHPl@?yh-i^ z;|AB{4n||hneHqjVVHC%2BEnp;uJmnhszJWRs~3qo-lUAx!JJT%AJ~|*mF8y75-}$ zZICTkAjaQkpb2s=Ax*wc%OmnL8m%jYUwuiRkY>%VNO6HywUY~DCd|H^LdYdgx6gh4 z84pHh5-`$PC@RF?4aPh%ij~-ms7t>dR1!83IgmmeP@|55!+e3yZjLh#SdgZUoKUSv z>q38t$g*bWKcp9%e!;Wr@ucZ~`REwYr-Mq(!T@C~HgEcevm6JJ zTubeVnR8hxAhI;~T4Yfra@Qp|)S;L>RZ8$DZV-h_t2q7kJ15qR0k^lzAIZ~&^W<0% z!#I~ejTRU`_}Xa}VtJ9z)fy0fBHQ_5sGw|mdhQ~`^UHfaYL*$Zvf+7FZN4nuY47602w2-odXwbON+}-Dav?`D zdz*OK(GLr8gaU0D(q}pFETZ*C|0L?_n#1G_BOtq-ZGK&NKo^b6)(fSY6A%t%{V(oV z_BLM2Ybm@nH7Rb{#*|h!U^)5Zi20J@f_}|q0o2mpQy}Q3?D9#BqA<@{o|CUX((CL2 z&k_rH{KbI;dC;U;b4T>{4}CWl{XU2A_B$^2Li1p>*qE}0HeK#yCXp}*u-|8!REMLt zTS&$?i%CiA**4RyPQ>stH*5(`{BDn5%He$4XPgWkQHJvV zGm%xqJN@D>N*k02z)nAk8OICeUiNr?OYWaC(5FHILP2U@Cu?WYy~#funuR^df(rU5$kQyFTJ zw9`G7&KnSW5}eY(I2$qAn31Q8za-(bEjOb9#QkU=JV*POGCEJ`SD3}r+UXOb^p=o;I&2ov6g?|X7IOOk`rTI8lNX`-1ay{mH*sJmsR zJ?82V6$eA&5CRjL4TVBeCX)J*M2Rt9dYf;5-&x9VOdrN5u=UwMMXVv;L9{xS-&)qF zX>Pe+Y&74PnTBISn{}jVqFXd3gLk}Z{p&cv&4ChKg^SZ(x!c5`T%Tkw7ffqs^hq-L zz0VaBL0HnO=b3^=#{uFFlx8EwG)L}cdnGQyeOnbbdK z{rw%rS8=YoirQ@r<~KuVqvuxfb|7vlw*Ae^I2Tf zJZDmN0P&F|HMyJ~bGW{Ikjmy&{RnSsjQjj+ z%-MwQ`OSvj*O|{IhUS!bT^Uz;JI=MEzxL(CRvrFs!32VW6v0rV7F9ckx=*36RnuK| z%N_m+VqPSdZC(gdMJG}c29DUd7e^JeFltMU7jR9z+2)tSku)X53STLyE6KKJXab{h zfdb?5qJHey#}V@m1EP1HQ7qCnLr{a{@+Tx+NL23{HK@Cw1cCDnD{*SZv@CBm)5WKM z7f(~`vY&l3Nl~*YM)#K0p{Z+ujrBxfQeGUCQ+mh+qj8BAM-1e=B{^Cg9rJNlGfQgS zE7!uezP5HQ_J|j5m}?Pr(OE?9jbb=Pi5@K!->b9FlE7tdvqx7!=ObhI_|nlZ42vRu zUm=9R7N)gfFQnJ(FUzDHq|$x%dpV{tSP4w-WOcpufJgcm)=}Jj*&^0Sk^X^9Xbu)Hlzyxxr@F;IN*$QQS~v!k{0tJMT{8^ z);g_CKJY{GHSkcKB#Us$OMDRBb?x=%yogx`nA4k*iemcwjUCzP?2`m%tM`z-l`ypn zYOOXy-}vuiFskZX6?AS%Hd9aFE*uA*R%t{p4CD8?a%rMnxW~`m0o%FeO+Zm1SAA_@ zPI5?Hde8LDJZkO10-<(JBn)z25A-XB;x7ko78$O{KFbSts@K-Cd zOlMA&>je7Kx@`9!%e3R)JC%NmojMginhHQRYG#K4J#-j!aLiN|5}^2QeDtu@Yw11j zZ@SH1WiC*Yk8O$fNcj=+L%%;71c}d6=N!=m%@1Nqi)A_KKQ&bLaey$)*}5_!Gc+ftVOj+J6%8leV?W51j>*gzJDw z@M%3@h$A*3!z)46_C(d~1zu74fW78-oTec62!%JEe9&B#F`|sMgaq~4r00!i@=NLU zMUz3ZYO22TetFR_`LAfG%hi;P23rzS#He1@f8_qABl7@)Mq#du@ngPxy(@4&nE=U@Y#RbNx)-#!ERTVjb|HdeStvX-ZWEhT|sT4>6JJE)rLqlf*rP^lV=9C(iqR>(Yt z7Nwt0a9p6q@2_>n8x2t*I?%*l7JS~xb^BCZKJ1Addl2O?5_g5HRi z7}Xe|+MY5P#p+K%rD26B(-p^$^@pAQIKdpYA5w7L-w6!STpqdFZdxq$Emx`?O-^&R zQPryb(*4^KeZ|*S`SUbtIc1P_a5-&qDx!`8BY%*nIi9lvA##kO&8^PPCjsOzOKH2G zC;ivF;~}$ucjt^gA>`r=qS6Bo0<jEA5Yqu02PR+nY))vrm_$zSD{<-rS>`r1YTSs{&5&Y&yQ8 zd2DAAm*LN31?D$dRsITCI{ou71smK#5%D!`{4!1i8uY5I1T9N)GLE-d?X#WM2xMG3 zVc)w>%c-YWk{fg2B-}5LTTXkARI^1GG+Nr4CNCD@1-vNfC0A&ee->}~2*(A6u+G$O z=Vm+vi?#rFS5B*{d2m(4ig8Cf(F%4?^_7?*=q5?SfwE|nM~YqID^$XRV;6L1C+SxS|7Nfn9j3bjeJI%%C!KV;L%|VY zU|1lNQnMwvSS@|XNcnhE*4UXpm_1Gq17IAgQZZArVvFbViNlN{!9Tb?v}e{ zP59#eUK@}8nmq)X8DmGA#XpguVAV2Y-YaH)-6#ECqXmnZ`1ygsVK>L-4n)FEjLh!}F1C6GRaTvpl{Sq(D?m@s2G@yY~i-SZ5@OtknM zRje5rbbqs+H+IOm4%QuGvu`S`M}A&QABdpsUPTx$Yl-KL);f7c1Uomj(TtWqZkR=2 z1s1rhosgU0)yN@syPYkGF+0Pj1}yq^cj`jb%l3#$DI z57h#FGX19+7C6LQH>j8I%VsiP)Xu|+EF!Qdy$B{62I^^N30jFg0 zvUP=*k*~yS-WWK?+yX!#sQ8JJFq9JcA=zeokgo#mVU8Dy)81p}h$lucg*fdid{)Ma zVMK$eEcs!KMzP55xDnfvdhnrUSW@7)10DzR>af*#& zwzhhutn6>KW#C z=irF`*?d%*m`h1bmxd~Gg^bi+<@!!tQ7PL3JFleo)J-M?&Mn%q{XGV>P@*pXU;a<> zUmjnpQ|UOM*+7

    0HAIC;?0ZI4-$@YJ_R+6JYPBg<`E)zZ7*DF~2tJl^8eDxmD4I zux=vRwSFGkGOrXo(@>Kp5N7SnF;~g@Eh(S9l>jjrA5vZhp3v>htiAAP=xlB zSk!u4S*8G{HO!j#ao3Lx@2W)VsT2yZ!4Md=^*#7f=L#d?&cTutMMRz#{cnDvnqYrz zrJS)mrJEM?qu_BnBiH&NjUK7j6B?(Pf3A?!S>@$M*Jn zSr3w_1sMm1#Nu`Lkz)VK>2P@ALRnW#L)@lz>dmXblNXQyO_1>!`xR40fi`(4b@=Jp z`u;_GjpIIsNz0E`Q||QJCJo~0WUE~E(rcXaunf|<9tO6MDh#XG4vj+vs-qRskI!@h z-I;09E#fX+BR!=;JmiP3W_e~b9W+*Spv|JSQoa@>6Ce+%`MDNyPf+m@XlK)k&?I1< z{>>J&Mj*G;)`pV`RM0hZ&Tou z&2%M1^nm!^q}g~Fr`g_-gxI!Zvb>gaAqiu+VvH=f&F}hDx-}m_BSQA3;@CwFXD_Yd z*ns+#jo@-&_jN9ampN<*aEuSfCa!3XYTY~ zJob0*dV!&=H9bh}v;9$Htvlas3ZxF3N*;9y7}`&+Fpg-&^lW@5s*NzS~A zuskz)YJ|siAFu!h0ub{4U6B_cgJWV~UIl{6b&zW&iLWt${q3}k;<&+wyK#|6SKyea z2oS29`#Jf(s>S+hc`y*`pmi3^F{Qlc0W{RSsZ&60cw~IL0CVB(RE0_SxW|_PlZgI z^_gWKU@dSNL)7gcCUf^5rS3JBiCljLlYF)z1({_lgcYS89)*!i1j$9qz}-PU3=q>h zdP)}7dqB_nx=%+Db$xRKtFPtGWIE4zBA#!RLKzzc7I%P7k#F1sr7-FhS%pe{TTz^< ztWRH=p8Ni&Fq6b};ajUIU$(Bd8KF;{OQn15X(7(K+R zIwuPt%~mhVi@Tp!JmqzeC_4cAlwH5Nw}A-qd(fP2>f(?FCDNB(wFshlwJY2FS#ETO zM`^3z=A9Ifu(EXlnoy=0(h|QXa@<@YJTD0dPz=8c2JdiQR&M}Gp;mJo(?1$T5F_lg zE+&(otbvS{?XZ1@P8BYJjP;hw7>ix4N&87b?(?Uh*`581Jy+H+g7SQay>N=k2Lu)- z++C4}$u5%3E3SJ5mBvw6S^mx?e8RbMWperyIrlA{Fp*qB}NLN z*Ev2>pa?3D+~f_9Tc0MvTXE>rd2dzWJs2#Vmf(iyE1AQygBRv?7RX_7LF34Lq7B)e zCi-6UsNTemmYbF?tk$GiGO>%C*H~o@QC>3Zs{y89DWlh{Sbit|^R|o2*%%h(H(ex? z9hs8dZKi*-hI6@wVg6SZpoLf4A7!ZmPU*XpG#dX;KsqU~>Tjo`xg-7~34j6y-R2el zu`~iVRUt$hs~l`)YHLg-xEgCMg!ygD+1XamJ56o~Ry5_55NPA9GKC?ot?(T^&`#eS zU@oJG_yp0n{7~h}NKw7X)#fJ+-}QbR=0o7d440CL8q?seWr=V}*JoE`+=;9>3u;%f zv2$ldYY6U9Wa6ZeM}jD&Vg6<}q=SaO%Eb%EfrHNI_9rL2XI#-)|IN0TnZvAE&1h|l&7-qK4=9I zfCRTJ(oURQ*0D_obvcPJ=qdK;&a{_z9r72U$Q#EqV1SiZyY0AVAUc{!;=)u?+18&Q zuaY3zHniDP==JFZqT#M3DP~=wi$L9-JCD0+YHeg~OP>&;%NovMm^=e)uSs&Y&Gis1 zVygAfxxTRSF?`e*1gtKLqMyx97tE z(>-#gQ@0&p;JZJ`HAZ}LA~8BJ*3_xIeP>g!w5G5Wt7$2aEm!g#ur7`RwsaDd0w9Uq zMKR4e(P6>`6atk6dHSdmNXVS6kEw_-2V&W&k^eTnRdL3F`w;D%DGs-LRMuL{PmXPK zt<$_^imO`hs9X)vC#?)2P85A^t}&^-mQZX$IZcNA`atf0XoySh>;X~TYPS0NIJk)1 zhFGF0IyZ}S#v)A(80Lj#)D&e*MVw5_nvS!})q1SHS%td+NyW9fa$XX@zIs?_;&zEk zK-{?Sp@Nlq9+$y)JyTR{y=oXvKo&6#sQs|sdQqaEF6)PgPA&h|iiOR|B}4@CV*ibM zFquaFoQ92(M249d%wZ^Rt(xm(C{rx(VQlvEbRfN~Jn+a4VVTx4s^mfv5ru zP;NmuaBPw30Cl7iM@L)$F@lrDgmBp@tdNiqS~rBPX0<1Cq5VZulb@C6ejsv3wAghi z0bGi8tu(ifjoP@jjeH>aUE{ho{*%>4miiN)3U@Qg?h|!f=acZF1$js7g>KG9>P{Do zVG0yYe5uhoqso~V2&CJ^zaGsx(W$-O#u!;c=qa5J@^q?$-=0=v;ZD#aKiVmCwn-lwMj&N)$5Vi^^{)797^I|j*`vZ9|%u&XQ>#hmx9 zw#trSVr)uQGwrw36YuN?#lT&{%b$wljBg>^9%;Xok{pDt^($4uub)V{xmp(~@2+0p znN-v9{9}#Y#WcL+nc?N{_bd+0*p(%|2t$3f-NGS~-0L08ekOkkzT2*4znckL~ z63zpx@ig36BQcW#vkQzz#wx6i2KXpy1@xR~s6S%>DbG5+13r;nN@SVht)%E>rx~at z83v|im z2dj;n`l6S>F(7p%mz8y=ls5Rw8!=}xWDviPMUKUE zh0N)3eI{37Kdloo^?iV@P4PjjlgG+I)~G`t4KunvL~l$!B8$ z(vF&qsP~sPS$a7k_b|kKjN4R;M%5-Z#Q@pILFc)-#bRdJXF`K|z4ObiN1P>LC!_@X z;G^*f>T;=AT#h$+7Xn6mCRKHc^FhoXS7OsE*A)@D52Gu3;z66Fcp7k*S~?ZeS!x@ydK^t=g(=~uaqsiR&LxF8Rs36& zSVy^i;m{5{y#vkJ=UVD_gd`}t_I8LkO$(1=HtY2;x1#4@M|XN3b&D=a+n2Q%<$NoDXYd4fV4P#-W!tXZ+RG({^LM8aqYP^V)w+M`9~X zYI;Xv;kPWtpwPwkRGL(iD?50RDmK~yc=|j2VfwZy^z!k`!4DM{g>qgWlrvs73{OCj z@Ew}geLxF}GUcOni(h{WiS~B&n)FEQ?mc6Xa<&1hs7w?;3ifwJR)K|_u@PZn5{QzQ(-{Sf!I;V*Loi(@On5UMj)j7vaAp;5l* zHa+gfvXM9cTtYlZ_rx>`I_(?eluHoL9QdNdmH+VbX4$>3K+{ckf_W;A;p9--9p++Y z9;7*bQ-mx^vABmxN#uFWq~%wkBqn3TW$rfIvQ=8nZ9%u5mA->8>KH^1weC@i{6yMn z0b5M&qa&>e_eLv2FEYrtCj`NopLYVux9oY!Q_ z5*})Z?=uK!HIMBn1THXh<9&;L zy#e2|tdIh7HA%BCYQ>jxB;o3Z$u963;)nFS96+?@A7iCf* z>$073cc^=Y2}@+g;yY=l*9`)3EbfNo>f4#F+xY4az8t3F5<-Bx?vMl%Jcn%$CAYHO z?+(h*SCfekaV;XU(0Olk+N-p*3wNf`^T4*X;+HD#cAhfV{2NwfMtwT(Vf%P0z;8eu8P~+9isJhtUeb~hC9vxnnQ<8o$|^aRNB!F=R$TBI()XOUC0bEkV6H1%DgHn?!j+ z5M2?4>#rMPlKi-A$I>cr^h);M0|@=ITJ-juD^@N%2@kUxVC;wxBH=k_xypBUN@wtt zs0U19H3?wL)sAeW>ShxmmRUH-4Zn)y!_J#`IZcJ3%7}O{7QAkLl0?IkKNThfT)P>` z%F3JU#p2o-PBNy&Tp@~pDoP>~lr%Qy4-8Gug?)XVdLeael8Cw}n#y0?^f{SCx@X5rPws!>fpojo@QUm43~ zYOIfnzBSgUs2=XlLXJ{i7@cXKV={?LCpQ4y+42Vb^4BK5VQ~+>!MN|gZEtLYzj*tA zMi8v@uFVXM^=$n2^;JbR8i`Gq)Qq8dzwm8&mzaA&%ka zIR9aY`}yVnlTu~)XI=lhA?{zL|2xrtQ>qOAEZu*jRDbZ;|ET;!ss78|_wRlFMXCM^ zg8g3@;!>5>GPIkk?8%TQb*T8rRlwyk_pabJAmH%C{5|vJHa5eN$*(lDC|gh{uT;WO zOpCUgzpB6Ao_je~Mc>zUiJnvUv8V5&*^efid&NqsMrrgRSVKno^s6qku(SjK$dRRu zX>0&c!AMyM3lbTDFCc^Z3wx{J@BvbC@lbzKuQ7TiA$Il<_jZx?cKb|##d@(jGxL^M zssK#Llefh`03g6Z85aPdfJ%RKads9D?QuMNO~%E0N>mClB~nN)UAS<+Hl1H6W|F{0D;1iY!h3* z^&o2dK>zl^Yrq92d}9`W)wfh+baqm#?7F^ow>|h)1YqYr>3nDXaZaRCzF1OWkZA8-+X0gS)! zePjUSo?z{N{c-RO#RN$F7Nq^f7sMMVr}`!c?tJ*q;Pq#)_|M=y1Q_ne4hNoBbsGYA zmitp${t)B>$X&t}aGU)S1gGWj1>gNK#Nl_GeBuY9e)@{R?GEnX?g<-d^jyN19O`0= zSRve8@4l1z-xz^7hkS_ht2OzzvwtJ*@Uzw5IyCrwXrc$=qai&V$hHqNbsdu>s(vJwE?Vdzp5# zZ1dMo)-xUV1?+~62+CmGL)QLoYlS<$(X|2*&eQ@QKs4~0bCP;3$A5W%iqzP>fyaFMx)|ZIv98#EZ|#ThSO06BCzwal9Sy24&Y(W9#^^+I zyCN^=_ihqPyfB*?#7UPjtSiecu(QO`D!k zG~`+HUQV!s@~G$p@#jv^wYhiK@fz#?EMYfrbh_(hVvpmdyG5~O<7&z($Oc=$LgBgF zgE2%+^6Oo@k1YEw)6z9LQr36}e#$16U8+tYQ)j>4$=v1m?)0piKVf`HzrRqb$Mta~ z`W>gLjkTy8aD1MLI;DGx(={j?W(9+uDZNFfm31dj7k5tY&|yv%i(^-_U3?bBf=ed$ z%IE+(W5f3gaOFAhDG2a8QSGOP3CbdZ_5^RL+|EX(5bL6V0S&M7Q#q53&ZDUJWh*CmIl_zjYJ6d=`MX-2xUK;@$fbLwDx&F& zR?uR%uDuvT$Ffxt+bXCN5T>;el_%c6lh>Jmu6^7}nbo5zom1t&APsaj5?We`pe)KH z!cT0LYZ8cb#}_C($|Q;v84!;qTz{#Jv^(}XNmnT6mg#uBaafux#U^?CYCKK&$o4N} z!jRREEZE<>=8sQqx@`N=A#AXX0R#QY>!2gC)16~kKt`A!`)EBNdO*;hywaw(q1sH% zB4mBth8VsDlODN}>M}aRyKQ{7{}P80SNeO+8mNaF;jTP4s6q;wUAuS~G$!TAdW^l9 z*BR_7i5(te1Ldy(8HEe}T^wFNZ#c~rL7s#wEII^leXh6ltOSbjU@P1f61(rrniqCf zO^Iry1WLYY&(SN%1umqX9uXxqx$y!H_aK@!tkkTYWP7k2TC8H>8G2k(W*VRf@~&Er->rg%U!yrW&_ zk*^isrhu-9#8M_oP*K_@c`&lS9;Y4dB2XoX_6Em@?n{J#D$oz5P0uE{-n_s6sw@8t z#@CvfA^%1IT$%Y2rlk_Xjq8JMuT;%Dbt(D)-dyT$N?@BxWmdLUv=E%%*QguEhu zbqf3pcN!jJsqo1=3Aq#;zNp)_|J-v`kHg7mX_*IO=_YU3q)hK+dBnvD>cG);45d~5 zQPy=$(Tt3a*y%73cj?_}9DlK&)AJCDH@zua{-LfEW!A>)DXO!y%Icmn;(u?#f386w zZ%V+2ZQZnC(z?R8Exgg6OEhiS9M-}kW?9WM6evE_vGmpi*h$`{<&6c+O9M>yrLmR! zEdC3Yb{R1SkW6$esaQ zg|Y|5`TFcyj?n-{k_>+N(qKe(%M|l6kQTk)zAHLZY0<%q?U~HPO;3MLX;X(>fdCuZ z@oK^VaZ!Qn=B;4v)WY&Lu=$D?_VfxUpJc2DF31{QO5MIhK6aAj;Wk>LJI9^XzWGO9 z-OpemEDi(3;9$NL@$F)s_!^PM4tSqba2~nrNa=9ekf<|GW4F$ckhWcXz;ec7WxQQo z2ZQ8cQ)vC#Tuc7@O?=-p-MTb%yPdFpd<#Rdz9Bl>U}n1S-8|tEyr<} zaqihxPcKRJ+^Kl?HE!bxiac3v1%2)o{+qQ_uJPUuEDNk4L(wE&e3HeOI^)3mD^3@t z!UUyZweQ`(g0cMCyrJF=_I-0qrK1J5h_rzfN@b{)-3#{ha%*XsZSE-hCTVFv4^|HE zWTth5qi+^T4hm*Z7@&r#wMw_;R{}}rFxB`%;vN>;D_HuHdOZc5n;z-3cg5_iv&5#; z%ywlk3@^VBJyTUB%!3LaO2bTzxxPEGWK0?M$Gwb>3N~K8hDSg_r8KiZ%|ym4h^*pS zi)D6>;ix&cRnRLzrjT zT~S9Zo-^dCmpAL1x7DJwM@flSC2mT0eyJ+N38vX)kLxCCDH9`8O6=`%+==pj!r)a? zNn;h4XR~v&%v6WUh4j5N;VQGGX}uRo4?(3r=IORdk`gU`3qiX*Cb}%K1nCjR)Fgk6 zwu948L8R>(7zBvN{|yd=7o|y)u&jH$3ZIN`FXq-0JZZhEF?cAPTE7upRMcF2tk4GQ zNXZg9khDM5()CUrJuripMhMz33M+fBkuhFE!?R3p4_Xo)9o*Zf_~wL@)V^Xk&Nx*=&%@X+VT`J0UpHF|m~ zC5qgPEZDf@#wDcs&Ha;WM`DZe_G-v~Wr$dJ63XtSF908VMCd{S=^1?-TZp&j5HHwY zH8L+mR1L@j+q!?zK+7q>O<%8+{o-a;ahM?egs@+yz|sRA?;rym7So9UCdkFS8PHX< zN$??SF{UVsJ1Nd?&d^cce!}th_oPfFl-}S6geddCrqx}ATEX+Dur)TPtEl!G6?o8L zmp9`$7n6@2LD#1+%3-U~u{iPF2RyPDPGG$4RY3VZY&AFUf)o?G#|(AjC1NYfaN$$F z_jbKFY-w|29VO?mtiD*vn(jII*9R{Gyu z1LQH;6iC+lB;;;PDwinWb(r>1dA*Q{-yq%H}DXLv_E7CiboMD4nYX zyEu9?c;HV3hi-2s;_H-nVD~e1iEC!W$V;?})qWofBVRhD89Olo$J&Mmr1A4gdBZji z%6IAZx0LY~bH>f~vdOVq{`lbs+?io2w0Oo%yolGfBQ=m^REI&`wlhoe(W<|` z;S07(QJ^`jYKZ%m*Tyz5*3wHNE_{e%W2#LQcI`*~V!bPU=j_-h%Pr=wB-@ARxAauF zEG4#$q2+2ci|IjiaiQ`hSb=vz;x&;o$W2r$euPeU_>M1O7-WN=xJ9vU8dHu`21TN! zt5?8wfAzrtk6s*SX23tH>2Mn+R?13eWG3jsh-*kyZ(8ZYf*=Gdz<050`ndpXI=>w6zB;NduW?uVoBsWFh%SXx+wW(x-e2mB)<2XM9)*l9~*{bi) zTCMXp&e~@o>z=%y2flJ4gx@$q{vBGc7vBBK`erK#P2-_D7+F;DvNB4gBrxTemab-O zfcHHWbNGy%Y1@M>q7Hf|)zqgLm#y81ifu#KOT2LWR zut*+p6O4@|5oU60@UgAUB#A)5mYh+YZrT83I2m&wyhhAl?3C^!5RGHhef}U>V~THp zu{lOdrw%zyD4l5t*LvBifV%fVI6hFK0cm;FQ2aBTEh}3dS2EvSbR%*HmZXf(kc-T= z?I|Qjo;uwvCOjIM44B<5P1#mzbKtL@^EWbtXed1!fQS-xDn&{^SwP3qaYh=-3Y%=jCbCt&@WLY}kC*VE| z!+7P7SLKSe9q-cb0#0I^&urL+AM;~H&1xY`1T-?`F!yZiM>Y=Z3^&S-2&kQ$KWbD! zlsfVm$^pKHbujdO4VoDls6nUlZzRlCXQ#3@QUoyK-$aK^7D5)L5<|={G;m}$o4s@^ zsoCl9%ehhCdI>ch;AVsq*Le%{)U}7UtPQ_q5?-ZdAQQONU06sZW;hJ7F1f2V<@L0f zM!w@~ewx(iI=E9F9ehhx`2aCHhVkR}!)%mEW#Q9s1~IqFS>{Zi9{r^R2iTzAkm6IY z%W_{GBc)TGhYPbOn1aHXu5ISB&P``V-jYIOG(x;DicF`+M>#|{VWEX97_1Jl(~X&| zSB|lc68%nW|CYNM5wewh908?lCfqbMnq3y3hsyAd^&4;rL7M-5fjy^H*F}J@|Kjt6 zqcEi4KEz>B_f01K7*dc~>>W3kIYYTeqG3dbh zs*JA8JY<-;<2d&kn4hb%;JF7b%N>C&Frqbo0MDV};t-EK_*?J3RM*A(E9SDrQ;i<3 zy4vW9a8Oyp51cE`g`U%|ca=!J``dxlSp0d!)kFv4hjtW@SP^nR@2|#rvU##F?Khvl zI=Qbek9;ix8hTH95Q;rip=jfU5#LGrs1%vsv?eL#@#4pWhD1gl#Oa1 zGNehMR5(Sv;uC>$fK{sG0A_;S9&yzYty;g4t=d|=j`Rk#DG*p;(%r4@aI4i3sr&Ls z-hY{W+E{W3m*glJu75$#NA|K{*=^@!@3w3H#n^=J<+Ahw^NG97=Fmkfg~J9F2!!&a ze%w_=B$!lF=YH48M0ReALP~G<;uMhMxqY)Vlm{u9adLMXlXsEM^Y_Eq`oj-w5Fw+R z#CD31FgNUvOZA7e>6!#viVy7u_T2SMq{j5{FX(r!uq7kPLWKXr**O5o(yeQ{ZELr!-L`Gpw%xm} z-PUf~wr$(CZQIlTf9{!k&di;dnHv=utMbdWGFMe*R8&Sh`92kzH3HZUZ$h@tM7?Fd zR_@cTd00{yUW|8y5nQ$huqd<#9k*O>_w>vSBx6izD01^@a~$=@5Nb9y@X*%}`+`ke z46X0;%B2#jHY?Jx%kDiLM8l!jr%fgC!q=7EOzPk=YoQkOJ#BxAY;D*|_20TfmJKaO zpi+mz^ouVcDXRLGSCDW1Bx;iM#eGtQp7MGQ&Z*uqFeOV%4&3h;@JC`T=!`V`^7OH! z)pe>?Rd=JG^PVl`)LX3;l8fCmopJ~+d?Z?vZQAoCOQk5Zu^??i z8nLU*8!^(a)(dhkxQrs*&uDTfl3+%So$xb&$FreW<`MxVVa)lqZlR`!uJxO|_HjV5 z0gX$U5snJBtmtr+Pe2nI8&V_F|J|GNWH(y|@@$j5Q%$;lqosru-+esfo>aaHr<)Psp=f~$n= z^!AN`bd8lDO#8>2byV9*pxCQGL-u*4azlZXSSqH9mC!!z6xO}AZ$|hQo4Vq?K~y~m z_Z9G1$C@K+o5Pp1g^Rf$gqzrEQt-=Kjyh|fv+b&lLT=F(D#)Wh-~oMb@28h`6|wQ3 za^7*|MU|9=%Utq2+SyM7;CI&h{hHHk4DEA_8HuBbUz`7 z%+j<*XbWJPl`yM#yjUHh4*nULJ*F{k5ry|r;Zq{MfBj@sF)KDg< z{>p2mt0+>TvAYPq_S*=pW=k#=S89}==OLpf0IYX9vMHUgQM&+x{;t$EU4xz>jyu7R z;byZaX1hdPIrwgf>F$etp2*m&iW;Q0WDFug=A?}}MD{~oR`!qrjhcMA$%xq8qNjDH zRCRoahAE>;Qv~U_8A;m}2n7-q9OyheLLiDYh*grN(=_zAP{#`SlL$w(YbVr}v@duLZin3h%F zIsaKo3So?z6`TwKeISrB&MM_w?Ct>F?fC?^1E3 zGUFYbaV|jXH6E+7AOy>U8>aF`7+jK>}7KU*Mem0p0IMf3jVzBWvxs4e6+| z@7`qt(zAD)^ys#77~Dt5`XQ||1@0f5t47uee!Z6z++=cc0=3513%6_G-+km`EmTRH zOE;|EYOCFyN+`A3d|o}H2bIgvEUS}DoHk!L`EGi&q0`4zhG$gniP?OtJDmD)AT55ZF&Mi^WWIN#{6f*|n|}c|=p=3=C1ZBHWDWLc zw!$b{lpdz&DFnLO3L8CL5k zZD}9609X|>U!NL9k;xH5ZY02C77Xv%pMm2Qj(XR;-?jkN1XyvtK8N8=EW^#JB~{Ji zl3?u9aQBHSk?f;5TCvJGuZ3}1Z^Z*4s-Ze?50d)Z#{HI3`1<4)4Z zRH#XIft5CJI|n{+6>O?`ASn$E86|(zq00bqXH4?(K(XMOE3yUk)ds-9q3id5dn+;WCqYK* z(g$0!d-^O))L^*ND!kDQGFaPVa}@U4$%#o0_u!ITn}$W}&taz%s&>$lACkCKs(nLK znb*NHiD9!lSPcljCtU@MHCekry)c$Xt%*Mmh!EUR9wg+q6VNg^!~_~)ub-(PTg=IY zy4|@X*blOwEsug|Y=~HHSe-uzFIRkjjyy0WPLFq!<}tsmlbuVGX@QklBdV>2Ntspb zVD^@%ag6KJ&jE!67CRMvCkJI9mv#hRb*y1Sd~`=Ga4u8w&>-f0#t~6ad8KX>pU7hd50k591fL>7}PiirojsZ;by_e5E80SU!>6MqF1?IZ%-3ST+? z5bZ;{m<*ZgY3evI2pI9zX)WLru-+P?cxPc9L?498*Cd1+r9SL@1tI=)V^zY3gW>02 zIlTVJq$PForNo^q_m!_gp?haPW2N&r!rTORdQ?=6=Iy%0XGKEBX^`ncHIFI^;Vut~ z;lk6vs;R$JA;LmS7B^;{>_)jOJjE3{N??k&Th`!v^bu4g}Z1sE|SIw zU}gV2W3QSYRm8m{QV=K6nDyqBMcRvnrEaxWW(YR+Q!*J6jJ`!ztc{%#O-^U$4WnP5a)Idf<7j8%uovZxi46Lk1i^xvFjnB$QKwk2iLvtmFy|BGq z+6zWBlFFRl#o*XKtdM{YxY7D*2p6>D%=$*E&tB?jN+U94Q%Oi$L7rzbELpN$fM}*g z_>J{Lz1_W&>Hvq2yb4}?V?!^|ULOL+M2Tan%<(9RI>Hmoc&GZJzp^tIHPK&tjZ0J! zXydgLbX^*c`>U|;Km-ZBCJCJg&mVrwhQEIr8C2e0A9YxyLa$`aXNAZ$$W1Oty}uF-TZ`2x zT5yaybU}&RJ;MYRA7(!<3FkNumR3e#v1TamEoQ2UFkCN^^B}OtcpNwR<<2t>B9Nf_ zRN93}#W5MRt2=$rDlXGOOW=AJkMd4_V%!&A(*V5_$wHHCf=r+@6Rp4Ux=UmfCbU$ktf`6HitmVYUsrWnbJkB!F4;A_IQqY2z?kx&Tz3r zywPIuD$6N#*dnt|%T{yK>mw_`TIDXs^b*EQ_hs;8dD4n|E?ML&l|rJlHeUg5Ex!s< zgIDlH?-%**`wRiOX}xg zeKW6GPBFN^(5!(9b7Ywj2W2r{+#kPUjH$Q4*&ZEeJ|e;@ZarUTmI_#*A)M1zZa;#_WSQg{BN%P$Cvfr9R06z_;2p% zuTS^y1_XwGVtxOP-u>5b+5d8N{a0++x3J(JY#H6RIe?Xo{{Lt|U}gU1!T!^L!2GRu z_)i1Ezo2FRWmeg5xoS-FR@680#Pb+lg32FALvor}xT zHVo4G1_6kROA-jgrHq|R@HVEFe>?kAr-#F(SC{QgUu9|KYDZbCM^HmHv9gLG3Vj_b zp!n)q3ms6(?{)xsP-T2dfZ={WKJlN2APmkmwN1#Z&VV;Szqz>heutES{!Rb|*xxta zJ2c+m%LWNq;dJFtS66EVFzYw_g4zWNS@ugWmx{OmfEuJp#MiWgQ#8c-o!U`?Iy?{u ziEm&CEcam<$jFDf598nfoI+0k;0wS=srchJDT}!FT}tS84ID(#Ln{_&vh4TkF>s{&g#FYqft1I;a29!syDYECgH12p$Nj?XHoP1*}62 zU`pG2jeqEu?pv3w?-x@%xYow~6&;)%gQ5r4bvW$3`(L2C zQeWyLkE+qZB@s0jTcr5VYAHSw7hORpp5pXrU%-BpDQTJ?p+iAx*TSRk@T}l$ zT`dV~c(>hMFh0HPpHNLMPOouMpxAmh@DPv6mbzEs;mABIPKc8s4!hXAwcN@6auN>0j>4pXfdHpN33zE?;}wFG+oyphhMJce=zY-5qwn zKAQG?T>YNjX{UVBeEF`!eD2X8(5~Ud;jRfyqbnACvJkJOp&DC1^7^p1i6^(;UU(VD z;LrwE4znC#LHw9s@({q)q<%<}O=nHo|Nah${F)=eM@a8`xcb9~?@G1)3D`6KEk?NB zn|d$eibhS}yu;I}*3$72bhaa0`PQ&UR=-GYS zviIqtx1br^zB@B|Y}%>%F*d&d$;CzU^|}qfv-#C?sIr}e3~~#QLP$lsoOT=NDPjGt zbx9`ArhJnLCorG;Q>LcUqj690T7fG-dL$&BXhWppac&6)X8+^qjrej3WD@a$hhi`G z$T!m7{I2TFM&u1chZ*2U%;mIh-&cR&LWZ5hra8aQqrZl&ZJ<&%WUeiTXTH?1(7R=)t3fPiVm%I7a zW!R?@L{if8>&>B=h#EYnWv1emje+-!L(k&iEE|JFYGwv;DIIBD!NW@lL%6zGSVas4 z&4i5%KIKfZVr~kTzV|*^r>s{ap5pYX*0EV;J13>$g|~U*9cE^(41Bg;0rg#G=#GTr zMkW7Ey)q}l?iquo|CGM|W<7JnXzrg_#`X*9tyH%)K?%WSlQ8t@rD=3~3>p?`u#HSl zukeG;MKA7;k0G)8^3w8OU&`M)$_a48*zQur)edr1;g;4PUNLHV zOJSy;6qz^VKbsW(k>!}8Mc+K*X-MIO-fOf;J7EJ1awy8+E?GB1CMe=Mm5nyH&+Rq% zA*b(yTE4Wc?Dew4>PBuHfK~M`lFt&mVA1 zM1ocHxI%L_*6E9CX{q+}=xFZ>A#?{GO3nQG!@OUI%2Zsc!E7t0)n*MGkaf+*%POUN zaIf(S*I+nnd#%}1{SPz`LQ_Bi6V^*cqb7+sc2dgI0AI!n1!QI9w*1TnYK)qath0SB zOgMKA;#gFXFk9N@6AOltWu0eIjF3pK>D{|S$-3WIeBxf^yMMOS_A0fK#_`>KMEKAT zf*e_gPn($m)Scj@!f1@MTF7fGLgqhZ4@7Logg?r4)}9ZxP4ejztib5p?3(iMn;9`EQkZ;cxXdJFzI zl^w6HlS9G!8$n&WXY}%efz_F{@-#yQdw!lYQGh7UPF;Bu7mPlo=`Wb+?@P|rV0R+PZT6n{hdZIt^IO{OZBBHQLRBqkmE8o>iK^B@()2`kN(U$FdQ;LOLMSCkLnWbl0A&N|{| z2!WjSLyLH8`W5+hG<$lIN>4v{ctL|9=_8U0e4f(Q%o@Z=1$!#G?cObW?1pH*8|RK` zrK_$AtAbq!>5$Bu+a!g%(L8Sv883kq7>*>z)_HSY8r+o$H)?ul?yrb8x@&WUv@8U( z6mqQdUT3$i_R23LU`$@WF*_g^h%Xvip~@da40WeC;i1>EJyAjj}Pd1NTWap@e*xI*t6&Qm-U+B&hE!Xv4gzo zKTC^wZA0pISy_RFO*2N6?4U%mo5{k26q69Qgs-|FJ#KI;p)LZp8kiZhX*_$b?YjVssfo4UpVjjN_2yG}2rD+#BucCN{OToWys_4_>n zzQV7=B^)%+D|690bx=%-)an%DyTZ7fw^BocF$yWPKCQ0mz7Y#!Uk9A)a;M0i1gX5@J&#dt7Th zyxw7Z(-s|~e7f~Bvq_brGrI}@Yz14dS(~^~_6uO%Ws=g~>W19lL~B3;_1Jx9oHv6J zBn-ixgrmDi!##HuCuDVzIl`&3J6s7A!y+=Y01?~k!qigfFy>;M{HFfuBzz$ zG{<=9*kfdo(46N81OO`^;{JqPQ4sIiU=^JA?zu69EUW&|`%3c4&U@;<$KW6#cx&Zm z=_5Oc--D_LbI;N^ZVg2fY%mJFm)1#XoE)Oew}78p3KC$GkH{H?aS?NOfe>8yK|u!4 zz@+PnWJ|<+(_>(}FT}p=HHa1dQvy8QovR#CP^LiQB;Tp_^ppVQ@eJyJq1Senam9#1lV1V1YUzdK-f2 zl(ZPWYhMGIg%35Yj_V&;$@kG^ht#_A6V!d8;Q*&bn%t(=66oc~I3jNbYWb}?e~^mO z)PgbjrGnmUZI5@mzNk4h zGxsreMcSLr#XNlC^DE2I@&zF`VD4mZeA~)s{bhCL{X3>E$|mTEB@RoVoFaV{0Quz z<(1tWcV5LB-2@tvGGT+eJBrp2H!X(B+GMNRGl~sl`;($%hZn-C*516cY>i~A@)9QZ zkoDkuwthUl>ZUP~$gr~4RVE$>;gipd2T~&8C^)T2cnLoj?QV(t$%ON^xgky*#qcF5 zw}T?I{Brz*hhRp7){VZU&VdUJqmn0FN z+ZjOCe8dueR4qq2zU7K#EZV{g3>c@e1_o`GeZ=yaY65E~sR zMTc;cu!GG`o)M~vD_2aWfT(6)?uAZ|r~nKClCk5?w4=?WiW&8Jf14V_ThI~vnX{mY z%az&wDI*lPbjM2`Rzt_a;Fy@z0M!%{jA4Dj<- z1w}o^?0rB-F7yJBNNfg8Ofup9H<}@ZPq}iLKHQDcPWNqmT0}Z4|1yoQmm>e0Nd+-ja?Dho`Tw-uiEo zp)zDOmoKK#I!DI=)Z`pvwBn|Fi(=H*n(n*6JZ|~!dhDXm-Qf8k4+$hJ3D_DV&IoFu z-bCvoQZVb|c3+HgrE{sqvFF-A-+^_nG=a|s5I;n(T0`s%-=FRHO!q$E$dhO}mp*tI zc?r?nP_fOHY8i!9mw@3;l$MhvI+V`nsSs1W>cU3gbKSAGv?qe}Q_{f@`}-ZMLt2

    @q=Fs@{lcDAYdA5HAjG?;Fm-uK> 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

    hdc}4P}cCo3}w$ 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

    14Hv5Nt^SzIA+)|%GpRH_Mg)t*V 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®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

    wO2X84?YNmfq8N?! zriZRD&pUqmp8F{DcX+)+T1MfuWnj2d<&|W~4&`%t zD#X<9y0B6B+z%XWoyj1BRP->!0sg1zkQSyi@j`B_d|x8S@3-1Ak2t5LrW>B{hj@b; z1ys3;^kEm(EJL+#p6c${(kry`KADu-vt0;YEI#bh zAR(tcTI{UAg4%=^;+(Dp7&4ESWD$>P^|H7S@{N-`+7 zPFiK#WxD4Hplb@C6xqWiTlC^B-3ghHFXuK{q!(1sKp{QpUEOqGSQ@I7=&9=NZe(NvC9D#PB};s5rRGV;X3kfLc^@?IehV-ReMmT;8Y)A zAi6k$Hs0>%S{9B-$r!$BFr+JhD|()~(o9AHC({ON!LJ&5iCHv^zb z4&1Hx8j~bml`IFCQwB6j>twKXq{?K7lnw*OtM!fpCXI3DPOV~?6l)rKim*#}I*0Lr z!-s1sP=>7k^*jx{H{4A3GMbpB-G_|o8k>&Unnks$qYtdtbkw02BJOh1-2fd{HtLv* z3zEL2GXcaD*Ol5@o!sYlo{G;1OM98M0Y^{=m**Cx-@YQ|&kYUJ8!U~ftZYt>7x!KjLY8fTOWsZ32{lyqafS%ixnCit<(|N2-6;S#(P%chv#`*T<`A>2tI_M02%i; zMK@}{{9Kqm$&BIrSBiNBkc5k0MeBOgZ5L@^kg6*(;_49sVRZ0BKv~d=RAAgP?8H2j zqv_BFI7@GW5>Te33yUr}PS=HAEVXGlXgT!-qqeeRW_?XoT2#l2QXDV7Tyz3EUwWHDy}ci#44D!M&me7`~~WP z_2Igqx$$E+@I%fa2J;u=8hfqgk+QEbHBk2gCNN`697O^07VbeDs*XEHjD z-o!*t(x$aLW-aOM?AXfVB*C(0R9i2h2dhGi`;^B_!y_>Fy#AV72h)UOm63Qomuyld zrcu+)HirJZh9bxUqJeYev%`PJY0TXR9t7&~7>Y(sAjs`Ndsz6(w^=?4kufH#AZJeD z5Sl}4WG0a*ospNurR;G7sfBG9t9c|LKsevu>tk(wFc>1LC3J=&C32O)s@H%OE;wU~_cL{7ZZujWmAKK!+t=FFFqlU273m2-(_Qr|TVIOCj#bb%mSv z=OZtPTu7<$$1JOJDsR8^J7}gyOz|#Yz+2qM=th=gP8A`)M6N%j3ct=Ui`TUKcZMUiP z{*e2-+1KIOE7F&|!@)^>qlUqzPe$jF62sX1GLsDG%1d$PhRrq-dv8?f=paA&32x&c zKHGN^1}7{71kX9McIml%E^^g?SD!uL4qUHm6y9bX8%NjI@3^ciJ4V z#k+qega-UI7k}hmzR@H4c#5M7nvIDiGzwhU_-QS$Vqks-`8G{Eo7dj+{ z9~Tcs^5xJfK||+OiV?X`k=U?D&y7-0u~>wKB3uZ^8*;N!(l!9$lfcTn;R!02D}o^r z8^t}2ZD)o&|5_|!D%}c#1kcTOkD;EIuMz>@@#IsP^rbfFZ=gQxvVlKLaXoP2;uXKl z-2L1vR?J=^U_>7n=P=Lxf6EP@JkPfEV($5+0>_^i_Jh~0x~fW_lSIcD>bkUC!L*br zJ07`gyFjU1tiNSh5>uad6G=lsGy-FZLrd5T+zn?A^PXE+LG>TLP27A}G8>nR`^>=k zddOu5-J%2g!bk|9pmtyCW99{-hpMZIryTOzVRh-du28 z6P9W4m-d4Tdqjtz&zBc;g_R7Y|)Y$J1m zVkG+Q9Nh^~suh}{p2$Whe*8J3yv<(oZvnY6kGp(OLEqVFUmcx{JIyR^P)!Y@hmj$! zwbi=X*hZSrGt$5+U9-3S>^dwLUJ}^)RVfFDxf?~PnCOPZNo}XnIWDgbKMa{O`BFg; zl_WD^x8HYm#&}*&)zUp@*y2b4FM8)&D$e;3&c-ArKTjgmKlEgEFPJ`$0P;bp8l$qF zGh@yB9ojU|Sd9g?Vs6&goCYY;ovf*KN;_X<5b0m@0~)AH=FWtepm1BRYOxcvy5ijZ_G znuQ<(#rrj}K#wQkRcF7f%zUqb+S@l?7Xhsy&f!Pa8G`9*Hf!$P^=-{APgC08S_$Cv zQNkFz)wOaNY+5>OQB*Hz9rY0zxuDE?OmRb}3R02oWaQR9_y2yw^fI-@dmY<)dM zx&$V~ZG`MrH-_H}l)MOXUOGKJ{Ef$2?^*NHVK(@%=5C{z1E3@jn-cWk)*o#!V5YVM zV9jwOW$Q1#KUc+E`kAboT0_b$b3*j;#)`~$Vm<9a*mg>ZmhU$lBNF7@`%aQW6N0&d zaonJ5!K`$5k~>C#)1(v&x9jKvaBT#S_%{EQPcNhkmIVsqe~d-`IT@<^+ydv?z1CpM zVsp*3QgPU7Purc*!KTX&(9k<(Ty~Ya(?9+)o|9jxle0RAsg?H6rrwOl*s;V>po~YO~D=jmvTWP7_ zt<+xlm2{e$D_M$)@_W$#65Wq3f>3t6$g$0vqzFvVbd#%hjiS2z#7EVUq%JpKr-Lrq z+`>|J0u!WMf=WLOsw@r7nm;)Y$JMxY&=O@ta(=Z&N_YlPpU~jB?)Exz|NZblVtAKA zFg7C7NFszNtVhspgwOG_Xp~(n4HISk7I29~qB^1$_oy59K7TUS=ArNM9wW>20FBAu z`7n%=733pt_R^*Qn5k?h!VrG=ybn*u`44O2~)oM>&9ecxQ(3K70#G$w5B`# zRHV(a2Y5UiSM=hH$k^Yk_1DaPRX=^toVI9HRDTM|Hp20bUcltwQ9>Z`feQ8;!aPHm z736~L6HSM1%!rRDK1MacdP7|-H&5pmh<#vN#Io6I32yALl@Gd&$SUQe+%eA0*|5_q zK{@_%Qy5dw7SmsD0cS$&6~e5hg(Z|iFWVnKB^-;RGoz^LvU)JA{jj7AxJo!##T#(0 zLen6I>0rKS8gI~))+JIsCDPOObA1`Lc(%*uyGU%iXT-We=}xU;ooAezoeKWh$tNrg z;~@A%xn02Fv@Byqon9a2|laryuew^g97Z)il`Bl%WpLU zPmutPIbfeOJ_Sii0VpYs6{ucQ%xx(_+H8fE4I>;6YF0xj9xUi9UjsBqw*O`WFo-*9ZMsTrFcI=)f;xWKl*)J^O zmV8hzKr{DyL8;Cf{rfKnwf(07n`VmeltAemrT|`XziET~M)A2zPf7M%H553Et$ z2WOmmt*Jv+u?@}b#23pH7_`DOSGnb$BQB*6R<4ei-9joO6l7qMS|{HI4STv;AT9iQ zilSjC_^y#T?fVV{cst>;n`bz10A^U?M+uE=CHz@;E+gn${CrhSMC@j-BwnIqZ|BJ`@-lovc7VG)~dk zgTPaXZk@Dl672ecLF)@R^z#B~sFtXu1T_3%c2xrU;FDu4oZ7xN$P0KkvSCHs+L$W$ zG0(!P4eUy_Bn>@tx*ep#(iEEV#uvWHK1uP6RqfYw+dtwjyS8a#gVD=6L) z)Ycaf7S`p!Uaix<7LbM8{R>JHeE5wu z_|q15vw5CFurW)-;tF_Yg=H>5wfaG2QNj~_Vv0&fE?>;Y`99`(JOxS>BsPKJXx<4c zDG#VDoT=N>{7%nh1HUH&Q0JKp*r>Q**XBcU@U9Mw4o$i=&Ie7A+;e^M1L6q;Xa@L_^ST|Ba7NFp zNS?UIkYHBwA_{I=1N}eSa#W|nb{5R#__JSb&Z!2MlJBslTK!)P1{IlMyIs*!F6Ms} zC~ELKz8cB)i5D1%4wAHH7XZ{d{cV(K9LXbK_+Q~+9(5aF;uRg2thJs=-l!qQGK1?( zhgl*Kw+hyF;R)^DkJz0Y$a%pi2}Fz8hyl;V)a}zv9dXdp`ZW1A;6K!5x)y&~%xv14 zqfWvlwmPO!O4%0cmObWr+W7*$ax%c@+dzy-uS94Lb-hnyZ!R7)_Si-%v7?R&ebCS1 z`pzYkC;wJQdigZ*o6?R{BiL!n0PjUk-PERd zWun6Bo^2_~sdc7Hor+oi82RLc?xtVQ>7%aAaYBS;sBTleu@f{bCW$x4x^d2k`rNK2 z+swvGBW`O=@w>T??2;Rm_0nWnK@=S|L)pdybFfirvB}O^8ry8UC~mYoUyX4%uipJT zxo$j$%}nTkG8s950dQc@5jk_>5=`{d5S&q!w3@bN{?6L5C)pNJbk?s_rjR!a=Y$rj zOhQPjzS{h4aaNXHby)NZl4?Q6#42FBTS3#l?!{%_$Vp_h9oS`UQ%ch?UU1F0;ROqO zmo$!~nT||3k@=$pWa%@vF)MsQcw9uFW;SvBBLtk1yq$&TaDl$4i1LRt6tN=tkKIG% zL~0C!oxWnY@>57q_3T_CBk*34-<@;b`{fpG zbxiLcKYfu`V;iLKQWHt`?KE$8R(U0*iB6=dVtENq=P{5BGie2}@V)-(mg%sgSwGQ@ zbIx_MgHD8HJ6Bz(mp$Vr?g}r2Ec!YashQS{ljoFq5>t%^l~l=S5VOdSVIx13%Mf_C z3aG`C*Y8xG08l&BE+jSVPC`NZ+6}ez5*aJDq0k-Y6|N*+AxAe%!0aUIg37!3W-$_M zdifee&I`uYL|f=&{YB|PY)gHvQKaMOOI^UvY3pw`VY$m@O&hrHxcDUSmzEJ9`taef z%%SuK5i}b#DnyKTB`;)8OV>V`PRXRNnX;-*E>T|H9K^Ibj5q15q|BGhNS$`g+9Rc$ zo&$jG_3Z@%@y7KM-{;7dbQS5xRI%m zbm~7*qCCEwel5}FB2oaLlhi{|KYnw;h)z_0<)rj=tFD0bYvoSM%(n+F-0o6|dyq`y zX#1%6#Qn4aR2@gFH~Ye{Q)M=v<+E1A3JzQyMAc|qhopvdi{JG4%A4Ir<)g!3vK;@8S6-`7nR ze)s+Q+GIXE=l_~r*vc-ve~PjuZo%;^D$}-Z0HtGqRcwhzlUJqwRnbzfq`+_6@BaKn z{aL2R!KgXG9Fp?>8;OU&+aJq{Cths6yNYY~q4?U7MbRD%>UP1)OzTsbsoy8e2=G9h zwC6=jBr-Kla?0Q6N!0S@AUKeIV*MnHzEa_o`QT}?-0)%x=2mrdh5;>>XwPiZCE&~w z#q62BlQ1W|zCB8Iotp~{bEF}V5KbJ7^y72Er{;y%gY-#G=qLAiI@EY>B5Ho zmDx!I`a?rD?(Z+J=RB{4qJgF)aTL-an9um_{VQU8@o<+;hAc}m?Q zT%+RaB;aZ|*6!y3Qs(jv0VOe83o&N_6xvCv0n#tS!mfvRXeL_MvXn7OWPSXg)$zz| z9DLS#o}8G9Y@zN_S9wf}p2Ql|h*3W6CGJyqPQdSph&=N|!cWL;>9ap^e<0w-yDF|r z%)62?>5XM$_?@^1inMOTC>l3Pa6g;e82t7L!Nesgtfc+5?`By6-dEHe3E=+dYy`t6 z^~GeovRwpVNf(>sHMyJ|ACAh0Wlvk&>l0o4&|)$zNfmVDAX04zLE?Ssog<45J?Z1E zkj9xQV=q9skzIY^Psm4cxf)!&u{3i$J7*TgPq990Q8}pu1?dfM{P{hcm(Km`SpR#Ao4b{oYCMW11`o~T4J2s^uyM|v8S9ZB-bSz{u|Ym#dioZ^AY z8MInv(}q>5!jaTek+%=OMUI*n1UvhNa%zWYXZFi?@T6qP=W5Q=_MA;ECiQm?qJ$D#fNhU2M?1Q{)Jl+=7VFdq1rO}9#R&Lu?%QO)K7|}! z>hEpUD+&E+M}_THPleg2W99oWE*L*E6-WU%cIFRo7LB7(r#N2k)%$9P9(FVRj+Rr` z(KTe7UFsXLyGEEqgCIO$sa;v&4=NSk&eC5meE6wrfHt2|M4V?@tU^M`Tmn z$T%6D{qCY{rXrCWXTZ!h$2;gNFy={=F5P>8jLLNJ=PLkcF6hH%$l(@X2n~co1bA<) z$NWEeA!K?!7k9<7k|lPaN8s@G!6aENiM{jrAoIm3tRaMM zPH%1UgdY`v83_HZ1#kTI=&UQsfgP0&FZ6Q3-gm7VfobA^X;jUOijT4CWF9u<$nP`S z8ZLOG1(7gJRW4MFJ8fb_j6x}haok2vcRh{LBc$~vmZpU^~d&f z#OMXy8%ObAfC zva1_qagkwjD6GltCldy-k6@!ev;yDNh4(`KR;+9nZD^g*w-P7p$inR0GW!W;h1^c1 zfho}P&5pU}g55VfK@d7yEaqeB|@M5H5%!C2JhjZ72h6T!tVH&ah&(@;c-deK4x zhKl_ct`QMy4Z|6q>?#n{#P~t55db73Yo67TyYw32EoeM$XfvY^d#YG+fjBk&t*AL& zG?{=Hfcdw z{%K`a!q{;fM5cUB$8-3O$_Ws?f$Km(sK9r>l6bZ+oY*;#T zvLW^^$bOGu%Lifl;jp<}Qy^gJFd>=FV!K=t7 zX*}(}F-$$qZx2R$)%xq8qIu;$U1`emqJ^7{0F^tUWD-XZU5mvHc>r0q4hH1Bg;Wvd zXibDooJ%x0T?4^gbt|;N28v)evXZe8^0&(*&*Tc5uQ0N7L`TaeE5(=9#X^VG!9dd# z_cYgf@N%xiVP!TgKr%tkS!N+jV7B=EWaIAty4|}UmvOcuQ{C7}eP*`kmay*;LFm%Y z{o}lx#Q|;Z1;NRwqCU~_WExw8c3)m8WiK6X+$W}|PU?=bVVSg$>n(lTzv8g1G4gBZ|Vht~@i9|w}4dMu9(QSoG?Tuz-$t(Yk$xs@K=9ayVPp=gr5$z9}6U`U;E+6sU z=PGV#T)%lo1~8Ddnl8VmE3Q-Z@Qs^HN z!rq~l(SU*E=+rXB&48RRq1<^x&)SuwlC!sRU3CJC^Wck3wsDEg`(pB$4o*U-?S*Pz zE*oa^MQ?o(5a&3v`I?~-k2$AUjp zBPr37I<&@>Bm?>8lq;;w161a-4H90~rQ_o*&gprJ0xM+tF)mgqsfLE9b$_9TNZ?>> zowOB>WNlC^%Pnt}*#r!O4e5riclxEEnyJ}}SUQUKkyn>Yz--UYGr6Bwj<(wgghp;- z*wF8tmxBZ;RBR0DJ`&~3KZlri`&FGZ$_B9S-fHHCYxmObur0$@_m{Es zBJGyq@O&N2QMy`W%&-h7S6uyO)o2PG#|CX!lnma<3AZ$zZpJm*HM>_il_^ayd-b5p8AA4kAr+!{x)%2IY$^69M{FGdI@H*lJi7d1RNDi?6#R9y8DXLF?RlHm zkxyf08KjVIezDOdXC>j7exIKiK^p08g;I@QS}|7WbTr92f6PTRg(EfGA^PQ4zL5K< z(eIQQ>2FM+2;d4>2^8!!i)?}Ck& zH~ZLo^Um!!4!%%;d7(#J@3(i9N*A+bWue(t&b$g7UI*`0ZFh0PrI2`Hb*IerIwC>6 zV7xJpk+??Tr-|^Aoh|=%a>jW6Bv}I$EwY%lyLqTG&9B^z`SIQ5PLN=N(YjAEKx6%Q9Gk3_ovvq688192ZwbY*>)#eFkvy)#2>>AK|kMS zi;)f`)As}on($U>zKc4{$#Rb(14EIZyDPAk$sV_!Bp{^ zrLOTyMW1yBtIUPTuqpLn%W3PjWF^V=sII!gRny)uD6hr6RNiObZVycex#)=O& zv!v%K`pu=wJK|R}z%N}Nl0_YMLWk(dZHSWhdPR8^=yni~Y?{XNi%0Cdl7e{b=Odr? zD^T7_Imfa*+Hw=78v~(02xNs;*wfBL6T#xR0DYP)%`O8t*bt`3P9<4G_-nF_PI zaCxNF=x%698mK0wEgirMiIDE2(tT#@2KUasx?fRZ7jh`qix>+H9Fm3@eL|1n3KC@q z^5_=v`#mu@r1b7te+k#fOEJdT9IQ9_v;PEBx?$Lt1*@EOWV4+()^NMI-*f}#*^I^b z7y74#HN!bEif{&V@{MOlw2t)LAQ{A)X+d|0zF6Spb|hOn$rVU&IUYyhFNDW@E~4u5 zdZl{1yVcXSTDd2i`KwyhsGl=8iW(OT=6FzTo)|F5Sx%uB;f@0=dHZsH$*He%$)wkEVfaU5-lG zVeoIcGK7!d-wBIR`eI(Re&6YTOa&HG^R9|=2+0nm3u4u@l6(thks8cvnkQyk8fgR; zM!()r9nG(}nhgHkQ)|H=oE;^{QHTuG;xuS{)0xwjkanz!LaNX|_A5(y>wPMWh%zd1 z8ubtF_oK)P<)BgR63lhNgjIAPq7FJni$a}=2b7pvd3nJ~rU6ygyYLiS8^c3hvvw3jn(#?P z(j_fhT=41-Nl`GTg77L>+}WM=FI#u}hs=nAFk^619)s{F<8pzHJ3Bj#n-dHQV3z&x z7ps(ufF0!-jR^AHY`lFCEoJ_h>5p!xD8AAbtgO_zv;+OkS_fB8TQ!|EjuR_`ula&$ zOqUbyZM#8Ni`b^NX&38MPd#H;j0PUs5;%j-c3}9{!Rfs_VtNlH6QB6r7DCcS<;&az zPH&r|EAf;+gf#?BfHoFu4H-Lhpeg2~1CB`7l3)XylA}7S0j=phu(~#oLK@InpIRqfr$*sQYJEf!Qapj_*0RJnjw5CBdOKWp zhin7YD+gg($b+(+mi@~nW@m{dbM@2&5}F>6GaXmM<3yw6HpPiw`br4G z5c%8&+_;XSmQz{HhWdMM29JcD_C@8yyr0j9wTL#&#j;#X!+e62@voE%=eOSQ-nIUj z5GWEO;P|Y zarW73m1(;&`>p8@ldv(e>Zll%^UGqwnTB$7dge&=fk?z?3A<8Z?Dp{Gyr+jb2E{y8 zCw9!H7i$w%pN^DN_sWI7l5$`?DOy~}JIYC&TK9!*jovjG+@oC7bRmIs({}(ZDW!Vu zQ{|yi_fE6z>SLX!{Ar-#Gzb(Z^2Ekz!1F%+&WkY6oF>95Ug>pU=V0QuLfq7?J#k8* zQ8%yX;3i~ggn9g?338OP^S@L1zGGC@7{~QWq?f&VufW5}Zb5 z8e7Fnm+%9l=S98eAG(w=%w}<+HSdtZ43d4ElKsGv6&2-FmxMD+yE7A+uK_*VSxE817aW)a^mg{Od?w(a}?99r@e!Rwm; zfv7zCHW)3BN7UdS;3}2BXD2R{l$~`rfZvnSRMR3^ks|kuzZ@>jCiNyHJR8fcp1R23 z!e|^cyPnDBGa9u^nc{N`{?)QIOvrY;@0D*sAnKbVPPE)BKF@y=<-yiuWNd-B%lKk; z63dlabrd%6_4`qgb}AV$_D>`45vaNlH+?nucZlo{(pF0peps%(Lj(@x`@TKX1r97q zB|JOc=k((vgRR|yarnsA%kiIj-o48DR*L?c(G8x7o6WcUnb(k34Yk@tq}@dJ!PF`E zPa9$t24pRPZc5@4_@u2#!ke<2V#l<8Ik4?Pa1<}uQrhF6uws5fe|@MPsk^QLy0B** zAm2!}Epb}ytK^z2O#mKOYmU zm6?fL>fr1Wm^c*#lvrK|+qDA<1SLnGn^<5XNXO;%%XJ{f@=x6V?v|Ye|Dg&M52K4L zNSio;3evhlIZ}9DMiMUSph@jhm4}&2F>b|=6)@B)d%IcJ083OVjSgU2x+(TQrN>$3yMZtcN-P7yPw{3bnNy`TV0YD3M4^{w$ zPrxkIPryOOQddgM$5uz40SyoW;Pw8$2{8YHC;s6m7+5*z|C50EH-6%uIwK?7e=YxG zQ2gt078Z{GV%_~qqWGuI!u%g$UW{!25ElOw|KA-MSp^v}b=kj;jI{W_r)d2b0pu@u z@h`aU|J9NChwS(dN9G@yL)F~K$?UI+h|l(yl%vOIV`2Mu(S-e9!E*n*kiz;G5Yhf` z9OA#a_@CqYFP;8NB9YOzHvX&f{r3_5Z&u0QAiBR+$=|%Mf9$&dX_fpX?fxU4?EltE z{@Nvi`gUT*=B8#&e^I`Fw@TRl&Yjx76`^RD7+L-y@&1h~`A13lPxp@D?=<|Y)&Gwx z`Jd_^^M7^y{*x>DHy@Agzi=i04Z{0}EBWiH{9jzjUt8s03ef)_S8|nNtfl1HGIExP zQmBt`hRInZs5iCbz8dkh_iU>h$aJu>u zDj;`{ybuZmHUSJmTs#bzc?%Ih9}z%KKtoDMLn<*8CpXgJ*(GRWtpHGKe6uH<7$97R zUbPh#1adYw_ex)ejmHWf0s!3@I3%wN6d)V|q<41(itP{JB<%4yU;`>X5)#mAzx6Bt z`6OI4G14cAIPe=fXzVMI)y4H^O(OW@(v=9xpNkeLo8BlfO%$X(*xDc-Qlv%xtxK?u zx%(c1i=3&YO+*Ns(1n`kp2&AR^H5~$y{{cmaxzm_=1J7tsQREb!XI@Dn2!NQ>r|S} zt+O0;SY{Bw7I~p{0zCj90(rpPQ#?9wSH%F&KC7o)Gc3CK!Ovf{U8{9WN$-U9|80jIp-;VRsQ1_)lKp?ha(R)=P07TdOI|1lxu=@Og#8BQ%zY;j+vR6nVFfH*^V)0$85*U%rP@F zGsn!#9J6I6nc+I${o(9er|zzjs?{?+JyP}bNLtV8_kE(jZXqE46V3OyUC&v8{~n_9 zMYyC#2?`2H>>b`-Ebl#p(|XpoKLhjXG5W(Nz<0H#FzDvy022fJ3N~^xmD+h;O9bxt z;WF442T?*at{F*lT@bWq$YSr}1V%L9*H?`ba^LV3%g3qs8xvzH{OlRpm;}WDaS=o1 ziXppiC0NROG;nEdQLI~LajIa@&R={_4H|8^=O%TE&Mpy( z&tAO&d8}yOWNI6X^SzIu9G-{CT5sH4S*8lw$hr-5r&GYrP$!#`ae}JWq+ERBaK85G zc&@>DRl)9OUI;kfbaI6zvvnzo`Vq^opY0ev3@*FYCkx6$d+z z**=B*?swR+YtV5TtvqSt?g)H|Lo^VBI=Ahp1EnG|JD%v2 z>+7+*_p{M}{9oB}8m2h+S%V@SN;vFUxEXvY60ndvH0HksW$@E88uvc!;3FiRWVC{a zyNi`^TXz;hh2GSwS%tCML_Bojck6!I6TO?OjZ8gi>FR_BmuxrWhsPs!xKg6WottMC zR&h)F=MJ9G^oip#5&o=NtUoehPBn5k*qNX6+!mwDrhtPUdVP+^IFV)m zt;Sx-)J!k$Eqp)B2qpwebv{y({;g`q-GkM%Y}wV74AS4^H6H+rvgBv1eQ(C9oDuPX zmd)Q?0Vlv96qbfppO05@>#&uD-FOk{R)Hkw%(WrN?DbGs26gt5?NyVgr!U4sBBIAk zdpCM!dCx1P{(if;LH^-!cFbnReUZWTpLLg)0B)?kB;x?XiRF9$QPu~aP$%_2Z0mmP^s@G4O z;ZIK(uiOw4u^1E^H=SN0?RQjDM`84#URlBwEH>YpOk-SOCdos7IFia(;(zu)njq`p_Fa(YYK z_;rW4QyJ@SIdHUl+7r3k;D&ZEh=Hc?^$rriv>#)mZI8%S9}K2KRw$Fp}j#db*T%ger;|zl&J*<)B`G&`S%e@XWEf_ z;JS4`=<0H_lr_HSJ#n=0?AWv(CUWw-8cf3pmQek|5~)x|yF|dDn0=vE_MEjG^eh6r z9L;d(W|xWvNkQ_u^%CfYL7+5O?`?|um&pN5^V7TM;TpT>fkL%=_!+WxQc}cHy@H!2 z{?w-`4XLF7EJE()$Pl<$K{kc7gOr}5)7N;1KT&Xqx;>*tL8}ESWvDU)!mW6eUXtf*jdb*h9d4lPx^jh%1JY+b>6bQx0*(W_6}3RcZ_`?qDmKjt|O4IPLp zwZO_MxkeVgVoXO8_hMC%e3c1IsB&ipsFBLyTt!-qp%53C0!4ofkC)MN_IIl6kYO37 zO}!9P9*HZTE~QG7hrZD1EWLq1XNGpmVPT)f;B?A0pRKf+4ygubM!q+_u(Sv~MRgnj z9$f9b7}$3SUjEcN*25lpbiG`m{y_1a9S9sCIF(PS_Do^#uazC{fQ<0TBI;r0%)iH0 zRV<=E-G}Ch?Z?xtj9X^0V${vtdB3rCl~yUdRBgB{Zp|F1$x6f91-I;ReG!rRGpHX%#xCsHF%{LMO&ab`wFwljmXvw~saX z6;q=Xyq|>{#}p!;vtTx9S1E0+Ja`kUB`So{o;oeJ;;x^)eYrkT69b*L);U0(?~be{ z#kz?ld`9;}_exbDW=F37O{v*?aN-+kEbUhng~bZCPCf9Lv`hC%l(Vk|Osl1GiTaFm z^{k530E4_PTS}!2q3HI0nx4(~Le3T;VquC=hwSAa=tJ}O!9uP)IG{Y14qX*H!IZA; zK`BS+kKSaO$nP9MmpJIGLo`>n>S*Wyor63Y*MMSC!P) zZXEub!__R?oCixu9*YSTX)mkkL}Qp7maFG@v8z^%KEojA!%Fib zO?$y#68#~;`j`V6Gfj{Vpxnf45OWlJEOOSmVd15LuJu6Fj3_^G@huPKd@!wJv*H+d zVTSm*UeCSiMcp()=SH~==ZR->Z&|k1{TtyF1Yyi(Sh|I_Oi9EYILLlO;mg^}tsT%hCK4Osq?d1L#TQG^o$?|8^b)8RRBFfeiMmaUf5F~b ze6j`KW+PWK=LTl_tGjbaq$mt*tkgR9d01;;e{l3#Tv{m@ZSszdTuVtkoo2K~+} z0-HES^4Mps3|UxGH{)x6y)Q0@D(k;Tj!h>ExQr5bsu8yZ?U1ZDj|t$yBeEZ`OCn0G>I<=2r91+MW9^S!k>ESSdWd9+`Tv}og` zv{v1fK_IoxNz_&5I3rMC=h~YW^mBHI?Ew$J&6nYwJ#X+G2o$N?fP%{CBy>=`caG1P z&TBXgno7t;m1*yKrr^=v&h}F5b}A58tPtcGYUlQ&V#_H0v}X3uTy=P@HJHoM)Pv^oY$$?q{BwT-Nd$!0f0WDCC^6TgxQrGGDgRKwpq7QhxTF*twbQ)X=QgH z47YlYJ*Umq*I8Dfu4`y1_0i2oRh@L+)hDAzt!SRBS&Pa>P$@&Mel~advSxDD;ba*O zk0cvEVRy*m8SX`>yWR>W@N~UH-+hO%@JOmPfYaZ8PIg$Cza3(LEpYJ47Zc{8s9jgV zYqf2M?wi8%)Q=kgX3^!OR34G}$jZGf8j04)+4c+xk4q!hnZ*o9J0*#qAlH+=MkAgQ zj8-^Ezw2${=HO|9%D3WiT|am4shde*{b`g1gPfwx?T8C}!yKZ6XKdz9izXnYDaGfZ z*-eMFIVK6`7lg%y`1nHG0%r#Q>19;Nd4jo2+ct75K+C6{g>eFxRatI-q_$1jkb#pi z@|GM)M?I%Al?aH2qGn;1pUDj)ool$eGgouFWjd_Z>H79ap~XFkMfs!XgH0_x3PE*Q z>PMlF$NU~WKq~{jXz%?c6HALR1S`28mTi7{)x$zvvbfjp9bvTb4D)^5cy4y$7cV`q zle%G@MxcAOrJ;|F-;1q*VZ*TmI+SttOpuB8oBN#L-aHV+*&=F_D}5Y}56|krHaQE+ z8NdNLN9P2ej1mOoS1-rte_SDt{mFa5u=RawGlgY;a4i6d!9}|`^eF;?hu25z8}cx1 z-eYQ)cvM`=rR+{I6YQ<~qx_Za5mD#&0+&V%bfomr9cZBBqI4$-Tu{Uq*)*J?9*u9~ zQoXSm;3t<5lGb>JJJllo2#m4z*-PDQ5syz3wKE^+c#at`L3gw$weV`aW54wNXAza- z=s9;Lrc~TDKuTtVknHCm@}^_k4+V2N9PzzR#|1Y%K5l9@(Ebdi*d}H`+3;^qX$7Zv zWo*4qe{Wj|19_R1)!lKAQ6F9$(HWacNrPpvq@TPq)%ub4StQI7>5S=M-|%sJpOo3i zGsWM%UP=lTG;u^XoJ|69OzBqNCDJeBBp{{dFx%`V{20&SMejNeG}cJKVeZFm3M4@z zacWqul7?DgvoxpS6Od=WZDEJOgFv~d`s^TE`}ZT`)|#Vmvxkd5lR_xt)Z_&?%MG`K z%9c=2cW2{v^2Bqh5d6eDvg@>`<}xu)zgxT!*<1gXWY1f({nkVXa{D8QDR!G7WcMi# zafu5^-%m`fowdHYU*B5xe(K-Er)pyu-W}dU4y_OBki(fhv(aT=e%{RwO)jVYSWH(| z*HN-cUTUZtmCU$))n~%O09Vag9mzQ;{~9AO?O`>DH(%{Cu|zf(-Dt9+rS0HjCq#q> zZkr9^L+oC=JW~8{3pJQ2I3_APV<3?ja(L0=sn_k~=9eu(@FkmO3i=}5u_U`l;p-cj z5(5=_^_#G02@U-$O@LslN)UL$#-fT9H?c}|T(5RX79#=~c8(HxH>A}L?C=6|t)zwr zw9X|T_(Q`>)XPo$X>nFEo4tHA?^#Ab^%{pjNw!}>fEZ|z!Z;(e$~8*F#n_^?d$&+% zWN1+Lra}-$p&~e5T*$U%#*Hr_W32=X&?88HlJC7z>$Z*pi-h`sR-*H&jy=qImi{y| z`!G0f^AW&Wt!jy`=g*8D44F`&SmnfeG&13NPU8RG-z`Aryb1^3oX{RS8VNo@KX3#c z8&Gy6FjBky-E2#ve~EQ=(%Xpe7Y!dZEJ?1{wRrpb@nSaF5PMRKy(F9P=D}*M(`3Mf z4OW*MXLEMMeBNS^t^q{iSwsk)1<_TV^hx$6%+f+JC$CCh`rdLyv^$g@fD>xPy>`OhzcoFdl76Kb@Mo7dZJoxL zsO$0PUa5=|1q#I}T#?_YrVYRBZAR=y#FkkxNAR_YYb<*c4>TMKMHIXtUG#nRz_fTf z4^At9*1IO*DBa;uPw4x4prSk|3N#SeMlKnIH2Ae6TRYTuq~lTypw26Zai8MovtAQ?> z4AEG2k#uLolO3CLw_twcYKEE>L?#)fN%DwUP&cs?Ui%r^ehz;isji=h*w2$GirqM* zBM@Dk4c;N=jL6=(t%*@oT&FggrEkQPq~}bxq60%l^re1#J4s7nux8KuQr>zfwymJx zcpx9RiIT3-DmprVOs|py)bsLh$E3t5^id20e~o4<+V#FEw^&y)QEoB`eUTfe(9OEU zIG2m%>6uV0RFF0#<8x;5s@62Ctc$#Rfd2DCYbY!f7=C1q9nK38ZBgCDXOp3_1}oz< zJ^;d{GitqFt{2-y0Dy)>mMsi+n8V9PBj>=pC>&U?+5h8?lDn?fz>Oc-9Yw=f{jI5d zJt@oj*1!cJTRBCyIRjs~Mm>k0aeOmh=@)%5KMYwjlPlgTb8Gfhdb0hC&5t#k_80@M z36}~f?mv^Q?W$JMkTyRTqfyf!X)ukPvox_c{VUP^kL0_`XJbppe<{v?`u6-68*qGv&i{iASU-1t`riDb z|NU7KaefBc|CTJDnHTuWeA~(KX?t&&5IADIz*8Y z7g8ycG0thYyny`XqbtNg8iM`sp3W*PTNu>F+v*(FbAP(sIbcGl81G?Jb!%J%_G4jo z$SoJKF0WZ)HOTMm&QuX5XS*DkPdTQ?wv1aH^{*&am$Mw*5H{*99UNX{?=Gxi^1n2T z>4seIU-oymn3=wj$$a zJkYwRHjZyNH?!@H){nik|Mae6#ohBQGXB__y(g56l-Gy8Y>9QzKnI7}x|G9F5(;#V z{JJJfs3cV292)RYl#)!PbYAF*HUkMDg~8jB!A0w2RI!iz8v0P~N|lRiDMk;(m?Hqc z45WbUgGI1*B+ATfPef5rQr{Bd@-L>@5rNU7Aje}ZOSWX$!3wYgvVYwH>#F+oV^p>r2O-Xp?(REVU{+syiB82=6~D>vu=F;)IvwErIR|4kYH|7SA%L!LfK(qG4^zasfC zy7cTETtxJ&pZ)?YOrJXTpH@&D`b3P<&PFztCc<{#KNajh@shBU$zSs*F7D5X@RxA? ztJu&gn?ez>bAO)sKj4YwKc-WE!P7sm=pQBf z|3TUQ$KBw+m-;^h@b5|NzB^ld8ZL2gu>B>4|BC{CVHdQQ+Ty05*Hl+SjoZ?MfE$Z0 z1?#A(B88ZvC`z-R7;&7INnd`eKoAj)2AKvjNYaAN=^Tu{9zheLs1{r)JFu= z<7G*PzR9j}A>UV5`sO2>6?MTU`{AwU@@Vpa?jh4@+ST{vX>;dfCmIu#6q}f&Ovih1 zjJWSZ1Sa8D)6l7D!am%YoOlhB0b9pYeP>HmGVJ-HNz<;q@CV_~q&V;kSw@4l;vb4r zM7FJH;K7~|_hhaBbxlLfR>XHWfQx3eu6`xrX7tOdW>sf3m%tPM#leS`$Kqh{y|tiN zIyO#stCpfCbRADMF|d^*0YdM*5P2EB5PF#=p?^^hYEYH<2HBGMG%OuTj6}O0kM*N% z(H{uYX~2g6wmuF?30X-`c-qM$u<`JY<`rWWL-&3Fo1@R~(Xmk3@JC~My#eN~B3jNR z0UhP(?4<0r=&*skGWjhyCeCagb(iqL&2@=tPij7i51&?c5zidmq+4i`b(b)hQYs-x z`D!V3ecJk+iQ~Hh^Zbn3$QffzsYk^m(YyaEyfD%SQMdRQjN&$Y(P zu`TWZZ*3v;z%Wt_X{Lx$yvr`BDQq7@P!|-9u{fT@2nn4L`R?BCUh0vk`&I;3WG#Xb zWMMkzuirxG%Vi#4&|OFCcfiH&8>p1_+uPvH z%a6;Ux30lEU8;w@cY=+EyNtmX>w)Okwu(pqfkVF*6Qx1LNV|`zmn_iq`SIF0Tj!7|8$yXRgk*(rQ;#K7*x%b}( zapvHE!Ju|%3G2)dp%Yl-MF&0;zl9n6x~uP&sX6Wdp1AB{IHXX83|6ktFd##U0Uz%M zQk&Z_!dVpO^?0o|OeSzCqlTkSI?Y9#v9SgNTEa!O-vBzZ}%NBlmsT8v4?FPV)I1 z2Fwkmk9j|qRDEwM!d0WOA%7u4g;oaISYtl=bG25`Z!7li*5=tp=ZbYWL1b3+$D<-( zcP7Hzj!>`;--oiW-OL+#C^CED$Ol+NI0Ht;V@M%Oh51x9)hh|b%84uA(E@(wn7F_M zP-QA>P*AF{<>Y&+IJ1c-B`-DO6rsg$+7X5!3_y-S5U5l|R!7#*>ORC-Njpn>Nv|e^ zs#VP{xm#)(x$EdI`SiEO4r!M#4Yk1eXO za@WE64(MgBsVSaa-=6AxI1R=nmi>upqZWcoJA5E0MViys6%i&iTI|Ysu2^F(75n0P2#Pueh>stkXhG9V-un$v$wbpCleFpB2Zn zao$YnTuC+#^Gg6<(Y5g2B$?lM^@RwA->3_%;|1h&Ebst`LppZG=RL7Um&0!lQe`px z5BhVHIotA>S2vevIWPBG=I9dM-{=~k3$_$lel@)>X&r*e^e`u{#_U(uO(aRVMh~un zF%nu+Betv_>!6@&tuK->)TYtV#BdSv8-~Al1c&ktvz(P7aQx=7C5+S{m9EzokS{3A zK*S`7yb*_x{-wwuldwK+FcY}ry|T}@ z26Lz6Zf|b;7^-aWqJ-AuzSyBl(}yU=2(^tl{HFC-JTY&Bvrkj$&Rzb(($F8NLx4CP z9jmHFOOGYT9F$Sezk?T%F$4&Biw&(X*|VWhKi<0*-EoXc4ZA73Vb3?~q!q=YAS;UT$@Le)Upqr>*(SfWH)wxjgIF zH)yrZOfc)(b52LM1sr%1>(Fw9}XUc!`kq0o>!&_rdcqDUw|>L za43i2+R#T2C+76i#|-FZ&&`9ihMNK2IbM{jK@?N!w#Q^q_Uj0Z_EyW`L#4=6WO%Q7 z1)~{YEb_J|)?g#v5cNFnp=y8nO&4gT(Z#Y>7h8Fux71oLl{Xt)w7Y^Lg!CHHRL$Z?actMl21^e2+ad6{)#gTfLu|Vhob@uMevR=(`cG{~ z`ZF2!qb<&dNxd-wV_R!OyM~@MB>d|)GLf~_X0qee$(!_^x(m3R_jxPtHUQe9J|RH+ z9DPxTj9bbD{bFqdtS2HheTVGF=W-h`w%Lm7<!f z^XFZ*MW*b9`Y@xN0bEG=P)$&>$P4>D$R9X6iclXyO7R)UzMwlVP%qlyTErU8KN(KH zk>2MG_YaURoz;}rSmH>w-z0p(^Z=1H4?AL8%Zlq6=aCf99fyt z^bN@^BFqG%o9~WzFix0HpiKoi3M^p3%$#ooy9|!&cSemYzx}QZ_o2EH7=oj7vnDWE zR)V-z+4+TKq*m`{0m}{#_&48iGPWcSNgojEgqgNQx)I=?9dB+e&9B3H@2;S_{JSCR ztm4kp7Ry}a428|(1NS)_VcP~x6Q5n)grOh|DYr|=osFNX06lSp{?P_e+1(O${ZYds zK}yuk6%R;hWFy@Bdi5wxhUE52kX0B-fc?8nz>Cr|)RUAHEMu6?1gShm9Ec<26NBp> zyW>|Czxbv3%b8(^w}f}~H=e^KaM4kqDHy9S*0g{y!n~CZ{VyRlwAwy2fbb^64bsrI zV$3YVnk40M>|p4Ex@y(@l;!fBVR4BxH((IXEs@Y9YQ7Q1mMK7s#-IwOtXgAPZYv1A zns}RHc!ZHTR`A=lAVtocqnk<|o_DcsQ6cuw8+(Z~`#D+c%ft%QXdWL$m)Qadxk-by=`axi5Z_53S>m z-W75rh-?mx-`dUCN%AVZL35#!rM%7K;&l@EsVwYj43p^Q>s+_gf%fci49KF~3k6W*f)UqPVxrqCtSrSjJ5da&Rt_vYAc{fu!2 zE`~8dE6q|E!}isO0fbH8{|SBvhk`RMV+6sG^3MT7J!Jj`mq&7^l#l2Z8R0HG5>9U> zWB;)x$Vu}YufwKfPOf0FU>@U~;GE(L`LA6XRGc7ftZpp(C*SW;eP5%dw?Gi+=8i(O+>`+^wse2@0dY zotgO&H4&@P@4o8M0%(3xSJOKO`9yEY+2^^<*x#HQRGt$*=iDJxQv#6ndh+aN-Hu=G zNI`_?!u$?f}R^mvz7*h>wF?y2nTrIUKuMqg6))e)t8~|K^XaV<9_0v_r_QTne8U+ zX6@E2q|B)1%lS&Wg{6dR%J~{*(t6QU7mNpgw=Bcb;OviZ;!P`#h4n>Kfb~^wJ7(G8 z*C~GH@mA5IY=&iG^ecYXIZ)ZG^uZLlu$OMAO;dmp^q)OB1bmljcou$6eiq(I5!1lO z#M`I;2ISb$bw9@JGwV~Bt0-6Xm0;-a{wR6oIeW0#;m~2|F8>+#svQOM;b-iESURNK zu7r-tfZ}-PptK>4LqZAo$s*PxjrNS@ofspE=cDEo#DF5_uIte&hfC~0h)#N^J}dOR zf@dl6W7clx*9@sZ6*t9_=pMI(k9c(nN!8c0iC6jfk1r4#^kl;GJi_um^44LYUa)uX zcMJ1T#ubK|mtdLRniFxi(&zw81Cq(#(Smy?ln(19>Bh^6f2XV0N( zwIgR#_O}_z{0=(Zp?)juahcYQN81U2N}Px%bRC;oJO7T`vmM zotat!te5zLf?8uoRX_Mo(SZTmBVN&8I1Dq1npBTqUW$(*ME@w+$KMtcrXi?;wmCn` zC~cLDit4aiOhZAJ5q>>GF;kdkDRQ~zrf*1hl8=T5x-_vbs;`bk$hGsSC(8|(%+7`3 zA%KJW5mlXvhr@ZRQ7R{(|uP4Yj!djM%jASWu`!V7+D+IXWI?>DUt1Z$pzbA7UL-u%T}56wBIBLfZrrXI*HALhjf#gq)Mq3 zOV=DOD(&1e33wpnf7(fr)xeNta{!q1(P00|1aIWS()qLn2RL_kW`cw@4CGqwdJd!)QCD`tTtN91MQ0E}CU1)p0zE=_Q$P zrGJ^z&&#%@x`%fe#G~g6gP*S0^^o@xM$2^*aOOb!lfxsxx#qF@$14}-Fx9Q`A;Jd) zzc%v^riZ5AHY{T*Aa?UEUCXe%HKhL|-JuHM%YEt) ziTlly$sqet#{8f<`ci5Ru;_(Re!5ZgOb6nG%$dI9+b}|Z%E@8C#rX;|C(ZOGbF0b0 zT${HLI<_KO$)cN?&NY&kpNa?!C zrF{!O?RKPYhW)To5>s>$#v2cyW4)3)oXj!4sego=Z-_I)2~Qk@$P>!`q{VW;LdYGS ze9TH5C$V$>o8asa9mFWk0=F_nt?Nk+3afP>F>wfqxd*(d$=6LvDCq5QRWnQnp_Ar* ziZgLsEx$ZV_un4!Nu@lKZ>elCXihcPbVN1i6VcBf*l zBD7#1md?&9bG}A2tRN2&N?@`Xg39iq<-&Bn0TGEjGJjWqff%19ATfC~*{NurK9W*b ziuPs>TWnDsS$64b>WohYMk-AUl5Y`}pRbvI3Y4*a z^UJ`n6+jeWGbu5`Wi&_~slJ=bMRtK48;NsG{Vcje zzR0EDa!Jo|GCKc;)mYSImeJ1ArTw$JokpHG0k)y!(;^cTnDwDk?GqKZa z1y6l0sHE&^cw9e&0mPV0{&QZ=8?g2>PhgJpeuS1p6RcX<9>xaM_0biqn^B;A8}C*zj1KS1U5OTglrG zY>75>upnD)ZKQ}xCUJRb_5yNFqU-dIA+=*(8s|K#d{e;YF8F1?U})01bi@9Jd;PGB z6D`FVxm;20W>5cV=RU?}#e714YbE9(BApQ^;_U2nI*7fu9&U$}n``3x@R=0&VXD&!t= zmu9n$mmKl*^;Nw$3AW^;w7E|Pqac7ql5lLUG7i0A$FuSwxZD1%`z;PA z-Jy(`e}VF4P*Z=o?GnkYwTEE&18AyB#tUZ1Z6t%LYo(*s7c;`A@>hNG?g3C!TrI3q7^xc2~F8sQVZNOy7m(Dx- z`cNHyqu4(nUt#&P!LQjXu;Vfn9uOG?psAir-T8l;@;4hhz5(9nFB`L8ukNI2vIg!u zwe-P%$Lae-OXEI}M?t&k?Ja8}CBnu}RaEDOpg4hphUBka7iVBGAb{fF&5C`k(fz@F z4!4OT%T`{R35MP@Y-NoF@kzMKeXtRxeU3WTeOjK<6Cbv2Zsm7mixv3Un;x!WL>qx= z_GdILFIfTw&k<#7nh3TzKY>-(Ww8>=f+u{B$2~Eb9^nk0R^976HO9P#uwtDEcT93V zm6efH31oL-Xw55ODjJv3m5o)FGr?~ng$t!d|nwK)>`&$Zha;cK>Er?UABdUue1 zcJfr9*G2H3&@UnaB%Fs`b{k_f0PQY;JPtyfdA!A_E;LJWM<$cbd-FL2-=;}ei@;WA z+LLaSOvxPiNHoOTNdu7`NF3=%Dqs0Ix_sZ5?(u!!PL~k_-H3-*G_7H2L7RpRH_*$z zXQ{j*uTtT6bvMABIuH(h zfnS1Fu*q<@(5{WT@v-womx!eV9dkWUXRDc`^jcAgk*RwkL08W}*IX%J2P7%RYAL*dzT5?o`sekgcNsdtSN;Tf3!rEEeMg^dN zEfQDbS9Yp9YnG3}PaxGgS5N&E)`~LiN(zTk2i{b4qd>W!Dbl&+i+O$9y+-|fYl8u5 zV@F2OQoKfzK&@1l)I7CYGJ}Z+l7GnboFagCo`PfP(+2!FAR`zf^w`fB$|^t`@LPg!D1E- z1+|%oUam6s3^^B0(DdxJl9gGG@CIahZWP2}$=w2nBosk(Oo?4KhB}Gsk|0+o zEr!RFAg5}Fb`9vKhR=Vd#-pQ5(a{#-(z1${mMzIv>)%^GASq$|W_H*{dPf`CpsDZ` zTI7m#3;Tf5f_}ie{cs<^{_|2|f8yKed^4VPqQZCB2@g3o<=VtVcg-^whZE)+9}S{% zS2hlIHfS9FsZenFLNx|-HsDaEoQ<%g-wOUxEw_+tLBm4Z7t6WD(Z=p63q&apD{AqD zN=s;_kU&en8KS-(XAf?!X?bU?=4znx8xxq{R-Fc~nT?=)2r)cf>5vRa{O~YYHeUTc zj#;I**YhSbs%#9cgvk^st`j*F2*kO7$&{bwYS=fb&r}hjMbgEil}E$Z(|(>kRuyp* zQBhJbn3xiB);SVVr#OBa1vme-wp6f$#vSY-6l?1s54QoFDeOlpD&SlwZF2Jvst5=2 z^r4%f??t8Grjl`zTy=7uYxttL-3#9E;yzr zt(C6nVZ*<%LBBlWD~!c)JNcns!}U9vD$trQZJFNu`u!q#iG{hXVWS`(Yp#HKJq#R@ z%E>)AYXnZR5q(L37@p^xN1cNeT05cf{Y(VUg+7wa@YY+W2F8P}q+eDNc z5zD1^=q+Ug7=+7~N0yciQ)z51+#*v5is9j2R$$6obSMp`$&>0M3aPPaP3GS|66t}5y^l`%;um97onVuN;^}9E z3{W`zRm}+-!<5rAvD{X_Jj`ZGBa8*8IfwW{2}FnY1`Q2-6YKZz8^UinX$p+b3qvvzFpF{!3&?$h#8b$FOv@oO z#v|8)zpPFq+6KHY9Vt2ral^O__e>L*nL3Mlh~tOXw`dw0d^3x{``s*LwNKhAxw--6s!P7bJb{F0HEQ-Ao&CRt@-->@$Y%@3!0Uu`|lw8wvK%= z+h5gQR4+Z-QT-nd<`)W(G1fF!+(O*ONM}`*tK^Fn`|rp}gM^uK0W4qjz+17vXfdV4 zB1SUP5XB`(JxQLR_5j1AB_xL<(^-U(fK0;@NnQ|D0px%y|u`jSeuz4ZR%0q zj6xKW$B?j)VWZMV9h+GO*RKY524oVe_SMcU+J!deP$eA-rzz&QeH(#fRJx}bQ9lVN zw7G1jGBi`ns8}fVwK-F}gk1uEhFXzzaPr14(yYc;3e{gYYPL&m7U(8-OGfSq(|pH; zzl9rze<&xQ-cDRpFjXu9*QRjXhsxcAVpv%vVT@-?U}V;#He|e{=r|Z|3~gfkg^S7~ zIk#Yr$jzhITi8L51mhZXovNJVaIFvf-GTxYBihI~DmAyWTK%kA_#w=*Mi;I_ax>s1 zP^|^RDHzuaUp6OGv&OQEt8wlMAo3qZC|z1@^A zPj-~7N<^(Vdc09DYbPk)l0Xg|+|TLJKrzqfx69WJ?6@&B1SVr75r~>77K{~#a2_4| z3bd)d+N=5d_}~Y;kGmdDdXV6|qR9mfqv+N*^r14ZDh@&jS+v>D0Y?uMq&o;F5vP7`KN%1g-`L^CmISoIe zx~qXc=;A^3A|#qXHYhN2PP|}w#UDDOED@9DqMpWg!?rs4NvUPvi)%)BS$LcGv&v? z=MP{($^N(-w>GN94f@k6SuwX&^qg%aM_!-TsD;x%02XLp!iv|&qm5AkzS6KrQrD^- zKZt_hofcdYOJJhc`SJAr?hKzpYd-c{|9TCQ?`=z%<=9JJ&GX>PK%>x96_}$D2d(H! zACG=&9h7TFPi18cCL?`K<*jw+v%#?Vg?|DppW(G-S?RI`kSB4iNvJ`;Rli}fQFIOG zwfm~|D0feN2mbW3aK2AaEYw?xw-mSUr1{jh@+}Sc3nNp(x?3Cx2&c&QJ24pkxvh`y zE#ZpAD9s05p|XXy+4IurRpzx5(l!2Yr93Uj9w(AZnXTU;dODMwrRoqD}P*+z#z zaxOz%LFK@;4xQ_a`^C>X(z@l8K4t9S=0ivP8Y0%;pUA^)qBmhV>FFMCeGm5SSFhi_ zSysnHPD49@=Kq?G>xaCXGlPc zPzd&SuMq4;wL91b?7q+~Z@c+qGiae{X+_XOQ>`%8_WJMl>RG&2$9|&@ca{aPDXzmv4UUo=e1nKC_xE)x#G=|Mw?CT zyR_l=MvoRaCJZ?I28w9S)Q_rQ(UrKr;#t z*Ms{rDV@PkmkvD*8v_iQm*0OUHUN|vG|e!rOSOC2#Zcr7iC6BnOLwq}0{BLgUbTW^ zWax6XbiO1=#cwgLc}xy}ydd->qyu$K2Px9tAp`J_bJbg*-m$Q7J6?@Lsvq1XXWN87 zXesA2Yq50J2?YB>SaNi^4Ib>K_h=fGTryl%m^!YqVAmw=rd`E0U-sl1 zyD=akkfz#z*j{0L+^~ z561xt$rVUBbiu!&0DjwF0*Td1?4-xc+%{rj#F9wao69l*gA(8VYziJ-Dn|iz-We+u z912us7I>=xtwc*xY_$rTu-qbKA*9i`cL%?$`9$KqB^vg74f!q7czJNd;jsx@8kImj z!%BN1Xz8oP{v+5$7bd^B61u7tZoP)pP|_LA0MaBMG3kV@gh zi9|SU8k%&R$d%ssg4EE;WC|_t0d|YLi9-iL>w7KPoDsqL7)- zlM$7XnQJ+-!Lq{E{VEC@=ai*1#73_QuWI~-DnU!lQYbjrZ%T|R5gCD2#HgNAX;}fi z=px6l%Kt(s&~3>&w(~gnPym+BCRd?1TDyJ|E?|U#o-MzJN{mziqvEIn^9M$`RFqPb zD$o;@1XW>3c&H9ac}RDEAhur@2z=KV1t&4P=mG`|eQ8dA0`)ioq z7SO@b&k`IOq9-x9i}+Z}W19iNIKr_*bdLq@Y3OYi+Sj!Olgas4gYcf!W~kN@Y*U+S zv`*UCTx=|Uw0$%=6oWzw90zYf4)z#Blhb&mlwy&c-$^H+)45T{y@8+}@Ph*l2UMbP zUI8nVe_G#P?T8&=m*M=FUj;o8D%s3}$`HlIprBYxkMa;Nsuzp|VPCQduDMe-5nzD0 zix-W>!IK^u=Hf37{>nJii|-^E4!$bn2zU$`+9wd)&4v8r=ih=VF+dp{Yj#RkF#|_> zRut^0%do8QvO`rDDLGXXgM-fE;^-3Tzd?=p<*}ms+{%<)-JArW26|;2sP(`!@ms7M zD5vyp($VtNBx1G%MNTWQ1@7h3VJG&LUD+hzO-W<9nA_AmoHr5bgNmW>v6a)a|fH9gEE zZBLGBTUbIM=m)@OK+3I?^J)~{ncI8xvO7M;K!hcGPRevwX~%4<$;`VOMJeTG^a0g6P*w~doGDPqZ?2`(BflM* zc;P3f@_=gO6*vPteFBp?$Ho%xk4W(?OY;Q?c_3w4JB`~knW4u$G;ALQBGsD-k+&JP z9F6ik4MPXG-vL^A@i!eIJga3vpMrFb62860ezU<6jVdSxuY6v|tKG)m%38OfKj`Gx z_GQ+^hR~s?YN&$dBRJuM$bx|;ddr}u3#C)tM&4@3Zv6aPZPB!=m}{G`k)C0J%WBzp zRxj8_JaQ<^3hohB=p@eb;Axgt87@I}0(H(cHxlpeXXX9E@#zrEhq*xF-hu)bJdo9o zQ!#AXz&XjQID=Im$Ras}w^I35Xw+;37qyH96WlKesyxe`UAzPpB5d)7~d6 ztpf^x&Ae4O7MK^&8CD^Kc=5%RNk!-oZa~QRy{D?GmS#bzzZ)r^Xjf1`fS*ao&_Es< zG)JUX=F8+0asc}-xFtcKZdfKT69N-COlaMbWp2U?2iLxQj_nW z&@ZG)YQG|&EZ%1xOB|CI7aMQ)mRCP&;J#|gYzlC#T{EIv$rzOys7UHQ>9|1*lSZ0) zSW#%mHs$8Ii}TlyAx@Q5lCo&r^HBJ(PQuBB1h)*Q3WX9p!+!sv{WC7a4keEF`N3Tk z9E~Z**P%!chlkqO9qb_vlT_Ij-SoD8G2oi9H%?u>S&fp%3|bRxhf{78f%yjIR;9n~ z2qY16a9y?FxM_{|V*2LB-53MA7z4oP22uM(T}P8<^Er)y;fUeb725v!3TKW1@`j^kG= zc~P?|K%Ykcxz>|q=)@y>3P6XQjajofIV<^yUFHD$bb-3181`+UBQIL~Uy8cEqn*Q$ zV2nQOqbEV)pD>{TZ~_r@Hd}upqZ>-V)rVQ|NU!S(cuqKUVqfForuH*sf;lg4 z0DA7_7Hpu>VO#3!#8Fkz7$aS8fdhdi7}F#+L<}iHt*SQahfT*53P_MiN+br6I=ers z9L`nCnU9SZXX6>}(}S;&$`c(^V3J{yB9ku!gsLb|=V+;m%3?_|vp8gW6C1IB^B97+%iEx33uHFr{swuP2*)5oOUrBwsa=9l?@dI!Cn|3arY-ESAf zUsjT|)O@LXq%Kd-dmina*1@NeuasggleqtLdN$m~R256ns81ph*p$A`S`*b`vF|%K z3|M3pmr$1^!Zb~&IP)u(!qIoK2jvEmnX%Ryt>|^%?8_BPr(&Nt9Z#SQ zmjz69q%{O;Alo`HDru-PMil#cVEDbZkMhGh556s&Y5ex|7|Lt(uo8aZTZW;YH#IAH zI|nc_AAj}o?~>z`$zBGxjap3qnxV%@e6|yh#*R^wCR5EC@-&8>Wfg6vj}fL=0LOVL zGh{L=14F?geJO1z6Haf$>aSAZ9l+~J{ghzqX~WKj@~%1mtJx0uiY3}}wdzNu=?1&d zma&aV>XJ67gd?NVVOHSTHcyjt2D9NO0=Mt9iobhd%62Q?g=E=f+rdI;tDYrF@y zPP~{9HS^o$V-+B$H3KgnhX^8q7%wRm|4pYxc*?j;D7WDtCU6OC#XNIE6ob=zCDW~b z1r16ipsEvo<}9e)*bPsDwPdKjBBE)ym*TY68fa&yGeubFRBcLW(Wd+N$u+ukq}dFZ zk?K(rRatB;?c<92CsY)-eSb+6NahJS=%DF!mZ_G8m5ex-loo%7VBJRv5>YwOY0si* zG?I6=deqU^yE@kKqe(^t4fUQ2$+&Fp^=)9Y(q!AU8&mCTT5-hrbnF}exv ziBGg;p}TYf9}RsW>~HH|pfb}8x7D^4hQ6y4W`OzK!>Zq^&90xu#A1*nL$Nwe!!HuBB)+!JuW%9n9rJ81kcbNx$Va*ftrI$`+>Cic8vCr@*QmdB@9>bc^lA zodg2-(C(+t^3c7gkSWFoZcI_X(aF`SY?I>`9VGq?9qyXrX*m92i$>g5p~MUe1v8+) zB@-9v!Ign`w6?~vbJ!2f$iZtf8AWCU6+<`tDksM1?hubfP9V4@AMJoBZnYvF0zF=c z^o@i;o(;q^gc62J^PvD+k_-n4#K?WJ649xu9Vk7+x{v8aAPH0eQI$mTn#8J@ePax2 zc(6>)5GD4`{~~#Zn0$dzfT~1F+;Sh$}2i^evJmcPH>PudUYQ+*SSho^sTG zb`^=Dyh4=(QmVQw^zFTf!QnTjRHJ#KH{o1tlcPOVr^R{LwE7IETsyLTe zwPN@)otAzmXAWE5JhZHB&`2-rI8_z=msqZMAYs~x#->frd_KH3MMJ7m@}wza*~f}< z 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 literal 0 HcmV?d00001 diff --git a/documentation/commref_mb3.2.txt b/documentation/commref_mb3.2.txt new file mode 100644 index 0000000..481dc3e --- /dev/null +++ b/documentation/commref_mb3.2.txt @@ -0,0 +1,3305 @@ + + + + + Command Reference for MrBayes ver. 3.2.6 + + (c) John P. Huelsenbeck, Fredrik Ronquist + and Maxim Teslenko + + + *************************************************************************** + * * + * 1. Command summary * + * * + *************************************************************************** + + --------------------------------------------------------------------------- + Commands that are available from the command + line or from a MrBayes block include: + + About -- Describes the program + Acknowledgments -- Shows program acknowledgments + Calibrate -- Assigns dates to terminals or interior nodes + Charset -- Assigns a group of sites to a set + Charstat -- Shows status of characters + Citations -- Citation of program, models, and methods + Comparetree -- Compares the trees from two tree files + Constraint -- Defines a constraint on tree topology + Ctype -- Assigns ordering for the characters + Databreaks -- Defines data breaks for autodiscrete gamma model + Delete -- Deletes taxa from the analysis + Disclaimer -- Describes program disclaimer + Exclude -- Excludes sites from the analysis + Execute -- Executes a file + Help -- Provides detailed description of commands + Include -- Includes sites + Link -- Links parameters across character partitions + Log -- Logs screen output to a file + Lset -- Sets the parameters of the likelihood model + Manual -- Prints a command reference to a text file + Mcmc -- Starts Markov chain Monte Carlo analysis + Mcmcp -- Sets parameters of a chain (without starting analysis) + Outgroup -- Changes outgroup taxon + Pairs -- Defines nucleotide pairs (doublets) for stem models + Partition -- Assigns a character partition + Plot -- Plots parameters from MCMC analysis + Prset -- Sets the priors for the parameters + Propset -- Sets proposal probabilities and tuning parameters + Quit -- Quits the program + Report -- Controls how model parameters are reported + Restore -- Restores taxa + Set -- Sets run conditions and defines active data partition + Showbeagle -- Show available BEAGLE resources + Showmatrix -- Shows current character matrix + Showmcmctrees -- Shows trees used in mcmc analysis + Showmodel -- Shows model settings + Showmoves -- Shows moves for current model + Showparams -- Shows parameters in current model + Showusertrees -- Shows user-defined trees + Speciespartition -- Defines a partition of tips into species + Ss -- Starts stepping-stone sampling + Ssp -- Sets parameters of stepping-stone analysis (without starting) + Startvals -- Sets starting values of parameters + Sump -- Summarizes parameters from MCMC analysis + Sumss -- Summarizes parameters from stepping-stone analysis + Sumt -- Summarizes trees from MCMC analysis + Taxastat -- Shows status of taxa + Taxset -- Assigns a group of taxa to a set + Unlink -- Unlinks parameters across character partitions + Version -- Shows program version + + Commands that should be in a NEXUS file (data + block, trees block or taxa block) include: + + Begin -- Denotes beginning of block in file + Dimensions -- Defines size of character matrix + End -- Denotes end of a block in file + Endblock -- Alternative way of denoting end of a block + Format -- Defines character format in data block + Matrix -- Defines matrix of characters in data block + Taxlabels -- Defines taxon labels + Translate -- Defines alternative names for taxa + Tree -- Defines a tree + + Note that this program supports the use of the shortest unambiguous + spelling of the above commands (e.g., "exe" instead of "execute"). + --------------------------------------------------------------------------- + + *************************************************************************** + * * + * 2. MrBayes commands * + * * + *************************************************************************** + + --------------------------------------------------------------------------- + About + + This command provides some general information about the program. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Acknowledgments + + This command shows the authors' acknowledgments. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Calibrate + + This command dates a terminal or interior node in the tree. The format is + + calibrate = + + where is the name of a defined interior constraint node or the + name of a terminal node (tip) and is a prior probability distribu- + tion on the age of the node. The latter can either be a fixed date or a date + drawn from one of the available prior probability distributions. In general, + the available prior probability distributions are parameterized in terms of + the expected mean age of the distribution to facilitate for users. Some dis- + tributions put a positive probability on all ages above 0.0, while others in- + clude a minimum-age constraint and sometimes a maximum-age constraint. The + available distributions and their parameters are: + + calibrate = fixed() + calibrate = uniform(,) + calibrate = offsetexponential(,) + calibrate = truncatednormal(,,) + calibrate = lognormal(,) + calibrate = offsetlognormal(,,) + calibrate = gamma(,) + calibrate = offsetgamma(,,) + + Note that mean_age is always the mean age and stdev the standard deviation of + the distribution measured in user-defined time units. This way of specifying + the distribution parameters is often different from the parameterization used + elsewhere in the program. For instance, the standard parameters of the gamma + distribution used by MrBayes are shape (alpha) and rate (beta). If you want + to use the standard parameterization, the conversions are as follows: + + exponential distributon: mean = 1 / rate + gamma distributon: mean = alpha / beta + st.dev. = square_root (alpha / beta^2) + lognormal distributon: mean = exp (mean_log + st.dev._log^2/2) + st.dev. = square_root ((exp (st.dev._log^2) - 1) + * (exp (2*mean_log + st.dev._log^2)) + + The truncated normal distribution is an exception in that the mean_age and + stdev parameters are the mean and standard deviation of the underlying non- + truncated normal distribution. The truncation will cause the modified distri- + bution to have a higher mean and lower standard deviation. The magnitude of + that effect depends on how much of the tail of the distribution is removed. + + Note that previous to version 3.2.2, MrBayes used the standard rate parameter- + ization of the offset exponential. This should not cause a problem in most + cases because the old parameterization will result in an error in more recent + versions of MrBayes, and the likely source of the error is given in the error + message. + + For a practical example, assume that we had three fossil terminals named + 'FossilA', 'FossilB', and 'FossilC'. Assume further that we want to fix the + age of FossilA to 100.0 million years, we think that FossilB is somewhere + between 100.0 and 200.0 million years old, and that FossilC is at least 300.0 + million years old, possibly older but relatively unlikely to be more than + 400.0 million years old. Then we might use the commands: + + calibrate FossilA = fixed(100) FossilB = uniform(100,200) + calibrate FossilC = offsetexponential(300,400) + + Note that it is possible to give more than one calibration for each + 'calibrate' statement. Thus, 'calibrate FossilA= FossilB=' + would be a valid statement. + + To actually use the calibrations to obtain dated trees, you also need to set + a clock model using relevant 'brlenspr' and 'nodeagepr' options of the 'prset' + command. You may also want to examine the 'clockvarpr' and 'clockratepr' op- + tions. Furthermore, you need to activate the relevant constraint(s) using + 'topologypr', if you use any dated interior nodes in the tree. + + You may wish to remove a calibration from an interior or terminal node, which + has previously been calibrated. You can do that using + + calibrate = unconstrained + + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Charset + + This command defines a character set. The format for the charset command + is + + charset = + + For example, "charset first_pos = 1-720\3" defines a character set + called "first_pos" that includes every third site from 1 to 720. + The character set name cannot have any spaces in it. The slash (\) + is a nifty way of telling the program to assign every third (or + second, or fifth, or whatever) character to the character set. + This option is best used not from the command line, but rather as a + line in the mrbayes block of a file. Note that you can use "." to + stand in for the last character (e.g., charset 1-.\3). + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Charstat + + This command shows the status of all the characters. The correct usage + is + + charstat + + After typing "charstat", the character number, whether it is excluded + or included, and the partition identity are shown. The output is paused + every 100 characters. This pause can be turned off by setting autoclose + to "yes" (set autoclose=yes). + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Citations + + This command shows a thorough list of citations you may consider using + when publishing the results of a MrBayes analysis. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Comparetree + + This command compares the trees in two files, called "filename1" and + "filename2". It will output a bivariate plot of the split frequencies + as well as plots of the tree distance as a function of the generation. The + plots can be used to get a quick indication of whether two runs have con- + verged onto the same set of trees. The "Comparetree" command will also + produce a ".pairs" file and a ".dists" file (these file endings are added + to the end of the "Outputname"). The ".pairs" file contains the paired + split frequencies from the two tree samples; the ".dists" file contains the + tree distance values. + + Note that the "Sumt" command provides a different set of convergence diag- + nostics tools that you may also want to explore. Unlike "Comparetree", + "Sumt" can compare more than two tree samples and will calculate consensus + trees and split frequencies from the pooled samples. + + Options: + + Relburnin -- If this option is set to 'Yes', then a proportion of the + samples will be discarded as burnin when calculating summary + statistics. The proportion to be discarded is set with + Burninfrac (see below). When the Relburnin option is set to + 'No', then a specific number of samples is discarded instead. + This number is set by Burnin (see below). Note that the + burnin setting is shared with the 'mcmc', 'sumt', 'sump' and + 'plot' commands. + Burnin -- Determines the number of samples (not generations) that will + be discarded when summary statistics are calculated. The + value of this option is only relevant when Relburnin is set + to 'No'. + BurninFrac -- Determines the fraction of samples that will be discarded + when summary statistics are calculated. The value of this + option is only relevant when Relburnin is set to 'Yes'. + Example: A value for this option of 0.25 means that 25% of + the samples will be discarded. + Minpartfreq -- The minimum probability of partitions to include in summary + statistics. + Filename1 -- The name of the first tree file to compare. + Filename2 -- The name of the second tree file to compare. + Outputname -- Name of the file to which 'comparetree' results will be + printed. + + Current settings: + + Parameter Options Current Setting + -------------------------------------------------------- + Relburnin Yes/No Yes + Burnin 0 + Burninfrac 0.25 + Minpartfreq 0.00 + Filename1 temp.t + Filename2 temp.t + Outputname temp.comp + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Constraint + + This command defines a tree constraint. The format for the constraint + command is + + constraint [hard|negative|partial] = [:] + + There are three types of constraint implemented in MrBayes. The type of the + constraint is specified by using one of the three keywords 'hard', 'negative', + or 'partial' right after the name of the constraint. If no type is specified, + then the constraint is assumed to be 'hard'. + + In a rooted tree, a 'hard' constraint forces the taxa in the list to form a + monophyletic group. In an unrooted tree, the taxon split that separates the + taxa in the list from other taxa is forced to be present. The interpretation + of this depends on whether the tree is rooted on a taxon outside the list or + a taxon in the list. If the outgroup is excluded , the taxa in the list are + assumed to form a monophyletic group, but if the outgroup is included, the + taxa that are not in the list are forced together. + + A 'negative' constraint bans all the trees that have the listed taxa in the + same subtree. In other words, it is the opposite of a hard constraint. + + A 'partial' or backbone constraint is defined in terms of two sets of taxa + separated by a colon character. The constraint forces all taxa in the first + list to form a monophyletic group that does not include any taxon in the + second list. Taxa that are not included in either list can be placed in any + position on the tree, either inside or outside the constrained group. In an + unrooted tree, the two taxon lists can be switched with each other with no + effect. For a rooted tree, it is the taxa in the first list that have to be + monophyletic, that is, these taxa must share a common ancestor not shared with + any taxon in the second list. The taxa in the second list may or may not fall + in a monophyletic group depending on the rooting of the tree. + + A list of taxa can be specified using a taxset, taxon names, taxon numbers, or + any combination of the above, sepatated by spaces. The constraint is treated + as an absolute requirement of trees, that is, trees that are not compatible + with the constraint have zero prior (and hence zero posterior) probabilty. + + If you are interested in inferring ancestral states for a particular node, + you need to 'hard' constrain that node first using the 'constraint' command. + The same applies if you wish to calibrate an interior node in a dated + analysis. For more information on how to infer ancestral states, see the help + for the 'report' command. For more on dating, see the 'calibrate' command. + + It is important to note that simply defining a constraint using this + command is not sufficient for the program to actually implement the + constraint in an analysis. You must also enforce the constraints using + 'prset topologypr = constraints ()'. For more infor- + mation on this, see the help on the 'prset' command. + + Examples: + + constraint myclade = Homo Pan Gorilla + + Defines a hard constraint forcing Homo, Pan, and Gorilla to form a mono- + phyletic group or a split that does not include any other taxa. + + constraint forbiddenclade negative = Homo Pan Gorilla + + Defines a negative constraint that associates all trees where Homon, Pan, and + Gorilla form a monophyletic group with zero posterior probability. In other + words, such trees will not be sampled during MCMC. + + constraint backbone partial = Homo Gorilla : Mus + + Defines a partial constraint that keeps Mus outside of the clade defined by + the most recent common ancestor of Homo and Gorilla. Other taxa are allowed to + sit anywhere in the tree. Note that this particular constraint is meaningless + in unrooted trees. MrBayes does not assume anything about the position of the + outgroup unless it is explicitly included in the partial constraint. Therefore + a partial constraint must have at least two taxa on each side of the ':' to be + useful in analyses of unrooted trees. The case is different for rooted trees, + where it is sufficient for a partial constraint to have more than one taxon + before the ':', as in the example given above, to constrain tree space. + + To define a more complex constraint tree, simply combine constraints into a + list when issuing the 'prset topologypr' command. + + + -------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Ctype + + This command sets the character ordering for standard-type data. The + correct usage is: + + ctype : + + The available options for the specifier are: + + unordered -- Movement directly from one state to another is + allowed in an instant of time. + ordered -- Movement is only allowed between adjacent characters. + For example, perhaps only between 0 <-> 1 and 1 <-> 2 + for a three state character ordered as 0 - 1 - 2. + irreversible -- Rates of change for losses are 0. + + The characters to which the ordering is applied is specified in manner + that is identical to commands such as "include" or "exclude". For + example, + + ctype ordered: 10 23 45 + + defines charactes 10, 23, and 45 to be of type ordered. Similarly, + + ctype irreversible: 54 - 67 71-92 + + defines characters 54 to 67 and characters 71 to 92 to be of type + irreversible. You can use the "." to denote the last character, and + "all" to denote all of the characters. Finally, you can use the + specifier "\" to apply the ordering to every n-th character or + you can use predefined charsets to specify the character. + + Only one ordering can be used on any specific application of ctype. + If you want to apply different orderings to different characters, then + you need to use ctype multiple times. For example, + + ctype ordered: 1-50 + ctype irreversible: 51-100 + + sets characters 1 to 50 to be ordered and characters 51 to 100 to be + irreversible. + + The ctype command is only sensible with morphological (here called + "standard") characters. The program ignores attempts to apply char- + acter orderings to other types of characters, such as DNA characters. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Databreaks + + This command is used to specify breaks in your input data matrix. Your + data may be a mixture of genes or a mixture of different types of data. + Some of the models implemented by MrBayes account for nonindependence at + adjacent characters. The autocorrelated gamma model, for example, allows + rates at adjacent sites to be correlated. However, there is no way for + such a model to tell whether two sites, adjacent in the matrix, are + actually separated by many kilobases or megabases in the genome. The + databreaks command allows you to specify such breaks. The correct + usage is: + + databreaks ... + + For example, say you have a data matrix of 3204 characters that include + nucleotide data from three genes. The first gene covers characters 1 to + 970, the second gene covers characters 971 to 2567, and the third gene + covers characters 2568 to 3204. Also, let's assume that the genes are + not directly adjacent to one another in the genome, as might be likely + if you have mitochondrial sequences. In this case, you can specify + breaks between the genes using: + + databreaks 970 2567; + + The first break, between genes one and two, is after character 970 and + the second break, between genes two and three, is after character 2567. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Delete + + This command deletes taxa from the analysis. The correct usage is: + + delete ... + + A list of the taxon names or taxon numbers (labelled 1 to ntax in the order + in the matrix) or taxset(s) can be used. For example, the following: + + delete 1 2 Homo_sapiens + + deletes taxa 1, 2, and the taxon labelled Homo_sapiens from the analysis. + You can also use "all" to delete all of the taxa. For example, + + delete all + + deletes all of the taxa from the analysis. Of course, a phylogenetic anal- + ysis that does not include any taxa is fairly uninteresting. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Disclaimer + + This command shows the disclaimer for the program. In short, the disclaimer + states that the authors are not responsible for any silly things you may do + to your computer or any unforseen but possibly nasty things the computer + program may inadvertently do to you. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Exclude + + This command excludes characters from the analysis. The correct usage is + + exclude + + or + + exclude - + + or + + exclude + + or some combination thereof. Moreover, you can use the specifier "\" to + exclude every nth character. For example, the following + + exclude 1-100\3 + + would exclude every third character. As a specific example, + + exclude 2 3 10-14 22 + + excludes sites 2, 3, 10, 11, 12, 13, 14, and 22 from the analysis. Also, + + exclude all + + excludes all of the characters from the analysis. Excluding all characters + does not leave you much information for inferring phylogeny. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Execute + + This command executes a file called . The correct usage is: + + execute + + For example, + + execute replicase.nex + + would execute the file named "replicase.nex". This file must be in the + same directory as the executable. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Help + + This command provides useful information on the use of this program. The + correct usage is + + help + + which gives a list of all available commands with a brief description of + each or + + help + + which gives detailed information on the use of . + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Include + + This command includes characters that were previously excluded from the + analysis. The correct usage is + + include + + or + + include - + + or + + include + + or some combination thereof. Moreover, you can use the specifier "\" to + include every nth character. For example, the following + + include 1-100\3 + + would include every third character. As a specific example, + + include 2 3 10-14 22 + + includes sites 2, 3, 10, 11, 12, 13, 14, and 22 from the analysis. Also, + + include all + + includes all of the characters in the analysis. Including all of the + characters (even if many of them are bad) is a very total-evidence-like + thing to do. Doing this will make a certain group of people very happy. + On the other hand, simply using this program would make those same people + unhappy. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Link + + This command links model parameters across partitions of the data. The + correct usage is: + + link = ( or ) + + The list of parameters that can be linked includes: + + Tratio -- Transition/transversion rate ratio + Revmat -- Substitution rates of GTR model + Omega -- Nonsynonymous/synonymous rate ratio + Statefreq -- Character state frequencies + Shape -- Gamma/LNorm shape parameter + Pinvar -- Proportion of invariable sites + Correlation -- Correlation parameter of autodiscrete gamma + Ratemultiplier -- Rate multiplier for partitions + Switchrates -- Switching rates for covarion model + Topology -- Topology of tree + Brlens -- Branch lengths of tree + Speciationrate -- Speciation rates for birth-death process + Extinctionrate -- Extinction rates for birth-death process + Popsize -- Population size for coalescence process + Growthrate -- Growth rate of coalescence process + Aamodel -- Aminoacid rate matrix + Cpprate -- Rate of Compound Poisson Process (CPP) + Cppmultdev -- Standard dev. of CPP rate multipliers (log scale) + Cppevents -- CPP events + TK02var -- Variance increase in TK02 relaxed clock model + Igrvar -- Variance increase in IGR relaxed clock model + Mixedvar -- Variance increase in Mixed relaxed clock model + + For example, + + link shape=(all) + + links the gamma/lnorm shape parameter across all partitions of the data. + You can use "showmodel" to see the current linking status of the + characters. For more information on this command, see the help menu + for link's converse, unlink ("help unlink"); + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Log + + This command allows output to the screen to also be output to a file. + The useage is: + + log start/stop filename= append/replace + + The options are: + + Start/Stop -- Starts or stops logging of output to file. + Append/Replace -- Either append to or replace existing file. + Filename -- Name of log file (currently, the name of the log + file is "log.out"). + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Lset + + This command sets the parameters of the likelihood model. The likelihood + function is the probability of observing the data conditional on the phylo- + genetic model. In order to calculate the likelihood, you must assume a + model of character change. This command lets you tailor the biological + assumptions made in the phylogenetic model. The correct usage is + + lset =

    + Startparams Current/Reset Current + Starttree Current/Random/ Current + Parsimony + Nperts 0 + Data Yes/No Yes + Ordertaxa Yes/No No + Append Yes/No No + Autotune Yes/No Yes + Tunefreq 100 + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Mcmcp + + This command sets the parameters of the Markov chain Monte Carlo (MCMC) + analysis without actually starting the chain. This command is identical + in all respects to Mcmc, except that the analysis will not start after + this command is issued. For more details on the options, check the help + menu for Mcmc. + + Parameter Options Current Setting + ----------------------------------------------------- + Ngen 1000000 + Nruns 2 + Nchains 4 + Temp 0.100000 + Reweight , 0.00 v 0.00 ^ + Swapfreq 1 + Nswaps 1 + Samplefreq 500 + Printfreq 1000 + Printall Yes/No Yes + Printmax 8 + Mcmcdiagn Yes/No Yes + Diagnfreq 5000 + Diagnstat Avgstddev/Maxstddev Avgstddev + Minpartfreq 0.10 + Allchains Yes/No No + Allcomps Yes/No No + Relburnin Yes/No Yes + Burnin 0 + Burninfrac 0.25 + Stoprule Yes/No No + Stopval 0.05 + Savetrees Yes/No No + Checkpoint Yes/No Yes + Checkfreq 2000 + Filename temp.

    \n", chainParams.chainFileName); + MrBayesPrint (" Startparams Current/Reset %s \n", chainParams.startParams); + MrBayesPrint (" Starttree Current/Random/ %s \n", chainParams.startTree); + MrBayesPrint (" Parsimony \n"); + MrBayesPrint (" Nperts %d \n", chainParams.numStartPerts); + PrintYesNo (chainParams.runWithData, yesNoStr); + MrBayesPrint (" Data Yes/No %s \n", yesNoStr); + MrBayesPrint (" Ordertaxa Yes/No %s \n", chainParams.orderTaxa == YES? "Yes" : "No"); + MrBayesPrint (" Append Yes/No %s \n", chainParams.append == YES? "Yes" : "No"); + MrBayesPrint (" Autotune Yes/No %s \n", chainParams.autotune == YES? "Yes" : "No"); + MrBayesPrint (" Tunefreq %d \n", chainParams.tuneFreq); + MrBayesPrint (" \n"); + } +} + + +void PrintYesNo (int yn, char s[4]) +{ + if (yn == YES) + strcpy (s, "Yes"); + else + strcpy (s, "No"); +} + + +int ProtID (char aa) +{ + if (aa == 'A' || aa == 'a') /* Ala */ + { + return 1; + } + else if (aa == 'R' || aa == 'r') /* Arg */ + { + return 2; + } + else if (aa == 'N' || aa == 'n') /* Asn */ + { + return 4; + } + else if (aa == 'D' || aa == 'd') /* Asp */ + { + return 8; + } + else if (aa == 'C' || aa == 'c') /* Cys */ + { + return 16; + } + else if (aa == 'Q' || aa == 'q') /* Gln */ + { + return 32; + } + else if (aa == 'E' || aa == 'e') /* Glu */ + { + return 64; + } + else if (aa == 'G' || aa == 'g') /* Gly */ + { + return 128; + } + else if (aa == 'H' || aa == 'h') /* His */ + { + return 256; + } + else if (aa == 'I' || aa == 'i') /* Ile */ + { + return 512; + } + else if (aa == 'L' || aa == 'l') /* Leu */ + { + return 1024; + } + else if (aa == 'K' || aa == 'k') /* Lys */ + { + return 2048; + } + else if (aa == 'M' || aa == 'm') /* Met */ + { + return 4096; + } + else if (aa == 'F' || aa == 'f') /* Phe */ + { + return 8192; + } + else if (aa == 'P' || aa == 'p') /* Pro */ + { + return 16384; + } + else if (aa == 'S' || aa == 's') /* Ser */ + { + return 32768; + } + else if (aa == 'T' || aa == 't') /* Thr */ + { + return 65536; + } + else if (aa == 'W' || aa == 'w') /* Trp */ + { + return 131072; + } + else if (aa == 'Y' || aa == 'y') /* Tyr */ + { + return 262144; + } + else if (aa == 'V' || aa == 'v') /* Val */ + { + return 524288; + } + else if (aa == 'X' || aa == 'x') /* Nonidentified */ + { + return MISSING; + } + else if (aa == gapId) + { + return GAP; + } + else if (aa == missingId) + { + return MISSING; + } + else + return -1; +} + + +int RemoveLastFromString (char *s1) +{ + int i, j, numPrev, numRemoved; + + /* We remove the last name from the string simply by deleting the last "|". */ + + i = numPrev = 0; + while (s1[i] != '\0') + { + if (s1[i] == '|') + numPrev++; + i++; + } + + i = j = numRemoved = 0; + while (s1[i] != '\0') + { + if (s1[i] == '|') + j++; + if (numPrev == j) + { + s1[i] = ' '; + numRemoved++; + break; + } + i++; + } + + if (numRemoved != 1) + { + MrBayesPrint ("%s Could not find name to remove\n", spacer); + return (ERROR); + } + + return (NO_ERROR); +} + + +int MBResID (char nuc) +{ + char n; + + n = nuc; + + if (n == '0' || n == 'a' || n == 'A') + { + return 1; + } + else if (n == '1' || n == 'b' || n == 'B') + { + return 2; + } + else if (n == gapId) + { + return GAP; + } + else if (n == missingId) + { + return MISSING; + } + else + return -1; +} + + +/* Reset character flags */ +void ResetCharacterFlags (void) +{ + /* reset all characters flags */ + numChar = 0; /* number of defined characters */ + defChars = NO; /* flag for whether number of characters is known*/ + defMatrix = NO; /* flag for whether matrix is successfull read */ + matrixHasPoly = NO; /* flag for whether matrix has polymorphisms */ + isInAmbig = NO; /* flag for whether the parser is within () */ + isInPoly = NO; /* flag for whether the parser is within {} */ + defPartition = NO; /* flag for whether character partition is read */ + defPairs = NO; /* flag indicating whether pairs have been defnd */ + numDefinedPartitions = 0; /* number of defined partitions */ + partitionNum = 0; /* partition number currently enforced */ + numCurrentDivisions = 0; /* number of partitions of data */ + numCharSets = 0; /* holds number of character sets */ + numDivisions = 1; /* holds number of partitions */ + isMixed = NO; /* are data mixed ? */ + dataType = NONE; /* holds datatype */ + matchId = '\0'; /* no default for match character */ + gapId = '\0'; /* no default for gap character */ + missingId = '\0'; /* no default for missing characters */ +} + + +/* Reset taxa flags */ +void ResetTaxaFlags (void) +{ + numTaxa = 0; /* number of taxa */ + numNamedTaxa = 0; /* number of named taxa */ + defTaxa = NO; /* flag for whether number of taxa is known */ + isTaxsetDef = NO; /* is a taxlabels set defined */ + numDefinedConstraints = 0; /* holds number of defined constraints */ + definedConstraint = NULL; + definedConstraintTwo = NULL; + definedConstraintPruned = NULL; + definedConstraintTwoPruned = NULL; + constraintNames = NULL; + nodeCalibration = NULL; + tempActiveConstraints = NULL; /* holds temp info on active constraints */ + outGroupNum = 0; /* default outgroup */ + numTaxaSets = 0; /* holds number of taxa sets */ +} + + +/* SetPartition: Set model partition */ +int SetPartition (int part) +{ + int i, j; + + /* Free space for modelParams and modelSettings */ + if (memAllocs[ALLOC_MODEL] == YES) + { + for (i=0; i numCurrentDivisions) + numCurrentDivisions = j; + } + + /* Allocate space for partition models */ + modelParams = (Model *) SafeCalloc (numCurrentDivisions, sizeof (Model)); + modelSettings = (ModelInfo *) SafeCalloc (numCurrentDivisions, sizeof (ModelInfo)); + if (!modelParams || !modelSettings) + { + MrBayesPrint ("%s Could not allocate modelParams or modelSettings\n", spacer); + if (modelParams) + free (modelParams); + if (modelSettings) + free (modelSettings); + return (ERROR); + } + memAllocs[ALLOC_MODEL] = YES; + + numVars = (int *) SafeRealloc ((void *) numVars, 3 * (size_t)numCurrentDivisions * sizeof(int)); + tempLinkUnlinkVec = numVars + numCurrentDivisions; + activeParts = numVars + 2*numCurrentDivisions; + + tempNum = (MrBFlt *) SafeRealloc ((void *) tempNum, 6 * sizeof(MrBFlt)); + + activeParams[0] = (int *) SafeRealloc ((void *) (activeParams[0]), (size_t)NUM_LINKED * (size_t)numCurrentDivisions * sizeof(int)); + for (i=1; i numSpecies) + numSpecies = j; + } + + return (NO_ERROR); +} + + +int SetTaxaFromTranslateTable (void) +{ + int i; + + if (numTaxa != 0) + return ERROR; + + for (i=0; i99) + { + MrBayesPrint ("%s Taxon name %s is too long. Maximun 99 characters is allowed.\n", spacer, transFrom[i]); + return (ERROR); + } + AddString(&taxaNames, numTaxa, transFrom[i]); + numTaxa++; + } + + return NO_ERROR; +} + + +void SetUpParms (void) +{ + ParmInfoPtr p = paramTable; + + PARAM (0, "NEXUS", DoNexusParm, "NEXUS|\0"); + PARAM (1, "Data", DoBeginParm, "\0"); + PARAM (2, "Mrbayes", DoBeginParm, "\0"); + PARAM (3, "Trees", DoBeginParm, "\0"); + PARAM (4, "Ntax", DoDimensionsParm, "\0"); + PARAM (5, "Nchar", DoDimensionsParm, "\0"); + PARAM (6, "Interleave", DoFormatParm, "Yes|No|\0"); + PARAM (7, "Datatype", DoFormatParm, "Dna|Rna|Protein|Restriction|Standard|Continuous|Mixed|\0"); + PARAM (8, "Gap", DoFormatParm, "\0"); + PARAM (9, "Missing", DoFormatParm, "\0"); + PARAM (10, "Matchchar", DoFormatParm, "\0"); + PARAM (11, "MatrixInfo", DoMatrixParm, "\0"); + PARAM (12, "Filename", DoExecuteParm, "\0"); + PARAM (13, "Autoclose", DoSetParm, "Yes|No|\0"); + PARAM (14, "Partition", DoSetParm, "\0"); + PARAM (15, "Xxxxxxxxxx", DoCharsetParm, "\0"); + PARAM (16, "Xxxxxxxxxx", DoPartitionParm, "\0"); + PARAM (17, "Seed", DoMcmcParm, "\0"); + PARAM (18, "Ngen", DoMcmcParm, "\0"); + PARAM (19, "Samplefreq", DoMcmcParm, "\0"); + PARAM (20, "Printfreq", DoMcmcParm, "\0"); + PARAM (21, "Nchains", DoMcmcParm, "\0"); + PARAM (22, "Temp", DoMcmcParm, "\0"); + PARAM (23, "Filename", DoMcmcParm, "\0"); + PARAM (24, "Burnin", DoMcmcParm, "\0"); + PARAM (25, "Starttree", DoMcmcParm, "Random|Current|User|Parsimony|NJ|\0"); + PARAM (26, "Nperts", DoMcmcParm, "\0"); + PARAM (27, "Savebrlens", DoMcmcParm, "Yes|No|\0"); + PARAM (28, "Nucmodel", DoLsetParm, "4by4|Doublet|Codon|Protein|\0"); + PARAM (29, "Nst", DoLsetParm, "1|2|6|Mixed|\0"); + PARAM (30, "Aamodel", DoLsetParm, "Poisson|Equalin|Jones|Dayhoff|Mtrev|Mtmam|Wag|Rtrev|Cprev|Vt|Blosum|Blossum|LG|\0"); + PARAM (31, "Parsmodel", DoLsetParm, "Yes|No|\0"); + PARAM (32, "Omegavar", DoLsetParm, "Equal|Ny98|M3|M10|\0"); + PARAM (33, "Code", DoLsetParm, "Universal|Vertmt|Invermt|Mycoplasma|Yeast|Ciliate|Echinoderm|Euplotid|Metmt|\0"); + PARAM (34, "Coding", DoLsetParm, "All|Variable|Informative|Nosingletons|Noabsencesites|Nopresencesites|Nosingletonpresence|Nosingletonabsence|\0"); + PARAM (35, "Seqerror", DoPrsetParm, "\0"); + PARAM (36, "Tratiopr", DoPrsetParm, "Beta|Fixed|\0"); + PARAM (37, "Revmatpr", DoPrsetParm, "Dirichlet|Fixed|\0"); + PARAM (38, "Omegapr", DoPrsetParm, "Dirichlet|Fixed|\0"); + PARAM (39, "Statefreqpr", DoPrsetParm, "Dirichlet|Fixed|\0"); + PARAM (40, "Ngammacat", DoLsetParm, "\0"); + PARAM (41, "Shapepr", DoPrsetParm, "Uniform|Exponential|Fixed|\0"); + PARAM (42, "Ratecorrpr", DoPrsetParm, "Uniform|Fixed|\0"); + PARAM (43, "Pinvarpr", DoPrsetParm, "Uniform|Fixed|\0"); + PARAM (44, "Covswitchpr", DoPrsetParm, "Uniform|Exponential|Fixed|\0"); + PARAM (45, "Xxxxxxxxxx", DoExcludeParm, "\0"); + PARAM (46, "Xxxxxxxxxx", DoIncludeParm, "\0"); + PARAM (47, "Xxxxxxxxxx", DoDeleteParm, "\0"); + PARAM (48, "Xxxxxxxxxx", DoRestoreParm, "\0"); + PARAM (49, "Xxxxxxxxxx", DoTaxasetParm, "\0"); + PARAM (50, "Xxxxxxxxxx", DoHelpParm, "\0"); + PARAM (51, "Applyto", DoLsetParm, "\0"); + PARAM (52, "Rates", DoLsetParm, "Equal|Gamma|LNorm|Propinv|Invgamma|Adgamma|\0"); + PARAM (53, "Covarion", DoLsetParm, "Yes|No|\0"); + PARAM (54, "Applyto", DoPrsetParm, "\0"); + PARAM (55, "Tratio", DoLinkParm, "\0"); + PARAM (56, "Revmat", DoLinkParm, "\0"); + PARAM (57, "Omega", DoLinkParm, "\0"); + PARAM (58, "Statefreq", DoLinkParm, "\0"); + PARAM (59, "Shape", DoLinkParm, "\0"); + PARAM (60, "Pinvar", DoLinkParm, "\0"); + PARAM (61, "Correlation", DoLinkParm, "\0"); + PARAM (62, "Ratemultiplier", DoLinkParm, "\0"); + PARAM (63, "Switchrates", DoLinkParm, "\0"); + PARAM (64, "Symdirihyperpr", DoPrsetParm, "Uniform|Exponential|Fixed|\0"); + PARAM (65, "Xxxxxxxxxx", DoCtypeParm, "\0"); + PARAM (66, "Xxxxxxxxxx", DoConstraintParm, "\0"); + PARAM (67, "Topologypr", DoPrsetParm, "Uniform|Constraints|Fixed|Speciestree|\0"); + PARAM (68, "Brlenspr", DoPrsetParm, "Unconstrained|Clock|Relaxedclock|Fixed|\0"); + PARAM (69, "Speciationpr", DoPrsetParm, "Uniform|Exponential|Fixed|\0"); + PARAM (70, "Extinctionpr", DoPrsetParm, "Beta|Fixed|\0"); + PARAM (71, "Popsizepr", DoPrsetParm, "Lognormal|Uniform|Gamma|Normal|Fixed|\0"); + PARAM (72, "Topology", DoLinkParm, "\0"); + PARAM (73, "Brlens", DoLinkParm, "\0"); + PARAM (74, "Speciationrate", DoLinkParm, "\0"); + PARAM (75, "Extinctionrate", DoLinkParm, "\0"); + PARAM (76, "Popsize", DoLinkParm, "\0"); + PARAM (77, "Ratepr", DoPrsetParm, "Variable|Dirichlet|Fixed|\0"); + PARAM (78, "Xxxxxxxxxx", DoOutgroupParm, "\0"); + PARAM (79, "Xxxxxxxxxx", DoTreeParm, "\0"); + PARAM (80, "Filename", DoSumtParm, "\0"); + PARAM (81, "Burnin", DoSumtParm, "\0"); + PARAM (82, "Contype", DoSumtParm, "Halfcompat|Allcompat|\0"); + PARAM (83, "Xxxxxxxxxx", DoTranslateParm, "\0"); + PARAM (84, "Swapfreq", DoMcmcParm, "\0"); + PARAM (85, "Start", DoLogParm, "\0"); + PARAM (86, "Stop", DoLogParm, "\0"); + PARAM (87, "Filename", DoLogParm, "\0"); + PARAM (88, "Append", DoLogParm, "\0"); + PARAM (89, "Replace", DoLogParm, "\0"); + PARAM (90, "Nbetacat", DoLsetParm, "\0"); + PARAM (91, "Augment", DoLsetParm, "Yes|No|\0"); + PARAM (92, "Xxxxxxxxxx", DoPairsParm, "\0"); + PARAM (93, "Xxxxxxxxxx", DoBreaksParm, "\0"); + PARAM (94, "Nowarnings", DoSetParm, "Yes|No|\0"); + PARAM (95, "Showtreeprobs", DoSumtParm, "Yes|No|\0"); + PARAM (96, "Filename", DoSumpParm, "\0"); + PARAM (97, "Burnin", DoSumpParm, "\0"); + PARAM (98, "Reweight", DoMcmcParm, "\0"); + PARAM (99, "Noop", DoMcmcParm, "\0"); + PARAM (100, "Ny98omega1pr", DoPrsetParm, "Beta|Fixed|\0"); + PARAM (101, "Ny98omega3pr", DoPrsetParm, "Uniform|Exponential|Fixed|\0"); + PARAM (102, "Codoncatfreqs", DoPrsetParm, "Dirichlet|Fixed|\0"); + PARAM (103, "Sampleprob", DoPrsetParm, "\0"); + PARAM (104, "Aamodelpr", DoPrsetParm, "Fixed|Mixed|\0"); + PARAM (105, "Aamodel", DoLinkParm, "\0"); + PARAM (106, "Filename", DoPlotParm, "\0"); + PARAM (107, "Parameter", DoPlotParm, "\0"); + PARAM (108, "Match", DoPlotParm, "Perfect|Consistentwith|All|\0"); + PARAM (109, "Burnin", DoPlotParm, "\0"); + PARAM (110, "Brownscalepr", DoPrsetParm, "Uniform|Gamma|Gammamean|Fixed|\0"); + PARAM (111, "Browncorrpr", DoPrsetParm, "Uniform|Fixed|\0"); + PARAM (112, "Pbf", DoMcmcParm, "Yes|No|\0"); + PARAM (113, "Pbfinitburnin", DoMcmcParm, "\0"); + PARAM (114, "Pbfsamplefreq", DoMcmcParm, "\0"); + PARAM (115, "Pbfsampletime", DoMcmcParm, "\0"); + PARAM (116, "Pbfsampleburnin",DoMcmcParm, "\0"); + PARAM (117, "Growthpr", DoPrsetParm, "Uniform|Exponential|Fixed|Normal|\0"); + PARAM (118, "Growthrate", DoLinkParm, "\0"); + PARAM (119, "Xxxxxxxxxx", DoCalibrateParm, "Unconstrained|Fixed|Uniform|Offsetexponential|Truncatednormal|Lognormal|Offsetlognormal|Gamma|Offsetgamma|\0"); + PARAM (120, "Calwaitpr", DoPrsetParm, "Exponential|Fixed|\0"); /* not used but leave it in to not destroy mapping to commands */ + PARAM (121, "M3omegapr", DoPrsetParm, "Exponential|Fixed|\0"); + PARAM (122, "Applyto", DoReportParm, "\0"); + PARAM (123, "Tratio", DoReportParm, "Dirichlet|Ratio|\0"); + PARAM (124, "Revmat", DoReportParm, "Dirichlet|Ratio|\0"); + PARAM (125, "Ratemult", DoReportParm, "Dirichlet|Scaled|Ratio|\0"); + PARAM (126, "Filename", DoManualParm, "\0"); + PARAM (127, "Filename1", DoCompareTreeParm, "\0"); + PARAM (128, "Filename2", DoCompareTreeParm, "\0"); + PARAM (129, "Outputname", DoCompareTreeParm, "\0"); + PARAM (130, "Burnin", DoCompareTreeParm, "\0"); + PARAM (131, "Ploidy", DoLsetParm, "Haploid|Diploid|Zlinked|\0"); + PARAM (132, "Swapadjacent", DoMcmcParm, "Yes|No|\0"); + PARAM (133, "Treeagepr", DoPrsetParm, "Fixed|Uniform|Offsetexponential|Truncatednormal|Lognormal|Offsetlognormal|Gamma|Offsetgamma|\0"); + PARAM (134, "Ancstates", DoReportParm, "Yes|No|\0"); + PARAM (135, "Siterates", DoReportParm, "Yes|No|\0"); + PARAM (136, "Possel", DoReportParm, "Yes|No|\0"); + PARAM (137, "Plot", DoSumpParm, "Yes|No|\0"); + PARAM (138, "Table", DoSumpParm, "Yes|No|\0"); + PARAM (139, "Minprob", DoSumpParm, "\0"); + PARAM (140, "Printtofile", DoSumpParm, "Yes|No|\0"); + PARAM (141, "Outputname", DoSumpParm, "\0"); + PARAM (142, "Redirect", DoMcmcParm, "Yes|No|\0"); + PARAM (143, "Swapseed", DoMcmcParm, "\0"); + PARAM (144, "Runidseed", DoMcmcParm, "\0"); + PARAM (145, "Quitonerror", DoSetParm, "Yes|No|\0"); + PARAM (146, "Printbrlens", DoSumtParm, "Yes|No|\0"); + PARAM (147, "Brlensgeq", DoSumtParm, "\0"); + PARAM (148, "Minpartfreq", DoMcmcParm, "\0"); + PARAM (149, "Allchains", DoMcmcParm, "Yes|No|\0"); + PARAM (150, "Mcmcdiagn", DoMcmcParm, "Yes|No|\0"); + PARAM (151, "Diagnfreq", DoMcmcParm, "\0"); + PARAM (152, "Nruns", DoMcmcParm, "\0"); + PARAM (153, "Stoprule", DoMcmcParm, "Yes|No|\0"); + PARAM (154, "Stopval", DoMcmcParm, "\0"); + PARAM (155, "Relburnin", DoMcmcParm, "Yes|No|\0"); + PARAM (156, "Burninfrac", DoMcmcParm, "\0"); + PARAM (157, "Allcomps", DoMcmcParm, "Yes|No|\0"); + PARAM (158, "Printall", DoMcmcParm, "Yes|No|\0"); + PARAM (159, "Printmax", DoMcmcParm, "\0"); + PARAM (160, "Data", DoMcmcParm, "Yes|No|\0"); + PARAM (161, "Nruns", DoSumpParm, "\0"); + PARAM (162, "Allruns", DoSumpParm, "Yes|No|\0"); + PARAM (163, "Nruns", DoSumtParm, "\0"); + PARAM (164, "Ntrees", DoSumtParm, "\0"); + PARAM (165, "Calctreeprobs", DoSumtParm, "Yes|No|\0"); + PARAM (166, "Ordertaxa", DoMcmcParm, "Yes|No|\0"); + PARAM (167, "Ordertaxa", DoSumtParm, "Yes|No|\0"); + PARAM (168, "Aarevmatpr", DoPrsetParm, "Dirichlet|Fixed|\0"); + PARAM (169, "Nswaps", DoMcmcParm, "\0"); + PARAM (170, "Autoreplace", DoSetParm, "Yes|No|\0"); + PARAM (171, "Npthreads", DoSetParm, "\0"); + PARAM (172, "Cppratepr", DoPrsetParm, "Fixed|Exponential|\0"); + PARAM (173, "Cppmultdevpr", DoPrsetParm, "Fixed|\0"); + PARAM (174, "TK02varpr", DoPrsetParm, "Fixed|Exponential|Uniform|\0"); + PARAM (175, "Pfile", DoSumtParm, "\0"); + PARAM (176, "Pfile", DoSumtParm, "\0"); + PARAM (177, "Autocomplete", DoSumtParm, "Yes|No|\0"); + PARAM (178, "Autocomplete", DoSumpParm, "Yes|No|\0"); + PARAM (179, "Userlevel", DoSetParm, "Standard|Developer|\0"); + PARAM (180, "Allavailable", DoShowmovesParm, "Yes|No|\0"); + PARAM (181, "Seed", DoSetParm, "\0"); + PARAM (182, "Swapseed", DoSetParm, "\0"); + PARAM (183, "Clockratepr", DoPrsetParm, "Fixed|Normal|Lognormal|Exponential|Gamma|\0"); + PARAM (184, "Nodeagepr", DoPrsetParm, "Unconstrained|Calibrated|\0"); + PARAM (185, "Clockvarpr", DoPrsetParm, "Strict|Cpp|TK02|Igr|Bm|Ibr|Mixed|\0"); + PARAM (186, "Xxxxxxxxxx", DoPropsetParm, "\0"); + PARAM (187, "Xxxxxxxxxx", DoStartvalsParm, "\0"); + PARAM (188, "Usegibbs", DoLsetParm, "Yes|No|\0"); + PARAM (189, "Gibbsfreq", DoLsetParm, "\0"); + PARAM (190, "Checkpoint", DoMcmcParm, "Yes|No|\0"); + PARAM (191, "Checkfreq", DoMcmcParm, "\0"); + PARAM (192, "Tree", DoReportParm, "Topology|Brlens|\0"); + PARAM (193, "Cpprate", DoLinkParm, "\0"); + PARAM (194, "Cppmultdev", DoLinkParm, "\0"); + PARAM (195, "Cppevents", DoLinkParm, "\0"); + PARAM (196, "TK02var", DoLinkParm, "\0"); + PARAM (197, "TK02branchrates",DoLinkParm, "\0"); + PARAM (198, "Savetrees", DoMcmcParm, "Yes|No|\0"); + PARAM (199, "Diagnstat", DoMcmcParm, "Avgstddev|Maxstddev|\0"); + PARAM (200, "Startparams", DoMcmcParm, "Reset|Current|\0"); + PARAM (201, "Characters", DoBeginParm, "\0"); + PARAM (202, "Startingtrees", DoMcmcParm, "\0"); + PARAM (203, "Xxxxxxxxxx", DoUserTreeParm, "\0"); + PARAM (204, "Outputname", DoSumtParm, "\0"); + PARAM (205, "Table", DoSumtParm, "Yes|No|\0"); + PARAM (206, "Summary", DoSumtParm, "Yes|No|\0"); + PARAM (207, "Consensus", DoSumtParm, "Yes|No|\0"); + PARAM (208, "Minpartfreq", DoSumtParm, "\0"); + PARAM (209, "Relburnin", DoSumtParm, "Yes|No|\0"); + PARAM (210, "Burninfrac", DoSumtParm, "\0"); + PARAM (211, "Relburnin", DoSumpParm, "Yes|No|\0"); + PARAM (212, "Burninfrac", DoSumpParm, "\0"); + PARAM (213, "Append", DoMcmcParm, "Yes|No|\0"); + PARAM (214, "Autotune", DoMcmcParm, "Yes|No|\0"); + PARAM (215, "Tunefreq", DoMcmcParm, "\0"); + PARAM (216, "Scientific", DoSetParm, "Yes|No|\0"); + PARAM (217, "Siteomega", DoReportParm, "Yes|No|\0"); + PARAM (218, "Igrvarpr", DoPrsetParm, "Fixed|Exponential|Uniform|\0"); + PARAM (219, "Symbols", DoFormatParm, "\0"); + PARAM (220, "Equate", DoFormatParm, "\0"); + PARAM (221, "Relburnin", DoCompareTreeParm, "Yes|No|\0"); + PARAM (222, "Burninfrac", DoCompareTreeParm, "\0"); + PARAM (223, "Minpartfreq", DoCompareTreeParm, "\0"); + PARAM (224, "Relburnin", DoPlotParm, "Yes|No|\0"); + PARAM (225, "Burninfrac", DoPlotParm, "\0"); + PARAM (226, "Taxa", DoBeginParm, "\0"); + PARAM (227, "Xxxxxxxxxx", DoBeginParm, "\0"); + PARAM (228, "Xxxxxxxxxx", DoTaxlabelsParm, "\0"); + PARAM (229, "Dir", DoSetParm, "\0"); + PARAM (230, "Conformat", DoSumtParm, "Figtree|Simple|\0"); + PARAM (231, "Hpd", DoSumpParm, "Yes|No|\0"); + PARAM (232, "Hpd", DoSumtParm, "Yes|No|\0"); + PARAM (233, "Usebeagle", DoSetParm, "Yes|No|\0"); + PARAM (234, "Beagledevice", DoSetParm, "Cpu|Gpu|\0"); + PARAM (235, "Beagleprecision",DoSetParm, "Single|Double|\0"); + PARAM (236, "Beaglesse", DoSetParm, "Yes|No|\0"); + PARAM (237, "Beagleopenmp", DoSetParm, "Yes|No|\0"); + PARAM (238, "Beaglethreads", DoSetParm, "Yes|No|\0"); + PARAM (239, "Beaglescaling", DoSetParm, "Always|Dynamic|\0"); + PARAM (240, "Beaglefreq", DoSetParm, "\0"); + PARAM (241, "Popvarpr", DoPrsetParm, "Equal|Variable|\0"); + PARAM (242, "Igrvar", DoLinkParm, "\0"); + PARAM (243, "Igrbranchrates", DoLinkParm, "\0"); + PARAM (244, "Xxxxxxxxxx", DoSpeciespartitionParm, "\0"); + PARAM (245, "Speciespartition", DoSetParm, "\0"); + PARAM (246, "Revratepr", DoPrsetParm, "Symdir|\0"); + PARAM (247, "Samplestrat", DoPrsetParm, "Random|Diversity|Cluster|FossilTip|\0"); + PARAM (248, "Burninss", DoSsParm, "\0"); + PARAM (249, "Nsteps", DoSsParm, "\0"); + PARAM (250, "Alpha", DoSsParm, "\0"); + PARAM (251, "Bmvarpr", DoPrsetParm, "Fixed|Exponential|Uniform|\0"); + PARAM (252, "Bmvar", DoLinkParm, "\0"); + PARAM (253, "Bmbranchrates", DoLinkParm, "\0"); + PARAM (254, "Ibrvarpr", DoPrsetParm, "Fixed|Exponential|Uniform|\0"); + PARAM (255, "Ibrvar", DoLinkParm, "\0"); + PARAM (256, "Ibrbranchlens", DoLinkParm, "\0"); + PARAM (257, "FromPrior", DoSsParm, "Yes|No|\0"); + PARAM (258, "Filename", DoSumSsParm, "\0"); + PARAM (259, "Burnin", DoSumSsParm, "\0"); + PARAM (260, "Nruns", DoSumSsParm, "\0"); + PARAM (261, "Allruns", DoSumSsParm, "Yes|No|\0"); + PARAM (262, "Askmore", DoSumSsParm, "Yes|No|\0"); + PARAM (263, "Relburnin", DoSumSsParm, "Yes|No|\0"); + PARAM (264, "Burninfrac", DoSumSsParm, "\0"); + PARAM (265, "Discardfrac", DoSumSsParm, "\0"); + PARAM (266, "Smoothing", DoSumSsParm, "\0"); + PARAM (267, "Steptoplot", DoSumSsParm, "\0"); + PARAM (268, "Precision", DoSetParm, "\0"); + PARAM (269, "Fossilizationpr", DoPrsetParm, "Beta|Fixed|\0"); + PARAM (270, "Fossilizationrate", DoLinkParm, "\0"); + PARAM (271, "Generatepr", DoPrsetParm, "Variable|Fixed|\0"); + PARAM (272, "Mixedvarpr", DoPrsetParm, "Fixed|Exponential|Uniform|\0"); + PARAM (273, "Mixedvar", DoLinkParm, "\0"); + PARAM (274, "Mixedbrchrates", DoLinkParm, "\0"); + PARAM (275, "Beagleresource", DoSetParm, "\0"); + + /* NOTE: If a change is made to the parameter table, make certain you change + NUMPARAMS (now 276; one more than last index) at the top of this file. */ + /* CmdType commands[] */ +} + + +void ShowNodes (TreeNode *p, int indent, int isThisTreeRooted) +{ + if (p != NULL) + { + printf (" "); + if (p->left == NULL && p->right == NULL && p->anc != NULL) + { + printf ("%*cN %d (l=%d r=%d a=%d) %1.15lf (%s) scalerNode=%d isDated=%d ", + indent, ' ', Dex(p), Dex(p->left), Dex(p->right), Dex(p->anc), p->length, p->label, p->scalerNode, p->isDated); + } + else if (p->left != NULL && p->right == NULL && p->anc == NULL) + { + if (isThisTreeRooted == NO) + { + if (p->label[0] == '\0' || p->label[0] == '\n' || p->label[0] == ' ') + printf ("%*cN %d (l=%d r=%d a=%d) (---) scalerNode=%d ", + indent, ' ', Dex(p), Dex(p->left), Dex(p->right), Dex(p->anc), p->scalerNode); + else + printf ("%*cN %d (l=%d r=%d a=%d) (%s) scalerNode=%d ", + indent, ' ', Dex(p), Dex(p->left), Dex(p->right), Dex(p->anc), p->label, p->scalerNode); + } + else + { + printf ("%*cN %d (l=%d r=%d a=%d) X.XXXXXX scalerNode=%d ", + indent, ' ', Dex(p), Dex(p->left), Dex(p->right), Dex(p->anc), p->scalerNode); + } + } + else + { + if (p->anc != NULL) + { + if (p->anc->anc == NULL && isThisTreeRooted == YES) + printf ("%*cN %d (l=%d r=%d a=%d) X.XXXXXX scalerNode=%d ", + indent, ' ', Dex(p), Dex(p->left), Dex(p->right), Dex(p->anc), p->scalerNode); + else + printf ("%*cN %d (l=%d r=%d a=%d) %1.15lf scalerNode=%d ", + indent, ' ', Dex(p), Dex(p->left), Dex(p->right), Dex(p->anc), p->length, p->scalerNode); + } + } + if (isThisTreeRooted == YES) + printf ("depth=%1.15lf\n", p->nodeDepth); + else + printf ("\n"); + ShowNodes (p->left, indent + 2, isThisTreeRooted); + ShowNodes (p->right, indent + 2, isThisTreeRooted); + } +} + + +int StandID (char nuc) +{ + char n; + + /* Note that if you change how many states are recognized, you need + to look at IsMissing */ + n = nuc; + + if (n == '0') + { + return 1; + } + else if (n == '1') + { + return 2; + } + else if (n == '2') + { + return 4; + } + else if (n == '3') + { + return 8; + } + else if (n == '4') + { + return 16; + } + else if (n == '5') + { + return 32; + } + else if (n == '6') + { + return 64; + } + else if (n == '7') + { + return 128; + } + else if (n == '8') + { + return 256; + } + else if (n == '9') + { + return 512; + } + else if (n == missingId) + { + return MISSING; + } + else if (n == gapId) + { + return GAP; + } + else + return -1; +} + + +void State_CODON (char *state, int code, int division) +{ + state[0] = StateCode_NUC4(modelParams[division].codonNucs[code][0]); + state[1] = StateCode_NUC4(modelParams[division].codonNucs[code][1]); + state[2] = StateCode_NUC4(modelParams[division].codonNucs[code][2]); + state[3] = '\0'; +} + + +void State_DOUBLET (char *state, int code) +{ + state[0] = code/4 + 'A'; + state[1] = code%4 + 'A'; + state[2] = '\0'; +} + + +int StateCode_AA (int n) +{ + if (n == 0) + return 'A'; /* Ala */ + else if (n == 1) + return 'R'; /* Arg */ + else if (n == 2) + return 'N'; /* Asn */ + else if (n == 3) + return 'D'; /* Asp */ + else if (n == 4) + return 'C'; /* Cys */ + else if (n == 5) + return 'Q'; /* Gln */ + else if (n == 6) + return 'E'; /* Glu */ + else if (n == 7) + return 'G'; /* Gly */ + else if (n == 8) + return 'H'; /* His */ + else if (n == 9) + return 'I'; /* Ile */ + else if (n == 10) + return 'L'; /* Leu */ + else if (n == 11) + return 'K'; /* Lys */ + else if (n == 12) + return 'M'; /* Met */ + else if (n == 13) + return 'F'; /* Phe */ + else if (n == 14) + return 'P'; /* Pro */ + else if (n == 15) + return 'S'; /* Ser */ + else if (n == 16) + return 'T'; /* Thr */ + else if (n == 17) + return 'W'; /* Trp */ + else if (n == 18) + return 'Y'; /* Tyr */ + else if (n == 19) + return 'V'; /* Val */ + else + return '?'; +} + + +int StateCode_NUC4 (int n) +{ + if (n == 0) + return 'A'; + else if (n == 1) + return 'C'; + else if (n == 2) + return 'G'; + else if (n == 3) + return 'T'; + else return '?'; +} + + +int StateCode_Std (int n) +{ + if (n <= 9 && n >= 0) + return '0' + n; + else return '?'; +} + + +void WhatVariableExp (BitsLong exp, char *st) +{ + int n; + + strcpy (st, ""); + n = 0; + if (exp == 0) + strcat(st, " nothing"); + else + { + if ((exp & Expecting(COMMAND)) == Expecting(COMMAND)) + { + strcat(st, " command"); + n++; + } + if ((exp & Expecting(PARAMETER)) == Expecting(PARAMETER)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " parameter"); + n++; + } + if ((exp & Expecting(EQUALSIGN)) == Expecting(EQUALSIGN)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " ="); + n++; + } + if ((exp & Expecting(COLON)) == Expecting(COLON)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " :"); + n++; + } + if ((exp & Expecting(SEMICOLON)) == Expecting(SEMICOLON)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " ;"); + n++; + } + if ((exp & Expecting(COMMA)) == Expecting(COMMA)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " ,"); + n++; + } + if ((exp & Expecting(POUNDSIGN)) == Expecting(POUNDSIGN)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " #"); + n++; + } + if ((exp & Expecting(QUESTIONMARK)) == Expecting(QUESTIONMARK)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " ?"); + n++; + } + if ((exp & Expecting(DASH)) == Expecting(DASH)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " -"); + n++; + } + if ((exp & Expecting(LEFTPAR)) == Expecting(LEFTPAR)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " ("); + n++; + } + if ((exp & Expecting(RIGHTPAR)) == Expecting(RIGHTPAR)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " )"); + n++; + } + if ((exp & Expecting(LEFTCOMMENT)) == Expecting(LEFTCOMMENT)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " ["); + n++; + } + if ((exp & Expecting(RIGHTCOMMENT)) == Expecting(RIGHTCOMMENT)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " ]"); + n++; + } + if ((exp & Expecting(ALPHA)) == Expecting(ALPHA)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " "); + n++; + } + if ((exp & Expecting(NUMBER)) == Expecting(NUMBER)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " "); + n++; + } + if ((exp & Expecting(RETURNSYMBOL)) == Expecting(RETURNSYMBOL)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " return"); + n++; + } + if ((exp & Expecting(ASTERISK)) == Expecting(ASTERISK)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " *"); + n++; + } + if ((exp & Expecting(BACKSLASH)) == Expecting(BACKSLASH)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " /"); + n++; + } + if ((exp & Expecting(BACKSLASH)) == Expecting(BACKSLASH)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " \\"); + n++; + } + if ((exp & Expecting(EXCLAMATIONMARK)) == Expecting(EXCLAMATIONMARK)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " !"); + n++; + } + if ((exp & Expecting(PERCENT)) == Expecting(PERCENT)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " %"); + n++; + } + if ((exp & Expecting(LEFTCURL)) == Expecting(LEFTCURL)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " {"); + n++; + } + if ((exp & Expecting(RIGHTCURL)) == Expecting(RIGHTCURL)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " }"); + n++; + } + if ((exp & Expecting(WEIRD)) == Expecting(WEIRD)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " "); + n++; + } + if ((exp & Expecting(VERTICALBAR)) == Expecting(VERTICALBAR)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " |"); + n++; + } + if ((exp & Expecting(UNKNOWN_TOKEN_TYPE)) == Expecting(UNKNOWN_TOKEN_TYPE)) + { + if (n > 0) + strcat(st, " or"); + strcat(st, " no clue"); + n++; + } + } +} + + +char WhichAA (int x) +{ + if (x == 1) + return ('A'); + else if (x == 2) + return ('R'); + else if (x == 4) + return ('N'); + else if (x == 8) + return ('D'); + else if (x == 16) + return ('C'); + else if (x == 32) + return ('Q'); + else if (x == 64) + return ('E'); + else if (x == 128) + return ('G'); + else if (x == 256) + return ('H'); + else if (x == 512) + return ('I'); + else if (x == 1024) + return ('L'); + else if (x == 2048) + return ('K'); + else if (x == 4096) + return ('M'); + else if (x == 8192) + return ('F'); + else if (x == 16384) + return ('P'); + else if (x == 32768) + return ('S'); + else if (x == 65536) + return ('T'); + else if (x == 131072) + return ('W'); + else if (x == 262144) + return ('Y'); + else if (x == 524288) + return ('V'); + else if (x > 0 && x < 524288) + return ('*'); + else if (x == MISSING) + return ('?'); + else if (x == GAP) + return ('-'); + else + return (' '); +} + + +MrBFlt WhichCont (int x) +{ + return ((MrBFlt)(x / 1000.0)); +} + + +char WhichNuc (int x) +{ + if (x == 1) + return ('A'); + else if (x == 2) + return ('C'); + else if (x == 3) + return ('M'); + else if (x == 4) + return ('G'); + else if (x == 5) + return ('R'); + else if (x == 6) + return ('S'); + else if (x == 7) + return ('V'); + else if (x == 8) + return ('T'); + else if (x == 9) + return ('W'); + else if (x == 10) + return ('Y'); + else if (x == 11) + return ('H'); + else if (x == 12) + return ('K'); + else if (x == 13) + return ('D'); + else if (x == 14) + return ('B'); + else if (x == 15) + return ('N'); + else if (x == MISSING) + return ('?'); + else if (x == GAP) + return ('-'); + else + return (' '); +} + + +char WhichRes (int x) +{ + if (x == 1) + return ('0'); + else if (x == 2) + return ('1'); + else if (x == 3) + return ('*'); + else if (x == MISSING) + return ('N'); + else if (x == GAP) + return ('-'); + else + return (' '); +} + + +char WhichStand (int x) +{ + if (x == 1) + return ('0'); + else if (x == 2) + return ('1'); + else if (x == 4) + return ('2'); + else if (x == 8) + return ('3'); + else if (x == 16) + return ('4'); + else if (x == 32) + return ('5'); + else if (x == 64) + return ('6'); + else if (x == 128) + return ('7'); + else if (x == 256) + return ('8'); + else if (x == 512) + return ('9'); + else if (x > 0 && x < 512) + return ('*'); + else if (x == MISSING) + return ('N'); + else if (x == GAP) + return ('-'); + else + return (' '); +} + diff --git a/src/command.h b/src/command.h new file mode 100644 index 0000000..a9fdb26 --- /dev/null +++ b/src/command.h @@ -0,0 +1,33 @@ +#ifndef __COMMAND_H__ +#define __COMMAND_H__ + +int AddString (char ***list, int len, char *token); +BitsLong Expecting (int y); +int CheckString (char **list, int len, char *token, int *matchIndex); +int CheckStringValidity (char *s); +int DoExecute (void); +int FreeMatrix (void); +int GetToken (char *token, int *tokenType, char **sourceH); +int FindValidCommand (char *tk, int *numMatches); +int IsArgValid (char *s, char *validArg); +int IsIn (char ch, char *s); +int IsSame (char *s1, char *s2); +int IsWhite (char c); +int ParseCommand (char *s); +void ResetCharacterFlags (void); +void ResetTaxaFlags (void); +int RootUserTree (TreeNode *p); +void SetUpParms (void); +void ShowNodes (TreeNode *p, int indent, int isThisTreeRooted); +int ShowTree (Tree *t); +void State_CODON (char *state, int code, int division); +void State_DOUBLET (char *state, int code); +int StateCode_AA (int n); +int StateCode_NUC4 (int n); +int StateCode_Std (int n); +char WhichAA (int x); +char WhichNuc (int x); +char WhichRes (int x); +char WhichStand (int x); + +#endif /* __COMMAND_H__ */ diff --git a/src/config.h.in b/src/config.h.in new file mode 100644 index 0000000..d6c2bdf --- /dev/null +++ b/src/config.h.in @@ -0,0 +1,40 @@ +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to 1 if you have the `readline' library (-lreadline). */ +#undef HAVE_LIBREADLINE + +/* Define to 1 if you have a recent version of readline */ +#undef COMPLETIONMATCHES + +/* Define to 1 if you want to compile the parallel version */ +#undef MPI_ENABLED + +/* Define to 1 if you want to compile SSE-enabled version */ +#undef SSE_ENABLED + +/* Define one of the UNIX, MAC or WINDOWS */ +#undef UNIX_VERSION +#undef MAC_VERSION +#undef WINDOWS_VERSION + +/* Define if used on a 64bit cpu */ +#undef _64BIT + +/* Define to enable beagle library */ +#undef BEAGLE_ENABLED + +/* Define to enable threads in BEAGLE library */ +#undef THREADS_ENABLED diff --git a/src/configure.in b/src/configure.in new file mode 100644 index 0000000..acdae5a --- /dev/null +++ b/src/configure.in @@ -0,0 +1,181 @@ +AC_INIT(mrbayes, 3.2, http://www.mrbayes.net) +AC_CONFIG_SRCDIR(bayes.c) +AC_CONFIG_HEADER(config.h) + +AC_ARG_ENABLE(debug, + [--enable-debug=[no/yes] compile with debug support [default="no"]] + ,,enable_debug="no") +CFLAGS_DEFINED="NOTICE: Because the variable \$CFLAGS is defined in your shell, the +default MrBayes flags will be overridden. To ensure optimal performance, please check +that your \$CFLAGS variable is set correctly. Alternatively, unset the \$CFLAGS +variable in your shell in order to use the default MrBayes compiler options." +if test -n "${CFLAGS+x}"; then + AC_MSG_NOTICE([$CFLAGS_DEFINED]); +fi +if test "x$enable_debug" == "xyes"; then + : ${CFLAGS="-ggdb -Wall"} +else + : ${CFLAGS="-O3"}; CFLAGS=$CFLAGS" -DNDEBUG"; +fi +AC_PROG_CC + +AC_HEADER_STDC +AC_CHECK_LIB([m], [exp]) +AC_PROG_INSTALL + +NOMPICC="No compiler for mpi has been found. If this is incorrect, please adjust your +path and rerun configure." +AC_ARG_ENABLE(mpi, + [--enable-mpi=[no/yes] compile the parallel version of mrbayes [default="no"]] + ,,enable_mpi="no") +if test "x$enable_mpi" == "xyes"; then + AC_CHECK_PROG(mpicc,mpicc,yes,no) + if test "x$mpicc" == "xno"; then + AC_MSG_ERROR($NOMPICC); + fi + AC_DEFINE(MPI_ENABLED) +fi + +# AC_ARG_ENABLE(fastlog, +# [--enable-fastlog=[no/yes] enable fast log operations [default="no"]] +# ,,enable_fastlog="no") +# if test "x$enable_fastlog" == "xyes"; then +# AC_DEFINE(FAST_VERSION) +# fi + +AC_LANG_C + +AC_ARG_ENABLE(sse, + [--enable-sse=[no/yes] enable sse instructions [default="yes"]] + ,,enable_sse="yes") +if test "x$enable_sse" == "xyes"; then + AC_MSG_CHECKING(for SSE support) + AC_RUN_IFELSE( + [AC_LANG_SOURCE( + [ + #include + int main(){ + int res; + __m128 m1, m2; + void *ptr = (void *) NULL; + const size_t align = 32; + res = posix_memalign(&ptr, align, align); + m1 = _mm_add_ps (m2, m1); + return 0; + } + ])], + AC_MSG_RESULT(yes) + AC_DEFINE(SSE_ENABLED) + , AC_MSG_RESULT(no) + ) +fi + +# ------------------------------------------------------------------------------ +# Setup BEAGLE +# ------------------------------------------------------------------------------ + +AC_ARG_WITH([beagle], + [AS_HELP_STRING([--with-beagle[[=PATH]]], + [enable beagle and optionally set prefix where beagle is installed if not + /usr/local @<:@default=yes@:>@])], + [], + [with_beagle=yes]) + +AC_ARG_ENABLE(threads, + [--enable-threads=[no/yes] enable thread-support when using BEAGLE [default="no"]] + ,,enable_threads="no") + +if test "x$with_beagle" != "xno" +then + if test "x$with_beagle" == "xyes" + then + with_beagle=/usr/local + fi + + AC_CHECK_FILE($with_beagle/include/libhmsbeagle/libhmsbeagle/beagle.h, + [BEAGLE_CFLAGS="-I$with_beagle/include/libhmsbeagle"], + [AC_CHECK_FILE($with_beagle/include/libhmsbeagle-1/libhmsbeagle/beagle.h, + [BEAGLE_CFLAGS="-I$with_beagle/include/libhmsbeagle-1"], + [AC_MSG_ERROR([beagle's library include file beagle.h is not found neither in + ${with_beagle}/include/libhmsbeagle/libhmsbeagle/ nor in + ${with_beagle}/include/libhmsbeagle-1/libhmsbeagle/]. You should either install + beagle library from http://code.google.com/p/beagle-lib/ or disable use of + beagle library by invoking configure script with option --with-beagle=no. + Note: without beagle library MrBayes may run slower.)])]) + AC_CHECK_FILE($with_beagle/include/libhmsbeagle/libhmsbeagle/platform.h,, + [AC_CHECK_FILE($with_beagle/include/libhmsbeagle-1/libhmsbeagle/platform.h,, + [AC_MSG_ERROR([beagle's library include file platform.h is not found neither in + ${with_beagle}/include/libhmsbeagle/libhmsbeagle/ nor in + ${with_beagle}/include/libhmsbeagle-1/libhmsbeagle/]. You should either install + beagle library from http://code.google.com/p/beagle-lib/ or disable use of + beagle library by invoking configure script with option --with-beagle=no. + Note: without beagle library MrBayes may run slower.)])]) + AC_CHECK_FILE($with_beagle/lib,[BEAGLE_LIBS="-L$with_beagle/lib -lhmsbeagle"], + [AC_MSG_ERROR([beagle library is not found in ${with_beagle}]. You should either + install beagle library from http://code.google.com/p/beagle-lib/ or disable use + of beagle library by invoking configure script with option --with-beagle=no. + Note: without beagle library MrBayes may run slower.)]) + + AC_DEFINE(BEAGLE_ENABLED) + CFLAGS="${CFLAGS} ${BEAGLE_CFLAGS}" + LDFLAGS="${LDFLAGS} ${BEAGLE_LIBS}" + + # ----- Check for pthreads compatibility ------- + + if test "x$enable_threads" == "xyes" + then + AC_CHECK_LIB(pthread,pthread_create,[THREAD_LIB="-lpthread"], + [AC_MSG_ERROR([pthreads library not found])]) + AC_DEFINE(THREADS_ENABLED) + fi +fi +# ------------------------------------------------------------------------------ + +dnl check OS +dnl case $host in +dnl i386-*-gnu*) +dnl bla;; +dnl esac +AC_DEFINE(UNIX_VERSION) + +dnl use c for custom tests +AC_LANG_C + +dnl check readline +AC_CHECK_LIB([readline], [readline]) +if test $ac_cv_lib_readline_readline = yes; then + LDFLAGS=${LDFLAGS}" -lreadline" + AC_MSG_CHECKING(for rl_completion_matches function) + AC_LINK_IFELSE( + [AC_LANG_SOURCE([ + #include + #include + #include + char *f(const char *a, int f) { return "a"; } + int main() { + char *text="a"; + extern char *f(const char *, int); + char **matches = rl_completion_matches (text, f); + return 0; + } + ])], + AC_MSG_RESULT(yes) + AC_DEFINE(COMPLETIONMATCHES), AC_MSG_RESULT(no)) +fi + +dnl check for 64 bit +AC_MSG_CHECKING(for 32 or 64 bits cpu) +AC_RUN_IFELSE( + [AC_LANG_SOURCE([ + int main() { return sizeof(long)==4?1:0; } + ])], + AC_MSG_RESULT(64) + AC_DEFINE(_64BIT), AC_MSG_RESULT(32)) + +dnl finish +if test "x$enable_mpi" == "xyes"; then + CC=mpicc +fi + +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT diff --git a/src/gpl.txt b/src/gpl.txt new file mode 100644 index 0000000..818433e --- /dev/null +++ b/src/gpl.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/src/install-sh b/src/install-sh new file mode 100644 index 0000000..aa44ce2 --- /dev/null +++ b/src/install-sh @@ -0,0 +1,238 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +tranformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS='' + +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/src/likelihood.c b/src/likelihood.c new file mode 100644 index 0000000..8fb631c --- /dev/null +++ b/src/likelihood.c @@ -0,0 +1,9765 @@ +/* + * MrBayes 3 + * + * (c) 2002-2013 + * + * John P. Huelsenbeck + * Dept. Integrative Biology + * University of California, Berkeley + * Berkeley, CA 94720-3140 + * johnh@berkeley.edu + * + * Fredrik Ronquist + * Swedish Museum of Natural History + * Box 50007 + * SE-10405 Stockholm, SWEDEN + * fredrik.ronquist@nrm.se + * + * With important contributions by + * + * Paul van der Mark (paulvdm@sc.fsu.edu) + * Maxim Teslenko (maxim.teslenko@nrm.se) + * + * and by many users (run 'acknowledgments' to see more info) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details (www.gnu.org). + * + */ + +#include "bayes.h" +#include "likelihood.h" +#include "mbbeagle.h" +#include "model.h" +#include "utils.h" + +const char* const svnRevisionLikeliC = "$Rev: 1003 $"; /* Revision keyword which is expanded/updated by svn on each commit/update */ + +#define LIKE_EPSILON 1.0e-300 + +extern int *chainId; +extern int numLocalChains; +extern int rateProbRowSize; /* size of rate probs for one chain one state */ +extern MrBFlt **rateProbs; /* pointers to rate probs used by adgamma model */ + +/* local prototypes */ +void CopySiteScalers (ModelInfo *m, int chain); +void FlipCondLikeSpace (ModelInfo *m, int chain, int nodeIndex); +void FlipCijkSpace (ModelInfo *m, int chain); +void FlipNodeScalerSpace (ModelInfo *m, int chain, int nodeIndex); +void FlipSiteScalerSpace (ModelInfo *m, int chain); +void FlipTiProbsSpace (ModelInfo *m, int chain, int nodeIndex); +MrBFlt GetRate (int division, int chain); +int RemoveNodeScalers(TreeNode *p, int division, int chain); +int RemoveNodeScalers_SSE(TreeNode *p, int division, int chain); +void ResetSiteScalers (ModelInfo *m, int chain); +int UpDateCijk (int whichPart, int whichChain); + + +#if !defined (SSE_ENABLED) || 1 +/*---------------------------------------------------------------- +| +| CondLikeDown_Bin: binary model with or without rate +| variation +| +-----------------------------------------------------------------*/ +int CondLikeDown_Bin (TreeNode *p, int division, int chain) +{ + int c, k; + CLFlt *clL, *clR, *clP, *pL, *pR, *tiPL, *tiPR; + ModelInfo *m; + + /* find model settings for this division */ + m = &modelSettings[division]; + + /* Flip conditional likelihood space */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + tiPL = pL; + tiPR = pR; + for (k=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + *(clP++) = (tiPL[0]*clL[0] + tiPL[1]*clL[1]) + *(tiPR[0]*clR[0] + tiPR[1]*clR[1]); + *(clP++) = (tiPL[2]*clL[0] + tiPL[3]*clL[1]) + *(tiPR[2]*clR[0] + tiPR[3]*clR[1]); + + clL += 2; + clR += 2; + } + tiPL += 4; + tiPR += 4; + } + + return NO_ERROR; + +} +#endif + + +#if defined (SSE_ENABLED) +/*---------------------------------------------------------------- +| +| CondLikeDown_Bin_SSE: binary model with or without rate +| variation +| +-----------------------------------------------------------------*/ +int CondLikeDown_Bin_SSE (TreeNode *p, int division, int chain) +{ + int c, k; + CLFlt *pL, *pR, *tiPL, *tiPR; + __m128 *clL, *clR, *clP; + __m128 m1, m2, m3, m4, m5, m6; + ModelInfo *m; + + m = &modelSettings[division]; + + /* flip state of node so that we are not overwriting old cond likes */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + tiPL = pL; + tiPR = pR; + for (k=0; knumGammaCats; k++) + { + for (c=0; cnumSSEChars; c++) + { + m1 = _mm_load1_ps (&tiPL[0]); + m2 = _mm_load1_ps (&tiPR[0]); + m5 = _mm_mul_ps (m1, clL[0]); + m6 = _mm_mul_ps (m2, clR[0]); + + m1 = _mm_load1_ps (&tiPL[1]); + m2 = _mm_load1_ps (&tiPR[1]); + m3 = _mm_mul_ps (m1, clL[1]); + m4 = _mm_mul_ps (m2, clR[1]); + + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + *clP++ = _mm_mul_ps (m5, m6); + + m1 = _mm_load1_ps (&tiPL[2]); + m2 = _mm_load1_ps (&tiPR[2]); + m5 = _mm_mul_ps (m1, clL[0]); + m6 = _mm_mul_ps (m2, clR[0]); + + m1 = _mm_load1_ps (&tiPL[3]); + m2 = _mm_load1_ps (&tiPR[3]); + m3 = _mm_mul_ps (m1, clL[1]); + m4 = _mm_mul_ps (m2, clR[1]); + + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + *clP++ = _mm_mul_ps (m5, m6); + clL += 2; + clR += 2; + } + tiPL += 4; + tiPR += 4; + } + + return NO_ERROR; +} +#endif + + +/*---------------------------------------------------------------- +| +| CondLikeDown_Gen: general n-state model with or without rate +| variation +| +-----------------------------------------------------------------*/ +int CondLikeDown_Gen (TreeNode *p, int division, int chain) +{ + int a, b, c, h, i, k, j, shortCut, *lState=NULL, *rState=NULL, + nObsStates, nStates, nStatesSquared, preLikeJump; + CLFlt likeL, likeR, *pL, *pR, *tiPL, *tiPR, *clL, *clR, *clP; + ModelInfo *m; +# if !defined (DEBUG_NOSHORTCUTS) + int catStart; +# endif + + /* find model settings for this division and nStates, nStatesSquared */ + m = &modelSettings[division]; + nObsStates = m->numStates; + nStates = m->numModelStates; + nStatesSquared = nStates * nStates; + preLikeJump = nObsStates * nStates; + + /* flip conditional likelihood space */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=a=0; knumGammaCats; k++) + { + catStart = a; + for (i=0; iright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=a=0; knumGammaCats; k++) + { + catStart = a; + for (i=0; inumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + for (i=h=0; inumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = lState[c] + k*(preLikeJump+nStates); + for (i=h=0; inumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = rState[c] + k*(preLikeJump+nStates); + for (i=h=0; inumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = rState[c] + k*(preLikeJump+nStates); + b = lState[c] + k*(preLikeJump+nStates); + for (i=0; inumStates; + nStates = m->numModelStates; + nStatesSquared = nStates * nStates; + preLikeJump = nObsStates * nStates; + + /* Flip conditional likelihood space */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=a=0; knumGammaCats; k++) + { + catStart = a; + for (i=0; iright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=a=0; knumGammaCats; k++) + { + catStart = a; + for (i=0; inumGammaCats; k++) + { + for (c=0; cnumSSEChars; c++) + { + for (i=h=0; inumGammaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numGammaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numGammaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numStates; + nStates = m->numModelStates; + nStatesSquared = nStates * nStates; + + /* flip conditional likelihood space */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + /* find rate category index and number of gamma categories */ + rateCat = m->tiIndex + chain * m->numChars; + nGammaCats = m->numGammaCats; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=a=0; kright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=a=0; knumChars; c++) + { + r = (*rateCat++); + if (r < nGammaCats) + { + tiPL = pL + r*nStatesSquared; + tiPR = pR + r*nStatesSquared; + for (i=0; inumChars; c++) + { + r = (*rateCat++); + if (r < nGammaCats) + { + tiPR = pR + r*nStatesSquared; + a = lState[c] + r*(nStatesSquared+nStates); + for (i=0; inumChars; c++) + { + r = (*rateCat++); + if (r < nGammaCats) + { + tiPL = pL + r*nStatesSquared; + a = rState[c] + r*(nStatesSquared+nStates); + for (i=0; inumChars; c++) + { + r = (*rateCat++); + if (r < nGammaCats) + { + a = lState[c] + r*(nStatesSquared+nStates); + b = rState[c] + r*(nStatesSquared+nStates); + for (i=0; iindex); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=j=0; knumGammaCats; k++) + { + for (i=0; i<4; i++) + { + preLikeL[j++] = tiPL[0]; + preLikeL[j++] = tiPL[4]; + preLikeL[j++] = tiPL[8]; + preLikeL[j++] = tiPL[12]; + tiPL++; + } + /* for ambiguous */ + for (i=0; i<4; i++) + preLikeL[j++] = 1.0; + tiPL += 12; + } + } + + /* find likelihoods of site patterns for right branch if terminal */ + if (p->right->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=j=0; knumGammaCats; k++) + { + for (i=0; i<4; i++) + { + preLikeR[j++] = tiPR[0]; + preLikeR[j++] = tiPR[4]; + preLikeR[j++] = tiPR[8]; + preLikeR[j++] = tiPR[12]; + tiPR++; + } + /* for ambiguous */ + for (i=0; i<4; i++) + preLikeR[j++] = 1.0; + tiPR += 12; + } + } +# endif + + switch (shortCut) + { + case 0: + tiPL = pL; + tiPR = pR; + for (k=h=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + clP[h++] = (tiPL[AA]*clL[A] + tiPL[AC]*clL[C] + tiPL[AG]*clL[G] + tiPL[AT]*clL[T]) + *(tiPR[AA]*clR[A] + tiPR[AC]*clR[C] + tiPR[AG]*clR[G] + tiPR[AT]*clR[T]); + clP[h++] = (tiPL[CA]*clL[A] + tiPL[CC]*clL[C] + tiPL[CG]*clL[G] + tiPL[CT]*clL[T]) + *(tiPR[CA]*clR[A] + tiPR[CC]*clR[C] + tiPR[CG]*clR[G] + tiPR[CT]*clR[T]); + clP[h++] = (tiPL[GA]*clL[A] + tiPL[GC]*clL[C] + tiPL[GG]*clL[G] + tiPL[GT]*clL[T]) + *(tiPR[GA]*clR[A] + tiPR[GC]*clR[C] + tiPR[GG]*clR[G] + tiPR[GT]*clR[T]); + clP[h++] = (tiPL[TA]*clL[A] + tiPL[TC]*clL[C] + tiPL[TG]*clL[G] + tiPL[TT]*clL[T]) + *(tiPR[TA]*clR[A] + tiPR[TC]*clR[C] + tiPR[TG]*clR[G] + tiPR[TT]*clR[T]); + clL += 4; + clR += 4; + } + tiPL += 16; + tiPR += 16; + } + break; + case 1: + tiPR = pR; + for (k=h=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + i = lState[c] + k*20; + clP[h++] = preLikeL[i++] + *(tiPR[AA]*clR[A] + tiPR[AC]*clR[C] + tiPR[AG]*clR[G] + tiPR[AT]*clR[T]); + clP[h++] = preLikeL[i++] + *(tiPR[CA]*clR[A] + tiPR[CC]*clR[C] + tiPR[CG]*clR[G] + tiPR[CT]*clR[T]); + clP[h++] = preLikeL[i++] + *(tiPR[GA]*clR[A] + tiPR[GC]*clR[C] + tiPR[GG]*clR[G] + tiPR[GT]*clR[T]); + clP[h++] = preLikeL[i++] + *(tiPR[TA]*clR[A] + tiPR[TC]*clR[C] + tiPR[TG]*clR[G] + tiPR[TT]*clR[T]); + clR += 4; + } + tiPR += 16; + } + break; + case 2: + tiPL = pL; + for (k=h=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + i = rState[c] + k*20; + clP[h++] = (tiPL[AA]*clL[A] + tiPL[AC]*clL[C] + tiPL[AG]*clL[G] + tiPL[AT]*clL[T]) + *preLikeR[i++]; + clP[h++] = (tiPL[CA]*clL[A] + tiPL[CC]*clL[C] + tiPL[CG]*clL[G] + tiPL[CT]*clL[T]) + *preLikeR[i++]; + clP[h++] = (tiPL[GA]*clL[A] + tiPL[GC]*clL[C] + tiPL[GG]*clL[G] + tiPL[GT]*clL[T]) + *preLikeR[i++]; + clP[h++] = (tiPL[TA]*clL[A] + tiPL[TC]*clL[C] + tiPL[TG]*clL[G] + tiPL[TT]*clL[T]) + *preLikeR[i++]; + clL += 4; + } + tiPL += 16; + } + break; + case 3: + for (k=h=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + i = j = k*20; + i += lState[c]; + j += rState[c]; + clP[h++] = preLikeL[i++]*preLikeR[j++]; + clP[h++] = preLikeL[i++]*preLikeR[j++]; + clP[h++] = preLikeL[i++]*preLikeR[j++]; + clP[h++] = preLikeL[i++]*preLikeR[j++]; + } + } + } + + return NO_ERROR; +} + + +/*---------------------------------------------------------------- +| +| CondLikeDown_NUC4_GibbsGamma: 4by4 nucleotide model with rate +| variation approximated using Gibbs sampling of gamma +| +-----------------------------------------------------------------*/ +int CondLikeDown_NUC4_GibbsGamma (TreeNode *p, int division, int chain) +{ + int c, h, i, j, r, *rateCat, shortCut, *lState=NULL, *rState=NULL, + nGammaCats; + CLFlt *clL, *clR, *clP, *pL, *pR, *tiPL, *tiPR; + ModelInfo *m; +# if !defined (DEBUG_NOSHORTCUTS) + int k; +# endif + + m = &modelSettings[division]; + + /* flip conditional likelihood space */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + /* find rate category index and number of gamma categories */ + rateCat = m->tiIndex + chain * m->numChars; + nGammaCats = m->numGammaCats; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=j=0; kright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=j=0; knumChars; c++) + { + r = rateCat[c]; + if (r < nGammaCats) + { + tiPL = pL + r * 16; + tiPR = pR + r * 16; + clP[h++] = (tiPL[AA]*clL[A] + tiPL[AC]*clL[C] + tiPL[AG]*clL[G] + tiPL[AT]*clL[T]) + *(tiPR[AA]*clR[A] + tiPR[AC]*clR[C] + tiPR[AG]*clR[G] + tiPR[AT]*clR[T]); + clP[h++] = (tiPL[CA]*clL[A] + tiPL[CC]*clL[C] + tiPL[CG]*clL[G] + tiPL[CT]*clL[T]) + *(tiPR[CA]*clR[A] + tiPR[CC]*clR[C] + tiPR[CG]*clR[G] + tiPR[CT]*clR[T]); + clP[h++] = (tiPL[GA]*clL[A] + tiPL[GC]*clL[C] + tiPL[GG]*clL[G] + tiPL[GT]*clL[T]) + *(tiPR[GA]*clR[A] + tiPR[GC]*clR[C] + tiPR[GG]*clR[G] + tiPR[GT]*clR[T]); + clP[h++] = (tiPL[TA]*clL[A] + tiPL[TC]*clL[C] + tiPL[TG]*clL[G] + tiPL[TT]*clL[T]) + *(tiPR[TA]*clR[A] + tiPR[TC]*clR[C] + tiPR[TG]*clR[G] + tiPR[TT]*clR[T]); + } + else + h += 4; + clL += 4; + clR += 4; + } + break; + case 1: + for (c=h=0; cnumChars; c++) + { + r = rateCat[c]; + if (r < nGammaCats) + { + tiPR = pR + r * 16; + i = lState[c] + r * 20; + clP[h++] = preLikeL[i++] + *(tiPR[AA]*clR[A] + tiPR[AC]*clR[C] + tiPR[AG]*clR[G] + tiPR[AT]*clR[T]); + clP[h++] = preLikeL[i++] + *(tiPR[CA]*clR[A] + tiPR[CC]*clR[C] + tiPR[CG]*clR[G] + tiPR[CT]*clR[T]); + clP[h++] = preLikeL[i++] + *(tiPR[GA]*clR[A] + tiPR[GC]*clR[C] + tiPR[GG]*clR[G] + tiPR[GT]*clR[T]); + clP[h++] = preLikeL[i++] + *(tiPR[TA]*clR[A] + tiPR[TC]*clR[C] + tiPR[TG]*clR[G] + tiPR[TT]*clR[T]); + } + else + h += 4; + clR += 4; + } + break; + case 2: + for (c=h=0; cnumChars; c++) + { + r = rateCat[c]; + if (r < nGammaCats) + { + tiPL = pL + r * 16; + i = rState[c] + r * 20; + clP[h++] = (tiPL[AA]*clL[A] + tiPL[AC]*clL[C] + tiPL[AG]*clL[G] + tiPL[AT]*clL[T]) + *preLikeR[i++]; + clP[h++] = (tiPL[CA]*clL[A] + tiPL[CC]*clL[C] + tiPL[CG]*clL[G] + tiPL[CT]*clL[T]) + *preLikeR[i++]; + clP[h++] = (tiPL[GA]*clL[A] + tiPL[GC]*clL[C] + tiPL[GG]*clL[G] + tiPL[GT]*clL[T]) + *preLikeR[i++]; + clP[h++] = (tiPL[TA]*clL[A] + tiPL[TC]*clL[C] + tiPL[TG]*clL[G] + tiPL[TT]*clL[T]) + *preLikeR[i++]; + } + else + h += 4; + clL += 4; + } + break; + case 3: + for (c=h=0; cnumChars; c++) + { + r = rateCat[c]; + if (r < nGammaCats) + { + i = lState[c] + r * 20; + j = rState[c] + r * 20; + clP[h++] = preLikeL[i++]*preLikeR[j++]; + clP[h++] = preLikeL[i++]*preLikeR[j++]; + clP[h++] = preLikeL[i++]*preLikeR[j++]; + clP[h++] = preLikeL[i++]*preLikeR[j++]; + } + else + h += 4; + } + break; + } + + return NO_ERROR; +} + + +#if defined (SSE_ENABLED) +/*---------------------------------------------------------------- +| +| CondLikeDown_NUC4_SSE: 4by4 nucleotide model with or without rate +| variation, using SSE instructions +| +-----------------------------------------------------------------*/ +int CondLikeDown_NUC4_SSE (TreeNode *p, int division, int chain) +{ + int c, k; + CLFlt *pL, *pR, *tiPL, *tiPR; + __m128 *clL, *clR, *clP; + __m128 m1, m2, m3, m4, m5, m6; + ModelInfo *m; + + m = &modelSettings[division]; + + /* flip state of node so that we are not overwriting old cond likes */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + tiPL = pL; + tiPR = pR; + for (k=0; knumGammaCats; k++) + { + for (c=0; cnumSSEChars; c++) + { + m1 = _mm_load1_ps (&tiPL[AA]); + m2 = _mm_load1_ps (&tiPR[AA]); + m5 = _mm_mul_ps (m1, clL[A]); + m6 = _mm_mul_ps (m2, clR[A]); + + m1 = _mm_load1_ps (&tiPL[AC]); + m2 = _mm_load1_ps (&tiPR[AC]); + m3 = _mm_mul_ps (m1, clL[C]); + m4 = _mm_mul_ps (m2, clR[C]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + m1 = _mm_load1_ps (&tiPL[AG]); + m2 = _mm_load1_ps (&tiPR[AG]); + m3 = _mm_mul_ps (m1, clL[G]); + m4 = _mm_mul_ps (m2, clR[G]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + m1 = _mm_load1_ps (&tiPL[AT]); + m2 = _mm_load1_ps (&tiPR[AT]); + m3 = _mm_mul_ps (m1, clL[T]); + m4 = _mm_mul_ps (m2, clR[T]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + *clP++ = _mm_mul_ps (m5, m6); + + m1 = _mm_load1_ps (&tiPL[CA]); + m2 = _mm_load1_ps (&tiPR[CA]); + m5 = _mm_mul_ps (m1, clL[A]); + m6 = _mm_mul_ps (m2, clR[A]); + + m1 = _mm_load1_ps (&tiPL[CC]); + m2 = _mm_load1_ps (&tiPR[CC]); + m3 = _mm_mul_ps (m1, clL[C]); + m4 = _mm_mul_ps (m2, clR[C]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + m1 = _mm_load1_ps (&tiPL[CG]); + m2 = _mm_load1_ps (&tiPR[CG]); + m3 = _mm_mul_ps (m1, clL[G]); + m4 = _mm_mul_ps (m2, clR[G]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + m1 = _mm_load1_ps (&tiPL[CT]); + m2 = _mm_load1_ps (&tiPR[CT]); + m3 = _mm_mul_ps (m1, clL[T]); + m4 = _mm_mul_ps (m2, clR[T]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + *clP++ = _mm_mul_ps (m5, m6); + + m1 = _mm_load1_ps (&tiPL[GA]); + m2 = _mm_load1_ps (&tiPR[GA]); + m5 = _mm_mul_ps (m1, clL[A]); + m6 = _mm_mul_ps (m2, clR[A]); + + m1 = _mm_load1_ps (&tiPL[GC]); + m2 = _mm_load1_ps (&tiPR[GC]); + m3 = _mm_mul_ps (m1, clL[C]); + m4 = _mm_mul_ps (m2, clR[C]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + m1 = _mm_load1_ps (&tiPL[GG]); + m2 = _mm_load1_ps (&tiPR[GG]); + m3 = _mm_mul_ps (m1, clL[G]); + m4 = _mm_mul_ps (m2, clR[G]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + m1 = _mm_load1_ps (&tiPL[GT]); + m2 = _mm_load1_ps (&tiPR[GT]); + m3 = _mm_mul_ps (m1, clL[T]); + m4 = _mm_mul_ps (m2, clR[T]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + *clP++ = _mm_mul_ps (m5, m6); + + m1 = _mm_load1_ps (&tiPL[TA]); + m2 = _mm_load1_ps (&tiPR[TA]); + m5 = _mm_mul_ps (m1, clL[A]); + m6 = _mm_mul_ps (m2, clR[A]); + + m1 = _mm_load1_ps (&tiPL[TC]); + m2 = _mm_load1_ps (&tiPR[TC]); + m3 = _mm_mul_ps (m1, clL[C]); + m4 = _mm_mul_ps (m2, clR[C]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + m1 = _mm_load1_ps (&tiPL[TG]); + m2 = _mm_load1_ps (&tiPR[TG]); + m3 = _mm_mul_ps (m1, clL[G]); + m4 = _mm_mul_ps (m2, clR[G]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + m1 = _mm_load1_ps (&tiPL[TT]); + m2 = _mm_load1_ps (&tiPR[TT]); + m3 = _mm_mul_ps (m1, clL[T]); + m4 = _mm_mul_ps (m2, clR[T]); + m5 = _mm_add_ps (m3, m5); + m6 = _mm_add_ps (m4, m6); + + *clP++ = _mm_mul_ps (m5, m6); + clL += 4; + clR += 4; + } + tiPL += 16; + tiPR += 16; + } + + return NO_ERROR; + +} +#endif + + +#if !defined (SSE_ENABLED) || 1 +/*---------------------------------------------------------------- +| +| CondLikeDown_NY98: codon model with omega variation +| +-----------------------------------------------------------------*/ +int CondLikeDown_NY98 (TreeNode *p, int division, int chain) +{ + int a, b, c, h, i, j, k, shortCut, *lState=NULL, *rState=NULL, nStates, nStatesSquared; + CLFlt likeL, likeR, *pL, *pR, *tiPL, *tiPR, *clL, *clR, *clP; + ModelInfo *m; + + /* find model settings for this division and nStates, nStatesSquared */ + m = &modelSettings[division]; + nStates = m->numModelStates; + nStatesSquared = nStates * nStates; + + /* Flip conditional likelihood space */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=a=0; knumOmegaCats; k++) + { + for (i=0; iright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=a=0; knumOmegaCats; k++) + { + for (i=0; inumOmegaCats; k++) + { + for (c=0; cnumChars; c++) + { + for (i=h=0; inumOmegaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = lState[c] + k*(nStatesSquared+nStates); + for (i=h=0; inumOmegaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = rState[c] + k*(nStatesSquared+nStates); + for (i=h=0; inumOmegaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = rState[c] + k*(nStatesSquared+nStates); + b = lState[c] + k*(nStatesSquared+nStates); + for (i=0; inumModelStates; + nStatesSquared = nStates * nStates; + + /* Flip conditional likelihood space */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=a=0; knumOmegaCats; k++) + { + for (i=0; iright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=a=0; knumOmegaCats; k++) + { + for (i=0; inumOmegaCats; k++) + { + for (c=0; cnumSSEChars; c++) + { + for (i=h=0; inumOmegaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numOmegaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numOmegaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + + /* Conditional likelihood space is assumed to be arranged in numGammaCats blocks of data. Each block contains all data for one gamma category. + Each gamma cat block consist of numChars sequences of data, each of this sequences corresponds to a character of data matrix. + A sequence consists of nStates for all non-binary data, otherwise length of sequence is nStates*numBetaCats (i.e. 2*numBetaCats) */ + + /* calculate ancestral probabilities */ + for (k=h=0; knumGammaCats; k++) + { + /* calculate ancestral probabilities */ + for (c=0; cnumChars; c++) + { + nStates = m->nStates[c]; + + /* the following lines ensure that nCats is 1 unless */ + /* the character is binary and beta categories are used */ + if (nStates == 2) + nCats = m->numBetaCats; + else + nCats = 1; + + tmp = k*nStates*nStates; /* tmp contains offset to skip gamma cats that already processed*/ + tiPL = pL + m->tiIndex[c] + tmp; + tiPR = pR + m->tiIndex[c] + tmp; + tmp = (m->numGammaCats-1)*2*2; /* tmp contains size of block of tpi matrices across all gamma cats (minus one) for single beta category. Further used only if character is binary to jump to next beta category */ + + for (j=0; jindex); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities (or calculate instead) */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + tiPL = pL; + tiPR = pR; + tiPA = pA; + for (k=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + *(clP++) = (tiPL[0]*clL[0] + tiPL[1]*clL[1]) + *(tiPR[0]*clR[0] + tiPR[1]*clR[1]) + *(tiPA[0]*clA[0] + tiPA[1]*clA[1]); + *(clP++) = (tiPL[2]*clL[0] + tiPL[3]*clL[1]) + *(tiPR[2]*clR[0] + tiPR[3]*clR[1]) + *(tiPA[2]*clA[0] + tiPA[3]*clA[1]); + + clA += 2; + clL += 2; + clR += 2; + } + tiPA += 4; + tiPL += 4; + tiPR += 4; + } + + return NO_ERROR; +} +#endif + + +#if defined (SSE_ENABLED) +/*---------------------------------------------------------------- +| +| CondLikeRoot_Bin_SSE:binary model with or without rate +| variation +| +-----------------------------------------------------------------*/ +int CondLikeRoot_Bin_SSE (TreeNode *p, int division, int chain) +{ + int c, k; + CLFlt *pL, *pR, *pA, *tiPL, *tiPR, *tiPA; + __m128 *clL, *clR, *clP, *clA; + __m128 m1, m2, m3, m4, m5, m6, m7; + ModelInfo *m; + + m = &modelSettings[division]; + + /* flip state of node so that we are not overwriting old cond likes */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + tiPL = pL; + tiPR = pR; + tiPA = pA; + for (k=0; knumGammaCats; k++) + { + for (c=0; cnumSSEChars; c++) + { + m1 = _mm_load1_ps (&tiPL[0]); + m5 = *clL++; + m2 = _mm_mul_ps (m1, m5); + m1 = _mm_load1_ps (&tiPL[2]); + m6 = _mm_mul_ps (m1, m5); + + m1 = _mm_load1_ps (&tiPL[1]); + m5 = *clL++; + m3 = _mm_mul_ps (m1, m5); + m1 = _mm_load1_ps (&tiPL[3]); + m5 = _mm_mul_ps (m1, m5); + + m4 = _mm_add_ps (m2, m3); /* in m4 we get (tiPL[0]*clL[0] + tiPL[1]*clL[1]) */ + m6 = _mm_add_ps (m5, m6); /* in m6 we get (tiPL[2]*clL[0] + tiPL[3]*clL[1]) */ + + m1 = _mm_load1_ps (&tiPR[0]); + m5 = *clR++; + m2 = _mm_mul_ps (m1, m5); + m1 = _mm_load1_ps (&tiPR[2]); + m7 = _mm_mul_ps (m1, m5); + + m1 = _mm_load1_ps (&tiPR[1]); + m5 = *clR++; + m3 = _mm_mul_ps (m1, m5); + m1 = _mm_load1_ps (&tiPR[3]); + m5 = _mm_mul_ps (m1, m5); + + m1 = _mm_add_ps (m2, m3); /* in m1 we get (tiPR[0]*clR[0] + tiPR[1]*clR[1]) */ + m7 = _mm_add_ps (m5, m7); /* in m7 we get (tiPR[2]*clR[0] + tiPR[3]*clR[1]) */ + + m4 = _mm_mul_ps (m1, m4); /* in m4 we get (tiPL[0]*clL[0] + tiPL[1]*clL[1])*(tiPR[0]*clR[0] + tiPR[1]*clR[1]) */ + m7 = _mm_mul_ps (m6, m7); /* in m7 we get (tiPL[2]*clL[0] + tiPL[3]*clL[1])*(tiPR[2]*clR[0] + tiPR[3]*clR[1]) */ + + m1 = _mm_load1_ps (&tiPA[0]); + m5 = *clA++; + m2 = _mm_mul_ps (m1, m5); + m1 = _mm_load1_ps (&tiPA[2]); + m6 = _mm_mul_ps (m1, m5); + + m1 = _mm_load1_ps (&tiPA[1]); + m5 = *clA++; + m3 = _mm_mul_ps (m1, m5); + m1 = _mm_load1_ps (&tiPA[3]); + m1 = _mm_mul_ps (m1, m5); + + m2 = _mm_add_ps (m2, m3); /* in m1 we get (tiPA[0]*clA[0] + tiPA[1]*clA[1]) */ + m1 = _mm_add_ps (m1, m6); /* in m1 we get (tiPA[2]*clA[0] + tiPA[3]*clA[1]) */ + + *clP++ = _mm_mul_ps (m2, m4); + *clP++ = _mm_mul_ps (m1, m7); + + } + tiPL += 4; + tiPR += 4; + tiPA += 4; + } + + return NO_ERROR; + +} +#endif + + +/*---------------------------------------------------------------- +| +| CondLikeRoot_Gen: general n-state model with or without rate +| variation +| +-----------------------------------------------------------------*/ +int CondLikeRoot_Gen (TreeNode *p, int division, int chain) +{ + int a, b, c, d, h, i, j, k, shortCut, *lState=NULL, *rState=NULL, *aState=NULL, + nObsStates, nStates, nStatesSquared, preLikeJump; + CLFlt likeL, likeR, likeA, *clL, *clR, *clP, *clA, *pL, *pR, *pA, + *tiPL, *tiPR, *tiPA; + ModelInfo *m; +# if !defined (DEBUG_NOSHORTCUTS) + int catStart; +# endif + + /* find model settings for this division and nStates, nStatesSquared */ + m = &modelSettings[division]; + nObsStates = m->numStates; + nStates = m->numModelStates; + nStatesSquared = nStates * nStates; + preLikeJump = nObsStates * nStates; + + /* flip state of node so that we are not overwriting old cond likes */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities (or calculate instead) */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=a=0; knumGammaCats; k++) + { + catStart = a; + for (i=0; iright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=a=0; knumGammaCats; k++) + { + catStart = a; + for (i=0; iisPartAmbig[p->anc->index] == YES) + { + shortCut = 4; + } + else + { + aState = m->termState[p->anc->index]; + tiPA = pA; + for (k=a=0; knumGammaCats; k++) + { + catStart = a; + for (i=0; inumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + for (i=h=0; inumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = aState[c] + k*(preLikeJump+nStates); + for (i=h=0; inumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = lState[c] + k*(preLikeJump+nStates); + b = aState[c] + k*(preLikeJump+nStates); + for (i=h=0; inumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = rState[c] + k*(preLikeJump+nStates); + b = aState[c] + k*(preLikeJump+nStates); + for (i=h=0; inumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = rState[c] + k*(preLikeJump+nStates); + b = lState[c] + k*(preLikeJump+nStates); + d = aState[c] + k*(preLikeJump+nStates); + for (i=0; inumStates; + nStates = m->numModelStates; + nStatesSquared = nStates * nStates; + preLikeJump = nObsStates * nStates; + + /* flip state of node so that we are not overwriting old cond likes */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities (or calculate instead) */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=a=0; knumGammaCats; k++) + { + catStart = a; + for (i=0; iright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=a=0; knumGammaCats; k++) + { + catStart = a; + for (i=0; iisPartAmbig[p->anc->index] == YES) + { + shortCut = 4; + } + else + { + aState = m->termState[p->anc->index]; + tiPA = pA; + for (k=a=0; knumGammaCats; k++) + { + catStart = a; + for (i=0; inumGammaCats; k++) + { + for (c=0; cnumSSEChars; c++) + { + for (i=h=0; inumGammaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numGammaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numGammaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numGammaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numStates; + nStates = m->numModelStates; + nStatesSquared = nStates * nStates; + + /* flip conditional likelihood space */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities (or calculate instead) */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + /* find rate category index and number of gamma categories */ + rateCat = m->tiIndex + chain * m->numChars; + nGammaCats = m->numGammaCats; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=a=0; kright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=a=0; kisPartAmbig[p->anc->index] == YES) + { + shortCut = 4; + } + else + { + aState = m->termState[p->anc->index]; + tiPA = pA; + for (k=a=0; knumChars; c++) + { + r = (*rateCat++); + if (r < nGammaCats) + { + tiPL = pL + r*nStatesSquared; + tiPR = pR + r*nStatesSquared; + tiPA = pA + r*nStatesSquared; + for (i=0; inumChars; c++) + { + r = (*rateCat++); + if (r < nGammaCats) + { + tiPL = pL + r*nStatesSquared; + tiPR = pR + r*nStatesSquared; + a = aState[c] + r*(nStatesSquared+nStates); + for (i=0; inumChars; c++) + { + r = (*rateCat++); + if (r < nGammaCats) + { + tiPR = pR + r*nStatesSquared; + a = lState[c] + r*(nStatesSquared+nStates); + b = aState[c] + r*(nStatesSquared+nStates); + for (i=0; inumChars; c++) + { + r = (*rateCat++); + if (r < nGammaCats) + { + tiPL = pL + r*nStatesSquared; + a = rState[c] + r*(nStatesSquared+nStates); + b = aState[c] + r*(nStatesSquared+nStates); + for (i=0; iindex); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities (or calculate instead) */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=j=0; knumGammaCats; k++) + { + for (i=0; i<4; i++) + { + preLikeL[j++] = tiPL[0]; + preLikeL[j++] = tiPL[4]; + preLikeL[j++] = tiPL[8]; + preLikeL[j++] = tiPL[12]; + tiPL++; + } + /* for ambiguous */ + for (i=0; i<4; i++) + preLikeL[j++] = 1.0; + tiPL += 12; + } + } + + /* find likelihoods of site patterns for right branch if terminal */ + if (p->right->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=j=0; knumGammaCats; k++) + { + for (i=0; i<4; i++) + { + preLikeR[j++] = tiPR[0]; + preLikeR[j++] = tiPR[4]; + preLikeR[j++] = tiPR[8]; + preLikeR[j++] = tiPR[12]; + tiPR++; + } + /* for ambiguous */ + for (i=0; i<4; i++) + preLikeR[j++] = 1.0; + tiPR += 12; + } + } + + /* find likelihoods of site patterns for anc branch, always terminal */ + if (m->isPartAmbig[p->anc->index] == YES) + { + shortCut = 4; + } + else + { + aState = m->termState[p->anc->index]; + tiPA = pA; + for (k=j=0; knumGammaCats; k++) + { + for (i=0; i<4; i++) + { + preLikeA[j++] = tiPA[0]; + preLikeA[j++] = tiPA[4]; + preLikeA[j++] = tiPA[8]; + preLikeA[j++] = tiPA[12]; + tiPA++; + } + /* for ambiguous */ + for (i=0; i<4; i++) + preLikeA[j++] = 1.0; + tiPA += 12; + } + } +# else + shortCut = 4; +# endif + + switch (shortCut) + { + case 4: + tiPL = pL; + tiPR = pR; + tiPA = pA; + for (k=h=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + clP[h++] = (tiPL[AA]*clL[A] + tiPL[AC]*clL[C] + tiPL[AG]*clL[G] + tiPL[AT]*clL[T]) + *(tiPR[AA]*clR[A] + tiPR[AC]*clR[C] + tiPR[AG]*clR[G] + tiPR[AT]*clR[T]) + *(tiPA[AA]*clA[A] + tiPA[AC]*clA[C] + tiPA[AG]*clA[G] + tiPA[AT]*clA[T]); + clP[h++] = (tiPL[CA]*clL[A] + tiPL[CC]*clL[C] + tiPL[CG]*clL[G] + tiPL[CT]*clL[T]) + *(tiPR[CA]*clR[A] + tiPR[CC]*clR[C] + tiPR[CG]*clR[G] + tiPR[CT]*clR[T]) + *(tiPA[CA]*clA[A] + tiPA[CC]*clA[C] + tiPA[CG]*clA[G] + tiPA[CT]*clA[T]); + clP[h++] = (tiPL[GA]*clL[A] + tiPL[GC]*clL[C] + tiPL[GG]*clL[G] + tiPL[GT]*clL[T]) + *(tiPR[GA]*clR[A] + tiPR[GC]*clR[C] + tiPR[GG]*clR[G] + tiPR[GT]*clR[T]) + *(tiPA[GA]*clA[A] + tiPA[GC]*clA[C] + tiPA[GG]*clA[G] + tiPA[GT]*clA[T]); + clP[h++] = (tiPL[TA]*clL[A] + tiPL[TC]*clL[C] + tiPL[TG]*clL[G] + tiPL[TT]*clL[T]) + *(tiPR[TA]*clR[A] + tiPR[TC]*clR[C] + tiPR[TG]*clR[G] + tiPR[TT]*clR[T]) + *(tiPA[TA]*clA[A] + tiPA[TC]*clA[C] + tiPA[TG]*clA[G] + tiPA[TT]*clA[T]); + clL += 4; + clR += 4; + clA += 4; + } + tiPL += 16; + tiPR += 16; + tiPA += 16; + } + break; + + case 0: + tiPL = pL; + tiPR = pR; + for (k=h=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + i = aState[c] + k*20; + clP[h++] = (tiPL[AA]*clL[A] + tiPL[AC]*clL[C] + tiPL[AG]*clL[G] + tiPL[AT]*clL[T]) + *(tiPR[AA]*clR[A] + tiPR[AC]*clR[C] + tiPR[AG]*clR[G] + tiPR[AT]*clR[T]) + *preLikeA[i++]; + clP[h++] = (tiPL[CA]*clL[A] + tiPL[CC]*clL[C] + tiPL[CG]*clL[G] + tiPL[CT]*clL[T]) + *(tiPR[CA]*clR[A] + tiPR[CC]*clR[C] + tiPR[CG]*clR[G] + tiPR[CT]*clR[T]) + *preLikeA[i++]; + clP[h++] = (tiPL[GA]*clL[A] + tiPL[GC]*clL[C] + tiPL[GG]*clL[G] + tiPL[GT]*clL[T]) + *(tiPR[GA]*clR[A] + tiPR[GC]*clR[C] + tiPR[GG]*clR[G] + tiPR[GT]*clR[T]) + *preLikeA[i++]; + clP[h++] = (tiPL[TA]*clL[A] + tiPL[TC]*clL[C] + tiPL[TG]*clL[G] + tiPL[TT]*clL[T]) + *(tiPR[TA]*clR[A] + tiPR[TC]*clR[C] + tiPR[TG]*clR[G] + tiPR[TT]*clR[T]) + *preLikeA[i++]; + clL += 4; + clR += 4; + } + tiPL += 16; + tiPR += 16; + } + break; + + case 1: + tiPR = pR; + for (k=h=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + i = lState[c] + k*20; + j = aState[c] + k*20; + clP[h++] = (tiPR[AA]*clR[A] + tiPR[AC]*clR[C] + tiPR[AG]*clR[G] + tiPR[AT]*clR[T]) + *preLikeL[i++]*preLikeA[j++]; + clP[h++] = (tiPR[CA]*clR[A] + tiPR[CC]*clR[C] + tiPR[CG]*clR[G] + tiPR[CT]*clR[T]) + *preLikeL[i++]*preLikeA[j++]; + clP[h++] = (tiPR[GA]*clR[A] + tiPR[GC]*clR[C] + tiPR[GG]*clR[G] + tiPR[GT]*clR[T]) + *preLikeL[i++]*preLikeA[j++]; + clP[h++] = (tiPR[TA]*clR[A] + tiPR[TC]*clR[C] + tiPR[TG]*clR[G] + tiPR[TT]*clR[T]) + *preLikeL[i++]*preLikeA[j++]; + clR += 4; + } + tiPR += 16; + } + break; + + case 2: + tiPL = pL; + for (k=h=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + i = rState[c] + k*20; + j = aState[c] + k*20; + clP[h++] = (tiPL[AA]*clL[A] + tiPL[AC]*clL[C] + tiPL[AG]*clL[G] + tiPL[AT]*clL[T]) + *preLikeR[i++]*preLikeA[j++]; + clP[h++] = (tiPL[CA]*clL[A] + tiPL[CC]*clL[C] + tiPL[CG]*clL[G] + tiPL[CT]*clL[T]) + *preLikeR[i++]*preLikeA[j++]; + clP[h++] = (tiPL[GA]*clL[A] + tiPL[GC]*clL[C] + tiPL[GG]*clL[G] + tiPL[GT]*clL[T]) + *preLikeR[i++]*preLikeA[j++]; + clP[h++] = (tiPL[TA]*clL[A] + tiPL[TC]*clL[C] + tiPL[TG]*clL[G] + tiPL[TT]*clL[T]) + *preLikeR[i++]*preLikeA[j++]; + clL += 4; + } + tiPL += 16; + } + break; + + case 3: + for (k=h=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = lState[c] + k*20; + i = rState[c] + k*20; + j = aState[c] + k*20; + clP[h++] = preLikeL[a++]*preLikeR[i++]*preLikeA[j++]; + clP[h++] = preLikeL[a++]*preLikeR[i++]*preLikeA[j++]; + clP[h++] = preLikeL[a++]*preLikeR[i++]*preLikeA[j++]; + clP[h++] = preLikeL[a++]*preLikeR[i++]*preLikeA[j++]; + } + } + break; + } + + return NO_ERROR; +} + + +/*---------------------------------------------------------------- +| +| CondLikeRoot_NUC4_GibbsGamma: 4by4 nucleotide model with rate +| variation approimated by Gibbs sampling from gamma +| +-----------------------------------------------------------------*/ +int CondLikeRoot_NUC4_GibbsGamma (TreeNode *p, int division, int chain) +{ + int c, h, i, j, r, *rateCat, shortCut, *lState=NULL, *rState=NULL, *aState=NULL, + nGammaCats; + CLFlt *clL, *clR, *clP, *clA, *pL, *pR, *pA, *tiPL, *tiPR, *tiPA; + ModelInfo *m; +# if !defined (DEBUG_NOSHORTCUTS) + int k; +# endif + + m = &modelSettings[division]; + + /* flip conditional likelihood space */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities (or calculate instead) */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + /* find rate category index and number of gamma categories */ + rateCat = m->tiIndex + chain * m->numChars; + nGammaCats = m->numGammaCats; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=j=0; kright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=j=0; kisPartAmbig[p->anc->index] == YES) + { + shortCut = 4; + } + else + { + aState = m->termState[p->anc->index]; + tiPA = pA; + for (k=j=0; knumChars; c++) + { + r = rateCat[c]; + if (r < nGammaCats) + { + tiPL = pL + r * 16; + tiPR = pR + r * 16; + tiPA = pA + r * 16; + clP[h++] = (tiPL[AA]*clL[A] + tiPL[AC]*clL[C] + tiPL[AG]*clL[G] + tiPL[AT]*clL[T]) + *(tiPR[AA]*clR[A] + tiPR[AC]*clR[C] + tiPR[AG]*clR[G] + tiPR[AT]*clR[T]) + *(tiPA[AA]*clA[A] + tiPA[AC]*clA[C] + tiPA[AG]*clA[G] + tiPA[AT]*clA[T]); + clP[h++] = (tiPL[CA]*clL[A] + tiPL[CC]*clL[C] + tiPL[CG]*clL[G] + tiPL[CT]*clL[T]) + *(tiPR[CA]*clR[A] + tiPR[CC]*clR[C] + tiPR[CG]*clR[G] + tiPR[CT]*clR[T]) + *(tiPA[CA]*clA[A] + tiPA[CC]*clA[C] + tiPA[CG]*clA[G] + tiPA[CT]*clA[T]); + clP[h++] = (tiPL[GA]*clL[A] + tiPL[GC]*clL[C] + tiPL[GG]*clL[G] + tiPL[GT]*clL[T]) + *(tiPR[GA]*clR[A] + tiPR[GC]*clR[C] + tiPR[GG]*clR[G] + tiPR[GT]*clR[T]) + *(tiPA[GA]*clA[A] + tiPA[GC]*clA[C] + tiPA[GG]*clA[G] + tiPA[GT]*clA[T]); + clP[h++] = (tiPL[TA]*clL[A] + tiPL[TC]*clL[C] + tiPL[TG]*clL[G] + tiPL[TT]*clL[T]) + *(tiPR[TA]*clR[A] + tiPR[TC]*clR[C] + tiPR[TG]*clR[G] + tiPR[TT]*clR[T]) + *(tiPA[TA]*clA[A] + tiPA[TC]*clA[C] + tiPA[TG]*clA[G] + tiPA[TT]*clA[T]); + } + else + h += 4; + clL += 4; + clR += 4; + clA += 4; + } + break; + + case 0: + case 3: + for (c=h=0; cnumChars; c++) + { + r = rateCat[c]; + if (r < nGammaCats) + { + tiPL = pL + r * 16; + tiPR = pR + r * 16; + i = aState[c] + r * 20; + clP[h++] = (tiPL[AA]*clL[A] + tiPL[AC]*clL[C] + tiPL[AG]*clL[G] + tiPL[AT]*clL[T]) + *(tiPR[AA]*clR[A] + tiPR[AC]*clR[C] + tiPR[AG]*clR[G] + tiPR[AT]*clR[T]) + *preLikeA[i++]; + clP[h++] = (tiPL[CA]*clL[A] + tiPL[CC]*clL[C] + tiPL[CG]*clL[G] + tiPL[CT]*clL[T]) + *(tiPR[CA]*clR[A] + tiPR[CC]*clR[C] + tiPR[CG]*clR[G] + tiPR[CT]*clR[T]) + *preLikeA[i++]; + clP[h++] = (tiPL[GA]*clL[A] + tiPL[GC]*clL[C] + tiPL[GG]*clL[G] + tiPL[GT]*clL[T]) + *(tiPR[GA]*clR[A] + tiPR[GC]*clR[C] + tiPR[GG]*clR[G] + tiPR[GT]*clR[T]) + *preLikeA[i++]; + clP[h++] = (tiPL[TA]*clL[A] + tiPL[TC]*clL[C] + tiPL[TG]*clL[G] + tiPL[TT]*clL[T]) + *(tiPR[TA]*clR[A] + tiPR[TC]*clR[C] + tiPR[TG]*clR[G] + tiPR[TT]*clR[T]) + *preLikeA[i++]; + } + else + h += 4; + clL += 4; + clR += 4; + } + break; + + case 1: + for (c=h=0; cnumChars; c++) + { + r = rateCat[c]; + if (r < nGammaCats) + { + tiPR = pR + r * 16; + i = lState[c] + r * 20; + j = aState[c] + r * 20; + clP[h++] = (tiPR[AA]*clR[A] + tiPR[AC]*clR[C] + tiPR[AG]*clR[G] + tiPR[AT]*clR[T]) + *preLikeL[i++]*preLikeA[j++]; + clP[h++] = (tiPR[CA]*clR[A] + tiPR[CC]*clR[C] + tiPR[CG]*clR[G] + tiPR[CT]*clR[T]) + *preLikeL[i++]*preLikeA[j++]; + clP[h++] = (tiPR[GA]*clR[A] + tiPR[GC]*clR[C] + tiPR[GG]*clR[G] + tiPR[GT]*clR[T]) + *preLikeL[i++]*preLikeA[j++]; + clP[h++] = (tiPR[TA]*clR[A] + tiPR[TC]*clR[C] + tiPR[TG]*clR[G] + tiPR[TT]*clR[T]) + *preLikeL[i++]*preLikeA[j++]; + } + else + h += 4; + clR += 4; + } + break; + + case 2: + for (c=h=0; cnumChars; c++) + { + r = rateCat[c]; + if (r < nGammaCats) + { + tiPL = pL + r * 16; + i = rState[c] + r * 20; + j = aState[c] + r * 20; + clP[h++] = (tiPL[AA]*clL[A] + tiPL[AC]*clL[C] + tiPL[AG]*clL[G] + tiPL[AT]*clL[T]) + *preLikeR[i++]*preLikeA[j++]; + clP[h++] = (tiPL[CA]*clL[A] + tiPL[CC]*clL[C] + tiPL[CG]*clL[G] + tiPL[CT]*clL[T]) + *preLikeR[i++]*preLikeA[j++]; + clP[h++] = (tiPL[GA]*clL[A] + tiPL[GC]*clL[C] + tiPL[GG]*clL[G] + tiPL[GT]*clL[T]) + *preLikeR[i++]*preLikeA[j++]; + clP[h++] = (tiPL[TA]*clL[A] + tiPL[TC]*clL[C] + tiPL[TG]*clL[G] + tiPL[TT]*clL[T]) + *preLikeR[i++]*preLikeA[j++]; + } + else + h += 4; + clL += 4; + } + break; + } + + return NO_ERROR; +} + + +#if defined (SSE_ENABLED) +/*---------------------------------------------------------------- +| +| CondLikeRoot_NUC4_SSE: 4by4 nucleotide model with or without rate +| variation using SSE instructions +| +-----------------------------------------------------------------*/ +int CondLikeRoot_NUC4_SSE (TreeNode *p, int division, int chain) +{ + int c, k; + CLFlt *pL, *pR, *pA, *tiPL, *tiPR, *tiPA; + __m128 *clL, *clR, *clP, *clA; + __m128 m1, m2, m3, m4, m5, m6, m7, m8, m9; + ModelInfo *m; + + m = &modelSettings[division]; + + /* flip state of node so that we are not overwriting old cond likes */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + tiPL = pL; + tiPR = pR; + tiPA = pA; + for (k=0; knumGammaCats; k++) + { + for (c=0; cnumSSEChars; c++) + { + m1 = _mm_load1_ps (&tiPL[AA]); + m2 = _mm_load1_ps (&tiPR[AA]); + m3 = _mm_load1_ps (&tiPA[AA]); + m7 = _mm_mul_ps (m1, clL[A]); + m8 = _mm_mul_ps (m2, clR[A]); + m9 = _mm_mul_ps (m3, clA[A]); + + m1 = _mm_load1_ps (&tiPL[AC]); + m2 = _mm_load1_ps (&tiPR[AC]); + m3 = _mm_load1_ps (&tiPA[AC]); + m4 = _mm_mul_ps (m1, clL[C]); + m5 = _mm_mul_ps (m2, clR[C]); + m6 = _mm_mul_ps (m3, clA[C]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m1 = _mm_load1_ps (&tiPL[AG]); + m2 = _mm_load1_ps (&tiPR[AG]); + m3 = _mm_load1_ps (&tiPA[AG]); + m4 = _mm_mul_ps (m1, clL[G]); + m5 = _mm_mul_ps (m2, clR[G]); + m6 = _mm_mul_ps (m3, clA[G]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m1 = _mm_load1_ps (&tiPL[AT]); + m2 = _mm_load1_ps (&tiPR[AT]); + m3 = _mm_load1_ps (&tiPA[AT]); + m4 = _mm_mul_ps (m1, clL[T]); + m5 = _mm_mul_ps (m2, clR[T]); + m6 = _mm_mul_ps (m3, clA[T]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m7 = _mm_mul_ps (m7, m8); + *clP++ = _mm_mul_ps (m7, m9); + + m1 = _mm_load1_ps (&tiPL[CA]); + m2 = _mm_load1_ps (&tiPR[CA]); + m3 = _mm_load1_ps (&tiPA[CA]); + m7 = _mm_mul_ps (m1, clL[A]); + m8 = _mm_mul_ps (m2, clR[A]); + m9 = _mm_mul_ps (m3, clA[A]); + + m1 = _mm_load1_ps (&tiPL[CC]); + m2 = _mm_load1_ps (&tiPR[CC]); + m3 = _mm_load1_ps (&tiPA[CC]); + m4 = _mm_mul_ps (m1, clL[C]); + m5 = _mm_mul_ps (m2, clR[C]); + m6 = _mm_mul_ps (m3, clA[C]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m1 = _mm_load1_ps (&tiPL[CG]); + m2 = _mm_load1_ps (&tiPR[CG]); + m3 = _mm_load1_ps (&tiPA[CG]); + m4 = _mm_mul_ps (m1, clL[G]); + m5 = _mm_mul_ps (m2, clR[G]); + m6 = _mm_mul_ps (m3, clA[G]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m1 = _mm_load1_ps (&tiPL[CT]); + m2 = _mm_load1_ps (&tiPR[CT]); + m3 = _mm_load1_ps (&tiPA[CT]); + m4 = _mm_mul_ps (m1, clL[T]); + m5 = _mm_mul_ps (m2, clR[T]); + m6 = _mm_mul_ps (m3, clA[T]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m7 = _mm_mul_ps (m7, m8); + *clP++ = _mm_mul_ps (m7, m9); + + m1 = _mm_load1_ps (&tiPL[GA]); + m2 = _mm_load1_ps (&tiPR[GA]); + m3 = _mm_load1_ps (&tiPA[GA]); + m7 = _mm_mul_ps (m1, clL[A]); + m8 = _mm_mul_ps (m2, clR[A]); + m9 = _mm_mul_ps (m3, clA[A]); + + m1 = _mm_load1_ps (&tiPL[GC]); + m2 = _mm_load1_ps (&tiPR[GC]); + m3 = _mm_load1_ps (&tiPA[GC]); + m4 = _mm_mul_ps (m1, clL[C]); + m5 = _mm_mul_ps (m2, clR[C]); + m6 = _mm_mul_ps (m3, clA[C]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m1 = _mm_load1_ps (&tiPL[GG]); + m2 = _mm_load1_ps (&tiPR[GG]); + m3 = _mm_load1_ps (&tiPA[GG]); + m4 = _mm_mul_ps (m1, clL[G]); + m5 = _mm_mul_ps (m2, clR[G]); + m6 = _mm_mul_ps (m3, clA[G]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m1 = _mm_load1_ps (&tiPL[GT]); + m2 = _mm_load1_ps (&tiPR[GT]); + m3 = _mm_load1_ps (&tiPA[GT]); + m4 = _mm_mul_ps (m1, clL[T]); + m5 = _mm_mul_ps (m2, clR[T]); + m6 = _mm_mul_ps (m3, clA[T]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m7 = _mm_mul_ps (m7, m8); + *clP++ = _mm_mul_ps (m7, m9); + + m1 = _mm_load1_ps (&tiPL[TA]); + m2 = _mm_load1_ps (&tiPR[TA]); + m3 = _mm_load1_ps (&tiPA[TA]); + m7 = _mm_mul_ps (m1, clL[A]); + m8 = _mm_mul_ps (m2, clR[A]); + m9 = _mm_mul_ps (m3, clA[A]); + + m1 = _mm_load1_ps (&tiPL[TC]); + m2 = _mm_load1_ps (&tiPR[TC]); + m3 = _mm_load1_ps (&tiPA[TC]); + m4 = _mm_mul_ps (m1, clL[C]); + m5 = _mm_mul_ps (m2, clR[C]); + m6 = _mm_mul_ps (m3, clA[C]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m1 = _mm_load1_ps (&tiPL[TG]); + m2 = _mm_load1_ps (&tiPR[TG]); + m3 = _mm_load1_ps (&tiPA[TG]); + m4 = _mm_mul_ps (m1, clL[G]); + m5 = _mm_mul_ps (m2, clR[G]); + m6 = _mm_mul_ps (m3, clA[G]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m1 = _mm_load1_ps (&tiPL[TT]); + m2 = _mm_load1_ps (&tiPR[TT]); + m3 = _mm_load1_ps (&tiPA[TT]); + m4 = _mm_mul_ps (m1, clL[T]); + m5 = _mm_mul_ps (m2, clR[T]); + m6 = _mm_mul_ps (m3, clA[T]); + m7 = _mm_add_ps (m4, m7); + m8 = _mm_add_ps (m5, m8); + m9 = _mm_add_ps (m6, m9); + + m7 = _mm_mul_ps (m7, m8); + *clP++ = _mm_mul_ps (m7, m9); + + clL += 4; + clR += 4; + clA += 4; + } + tiPL += 16; + tiPR += 16; + tiPA += 16; + } + + return NO_ERROR; +} +#endif + + +#if !defined (SSE_ENABLED) || 1 +/*---------------------------------------------------------------- +| +| CondLikeRoot_NY98: codon model with omega variation +| +-----------------------------------------------------------------*/ +int CondLikeRoot_NY98 (TreeNode *p, int division, int chain) +{ + int a, b, c, d, h, i, j, k, shortCut, *lState=NULL, *rState=NULL, *aState=NULL, + nStates, nStatesSquared; + CLFlt likeL, likeR, likeA, *clL, *clR, *clP, *clA, *pL, *pR, *pA, + *tiPL, *tiPR, *tiPA; + ModelInfo *m; + + /* find model settings for this division and nStates, nStatesSquared */ + m = &modelSettings[division]; + nStates = m->numModelStates; + nStatesSquared = nStates * nStates; + + /* flip state of node so that we are not overwriting old cond likes */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities (or calculate instead) */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=a=0; knumOmegaCats; k++) + { + for (i=0; iright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=a=0; knumOmegaCats; k++) + { + for (i=0; iisPartAmbig[p->anc->index] == YES) + { + shortCut = 4; + } + else + { + aState = m->termState[p->anc->index]; + tiPA = pA; + for (k=a=0; knumOmegaCats; k++) + { + for (i=0; inumOmegaCats; k++) + { + for (c=0; cnumChars; c++) + { + for (i=h=0; inumOmegaCats; k++) + { + for (c=0; cnumChars; c++) + { + b = aState[c] + k*(nStatesSquared+nStates); + for (i=h=0; inumOmegaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = lState[c] + k*(nStatesSquared+nStates); + b = aState[c] + k*(nStatesSquared+nStates); + for (i=h=0; inumOmegaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = rState[c] + k*(nStatesSquared+nStates); + b = aState[c] + k*(nStatesSquared+nStates); + for (i=h=0; inumOmegaCats; k++) + { + for (c=0; cnumChars; c++) + { + a = rState[c] + k*(nStatesSquared+nStates); + b = lState[c] + k*(nStatesSquared+nStates); + d = aState[c] + k*(nStatesSquared+nStates); + for (i=0; inumModelStates; + nStatesSquared = nStates * nStates; + + /* flip state of node so that we are not overwriting old cond likes */ + FlipCondLikeSpace (m, chain, p->index); + + /* find conditional likelihood pointers */ + clL = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities (or calculate instead) */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + /* find likelihoods of site patterns for left branch if terminal */ + shortCut = 0; +# if !defined (DEBUG_NOSHORTCUTS) + if (p->left->left == NULL && m->isPartAmbig[p->left->index] == NO) + { + shortCut |= 1; + lState = m->termState[p->left->index]; + tiPL = pL; + for (k=a=0; knumOmegaCats; k++) + { + for (i=0; iright->left == NULL && m->isPartAmbig[p->right->index] == NO) + { + shortCut |= 2; + rState = m->termState[p->right->index]; + tiPR = pR; + for (k=a=0; knumOmegaCats; k++) + { + for (i=0; iisPartAmbig[p->anc->index] == YES) + { + shortCut = 4; + } + else + { + aState = m->termState[p->anc->index]; + tiPA = pA; + for (k=a=0; knumOmegaCats; k++) + { + for (i=0; inumOmegaCats; k++) + { + for (c=0; cnumSSEChars; c++) + { + for (i=h=0; inumOmegaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numOmegaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numOmegaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1numOmegaCats; k++) + { + for (c=t=0; cnumSSEChars; c++) + { + for (c1=0; c1index); + + /* find conditional likelihood pointers */ + clL = m->condLikes[m->condLikeIndex[chain][p->left->index ]]; + clR = m->condLikes[m->condLikeIndex[chain][p->right->index]]; + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = m->condLikes[m->condLikeIndex[chain][p->anc->index ]]; + + /* find transition probabilities (or calculate instead) */ + pL = m->tiProbs[m->tiProbsIndex[chain][p->left->index ]]; + pR = m->tiProbs[m->tiProbsIndex[chain][p->right->index]]; + pA = m->tiProbs[m->tiProbsIndex[chain][p->index ]]; + + /* calculate ancestral probabilities */ + for (k=h=0; knumGammaCats; k++) + { + /* calculate ancestral probabilities */ + for (c=0; cnumChars; c++) + { + nStates = m->nStates[c]; + + /* the following lines ensure that nCats is 1 unless */ + /* the character is binary and beta categories are used */ + if (nStates == 2) + nCats = m->numBetaCats; + else + nCats = 1; + + tmp = k*nStates*nStates; /* tmp contains offset to skip gamma cats that already processed*/ + tiPL = pL + m->tiIndex[c] + tmp; + tiPR = pR + m->tiIndex[c] + tmp; + tiPA = pA + m->tiIndex[c] + tmp; + tmp = (m->numGammaCats-1)*2*2; /* tmp contains size of block of tpi matrices across all gamma cats (minus one) for single beta category. Further used only if character is binary to jump to next beta category */ + + for (j=0; janc->anc == NULL) + { + /* this is the root node */ + /* find conditional likelihood pointers = down cond likes */ + /* use conditional likelihood scratch space for final cond likes */ + clDP = m->condLikes[m->condLikeIndex[chain][p->index]]; + clFP = m->condLikes[m->condLikeScratchIndex[p->index]]; + + for (k=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + *(clFP++) = *(clDP++); + *(clFP++) = *(clDP++); + } + } + } + else + { + /* find conditional likelihood pointers */ + /* use conditional likelihood scratch space for final cond likes */ + clFA = m->condLikes[m->condLikeScratchIndex[p->anc->index]]; + clFP = m->condLikes[m->condLikeScratchIndex[p->index ]]; + clDP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + tiP = m->tiProbs[m->tiProbsIndex[chain][p->index]]; + + for (k=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + condLikeUp[0] = condLikeUp[1] = 0.0; + + sum[0] = tiP[0]*clDP[0] + tiP[1]*clDP[1]; + sum[1] = tiP[2]*clDP[0] + tiP[3]*clDP[1]; + + if (sum[0] != 0.0) condLikeUp[0] = clFA[0] / sum[0]; + if (sum[1] != 0.0) condLikeUp[1] = clFA[1] / sum[1]; + + *(clFP++) = (condLikeUp[0]*tiP[0] + condLikeUp[1]*tiP[1])*clDP[0]; + *(clFP++) = (condLikeUp[0]*tiP[2] + condLikeUp[1]*tiP[3])*clDP[1]; + + clFA += 2; + clDP += 2; + } + tiP += 4; + } + } + + return NO_ERROR; +} + + +/*---------------------------------------------------------------- +| +| CondLikeUp_Gen: pull likelihoods up and calculate scaled +| finals for an interior node +| +-----------------------------------------------------------------*/ +int CondLikeUp_Gen (TreeNode *p, int division, int chain) +{ + int a, c, i, j, k, nStates, nStatesSquared, nGammaCats; + CLFlt *clFA, *clFP, *clDP, *tiP, *condLikeUp, sum; + ModelInfo *m; + + /* find model settings for this division */ + m = &modelSettings[division]; + + /* find number of states in the model */ + nStates = m->numModelStates; + nStatesSquared = nStates * nStates; + + /* find number of gamma cats */ + nGammaCats = m->numGammaCats; + if (m->gibbsGamma == YES) + nGammaCats = 1; + + /* use preallocated scratch space */ + condLikeUp = m->ancStateCondLikes; + + /* calculate final states */ + if (p->anc->anc == NULL) + { + /* this is the root node */ + /* find conditional likelihood pointers = down cond likes */ + /* use conditional likelihood scratch space for final cond likes */ + clDP = m->condLikes[m->condLikeIndex[chain][p->index]]; + clFP = m->condLikes[m->condLikeScratchIndex[p->index]]; + + /* final cond likes = downpass cond likes */ + for (k=0; knumChars*nStates; c++) + *(clFP++) = *(clDP++); + } + } + else + { + /* find conditional likelihood pointers */ + /* use conditional likelihood scratch space for final cond likes */ + clFA = m->condLikes[m->condLikeScratchIndex[p->anc->index]]; + clFP = m->condLikes[m->condLikeScratchIndex[p->index ]]; + clDP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + tiP = m->tiProbs[m->tiProbsIndex[chain][p->index]]; + + for (k=0; knumChars; c++) + { + for (a=j=0; anumGammaCats; + if (m->gibbsGamma == YES) + nGammaCats = 1; + + /* calculate final states */ + if (p->anc->anc == NULL) + { + /* this is the root node */ + /* find conditional likelihood pointers = down cond likes */ + /* use conditional likelihood scratch space for final cond likes */ + clDP = m->condLikes[m->condLikeIndex[chain][p->index]]; + clFP = m->condLikes[m->condLikeScratchIndex[p->index]]; + + /* final cond likes = downpass cond likes */ + for (k=0; knumChars; c++) + { + *(clFP++) = *(clDP++); + *(clFP++) = *(clDP++); + *(clFP++) = *(clDP++); + *(clFP++) = *(clDP++); + } + } + } + else + { + /* find conditional likelihood pointers */ + /* use conditional likelihood scratch space for final cond likes */ + clFA = m->condLikes[m->condLikeScratchIndex[p->anc->index]]; + clFP = m->condLikes[m->condLikeScratchIndex[p->index ]]; + clDP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + tiP = m->tiProbs[m->tiProbsIndex[chain][p->index]]; + + for (k=0; knumChars; c++) + { + condLikeUp[A] = condLikeUp[C] = condLikeUp[G] = condLikeUp[T] = 0.0; + + sum[A] = (tiP[AA]*clDP[A] + tiP[AC]*clDP[C] + tiP[AG]*clDP[G] + tiP[AT]*clDP[T]); + sum[C] = (tiP[CA]*clDP[A] + tiP[CC]*clDP[C] + tiP[CG]*clDP[G] + tiP[CT]*clDP[T]); + sum[G] = (tiP[GA]*clDP[A] + tiP[GC]*clDP[C] + tiP[GG]*clDP[G] + tiP[GT]*clDP[T]); + sum[T] = (tiP[TA]*clDP[A] + tiP[TC]*clDP[C] + tiP[TG]*clDP[G] + tiP[TT]*clDP[T]); + + if (sum[A] != 0.0) condLikeUp[A] = clFA[A] / sum[A]; + if (sum[C] != 0.0) condLikeUp[C] = clFA[C] / sum[C]; + if (sum[G] != 0.0) condLikeUp[G] = clFA[G] / sum[G]; + if (sum[T] != 0.0) condLikeUp[T] = clFA[T] / sum[T]; + +/* + clFP[A] = (condLikeUp[A]*tiP[AA] + condLikeUp[C]*tiP[CA] + condLikeUp[G]*tiP[GA] + condLikeUp[T]*tiP[TA])*clDP[A]; + clFP[C] = (condLikeUp[A]*tiP[AC] + condLikeUp[C]*tiP[CC] + condLikeUp[G]*tiP[GC] + condLikeUp[T]*tiP[TC])*clDP[C]; + clFP[G] = (condLikeUp[A]*tiP[AG] + condLikeUp[C]*tiP[CG] + condLikeUp[G]*tiP[GG] + condLikeUp[T]*tiP[TG])*clDP[G]; + clFP[T] = (condLikeUp[A]*tiP[AT] + condLikeUp[C]*tiP[CT] + condLikeUp[G]*tiP[GT] + condLikeUp[T]*tiP[TT])*clDP[T]; +*/ + + clFP[A] = (condLikeUp[A]*tiP[AA] + condLikeUp[C]*tiP[AC] + condLikeUp[G]*tiP[AG] + condLikeUp[T]*tiP[AT])*clDP[A]; + clFP[C] = (condLikeUp[A]*tiP[CA] + condLikeUp[C]*tiP[CC] + condLikeUp[G]*tiP[CG] + condLikeUp[T]*tiP[CT])*clDP[C]; + clFP[G] = (condLikeUp[A]*tiP[GA] + condLikeUp[C]*tiP[GC] + condLikeUp[G]*tiP[GG] + condLikeUp[T]*tiP[GT])*clDP[G]; + clFP[T] = (condLikeUp[A]*tiP[TA] + condLikeUp[C]*tiP[TC] + condLikeUp[G]*tiP[TG] + condLikeUp[T]*tiP[TT])*clDP[T]; + + clFA += 4; + clFP += 4; + clDP += 4; + } + tiP += 16; + } + } + + return NO_ERROR; +} + + +/*---------------------------------------------------------------- +| +| CondLikeUp_Std: pull likelihoods up and calculate scaled +| finals for an interior node +| +-----------------------------------------------------------------*/ +int CondLikeUp_Std (TreeNode *p, int division, int chain) +{ + int a, c, i, j, k, t, nStates, nCats, coppySize,tmp; + CLFlt *clFA, *clFP, *clDP, *pA, *tiP, condLikeUp[10], sum; + ModelInfo *m; + + /* find model settings for this division */ + m = &modelSettings[division]; + + /* calculate final states */ + if (p->anc->anc == NULL) + { + /* this is the root node */ + /* find conditional likelihood pointers = down cond likes */ + /* use conditional likelihood scratch space for final cond likes */ + clDP = m->condLikes[m->condLikeIndex[chain][p->index]]; + clFP = m->condLikes[m->condLikeScratchIndex[p->index]]; + + coppySize=0; + /* final cond likes = downpass cond likes */ + for (c=0; cnumChars; c++) + { + /* calculate nStates and nCats */ + nStates = m->nStates[c]; + + /* the following lines ensure that nCats is 1 unless */ + /* the character is binary and beta categories are used */ + if (nStates == 2) + nCats = m->numBetaCats; + else + nCats = 1; + + coppySize+=nCats*nStates; + } + + /* finally multiply with the gamma cats */ + coppySize *= m->numGammaCats; + + /* copy cond likes */ + for (k=0; kcondLikes[m->condLikeScratchIndex[p->anc->index]]; + clFP = m->condLikes[m->condLikeScratchIndex[p->index ]]; + clDP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + + /* find transition probabilities */ + pA = m->tiProbs[m->tiProbsIndex[chain][p->index]]; + + for (k=0; knumGammaCats; k++) + { + for (c=0; cnumChars; c++) + { + + /* calculate nStates and nCats */ + nStates = m->nStates[c]; + + /* the following lines ensure that nCats is 1 unless */ + /* the character is binary and beta categories are used */ + if (nStates == 2) + nCats = m->numBetaCats; + else + nCats = 1; + + tmp = k*nStates*nStates; /* tmp contains offset to skip gamma cats that already processed*/ + tiP = pA + m->tiIndex[c] + tmp; + tmp = (m->numGammaCats-1)*2*2; /* tmp contains size of block of tpi matrices across all gamma cats (minus one) for single beta category. Further used only if character is binary to jump to next beta category */ + + /* finally multiply with the gamma cats */ + //nCats *= m->numGammaCats; + + /* now calculate the final cond likes */ + for (t=0; tscalerNode == YES); + + m = &modelSettings[division]; + nStates = m->numModelStates; + + /* find conditional likelihood pointers */ + clPtr = m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numChars * m->numModelStates; + } + + /* find node scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + + /* find site scalers */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* rescale */ + for (c=0; cnumChars; c++) + { + scaler = 0.0; + for (k=0; knumGammaCats; k++) + { + for (n=0; n scaler) + scaler = clP[k][n]; + } + } + +# if defined (FAST_LOG) + frexp (scaler, &index); + index = 1-index; + scaler = scalerValue[index]; +# endif + for (k=0; knumGammaCats; k++) + { + for (n=0; nscalersSet[chain][p->index] = YES; + + return (NO_ERROR); +} + + +#if defined (SSE_ENABLED) +/*---------------------------------------------------------------- +| +| CondLikeScaler_Gen_SSE: general n-state model with or without rate +| variation +| +-----------------------------------------------------------------*/ +int CondLikeScaler_Gen_SSE (TreeNode *p, int division, int chain) +{ + int c, k, n, nStates; + CLFlt *scP, *lnScaler; + __m128 *clPtr, **clP, m1; + ModelInfo *m; +# if defined (FAST_LOG) + int index; +# endif + + m = &modelSettings[division]; + nStates = m->numModelStates; + + /* find conditional likelihood pointers */ + clPtr = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP_SSE; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numSSEChars * m->numModelStates; + } + + /* find node scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + //scP_SSE = (__m128 *) scP; + + /* find site scalers */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* rescale */ + for (c=0; cnumSSEChars; c++) + { + //scaler = 0.0; + m1 = _mm_setzero_ps (); + for (k=0; knumGammaCats; k++) + { + for (n=0; nnumGammaCats; k++) + { + for (n=0; nscalers[m->nodeScalerIndex[chain][p->index]]; + for (c=0; cnumChars; c++) + { +# if defined (FAST_LOG) + scP[c] = logValue[index]; /* store node scaler */ + lnScaler[c] += scP[c]; /* add into tree scaler */ +# else + scP[c] = (CLFlt) log (scP[c]); /* store node scaler */ + lnScaler[c] += scP[c]; /* add into tree scaler */ +# endif + } + + m->scalersSet[chain][p->index] = YES; + + return (NO_ERROR); +} +#endif + + +/*---------------------------------------------------------------- +| +| CondLikeScaler_Gen_GibbsGamma: general n-state model with Gibbs +| sampling of rate categories in discrete gamma +| +-----------------------------------------------------------------*/ +int CondLikeScaler_Gen_GibbsGamma (TreeNode *p, int division, int chain) +{ + int c, i, j, n, nStates, *rateCat, nGammaCats; + CLFlt scaler, *clP, *scP, *lnScaler; + ModelInfo *m; +# if defined (FAST_LOG) + int index; +# endif + + assert (p->scalerNode == YES); + + m = &modelSettings[division]; + nStates = m->numModelStates; + + /* find conditional likelihood pointer */ + clP = m->condLikes[m->condLikeIndex[chain][p->index]]; + + /* flip node scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + + /* find site scalers */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find rate category index and number of gamma categories */ + rateCat = m->tiIndex + chain * m->numChars; + nGammaCats = m->numGammaCats; + + /* scale */ + i = j = 0; + for (c=0; cnumChars; c++) + { + if (rateCat[c] < nGammaCats) + { + scaler = 0.0; + for (n=0; n scaler) + scaler = clP[i]; + i++; + } + +# if defined (FAST_LOG) + frexp (scaler, &index); + index = 1-index; + scaler = scalerValue[index]; +# endif + + for (n=0; nscalersSet[chain][p->index] = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| CondLikeScaler_NUC4: 4by4 nucleotide model with or without rate +| variation +| +-----------------------------------------------------------------*/ +int CondLikeScaler_NUC4 (TreeNode *p, int division, int chain) +{ + int c, k; + CLFlt scaler, *scP, *lnScaler, *clPtr, **clP; + ModelInfo *m; + +# if defined (FAST_LOG) + int index; +# endif + + m = &modelSettings[division]; + assert (p->scalerNode == YES); + + /* find conditional likelihood pointers */ + clPtr = m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numChars * m->numModelStates; + } + + /* find node scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + + /* find site scalers */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* rescale values */ + for (c=0; cnumChars; c++) + { + scaler = 0.0; + for (k=0; knumGammaCats; k++) + { + if (clP[k][A] > scaler) + scaler = clP[k][A]; + if (clP[k][C] > scaler) + scaler = clP[k][C]; + if (clP[k][G] > scaler) + scaler = clP[k][G]; + if (clP[k][T] > scaler) + scaler = clP[k][T]; + } + +# if defined (FAST_LOG) + frexp (scaler, &index); + index = 1-index; + scaler = scalerValue[index]; +# endif + for (k=0; knumGammaCats; k++) + { + clP[k][A] /= scaler; + clP[k][C] /= scaler; + clP[k][G] /= scaler; + clP[k][T] /= scaler; + clP[k] += 4; + } + +# if defined (FAST_LOG) + scP[c] = logValue[index]; /* store node scaler */ + lnScaler[c] += scP[c]; /* add into tree scaler */ +# else + scP[c] = (CLFlt) log(scaler); /* store node scaler */ + lnScaler[c] += scP[c]; /* add into tree scaler */ +# endif + } + + m->scalersSet[chain][p->index] = YES; /* set flag marking scalers set */ + + return NO_ERROR; +} + + +#if defined (SSE_ENABLED) +/*---------------------------------------------------------------- +| +| CondLikeScaler_NUC4_SSE: 4by4 nucleotide model with or without rate +| variation using SSE code +| +-----------------------------------------------------------------*/ +int CondLikeScaler_NUC4_SSE (TreeNode *p, int division, int chain) +{ + int c, k; + CLFlt *scP, *lnScaler; + __m128 *clPtr, **clP, *scP_SSE, m1; + ModelInfo *m; + + m = &modelSettings[division]; + assert (p->scalerNode == YES); + + /* find conditional likelihood pointers */ + clPtr = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP_SSE; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numSSEChars * m->numModelStates; + } + + /* find node scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + scP_SSE = (__m128 *) scP; + + /* find site scalers */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* rescale */ + for (c=0; cnumSSEChars; c++) + { + m1 = _mm_setzero_ps (); + for (k=0; knumGammaCats; k++) + { + m1 = _mm_max_ps (m1, clP[k][A]); + m1 = _mm_max_ps (m1, clP[k][C]); + m1 = _mm_max_ps (m1, clP[k][G]); + m1 = _mm_max_ps (m1, clP[k][T]); + } + + for (k=0; knumGammaCats; k++) + { + *clP[k] = _mm_div_ps (*clP[k], m1); + clP[k]++; + *clP[k] = _mm_div_ps (*clP[k], m1); + clP[k]++; + *clP[k] = _mm_div_ps (*clP[k], m1); + clP[k]++; + *clP[k] = _mm_div_ps (*clP[k], m1); + clP[k]++; + } + + (*scP_SSE++) = m1; + } + + /* update site scalers */ + for (c=0; cnumChars; c++) + lnScaler[c] += (scP[c] = (CLFlt)(log (scP[c]))); /* add log of new scaler into tree scaler */ + + m->scalersSet[chain][p->index] = YES; /* set flag marking scalers set */ + + return NO_ERROR; + +} +#endif + + +/*---------------------------------------------------------------- +| +| CondLikeScaler_NUC4_GibbsGamma: 4by4 nucleotide model with rate +| variation approximated by Gibbs sampling from gamma +| +-----------------------------------------------------------------*/ +int CondLikeScaler_NUC4_GibbsGamma (TreeNode *p, int division, int chain) +{ + int c, i, j, nGammaCats, *rateCat; + CLFlt scaler, *clP, *scP, *lnScaler; + ModelInfo *m; + +# if defined (FAST_LOG) + int index; +# endif + + assert (p->scalerNode == YES); + + m = &modelSettings[division]; + + /* find conditional likelihood pointer */ + clP = m->condLikes[m->condLikeIndex[chain][p->index]]; + + /* find node scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + + /* find site scalers */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find rate category index and number of gamma categories */ + rateCat = m->tiIndex + chain * m->numChars; + nGammaCats = m->numGammaCats; + + /* scale */ + i = j = 0; + for (c=0; cnumChars; c++) + { + if (rateCat[c] < nGammaCats) + { + scaler = 0.0; + if (clP[i] > scaler) + scaler = clP[i]; + i++; + if (clP[i] > scaler) + scaler = clP[i]; + i++; + if (clP[i] > scaler) + scaler = clP[i]; + i++; + if (clP[i] > scaler) + scaler = clP[i]; + i++; + +# if defined (FAST_LOG) + frexp (scaler, &index); + index = 1-index; + scaler = scalerValue[index]; +# endif + + clP[j++] /= scaler; + clP[j++] /= scaler; + clP[j++] /= scaler; + clP[j++] /= scaler; + +# if defined (FAST_LOG) + scP[c] = logValue[index]; /* store node scaler */ + lnScaler[c] += scP[c]; /* add into tree scaler */ +# else + scP[c] = (CLFlt) log (scaler); /* store node scaler */ + lnScaler[c] += scP[c]; /* add into tree scaler */ +# endif + } + else + { + scP[c] = 0.0; /* store node scaler */ + /* no need to add it to the lnScaler */ + i += 4; + j += 4; + } + } + + m->scalersSet[chain][p->index] = YES; + + return NO_ERROR; +} + + +#if !defined (SSE_ENABLED) || 1 +/*---------------------------------------------------------------- +| +| CondLikeScaler_NY98: codon model with omega variation +| +-----------------------------------------------------------------*/ +int CondLikeScaler_NY98 (TreeNode *p, int division, int chain) +{ + int c, k, n, nStates; + CLFlt scaler, **clP, *clPtr, *scP, *lnScaler; + ModelInfo *m; +# if defined (FAST_LOG) + int index; +# endif + + m = &modelSettings[division]; + nStates = m->numModelStates; + + /* find conditional likelihood pointers */ + clPtr = m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP; + for (k=0; knumOmegaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numChars * m->numModelStates; + } + + /* find node scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + + /* find site scalers */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* rescale */ + for (c=0; cnumChars; c++) + { + scaler = 0.0; + for (k=0; knumOmegaCats; k++) + { + for (n=0; n scaler) + scaler = clP[k][n]; + } + } + +# if defined (FAST_LOG) + frexp (scaler, &index); + index = 1-index; + scaler = scalerValue[index]; +# endif + for (k=0; knumOmegaCats; k++) + { + for (n=0; nscalersSet[chain][p->index] = YES; + + return (NO_ERROR); +} +#endif + + +#if defined (SSE_ENABLED) +/*---------------------------------------------------------------- +| +| CondLikeScaler_NY98_SSE: codon model with omega variation +| +-----------------------------------------------------------------*/ +int CondLikeScaler_NY98_SSE (TreeNode *p, int division, int chain) +{ + int c, k, n, nStates; + CLFlt *scP, *lnScaler; + __m128 *clPtr, **clP, m1; + ModelInfo *m; +# if defined (FAST_LOG) + int index; +# endif + + m = &modelSettings[division]; + nStates = m->numModelStates; + + /* find conditional likelihood pointers */ + clPtr = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP_SSE; + for (k=0; knumOmegaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numSSEChars * m->numModelStates; + } + + /* find node scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + //scP_SSE = (__m128 *) scP; + + /* find site scalers */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* rescale */ + for (c=0; cnumSSEChars; c++) + { + //scaler = 0.0; + m1 = _mm_setzero_ps (); + for (k=0; knumOmegaCats; k++) + { + for (n=0; nnumOmegaCats; k++) + { + for (n=0; nscalers[m->nodeScalerIndex[chain][p->index]]; + for (c=0; cnumChars; c++) + { +# if defined (FAST_LOG) + scP[c] = logValue[index]; /* store node scaler */ + lnScaler[c] += scP[c]; /* add into tree scaler */ +# else + scP[c] = (CLFlt) log (scP[c]); /* store node scaler */ + lnScaler[c] += scP[c]; /* add into tree scaler */ +# endif + } + + m->scalersSet[chain][p->index] = YES; + + return (NO_ERROR); +} +#endif + + +/*---------------------------------------------------------------- +| +| CondLikeScaler_Std: variable states model with or without +| rate variation +| +-----------------------------------------------------------------*/ +int CondLikeScaler_Std (TreeNode *p, int division, int chain) +{ + int c, n, k, nStates, numReps; + CLFlt scaler, *clPtr, **clP, *scP, *lnScaler; + ModelInfo *m; +# if defined (FAST_LOG) + int index; +# endif + + assert (p->scalerNode == YES); + + m = &modelSettings[division]; + + numReps=0; + for (c=0; cnumChars; c++) + { + if (m->nStates[c] == 2) + numReps += m->numBetaCats * 2; + else + numReps += m->nStates[c]; + } + + /* find conditional likelihood pointers */ + clPtr = m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += numReps; + } + + /* find node scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + + /* find site scalers */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* rescale */ + for (c=0; cnumChars; c++) + { + scaler = 0.0; + nStates = m->nStates[c]; + if (nStates == 2) + nStates = m->numBetaCats * 2; + + for (k=0; knumGammaCats; k++) + { + for (n=0; n scaler) + scaler = clP[k][n]; + } + } + +# if defined (FAST_LOG) + frexp (scaler, &index); + index = 1-index; + scaler = scalerValue[index]; +# endif + for (k=0; knumGammaCats; k++) + { + for (n=0; nscalersSet[chain][p->index] = YES; + + return NO_ERROR; +} + + +/*------------------------------------------------------------------ +| +| Likelihood_Adgamma: all n-state models with autocorrelated +| discrete gamma rate variation, NOT morph, restriction, +| codon or doublet models; just fill in rateProbs +| +-------------------------------------------------------------------*/ +int Likelihood_Adgamma (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int c, j, k, i, nStates, nStatesDiv2; + MrBFlt *bs, *swr, s01, s10, probOn, probOff, covBF[40]; + MrBFlt like, *rP; + CLFlt *clP; + ModelInfo *m; + + /* NOTE: whichSitePats offsets numSitesOfPat by whichSitePats X numCompressedChars. + This is done so we can use the character reweighting scheme for "heating" chains. This was easy to + accomplish for all of the models except this one, which doesn't use numSitesOfPat when calculating + likelihoods. Either we disallow autocorrelated rates when using MCMC with character reweighting, or + we properly calculate likelihoods when some site patterns have increased or decreased weight. For + now, we do not allow MCMCMC with character reweighting with this HMM; we bail out in the function + FillNumSitesOfPat if we have Adgamma rate variation and reweighting. */ + k = whichSitePats; + + /* find model settings */ + m = &modelSettings[division]; + + /* get the number of states */ + nStates = m->numModelStates; + nStatesDiv2 = nStates / 2; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* find conditional likelihood pointer */ + clP = m->condLikes[m->condLikeIndex[chain][p->index]]; + + /* find pointer to rate probabilities */ + rP = rateProbs[chain] + state[chain] * rateProbRowSize + m->rateProbStart; + + /* loop over characters and calculate rate probs */ + if (m->switchRates != NULL) + { + swr = GetParamVals (m->switchRates, chain, state[chain]); + s01 = swr[0]; + s10 = swr[1]; + probOn = s01 / (s01 + s10); + probOff = 1.0 - probOn; + for (j=0; jnumChars; c++) + { + for (k=0; knumGammaCats; k++) + { + like = 0.0; + for (j=0; jnumModelStates; + if (m->pInvar == NULL) + { + hasPInvar = NO; + } + else + { + hasPInvar = YES; + pInvar = *(GetParamVals (m->pInvar, chain, state[chain])); + clInvar = m->invCondLikes; + } + + /* find conditional likelihood pointers */ + clPtr = m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numChars * m->numModelStates; + } + + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* if covarion model, adjust base frequencies */ + if (m->switchRates != NULL) + { + /* find the stationary frequencies */ + swr = GetParamVals(m->switchRates, chain, state[chain]); + s01 = swr[0]; + s10 = swr[1]; + probOn = s01 / (s01 + s10); + probOff = 1.0 - probOn; + + /* now adjust the base frequencies; on-state stored first in cond likes */ + for (j=0; jnumGammaCats; + else + freq = (1.0 - pInvar) / m->numGammaCats; + + /* find site scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + /* reset lnL */ + *lnL = 0.0; + + /* loop over characters */ + if (hasPInvar == NO) + { + for (c=0; cnumChars; c++) + { + like = 0.0; + for (k=0; knumGammaCats; k++) + for (j=0; jnumChars; c++) + { + likeI = like = 0.0; + for (k=0; knumGammaCats; k++) + for (j=0; j 1E-70) + { + /* forget about like; it is going to be insignificant compared to likeI */ + lnLike = log(likeI); + } + else + { + /* treat likeI as if 0.0, that is, ignore it completely */ + lnLike = log(like) + lnScaler[c]; + } + } + else + lnLike = log (like + (likeI / exp (lnScaler[c]))) + lnScaler[c]; + + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { + (*lnL) += lnLike * nSitesOfPat[c]; + } + } + } + + return NO_ERROR; +} + + +#if defined (SSE_ENABLED) +//# if 0 +//CLFlt DeleteME[1000]; +//int PrintOld_SSE (TreeNode *p, int division, int chain){ +// +// int c, c1, j, k, nStates; +// //MrBFlt *swr, likeI, pInvar=0.0, lnLike; +// CLFlt *temp_vector; +// __m128 *clPtr, **clP; +// ModelInfo *m; +// +// m = &modelSettings[division]; +// nStates = m->numModelStates; +// /* find conditional likelihood pointers */ +// +// temp_vector = DeleteME; +// +// clPtr = (__m128 *) (m->condLikes[m->condLikeIndex[chain][p->index]]); +// clP = m->clP_SSE; +// for (k=0; knumGammaCats; k++) +// { +// clP[k] = clPtr; +// clPtr += m->numSSEChars * m->numModelStates; +// } +// +// for (c=0; cnumChars; c++) +// { +// c1 = c / FLOATS_PER_VEC; +// for (k=0; knumGammaCats; k++) +// { +// for (j=0; jnumModelStates; + if (m->pInvar == NULL) + { + hasPInvar = NO; + } + else + { + hasPInvar = YES; + pInvar = *(GetParamVals (m->pInvar, chain, state[chain])); + clInvar = (__m128 *) (m->invCondLikes); + } + + /* find conditional likelihood pointers */ + clPtr = (__m128 *) (m->condLikes[m->condLikeIndex[chain][p->index]]); + clP = m->clP_SSE; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numSSEChars * m->numModelStates; + } + lnL_SSE = m->lnL_SSE; + lnLI_SSE = m->lnLI_SSE; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* if covarion model, adjust base frequencies */ + if (m->switchRates != NULL) + { + /* find the stationary frequencies */ + swr = GetParamVals(m->switchRates, chain, state[chain]); + s01 = swr[0]; + s10 = swr[1]; + probOn = s01 / (s01 + s10); + probOff = 1.0 - probOn; + + /* now adjust the base frequencies; on-state stored first in cond likes */ + for (j=0; jnumGammaCats; + else + freq = (1.0 - pInvar) / m->numGammaCats; + + mFreq = _mm_set1_ps ((CLFlt)(freq)); + + /* find site scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + /* reset lnL */ + *lnL = 0.0; + + for (c=0; cnumSSEChars; c++) + { + mLike = _mm_setzero_ps (); + for (k=0; knumGammaCats; k++) + { + mCatLike = _mm_setzero_ps (); + for (j=0; jnumChars; c++) + { + like = m->lnL_SSE[c]; + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { + (*lnL) += (lnScaler[c] + log(like)) * nSitesOfPat[c]; + } + } + } + else + { + /* has invariable category */ + for (c=0; cnumSSEChars; c++) + { + mCatLike = _mm_setzero_ps (); + for (j=0; jnumChars; c++) + { + like = m->lnL_SSE[c]; + likeI = m->lnLI_SSE[c]; + if (lnScaler[c] < -200.0) + { + /* we are not going to be able to exponentiate the scaling factor */ + if (likeI > 1E-70) + { + /* forget about like; it is going to be insignificant compared to likeI */ + lnLike = log(likeI); + } + else + { + /* treat likeI as if 0.0, that is, ignore it completely */ + lnLike = log(like) + lnScaler[c]; + } + } + else + lnLike = log (like + (likeI / exp (lnScaler[c]))) + lnScaler[c]; + + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { + (*lnL) += lnLike * nSitesOfPat[c]; + } + } + } + + return NO_ERROR; + +} +#endif + + +/*------------------------------------------------------------------ +| +| Likelihood_Gen_GibbsGamma: general n-state models using +| Gibbs resampling of discrete gamma rate categories +| +-------------------------------------------------------------------*/ +int Likelihood_Gen_GibbsGamma (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int c, j, nStates, nGammaCats, *rateCat; + MrBFlt s01, s10, probOn, probOff, *swr; + MrBFlt covBF[40], *bs, like; + CLFlt *clP, *lnScaler, *nSitesOfPat, *clInvar=NULL; + ModelInfo *m; + + /* find model settings, nStates and invar cond likes */ + m = &modelSettings[division]; + nStates = m->numModelStates; + clInvar = m->invCondLikes; + + /* find conditional likelihood pointer */ + clP = m->condLikes[m->condLikeIndex[chain][p->index]]; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* if covarion model, adjust base frequencies */ + if (m->switchRates != NULL) + { + /* find the stationary frequencies */ + swr = GetParamVals(m->switchRates, chain, state[chain]); + s01 = swr[0]; + s10 = swr[1]; + probOn = s01 / (s01 + s10); + probOff = 1.0 - probOn; + + /* now adjust the base frequencies; on-state stored first in cond likes */ + for (j=0; jscalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + /* find rate category index and number of gamma categories */ + rateCat = m->tiIndex + chain * m->numChars; + nGammaCats = m->numGammaCats; + + /* reset lnL */ + *lnL = 0.0; + + /* loop over characters */ + if (m->pInvar == NULL) + { + for (c=0; cnumChars; c++) + { + like = 0.0; + for (j=0; jnumChars; c++) + { + like = 0.0; + if (rateCat[c] < nGammaCats) + { + for (j=0; jpInvar == NULL) + { + hasPInvar = NO; + } + else + { + hasPInvar = YES; + pInvar = *(GetParamVals (m->pInvar, chain, state[chain])); + clInvar = m->invCondLikes; + } + + /* find conditional likelihood pointers */ + clPtr = m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numChars * m->numModelStates; + } + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* find category frequencies */ + if (hasPInvar == NO) + freq = 1.0 / m->numGammaCats; + else + freq = (1.0 - pInvar) / m->numGammaCats; + + /* find tree scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + /* reset lnL */ + *lnL = 0.0; + + /* loop over characters */ + if (hasPInvar == NO) + { + for (c=0; cnumChars; c++) + { + like = 0.0; + for (k=0; knumGammaCats; k++) + { + like += (clP[k][A] * bs[A] + clP[k][C] * bs[C] + clP[k][G] * bs[G] + clP[k][T] * bs[T]); + clP[k] += 4; + } + like *= freq; + + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { +# if defined (FAST_LOG) + f = frexp (like, &index); + index = 1-index; + (*lnL) += (lnScaler[c] + logValue[index]) * nSitesOfPat[c]; + for (k=0; k<(int)nSitesOfPat[c]; k++) + likeAdjust *= f; +# else + (*lnL) += (lnScaler[c] + log(like)) * nSitesOfPat[c]; +# endif + } + } + } + else + { + /* has invariable category */ + for (c=0; cnumChars; c++) + { + like = 0.0; + for (k=0; knumGammaCats; k++) + { + like += (clP[k][A] * bs[A] + clP[k][C] * bs[C] + clP[k][G] * bs[G] + clP[k][T] * bs[T]); + clP[k] += 4; + } + like *= freq; + likeI = (clInvar[A] * bs[A] + clInvar[C] * bs[C] + clInvar[G] * bs[G] + clInvar[T] * bs[T]) * pInvar; + if (lnScaler[c] < -200) + { + /* we are not going to be able to exponentiate the scaling factor */ + if (likeI > 1E-70) + { + /* forget about like; it is going to be insignificant compared to likeI */ + like = likeI; + } + else + { + /* treat likeI as if 0.0, that is, ignore it completely */ + } + } + else + like = like + (likeI / exp (lnScaler[c])); + + clInvar += 4; + + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { +# if defined (FAST_LOG) + f = frexp (like, &index); + index = 1-index; + (*lnL) += (lnScaler[c] + logValue[index]) * nSitesOfPat[c]; + for (k=0; k<(int)nSitesOfPat[c]; k++) + likeAdjust *= f; +# else + (*lnL) += (lnScaler[c] + log(like)) * nSitesOfPat[c]; +# endif + } + } + } + +# if defined (FAST_LOG) + (*lnL) += log (likeAdjust); +# endif + + return NO_ERROR; +} + + +/*------------------------------------------------------------------ +| +| Likelihood_NUC4_GibbsGamma: 4by4 nucleotide models with rate +| variation using Gibbs sampling from gamma rate categories +| +-------------------------------------------------------------------*/ +int Likelihood_NUC4_GibbsGamma (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int c, i, r, nGammaCats, *rateCat; + MrBFlt *bs, like; + CLFlt *clP, *lnScaler, *nSitesOfPat, *clInvar; + ModelInfo *m; + +# if defined (FAST_LOG) + int k, index; + MrBFlt likeAdjust = 1.0, f; +# endif + + /* find model settings and invar cond likes */ + m = &modelSettings[division]; + clInvar = m->invCondLikes; + + /* find conditional likelihood pointer */ + clP = m->condLikes[m->condLikeIndex[chain][p->index]]; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* find tree scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + /* find rate category index and number of gamma categories */ + rateCat = m->tiIndex + chain * m->numChars; + nGammaCats = m->numGammaCats; + + /* reset lnL */ + *lnL = 0.0; + + /* loop over characters */ + if (m->pInvar == NULL) + { + for (c=i=0; cnumChars; c++) + { + like = (clP[A] * bs[A] + clP[C] * bs[C] + clP[G] * bs[G] + clP[T] * bs[T]); + clP += 4; + + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { +# if defined (FAST_LOG) + f = frexp (like, &index); + index = 1-index; + (*lnL) += (lnScaler[c] + logValue[index]) * nSitesOfPat[c]; + for (k=0; k<(int)nSitesOfPat[c]; k++) + likeAdjust *= f; +# else + (*lnL) += (lnScaler[c] + log(like)) * nSitesOfPat[c]; +# endif + } + } + } + else + { + /* has invariable category */ + for (c=i=0; cnumChars; c++) + { + r = rateCat[c]; + if (r < nGammaCats) + like = (clP[A] * bs[A] + clP[C] * bs[C] + clP[G] * bs[G] + clP[T] * bs[T]); + else + like = (clInvar[A] * bs[A] + clInvar[C] * bs[C] + clInvar[G] * bs[G] + clInvar[T] * bs[T]); + clInvar += 4; + clP += 4; + + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { + (*lnL) += (log (like) + lnScaler[c]) * nSitesOfPat[c]; + } + } + } + +# if defined (FAST_LOG) + (*lnL) += log (likeAdjust); +# endif + + return NO_ERROR; +} + + +//#if defined (SSE_ENABLED) +///*------------------------------------------------------------------ +// | +// | Likelihood_NUC4_GibbsGamma: 4by4 nucleotide models with rate +// | variation using Gibbs sampling from gamma rate categories +// | +// -------------------------------------------------------------------*/ +//int Likelihood_NUC4_GibbsGamma_SSE (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +//{ +// int c, i, r, nGammaCats, *rateCat; +// MrBFlt *bs, like; +// CLFlt *lnScaler, *nSitesOfPat, *lnL_SSE, *lnLI_SSE; +// __m128 *clP, *clInvar=NULL; +// __m128 m1, mA, mC, mG, mT, mFreq, mPInvar, mLike; +// ModelInfo *m; +// +//#if defined (FAST_LOG) +// int k, index; +// MrBFlt likeAdjust = 1.0, f; +//#endif +// +// /* find model settings and invar cond likes */ +// m = &modelSettings[division]; +// clInvar = (__m128 *)m->invCondLikes; +// /* find conditional likelihood pointer */ +// clP = (__m128 *)m->condLikes[m->condLikeIndex[chain][p->index]]; +// +// lnL_SSE = m->lnL_SSE; +// lnLI_SSE = m->lnLI_SSE; +// +// /* find base frequencies */ +// bs = GetParamSubVals (m->stateFreq, chain, state[chain]); +// +// /* find tree scaler */ +// lnScaler = m->scalers[m->siteScalerIndex[chain]]; +// +// /* find nSitesOfPat */ +// nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; +// +// /* find rate category index and number of gamma categories */ +// rateCat = m->tiIndex + chain * m->numChars; +// nGammaCats = m->numGammaCats; +// +// /* reset lnL */ +// *lnL = 0.0; +// +// /* calculate variable likelihood */ +// for (c=0; cnumSSEChars; c++) +// { +// mLike = _mm_mul_ps (clP[A], mA); +// m1 = _mm_mul_ps (clP[C], mC); +// mLike = _mm_add_ps (mLike, m1); +// m1 = _mm_mul_ps (clP[G], mG); +// mLike = _mm_add_ps (mLike, m1); +// m1 = _mm_mul_ps (clP[T], mT); +// mLike = _mm_add_ps (mLike, m1); +// +// clP += 4; +// _mm_store_ps (lnL_SSE, mLike); +// lnL_SSE += FLOATS_PER_VEC; +// } +// +// /* calculate invariable likelihood */ +// if (hasPInvar == YES) +// { +// for (c=0; cnumSSEChars; c++) +// { +// mLike = _mm_mul_ps (clInvar[A], mA); +// m1 = _mm_mul_ps (clInvar[C], mC); +// mLike = _mm_add_ps (mLike, m1); +// m1 = _mm_mul_ps (clInvar[G], mG); +// mLike = _mm_add_ps (mLike, m1); +// m1 = _mm_mul_ps (clInvar[T], mT); +// mLike = _mm_add_ps (mLike, m1); +// mLike = _mm_mul_ps (mLike, mPInvar); +// +// _mm_store_ps (lnLI_SSE, mLike); +// clInvar += 4; +// lnLI_SSE += FLOATS_PER_VEC; +// } +// } +// +// +// /* loop over characters */ +// if (m->pInvar == NULL) +// { +// for (c=i=0; cnumChars; c++) +// { +// like = m->lnL_SSE[c]; +// /* check against LIKE_EPSILON (values close to zero are problematic) */ +// if (like < LIKE_EPSILON) +// { +// MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30lf\n", spacer, division, c, like); +// (*lnL) = MRBFLT_NEG_MAX; +// return ERROR; +// } +// else +// { +//#if defined (FAST_LOG) +// f = frexp (like, &index); +// index = 1-index; +// (*lnL) += (lnScaler[c] + logValue[index]) * nSitesOfPat[c]; +// for (k=0; k<(int)nSitesOfPat[c]; k++) +// likeAdjust *= f; +//#else +// (*lnL) += (lnScaler[c] + log(like)) * nSitesOfPat[c]; +//#endif +// } +// } +// } +// else +// { +// /* has invariable category */ +// for (c=i=0; cnumChars; c++) +// { +// r = rateCat[c]; +// if (r < nGammaCats) +// like = m->lnL_SSE[c]; +// else +// like = m->lnLI_SSE[c]; +// +// /* check against LIKE_EPSILON (values close to zero are problematic) */ +// if (like < LIKE_EPSILON) +// { +// MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30lf\n", spacer, division, c, like); +// (*lnL) = MRBFLT_NEG_MAX; +// return ERROR; +// } +// else +// { +// (*lnL) += (log (like) + lnScaler[c]) * nSitesOfPat[c]; +// } +// } +// } +// +//#if defined (FAST_LOG) +// (*lnL) += log (likeAdjust); +//#endif +// +// return NO_ERROR; +//} +//#endif + + +#if defined (SSE_ENABLED) +/*------------------------------------------------------------------ +| +| Likelihood_NUC4_SSE: 4by4 nucleotide models with or without rate +| variation +| +-------------------------------------------------------------------*/ +int Likelihood_NUC4_SSE (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int c, k, hasPInvar; + MrBFlt freq, *bs, pInvar=0.0, like, likeI; + CLFlt *lnScaler, *nSitesOfPat, *lnL_SSE, *lnLI_SSE; + __m128 *clPtr, **clP, *clInvar=NULL; + __m128 m1, mA, mC, mG, mT, mFreq, mPInvar=_mm_set1_ps(0.0f), mLike; + ModelInfo *m; + +# if defined (FAST_LOG) + int index; + MrBFlt likeAdjust = 1.0, f; +# endif + + /* find model settings and pInvar, invar cond likes */ + m = &modelSettings[division]; + if (m->pInvar == NULL) + { + hasPInvar = NO; + } + else + { + hasPInvar = YES; + pInvar = *(GetParamVals (m->pInvar, chain, state[chain])); + mPInvar = _mm_set1_ps ((CLFlt)(pInvar)); + clInvar = (__m128 *) (m->invCondLikes); + } + + /* find conditional likelihood pointers */ + clPtr = (__m128 *) (m->condLikes[m->condLikeIndex[chain][p->index]]); + clP = m->clP_SSE; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numSSEChars * m->numModelStates; + } + lnL_SSE = m->lnL_SSE; + lnLI_SSE = m->lnLI_SSE; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + mA = _mm_set1_ps ((CLFlt)(bs[A])); + mC = _mm_set1_ps ((CLFlt)(bs[C])); + mG = _mm_set1_ps ((CLFlt)(bs[G])); + mT = _mm_set1_ps ((CLFlt)(bs[T])); + + /* find category frequencies */ + if (hasPInvar == NO) + freq = 1.0 / m->numGammaCats; + else + freq = (1.0 - pInvar) / m->numGammaCats; + mFreq = _mm_set1_ps ((CLFlt)(freq)); + + /* find tree scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + /* reset lnL */ + *lnL = 0.0; + + /* calculate variable likelihood */ + for (c=0; cnumSSEChars; c++) + { + mLike = _mm_setzero_ps (); + for (k=0; knumGammaCats; k++) + { + m1 = _mm_mul_ps (clP[k][A], mA); + mLike = _mm_add_ps (mLike, m1); + m1 = _mm_mul_ps (clP[k][C], mC); + mLike = _mm_add_ps (mLike, m1); + m1 = _mm_mul_ps (clP[k][G], mG); + mLike = _mm_add_ps (mLike, m1); + m1 = _mm_mul_ps (clP[k][T], mT); + mLike = _mm_add_ps (mLike, m1); + clP[k] += 4; + } + mLike = _mm_mul_ps (mLike, mFreq); + _mm_store_ps (lnL_SSE, mLike); + lnL_SSE += FLOATS_PER_VEC; + } + + /* calculate invariable likelihood */ + if (hasPInvar == YES) + { + for (c=0; cnumSSEChars; c++) + { + mLike = _mm_mul_ps (clInvar[A], mA); + m1 = _mm_mul_ps (clInvar[C], mC); + mLike = _mm_add_ps (mLike, m1); + m1 = _mm_mul_ps (clInvar[G], mG); + mLike = _mm_add_ps (mLike, m1); + m1 = _mm_mul_ps (clInvar[T], mT); + mLike = _mm_add_ps (mLike, m1); + mLike = _mm_mul_ps (mLike, mPInvar); + + _mm_store_ps (lnLI_SSE, mLike); + clInvar += 4; + lnLI_SSE += FLOATS_PER_VEC; + } + } + + /* accumulate results */ + if (hasPInvar == NO) + { + for (c=0; cnumChars; c++) + { + like = m->lnL_SSE[c]; + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { +# if defined (FAST_LOG) + f = frexp (like, &index); + index = 1-index; + (*lnL) += (lnScaler[c] + logValue[index]) * nSitesOfPat[c]; + for (k=0; k<(int)nSitesOfPat[c]; k++) + likeAdjust *= f; +# else + (*lnL) += (lnScaler[c] + log(like)) * nSitesOfPat[c]; +# endif + } + } + } + else + { + /* has invariable category */ + for (c=0; cnumChars; c++) + { + like = m->lnL_SSE[c]; + likeI = m->lnLI_SSE[c]; + if (lnScaler[c] < -200) + { + /* we are not going to be able to exponentiate the scaling factor */ + if (likeI > 1E-70) + { + /* forget about like; it is going to be insignificant compared to likeI */ + like = likeI; + } + else + { + /* treat likeI as if 0.0, that is, ignore it completely */ + } + } + else + like = like + (likeI / exp (lnScaler[c])); + + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { +# if defined (FAST_LOG) + f = frexp (like, &index); + index = 1-index; + (*lnL) += (lnScaler[c] + logValue[index]) * nSitesOfPat[c]; + for (k=0; k<(int)nSitesOfPat[c]; k++) + likeAdjust *= f; +# else + (*lnL) += (lnScaler[c] + log(like)) * nSitesOfPat[c]; +# endif + } + } + } + +# if defined (FAST_LOG) + (*lnL) += log (likeAdjust); +# endif + + return NO_ERROR; +} +#endif + + +/*------------------------------------------------------------------ +| +| Likelihood_NY98: Codon model with three selection categories, +| after Nielsen and Yang (1998). +| +-------------------------------------------------------------------*/ +int Likelihood_NY98 (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int c, j, k, nStates; + MrBFlt catLike, like, *bs, *omegaCatFreq; + CLFlt **clP,*clPtr, *lnScaler, *nSitesOfPat; + ModelInfo *m; + + m = &modelSettings[division]; + + /* number of states */ + nStates = m->numModelStates; + + /* find conditional likelihood pointers */ + clPtr = m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP; + for (k=0; knumOmegaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numChars * m->numModelStates; + } + + /* find codon frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* find category frequencies */ + omegaCatFreq = GetParamSubVals (m->omega, chain, state[chain]); + + /* find site scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + *lnL = 0.0; /* reset lnL */ + + for (c=m->numDummyChars; cnumChars; c++) + { + like = 0.0; + for (k=0; knumOmegaCats; k++) + { + catLike = 0.0; + for (j=0; jnumModelStates; + + /* find conditional likelihood pointers */ + clPtr = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP_SSE; + for (k=0; knumOmegaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numSSEChars * nStates; + } + + /* find codon frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* find category frequencies */ + omegaCatFreq = GetParamSubVals (m->omega, chain, state[chain]); + + /* find site scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + *lnL = 0.0; /* reset lnL */ + + lnL_SSE = m->lnL_SSE; + for (c=0; cnumSSEChars; c++) + { + mLike = _mm_setzero_ps (); + for (k=0; knumOmegaCats; k++) + { + mCatLike = _mm_setzero_ps (); + for (j=0; jnumDummyChars; cnumChars; c++) + { + like = m->lnL_SSE[c]; + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { + (*lnL) += (lnScaler[c] + log(like)) * nSitesOfPat[c]; + } + } + + return NO_ERROR; +} +#endif + + +/*------------------------------------------------------------------ +| +| Likelihood_Res: restriction site model with or without rate +| variation +| +-------------------------------------------------------------------*/ +int Likelihood_Res (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int c, k; + MrBFlt *bs, freq, like, pUnobserved, pObserved; + CLFlt *clPtr, **clP, *lnScaler, *nSitesOfPat; + ModelInfo *m; + + + m = &modelSettings[division]; + + /* find conditional likelihood pointer */ + clPtr = m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numChars * m->numModelStates; + } + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* find category frequencies */ + freq = 1.0 / m->numGammaCats; + + /* find site scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + *lnL = 0.0; /* reset lnL */ + + pUnobserved = 0.0; + for (c=0; cnumDummyChars; c++) + { + like = 0.0; + for (k=0; knumGammaCats; k++) + { + like += (clP[k][0]*bs[0] + clP[k][1]*bs[1]) * freq; + clP[k] += 2; + } + pUnobserved += like * exp(lnScaler[c]); + } + + pObserved = 1.0 - pUnobserved; + if (pObserved < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: p(Observed) < LIKE_EPSILON - for division %d p(Observed) = %1.30le\n", spacer, division+1, pObserved); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + + for (c=m->numDummyChars; cnumChars; c++) + { + like = 0.0; + for (k=0; knumGammaCats; k++) + { + like += (clP[k][0]*bs[0] + clP[k][1]*bs[1]) * freq; + clP[k] += 2; + } + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { + (*lnL) += (lnScaler[c] + log(like)) * nSitesOfPat[c]; + } + } + + /* correct for absent characters */ + (*lnL) -= log(pObserved) * (m->numUncompressedChars); + + return NO_ERROR; +} + + +#if defined (SSE_ENABLED) +/*------------------------------------------------------------------ +| +| Likelihood_Res_SSE: 4by4 nucleotide models with or without rate +| variation +| +-------------------------------------------------------------------*/ +int Likelihood_Res_SSE (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int c, k; + MrBFlt freq, *bs, like, pUnobserved, pObserved; + CLFlt *lnScaler, *nSitesOfPat, *lnL_SSE; + __m128 *clPtr, **clP; + __m128 m1, mA, mB, mFreq, mLike; + ModelInfo *m; + + /* find model settings and pInvar, invar cond likes */ + m = &modelSettings[division]; + + /* find conditional likelihood pointers */ + clPtr = (__m128 *) (m->condLikes[m->condLikeIndex[chain][p->index]]); + clP = m->clP_SSE; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numSSEChars * m->numModelStates; + } + lnL_SSE = m->lnL_SSE; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + mA = _mm_set1_ps ((CLFlt)(bs[0])); + mB = _mm_set1_ps ((CLFlt)(bs[1])); + + freq = 1.0 / m->numGammaCats; + mFreq = _mm_set1_ps ((CLFlt)(freq)); + + /* find tree scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + /* reset lnL */ + *lnL = 0.0; + + /* calculate variable likelihood */ + for (c=0; cnumSSEChars; c++) + { + mLike = _mm_setzero_ps (); + for (k=0; knumGammaCats; k++) + { + m1 = _mm_mul_ps (clP[k][0], mA); + mLike = _mm_add_ps (mLike, m1); + m1 = _mm_mul_ps (clP[k][1], mB); + mLike = _mm_add_ps (mLike, m1); + clP[k] += 2; + } + mLike = _mm_mul_ps (mLike, mFreq); + _mm_store_ps (lnL_SSE, mLike); + lnL_SSE += FLOATS_PER_VEC; + } + + pUnobserved = 0.0; + for (c=0; cnumDummyChars; c++) + { + like = m->lnL_SSE[c]; + pUnobserved += like * exp(lnScaler[c]); + } + + pObserved = 1.0 - pUnobserved; + if (pObserved < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: p(Observed) < LIKE_EPSILON - for division %d p(Observed) = %1.30le\n", spacer, division+1, pObserved); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + + for (c=m->numDummyChars; cnumChars; c++) + { + like = m->lnL_SSE[c]; + /* check against LIKE_EPSILON (values close to zero are problematic) */ + if (like < LIKE_EPSILON) + { +# ifdef DEBUG_LIKELIHOOD + MrBayesPrint ("%s WARNING: In LIKE_EPSILON - for division %d char %d has like = %1.30le\n", spacer, division+1, c+1, like); +# endif + (*lnL) = MRBFLT_NEG_MAX; + abortMove = YES; + return ERROR; + } + else + { + (*lnL) += (lnScaler[c] + log(like)) * nSitesOfPat[c]; + } + } + + /* correct for absent characters */ + (*lnL) -= log(pObserved) * (m->numUncompressedChars); + + return NO_ERROR; +} +#endif + + +/*------------------------------------------------------------------ +| +| Likelihood_Std: variable states model with or without rate +| variation +| +-------------------------------------------------------------------*/ +int Likelihood_Std (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int b, c, j, k, nBetaCats, nGammaCats, nStates, numReps; + MrBFlt catLike, catFreq, gammaFreq, like, *bs, *bsBase, + pUnobserved, pObserved; + CLFlt *clPtr, **clP, *lnScaler, *nSitesOfPat; + ModelInfo *m; + + m = &modelSettings[division]; + + numReps=0; + for (c=0; cnumChars; c++) + { + if (m->nStates[c] == 2) + numReps += m->numBetaCats * 2; + else + numReps += m->nStates[c]; + } + /* find conditional likelihood pointers */ + clPtr = m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clPtr; + clPtr += numReps; + } + + /* find base frequencies */ + bsBase = GetParamStdStateFreqs (m->stateFreq, chain, state[chain]); + + /* find gamma category number and frequencies */ + nGammaCats = m->numGammaCats; + gammaFreq = 1.0 / nGammaCats; + + /* find site scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + *lnL = 0.0; /* reset lnL */ + + if (m->numBetaCats == 1) + { + pUnobserved = 0.0; + catFreq = gammaFreq; + for (c=j=0; cnumDummyChars; c++) + { + like = 0.0; + nStates = m->nStates[c]; + bs = bsBase + m->bsIndex[c]; + for (k=0; knumDummyChars; cnumChars; c++) + { + like = 0.0; + nStates = m->nStates[c]; + bs = bsBase + m->bsIndex[c]; + + for (k=0; knumDummyChars; c++) + { + like = 0.0; + nStates = m->nStates[c]; + bs = bsBase + m->bsIndex[c]; + if (nStates == 2) + { + nBetaCats = m->numBetaCats; + catFreq = gammaFreq / nBetaCats; + } + else + { + nBetaCats = 1; + catFreq = gammaFreq; + } + for (b=0; bnumDummyChars; cnumChars; c++) + { + like = 0.0; + nStates = m->nStates[c]; + bs = bsBase + m->bsIndex[c]; + if (nStates == 2) + { + nBetaCats = m->numBetaCats; + catFreq = gammaFreq / nBetaCats; + } + else + { + nBetaCats = 1; + catFreq = gammaFreq; + } + for (b=0; bnumUncompressedChars); + + return NO_ERROR; +} + + +/*------------------------------------------------------------------ +| +| Likelihood_Pars: likelihood under the Tuffley and Steel (1997) +| model for characters with constant number of states. The idea +| is described in: +| +| Tuffley, C., and M. Steel. 1997. Links between maximum likelihood +| and maximum parsimony under a simple model of site substitution. +| Bull. Math. Bio. 59:581-607. +| +| The likelihood under the Tuffley and Steel (1997) model is: +| +| L = k^[-(T + n)] +| +| where L is the likelihood +| k is the number of character states +| T is the parsimony tree length +| n is the number of characters +| +| The parsimony calculator does not use character packing; this is +| to enable reweighting of characters +| +| Note that this is an empirical Bayes approach in that it uses the +| maximum likelihood branch length. +| +-------------------------------------------------------------------*/ +int Likelihood_Pars (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int c, i, nStates; + BitsLong done, *pL, *pR, *pP, *pA, *oldpP, x; + CLFlt nParsChars, treeLength; + CLFlt length, *nSitesOfPat, *newNodeLength, oldNodeLength; + Tree *t; + ModelInfo *m; + + /* Find model settings */ + m = &modelSettings[division]; + + /* Get tree */ + t = GetTree(m->brlens,chain,state[chain]); + + /* Get parsimony tree length */ + treeLength = (CLFlt) m->parsTreeLength[2 * chain + state[chain]]; + + /* Get number of states */ + nStates = m->numStates; + + /* Get number of sites of pat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + /* Mark the nodes that can be stop nodes */ + /* (there must not be any touched side nodes below them) */ + p = t->root; + p->marked = YES; + for (i=t->nIntNodes-1; i>=0; i--) + { + p = t->intDownPass[i]; + p->marked = NO; + if (p->upDateCl == YES && p->anc->marked == YES) + { + if (p->left->upDateCl == NO || p->right->upDateCl == NO) + p->marked = YES; + } + } + + /* Now make downpass node by node */ + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + + /* continue if no work needs to be done */ + if (p->upDateCl == NO) + continue; + + /* flip space */ + FlipCondLikeSpace(m, chain, p->index); + + /* find parsimony sets for the node and its environment */ + pL = m->parsSets[m->condLikeIndex[chain][p->left->index ]]; + pR = m->parsSets[m->condLikeIndex[chain][p->right->index]]; + oldpP = m->parsSets[m->condLikeScratchIndex[p->index ]]; + pP = m->parsSets[m->condLikeIndex[chain][p->index ]]; + + /* find old and new node lengths */ + oldNodeLength = m->parsNodeLens[m->condLikeScratchIndex[p->index]]; + newNodeLength = &m->parsNodeLens[m->condLikeIndex[chain][p->index]]; + + if (t->isRooted == NO && p->anc->anc == NULL) + { + pA = m->parsSets[m->condLikeIndex[chain][p->anc->index]]; + length = 0.0; + for (c=0; cnumChars; c++) + { + x = pL[c] & pR[c]; + if (x == 0) + { + x = pL[c] | pR[c]; + length += nSitesOfPat[c]; + } + if ((x & pA[c]) == 0) + length += nSitesOfPat[c]; + pP[c] = x; + } + treeLength += (length - oldNodeLength); + newNodeLength[0] = length; + } + else + { + length = 0.0; + done = 0; + for (c=0; cnumChars; c++) + { + x = pL[c] & pR[c]; + if (x == 0) + { + x = pL[c] | pR[c]; + length += nSitesOfPat[c]; + } + pP[c] = x; + done |= (x^oldpP[c]); + } + treeLength += (length - oldNodeLength); + newNodeLength[0] = length; + if (p->marked == YES && done == 0) + break; + } + } + + /* Count number of characters in the partition. It is calculated + on the fly because this number is going to differ for + different chains if character reweighting is used. */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + nParsChars = 0.0; + for (c=0; cnumChars; c++) + nParsChars += nSitesOfPat[c]; + + /* Calculate likelihood from parsimony tree length */ + *lnL = - ((treeLength + nParsChars) * log (nStates)); + + /* Store current parsimony tree length */ + m->parsTreeLength[2 * chain + state[chain]] = treeLength; + + return (NO_ERROR); +} + + +#if 0 +int Likelihood_ParsCodon (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int x, y; + TreeNode *q; + + /* no warnings */ + q = p; + x = division; + y = chain; + *lnL = 0.0; + x = whichSitePats; + + MrBayesPrint ("%s Parsimony calculator for codons not yet implemented\n", spacer); + + return ERROR; +} +# endif + + +/*------------------------------------------------------------------ +| +| Likelihood_Pars: likelihood under the Tuffley and Steel (1997) +| model for characters with constant number of states. The idea +| is described in: +| +| Tuffley, C., and M. Steel. 1997. Links between maximum likelihood +| and maximum parsimony under a simple model of site substitution. +| Bull. Math. Bio. 59:581-607. +| +| The likelihood under the Tuffley and Steel (1997) model is: +| +| L = k^[-(T + n)] +| +| where L is the likelihood +| k is the number of character states +| T is the parsimony tree length +| n is the number of characters +| +| The parsimony calculator does not use character packing; this is +| to enable reweighting of characters +| +| Note that this is an empirical Bayes approach in that it uses the +| maximum likelihood branch length. +| +| This variant of the calculator assumes that the number of states +| is variable. It does not take state order into account. +| +-------------------------------------------------------------------*/ +int Likelihood_ParsStd (TreeNode *p, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int c, i, *nStates; + BitsLong *pL, *pR, *pP, *pA, x; + CLFlt *treeLength; + CLFlt *nSitesOfPat; + Tree *t; + ModelInfo *m; + + /* Find model settings */ + m = &modelSettings[division]; + + /* Get tree */ + t = GetTree(m->brlens,chain,state[chain]); + + /* Allocate space for parsimony tree length */ + treeLength = (CLFlt *) SafeCalloc (m->numChars, sizeof (CLFlt)); + + /* Get number of states */ + nStates = m->nStates; + + /* Get number of sites of pat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + /* Make downpass node by node; do not skip any nodes */ + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + + /* flip space */ + FlipCondLikeSpace(m, chain, p->index); + + /* find parsimony sets for the node and its environment */ + pL = m->parsSets[m->condLikeIndex[chain][p->left->index ]]; + pR = m->parsSets[m->condLikeIndex[chain][p->right->index]]; + pP = m->parsSets[m->condLikeIndex[chain][p->index ]]; + + if (t->isRooted == NO && p->anc->anc == NULL) + { + pA = m->parsSets[m->condLikeIndex[chain][p->anc->index]]; + for (c=0; cnumChars; c++) + { + x = pL[c] & pR[c]; + if (x == 0) + { + x = pL[c] | pR[c]; + treeLength[c] += nSitesOfPat[c]; + } + if ((x & pA[c]) == 0) + treeLength[c] += nSitesOfPat[c]; + pP[c] = x; + } + } + else + { + for (c=0; cnumChars; c++) + { + x = pL[c] & pR[c]; + if (x == 0) + { + x = pL[c] | pR[c]; + treeLength[c] += nSitesOfPat[c]; + } + pP[c] = x; + } + } + } + + /* Calculate the likelihood one character at a time */ + *lnL = 0.0; + for (c=0; cnumChars; c++) + { + *lnL -= ((treeLength[c] + nSitesOfPat[c]) * log (nStates[c])); + } + + /* Free space for parsimony character states */ + free (treeLength); + + return (NO_ERROR); +} + + +/*----------------------------------------------------------------- +| +| LaunchLogLikeForDivision: calculate the log likelihood of the +| new state of the chain for a single division +| +-----------------------------------------------------------------*/ +void LaunchLogLikeForDivision(int chain, int d, MrBFlt* lnL) +{ + int i; + TreeNode *p; + ModelInfo *m; + Tree *tree; +# if defined (TIMING_ANALIZ) + clock_t CPUTimeStart; +# endif + + m = &modelSettings[d]; + tree = GetTree(m->brlens, chain, state[chain]); + + if (m->upDateCijk == YES) + { + if (UpDateCijk(d, chain)== ERROR) + { + (*lnL) = MRBFLT_NEG_MAX; /* effectively abort the move */ + return; + } + m->upDateAll = YES; + } + +# if defined (BEAGLE_ENABLED) + if (m->useBeagle == YES) + { + LaunchBEAGLELogLikeForDivision(chain, d, m, tree, lnL); + return; + } +# endif + + /* Flip and copy or reset site scalers */ + FlipSiteScalerSpace(m, chain); + if (m->upDateAll == YES) + ResetSiteScalers(m, chain); + else + CopySiteScalers(m, chain); + + if (m->parsModelId == NO) + { + for (i=0; inIntNodes; i++) + { + p = tree->intDownPass[i]; + + if (p->left->upDateTi == YES) + { + /* shift state of ti probs for node */ + FlipTiProbsSpace (m, chain, p->left->index); + m->TiProbs (p->left, d, chain); + } + + if (p->right->upDateTi == YES) + { + /* shift state of ti probs for node */ + FlipTiProbsSpace (m, chain, p->right->index); + m->TiProbs (p->right, d, chain); + } + + if (tree->isRooted == NO) + { + if (p->anc->anc == NULL /* && p->upDateTi == YES */) + { + /* shift state of ti probs for node */ + FlipTiProbsSpace (m, chain, p->index); + m->TiProbs (p, d, chain); + } + } + + if (p->upDateCl == YES) + { + if (tree->isRooted == NO) + { + if (p->anc->anc == NULL) + { + TIME(m->CondLikeRoot (p, d, chain),CPUCondLikeRoot); + } + else + { + TIME(m->CondLikeDown (p, d, chain),CPUCondLikeDown); + } + } + else + { + TIME(m->CondLikeDown (p, d, chain),CPUCondLikeDown); + } + + if (m->scalersSet[chain][p->index] == YES && m->upDateAll == NO) + { +# if defined (SSE_ENABLED) + if (m->useSSE == YES) + { + TIME(RemoveNodeScalers_SSE (p, d, chain),CPUScalersRemove); + } + else + { + TIME(RemoveNodeScalers (p, d, chain),CPUScalersRemove); + } +# else + TIME(RemoveNodeScalers (p, d, chain),CPUScalersRemove); +# endif + } + FlipNodeScalerSpace (m, chain, p->index); + m->scalersSet[chain][p->index] = NO; + + if (p->scalerNode == YES) + { + TIME(m->CondLikeScaler (p, d, chain),CPUScalers); + } + } + } + } + TIME(m->Likelihood (tree->root->left, d, chain, lnL, (chainId[chain] % chainParams.numChains)),CPULilklihood); + return; +} + + +/*---------------------------------------------------------------- +| +| RemoveNodeScalers: Remove node scalers +| +-----------------------------------------------------------------*/ +int RemoveNodeScalers (TreeNode *p, int division, int chain) +{ + int c; + CLFlt *scP, *lnScaler; + ModelInfo *m; + + m = &modelSettings[division]; + assert (m->scalersSet[chain][p->index] == YES); + + /* find scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + + /* find site scalers */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* remove scalers */ + for (c=0; cnumChars; c++) + lnScaler[c] -= scP[c]; + + return NO_ERROR; +} + + +#if defined (SSE_ENABLED) +/*---------------------------------------------------------------- +| +| RemoveNodeScalers_SSE: Remove node scalers, SSE code +| +-----------------------------------------------------------------*/ +int RemoveNodeScalers_SSE (TreeNode *p, int division, int chain) +{ + int c; + __m128 *scP_SSE, *lnScaler_SSE; + ModelInfo *m; + + m = &modelSettings[division]; + assert (m->scalersSet[chain][p->index] == YES); + + /* find scalers */ + scP_SSE = (__m128*)(m->scalers[m->nodeScalerIndex[chain][p->index]]); + + /* find site scalers */ + lnScaler_SSE = (__m128*)(m->scalers[m->siteScalerIndex[chain]]); + + /* remove scalers */ + for (c=0; cnumSSEChars; c++) + { + lnScaler_SSE[c] = _mm_sub_ps(lnScaler_SSE[c], scP_SSE[c]); + } + + return NO_ERROR; + +} +#endif + + +int SetBinaryQMatrix (MrBFlt **a, int whichChain, int division) +{ + MrBFlt scaler, *bs; + ModelInfo *m; + + /* set up pointers to the appropriate model information */ + m = &modelSettings[division]; + assert (m->numModelStates == 2); + + bs = GetParamSubVals (m->stateFreq, whichChain, state[whichChain]); + scaler = 1.0 / (2*bs[0]*bs[1]); + a[0][0]= -bs[1]*scaler; + a[0][1]= bs[1]*scaler; + a[1][0]= bs[0]*scaler; + a[1][1]= -bs[0]*scaler; + + return (NO_ERROR); +} + + +int SetNucQMatrix (MrBFlt **a, int n, int whichChain, int division, MrBFlt rateMult, MrBFlt *rA, MrBFlt *rS) +{ + register int i, j, k; + int isTransition=0, nDiff, rtNum=0; + MrBFlt scaler, mult=0.0, probOn, sum, *swr, s01, s10, s[4][4], nonsyn, *rateValues=NULL, *bs, dN, dS; + ModelInfo *m; + ModelParams *mp; +# if defined BEAGLE_ENABLED + MrBFlt trans; +# endif + + /* set up pointers to the appropriate model information */ + mp = &modelParams[division]; + m = &modelSettings[division]; + assert (m->numModelStates == n); + + /* All of the models that are set up in this function require the frequencies + of the nucleotides (or doublets or codons). They will also require either + a transition/transversion rate ratio or the GTR rate parameters. The + "rateValues" will either be + + rateValues[0] = transtion/transversion rate (kappa) + + for nst=2 models or + + rateValues[0] = A <-> C rate + rateValues[1] = A <-> G rate + rateValues[2] = A <-> T rate + rateValues[3] = C <-> G rate + rateValues[4] = C <-> T rate + rateValues[5] = G <-> T rate + + for nst=6 models. */ + bs = GetParamSubVals (m->stateFreq, whichChain, state[whichChain]); + if (m->nst == 2) + { + rateValues = GetParamVals(m->tRatio, whichChain, state[whichChain]); +# if defined (BEAGLE_ENABLED) + /* transversions assumed to have rate 1.0; */ + trans = rateValues[0]; + if (m->numModelStates == 4) /* code to satisfy Beagle */ + { + rateValues = (MrBFlt *) SafeCalloc (6, sizeof(MrBFlt)); + rateValues[0] = rateValues[2] = rateValues[3] = rateValues[5] =1.0; /* Setting transversions */ + rateValues[1] = rateValues[4] = trans; /* Setting transitions */ + } +# endif + } + + else if (m->nst == 6 || m->nst == NST_MIXED) + rateValues = GetParamVals(m->revMat, whichChain, state[whichChain]); +# if defined (BEAGLE_ENABLED) + else if (m->nst == 1 && m->numModelStates == 4) /* code to satisfy Beagle */ + { + rateValues = (MrBFlt *) SafeCalloc (6, sizeof(MrBFlt)); + for (i=0; i<6; i++) + rateValues[i] = 1.0; + } +# endif + + if (n == 4) + { + /* 4 X 4 model: + + Here, we set the rate matrix for the GTR model (Tavare, 1986). We + need not only the 6 rates for this model (rateValues), but also the + base frequencies (bs). */ + + /* set diagonal of Q matrix to 0 */ + for (i=0; i<4; i++) + a[i][i] = 0.0; + + /* initialize Q matrix */ + scaler = 0.0; + for (i=0; i<4; i++) + { + for (j=i+1; j<4; j++) + { + if (i == 0 && j == 1) + mult = rateValues[0]; + else if (i == 0 && j == 2) + mult = rateValues[1]; + else if (i == 0 && j == 3) + mult = rateValues[2]; + else if (i == 1 && j == 2) + mult = rateValues[3]; + else if (i == 1 && j == 3) + mult = rateValues[4]; + else if (i == 2 && j == 3) + mult = rateValues[5]; + a[i][i] -= (a[i][j] = bs[j] * mult); + a[j][j] -= (a[j][i] = bs[i] * mult); + scaler += bs[i] * a[i][j]; + scaler += bs[j] * a[j][i]; + } + } + + /* rescale Q matrix */ + scaler = 1.0 / scaler; + for (i=0; i<4; i++) + for (j=0; j<4; j++) + a[i][j] *= scaler; + } + else if (n == 8) /* we have a 4 X 4 covarion model */ + { + /* 8 X 8 covarion model: + + Here, we set the rate matrix for the covarion model (Tuffley and + Steel, 1997). We need the rate parameters of the model + (contained in rateValues), the frequencies of the four nucleotides, + and the switching rates to completely specify the rate matrix. We + first set up the 4 X 4 submatrix that represents changes (the upper + left portion of the 8 X 8 matrix). Note that if we have rate + variation across sites, that we need to deal with the multiplication + in the rate matrix (i.e., we cannot simply deal with rate variation + by multiplying the branch length by a rate multiplier as we can + with other models). Instead, we multiply the scaled rate matrix + by the rate multiplier. */ + + /* Get the switching rates. The rate of off->on is s01 and the rate + of on->off is s10. The stationary probability of the switch process + is prob1 = s01/(s01+s10) and prob0 = s10/(s01+s10). */ + swr = GetParamVals (m->switchRates, whichChain, state[whichChain]); + s01 = swr[0]; + s10 = swr[1]; + probOn = s01 / (s01 + s10); + + /* set matrix a to 0 */ + for (i=0; i<8; i++) + for (j=0; j<8; j++) + a[i][j] = 0.0; + + /* set up the 4 X 4 matrix representing substitutions (s[][]; upper left) */ + if (m->nst == 1) + { + scaler = 0.0; + for (i=0; i<4; i++) + { + for (j=i+1; j<4; j++) + { + s[i][j] = bs[j]; + s[j][i] = bs[i]; + scaler += bs[i] * s[i][j] * probOn; + scaler += bs[j] * s[j][i] * probOn; + } + } + } + else if (m->nst == 2) + { + scaler = 0.0; + for (i=0; i<4; i++) + { + for (j=i+1; j<4; j++) + { + if ((i == 0 && j == 2) || (i == 2 && j == 0) || (i == 1 && j == 3) || (i == 3 && j == 1)) + mult = rateValues[0]; + else + mult = 1.0; + s[i][j] = bs[j] * mult; + s[j][i] = bs[i] * mult; + scaler += bs[i] * s[i][j] * probOn; + scaler += bs[j] * s[j][i] * probOn; + } + } + } + else + { + scaler = 0.0; + for (i=0; i<4; i++) + { + for (j=i+1; j<4; j++) + { + if (i == 0 && j == 1) + mult = rateValues[0]; + else if (i == 0 && j == 2) + mult = rateValues[1]; + else if (i == 0 && j == 3) + mult = rateValues[2]; + else if (i == 1 && j == 2) + mult = rateValues[3]; + else if (i == 1 && j == 3) + mult = rateValues[4]; + else if (i == 2 && j == 3) + mult = rateValues[5]; + + s[i][j] = bs[j] * mult; + s[j][i] = bs[i] * mult; + scaler += bs[i] * s[i][j] * probOn; + scaler += bs[j] * s[j][i] * probOn; + } + } + } + + /* rescale off diagonal elements of s[][] matrix */ + scaler = 1.0 / scaler; + for (i=0; i<4; i++) + { + for (j=0; j<4; j++) + { + if (i != j) + s[i][j] *= scaler; + } + } + + /* now, scale s[][] by rate factor */ + for (i=0; i<4; i++) + { + for (j=0; j<4; j++) + { + if (i != j) + s[i][j] *= rateMult; + } + } + + /* put in diagonal elements of s[][] */ + for (i=0; i<4; i++) + { + sum = 0.0; + for (j=0; j<4; j++) + { + if (i != j) + sum += s[i][j]; + } + s[i][i] = -(sum + s10); + } + + /* Now, put s[][] into top left portion of a matrix and fill in the + other parts of the matrix with the appropriate switching rates. */ + for (i=0; i<4; i++) + for (j=0; j<4; j++) + a[i][j] = s[i][j]; + for (i=4; i<8; i++) + a[i][i] = -s01; + a[0][4] = s10; + a[1][5] = s10; + a[2][6] = s10; + a[3][7] = s10; + a[4][0] = s01; + a[5][1] = s01; + a[6][2] = s01; + a[7][3] = s01; + +# if 0 + for (i=0; i<8; i++) + { + for (j=0; j<8; j++) + printf ("%1.10lf ", a[i][j]); + printf ("\n"); + } + for (i=0; i<4; i++) + printf ("%lf ", bs[i]); + printf ("\n"); + printf ("s01 = %lf s10 = %lf pi1 = %lf pi0 = %lf\n", s01, s10, probOn, 1-probOn); +# endif + } + else if (n == 16) + { + /* 16 X 16 doublet model: + + We have a doublet model. The states are in the order AA, AC, AG, AT, CA, CC + CG, CT, GA, GC, GG, GT, TA, TC, TG, TT. The rate matrix is straight-forward + to set up. We simply multiply the rate parameter (e.g., the ti/tv rate + ratio) by the doublet frequencies. */ + + /* set diagonal of Q matrix to 0 */ + for (i=0; i<16; i++) + a[i][i] = 0.0; + + if (m->nst == 1) /* F81-like doublet model */ + { + scaler = 0.0; + for (i=0; i<16; i++) + { + for (j=i+1; j<16; j++) + { + if (((doublet[i].first & doublet[j].first) == 0) && ((doublet[i].second & doublet[j].second) == 0)) + mult = 0.0; + else + mult = 1.0; + a[i][i] -= (a[i][j] = bs[j] * mult); + a[j][j] -= (a[j][i] = bs[i] * mult); + scaler += bs[i] * a[i][j]; + scaler += bs[j] * a[j][i]; + } + } + } + else if (m->nst == 2) /* HKY-like doublet model */ + { + scaler = 0.0; + for (i=0; i<16; i++) + { + for (j=i+1; j<16; j++) + { + if (((doublet[i].first & doublet[j].first) == 0) && ((doublet[i].second & doublet[j].second) == 0)) + mult = 0.0; + else + { + if ((doublet[i].first & doublet[j].first) == 0) + { + if ((doublet[i].first + doublet[j].first) == 5 || (doublet[i].first + doublet[j].first) == 10) + mult = rateValues[0]; + else + mult = 1.0; + } + else + { + if ((doublet[i].second + doublet[j].second) == 5 || (doublet[i].second + doublet[j].second) == 10) + mult = rateValues[0]; + else + mult = 1.0; + } + } + a[i][i] -= (a[i][j] = bs[j] * mult); + a[j][j] -= (a[j][i] = bs[i] * mult); + scaler += bs[i] * a[i][j]; + scaler += bs[j] * a[j][i]; + } + } + } + else /* GTR-like doublet model */ + { + scaler = 0.0; + for (i=0; i<16; i++) + { + for (j=i+1; j<16; j++) + { + if (((doublet[i].first & doublet[j].first) == 0) && ((doublet[i].second & doublet[j].second) == 0)) + mult = 0.0; + else + { + if ((doublet[i].first & doublet[j].first) == 0) + { + if ((doublet[i].first + doublet[j].first) == 3) + mult = rateValues[0]; + else if ((doublet[i].first + doublet[j].first) == 5) + mult = rateValues[1]; + else if ((doublet[i].first + doublet[j].first) == 9) + mult = rateValues[2]; + else if ((doublet[i].first + doublet[j].first) == 6) + mult = rateValues[3]; + else if ((doublet[i].first + doublet[j].first) == 10) + mult = rateValues[4]; + else + mult = rateValues[5]; + } + else + { + if ((doublet[i].second + doublet[j].second) == 3) + mult = rateValues[0]; + else if ((doublet[i].second + doublet[j].second) == 5) + mult = rateValues[1]; + else if ((doublet[i].second + doublet[j].second) == 9) + mult = rateValues[2]; + else if ((doublet[i].second + doublet[j].second) == 6) + mult = rateValues[3]; + else if ((doublet[i].second + doublet[j].second) == 10) + mult = rateValues[4]; + else + mult = rateValues[5]; + } + } + a[i][i] -= (a[i][j] = bs[j] * mult); + a[j][j] -= (a[j][i] = bs[i] * mult); + scaler += bs[i] * a[i][j]; + scaler += bs[j] * a[j][i]; + } + } + } + + + /* rescale Q matrix */ + scaler = 1.0 / scaler; + for (i=0; i<16; i++) + for (j=0; j<16; j++) + a[i][j] *= scaler; + } + else + { + /* 64(ish) X 64(ish) codon model: + + Here, we set the rate matrix for the codon model (see Goldman and + Yang, 1994). Note that we can specifiy any general type of codon + model, with these constraints: + + a[i][j] = 0 -> if i and j differ at 2 or 3 nucleotides + a[i][j] = rateValues[0] * bs[j] -> if synonymous A <-> C change + a[i][j] = rateValues[1] * bs[j] -> if synonymous A <-> G change + a[i][j] = rateValues[2] * bs[j] -> if synonymous A <-> T change + a[i][j] = rateValues[3] * bs[j] -> if synonymous C <-> G change + a[i][j] = rateValues[4] * bs[j] -> if synonymous C <-> T change + a[i][j] = rateValues[5] * bs[j] -> if synonymous G <-> T change + + a[i][j] = rateValues[0] * nonsyn * bs[j] -> if nonsynonymous A <-> C change + a[i][j] = rateValues[1] * nonsyn * bs[j] -> if nonsynonymous A <-> G change + a[i][j] = rateValues[2] * nonsyn * bs[j] -> if nonsynonymous A <-> T change + a[i][j] = rateValues[3] * nonsyn * bs[j] -> if nonsynonymous C <-> G change + a[i][j] = rateValues[4] * nonsyn * bs[j] -> if nonsynonymous C <-> T change + a[i][j] = rateValues[5] * nonsyn * bs[j] -> if nonsynonymous G <-> T change + + Other models, such as the one used by Nielsen & Yang (1998) can be obtained + from this model by restricing transitions and transversions to have the same rate. + nonsyn is the nonsynonymous/synonymous rate ratio (often called the + dN/dS ratio). If we are in this part of the function, then we rely on it + being called with the "rateMult" parameter specifying the dN/dS ratio. Note + that the size of the matrix will never be 64 X 64 as we only consider changes + among coding triplets (i.e., we exclude the stop codons). */ + + /* get the nonsynonymous/synonymous rate ratio */ + nonsyn = rateMult; + + /* set diagonal of Q matrix to 0 */ + for (i=0; inst == 1) /* F81-like codon model */ + { + scaler = 0.0; + for (i=0; icodonNucs[i][k] != mp->codonNucs[j][k]) + nDiff++; + } + if (nDiff > 1) + { + mult = 0.0; + } + else + { + if (mp->codonAAs[i] == mp->codonAAs[j]) + mult = 1.0; + else + mult = nonsyn; + } + + a[i][i] -= (a[i][j] = bs[j] * mult); + a[j][j] -= (a[j][i] = bs[i] * mult); + if (mp->codonAAs[i] == mp->codonAAs[j]) + dS += (bs[i] * a[i][j] + bs[j] * a[j][i]); + else + dN += (bs[i] * a[i][j] + bs[j] * a[j][i]); + scaler += bs[i] * a[i][j]; + scaler += bs[j] * a[j][i]; + } + } + } + else if (m->nst == 2) /* HKY-like codon model */ + { + scaler = 0.0; + for (i=0; icodonNucs[i][k] != mp->codonNucs[j][k]) + { + nDiff++; + if ((mp->codonNucs[i][k] == 0 && mp->codonNucs[j][k] == 2) || (mp->codonNucs[i][k] == 2 && mp->codonNucs[j][k] == 0) || + (mp->codonNucs[i][k] == 1 && mp->codonNucs[j][k] == 3) || (mp->codonNucs[i][k] == 3 && mp->codonNucs[j][k] == 1)) + isTransition = YES; + else + isTransition = NO; + } + } + if (nDiff > 1) + { + mult = 0.0; + } + else + { + if (mp->codonAAs[i] == mp->codonAAs[j]) + mult = 1.0; + else + mult = nonsyn; + if (isTransition == YES) + mult *= rateValues[0]; + } + + a[i][i] -= (a[i][j] = bs[j] * mult); + a[j][j] -= (a[j][i] = bs[i] * mult); + if (mp->codonAAs[i] == mp->codonAAs[j]) + dS += (bs[i] * a[i][j] + bs[j] * a[j][i]); + else + dN += (bs[i] * a[i][j] + bs[j] * a[j][i]); + scaler += bs[i] * a[i][j]; + scaler += bs[j] * a[j][i]; + } + } + } + else /* GTR-like codon model */ + { + scaler = 0.0; + for (i=0; icodonNucs[i][k] != mp->codonNucs[j][k]) + { + nDiff++; + if ((mp->codonNucs[i][k] == 0 && mp->codonNucs[j][k] == 1) || (mp->codonNucs[i][k] == 1 && mp->codonNucs[j][k] == 0)) + rtNum = 0; + else if ((mp->codonNucs[i][k] == 0 && mp->codonNucs[j][k] == 2) || (mp->codonNucs[i][k] == 2 && mp->codonNucs[j][k] == 0)) + rtNum = 1; + else if ((mp->codonNucs[i][k] == 0 && mp->codonNucs[j][k] == 3) || (mp->codonNucs[i][k] == 3 && mp->codonNucs[j][k] == 0)) + rtNum = 2; + else if ((mp->codonNucs[i][k] == 1 && mp->codonNucs[j][k] == 2) || (mp->codonNucs[i][k] == 2 && mp->codonNucs[j][k] == 1)) + rtNum = 3; + else if ((mp->codonNucs[i][k] == 1 && mp->codonNucs[j][k] == 3) || (mp->codonNucs[i][k] == 3 && mp->codonNucs[j][k] == 1)) + rtNum = 4; + else + rtNum = 5; + } + } + if (nDiff > 1) + { + mult = 0.0; + } + else + { + if (mp->codonAAs[i] == mp->codonAAs[j]) + mult = 1.0; + else + mult = nonsyn; + if (rtNum == 0) + mult *= rateValues[0]; + else if (rtNum == 1) + mult *= rateValues[1]; + else if (rtNum == 2) + mult *= rateValues[2]; + else if (rtNum == 3) + mult *= rateValues[3]; + else if (rtNum == 4) + mult *= rateValues[4]; + else + mult *= rateValues[5]; + } + + a[i][i] -= (a[i][j] = bs[j] * mult); + a[j][j] -= (a[j][i] = bs[i] * mult); + if (mp->codonAAs[i] == mp->codonAAs[j]) + dS += (bs[i] * a[i][j] + bs[j] * a[j][i]); + else + dN += (bs[i] * a[i][j] + bs[j] * a[j][i]); + scaler += bs[i] * a[i][j]; + scaler += bs[j] * a[j][i]; + } + } + } + + /* rescale Q matrix */ + if (m->nucModelId == NUCMODEL_CODON && m->numOmegaCats > 1) + { + /* If we have a positive selection model with multiple categories, then + we do not rescale the rate matrix until we have finished generating + all of the necessary rate matrices. The rescaling occurrs in + UpDateCijk. */ + (*rA) = dN; + (*rS) = dS; + } + else + { + scaler = 1.0 / scaler; + for (i=0; inst == 1 || m->nst == 2) && m->numModelStates == 4) + free (rateValues); +# endif + + return (NO_ERROR); +} + + +int SetProteinQMatrix (MrBFlt **a, int n, int whichChain, int division, MrBFlt rateMult) +{ + register int i, j, k; + int aaModelID; + MrBFlt scaler, probOn, sum, *swr, s01, s10, *bs, *rt; + ModelInfo *m; + + /* set up pointers to the appropriate model information */ + m = &modelSettings[division]; + + /* get amino acid model ID + AAMODEL_POISSON 0 + AAMODEL_JONES 1 + AAMODEL_DAY 2 + AAMODEL_MTREV 3 + AAMODEL_MTMAM 4 + AAMODEL_WAG 5 + AAMODEL_RTREV 6 + AAMODEL_CPREV 7 + AAMODEL_VT 8 + AAMODEL_BLOSUM 9 + AAMODEL_LG 10 + AAMODEL_EQ 11 + AAMODEL_GTR 12 */ + + if (m->aaModelId >= 0) + aaModelID = m->aaModelId; + else + aaModelID = (int)*GetParamVals(m->aaModel, whichChain, state[whichChain]); + + /* Make certain that we have either 20 or 40 states. Anything + else means we have a real problem. */ + if (n != 20 && n != 40) + { + MrBayesPrint ("%s ERROR: There should be 20 or 40 states for the aa model\n"); + return (ERROR); + } + + if (n == 20) + { + /* We have a run-of-the-mill amino acid model (i.e., 20 X 20). */ + if (aaModelID == AAMODEL_POISSON) + { + scaler = 1.0 / 19.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = scaler; + a[j][i] = scaler; + } + } + for (i=0; i<20; i++) + a[i][i] = -1.0; + } + else if (aaModelID == AAMODEL_EQ) + { + bs = GetParamSubVals (m->stateFreq, whichChain, state[whichChain]); + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = 0.0; + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][i] -= (a[i][j] = bs[j]); + a[j][j] -= (a[j][i] = bs[i]); + scaler += bs[i] * a[i][j]; + scaler += bs[j] * a[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] *= scaler; + } + else if (aaModelID == AAMODEL_GTR) + { + bs = GetParamSubVals (m->stateFreq, whichChain, state[whichChain]); + rt = GetParamVals (m->revMat, whichChain, state[whichChain]); + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = 0.0; + scaler = 0.0; + for (i=k=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][i] -= (a[i][j] = bs[j] * rt[k]); + a[j][j] -= (a[j][i] = bs[i] * rt[k]); + k++; + } + } + for (i=0; i<20; i++) + scaler += -(bs[i] * a[i][i]); + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] /= scaler; + } + else if (aaModelID == AAMODEL_JONES) + { + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = aaJones[i][j]; + } + else if (aaModelID == AAMODEL_DAY) + { + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = aaDayhoff[i][j]; + } + else if (aaModelID == AAMODEL_MTREV) + { + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = aaMtrev24[i][j]; + } + else if (aaModelID == AAMODEL_MTMAM) + { + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = aaMtmam[i][j]; + } + else if (aaModelID == AAMODEL_RTREV) + { + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = aartREV[i][j]; + } + else if (aaModelID == AAMODEL_WAG) + { + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = aaWAG[i][j]; + } + else if (aaModelID == AAMODEL_CPREV) + { + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = aacpREV[i][j]; + } + else if (aaModelID == AAMODEL_VT) + { + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = aaVt[i][j]; + } + else if (aaModelID == AAMODEL_BLOSUM) + { + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = aaBlosum[i][j]; + } + else if (aaModelID == AAMODEL_LG) + { + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = aaLG[i][j]; + } + else + { + MrBayesPrint ("%s ERROR: Don't understand which amino acid model is needed\n"); + return (ERROR); + } +# if 0 + for (i=0; i<20; i++) + { + for (j=0; j<20; j++) + printf ("%1.3lf ", a[i][j]); + printf ("\n"); + } +# endif + } + else + { + /* 40 X 40 covarion model: + + We have a covarion model, and must set up the other quadrants. Note that if + we are at this point in the code, that we have already set up the upper left + portion of the 40 X 40 rate matrix. Note that if we have rate + variation across sites, that we need to deal with the multiplication + in the rate matrix (i.e., we cannot simply deal with rate variation + by multiplying the branch length by a rate multiplier as we can + with other models). Instead, we multiply the scaled rate matrix + by the rate multiplier. */ + + /* Get the switching rates. The rate of off->on is s01 and the rate + of on->off is s10. The stationary probability of the switch process + is prob1 = s01/(s01+s10) and prob0 = s10/(s01+s10). */ + swr = GetParamVals (m->switchRates, whichChain, state[whichChain]); + s01 = swr[0]; + s10 = swr[1]; + probOn = s01 / (s01 + s10); + + /* set matrix a[][] to 0 */ + for (i=0; i<40; i++) + for (j=0; j<40; j++) + a[i][j] = 0.0; + + /* fill in upper-left sub matrix (where substitutions occur */ + if (aaModelID == AAMODEL_POISSON) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = 0.05; + a[j][i] = 0.05; + scaler += 0.05 * a[i][j] * probOn; + scaler += 0.05 * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_EQ) + { + bs = GetParamSubVals (m->stateFreq, whichChain, state[whichChain]); + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = bs[j]; + a[j][i] = bs[i]; + scaler += bs[i] * a[i][j] * probOn; + scaler += bs[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_GTR) + { + bs = GetParamSubVals (m->stateFreq, whichChain, state[whichChain]); + rt = GetParamVals (m->revMat, whichChain, state[whichChain]); + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] = 0.0; + scaler = 0.0; + for (i=k=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][i] -= (a[i][j] = bs[j] * rt[k]); + a[j][j] -= (a[j][i] = bs[i] * rt[k]); + k++; + } + } + for (i=0; i<20; i++) + scaler += -(bs[i] * a[i][i]); + for (i=0; i<20; i++) + for (j=0; j<20; j++) + a[i][j] /= scaler; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = bs[j]; + a[j][i] = bs[i]; + scaler += bs[i] * a[i][j] * probOn; + scaler += bs[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_JONES) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = aaJones[i][j]; + a[j][i] = aaJones[j][i]; + scaler += jonesPi[i] * a[i][j] * probOn; + scaler += jonesPi[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_DAY) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = aaDayhoff[i][j]; + a[j][i] = aaDayhoff[j][i]; + scaler += dayhoffPi[i] * a[i][j] * probOn; + scaler += dayhoffPi[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_MTREV) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = aaMtrev24[i][j]; + a[j][i] = aaMtrev24[j][i]; + scaler += mtrev24Pi[i] * a[i][j] * probOn; + scaler += mtrev24Pi[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_MTMAM) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = aaMtmam[i][j]; + a[j][i] = aaMtmam[j][i]; + scaler += mtmamPi[i] * a[i][j] * probOn; + scaler += mtmamPi[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_RTREV) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = aartREV[i][j]; + a[j][i] = aartREV[j][i]; + scaler += rtrevPi[i] * a[i][j] * probOn; + scaler += rtrevPi[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_WAG) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = aaWAG[i][j]; + a[j][i] = aaWAG[j][i]; + scaler += wagPi[i] * a[i][j] * probOn; + scaler += wagPi[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_CPREV) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = aacpREV[i][j]; + a[j][i] = aacpREV[j][i]; + scaler += cprevPi[i] * a[i][j] * probOn; + scaler += cprevPi[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_VT) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = aaVt[i][j]; + a[j][i] = aaVt[j][i]; + scaler += vtPi[i] * a[i][j] * probOn; + scaler += vtPi[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_BLOSUM) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = aaBlosum[i][j]; + a[j][i] = aaBlosum[j][i]; + scaler += blosPi[i] * a[i][j] * probOn; + scaler += blosPi[j] * a[j][i] * probOn; + } + } + } + else if (aaModelID == AAMODEL_LG) + { + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + a[i][j] = aaLG[i][j]; + a[j][i] = aaLG[j][i]; + scaler += lgPi[i] * a[i][j] * probOn; + scaler += lgPi[j] * a[j][i] * probOn; + } + } + } + else + { + MrBayesPrint ("%s ERROR: Don't understand which amino acid model is needed\n"); + return (ERROR); + } + + /* rescale off diagonal elements of Q matrix */ + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + { + for (j=0; j<20; j++) + { + if (i != j) + a[i][j] *= scaler; + } + } + + /* now, scale by rate factor */ + for (i=0; i<20; i++) + { + for (j=0; j<20; j++) + { + if (i != j) + a[i][j] *= rateMult; + } + } + + /* put in diagonal elements */ + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += a[i][j]; + a[i][i] = -(sum + s10); + } + } + + /* fill in the other three submatrices */ + for (i=20; i<40; i++) + a[i][i] = -s01; + for (i=0; i<20; i++) + { + a[i][20+i] = s10; + a[20+i][i] = s01; + } + + } + + return (NO_ERROR); +} + + +int SetStdQMatrix (MrBFlt **a, int nStates, MrBFlt *bs, int cType) +{ + register int i, j; + MrBFlt scaler; + + /* This function sets up ordered or unordered models for standard characters + with unequal stationary state frequencies. It requires the stationary + frequencies of the states (passed when calling the function). It also + needs to know the number of states and the type (ordered or unordered) + of the character. */ + + /* set Q matrix to 0 */ + for (i=0; itiProbs[m->tiProbsIndex[chain][p->index]]; + + /* get base frequencies */ + pis = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* get rate multipliers (for gamma & partition specific rates) */ + theRate = 1.0; + baseRate = GetRate (division, chain); + /* compensate for invariable sites if appropriate */ + if (m->pInvar != NULL) + baseRate /= (1.0 - (*GetParamVals(m->pInvar, chain, state[chain]))); + /* get category rates */ + if (m->shape == NULL) + catRate = &theRate; + else + catRate = GetParamSubVals (m->shape, chain, state[chain]); + + /* rescale beta */ + beta = (0.5 / ((pis[0] + pis[2])*(pis[1] + pis[3]) + ((pis[0]*pis[2]) + (pis[1]*pis[3])))); + + bigPi_j[0] = (pis[0] + pis[2]); + bigPi_j[1] = (pis[1] + pis[3]); + bigPi_j[2] = (pis[0] + pis[2]); + bigPi_j[3] = (pis[1] + pis[3]); + + /* find length */ + if (m->cppEvents != NULL) + { + length = GetParamSubVals (m->cppEvents, chain, state[chain])[p->index]; + } + else if (m->tk02BranchRates != NULL) + { + length = GetParamSubVals (m->tk02BranchRates, chain, state[chain])[p->index]; + } + else if (m->igrBranchRates != NULL) + { + length = GetParamSubVals (m->igrBranchRates, chain, state[chain])[p->index]; + } + else if (m->mixedBrchRates != NULL) + { + length = GetParamSubVals (m->mixedBrchRates, chain, state[chain])[p->index]; + } + else + length = p->length; + + /* numerical errors will ensue if we allow very large or very small branch lengths, + which might occur in relaxed clock models */ + + /* fill in values */ + for (k=index=0; knumGammaCats; k++) + { + t = length * baseRate * catRate[k]; + + if (t < TIME_MIN) + { + /* Fill in identity matrix */ + for (i=0; i<4; i++) + { + for (j=0; j<4; j++) + { + if (i == j) + tiP[index++] = 1.0; + else + tiP[index++] = 0.0; + } + } + } + else if (t > TIME_MAX) + { + /* Fill in stationary matrix */ + for (i=0; i<4; i++) + for (j=0; j<4; j++) + tiP[index++] = (CLFlt) pis[j]; + } + else + { + /* calculate probabilities */ + for (i=0; i<4; i++) + { + for (j=0; j<4; j++) + { + bigPij = bigPi_j[j]; + pij = pis[j]; + u = 1.0/bigPij - 1.0; + x = exp(-beta * t); + z = (bigPij - pij) / bigPij; + + if (i == j) + tiP[index++] = (CLFlt) (pij + pij * u * x + z * x); + else + tiP[index++] = (CLFlt) (pij + pij * u * x - (pij/bigPij) * x); + } + } + } + } + + return NO_ERROR; +} + + +/*---------------------------------------------------------------- +| +| TiProbs_Gen: Calculates transition probabilities for general +| models with or without rate variation. This function does +| not work with: +| +| 1. codon models with omega variation or +| 2. covarion models with rate variation +| +| In either of these cases, TiProbs_GenCov is used +| +-----------------------------------------------------------------*/ +int TiProbs_Gen (TreeNode *p, int division, int chain) +{ + register int i, j, k, n, s, index; + MrBFlt t, *catRate, baseRate, *eigenValues, *cijk, *bs, + EigValexp[64], sum, *ptr, theRate, correctionFactor, + length; + CLFlt *tiP; + ModelInfo *m; + + m = &modelSettings[division]; + n = m->numModelStates; + + /* find the correction factor to make branch lengths + in terms of expected number of substitutions per character */ + correctionFactor = 1.0; + if (m->dataType == DNA || m->dataType == RNA) + { + if (m->nucModelId == NUCMODEL_DOUBLET) + correctionFactor = 2.0; + else if (m->nucModelId == NUCMODEL_CODON) + correctionFactor = 3.0; + } + + /* find transition probabilities */ + tiP = m->tiProbs[m->tiProbsIndex[chain][p->index]]; + + /* get rate multipliers (for gamma & partition specific rates) */ + theRate = 1.0; + baseRate = GetRate (division, chain); + + /* compensate for invariable sites if appropriate */ + if (m->pInvar != NULL) + baseRate /= (1.0 - (*GetParamVals(m->pInvar, chain, state[chain]))); + + /* get category rates */ + if (m->shape == NULL) + catRate = &theRate; + else + catRate = GetParamSubVals (m->shape, chain, state[chain]); + + /* get eigenvalues and cijk pointers */ + eigenValues = m->cijks[m->cijkIndex[chain]]; + cijk = eigenValues + (2 * n); + + /* find length */ + if (m->cppEvents != NULL) + { + length = GetParamSubVals (m->cppEvents, chain, state[chain])[p->index]; + } + else if (m->tk02BranchRates != NULL) + { + length = GetParamSubVals (m->tk02BranchRates, chain, state[chain])[p->index]; + } + else if (m->igrBranchRates != NULL) + { + length = GetParamSubVals (m->igrBranchRates, chain, state[chain])[p->index]; + } + else if (m->mixedBrchRates != NULL) + { + length = GetParamSubVals (m->mixedBrchRates, chain, state[chain])[p->index]; + } + else + length = p->length; + + /* fill in values */ + for (k=index=0; knumGammaCats; k++) + { + t = length * baseRate * catRate[k] * correctionFactor; + + if (t < TIME_MIN) + { + /* Fill in identity matrix */ + for (i=0; i TIME_MAX) + { + /* Get base freq */ + bs = GetParamSubVals(m->stateFreq, chain, state[chain]); + /* Fill in stationary matrix */ + for (i=0; iindex); + for (i=index=0; inumModelStates; + + /* find the correction factor to make branch lengths + in terms of expected number of substitutions per character */ + correctionFactor = 1.0; + if (m->dataType == DNA || m->dataType == RNA) + { + if (m->nucModelId == NUCMODEL_DOUBLET) + correctionFactor = 2.0; + else if (m->nucModelId == NUCMODEL_CODON) + correctionFactor = 3.0; + } + + /* find transition probabilities */ + tiP = m->tiProbs[m->tiProbsIndex[chain][p->index]]; + + /* get eigenvalues and cijk pointers */ + eigenValues = m->cijks[m->cijkIndex[chain]]; + cijk = eigenValues + (2 * n); + + /* get offset size (we need to move the pointers to the appropriate + cijk information for these models) */ + sizeOfSingleCijk = m->cijkLength / m->nCijkParts; + + /* find length */ + if (m->cppEvents != NULL) + { + length = GetParamSubVals (m->cppEvents, chain, state[chain])[p->index]; + } + else if (m->tk02BranchRates != NULL) + { + length = GetParamSubVals (m->tk02BranchRates, chain, state[chain])[p->index]; + } + else if (m->igrBranchRates != NULL) + { + length = GetParamSubVals (m->igrBranchRates, chain, state[chain])[p->index]; + } + else if (m->mixedBrchRates != NULL) + { + length = GetParamSubVals (m->mixedBrchRates, chain, state[chain])[p->index]; + } + else + length = p->length; + + /* numerical errors will ensue if we allow very large or very small branch lengths, + which might occur in relaxed clock models */ + + /* fill in values */ + for (k=index=0; knCijkParts; k++) + { + t = length * correctionFactor; + + if (t < TIME_MIN) + { + /* Fill in identity matrix */ + for (i=0; i TIME_MAX) + { + /* Get base freq */ + bs = GetParamSubVals(m->stateFreq, chain, state[chain]); + /* Fill in stationary matrix */ + for (i=0; icijkLength */ + if (k+1 < m->nCijkParts) + { + /* shift pointers */ + eigenValues += sizeOfSingleCijk; + cijk += sizeOfSingleCijk; + } + } + } + +# if 0 + for (i=index=0; itiProbs[m->tiProbsIndex[chain][p->index]]; + + /* get kappa */ + kap = *GetParamVals (m->tRatio, chain, state[chain]); + + /* get base frequencies */ + pis = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* get rate multipliers (for gamma & partition specific rates) */ + theRate = 1.0; + baseRate = GetRate (division, chain); + /* compensate for invariable sites if appropriate */ + if (m->pInvar != NULL) + baseRate /= (1.0 - (*GetParamVals(m->pInvar, chain, state[chain]))); + /* get category rates */ + if (m->shape == NULL) + catRate = &theRate; + else + catRate = GetParamSubVals (m->shape, chain, state[chain]); + + /* rescale beta */ + beta = 0.5 / ((pis[0] + pis[2])*(pis[1] + pis[3]) + kap*((pis[0]*pis[2]) + (pis[1]*pis[3]))); + + bigPi_j[0] = pis[0] + pis[2]; + bigPi_j[1] = pis[1] + pis[3]; + bigPi_j[2] = pis[0] + pis[2]; + bigPi_j[3] = pis[1] + pis[3]; + + /* find length */ + if (m->cppEvents != NULL) + { + length = GetParamSubVals (m->cppEvents, chain, state[chain])[p->index]; + } + else if (m->tk02BranchRates != NULL) + { + length = GetParamSubVals (m->tk02BranchRates, chain, state[chain])[p->index]; + } + else if (m->igrBranchRates != NULL) + { + length = GetParamSubVals (m->igrBranchRates, chain, state[chain])[p->index]; + } + else if (m->mixedBrchRates != NULL) + { + length = GetParamSubVals (m->mixedBrchRates, chain, state[chain])[p->index]; + } + else + length = p->length; + + /* numerical errors will ensue if we allow very large or very small branch lengths, + which might occur in relaxed clock models */ + + /* fill in values */ + for (k=index=0; knumGammaCats; k++) + { + t = length * baseRate * catRate[k]; + + if (t < TIME_MIN) + { + /* Fill in identity matrix */ + for (i=0; i<4; i++) + { + for (j=0; j<4; j++) + { + if (i == j) + tiP[index++] = 1.0; + else + tiP[index++] = 0.0; + } + } + } + else if (t > TIME_MAX) + { + /* Fill in stationary matrix */ + for (i=0; i<4; i++) + for (j=0; j<4; j++) + tiP[index++] = (CLFlt) pis[j]; + } + else + { + /* calculate probabilities */ + for (i=0; i<4; i++) + { + for (j=0; j<4; j++) + { + bigPij = bigPi_j[j]; + pij = pis[j]; + u = 1.0/bigPij - 1.0; + w = -beta * (1.0 + bigPij * (kap - 1.0)); + x = exp(-beta * t); + y = exp(w * t); + z = (bigPij - pij) / bigPij; + + if (i == j) + tiP[index++] = (CLFlt) (pij + pij * u * x + z * y); + else if ((i == 0 && j == 2) || (i == 2 && j == 0) || (i == 1 && j == 3) || (i == 3 && j == 1)) + tiP[index++] = (CLFlt) (pij + pij * u * x - (pij/bigPij) * y); + else + tiP[index++] = (CLFlt) (pij * (1.0 - x)); + } + } + } + } + + return NO_ERROR; +} + + +/*----------------------------------------------------------------- +| +| TiProbs_JukesCantor: update transition probabilities for 4by4 +| nucleotide model with nst == 1 (Jukes-Cantor) +| with or without rate variation +| +------------------------------------------------------------------*/ +int TiProbs_JukesCantor (TreeNode *p, int division, int chain) +{ + /* calculate Jukes Cantor transition probabilities */ + + int i, j, k, index; + MrBFlt t, *catRate, baseRate, length; + CLFlt pNoChange, pChange, *tiP; + ModelInfo *m; + + m = &modelSettings[division]; + + /* find transition probabilities */ + tiP = m->tiProbs[m->tiProbsIndex[chain][p->index]]; + + baseRate = 1.0; + if (m->shape == NULL) + catRate = &baseRate; + else + catRate = GetParamSubVals (m->shape, chain, state[chain]); + + /* find length */ + if (m->cppEvents != NULL) + { + length = GetParamSubVals (m->cppEvents, chain, state[chain])[p->index]; + } + else if (m->tk02BranchRates != NULL) + { + length = GetParamSubVals (m->tk02BranchRates, chain, state[chain])[p->index]; + } + else if (m->igrBranchRates != NULL) + { + length = GetParamSubVals (m->igrBranchRates, chain, state[chain])[p->index]; + } + else if (m->mixedBrchRates != NULL) + { + length = GetParamSubVals (m->mixedBrchRates, chain, state[chain])[p->index]; + } + else + length = p->length; + + /* numerical errors will ensue if we allow very large or very small branch lengths, + which might occur in relaxed clock models */ + + /* fill in values */ + for (k=index=0; knumGammaCats; k++) + { + t = length*catRate[k]; + + if (t < TIME_MIN) + { + /* Fill in identity matrix */ + for (i=0; i<4; i++) + { + for (j=0; j<4; j++) + { + if (i == j) + tiP[index++] = 1.0; + else + tiP[index++] = 0.0; + } + } + } + else if (t > TIME_MAX) + { + /* Fill in stationary matrix */ + for (i=0; i<4; i++) + for (j=0; j<4; j++) + tiP[index++] = 0.25; + } + else + { + /* calculate probabilities */ + pChange = (CLFlt) (0.25 - 0.25 * exp(-(4.0/3.0)*t)); + pNoChange = (CLFlt) (0.25 + 0.75 * exp(-(4.0/3.0)*t)); + for (i=0; i<4; i++) + { + for (j=0; j<4; j++) + { + if (i == j) + tiP[index++] = pNoChange; + else + tiP[index++] = pChange; + } + } + } + } + + return NO_ERROR; +} + + +/*----------------------------------------------------------------- +| +| TiProbs_Res: update transition probabilities for binary +| restriction site model with or without rate variation +| +------------------------------------------------------------------*/ +int TiProbs_Res (TreeNode *p, int division, int chain) +{ + int k, index; + MrBFlt baseRate, eV, mu, theRate, v, + *bs, *catRate, length; + CLFlt *tiP; + ModelInfo *m; + + /* find model settings for the division */ + m = &modelSettings[division]; + + /* find transition probabilities */ + tiP = m->tiProbs[m->tiProbsIndex[chain][p->index]]; + + /* find rates */ + baseRate = GetRate (division, chain); + theRate = 1.0; + if (m->shape == NULL) + catRate = &theRate; + else + catRate = GetParamSubVals (m->shape, chain, state[chain]); + + /* find base frequencies */ + bs = GetParamSubVals(m->stateFreq, chain, state[chain]); + + /* calculate scaling factor */ + mu = 1.0 / (2.0 * bs[0] * bs[1]); + + /* find length */ + if (m->cppEvents != NULL) + { + length = GetParamSubVals (m->cppEvents, chain, state[chain])[p->index]; + } + else if (m->tk02BranchRates != NULL) + { + length = GetParamSubVals (m->tk02BranchRates, chain, state[chain])[p->index]; + } + else if (m->igrBranchRates != NULL) + { + length = GetParamSubVals (m->igrBranchRates, chain, state[chain])[p->index]; + } + else if (m->mixedBrchRates != NULL) + { + length = GetParamSubVals (m->mixedBrchRates, chain, state[chain])[p->index]; + } + else + length = p->length; + + /* numerical errors will ensue if we allow very large or very small branch lengths, + which might occur in relaxed clock models */ + + /* fill in values */ + for (k=index=0; knumGammaCats; k++) + { + v = length * baseRate * catRate[k]; + + if (v < TIME_MIN) + { + /* Fill in identity matrix */ + tiP[index++] = (CLFlt) (bs[0] + bs[1]); + tiP[index++] = (CLFlt) (bs[1] - bs[1]); + tiP[index++] = (CLFlt) (bs[0] - bs[0]); + tiP[index++] = (CLFlt) (bs[1] + bs[0]); + } + else if (v > TIME_MAX) + { + /* Fill in stationary matrix */ + tiP[index++] = (CLFlt) bs[0]; + tiP[index++] = (CLFlt) bs[1]; + tiP[index++] = (CLFlt) bs[0]; + tiP[index++] = (CLFlt) bs[1]; + } + else + { + /* calculate probabilities */ + eV = exp(-mu * v); + tiP[index++] = (CLFlt) (bs[0] + bs[1] * eV); + tiP[index++] = (CLFlt) (bs[1] - bs[1] * eV); + tiP[index++] = (CLFlt) (bs[0] - bs[0] * eV); + tiP[index++] = (CLFlt) (bs[1] + bs[0] * eV); + } + } + + return NO_ERROR; +} + + +/*----------------------------------------------------------------- +| +| TiProbs_Std: update transition probabilities for +| variable states model with or without rate variation +| +------------------------------------------------------------------*/ +int TiProbs_Std (TreeNode *p, int division, int chain) +{ + int b, c, i, j, k, n, s, nStates, index=0, index2; + MrBFlt v, eV1, eV2, eV3, eV4, eV5, *catRate, + baseRate, theRate, pi, f1, f2, f3, f4, f5, f6, f7, root, + *eigenValues, *cijk, sum, *bs, mu, length; + CLFlt pNoChange, pChange, *tiP; + ModelInfo *m; +# if defined (DEBUG_TIPROBS_STD) + int index3; +# endif + + m = &modelSettings[division]; + + /* find transition probabilities */ + tiP = m->tiProbs[m->tiProbsIndex[chain][p->index]]; + + /* get rate multiplier */ + theRate = 1.0; + baseRate = GetRate (division, chain); + + /* get category rates */ + if (m->shape == NULL) + catRate = &theRate; + else + catRate = GetParamSubVals (m->shape, chain, state[chain]); + +# if defined (DEBUG_TIPROBS_STD) + /* find base frequencies */ + bs = GetParamStdStateFreqs (m->stateFreq, chain, state[chain]); +# endif + + /* find length */ + if (m->cppEvents != NULL) + { + length = GetParamSubVals (m->cppEvents, chain, state[chain])[p->index]; + } + else if (m->tk02BranchRates != NULL) + { + length = GetParamSubVals (m->tk02BranchRates, chain, state[chain])[p->index]; + } + else if (m->igrBranchRates != NULL) + { + length = GetParamSubVals (m->igrBranchRates, chain, state[chain])[p->index]; + } + else if (m->mixedBrchRates != NULL) + { + length = GetParamSubVals (m->mixedBrchRates, chain, state[chain])[p->index]; + } + else + length = p->length; + + /* numerical errors will ensue if we allow very large or very small branch lengths, which might + occur in relaxed clock models; an elegant solution would be to substitute the stationary + probs and initial probs but for now we truncate lengths at small or large values TODO */ + if (length > BRLENS_MAX) + length = BRLENS_MAX; + else if (length < BRLENS_MIN) + length = BRLENS_MIN; + + /* fill in values; this has to be done differently if state freqs are not equal */ + if (m->stateFreq->paramId == SYMPI_EQUAL) + { + /* equal state frequencies */ + /* fill in values for unordered characters */ + index = 0; +# if defined (DEBUG_TIPROBS_STD) + index3 = 0; +# endif + for (nStates=2; nStates<=10; nStates++) + { + if (m->isTiNeeded[nStates-2] == NO) + continue; + for (k=0; knumGammaCats; k++) + { + /* calculate probabilities */ + v = length*catRate[k]*baseRate; + eV1 = exp(-(nStates / (nStates - 1.0)) * v); + pChange = (CLFlt) ((1.0 / nStates) - ((1.0 / nStates) * eV1)); + pNoChange = (CLFlt) ((1.0 / nStates) + ((nStates - 1.0) / nStates) * eV1); + if (pChange<0.0) + pChange = (CLFlt) 0.0; + for (i=0; iisTiNeeded[9] == YES) + { + nStates = 3; + for (k=0; knumGammaCats; k++) + { + /* calculate probabilities */ + v = length * catRate[k] * baseRate; + eV1 = exp (-(3.0 / 4.0) * v); + eV2 = exp (-(9.0 / 4.0) * v); + + /* pij(0,0) */ + tiP[index] = (CLFlt) ((1.0 / 3.0) + (eV1 / 2.0) + (eV2 / 6.0)); + /* pij(0,1) = pij(1,0) */ + tiP[index+1] = tiP[index+3] = (CLFlt) ((1.0 / 3.0) - (eV2 / 3.0)); + /* pij(0,2) */ + tiP[index+2] = (CLFlt) ((1.0 / 3.0) - (eV1 / 2.0) + (eV2 / 6.0)); + /* pij(1,1) */ + tiP[index+4] = (CLFlt) ((1.0 / 3.0) + (2.0 * eV2 / 3.0)); + + /* fill in mirror part of matrix */ + index += 5; + index2 = index - 2; + for (i=0; i<4; i++) + tiP[index++] = tiP[index2--]; + + /* make sure no value is negative */ + for (i=index-(nStates*nStates); iisTiNeeded[10] == YES) + { + nStates = 4; + pi = 1.0 / 4.0; + root = sqrt (2.0); + f1 = root + 1.0; + f2 = root - 1.0; + + for (k=0; knumGammaCats; k++) + { + /* calculate probabilities */ + v = length * catRate[k] * baseRate; + eV1 = 1.0 / (exp ((4.0 * v) / 3.0)); + eV2 = exp ((2.0 * (root - 2.0) * v) / 3.0) / root; + eV3 = 1.0 / (root * exp ((2.0 * (root + 2.0) * v) / 3.0)); + + /* pij(0,0) */ + tiP[index] = (CLFlt) (pi * (1.0 + eV1 + (f1*eV2) + (f2*eV3))); + /* pij(0,1) = pij(1,0) */ + tiP[index+1] = tiP[index+4] = (CLFlt) (pi * (1.0 - eV1 + eV2 - eV3)); + /* pij(0,2) = tiP(1,3) */ + tiP[index+2] = tiP[index+7] = (CLFlt) (pi * (1.0 - eV1 - eV2 + eV3)); + /* pij(0,3) */ + tiP[index+3] = (CLFlt) (pi * (1.0 + eV1 - (f1*eV2) - (f2*eV3))); + /* pij(1,1) */ + tiP[index+5] = (CLFlt) (pi * (1.0 + eV1 + (f2*eV2) + (f1*eV3))); + /* pij(1,2) */ + tiP[index+6] = (CLFlt) (pi * (1.0 + eV1 - (f2*eV2) - (f1*eV3))); + + /* fill in mirror part of matrix */ + index += 8; + index2 = index - 1; + for (i=0; i<8; i++) + tiP[index++] = tiP[index2--]; + + /* make sure no value is negative */ + for (i=index-(nStates*nStates); iisTiNeeded[11] == YES) + { + nStates = 5; + pi = 1.0 / 5.0; + root = sqrt (5.0); + + f5 = root / 4.0; + f1 = 0.75 + f5;; + f2 = 1.25 + f5; + f3 = 1.25 - f5; + f4 = 0.75 - f5; + f5 = f5 * 2.0; + f6 = f5 + 0.5; + f7 = f5 - 0.5; + + for (k=0; knumGammaCats; k++) + { + /* calculate probabilities */ + v = length * catRate[k] * baseRate; + v *= 5.0 / 16.0; + + eV1 = exp ((root - 3.0) * v); + eV2 = exp (-(root + 3.0) * v); + eV3 = exp ((root - 5.0) * v); + eV4 = exp (-(root + 5.0) * v); + + /* pij(0,0) */ + tiP[index] = (CLFlt) (pi* (1.0 + (f1*eV3) + (f2*eV1) + (f3*eV2) + (f4*eV4))); + /* pij(0,1) = pij(1,0) */ + tiP[index+1] = tiP[index+5] = + (CLFlt) (pi*(1.0 - (eV3/2.0) + (f5*eV1) - (f5*eV2) - (eV4/2.0))); + /* pij(0,2) = pij(2,0) */ + tiP[index+2] = tiP[index+10] = (CLFlt) (pi*(1.0 - (f6*eV3) + (f7*eV4))); + /* pij(0,3) = pij(1,4) */ + tiP[index+3] = tiP[index+9] = + (CLFlt) (pi*(1.0 - (eV3/2.0) - (f5*eV1) + (f5*eV2) - (eV4/2.0))); + /* pij(0,4) */ + tiP[index+4] = (CLFlt) (pi*(1.0 + (f1*eV3) - (f2*eV1) - (f3*eV2) + (f4*eV4))); + /* pij(1,1) */ + tiP[index+6] = (CLFlt) (pi*(1.0 + (f4*eV3) + (f3*eV1) + (f2*eV2) + (f1*eV4))); + /* pij(1,2) = pij(2,1) */ + tiP[index+7] = tiP[index+11] = (CLFlt) (pi*(1.0 + (f7*eV3) - (f6*eV4))); + /* pij(1,3) */ + tiP[index+8] = (CLFlt) (pi*(1.0 + (f4*eV3) - (f3*eV1) - (f2*eV2) + (f1*eV4))); + /* pij(2,2) */ + tiP[index+12] = (CLFlt) (pi*(1.0 + (2.0*eV3) + (2.0*eV4))); + + /* fill in mirror part of matrix */ + index += 13; + index2 = index - 2; + for (i=0; i<12; i++) + tiP[index++] = tiP[index2--]; + + /* make sure no value is negative */ + for (i=index-(nStates*nStates); iisTiNeeded[12] == YES) + { + nStates = 6; + pi = 1.0 / 6.0; + root = sqrt (3.0); + + f4 = (3.0 / (2.0 * root)); + f1 = 1.0 + f4; + f2 = 1.0 - f4; + f3 = 0.5 + f4; + f4 = 0.5 - f4; + + for (k=0; knumGammaCats; k++) + { + /* calculate probabilities */ + v = length * catRate[k] * baseRate; + v /= 5.0; + + eV1 = exp (-9 * v); + eV2 = exp (-6 * v); + eV3 = exp (-3 * v); + eV4 = exp (3.0 * (root - 2.0) * v); + eV5 = exp (-3.0 * (root + 2.0) * v); + + /* pij(0,0) */ + tiP[index] = (CLFlt) (pi* (1.0 + (0.5*eV1) + eV2 + (1.5*eV3) + (f1*eV4) + (f2*eV5))); + /* pij(0,1) = pij(1,0) */ + tiP[index+1] = tiP[index+6] = (CLFlt) (pi*(1.0 - eV1 - eV2 + (f3*eV4) + (f4*eV5))); + /* pij(0,2) = pij(2,0) */ + tiP[index+2] = tiP[index+12] = + (CLFlt) (pi*(1.0 + (0.5*eV1) - eV2 - (1.5*eV3) + (0.5*eV4) + (0.5*eV5))); + /* pij(0,3) = pij(2,5) */ + tiP[index+3] = tiP[index+17] = + (CLFlt) (pi*(1.0 + (0.5*eV1) + eV2 - (1.5*eV3) - (0.5*eV4) - (0.5*eV5))); + /* pij(0,4) = pij(1,5) */ + tiP[index+4] = tiP[index+11] = (CLFlt) (pi*(1.0 - eV1 + eV2 - (f3*eV4) - (f4*eV5))); + /* pij(0,5) */ + tiP[index+5] = (CLFlt) (pi*(1.0 + (0.5*eV1) - eV2 + (1.5*eV3) - (f1*eV4) - (f2*eV5))); + /* pij(1,1) */ + tiP[index+7] = (CLFlt) (pi*(1.0 + (2.0*eV1) + eV2 + eV4 + eV5)); + /* pij(1,2) = pij(2,1) */ + tiP[index+8] = tiP[index+13] = (CLFlt) (pi*(1.0 - eV1 + eV2 - (f4*eV4) - (f3*eV5))); + /* pij(1,3) = pij(2,4) */ + tiP[index+9] = tiP[index+16] = (CLFlt) (pi*(1.0 - eV1 - eV2 + (f4*eV4) + (f3*eV5))); + /* pij(1,4) */ + tiP[index+10] = (CLFlt) (pi*(1.0 + (2.0*eV1) - eV2 - eV4 - eV5)); + /* pij(2,2) */ + tiP[index+14] = (CLFlt) (pi*(1.0 + (0.5*eV1) + eV2 + (1.5*eV3) + (f2*eV4) + (f1*eV5))); + /* pij(2,3) */ + tiP[index+15] = (CLFlt) (pi*(1.0 + (0.5*eV1) - eV2 + (1.5*eV3) - (f2*eV4) - (f1*eV5))); + + /* fill in mirror part of matrix */ + index += 18; + index2 = index - 1; + for (i=0; i<18; i++) + tiP[index++] = tiP[index2--]; + + /* make sure no value is negative */ + for (i=index-(nStates*nStates); iisTiNeeded[0] == YES) + { + /* find base frequencies */ + bs = GetParamStdStateFreqs (m->stateFreq, chain, state[chain]); + + /* cycle through beta and gamma cats */ + for (b=0; bnumBetaCats; b++) + { + mu = 1.0 / (2.0 * bs[0] * bs[1]); + for (k=0; knumGammaCats; k++) + { + /* calculate probabilities */ + v = length*catRate[k]*baseRate; + eV1 = exp(- mu * v); + tiP[index++] = (CLFlt) (bs[0] + (bs[1] * eV1)); + tiP[index++] = (CLFlt) (bs[1] - (bs[1] * eV1)); + tiP[index++] = (CLFlt) (bs[0] - (bs[0] * eV1)); + tiP[index++] = (CLFlt) (bs[1] + (bs[0] * eV1)); + } + /* update stationary state frequency pointer */ + bs += 2; + } + } + + /* now use general algorithm for the other cases */ + if (m->cijkLength > 0) + { + /* first update cijk if necessary */ + if (m->cijkLength > 0 && m->upDateCijk == YES) + { + if (UpDateCijk (division, chain) == ERROR) + return (ERROR); + } + + /* then get first set of eigenvalues */ + eigenValues = m->cijks[m->cijkIndex[chain]]; + + /* and cycle through the relevant characters */ + for (c=0; cstateFreq->nSympi; c++) + { + n = m->stateFreq->sympinStates[c]; + + /* fill in values */ + for (k=0; knumGammaCats; k++) + { + v = length * baseRate * catRate[k]; + cijk = eigenValues + (2 * n); + + for (i=0; iupDateCijk == YES); + + /* we should only go through here if we have cijk information available for the partition */ + if (m->cijkLength > 0) + { + /* flip cijk space */ + FlipCijkSpace(m, whichChain); + + /* figure out information on either omega values or rate values, if necessary */ + if (m->dataType == DNA || m->dataType == RNA) + { + if (m->nucModelId == NUCMODEL_CODON) /* we have a NY98 model */ + { + rateOmegaValues = GetParamVals(m->omega, whichChain, state[whichChain]); + if (m->numOmegaCats > 1) + omegaCatFreq = GetParamSubVals (m->omega, whichChain, state[whichChain]); + } + else if (m->nCijkParts > 1 && m->nucModelId == NUCMODEL_4BY4 && m->numModelStates == 8) /* we have a covarion model */ + rateOmegaValues = GetParamSubVals (m->shape, whichChain, state[whichChain]); /* with rate variation */ + } + else if (m->dataType == PROTEIN) + { + if (m->nCijkParts > 1) /* we have a covarion model */ + rateOmegaValues = GetParamSubVals (m->shape, whichChain, state[whichChain]); /* with rate variation */ + } +# if defined (BEAGLE_ENABLED) + else if (m->dataType == RESTRICTION){} +# endif + else if (m->dataType != STANDARD) + { + MrBayesPrint ("%s ERROR: Should not be updating cijks!\n", spacer); + return (ERROR); + } + + if (m->dataType == STANDARD) + { + /* set pointers and other stuff needed */ + numQAllocated = 1; + p = m->stateFreq; + eigenValues = m->cijks[m->cijkIndex[whichChain]]; + q[0] = AllocateSquareDoubleMatrix (10); + eigvecs = AllocateSquareDoubleMatrix (10); + inverseEigvecs = AllocateSquareDoubleMatrix (10); + Ceigvecs = AllocateSquareComplexMatrix (10); + CinverseEigvecs = AllocateSquareComplexMatrix (10); + bsBase = GetParamStdStateFreqs (m->stateFreq, whichChain, state[whichChain]); + + /* cycle over characters needing cijks */ + for (c=0; cnSympi; c++) + { + n = p->sympinStates[c]; + bs = bsBase + p->sympiBsIndex[c]; + cType = p->sympiCType[c]; + n3 = n * n * n; + eigvalsImag = eigenValues + n; + cijk = eigenValues + (2 * n); + if (SetStdQMatrix (q[0], n, bs, cType) == ERROR) + return (ERROR); + isComplex = GetEigens (n, q[0], eigenValues, eigvalsImag, eigvecs, inverseEigvecs, Ceigvecs, CinverseEigvecs); + if (isComplex == NO) + { + CalcCijk (n, cijk, eigvecs, inverseEigvecs); + } + else + { + if (isComplex == YES) + MrBayesPrint ("%s ERROR: Complex eigenvalues found!\n", spacer); + else + MrBayesPrint ("%s ERROR: Computing eigenvalues problem!\n", spacer); + goto errorExit; + } + eigenValues += (n3 + (2 * n)); + } + } + else + { + /* all other data types */ + numQAllocated = m->nCijkParts; + sizeOfSingleCijk = m->cijkLength / m->nCijkParts; + n = m->numModelStates; + n3 = n * n * n; +# if defined (BEAGLE_ENABLED) + if (m->useBeagle == YES) + eigenValues = m->cijks[m->cijkIndex[whichChain]/m->nCijkParts]; + else + eigenValues = m->cijks[m->cijkIndex[whichChain]]; +# else + eigenValues = m->cijks[m->cijkIndex[whichChain]]; +# endif + eigvalsImag = eigenValues + n; + cijk = eigenValues + (2 * n); + for (k=0; kstateFreq, whichChain, state[whichChain]); + + if (m->nCijkParts == 1) + { + if (m->dataType == DNA || m->dataType == RNA) + { + if (m->nucModelId == NUCMODEL_CODON) + { + if (SetNucQMatrix (q[0], n, whichChain, whichPart, rateOmegaValues[0], &rA, &rS) == ERROR) + goto errorExit; + } + else + { + if (SetNucQMatrix (q[0], n, whichChain, whichPart, 1.0, &rA, &rS) == ERROR) + goto errorExit; + } + } +# if defined (BEAGLE_ENABLED) + else if (m->dataType == RESTRICTION) + { + SetBinaryQMatrix (q[0], whichChain, whichPart); + } +# endif + else + { + if (SetProteinQMatrix (q[0], n, whichChain, whichPart, 1.0) == ERROR) + goto errorExit; + } + isComplex = GetEigens (n, q[0], eigenValues, eigvalsImag, eigvecs, inverseEigvecs, Ceigvecs, CinverseEigvecs); +# if defined (BEAGLE_ENABLED) + if (isComplex == YES) + { + if (isComplex == YES) + MrBayesPrint ("%s ERROR: Complex eigenvalues found!\n", spacer); + else + MrBayesPrint ("%s ERROR: Computing eigenvalues problem!\n", spacer); + goto errorExit; + } + if (m->useBeagle == YES) + { + /* TODO: only allocate this space once at initialization */ + beagleEigvecs = (double*) SafeCalloc (2*n*n, sizeof(double)); + beagleInverseEigvecs = beagleEigvecs + n*n; + for (i=k=0; ibeagleInstance, + m->cijkIndex[whichChain], + beagleEigvecs, + beagleInverseEigvecs, + eigenValues); + free(beagleEigvecs); + } + else + { + CalcCijk (n, cijk, eigvecs, inverseEigvecs); + } +# else + if (isComplex == NO) + { + CalcCijk (n, cijk, eigvecs, inverseEigvecs); + } + else + { + MrBayesPrint ("%s ERROR: Complex eigenvalues found!\n", spacer); + goto errorExit; + } +# endif + } + else + { + /* Here, we calculate the rate matrices (Q) for various nucleotide and amino acid + data models. Usually, when the rate matrix is set in SetNucQMatrix, it is scaled + such that the average substitution rate is one. However, there is a complication + for positive selection models using codon rate matrices. First, we have more than + one matrix; in fact, we have as many rate matrices as there are omega values. Second, + the mean substitution rate still has to be one. And third, we want the synonymous + rate to be the same across the rate matrices. For positive selection models, the Q + matrix comes out of SetNucQMatrix unscaled. Once we have all m->nCijkParts rate + matrices, we then scale again, this time to ensure that the mean substitution rate is one. */ + + /* First, calculate rate matrices for each category: */ + posScaler = 0.0; + for (k=0; knCijkParts; k++) + { + if (m->dataType == DNA || m->dataType == RNA) + { + if (SetNucQMatrix (q[k], n, whichChain, whichPart, rateOmegaValues[k], &rA, &rS) == ERROR) + goto errorExit; + } + else + { + if (SetProteinQMatrix (q[k], n, whichChain, whichPart, rateOmegaValues[k]) == ERROR) + goto errorExit; + } + if (m->nucModelId == NUCMODEL_CODON && m->numOmegaCats > 1) + posScaler += omegaCatFreq[k] * (rS + rA); + } + + /* Then rescale the rate matrices, if this is a positive selection model: */ + if (m->nucModelId == NUCMODEL_CODON && m->numOmegaCats > 1) + { + posScaler = 1.0 / posScaler; + for (k=0; knCijkParts; k++) + { + for (i=0; iuseBeagle == YES) + { + /* TODO: only allocate this space once at initialization */ + beagleEigvecs = (double*) SafeCalloc (2*n*n, sizeof(double)); + beagleInverseEigvecs = beagleEigvecs + n*n; + } +# endif + for (k=0; knCijkParts; k++) + { + isComplex = GetEigens (n, q[k], eigenValues, eigvalsImag, eigvecs, inverseEigvecs, Ceigvecs, CinverseEigvecs); +# if defined (BEAGLE_ENABLED) + if (isComplex == YES) + { + if (isComplex == YES) + MrBayesPrint ("%s ERROR: Complex eigenvalues found!\n", spacer); + else + MrBayesPrint ("%s ERROR: Computing eigenvalues problem!\n", spacer); + goto errorExit; + } + if (m->useBeagle == YES) + { + for (i=u=0; ibeagleInstance, + m->cijkIndex[whichChain] + k, + beagleEigvecs, + beagleInverseEigvecs, + eigenValues); + } + else + { + CalcCijk (n, cijk, eigvecs, inverseEigvecs); + } +# else + if (isComplex == NO) + { + CalcCijk (n, cijk, eigvecs, inverseEigvecs); + } + else + { + MrBayesPrint ("%s ERROR: Complex eigenvalues found!\n", spacer); + goto errorExit; + } +# endif + /* shift pointers */ + eigenValues += sizeOfSingleCijk; + eigvalsImag += sizeOfSingleCijk; + cijk += sizeOfSingleCijk; + } +# if defined (BEAGLE_ENABLED) + free(beagleEigvecs); +# endif + } + } + + for (k=0; kuseBeagle == NO) + return ERROR; + + /* at least one eigen buffer needed */ + if (m->nCijkParts == 0) + m->nCijkParts = 1; + + /* allocate memory used by beagle */ + m->logLikelihoods = (MrBFlt *) SafeCalloc ((numLocalChains)*m->numChars, sizeof(MrBFlt)); + m->inRates = (MrBFlt *) SafeCalloc (m->numGammaCats, sizeof(MrBFlt)); + m->branchLengths = (MrBFlt *) SafeCalloc (2*numLocalTaxa, sizeof(MrBFlt)); + m->tiProbIndices = (int *) SafeCalloc (2*numLocalTaxa, sizeof(int)); + m->inWeights = (MrBFlt *) SafeCalloc (m->numGammaCats*m->nCijkParts, sizeof(MrBFlt)); + m->bufferIndices = (int *) SafeCalloc (m->nCijkParts, sizeof(int)); + m->eigenIndices = (int *) SafeCalloc (m->nCijkParts, sizeof(int)); + m->childBufferIndices = (int *) SafeCalloc (m->nCijkParts, sizeof(int)); + m->childTiProbIndices = (int *) SafeCalloc (m->nCijkParts, sizeof(int)); + m->cumulativeScaleIndices = (int *) SafeCalloc (m->nCijkParts, sizeof(int)); + + numPartAmbigTips = 0; + if (m->numStates != m->numModelStates) + numPartAmbigTips = numLocalTaxa; + else + { + for (i=0; iisPartAmbig[i] == YES) + numPartAmbigTips++; + } + } + + if (beagleResourceNumber >= 0 && beagleResourceNumber != 99) + { + resource = beagleResourceNumber; + beagleResourceCount = 1; + } + else if (beagleResourceCount != 0) + { + resource = beagleResource[beagleInstanceCount % beagleResourceCount]; + } + preferedFlags = beagleFlags; + + requiredFlags = 0L; + + if (beagleScalingScheme == MB_BEAGLE_SCALE_ALWAYS) + requiredFlags |= BEAGLE_FLAG_SCALERS_LOG; //BEAGLE_FLAG_SCALERS_RAW; + + /* TODO: allocate fewer buffers when nCijkParts > 1 */ + /* create beagle instance */ + m->beagleInstance = beagleCreateInstance(numLocalTaxa, + m->numCondLikes * m->nCijkParts, + numLocalTaxa - numPartAmbigTips, + m->numModelStates, + m->numChars, + (numLocalChains + 1) * m->nCijkParts, + m->numTiProbs*m->nCijkParts, + m->numGammaCats, + m->numScalers * m->nCijkParts, + (beagleResourceCount == 0 ? NULL : &resource), + (beagleResourceCount == 0 ? 0 : 1), + preferedFlags, + requiredFlags, + &details); + + if (m->beagleInstance < 0) + { + MrBayesPrint ("%s Failed to start BEAGLE instance\n", spacer); + return (ERROR); + } + else + { + MrBayesPrint ("\n%s Using BEAGLE resource %i for division %d:", spacer, details.resourceNumber, division+1); +# if defined (THREADS_ENABLED) + MrBayesPrint (" (%s)\n", (tryToUseThreads ? "threaded" : "non-threaded")); +# else + MrBayesPrint (" (non-threaded)\n"); +# endif + MrBayesPrint ("%s Rsrc Name : %s\n", spacer, details.resourceName); + MrBayesPrint ("%s Impl Name : %s\n", spacer, details.implName); + MrBayesPrint ("%s Flags:", spacer); + BeaglePrintFlags(details.flags); + MrBayesPrint ("\n"); + beagleInstanceCount++; + } + + /* initialize tip data */ + inStates = (int *) SafeMalloc (m->numChars * sizeof(int)); + if (!inStates) + return ERROR; + inPartials = (double *) SafeMalloc (m->numChars * m->numModelStates * sizeof(double)); + if (!inPartials) + return ERROR; + for (i=0; iisPartAmbig[i] == NO) + { + charBits = m->parsSets[i]; + for (c=0; cnumChars; c++) + { + for (s=j=0; snumModelStates; s++) + { + if (IsBitSet(s, charBits)) + { + inStates[c] = s; + j++; + } + } + if (j == m->numModelStates) + inStates[c] = j; + else + assert (j==1); + charBits += m->nParsIntsPerSite; + } + beagleSetTipStates(m->beagleInstance, i, inStates); + } + else /* if (m->isPartAmbig == YES) */ + { + k = 0; + charBits = m->parsSets[i]; + for (c=0; cnumChars; c++) + { + for (s=0; snumModelStates; s++) + { + if (IsBitSet(s%m->numStates, charBits)) + inPartials[k++] = 1.0; + else + inPartials[k++] = 0.0; + } + charBits += m->nParsIntsPerSite; + } + beagleSetTipPartials(m->beagleInstance, i, inPartials); + } + } + free (inStates); + free (inPartials); + + return NO_ERROR; +} + + +/*----------------------------------------------------------------- +| +| LaunchBEAGLELogLikeForDivision: calculate the log likelihood +| of the new state of the chain for a single division +| +-----------------------------------------------------------------*/ +void LaunchBEAGLELogLikeForDivision(int chain, int d, ModelInfo* m, Tree* tree, MrBFlt* lnL) +{ + int i, rescaleFreqNew; + int *isScalerNode; + TreeNode *p; + + if (beagleScalingScheme == MB_BEAGLE_SCALE_ALWAYS) + { + +# if defined (DEBUG_MB_BEAGLE_FLOW) + MrBayesPrint ("ALWAYS RESCALING\n"); +# endif + /* Flip and copy or reset site scalers */ + FlipSiteScalerSpace(m, chain); + if (m->upDateAll == YES) { + for (i=0; inCijkParts; i++) { + beagleResetScaleFactors(m->beagleInstance, m->siteScalerIndex[chain] + i); + } + } + else + CopySiteScalers(m, chain); + + TreeTiProbs_Beagle(tree, d, chain); + TreeCondLikes_Beagle(tree, d, chain); + TreeLikelihood_Beagle(tree, d, chain, lnL, (chainId[chain] % chainParams.numChains)); + } + else + { /* MB_BEAGLE_SCALE_DYNAMIC */ + + /* This flag is only valid within this block */ + m->rescaleBeagleAll = NO; + TreeTiProbs_Beagle(tree, d, chain); + if (m->succesCount[chain] > 1000) + { + m->succesCount[chain] = 10; + m->rescaleFreq[chain]++; /* increase rescaleFreq independent of whether we accept or reject new state */ + m->rescaleFreqOld = rescaleFreqNew = m->rescaleFreq[chain]; + for (i=0; inIntNodes; i++) + { + p = tree->intDownPass[i]; + if (p->upDateCl == YES) { + /* flip to the new workspace since TreeCondLikes_Beagle_Rescale_All() does not do it for + (p->upDateCl == YES) since it assumes that TreeCondLikes_Beagle_No_Rescale() did it */ + FlipCondLikeSpace (m, chain, p->index); + } + } + goto rescale_all; + } + + if (beagleScalingFrequency != 0 && + m->beagleComputeCount[chain] % (beagleScalingFrequency) == 0) + { + m->rescaleFreqOld = rescaleFreqNew = m->rescaleFreq[chain]; + for (i=0; inIntNodes; i++) + { + p = tree->intDownPass[i]; + if (p->upDateCl == YES) { + /* flip to the new workspace since TreeCondLikes_Beagle_Rescale_All() does not do it for + (p->upDateCl == YES) since it assumes that TreeCondLikes_Beagle_No_Rescale() did it */ + FlipCondLikeSpace (m, chain, p->index); + } + } + goto rescale_all; + } + + TreeCondLikes_Beagle_No_Rescale(tree, d, chain); + + /* Check if likelihood is valid */ + if (TreeLikelihood_Beagle(tree, d, chain, lnL, (chainId[chain] % chainParams.numChains)) == BEAGLE_ERROR_FLOATING_POINT) + { + m->rescaleFreqOld = rescaleFreqNew = m->rescaleFreq[chain]; + if (rescaleFreqNew > 1 && m->succesCount[chain] < 40) + { + if (m->succesCount[chain] < 10) + { + if (m->succesCount[chain] < 4) + { + rescaleFreqNew -= rescaleFreqNew >> 3; /* <== we cut up to 12,5% of rescaleFreq */ + if (m->succesCount[chain] < 2) + { + rescaleFreqNew -= rescaleFreqNew >> 3; + /* to avoid situation when we may stack at high rescaleFreq when new states do not get accepted because of low liklihood but there proposed frequency is high we reduce rescaleFreq even if we reject the last move*/ + /* basically the higher probability of proposing of low liklihood state which needs smaller rescaleFreq would lead to higher probability of hitting this code which should reduce rescaleFreqOld thus reduce further probability of hitting this code */ + /* at some point this negative feedback mechanism should get in balance with the mechanism of periodically increasing rescaleFreq when long sequence of successes is achieved*/ + m->rescaleFreqOld -= m->rescaleFreqOld >> 3; + } + m->rescaleFreqOld -= m->rescaleFreqOld >> 3; + m->rescaleFreqOld--; + m->rescaleFreqOld = (m->rescaleFreqOld ? m->rescaleFreqOld:1); + m->recalculateScalers = YES; + recalcScalers = YES; + } + } + rescaleFreqNew--; + rescaleFreqNew = (rescaleFreqNew ? rescaleFreqNew : 1); + } + m->succesCount[chain] = 0; + rescale_all: +# if defined (DEBUG_MB_BEAGLE_FLOW) + MrBayesPrint ("NUMERICAL RESCALING\n"); +# endif + + m->rescaleBeagleAll = YES; + FlipSiteScalerSpace(m, chain); + isScalerNode = m->isScalerNode[chain]; + while_loop: + ResetScalersPartition (isScalerNode, tree, rescaleFreqNew); + for (i=0; inCijkParts; i++) + { + beagleResetScaleFactors(m->beagleInstance, m->siteScalerIndex[chain] + i); + } + + TreeCondLikes_Beagle_Rescale_All (tree, d, chain); + if (TreeLikelihood_Beagle(tree, d, chain, lnL, (chainId[chain] % chainParams.numChains)) == BEAGLE_ERROR_FLOATING_POINT) + { + if (rescaleFreqNew > 1) + { + /* Swap back scalers which were swapped in TreeCondLikes_Beagle_Rescale_All() */ + for (i=0; inIntNodes; i++) + { + p = tree->intDownPass[i]; + if (isScalerNode[p->index] == YES) + FlipNodeScalerSpace (m, chain, p->index); + } + rescaleFreqNew -= rescaleFreqNew >> 3; /* <== we cut up to 12,5% of rescaleFreq */ + rescaleFreqNew--; /* we cut extra 1 of rescaleFreq */ + goto while_loop; + } + } + m->rescaleFreq[chain] = rescaleFreqNew; + } + } + + /* Count number of evaluations */ + m->beagleComputeCount[chain]++; +} + + +void recalculateScalers(int chain) +{ + int i, d, rescaleFreqNew; + int *isScalerNode; + ModelInfo* m; + Tree *tree; + + for (d=0; drecalculateScalers == YES) + { + m->recalculateScalers = NO; + tree = GetTree(m->brlens, chain, state[chain]); + + rescaleFreqNew = m->rescaleFreq[chain]; + isScalerNode = m->isScalerNode[chain]; + + ResetScalersPartition (isScalerNode, tree, rescaleFreqNew); + for (i=0; inCijkParts; i++) { + beagleResetScaleFactors(m->beagleInstance, m->siteScalerIndex[chain] + i); + } + /* here it does not matter if we flip CL space or not */ + TreeCondLikes_Beagle_Rescale_All (tree, d, chain); + } + } +} + + +void BeagleAddGPUDevicesToList(int **newResourceList, int *beagleResourceCount) +{ + BeagleResourceList* beagleResources; + int i, gpuCount; + + beagleResources = beagleGetResourceList(); + if (*newResourceList == NULL) { + *newResourceList = (int*) SafeCalloc(sizeof(int), beagleResources->length); + } + gpuCount = 0; + for (i = 0; i < beagleResources->length; i++) { + if (beagleResources->list[i].supportFlags & BEAGLE_FLAG_PROCESSOR_GPU) { + (*newResourceList)[gpuCount] = i; + gpuCount++; + } + } + *beagleResourceCount = gpuCount; +} + + +void BeagleRemoveGPUDevicesFromList(int **beagleResource, int *beagleResourceCount) +{ + *beagleResourceCount = 0; +} + + +/*----- +| +| BeaglePrintResources: outputs the available BEAGLE resources +| +----------*/ +void BeaglePrintResources() +{ + int i; + BeagleResourceList* beagleResources; + + beagleResources = beagleGetResourceList(); + MrBayesPrint ("%s Available resources reported by beagle library:\n", spacer); + for (i=0; ilength; i++) + { + MrBayesPrint ("\tResource %i:\n", i); + MrBayesPrint ("\tName: %s\n", beagleResources->list[i].name); + if (i > 0) + { + MrBayesPrint ("\tDesc: %s\n", beagleResources->list[i].description); + } + MrBayesPrint ("\tFlags:"); + BeaglePrintFlags(beagleResources->list[i].supportFlags); + MrBayesPrint ("\n\n"); + } + MrBayesPrint ("%s BEAGLE vesion: %s\n", spacer, beagleGetVersion()); +} + + +int BeagleCheckFlagCompatability(long inFlags) +{ + if (inFlags & BEAGLE_FLAG_PROCESSOR_GPU) { + if (inFlags & BEAGLE_FLAG_VECTOR_SSE) { + MrBayesPrint ("%s Simultaneous use of GPU and SSE not available.\n", spacer); + return NO; + } + if (inFlags & BEAGLE_FLAG_THREADING_OPENMP) { + MrBayesPrint ("%s Simultaneous use of GPU and OpenMP not available.\n", spacer); + return NO; + } + } + + return YES; +} + + +/*------------------- +| +| BeaglePrintFlags: outputs beagle instance details +| +______________________*/ +void BeaglePrintFlags(long inFlags) +{ + int i, k; + char *names[] = { "PROCESSOR_CPU", + "PROCESSOR_GPU", + "PROCESSOR_FPGA", + "PROCESSOR_CELL", + "PRECISION_DOUBLE", + "PRECISION_SINGLE", + "COMPUTATION_ASYNCH", + "COMPUTATION_SYNCH", + "EIGEN_REAL", + "EIGEN_COMPLEX", + "SCALING_MANUAL", + "SCALING_AUTO", + "SCALING_ALWAYS", + "SCALING_DYNAMIC", + "SCALERS_RAW", + "SCALERS_LOG", + "VECTOR_NONE", + "VECTOR_SSE", + "THREADING_NONE", + "THREADING_OPENMP" + }; + long flags[] = { BEAGLE_FLAG_PROCESSOR_CPU, + BEAGLE_FLAG_PROCESSOR_GPU, + BEAGLE_FLAG_PROCESSOR_FPGA, + BEAGLE_FLAG_PROCESSOR_CELL, + BEAGLE_FLAG_PRECISION_DOUBLE, + BEAGLE_FLAG_PRECISION_SINGLE, + BEAGLE_FLAG_COMPUTATION_ASYNCH, + BEAGLE_FLAG_COMPUTATION_SYNCH, + BEAGLE_FLAG_EIGEN_REAL, + BEAGLE_FLAG_EIGEN_COMPLEX, + BEAGLE_FLAG_SCALING_MANUAL, + BEAGLE_FLAG_SCALING_AUTO, + BEAGLE_FLAG_SCALING_ALWAYS, + BEAGLE_FLAG_SCALING_DYNAMIC, + BEAGLE_FLAG_SCALERS_RAW, + BEAGLE_FLAG_SCALERS_LOG, + BEAGLE_FLAG_VECTOR_NONE, + BEAGLE_FLAG_VECTOR_SSE, + BEAGLE_FLAG_THREADING_NONE, + BEAGLE_FLAG_THREADING_OPENMP + }; + + for (i=k=0; i<20; i++) + { + if (inFlags & flags[i]) + { + if (k%4 == 0 && k > 0) + MrBayesPrint ("\n%s ", spacer); + MrBayesPrint (" %s", names[i]); + k++; + } + } +} + + +#if defined(THREADS_ENABLED) +void *LaunchThreadLogLikeForDivision(void *arguments) +{ + int d, chain; + MrBFlt *lnL; + LaunchStruct* launchStruct; + + launchStruct = (LaunchStruct*) arguments; + chain = launchStruct->chain; + d = launchStruct->division; + lnL = launchStruct->lnL; + LaunchLogLikeForDivision(chain, d, lnL); + return 0; +} + + +MrBFlt LaunchLogLikeForAllDivisionsInParallel(int chain) +{ + int d; + int threadError; + pthread_t* threads; + LaunchStruct* launchValues; + int* wait; + ModelInfo* m; + MrBFlt chainLnLike; + + chainLnLike = 0.0; + + /* TODO Initialize only once */ + threads = (pthread_t*) SafeMalloc(sizeof(pthread_t) * numCurrentDivisions); + launchValues = (LaunchStruct*) SafeMalloc(sizeof(LaunchStruct) * numCurrentDivisions); + wait = (int*) SafeMalloc(sizeof(int) * numCurrentDivisions); + + /* Cycle through divisions and recalculate tis and cond likes as necessary. */ + /* Code below does not try to avoid recalculating ti probs for divisions */ + /* that could share ti probs with other divisions. */ + for (d=0; dupDateCl == YES) + { + launchValues[d].chain = chain; + launchValues[d].division = d; + launchValues[d].lnL = &(m->lnLike[2*chain + state[chain]]); + /* Fork */ + threadError = pthread_create(&threads[d], NULL, + LaunchThreadLogLikeForDivision, + (void*) &launchValues[d]); + assert (0 == threadError); + wait[d] = 1; + } + else + { + wait[d] = 0; + } + } + + for (d = 0; d < numCurrentDivisions; d++) + { + /* Join */ + if (wait[d]) + { + threadError = pthread_join(threads[d], NULL); + assert (0 == threadError); + } + m = &modelSettings[d]; + chainLnLike += m->lnLike[2*chain + state[chain]]; + } + + /* TODO Free these once */ + free(threads); + free(launchValues); + free(wait); + + return chainLnLike; +} +#endif + + +int ScheduleLogLikeForAllDivisions() +{ + int d; + int divisionsToLaunch = 0; + ModelInfo *m; + + if (numCurrentDivisions < 2) { + return 0; + } + + for (d=0; dupDateCl == YES) { + divisionsToLaunch++; + } + } + + return (divisionsToLaunch > 1); +} + + +/*---------------------------------------------------------------- + | + | TreeCondLikes_Beagle: This routine updates all conditional + | (partial) likelihoods of a beagle instance while doing no rescaling. + | That potentialy can make final liklihood bad then calculation with rescaling needs to be done. + | + -----------------------------------------------------------------*/ +int TreeCondLikes_Beagle_No_Rescale (Tree *t, int division, int chain) +{ + int i, j, cumulativeScaleIndex; + BeagleOperation operations; + TreeNode *p; + ModelInfo *m; + unsigned chil1Step, chil2Step; + int *isScalerNode; + + m = &modelSettings[division]; + isScalerNode = m->isScalerNode[chain]; + + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + + /* check if conditional likelihoods need updating */ + if (p->upDateCl == YES) + { + /* flip to the new workspace */ + FlipCondLikeSpace (m, chain, p->index); + + /* update conditional likelihoods */ + operations.destinationPartials = m->condLikeIndex[chain][p->index ]; + operations.child1Partials = m->condLikeIndex[chain][p->left->index ]; + operations.child1TransitionMatrix = m->tiProbsIndex [chain][p->left->index ]; + operations.child2Partials = m->condLikeIndex[chain][p->right->index]; + operations.child2TransitionMatrix = m->tiProbsIndex [chain][p->right->index]; + + /* All partials for tips are the same across omega categories, thus we are doing the following two if statments.*/ + if (p->left->left== NULL) + chil1Step=0; + else + chil1Step=1; + + if (p->right->left== NULL) + chil2Step=0; + else + chil2Step=1; + + operations.destinationScaleWrite = BEAGLE_OP_NONE; + cumulativeScaleIndex = BEAGLE_OP_NONE; + if (isScalerNode[p->index] == YES) + { + operations.destinationScaleRead = m->nodeScalerIndex[chain][p->index]; + } + else + { + operations.destinationScaleRead = BEAGLE_OP_NONE; + } + + for (j=0; jnCijkParts; j++) + { + beagleUpdatePartials(m->beagleInstance, + &operations, + 1, + cumulativeScaleIndex); + + operations.destinationPartials++; + operations.child1Partials+=chil1Step; + operations.child1TransitionMatrix++; + operations.child2Partials+=chil2Step; + operations.child2TransitionMatrix++; + + if (isScalerNode[p->index] == YES) + operations.destinationScaleRead++; + } + } + } + + return NO_ERROR; +} + + +/*---------------------------------------------------------------- + | + | TreeCondLikes_Beagle: This routine updates all conditional + | (partial) likelihoods of a beagle instance while rescaling at every node. + | Note: all nodes get recalculated, not only tached by move. + | + -----------------------------------------------------------------*/ +int TreeCondLikes_Beagle_Rescale_All (Tree *t, int division, int chain) +{ + int i, j, cumulativeScaleIndex; + BeagleOperation operations; + TreeNode *p; + ModelInfo *m; + unsigned chil1Step, chil2Step; + int *isScalerNode; + + m = &modelSettings[division]; + isScalerNode = m->isScalerNode[chain]; + + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + + if (p->upDateCl == NO) { + //p->upDateCl = YES; + /* flip to the new workspace */ + FlipCondLikeSpace (m, chain, p->index); + } + + /* update conditional likelihoods */ + operations.destinationPartials = m->condLikeIndex[chain][p->index ]; + operations.child1Partials = m->condLikeIndex[chain][p->left->index ]; + operations.child1TransitionMatrix = m->tiProbsIndex [chain][p->left->index ]; + operations.child2Partials = m->condLikeIndex[chain][p->right->index]; + operations.child2TransitionMatrix = m->tiProbsIndex [chain][p->right->index]; + + /* All partials for tips are the same across omega catigoris, thus we are doing the following two if statments.*/ + if (p->left->left== NULL) + chil1Step=0; + else + chil1Step=1; + + if (p->right->left== NULL) + chil2Step=0; + else + chil2Step=1; + + operations.destinationScaleRead = BEAGLE_OP_NONE; + if (isScalerNode[p->index] == YES) + { + FlipNodeScalerSpace (m, chain, p->index); + operations.destinationScaleWrite = m->nodeScalerIndex[chain][p->index]; + cumulativeScaleIndex = m->siteScalerIndex[chain]; + } + else + { + operations.destinationScaleWrite = BEAGLE_OP_NONE; + cumulativeScaleIndex = BEAGLE_OP_NONE; + } + + + + for (j=0; jnCijkParts; j++) + { + beagleUpdatePartials(m->beagleInstance, + &operations, + 1, + cumulativeScaleIndex); + + operations.destinationPartials++; + operations.child1Partials+=chil1Step; + operations.child1TransitionMatrix++; + operations.child2Partials+=chil2Step; + operations.child2TransitionMatrix++; + + if (isScalerNode[p->index] == YES) { + operations.destinationScaleWrite++; + cumulativeScaleIndex++; + } + + } + } + + return NO_ERROR; +} + + +/*---------------------------------------------------------------- +| +| TreeCondLikes_Beagle: This routine updates all conditional +| (partial) likelihoods of a beagle instance. +| +-----------------------------------------------------------------*/ +int TreeCondLikes_Beagle (Tree *t, int division, int chain) +{ + int i, j, destinationScaleRead, cumulativeScaleIndex; + BeagleOperation operations; + TreeNode *p; + ModelInfo *m; + unsigned chil1Step, chil2Step; + + m = &modelSettings[division]; + + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + + /* check if conditional likelihoods need updating */ + if (p->upDateCl == YES) + { + /* remove old scalers */ + if (m->scalersSet[chain][p->index] == YES && m->upDateAll == NO) + { + destinationScaleRead = m->nodeScalerIndex[chain][p->index]; + cumulativeScaleIndex = m->siteScalerIndex[chain]; + for (j=0; jnCijkParts; j++) + { + beagleRemoveScaleFactors(m->beagleInstance, + &destinationScaleRead, + 1, + cumulativeScaleIndex); + destinationScaleRead++; + cumulativeScaleIndex++; + } + } + + /* flip to the new workspace */ + FlipCondLikeSpace (m, chain, p->index); + FlipNodeScalerSpace (m, chain, p->index); + m->scalersSet[chain][p->index] = NO; + + /* update conditional likelihoods */ + operations.destinationPartials = m->condLikeIndex[chain][p->index ]; + operations.child1Partials = m->condLikeIndex[chain][p->left->index ]; + operations.child1TransitionMatrix = m->tiProbsIndex [chain][p->left->index ]; + operations.child2Partials = m->condLikeIndex[chain][p->right->index]; + operations.child2TransitionMatrix = m->tiProbsIndex [chain][p->right->index]; + + /* All partials for tips are the same across omega catigoris, thus we are doing the following two if statments.*/ + if (p->left->left== NULL && p->left->right== NULL) + chil1Step=0; + else + chil1Step=1; + + if (p->right->left== NULL && p->right->right== NULL) + chil2Step=0; + else + chil2Step=1; + + if (p->scalerNode == YES) + { + m->scalersSet[chain][p->index] = YES; + operations.destinationScaleWrite = m->nodeScalerIndex[chain][p->index]; + cumulativeScaleIndex = m->siteScalerIndex[chain]; + } + else + { + operations.destinationScaleWrite = BEAGLE_OP_NONE; + cumulativeScaleIndex = BEAGLE_OP_NONE; + } + operations.destinationScaleRead = BEAGLE_OP_NONE; + + for (j=0; jnCijkParts; j++) + { + beagleUpdatePartials(m->beagleInstance, + &operations, + 1, + cumulativeScaleIndex); + + operations.destinationPartials++; + operations.child1Partials+=chil1Step; + operations.child1TransitionMatrix++; + operations.child2Partials+=chil2Step; + operations.child2TransitionMatrix++; + if (p->scalerNode == YES) + { + operations.destinationScaleWrite++; + cumulativeScaleIndex++; + } + } + + } + } /* end of for */ + + return NO_ERROR; +} + + +/**--------------------------------------------------------------------------- +| +| TreeLikelihood_Beagle: Accumulate the log likelihoods calculated by Beagle +| at the root. +| +---------------------------------------- -------------------------------------*/ +int TreeLikelihood_Beagle (Tree *t, int division, int chain, MrBFlt *lnL, int whichSitePats) +{ + int i, j, c = 0, nStates, hasPInvar, beagleReturn; + MrBFlt *swr, s01, s10, probOn, probOff, covBF[40], pInvar=0.0, *bs, freq, likeI, lnLikeI, diff, *omegaCatFreq; + CLFlt *clInvar=NULL, *nSitesOfPat; + double *nSitesOfPat_Beagle; + TreeNode *p; + ModelInfo *m; + double pUnobserved; + +# if defined (MB_PRINT_DYNAMIC_RESCALE_FAIL_STAT) + static unsigned countBeagleDynamicFail=0; + static unsigned countALL=0; +# endif + + /* find root node */ + p = t->root->left; + + /* find model settings and nStates, pInvar, invar cond likes */ + m = &modelSettings[division]; + + nStates = m->numModelStates; + if (m->pInvar == NULL) + { + hasPInvar = NO; + } + else + { + hasPInvar = YES; + pInvar = *(GetParamVals (m->pInvar, chain, state[chain])); + clInvar = m->invCondLikes; + } + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* if covarion model, adjust base frequencies */ + if (m->switchRates != NULL) + { + /* find the stationary frequencies */ + swr = GetParamVals(m->switchRates, chain, state[chain]); + s01 = swr[0]; + s10 = swr[1]; + probOn = s01 / (s01 + s10); + probOff = 1.0 - probOn; + + /* now adjust the base frequencies; on-state stored first in cond likes */ + for (j=0; jupDateCijk == YES) + { + /* set base frequencies in BEAGLE instance */ + for (i=0; inCijkParts; i++) + beagleSetStateFrequencies(m->beagleInstance, + m->cijkIndex[chain] + i, + bs); + } + + /* find category frequencies */ + if (hasPInvar == NO) + freq = 1.0 / m->numGammaCats; + else + freq = (1.0 - pInvar) / m->numGammaCats; + + /* TODO: cat weights only need to be set when they change */ + /* set category frequencies in beagle instance */ + if (m->numOmegaCats > 1) + { + omegaCatFreq = GetParamSubVals(m->omega, chain, state[chain]); + for (i=0; inCijkParts; i++) + { + for (j=0; jnumGammaCats; j++) + m->inWeights[j] = freq * omegaCatFreq[i]; + beagleSetCategoryWeights(m->beagleInstance, + m->cijkIndex[chain] + i, + m->inWeights); + } + } + else if (hasPInvar == YES) + { + for (i=0; inumGammaCats; i++) + m->inWeights[i] = freq; + beagleSetCategoryWeights(m->beagleInstance, + m->cijkIndex[chain], + m->inWeights); + } + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (whichSitePats*numCompressedChars) + m->compCharStart; + + /* TODO: pattern weights only need to be set when they change */ + /* set pattern weights in beagle instance if using dynamic reweighting */ + if (chainParams.weightScheme[0] + chainParams.weightScheme[1] > ETA) + { + nSitesOfPat_Beagle = (double *) SafeMalloc (m->numChars * sizeof(double)); + for (c=0; cnumChars; c++) + nSitesOfPat_Beagle[c] = numSitesOfPat[m->compCharStart + c]; + beagleSetPatternWeights(m->beagleInstance, + nSitesOfPat_Beagle); + SafeFree ((void **)(&nSitesOfPat_Beagle)); + } + + /* find root log likelihoods and scalers */ + for (i=0; inCijkParts; i++) + { + m->bufferIndices[i] = m->condLikeIndex[chain][p->index] + i; + m->eigenIndices[i] = m->cijkIndex[chain] + i; + m->cumulativeScaleIndices[i] = m->siteScalerIndex[chain] + i; + if (t->isRooted == NO) + { + m->childBufferIndices[i] = m->condLikeIndex [chain][p->anc->index]; + m->childTiProbIndices[i] = m->tiProbsIndex [chain][p->index] + i; + } + } + + /* reset lnL */ + *lnL = 0.0; + + /* get root log likelihoods */ + if (t->isRooted == YES) + { + beagleReturn = beagleCalculateRootLogLikelihoods(m->beagleInstance, + m->bufferIndices, + m->eigenIndices, + m->eigenIndices, + m->cumulativeScaleIndices, + m->nCijkParts, + lnL); + + } + else + { + beagleReturn = beagleCalculateEdgeLogLikelihoods(m->beagleInstance, + m->bufferIndices, + m->childBufferIndices, + m->childTiProbIndices, + NULL, + NULL, + m->eigenIndices, + m->eigenIndices, + m->cumulativeScaleIndices, + m->nCijkParts, + lnL, + NULL, + NULL); + } +# if defined (MB_PRINT_DYNAMIC_RESCALE_FAIL_STAT) + countALL++; +# endif + if (beagleReturn == BEAGLE_ERROR_FLOATING_POINT) + { +# if defined (MB_PRINT_DYNAMIC_RESCALE_FAIL_STAT) + countBeagleDynamicFail++; + MrBayesPrint ("DEBUG INFO (not an error) countBeagleDynamicFail:%d countALL:%d\n", countBeagleDynamicFail, countALL); +# endif + return beagleReturn; + } + assert (beagleReturn == BEAGLE_SUCCESS); + m->succesCount[chain]++; + + /* accumulate logs across sites */ + if (hasPInvar == NO) + { + if (m->dataType == RESTRICTION) + { + beagleGetSiteLogLikelihoods(m->beagleInstance, m->logLikelihoods); + (*lnL) = 0.0; + pUnobserved = 0.0; + for (c=0; cnumDummyChars; c++) + { + pUnobserved += exp((double)m->logLikelihoods[c]); + } + /* correct for absent characters */ + (*lnL) -= log (1-pUnobserved) * (m->numUncompressedChars); + for (; cnumChars; c++) + { + (*lnL) += m->logLikelihoods[c] * nSitesOfPat[c]; + } + } + /* already done, just check for numerical errors */ + assert ((*lnL) == (*lnL)); + } + else + { + /* has invariable category */ + beagleGetSiteLogLikelihoods(m->beagleInstance, + m->logLikelihoods); + (*lnL) = 0.0; + for (c=0; cnumChars; c++) + { + likeI = 0.0; + for (j=0; jlogLikelihoods[c]; + } + else + diff = -1000.0; + if (diff < -200.0) + (*lnL) += m->logLikelihoods[c] * nSitesOfPat[c]; + else if (diff > 200.0) + (*lnL) += lnLikeI * nSitesOfPat[c]; + else + { + (*lnL) += (m->logLikelihoods[c] + log(1.0 + exp(diff))) * nSitesOfPat[c]; + } + + /* check for numerical errors */ + assert ((*lnL) == (*lnL)); + } + } + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| TreeTiProbs_Beagle: This routine updates all transition +| probability matrices of a beagle instance. +| +-----------------------------------------------------------------*/ +int TreeTiProbs_Beagle (Tree *t, int division, int chain) +{ + int i, j, k, count; + MrBFlt correctionFactor, theRate, baseRate, *catRate, length; + TreeNode *p; + ModelInfo *m; + + /* get model settings */ + m = &modelSettings[division]; + + /* find the correction factor to make branch lengths + in terms of expected number of substitutions per character */ + correctionFactor = 1.0; + if (m->dataType == DNA || m->dataType == RNA) + { + if (m->nucModelId == NUCMODEL_DOUBLET) + correctionFactor = 2.0; + else if (m->nucModelId == NUCMODEL_CODON) + correctionFactor = 3.0; + } + + /* get rate multipliers (for gamma & partition specific rates) */ + theRate = 1.0; + baseRate = GetRate (division, chain); + + /* compensate for invariable sites if appropriate */ + if (m->pInvar != NULL) + baseRate /= (1.0 - (*GetParamVals(m->pInvar, chain, state[chain]))); + + /* get category rates for gamma */ + if (m->shape == NULL) + catRate = &theRate; + else + catRate = GetParamSubVals (m->shape, chain, state[chain]); + + /* get effective category rates */ + for (k=0; knumGammaCats; k++) + m->inRates[k] = baseRate * catRate[k] * correctionFactor; + + /* TODO: only need to set category rates when they change */ + /* set category rates */ + beagleSetCategoryRates(m->beagleInstance, m->inRates); + + /* get ti prob indices and branch lengths to update */ + for (i=count=0; inNodes; i++) + { + p = t->allDownPass[i]; + + /* check if transition probs need updating */ + if (p->upDateTi == YES) + { + /* flip transition probability */ + FlipTiProbsSpace (m, chain, p->index); + + /* find length */ + if (m->cppEvents != NULL) + { + length = GetParamSubVals (m->cppEvents, chain, state[chain])[p->index]; + } + else if (m->tk02BranchRates != NULL) + { + length = GetParamSubVals (m->tk02BranchRates, chain, state[chain])[p->index]; + } + else if (m->igrBranchRates != NULL) + { + length = GetParamSubVals (m->igrBranchRates, chain, state[chain])[p->index]; + } + else if (m->mixedBrchRates != NULL) + { + length = GetParamSubVals (m->mixedBrchRates, chain, state[chain])[p->index]; + } + else + length = p->length; + + /* numerical errors might ensue if we allow very large or very small branch lengths, which might + occur in relaxed clock models; an elegant solution would be to substitute the stationary + probs and initial probs but for now we truncate lengths at small or large values */ + if (length > BRLENS_MAX) + length = BRLENS_MAX; + else if (length < BRLENS_MIN) + length = BRLENS_MIN; + + m->branchLengths[count] = length; + + /* find index */ + m->tiProbIndices[count] = m->tiProbsIndex[chain][p->index]; + count++; + } + } + + /* TODO: only need to update branches that have changed */ + /* calculate transition probabilities */ + if (count > 0) { + for (i=0; inCijkParts; i++) + { + beagleUpdateTransitionMatrices(m->beagleInstance, + m->cijkIndex[chain] + i, + m->tiProbIndices, + NULL, + NULL, + m->branchLengths, + count); + for (j=0; jtiProbIndices[j]++; + } + } + + /* return success */ + return NO_ERROR; +} + +#endif // BEAGLE_ENABLED + + +void BeagleNotLinked() +{ + MrBayesPrint ("%s BEAGLE library is not linked to this executable.\n", spacer); +} + + +void BeagleThreadsNotLinked() +{ + MrBayesPrint ("%s Pthreads library is not linked to this executable.\n", spacer); +} + diff --git a/src/mbbeagle.h b/src/mbbeagle.h new file mode 100644 index 0000000..91e542f --- /dev/null +++ b/src/mbbeagle.h @@ -0,0 +1,24 @@ +#ifndef __MBBEAGLE_H__ +#define __MBBEAGLE_H__ + +void BeaglePrintResources (void); +void BeaglePrintFlags (long inFlags); +void BeagleNotLinked (void); +void BeagleThreadsNotLinked (void); +int BeagleCheckFlagCompatability (long inFlags); +void BeagleAddGPUDevicesToList (int **beagleResource, int *beagleResourceCount); +void BeagleRemoveGPUDevicesFromList (int **beagleResource, int *beagleResourceCount); +int ScheduleLogLikeForAllDivisions (void); + +void LaunchBEAGLELogLikeForDivision (int chain, int d, ModelInfo* m, Tree* tree, MrBFlt* lnL); +void *LaunchThreadLogLikeForDivision (void *arguments); +MrBFlt LaunchLogLikeForAllDivisionsInParallel (int chain); +void recalculateScalers (int chain); + +int InitBeagleInstance (ModelInfo *m, int division); + +int TreeCondLikes_Beagle (Tree *t, int division, int chain); +int TreeLikelihood_Beagle (Tree *t, int division, int chain, MrBFlt *lnL, int whichSitePats); +int TreeTiProbs_Beagle (Tree *t, int division, int chain); + +#endif /* __MBBEAGLE_H__ */ diff --git a/src/mcmc.c b/src/mcmc.c new file mode 100644 index 0000000..4912f17 --- /dev/null +++ b/src/mcmc.c @@ -0,0 +1,19069 @@ +/* + * MrBayes 3 + * + * (c) 2002-2013 + * + * John P. Huelsenbeck + * Dept. Integrative Biology + * University of California, Berkeley + * Berkeley, CA 94720-3140 + * johnh@berkeley.edu + * + * Fredrik Ronquist + * Swedish Museum of Natural History + * Box 50007 + * SE-10405 Stockholm, SWEDEN + * fredrik.ronquist@nrm.se + * + * With important contributions by + * + * Paul van der Mark (paulvdm@sc.fsu.edu) + * Maxim Teslenko (maxim.teslenko@nrm.se) + * + * and by many users (run 'acknowledgments' to see more info) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details (www.gnu.org). + * + */ + +#include "bayes.h" +#include "best.h" +#include "command.h" +#include "likelihood.h" +#include "mbbeagle.h" +#include "mcmc.h" +#include "model.h" +#include "proposal.h" +#include "sumpt.h" +#include "utils.h" +#if defined(__MWERKS__) +#include "SIOUX.h" +#endif +#include + +const char* const svnRevisionMcmcC = "$Rev: 1072 $"; /* Revision keyword which is expanded/updated by svn on each commit/update */ + +#if defined (WIN_VERSION) && !defined (__GNUC__) +#define VISUAL +#else +typedef void (*sighandler_t) (int); +#endif + +#define RESCALE_FREQ 1 /* node cond like rescaling frequency */ +#define SCALER_REFRESH_FREQ 1 /* generations between refreshing scaler nodes */ +#define GIBBS_SAMPLE_FREQ 100 /* generations between gibbs sampling of gamma cats */ +#define MAX_SMALL_JUMP 10 /* threshold for precalculating trans probs of adgamma model */ +#define BIG_JUMP 100 /* threshold for using stationary approximation */ +#define MAX_RUNS 120 /* maximum number of independent runs */ +#define PFILE 0 +#define TFILE 1 +#define CALFILE 2 +#define MCMCFILE 3 +#define MAXTUNINGPARAM 10000 /* limit to ensure convergence for autotuning */ +#define SAMPLE_ALL_SS /* if defined makes ss sample every generation instead of every sample frequency */ +#define BEAGLE_RESCALE_FREQ 160 +#define BEAGLE_RESCALE_FREQ_DOUBLE 10 /* The factor by which BEAGLE_RESCALE_FREQ get multiplied if double presition is used */ +#define TARGETLENDELTA 100 + +/* debugging compiler statements */ +#undef DEBUG_SETUPTERMSTATE +#undef DEBUG_RUNCHAIN +#undef DEBUG_NOSHORTCUTS +#undef DEBUG_NOSCALING +#undef DEBUG_TIPROBS_STD +#undef DEBUG_RUN_WITHOUT_DATA +#undef DEBUG_CONSTRAINTS +#undef DEBUG_LNLIKELIHOOD /* slow if defined!! */ +#undef DEBUG_LIKELIHOOD +#undef DEBUG_FBDPR // #undef FBDPR_CondOnN +#undef SHOW_MOVE + +#if defined (MPI_ENABLED) +#define ERROR_TEST2(failString,X1,X2) \ + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);\ + if (sumErrors > 0)\ + {\ + MrBayesPrint ("%s "failString"\n", spacer);\ + X1;X2;\ + } +#else +#define ERROR_TEST2(failString,X1,X2) \ + if (nErrors > 0)\ + {\ + MrBayesPrint ("%s "failString"\n", spacer);\ + X1;X2;\ + } +#endif + +/* local (to this file) data types */ +typedef struct pfnode + { + struct pfnode *left; + struct pfnode *right; + int *count; + BitsLong *partition; + } PFNODE; + +/* local prototypes */ +int AddTreeSamples (int from, int to, int saveToList); +PFNODE *AddPartition (PFNODE *r, BitsLong *p, int runId); +int AddTreeToPartitionCounters (Tree *tree, int treeId, int runId); +int AttemptSwap (int swapA, int swapB, RandLong *seed); +void BuildExhaustiveSearchTree (Tree *t, int chain, int nTaxInTree, TreeInfo *tInfo); +int BuildStepwiseTree (Tree *t, int chain, RandLong *seed); +int CalcLikeAdgamma (int d, Param *param, int chain, MrBFlt *lnL); +void CalcPartFreqStats (PFNODE *p, STATS *stat); +void CalcTopoConvDiagn (int numSamples); +#ifdef VISUAL +BOOL WINAPI CatchInterrupt (DWORD signum); +#else +void CatchInterrupt (int signum); +#endif +int CheckTemperature (void); +void CloseMBPrintFiles (void); +PFNODE *CompactTree (PFNODE *p); +int ConfirmAbortRun(void); +void CopyParams (int chain); +void CopyPFNodeDown (PFNODE *p); +void CopySiteScalers (ModelInfo *m, int chain); +void CopyTrees (int chain); +int ExtendChainQuery (void); +int FillNumSitesOfPat (void); +TreeNode *FindBestNode (Tree *t, TreeNode *p, TreeNode *addNode, CLFlt *minLength, int chain); +void FlipCijkSpace (ModelInfo *m, int chain); +void FlipCondLikeSpace (ModelInfo *m, int chain, int nodeIndex); +void FlipNodeScalerSpace (ModelInfo *m, int chain, int nodeIndex); +void FlipSiteScalerSpace (ModelInfo *m, int chain); +void FlipTiProbsSpace (ModelInfo *m, int chain, int nodeIndex); +void FreeChainMemory (void); +MrBFlt GetFitchPartials (ModelInfo *m, int chain, int source1, int source2, int destination); +void GetStamp (void); +void GetSwappers (int *swapA, int *swapB, int curGen); +void GetTempDownPassSeq (TreeNode *p, int *i, TreeNode **dp); +MrBFlt GibbsSampleGamma (int chain, int division, RandLong *seed); +int InitAdGamma(void); +int InitChainCondLikes (void); +int InitClockBrlens (Tree *t); +int InitEigenSystemInfo (ModelInfo *m); +int InitInvCondLikes (void); +int InitParsSets (void); +int InitPrintParams (void); +int IsPFNodeEmpty (PFNODE *p); +PFNODE *LargestNonemptyPFNode (PFNODE *p, int *i, int j); +MrBFlt LogLike (int chain); +MrBFlt LogPrior (int chain); +int LnBirthDeathPriorPrRandom (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt sR, MrBFlt eR, MrBFlt sF); +int LnBirthDeathPriorPrDiversity (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt sR, MrBFlt eR, MrBFlt sF); +int LnBirthDeathPriorPrCluster (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt sR, MrBFlt eR, MrBFlt sF); +int LnFossilizedBDPriorFossilTip (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt sR, MrBFlt eR, MrBFlt sF, MrBFlt fR); +int LnFossilizedBDPriorRandom (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt *sR, MrBFlt *eR, MrBFlt sF, MrBFlt *fR); +int LnFossilizedBDPriorDiversity (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt *sR, MrBFlt *eR, MrBFlt sF, MrBFlt *fR); +MrBFlt LnP0 (MrBFlt t, MrBFlt l, MrBFlt m); +MrBFlt LnP0Subsample (MrBFlt t, MrBFlt l, MrBFlt m, MrBFlt f); +MrBFlt LnP1 (MrBFlt t, MrBFlt l, MrBFlt m); +MrBFlt LnP1Subsample (MrBFlt t, MrBFlt l, MrBFlt m, MrBFlt f); +MrBFlt LnP0_fossil (MrBFlt t, MrBFlt lambda, MrBFlt mu, MrBFlt psi, MrBFlt c1, MrBFlt c2); +MrBFlt LnP1_fossil (MrBFlt t, MrBFlt rho, MrBFlt c1, MrBFlt c2); +MrBFlt LnQi_fossil (MrBFlt t, MrBFlt *t_f, int sl, MrBFlt *c1, MrBFlt *c2); +MrBFlt LnPi_fossil (MrBFlt t, MrBFlt *t_f, int sl, MrBFlt *c1, MrBFlt *c2, MrBFlt *lambda, MrBFlt *mu, MrBFlt *psi); +int NewtonRaphsonBrlen (Tree *t, TreeNode *p, int chain); +void NodeToNodeDistances (Tree *t, TreeNode *fromNode); +int PickProposal (RandLong *seed, int chainIndex); +int NumCppEvents (Param *p, int chain); +int PosSelProbs (TreeNode *p, int division, int chain); +#if defined (SSE_ENABLED) +int PosSelProbs_SSE (TreeNode *p, int division, int chain); +#endif +int PreparePrintFiles (void); +int PrintAncStates_Bin (TreeNode *p, int division, int chain); +int PrintAncStates_Gen (TreeNode *p, int division, int chain); +int PrintAncStates_NUC4 (TreeNode *p, int division, int chain); +int PrintAncStates_Std (TreeNode *p, int division, int chain); +int PrintCalTree (int curGen, Tree *tree); +int PrintCheckPoint (int gen); +int PrintMCMCDiagnosticsToFile (int curGen); +#if defined (MPI_ENABLED) +int PrintMPISlaves (FILE *fp); +#endif +void PrintParamValues (Param *p, int chain, char *s); +int PrintParsMatrix (void); +int PrintSiteRates_Gen (TreeNode *p, int division, int chain); +int PrintSiteRates_Std (TreeNode *p, int division, int chain); +int PrintStates (int curGen, int coldId); +int PrintStatesToFiles (int n); +int PrintSwapInfo (void); +int PrintTermState (void); +void PrintTiProbs (CLFlt *tP, MrBFlt *bs, int nStates); +int PrintTopConvInfo (void); +void PrintToScreen (int curGen, int startGen, time_t endingT, time_t startingT); +int PrintTree (int curGen, Param *treeParam, int chain, int showBrlens, MrBFlt clockRate); +MrBFlt PropAncFossil (Param *param, int chain); +#if defined (MPI_ENABLED) +int ReassembleMoveInfo (void); +int ReassembleParamVals (int *curId); +int ReassembleSwapInfo (void); +int ReassembleTuningParams (void); +void RedistributeMoveInfo (void); +int RedistributeParamVals (void); +int RedistributeTuningParams (void); +#endif +int RemovePartition (PFNODE *r, BitsLong *p, int runId); +int RemoveTreeFromPartitionCounters (Tree *tree, int treeId, int runId); +int RemoveTreeSamples (int from, int to); +int ReopenMBPrintFiles (void); +void ResetChainIds (void); +void ResetFlips(int chain); +int ResetScalers (void); +void ResetSiteScalers (ModelInfo *m, int chain); +int ReusePreviousResults(int *numSamples, int); +int RunChain (RandLong *seed); +int SafeSprintf (char **target, int *targetLen, char *fmt, ...); +void SetChainIds (void); +void SetFileNames (void); +int SetLikeFunctions (void); +int SetLocalChainsAndDataSplits (void); +int SetModelInfo (void); +int SetMoves (void); +int SetBinaryQMatrix (MrBFlt **a, int whichChain, int division); +int SetNucQMatrix (MrBFlt **a, int n, int whichChain, int division, MrBFlt rateMult, MrBFlt *rA, MrBFlt *rS); +int SetProteinQMatrix (MrBFlt **a, int n, int whichChain, int division, MrBFlt rateMult); +int SetStdQMatrix (MrBFlt **a, int nStates, MrBFlt *bs, int cType); +int SetUpPartitionCounters (void); +int SetUpTermState (void); +int SetUsedMoves (void); +int ShowMoveSummary (void); +void ShowValuesForChain (int chn); +int SiteOmegas (TreeNode *p, int division, int chain); +#if defined (SSE_ENABLED) +int SiteOmegas_SSE (TreeNode *p, int division, int chain); +#endif +PFNODE *SmallestNonemptyPFNode (PFNODE *p, int *i, int j); +PFNODE *Talloc (void); +void Tfree (PFNODE *r); +MrBFlt Temperature (int x); +void TouchAllCijks (int chain); +void TouchAllPartitions (void); +void TouchAllTrees (int chain); +void TouchEverything (int chain); + +/* globals */ +int *bsIndex; /* compressed std stat freq index */ +Chain chainParams; /* parameters of Markov chain */ +int *compCharPos; /* char position in compressed matrix */ +int *compColPos; /* column position in compressed matrix */ +BitsLong *compMatrix; /* compressed character matrix */ +int compMatrixRowSize; /* row size of compressed matrix */ +char inputFileName[100]; /* input (NEXUS) file name */ +MoveType moveTypes[NUM_MOVE_TYPES]; /* holds information on the move types */ +int numCompressedChars; /* number of compressed characters */ +int numMoveTypes; /* the number of move types */ +CLFlt *numSitesOfPat; /* no. sites of each pattern */ +int *origChar; /* index from compressed char to original char */ +char stamp[11]; /* holds a unique identifier for each analysis */ +MrBFlt *stdStateFreqs; /* std char state frequencies */ +int *stdType; /* compressed std char type: ord, unord, irrev */ +int *tiIndex; /* compressed std char ti index */ + +#if defined (BEAGLE_ENABLED) +int recalcScalers; /* shoud we recalculate scalers for current state YES/NO */ +#endif + +/* local (to this file) variables */ +int numLocalChains; /* number of Markov chains */ +int *chainId = NULL; /* information on the id (0 ...) of the chain */ +MrBFlt *curLnL = NULL; /* stores log likelihood */ +MrBFlt *curLnPr = NULL; /* stores log prior probability */ +int stepRelativeBurninSS; /* Should we use relative burn in within each step or not */ +MrBFlt powerSS; /* power (betta) in power posterior destribution used in SS */ +MrBFlt *marginalLnLSS = NULL; /* marginal liklihood obtained using stepppingstone sampling */ +MrBFlt *stepAcumulatorSS = NULL; /* accumulates liklihoods for current step in SS */ +MrBFlt *stepScalerSS = NULL; /* scaler of stepAcumulatorSS in log scale in SS */ +MrBFlt *splitfreqSS = NULL; /* array holding split frequencis for each step in SS */ +int *sympiIndex; /* sympi state freq index for multistate chars */ +int stdStateFreqsRowSize; /* row size for std state frequencies */ +int *weight; /* weight of each compressed char */ +int *chainTempId; /* info ton temp, change to float holding temp? */ +int state[MAX_CHAINS]; /* state of chain */ +int augmentData; /* are data being augmented for any division? */ +int *nAccepted; /* counter of accepted moves */ +int *termState = NULL; /* stores character states of tips */ +int *isPartAmbig = NULL; /* records whether tips are partially ambiguous */ +BitsLong **parsPtrSpace = NULL; /* space holding pointers to parsimony sets */ +BitsLong ***parsPtr = NULL; /* pointers to pars state sets for chain & node */ +CLFlt *parsNodeLengthSpace = NULL; /* space for parsimony node lengths */ +CLFlt **parsNodeLen = NULL; /* pointers to pars node lengths for chains */ +char *printString; /* string for printing to a file */ +size_t printStringSize; /* length of printString */ +MCMCMove **usedMoves; /* vector of pointers to used moves */ +int numUsedMoves; /* the number of moves used by chain */ +Param **printParam; /* vector of pointers to normal params to print */ +int numPrintParams; /* the number of normal params to print */ +Param **printTreeParam; /* vector of pointers to tree params to print */ +Param **topologyParam; /* vector of pointers to topology params */ +int numPrintTreeParams; /* the number of tree params to print */ +int codon[6][64]; /* holds info on amino acids coded in code */ +int chainHasAdgamma; /* indicates if chain has adgamma HMMs */ +int inferPosSel; /* indicates if positive selection is inferred */ +MrBFlt *posSelProbs; /* probs. for positive selection */ +int hasMarkovTi[MAX_SMALL_JUMP]; /* vector marking size of observed HMM jumps */ +int *siteJump; /* vector of sitejumps for adgamma model */ +MrBFlt **rateProbs; /* pointers to rate probs used by adgamma model */ +MrBFlt *rateProbSpace; /* space for rate probs used by adgamma model */ +int rateProbRowSize; /* size of rate probs for one chain one state */ +MrBFlt **markovTi[MAX_SMALL_JUMP]; /* trans prob matrices used in calc of adgamma */ +MrBFlt **markovTiN; /* trans prob matrices used in calc of adgamma */ +int whichReweightNum; /* used for setting reweighting of char pats */ +int ***swapInfo; /* keeps track of attempts & successes of swaps */ +int tempIndex; /* keeps track of which user temp is specified */ +int abortMove; /* flag determining whether to abort move */ +PFNODE **partFreqTreeRoot; /* root of tree(s) holding partition freqs */ +int nLongsNeeded; /* number of longs needed for partitions */ +BitsLong **partition; /* matrix holding partitions */ +MrBFlt *maxLnL0 = NULL; /* maximum likelihood */ +FILE *fpMcmc = NULL; /* pointer to .mcmc file */ +FILE **fpParm = NULL; /* pointer to .p file(s) */ +FILE ***fpTree = NULL; /* pointer to .t file(s) */ +FILE *fpSS = NULL; /* pointer to .ss file */ +static int requestAbortRun; /* flag for aborting mcmc analysis */ +int *topologyPrintIndex; /* print file index of each topology */ +int *printTreeTopologyIndex; /* topology index of each tree print file */ +int numPreviousGen; /* number of generations in run to append to */ + +#if defined (MPI_ENABLED) +int lowestLocalRunId; /* lowest local run Id */ +int highestLocalRunId; /* highest local run Id */ +#endif + +#if defined (PRINT_DUMP) +FILE **fpDump = NULL; /* pointer to .dump file(s) */ +#endif + +/* AddPartition: Add a partition to the tree keeping track of partition frequencies */ +PFNODE *AddPartition (PFNODE *r, BitsLong *p, int runId) +{ + int i, comp; + + if (r == NULL) + { + /* new partition */ + r = Talloc (); /* create a new node */ + if (r == NULL) + return NULL; + for (i=0; ipartition[i] = p[i]; + for (i=0; icount[i] = 0; + r->count[runId] = 1; + r->left = r->right = NULL; + } + else + { + for (i=0; ipartition[i] != p[i]) + break; + } + + if (i == nLongsNeeded) + comp = 0; + else if (r->partition[i] < p[i]) + comp = -1; + else + comp = 1; + + if (comp == 0) /* repeated partition */ + r->count[runId]++; + else if (comp < 0) /* greater than -> into left subtree */ + { + if ((r->left = AddPartition (r->left, p, runId)) == NULL) + { + Tfree (r); + return NULL; + } + } + else + { + /* smaller than -> into right subtree */ + if ((r->right = AddPartition (r->right, p, runId)) == NULL) + { + Tfree (r); + return NULL; + } + } + } + + return r; +} + + +int AddToPrintString (char *tempStr) +{ + size_t len1, len2; + + len1 = strlen(printString); + len2 = strlen(tempStr); + if (len1 + len2 + 5 > printStringSize) + { + printStringSize += len1 + len2 - printStringSize + 200; + printString = (char*)SafeRealloc((void*)printString, printStringSize * sizeof(char)); + if (!printString) + { + MrBayesPrint ("%s Problem reallocating printString (%d)\n", spacer, printStringSize * sizeof(char)); + goto errorExit; + } + } + strcat(printString, tempStr); + // printf ("printString(%d) -> \"%s\"\n", printStringSize, printString); + return (NO_ERROR); + + errorExit: + return (ERROR); +} + + +/* AddTreeSamples: Add tree samples from .t files to partition counters. if saveToList == YES then also save trees in tree list */ +int AddTreeSamples (int from, int to, int saveToList) +{ + int i, j, k, longestLine; + BitsLong lastBlock; + char *word, *s, *lineBuf; + FILE *fp; + Tree *t; + char *tempStr; + int tempStrSize = TEMPSTRSIZE; + + if (from > to) + return (NO_ERROR); + +# if defined (MPI_ENABLED) + if (proc_id != 0) + return (NO_ERROR); +# endif + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + return (ERROR); + } + + for (i=0; i=from) + { + s = strtok (NULL, ";"); + while (*s != '(') + s++; + StripComments(s); + if (ResetTopology (t, s) == ERROR) + { + SafeFclose (&fp); + free (lineBuf); + free (tempStr); + return ERROR; + } + if (AddTreeToPartitionCounters (t, i, j) == ERROR) + { + SafeFclose (&fp); + free (lineBuf); + free (tempStr); + return ERROR; + } + if (saveToList == YES) + if (AddToTreeList(&chainParams.treeList[numTopologies*j+i],t) == ERROR) + return (ERROR); + } + } + SafeFclose (&fp); + free (lineBuf); + } /* next run */ + } /* next tree */ + free (tempStr); + return (NO_ERROR); +} + + +/* AddTreeToPartitionCounters: Break a tree into partitions and add those to counters */ +int AddTreeToPartitionCounters (Tree *tree, int treeId, int runId) +{ + int i, j, nTaxa; + TreeNode *p; + + if (tree->isRooted == YES) + nTaxa = tree->nNodes - tree->nIntNodes - 1; + else + nTaxa = tree->nNodes - tree->nIntNodes; + + for (i=0; inIntNodes-1; i++) + { + p = tree->intDownPass[i]; + assert (p->index >= tree->nNodes - tree->nIntNodes - (tree->isRooted == YES ? 1 : 0)); + for (j=0; jindex][j] = partition[p->left->index][j] | partition[p->right->index][j]; + } + + if ((partFreqTreeRoot[treeId] = AddPartition (partFreqTreeRoot[treeId], partition[p->index], runId)) == NULL) + { + MrBayesPrint ("%s Could not allocate space for new partition in AddTreeToPartitionCounters\n", spacer); + return ERROR; + } + } + + return NO_ERROR; +} + + +int AttemptSwap (int swapA, int swapB, RandLong *seed) +{ + int d, tempX, reweightingChars, isSwapSuccessful, chI, chJ, runId; + MrBFlt tempA, tempB, lnLikeA, lnLikeB, lnPriorA, lnPriorB, lnR, r, + lnLikeStateAonDataB=0.0, lnLikeStateBonDataA=0.0, lnL; + ModelInfo *m; + Tree *tree; +# if defined (MPI_ENABLED) + int numChainsForProc, tempIdA=0, tempIdB=0, proc, procIdForA=0, procIdForB=0, tempIdMy=0, procIdPartner=0, + whichElementA=0, whichElementB=0, lower, upper, areWeA, doISwap, ierror, + myId, partnerId, i, run; + MrBFlt swapRan; + MPI_Status status[2]; + MPI_Request request[2]; +# endif + +# if defined (MPI_ENABLED) + + /* get the number of chains handled by this proc */ + /* the number will be corrected further down for unbalanced scenarios */ + numChainsForProc = (int) (chainParams.numChains * chainParams.numRuns / num_procs); + +# endif + + /* are we using character reweighting? */ + reweightingChars = NO; + if ((chainParams.weightScheme[0] + chainParams.weightScheme[1]) > 0.00001) + reweightingChars = YES; + +# if defined (MPI_ENABLED) + + /* figure out processors involved in swap */ + lower = upper = 0; + for (proc=0; proc= lower && swapA < upper) + { + procIdForA = proc; + whichElementA = swapA - lower; + } + if (swapB >= lower && swapB < upper) + { + procIdForB = proc; + whichElementB = swapB - lower; + } + lower = upper; + } + + /* NOTE: at this point, procIdForA and procIdForB * + * store the proc id's of swapping procs. Also, * + * whichElementA and whichElementB store the * + * chainId[] index of swapping procs */ + + /* figure out if I am involved in the swap */ + doISwap = areWeA = NO; + if (proc_id == procIdForA) + { + doISwap = YES; + areWeA = YES; + } + else if (proc_id == procIdForB) + { + doISwap = YES; + } + + /* chain's that do not swap, continue to the next iteration */ + if (doISwap == YES) + { + + /* no need to communicate accross processors if swapping chains are in the same proc */ + if (procIdForA == procIdForB) + { + if (reweightingChars == YES) + { + /* use character reweighting */ + lnLikeStateAonDataB = 0.0; + for (d=0; dbrlens, whichElementA, state[whichElementA]); + lnL = 0.0; + m->Likelihood (tree->root->left, d, whichElementA, &lnL, chainId[whichElementB] % chainParams.numChains); + lnLikeStateAonDataB += lnL; + } + lnLikeStateBonDataA = 0.0; + for (d=0; dbrlens, whichElementB, state[whichElementB]); + lnL = 0.0; + m->Likelihood (tree->root->left, d, whichElementB, &lnL, chainId[whichElementA] % chainParams.numChains); + lnLikeStateBonDataA += lnL; + } + } + + /*curLnPr[whichElementA] = LogPrior(whichElementA); + curLnPr[whichElementB] = LogPrior(whichElementB);*/ + + /* then do the serial thing - simply swap chain id's */ + tempA = Temperature (chainId[whichElementA]); + tempB = Temperature (chainId[whichElementB]); + lnLikeA = curLnL[whichElementA]; + lnLikeB = curLnL[whichElementB]; + if (chainParams.isSS == YES) + { + lnLikeA *= powerSS; + lnLikeB *= powerSS; + } + lnPriorA = curLnPr[whichElementA]; + lnPriorB = curLnPr[whichElementB]; + if (reweightingChars == YES) + { + if (chainParams.isSS == YES) + lnR = (tempB * (lnLikeStateAonDataB*powerSS + lnPriorA) + tempA * (lnLikeStateBonDataA*powerSS + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + else + lnR = (tempB * (lnLikeStateAonDataB + lnPriorA) + tempA * (lnLikeStateBonDataA + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + } + else + lnR = (tempB * (lnLikeA + lnPriorA) + tempA * (lnLikeB + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + if (lnR < -100.0) + r = 0.0; + else if (lnR > 0.0) + r = 1.0; + else + r = exp(lnR); + + isSwapSuccessful = NO; + if (RandomNumber(seed) < r) + { + /* swap chain id's (heats) */ + tempX = chainId[whichElementA]; + chainId[whichElementA] = chainId[whichElementB]; + chainId[whichElementB] = tempX; + if (reweightingChars == YES) + { + curLnL[whichElementA] = lnLikeStateAonDataB; + curLnL[whichElementB] = lnLikeStateBonDataA; + } + isSwapSuccessful = YES; + } + + chI = chainId[whichElementA]; + chJ = chainId[whichElementB]; + if (chainId[whichElementB] < chainId[whichElementA]) + { + chI = chainId[whichElementB]; + chJ = chainId[whichElementA]; + } + runId = chI / chainParams.numChains; + chI = chI % chainParams.numChains; + chJ = chJ % chainParams.numChains; + swapInfo[runId][chJ][chI]++; + if (isSwapSuccessful == YES) + swapInfo[runId][chI][chJ]++; + } + /* we need to communicate across processors */ + else + { + if (reweightingChars == YES) + { + /* If we are reweighting characters, then we need to do an additional communication to + figure out the chainId's of the partner. We need to have this information so we can + properly calculate likelihoods with switched observations. */ + if (areWeA == YES) + { + lnLikeStateAonDataB = 0.0; + myId = chainId[whichElementA]; + ierror = MPI_Isend (&myId, 1, MPI_INT, procIdForB, 0, MPI_COMM_WORLD, &request[0]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Irecv (&partnerId, 1, MPI_INT, procIdForB, 0, MPI_COMM_WORLD, &request[1]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (2, request, status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + for (d=0; dbrlens, whichElementA, state[whichElementA]); + lnL = 0.0; + m->Likelihood (tree->root->left, d, whichElementA, &lnL, partnerId); + lnLikeStateAonDataB = lnL; + } + } + else + { + lnLikeStateBonDataA = 0.0; + myId = chainId[whichElementB]; + ierror = MPI_Isend (&myId, 1, MPI_INT, procIdForA, 0, MPI_COMM_WORLD, &request[0]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Irecv (&partnerId, 1, MPI_INT, procIdForA, 0, MPI_COMM_WORLD, &request[1]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (2, request, status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + for (d=0; dbrlens, whichElementB, state[whichElementB]); + lnL = 0.0; + m->Likelihood (tree->root->left, d, whichElementB, &lnL, partnerId); + lnLikeStateBonDataA = lnL; + } + } + } + + if (areWeA == YES) + { + /*curLnPr[whichElementA] = LogPrior(whichElementA);*/ + + /* we are processor A */ + tempIdA = chainId[whichElementA]; + lnLikeA = curLnL[whichElementA]; + lnPriorA = curLnPr[whichElementA]; + swapRan = RandomNumber(seed); + + myStateInfo[0] = lnLikeA; + myStateInfo[1] = lnPriorA; + myStateInfo[2] = tempIdA; + myStateInfo[3] = swapRan; + myStateInfo[4] = 0.0; + if (reweightingChars == YES) + { + myStateInfo[2] = lnLikeStateAonDataB; + tempIdB = partnerId; + } + + ierror = MPI_Isend (&myStateInfo, 5, MPI_DOUBLE, procIdForB, 0, MPI_COMM_WORLD, &request[0]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Irecv (&partnerStateInfo, 5, MPI_DOUBLE, procIdForB, 0, MPI_COMM_WORLD, &request[1]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (2, request, status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + + lnLikeA = curLnL[whichElementA]; + lnLikeB = partnerStateInfo[0]; + if (chainParams.isSS == YES) + { + lnLikeA *= powerSS; + lnLikeB *= powerSS; + } + lnPriorA = curLnPr[whichElementA]; + lnPriorB = partnerStateInfo[1]; + if (reweightingChars == YES) + lnLikeStateBonDataA = partnerStateInfo[2]; + else + tempIdB = partnerStateInfo[2]; + + tempA = Temperature (tempIdA); + tempB = Temperature (tempIdB); + + if (reweightingChars == YES) + { + if (chainParams.isSS == YES) + lnR = (tempB * (lnLikeStateAonDataB*powerSS + lnPriorA) + tempA * (lnLikeStateBonDataA*powerSS + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + else + lnR = (tempB * (lnLikeStateAonDataB + lnPriorA) + tempA * (lnLikeStateBonDataA + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + } + else + lnR = (tempB * (lnLikeA + lnPriorA) + tempA * (lnLikeB + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + if (lnR < -100.0) + r = 0.0; + else if (lnR > 0.0) + r = 1.0; + else + r = exp(lnR); + + /* process A's random number is used to make the swap decision */ + isSwapSuccessful = NO; + if (swapRan < r) + { + /* swap chain id's (heats) */ + isSwapSuccessful = YES; + tempIdMy = chainId[whichElementA]; + procIdPartner = procIdForB; + + if (reweightingChars == YES) + chainId[whichElementA] = tempIdB; + else + chainId[whichElementA] = (int)(partnerStateInfo[2]); + if (reweightingChars == YES) + { + curLnL[whichElementA] = lnLikeStateAonDataB; + } + } + + /* only processor A keeps track of the swap success/failure */ + chI = tempIdA; + chJ = tempIdB; + if (tempIdB < tempIdA) + { + chI = tempIdB; + chJ = tempIdA; + } + runId = chI / chainParams.numChains; + chI = chI % chainParams.numChains; + chJ = chJ % chainParams.numChains; + swapInfo[runId][chJ][chI]++; + if (isSwapSuccessful == YES) + { + swapInfo[runId][chI][chJ]++; + /* exchange the move info */ + for (i=0; inAccepted[tempIdA]; + myStateInfo[1] = usedMoves[i]->nTried[tempIdA]; + myStateInfo[2] = usedMoves[i]->nBatches[tempIdA]; + myStateInfo[3] = usedMoves[i]->nTotAccepted[tempIdA]; + myStateInfo[4] = usedMoves[i]->nTotTried[tempIdA]; + myStateInfo[5] = usedMoves[i]->lastAcceptanceRate[tempIdA]; + if (usedMoves[i]->moveType->numTuningParams > 0) + myStateInfo[6] = usedMoves[i]->tuningParam[tempIdA][0]; + else + myStateInfo[6] = 0.0; + + ierror = MPI_Isend (&myStateInfo, 7, MPI_DOUBLE, procIdForB, 0, MPI_COMM_WORLD, &request[0]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Irecv (&partnerStateInfo, 7, MPI_DOUBLE, procIdForB, 0, MPI_COMM_WORLD, &request[1]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (2, request, status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + + usedMoves[i]->nAccepted[tempIdB] = (int)partnerStateInfo[0]; + usedMoves[i]->nTried[tempIdB] = (int)partnerStateInfo[1]; + usedMoves[i]->nBatches[tempIdB] = (int)partnerStateInfo[2]; + usedMoves[i]->nTotAccepted[tempIdB] = (int)partnerStateInfo[3]; + usedMoves[i]->nTotTried[tempIdB] = (int)partnerStateInfo[4]; + usedMoves[i]->lastAcceptanceRate[tempIdB] = partnerStateInfo[5]; + if (usedMoves[i]->moveType->numTuningParams > 0) + usedMoves[i]->tuningParam[tempIdB][0] = partnerStateInfo[6]; + + usedMoves[i]->nAccepted[tempIdA] = 0; + usedMoves[i]->nTried[tempIdA] = 0; + usedMoves[i]->nBatches[tempIdA] = 0; + usedMoves[i]->lastAcceptanceRate[tempIdA] = 0.0; + usedMoves[i]->nTotAccepted[tempIdA] = 0; + usedMoves[i]->nTotTried[tempIdA] = 0; + if (usedMoves[i]->moveType->numTuningParams > 0) + usedMoves[i]->tuningParam[tempIdA][0] = 0.0; + + } + } + } + else + { + /*curLnPr[whichElementB] = LogPrior(whichElementB);*/ + + /* we are processor B */ + tempIdB = chainId[whichElementB]; + lnLikeB = curLnL[whichElementB]; + lnPriorB = curLnPr[whichElementB]; + swapRan = -1.0; + + myStateInfo[0] = lnLikeB; + myStateInfo[1] = lnPriorB; + myStateInfo[2] = tempIdB; + myStateInfo[3] = swapRan; + myStateInfo[4] = 0.0; + if (reweightingChars == YES) + { + myStateInfo[2] = lnLikeStateBonDataA; + tempIdA = partnerId; + } + + ierror = MPI_Isend (&myStateInfo, 5, MPI_DOUBLE, procIdForA, 0, MPI_COMM_WORLD, &request[0]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Irecv (&partnerStateInfo, 5, MPI_DOUBLE, procIdForA, 0, MPI_COMM_WORLD, &request[1]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (2, request, status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + + lnLikeB = curLnL[whichElementB]; + lnLikeA = partnerStateInfo[0]; + lnPriorB = curLnPr[whichElementB]; + lnPriorA = partnerStateInfo[1]; + if (reweightingChars == YES) + lnLikeStateAonDataB = partnerStateInfo[2]; + else + tempIdA = partnerStateInfo[2]; + + tempB = Temperature (tempIdB); + tempA = Temperature (tempIdA); + + if (chainParams.isSS == YES) + { + lnLikeA *= powerSS; + lnLikeB *= powerSS; + } + + if (reweightingChars == YES) + { + if (chainParams.isSS == YES) + lnR = (tempB * (lnLikeStateAonDataB*powerSS + lnPriorA) + tempA * (lnLikeStateBonDataA*powerSS + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + else + lnR = (tempB * (lnLikeStateAonDataB + lnPriorA) + tempA * (lnLikeStateBonDataA + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + } + else + lnR = (tempB * (lnLikeA + lnPriorA) + tempA * (lnLikeB + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + if (lnR < -100.0) + r = 0.0; + else if (lnR > 0.0) + r = 1.0; + else + r = exp(lnR); + + /* we use process A's random number to make the swap decision */ + isSwapSuccessful = NO; + if (partnerStateInfo[3] < r) + { + isSwapSuccessful = YES; + tempIdMy = chainId[whichElementB]; + procIdPartner = procIdForA; + + if (reweightingChars == YES) + chainId[whichElementB] = tempIdA; + else + chainId[whichElementB] = (int)(partnerStateInfo[2]); + if (reweightingChars == YES) + { + curLnL[whichElementB] = lnLikeStateBonDataA; + } + /* swap the move info */ + for (i=0; inAccepted[tempIdB]; + myStateInfo[1] = usedMoves[i]->nTried[tempIdB]; + myStateInfo[2] = usedMoves[i]->nBatches[tempIdB]; + myStateInfo[3] = usedMoves[i]->nTotAccepted[tempIdB]; + myStateInfo[4] = usedMoves[i]->nTotTried[tempIdB]; + myStateInfo[5] = usedMoves[i]->lastAcceptanceRate[tempIdB]; + if (usedMoves[i]->moveType->numTuningParams > 0) + myStateInfo[6] = usedMoves[i]->tuningParam[tempIdB][0]; + else + myStateInfo[6] = 0.0; + + ierror = MPI_Isend (&myStateInfo, 7, MPI_DOUBLE, procIdForA, 0, MPI_COMM_WORLD, &request[0]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Irecv (&partnerStateInfo, 7, MPI_DOUBLE, procIdForA, 0, MPI_COMM_WORLD, &request[1]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (2, request, status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + + usedMoves[i]->nAccepted[tempIdA] = (int)partnerStateInfo[0]; + usedMoves[i]->nTried[tempIdA] = (int)partnerStateInfo[1]; + usedMoves[i]->nBatches[tempIdA] = (int)partnerStateInfo[2]; + usedMoves[i]->nTotAccepted[tempIdA] = (int)partnerStateInfo[3]; + usedMoves[i]->nTotTried[tempIdA] = (int)partnerStateInfo[4]; + usedMoves[i]->lastAcceptanceRate[tempIdA] = partnerStateInfo[5]; + if (usedMoves[i]->moveType->numTuningParams > 0) + usedMoves[i]->tuningParam[tempIdA][0] = partnerStateInfo[6]; + + usedMoves[i]->nAccepted[tempIdB] = 0; + usedMoves[i]->nTried[tempIdB] = 0; + usedMoves[i]->nBatches[tempIdB] = 0; + usedMoves[i]->nTotAccepted[tempIdB] = 0; + usedMoves[i]->nTotTried[tempIdB] = 0; + usedMoves[i]->lastAcceptanceRate[tempIdB] = 0.0; + if (usedMoves[i]->moveType->numTuningParams > 0) + usedMoves[i]->tuningParam[tempIdB][0] = 0.0; + } + } + } + + /*We exchange only if swap successful and (my id is cold or patner id is cold)*/ + if (chainParams.isSS == YES && isSwapSuccessful == YES && (tempIdMy % chainParams.numChains == 0 || (areWeA == YES && chainId[whichElementA] % chainParams.numChains == 0) || (areWeA == NO && chainId[whichElementB] % chainParams.numChains == 0))) + { + run = tempIdMy/chainParams.numChains; + + myStateInfo[0] = tempIdMy; + myStateInfo[1] = marginalLnLSS [ run ]; + myStateInfo[2] = stepAcumulatorSS[ run ]; + myStateInfo[3] = stepScalerSS [ run ]; + + ierror = MPI_Isend (&myStateInfo, 4, MPI_DOUBLE, procIdPartner, 0, MPI_COMM_WORLD, &request[0]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + + ierror = MPI_Irecv (&partnerStateInfo, 4, MPI_DOUBLE, procIdPartner, 0, MPI_COMM_WORLD, &request[1]); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (2, request, status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + + /*we swap chains from the same run*/ + assert (run == (int)partnerStateInfo[0]/chainParams.numChains); + + /*If my chain is the cold chain then send current SS values of corresponding run*/ + if (tempIdMy % chainParams.numChains == 0) + { + assert ((int)partnerStateInfo[0] % chainParams.numChains != 0); + assert (partnerStateInfo[1] == 0.0); + marginalLnLSS [ run ] = (MrBFlt) 0.0; + stepAcumulatorSS[ run ] = (MrBFlt) 0.0; + stepScalerSS [ run ] = (MrBFlt) 0.0; + } + else if ((int)partnerStateInfo[0] % chainParams.numChains == 0) + { + marginalLnLSS [ run ] = (MrBFlt) partnerStateInfo[1]; + stepAcumulatorSS[ run ] = (MrBFlt) partnerStateInfo[2]; + stepScalerSS [ run ] = (MrBFlt) partnerStateInfo[3]; + } + } + + } + } +# else + if (reweightingChars == YES) + { + /* use character reweighting */ + lnLikeStateAonDataB = 0.0; + for (d=0; dbrlens, swapA, state[swapA]); + lnL = 0.0; + m->Likelihood (tree->root->left, d, swapA, &lnL, chainId[swapB] % chainParams.numChains); + lnLikeStateAonDataB += lnL; + } + lnLikeStateBonDataA = 0.0; + for (d=0; dbrlens, swapB, state[swapB]); + lnL = 0.0; + m->Likelihood (tree->root->left, d, swapB, &lnL, chainId[swapA] % chainParams.numChains); + lnLikeStateBonDataA += lnL; + } + } + + assert (fabs((curLnPr[swapA]-LogPrior(swapA))/curLnPr[swapA]) < 0.0001); + assert (fabs((curLnPr[swapB]-LogPrior(swapB))/curLnPr[swapB]) < 0.0001); + + tempA = Temperature (chainId[swapA]); + tempB = Temperature (chainId[swapB]); + lnLikeA = curLnL[swapA]; + lnLikeB = curLnL[swapB]; + lnPriorA = curLnPr[swapA]; + lnPriorB = curLnPr[swapB]; + + if (chainParams.isSS == YES) + { + lnLikeA *= powerSS; + lnLikeB *= powerSS; + } + + if (reweightingChars == YES) + { + if (chainParams.isSS == YES) + lnR = (tempB * (lnLikeStateAonDataB*powerSS + lnPriorA) + tempA * (lnLikeStateBonDataA*powerSS + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + else + lnR = (tempB * (lnLikeStateAonDataB + lnPriorA) + tempA * (lnLikeStateBonDataA + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + } + else + lnR = (tempB * (lnLikeA + lnPriorA) + tempA * (lnLikeB + lnPriorB)) - (tempA * (lnLikeA + lnPriorA) + tempB * (lnLikeB + lnPriorB)); + if (lnR < -100.0) + r = 0.0; + else if (lnR > 0.0) + r = 1.0; + else + r = exp (lnR); + + isSwapSuccessful = NO; + if (RandomNumber(seed) < r) + { + tempX = chainId[swapA]; + chainId[swapA] = chainId[swapB]; + chainId[swapB] = tempX; + + if (reweightingChars == YES) + { + curLnL[swapA] = lnLikeStateAonDataB; + curLnL[swapB] = lnLikeStateBonDataA; + } + isSwapSuccessful = YES; + } + + chI = chainId[swapA]; + chJ = chainId[swapB]; + if (chainId[swapB] < chainId[swapA]) + { + chI = chainId[swapB]; + chJ = chainId[swapA]; + } + runId = chI / chainParams.numChains; + chI = chI % chainParams.numChains; + chJ = chJ % chainParams.numChains; + swapInfo[runId][chJ][chI]++; + if (isSwapSuccessful == YES) + swapInfo[runId][chI][chJ]++; +# endif + + return (NO_ERROR); +} + + +/* Autotune Dirichlet move */ +void AutotuneDirichlet (MrBFlt acceptanceRate, MrBFlt targetRate, int batch, MrBFlt *alphaPi, MrBFlt minTuning, MrBFlt maxTuning) +{ + MrBFlt delta, logTuning, newTuning; + + delta = 1.0 / sqrt(batch); + delta = 0.01 < delta ? 0.01 : delta; + + logTuning = log(*alphaPi); + + if (acceptanceRate > targetRate) + logTuning -= delta; + else + logTuning += delta; + + newTuning = exp(logTuning); + if (newTuning > minTuning && newTuning < maxTuning) + *alphaPi = newTuning; +} + + +/* Autotune multiplier move */ +void AutotuneMultiplier (MrBFlt acceptanceRate, MrBFlt targetRate, int batch, MrBFlt *lambda, MrBFlt minTuning, MrBFlt maxTuning) +{ + MrBFlt delta, logTuning, newTuning; + + delta = 1.0 / sqrt(batch); + delta = 0.01 < delta ? 0.01 : delta; + + logTuning = log(*lambda); + + if (acceptanceRate > targetRate) + logTuning += delta; + else + logTuning -= delta; + + newTuning = exp(logTuning); + if (newTuning > minTuning && newTuning < maxTuning) + *lambda = newTuning; +} + + +/* Autotune sliding window move */ +void AutotuneSlider (MrBFlt acceptanceRate, MrBFlt targetRate, int batch, MrBFlt *width, MrBFlt minTuning, MrBFlt maxTuning) +{ + MrBFlt delta, logTuning, newTuning; + + delta = 1.0 / sqrt(batch); + delta = 0.01 < delta ? 0.01 : delta; + + logTuning = log(*width); + + if (acceptanceRate > targetRate) + logTuning += delta; + else + logTuning -= delta; + + newTuning = exp(logTuning); + if (newTuning > minTuning && newTuning < maxTuning) + *width = newTuning; +} + + +void BuildExhaustiveSearchTree (Tree *t, int chain, int nTaxInTree, TreeInfo *tInfo) +{ + int i; + TreeNode *p, *q, *r; + + if (nTaxInTree == t->nIntNodes + 1) { + + /* Get downpass */ + GetDownPass (t); + + /* Calculate cost of this tree and add to counter */ + tInfo->curScore = GetParsimonyLength (t, chain); + if (tInfo->curScore < tInfo->minScore) + { + tInfo->totalScore *= pow ((tInfo->warp/3.0) / (1.0 - tInfo->warp), tInfo->minScore - tInfo->curScore); + tInfo->totalScore += 1.0; + tInfo->minScore = tInfo->curScore; + } + else + tInfo->totalScore += pow (tInfo->warp/3.0, tInfo->curScore - tInfo->minScore) * pow (1.0-tInfo->warp, tInfo->minScore - tInfo->curScore); + } + + else { + + /* find node to connect */ + q=tInfo->leaf[nTaxInTree]; + + /* add using this ancestral node */ + p=tInfo->vertex[nTaxInTree-1]; + q->anc=p; + p->right=q; + + for (i=0;i<2*nTaxInTree-1;i++) { + /* find node to connect to */ + if (i>=nTaxInTree) + r=tInfo->vertex[i-nTaxInTree]; + else + r=tInfo->leaf[i]; + + /* add to this node */ + p->left=r; + if (r->anc==NULL) + p->anc=NULL; + else { + p->anc=r->anc; + if (r->anc->left==r) + r->anc->left=p; + else + r->anc->right=p; + } + r->anc=p; + + /* next level */ + BuildExhaustiveSearchTree (t, chain, nTaxInTree+1, tInfo); + + if (tInfo->stopScore > 0.0 && tInfo->totalScore >= tInfo->stopScore) + return; + + /* restore tree before trying next possibility */ + r->anc=p->anc; + if (r->anc!=NULL) { + if (r->anc->left==p) + r->anc->left=r; + else + r->anc->right=r; + } + } + } +} + + +/*------------------------------------------------------------------ +| +| BuildParsTrees: Fill in trees using random add seq with parsimony +| +------------------------------------------------------------------*/ +int BuildParsTrees (RandLong *seed, int fromChain, int toChain) +{ + int k, chn; + Param *p, *q; + Tree *tree; + + /* Build starting trees for state 0 */ + for (chn=fromChain; chnparamType == P_TOPOLOGY) + { + assert (p->nSubParams == 1); + q = p->subParams[0]; + tree = GetTree (q, chn, 0); + /* fixed topology */ + if (p->paramId == TOPOLOGY_RCL_FIXED || + p->paramId == TOPOLOGY_RCCL_FIXED || + p->paramId == TOPOLOGY_CL_FIXED || + p->paramId == TOPOLOGY_CCL_FIXED || + p->paramId == TOPOLOGY_NCL_FIXED || + p->paramId == TOPOLOGY_PARSIMONY_FIXED) + { + MrBayesPrint ("%s Tree %s is fixed so a parsimony-based starting tree is not built\n", spacer, p->name); + return (NO_ERROR); + } + /* constrained topology */ + else if (tree->nConstraints > 0) + { + MrBayesPrint ("%s Tree %s is constrained and parsimony-based starting trees are not implemented for constrained trees (yet)\n", spacer, p->name); + return (NO_ERROR); + } + /* random topology */ + else + { + if (BuildStepwiseTree (tree, chn, &globalSeed) == ERROR) + return (ERROR); + } + if (InitializeTreeCalibrations (tree) == ERROR) + return (ERROR); + FillTopologySubParams(p, chn, 0, seed); + } + } + } + + return (NO_ERROR); +} + + +/* build (starting) topology stepwise */ +int BuildStepwiseTree (Tree *t, int chain, RandLong *seed) { + + int i, j, nTips; + TreeNode *p, *q, *r; + CLFlt length; + + // Allocate parsimony matrix if not done already + + /* get the tips */ + for (i=j=0; inNodes; i++) { + p = t->allDownPass[i]; + if (p->left == NULL && p->right == NULL) + t->allDownPass[j++] = p; + else if (p->right == NULL && p->anc == NULL && t->isRooted == NO) + t->allDownPass[j++] = p; + } + nTips = j; + + /* order the tips randomly, use last as root */ + for (i=0; iallDownPass[i]; + t->allDownPass[i] = t->allDownPass[j]; + t->allDownPass[j] = p; + } + + /* build first tree */ + j = 0; + q = t->allDownPass[0]; + r = t->allDownPass[1]; + p = t->intDownPass[j++]; + q->anc = p; + r->anc = p; + p->left = q; + p->right = r; + q = t->allDownPass[nTips-1]; + q->anc = NULL; + q->right = NULL; + q->left = p; + p->anc = q; + t->root = q; + + /* add nodes one at a time */ + for (i=2; iallDownPass[i]; + p = t->intDownPass[j++]; + GetParsDP(t, t->root->left, chain); + GetParsFP(t, t->root->left, chain); + q = FindBestNode(t, t->root->left, r, &length, chain); + p->left = q; + p->right = r; + p->anc = q->anc; + if (q->anc->left == q) + q->anc->left = p; + else + q->anc->right = p; + q->anc = p; + r->anc = p; + } + + /* take care of the root */ + if (t->isRooted == YES) { + r = t->root; + q = t->allDownPass[t->nNodes-1]; + p = t->intDownPass[j]; + q->anc = q->right = NULL; + q->left = p; + p->anc = q; + p->left = r->left; + p->right = r; + p->left->anc = p; + r->left = r->right = NULL; + r->anc = p; + t->root = q; + } + GetDownPass (t); + + return (NO_ERROR); +} + + +/*------------------------------------------------------------------ +| +| CalcLikeAdgamma: calc likelihood for one adgamma correlation HMM +| +-------------------------------------------------------------------*/ +int CalcLikeAdgamma (int d, Param *param, int chain, MrBFlt *lnL) +{ + int c, i, j, nRates, posit, lastCharId; + MrBFlt logScaler, max, prob, *F, + *oldF, *tempF, fSpace[2][MAX_GAMMA_CATS]; + MrBFlt *rP; + CLFlt freq, *lnScaler; + ModelInfo *m; + ModelParams *mp; + BitsLong *inHMM; + + /* find nRates for first division in HMM */ + m = &modelSettings[d]; + mp = &modelParams[d]; + nRates = m->numGammaCats; + + /* calculate rate category frequencies */ + freq = (CLFlt) ((CLFlt) 1.0 / nRates); + + /* find Markov trans probs */ + F = GetParamSubVals (param,chain, state[chain]); + for (i=posit=0; iscalers[m->siteScalerIndex[chain]]; + + /* find rate probs for this chain and state */ + rP = rateProbs[chain] + state[chain] * rateProbRowSize; + + /* set bit vector indicating divisions in this HMM */ + inHMM = (BitsLong *) SafeCalloc (((param->nRelParts/nBitsInALong) + 1), sizeof(BitsLong)); + for (i=0; inRelParts; i++) + { + if (modelSettings[param->relParts[i]].shape == + modelSettings[d].shape) + { + SetBit(param->relParts[i], inHMM); + } + } + + /* Perform the so-called forward algorithm of HMMs */ + /* set up the space for f(c,i) */ + F = fSpace[0]; + oldF = fSpace[1]; + + for (c=0; crateProbStart + (compCharPos[c] - m->compCharStart) * m->numGammaCats; + + for (i=0; i max) + max = F[i]; + } + + for (i=0; idataType == DNA || mp->dataType == RNA) && m->dataType == PROTEIN && charInfo[c].charId == lastCharId) + continue; + else + lastCharId = charInfo[c].charId; + + /* skip if not in HMM */ + if (IsBitSet(partitionId[c][partitionNum] - 1, inHMM) == NO) + continue; + + /* switch F and oldF, since the previous F is now old */ + tempF = F; + F = oldF; + oldF = tempF; + + /* find the position of the rate probs */ + m = &modelSettings[partitionId[c][partitionNum] - 1]; + posit = m->rateProbStart + (compCharPos[c] - m->compCharStart) * m->numGammaCats; + + /* calculate the HMM forward probs fi(x) at site x in HMM */ + if (siteJump[c] <= MAX_SMALL_JUMP) + { + max = 0.0; + for (i=0; i max) + max = F[i]; + } + } + else if (siteJump[c] < BIG_JUMP) /* intermediate jump, calculate trans probs */ + { + MultiplyMatrixNTimes(nRates, markovTi[0], siteJump[c], markovTiN); + max = 0.0; + for (i=0; i max) + max = F[i]; + } + } + else /* big jump, use stationary freqs */ + { + max = 0.0; + for (i=0; i max) + max = F[i]; + } + } + + /* rescale and adjust total scaler with HMM scaler and site scaler */ + for (i=0; inumSamples); + if ((MrBFlt)min != chainParams.minPartFreq * stat->numSamples) + min++; + + /* recursively compute partition frequencies for all subpartitions */ + if (p->left != NULL) + CalcPartFreqStats (p->left, stat); + if (p->right != NULL) + CalcPartFreqStats (p->right, stat); + + for (i=0; icount[i] >= min) + break; + } + + if (i == n) + return; + + sum = 0.0; + sumsq = 0.0; + for (i=0; icount[i]) / (MrBFlt) (stat->numSamples); + sum += f; + sumsq += f * f; + } + + f = (sumsq - sum * sum / n) / (n - 1); + if (f < 0.0) + stdev = 0.0; + else + stdev = sqrt (f); + + stat->sum += stdev; + if (stdev > stat->max) + stat->max = stdev; + + stat->numPartitions++; + + if (chainParams.allComps == YES) + { + for (i=0; icount[i] < min && p->count[j] < min) + continue; + + sum = 0.0; + sumsq = 0.0; + + f = (MrBFlt) (p->count[i]) / (MrBFlt) (stat->numSamples); + sum += f; + sumsq += f * f; + + f = (MrBFlt) (p->count[j]) / (MrBFlt) (stat->numSamples); + sum += f; + sumsq += f * f; + + f = (sumsq - sum * sum / 2.0); + if (f < 0.0) + stdev = 0.0; + else + stdev = sqrt (f); + + if (chainParams.diagnStat == AVGSTDDEV) + stat->pair[i][j] += stdev; + else if (stdev > stat->pair[i][j]) + stat->pair[i][j] = stdev; + stat->pair[j][i]++; + } + } + } +} + + +/*---------------------------------------------------------------- +| +| CalcTopoConvDiagn: Calculate average and max standard deviation +| in clade credibility (partition frequency) values +| +----------------------------------------------------------------*/ +void CalcTopoConvDiagn (int numSamples) +{ + int i, j, n; + STATS *stat; + + for (n=0; nnumSamples = numSamples; + stat->numPartitions = 0.0; + stat->sum = 0.0; + stat->max = 0.0; + + if (chainParams.allComps == YES) + { + for (i=0; ipair[i][j] = 0.0; + } + + CalcPartFreqStats (partFreqTreeRoot[n], stat); + + stat->avgStdDev = stat->sum / stat->numPartitions; + } +} + + +/* used in DoCompRefTree */ +void PartFreq (PFNODE *p, STATS *stat, int *ntrees) +{ + int i, n = chainParams.numRuns; + MrBFlt f, sum, sumsq, stdev; + + /* recursively compute partition frequencies for all subpartitions */ + if (p->left != NULL) + PartFreq (p->left, stat, ntrees); + if (p->right != NULL) + PartFreq (p->right, stat, ntrees); + + sum = sumsq = 0.0; + for (i=0; icount[i]) / (MrBFlt)ntrees[i]; + sum += f; + sumsq += f * f; + } + + f = (sumsq - sum * sum / n) / (n - 1); + if (f < 0.0) + stdev = 0.0; + else + stdev = sqrt (f); + + stat->sum += stdev; + if (stat->max < stdev) + stat->max = stdev; + + stat->numPartitions++; +} +void CalcTopoConvDiagn2 (int *nTrees) +{ + int n; + STATS *stat; + + for (n=0; nnumPartitions = 0.0; + stat->sum = stat->max = 0.0; + + PartFreq (partFreqTreeRoot[n], stat, nTrees); + + stat->avgStdDev = stat->sum / stat->numPartitions; + } +} + + +int CheckTemperature (void) +{ + if (chainParams.userDefinedTemps == YES) + { + if (AreDoublesEqual(chainParams.userTemps[0], 1.0, ETA)==NO) + { + MrBayesPrint ("%s The first user-defined temperature must be 1.0.\n", spacer); + return (ERROR); + } + } + + return (NO_ERROR); +} + + +void CloseMBPrintFiles (void) +{ + int i, n; + +# if defined (MPI_ENABLED) + if (proc_id != 0) + return; +# endif + + for (n=0; nleft, &i, 0); + r = LargestNonemptyPFNode (p->right, &j, 0); + + if (q != NULL || r != NULL) + { + if (i < j) + q = r; + + for (i=0; icount[i] = q->count[i]; + q->count[i] = 0; + } + for (i=0; ipartition[i] = q->partition[i]; + } + } + + p->left = CompactTree (p->left); + p->right = CompactTree (p->right); + + /* delete on the way down if empty */ + if (IsPFNodeEmpty(p) == YES) + { + Tfree (p); + return NULL; + } + else + return p; +} + + +/*----------------------------------------------------------------- +| +| CopyParams: copy parameters of touched divisions +| +-----------------------------------------------------------------*/ +void CopyParams (int chain) +{ + int i, j, k, fromState, toState, *fromInt, *toInt; + MrBFlt *from, *to; + ModelInfo *m; + Param *p; + + /* copy all params */ + /* now done for all vars, can also be done for only touched vars */ + /* but then m->upDateCl must be kept separate for each chain! */ + for (i=0; inValues; j++) + to[j] = from[j]; + + from = GetParamSubVals (p, chain, state[chain]); + to = GetParamSubVals (p, chain, (state[chain] ^ 1)); + + for (j=0; jnSubValues; j++) + to[j] = from[j]; + + fromInt = GetParamIntVals (p, chain, state[chain]); + toInt = GetParamIntVals (p, chain, (state[chain] ^ 1)); + + for (j=0; jnIntValues; j++) + toInt[j] = fromInt[j]; + + if (p->nStdStateFreqs > 0) + { + from = GetParamStdStateFreqs (p, chain, state[chain]); + to = GetParamStdStateFreqs (p, chain, state[chain] ^ 1); + for (j=0; jnStdStateFreqs; j++) + to[j] = from[j]; + } + + if (p->paramType == P_CPPEVENTS) + { + fromState = 2*chain + state[chain]; + toState = 2*chain + (state[chain] ^ 1); + for (j=0; j<2*numLocalTaxa-2; j++) + { + if (p->nEvents[toState][j] != p->nEvents[fromState][j]) + { + if (p->nEvents[fromState][j] == 0) + { + free (p->position[toState][j]); + p->position[toState][j] = NULL; + free (p->rateMult[toState][j]); + p->rateMult[toState][j] = NULL; + } + else if (p->nEvents[toState][j] == 0) + { + p->position[toState][j] = (MrBFlt *) SafeCalloc (p->nEvents[fromState][j], sizeof (MrBFlt)); + p->rateMult[toState][j] = (MrBFlt *) SafeCalloc (p->nEvents[fromState][j], sizeof (MrBFlt)); + } + else + { + p->position[toState][j] = (MrBFlt *) SafeRealloc ((void *)p->position[toState][j], p->nEvents[fromState][j] * sizeof (MrBFlt)); + p->rateMult[toState][j] = (MrBFlt *) SafeRealloc ((void *)p->rateMult[toState][j], p->nEvents[fromState][j] * sizeof (MrBFlt)); + } + p->nEvents[toState][j] = p->nEvents[fromState][j]; + } + if (p->nEvents[fromState][j] > 0) + { + for (k=0; knEvents[fromState][j]; k++) + { + p->position[toState][j][k] = p->position[fromState][j][k]; + p->rateMult[toState][j][k] = p->rateMult[fromState][j][k]; + } + } + } + } + } + + /* copy division params (model settings) for chain */ + /* reset division update flags */ + fromState = 2 * chain + state[chain]; + toState = 2 * chain + (state[chain] ^ 1); + for (i=0; ilnLike[toState] = m->lnLike[fromState]; + if (m->parsModelId == YES) + m->parsTreeLength[toState] = m->parsTreeLength[fromState]; + m->upDateCl = NO; + m->upDateCijk = NO; + m->upDateAll = NO; + } + + return; +} + + +/* CopySiteScalers: Copy site scalers from scratch space into current space */ +void CopySiteScalers (ModelInfo *m, int chain) +{ + CLFlt *from, *to; +# if defined (BEAGLE_ENABLED) + int i, j; +# endif + +# if defined (BEAGLE_ENABLED) + if (m->useBeagle == YES) + { + j = m->siteScalerScratchIndex; + for (i=0; inCijkParts; i++) + { + beagleResetScaleFactors (m->beagleInstance, + m->siteScalerIndex[chain] + i); + beagleAccumulateScaleFactors (m->beagleInstance, + &j, + 1, + m->siteScalerIndex[chain] + i); + j++; + } + return; + } +# endif + from = m->scalers[m->siteScalerScratchIndex]; + to = m->scalers[m->siteScalerIndex[chain]]; + memcpy ((void*) to, (void*) from, (size_t)(m->numChars) * sizeof(CLFlt)); +} + + +/*----------------------------------------------------------------- +| +| CopyTrees: copies touched trees for chain +| resets division and node update flags in the process +| Note: partition information of nodes are not copied if +| either source or destination tree does not have bitsets allocated +| +-----------------------------------------------------------------*/ +void CopyTrees (int chain) +{ + int i, j, n, nTaxa, nLongsNeeded; + TreeNode *p, *q; + Tree *from, *to; + + /* reset division update flags */ + for (i=0; ibitsets != NULL && to->bitsets != NULL) + { + if (from->isRooted == NO) + nTaxa = from->nNodes - from->nIntNodes; + else + nTaxa = from->nNodes - from->nIntNodes - 1; + nLongsNeeded = (int)((nTaxa - 1) / nBitsInALong) + 1; + } + else + nLongsNeeded = 0; + + /* copy nodes */ + for (j=0; jnNodes; j++) + { + /* copy pointers */ + p = from->nodes + j; + q = to->nodes + j; + + if (p->anc != NULL) + q->anc = to->nodes + p->anc->memoryIndex; + else + q->anc = NULL; + + if (p->left != NULL) + q->left = to->nodes + p->left->memoryIndex; + else + q->left = NULL; + + if (p->right != NULL) + q->right = to->nodes + p->right->memoryIndex; + else + q->right = NULL; + + CopyTreeNodes (q, p, nLongsNeeded); + q->upDateCl = q->upDateTi = NO; /* reset update flags */ + } + + for (i=0; inIntNodes; i++) + { + to->intDownPass[i] = to->nodes + from->intDownPass[i]->memoryIndex; + } + for (i=0; inNodes; i++) + { + to->allDownPass[i] = to->nodes + from->allDownPass[i]->memoryIndex; + } + + to->root = to->nodes + from->root->memoryIndex; + + /* rest of tree info is constant and need not be copied */ + } + + return; +} + + +#ifdef VISUAL +BOOL WINAPI CatchInterrupt (DWORD signum) +{ + /* set up signal handler to do the same */ + MrBayesPrint ("\n Ctrl-C detected\n"); + requestAbortRun = YES; + return TRUE; +} +#else +void CatchInterrupt (int signum) +{ + /* set up signal handler to do the same */ + signal (signum, CatchInterrupt); + requestAbortRun = YES; + MrBayesPrint ("\n Ctrl-C detected\n"); +} +#endif + + +/*---------------------------------------------------------------- +| +| DebugNodeScalers: Calculate node scalers sum +| +-----------------------------------------------------------------*/ +CLFlt DebugNodeScalers (TreeNode *p, int division, int chain) +{ + int c; + CLFlt *scP; + CLFlt sum=0.0; + ModelInfo *m; + + m = &modelSettings[division]; + + /* find scalers */ + scP = m->scalers[m->nodeScalerIndex[chain][p->index]]; + + /* remove scalers */ + for (c=0; cnumChars; c++) + sum += scP[c]; + + return sum; +} + + +/*---------------------------------------------------------------- +| +| DebugTreeScalers: Calculate DebugNodeScalers for each node and printit +| +-----------------------------------------------------------------*/ +void DebugTreeScalers(int chain, int d) +{ + int i; + TreeNode *p; + ModelInfo *m; + Tree *tree; + + m = &modelSettings[d]; + tree = GetTree(m->brlens, chain, state[chain]); + + if (m->parsModelId == NO) + { + for (i=0; inIntNodes; i++) + { + p = tree->intDownPass[i]; + + if (p->scalerNode == YES) + { + printf ("Node:%d Sum scalers:%f\n",p->index,DebugNodeScalers(p, d, chain)); + } + } + } +} + + +int DoMcmc (void) +{ + RandLong seed; + int rc, i, j, run; + char c; + FILE *tempFile; + char temp[20]; + char *strBuf,*tmpcp; + double tmp; + +# if defined (BEST_MPI_ENABLED) + Tree *tree; +# endif + +# if !defined (VISUAL) && !defined (MPI_ENABLED) + sighandler_t sigint_oldhandler, sigterm_oldhandler; +# endif + + numPreviousGen = 0; /* Make sure this is reset */ + + /* Check to see that we have a data matrix. Otherwise, the MCMC is rather + pointless. */ + if (defMatrix == NO) + { + MrBayesPrint ("%s A character matrix must be defined first\n", spacer); + goto errorExit; + } + + if (setUpAnalysisSuccess == NO) + { + MrBayesPrint ("%s The analysis could not be started because there was an error during its setup.\n", spacer); + MrBayesPrint ("%s Refer to error messages printed during model set up to adress the problem.\n", spacer); + goto errorExit; + } + + /* set file names */ + sumtParams.numRuns = chainParams.numRuns; + sumpParams.numRuns = chainParams.numRuns; + sumssParams.numRuns = chainParams.numRuns; + + if (fileNameChanged == YES) + { + SetFileNames(); + fileNameChanged = NO; + } + + MrBayesPrint ("%s Running Markov chain\n", spacer); + + /* Check the chain temperature parameters */ + if (CheckTemperature () == ERROR) + goto errorExit; + + /* Set the chain random number seeds here. We have two seeds. One + (called swapSeed) is only used to determine which two chains + will swap states in the next trial. The other (called seed) is + the seed for our work-horse pseudorandom number generator. Note + that if we are doing MPI, we want the swap seed to be the same + for every processor. This is taken care of when we initialize + things in the program. If we are doing MPI, we also want to make + certain that seed is different for every processor. */ +# if defined (MPI_ENABLED) + seed = globalSeed + (proc_id + 1); + if (seed < 0) + seed = -seed; +# else + seed = globalSeed; +# endif + + /* Get a unique identifier (stamp) for this run. This is used as + an identifier for each mcmc analysis. It uses runIDSeed to initialize + the stamp. All of the processors should have the same seed, so + this should be safe. */ + GetStamp (); + + MrBayesPrint ("%s Seed = %d\n", spacer, seed); + MrBayesPrint ("%s Swapseed = %d\n", spacer, swapSeed); + + /* Show the model to make sure the user sees it before running the analysis */ + if (ShowModel() == ERROR) + goto errorExit; + MrBayesPrint ("\n"); + + /* Warn the user or stop analysis in case the model is strange */ + if (CheckModel() == ERROR) + goto errorExit; + + /* Determine the number of local chains and data splits */ + if (SetLocalChainsAndDataSplits() == ERROR) + goto errorExit; + + /* Set up the moves to be used */ + if (SetUsedMoves () == ERROR) + goto errorExit; + + /* Check to see that we have at least one move. Otherwise, the MCMC is rather + pointless. */ + if (numUsedMoves == 0) + { + MrBayesPrint ("%s No move is currently switched on.\n", spacer); + MrBayesPrint ("%s There must be at least one move to run an MCMC analysis.\n", spacer); + MrBayesPrint ("%s Switch on moves using the 'propset' command.\n", spacer); + goto errorExit; + } + + /* Show summary table of moves that will be used */ + if (ShowMoveSummary () == ERROR) + goto errorExit; + + /* Set the likelihood function pointers. */ + if (SetLikeFunctions () == ERROR) + goto errorExit; + + /* Set up number of characters of each character pattern. */ + if (FillNumSitesOfPat () == ERROR) + goto errorExit; + + /* Initialize parsimony sets. */ + if (InitParsSets() == ERROR) + goto errorExit; + + /* Set up a terminal state index matrix for local compression. */ + if (SetUpTermState() == ERROR) + goto errorExit; + + /* Initialize conditional likelihoods and transition probabilities for chain (the working space). */ + if (InitChainCondLikes () == ERROR) + goto errorExit; + + /* Initialize adgamma conditional likelihoods */ + if (InitAdGamma () == ERROR) + goto errorExit; + + /* Initialize invariable conditional likelihoods. */ + if (InitInvCondLikes() == ERROR) + goto errorExit; + + /* Allocate BEST chain variables */ + if (numTopologies > 1 && !strcmp(modelParams[0].topologyPr,"Speciestree")) + AllocateBestChainVariables(); + + /* allocate SS memory for the chains if needed */ + if (chainParams.isSS == YES) + { + if (memAllocs[ALLOC_SS] == YES) + { + MrBayesPrint ("%s SS is already allocated\n", spacer); + goto errorExit; + } + else if ((marginalLnLSS = (MrBFlt *) SafeCalloc (chainParams.numRuns, sizeof(MrBFlt))) == NULL) + { + MrBayesPrint ("%s Problem allocating marginalLnLSS\n", spacer); + goto errorExit; + } + else if ((stepScalerSS = (MrBFlt *) SafeCalloc (chainParams.numRuns, sizeof(MrBFlt))) == NULL) + { + MrBayesPrint ("%s Problem allocating stepScalerSS\n", spacer); + free (marginalLnLSS); + goto errorExit; + } + else if ((stepAcumulatorSS = (MrBFlt *) SafeCalloc (chainParams.numRuns, sizeof(MrBFlt))) == NULL) + { + MrBayesPrint ("%s Problem allocating stepAcumulatorSS\n", spacer); + free (stepScalerSS); + free (marginalLnLSS); + goto errorExit; + } + else if ((splitfreqSS = (MrBFlt *) SafeCalloc (chainParams.numStepsSS*numTopologies, sizeof(MrBFlt))) == NULL) + { + MrBayesPrint ("%s Problem allocating splitfreqSS\n", spacer); + free (stepScalerSS); + free (marginalLnLSS); + free (stepAcumulatorSS); + goto errorExit; + } + else + memAllocs[ALLOC_SS] = YES; + } + + /* Either append to previous run or deal with starting values */ + if (chainParams.append == YES) + { + /* Continue old run */ + + /* Get starting values from checkpoint file */ + MrBayesPrint ("%s Getting values from previous run\n", spacer); + strcpy(inputFileName, chainParams.chainFileName); + strcat(inputFileName, ".ckp"); + if (OpenTextFileR(inputFileName) == NULL) + { + MrBayesPrint ("%s Could not find the checkpoint file '%s'.\n", spacer, inputFileName); + MrBayesPrint ("%s Make sure it is in the working directory.\n", spacer); + goto errorExit; + } + + if (DoExecute () == ERROR) + goto errorExit; + + /* Get number of generations to start from and SS information if needed */ + temp[0] = '\0'; + numPreviousGen = 0; +# if defined (MPI_ENABLED) + if (proc_id == 0) { +# endif + tempFile = OpenBinaryFileR (inputFileName); + do { c = fgetc(tempFile); + } while (c!=':' && c!=EOF); + if (c!=EOF) + { + do { c = fgetc(tempFile); + } while (c!=':' && c!=EOF); + } + if (c!=EOF) + { + do { c = fgetc(tempFile); + } while (!isdigit(c) && c!=EOF); + } + if (c!=EOF) + { + i=0; + while (c >= '0' && c <= '9' && i < 18) + { + temp[i++] = c; + c = fgetc(tempFile); + } + temp[i] = '\0'; + numPreviousGen = atoi(temp); + } + if (chainParams.isSS==YES && c!=EOF) + { + do { c = fgetc(tempFile); + } while (c!=':' && c!=EOF); + strBuf = (char *) SafeCalloc (chainParams.numRuns*20,sizeof(char)); + if (fgets(strBuf,chainParams.numRuns*20,tempFile)==NULL) + { + MrBayesPrint ("%s Error: Reading SsAcumulators from .ckp file fails.\n", spacer); + free(strBuf); + goto errorExit; + } + + tmpcp=strtok(strBuf," "); + for (run=0; run= chainParams.numGen) + { + MrBayesPrint ("%s The specified number of generations (%d) was already finished in\n", spacer, chainParams.numGen); + MrBayesPrint ("%s the previous run you are trying to append to.\n", spacer); + goto errorExit; + } + else + MrBayesPrint ("%s Using samples up to generation %d from previous analysis.\n", spacer, numPreviousGen); + } + else + { + /* New run */ + + /* deal with starting param values */ + if (!strcmp(chainParams.startParams,"Reset")) + { + MrBayesPrint ("%s Resetting starting values for substitution model parameters\n", spacer); + FillNormalParams (&seed, 0, numLocalChains); + } + + /* deal with starting treeparam values */ + if (!strcmp(chainParams.startTree,"Random")) + { + MrBayesPrint ("%s Resetting starting trees and tree parameters\n", spacer); + FillTreeParams (&seed, 0, numLocalChains); + } + else if (!strcmp(chainParams.startTree,"Parsimony")) + { + MrBayesPrint ("%s Rebuilding starting trees using random addition sequences and parsimony\n", spacer); + BuildParsTrees (&seed, 0, numLocalChains); + } + + /* Perturb start trees if requested */ + if (chainParams.numStartPerts > 0) + { + MrBayesPrint ("%s Randomly perturbing starting trees\n", spacer); + for (i=0; i 0.8) + { + MrBayesPrint ("%s Minimum partition frequency too high (> 0.8)\n", spacer); + free (tempStr); + return (ERROR); + } + chainParams.minPartFreq = tempD; + MrBayesPrint ("%s Setting minimum partition frequency to %.2f\n", spacer, chainParams.minPartFreq); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Nruns (numRuns) ****************************************************************/ + else if (!strcmp(parmName, "Nruns")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + if (tempI < 1) + { + MrBayesPrint ("%s Too few runs (minimum of 1 run)\n", spacer); + free(tempStr); + return (ERROR); + } + if (tempI > MAX_RUNS) + { + MrBayesPrint ("%s Too many runs (maximum of %d runs)\n", spacer, MAX_RUNS); + free(tempStr); + return (ERROR); + } + if (ChangeNumRuns (chainParams.numRuns, tempI) == ERROR) + return (ERROR); + chainParams.numRuns = tempI; + fileNameChanged = YES; + MrBayesPrint ("%s Setting number of runs to %d\n", spacer, chainParams.numRuns); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Nchains (numChains) ************************************************************/ + else if (!strcmp(parmName, "Nchains")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + if (tempI < 1) + { + MrBayesPrint ("%s Too few chains (minimum of 1 chain)\n", spacer); + free(tempStr); + return (ERROR); + } + if (tempI > MAX_CHAINS) + { + MrBayesPrint ("%s Too many chains (maximum of %d chains)\n", spacer, MAX_CHAINS); + free(tempStr); + return (ERROR); + } + if (ChangeNumChains (chainParams.numChains, tempI) == ERROR) + return (ERROR); + chainParams.numChains = tempI; + MrBayesPrint ("%s Setting number of chains to %d\n", spacer, chainParams.numChains); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Temp (chainTemp) ***************************************************************/ + else if (!strcmp(parmName, "Temp")) + { + if (expecting == Expecting(EQUALSIGN)) + { + tempIndex = 0; + expecting = Expecting(NUMBER) | Expecting(LEFTPAR); + } + else if (expecting == Expecting(LEFTPAR)) + { + chainParams.userDefinedTemps = YES; + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + MrBayesPrint ("%s Setting user-defined temperatures\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(NUMBER)) + { + if (chainParams.userDefinedTemps == NO) + { + sscanf (tkn, "%lf", &tempD); + chainParams.chainTemp = tempD; + MrBayesPrint ("%s Setting heating parameter to %lf\n", spacer, chainParams.chainTemp); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + if (tempIndex >= MAX_CHAINS) + { + MrBayesPrint ("%s Too many user-defined temperatures (%d maximum)\n", spacer, MAX_CHAINS); + free(tempStr); + return (ERROR); + } + sscanf (tkn, "%lf", &tempD); + chainParams.userTemps[tempIndex++] = tempD; + expecting = Expecting(COMMA) | Expecting(RIGHTPAR); + } + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Reweight (weightScheme) ********************************************************/ + else if (!strcmp(parmName, "Reweight")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(LEFTPAR); + else if (expecting == Expecting(LEFTPAR)) + { + expecting = Expecting(NUMBER); + whichReweightNum = 0; + } + else if (expecting == Expecting(NUMBER)) + { + if (whichReweightNum < 0 || whichReweightNum > 2) + { + free(tempStr); + return (ERROR); + } + sscanf (tkn, "%lf", &tempD); + chainParams.weightScheme[whichReweightNum] = tempD; + if (whichReweightNum < 2) + { + if (tempD < 0.0 || tempD > 100.0) + { + MrBayesPrint ("%s The reweighting parameter must be between 0 and 100\n", spacer); + chainParams.weightScheme[0] = chainParams.weightScheme[1] = 0.0; + chainParams.weightScheme[2] = 1.0; + free(tempStr); + return (ERROR); + } + } + else + { + if (tempD <= 0.0 || tempD > 1.0) + { + MrBayesPrint ("%s The reweighting increment must be between 0 and 1\n", spacer); + chainParams.weightScheme[0] = chainParams.weightScheme[1] = 0.0; + chainParams.weightScheme[2] = 1.0; + free(tempStr); + return (ERROR); + } + } + if (whichReweightNum == 0) + { + expecting = Expecting(COMMA); + } + else if (whichReweightNum == 1) + { + if (chainParams.weightScheme[0] + chainParams.weightScheme[1] > 100.0) + { + MrBayesPrint ("%s The sum of the reweighting parameters cannot exceed 100 %%\n", spacer); + chainParams.weightScheme[0] = chainParams.weightScheme[1] = 0.0; + chainParams.weightScheme[2] = 1.0; + free(tempStr); + return (ERROR); + } + expecting = Expecting(COMMA) | Expecting(RIGHTPAR); + } + else + { + expecting = Expecting(RIGHTPAR); + } + whichReweightNum++; + } + else if ((expecting & Expecting(COMMA)) == Expecting(COMMA)) + expecting = Expecting(NUMBER); + else if ((expecting & Expecting(RIGHTPAR)) == Expecting(RIGHTPAR)) + { + if (chainParams.weightScheme[0] >= 100.0) + { + MrBayesPrint ("%s Cannot decrease weight of all characters\n", spacer); + chainParams.weightScheme[0] = chainParams.weightScheme[1] = 0.0; + chainParams.weightScheme[2] = 1.0; + free(tempStr); + return (ERROR); + } + MrBayesPrint ("%s Setting reweighting parameter to (%1.2lf v, %1.2lf ^) increment = %1.2lf\n", + spacer, chainParams.weightScheme[0], chainParams.weightScheme[1], chainParams.weightScheme[2]); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Filename (chainFileName) *******************************************************/ + else if (!strcmp(parmName, "Filename")) + { + if (expecting == Expecting(EQUALSIGN)) + { + expecting = Expecting(ALPHA); + readWord = YES; + } + else if (expecting == Expecting(ALPHA)) + { + sscanf (tkn, "%s", tempStr); + if (strlen(tempStr)>99) + { + MrBayesPrint ("%s Maximum allowed length of chain file name is 99 characters. The given name:\n", spacer); + MrBayesPrint ("%s '%s'\n", spacer,tempStr); + MrBayesPrint ("%s has %d characters.\n", spacer,strlen(tempStr)); + return (ERROR); + } + strcpy (chainParams.chainFileName, tempStr); + fileNameChanged = YES; + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Relburnin (relativeBurnin) ********************************************************/ + else if (!strcmp(parmName, "Relburnin")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.relativeBurnin = YES; + else + chainParams.relativeBurnin = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Relburnin\n", spacer); + free(tempStr); + return (ERROR); + } + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using relative burnin (a fraction of samples discarded).\n", spacer); + else + MrBayesPrint ("%s Using absolute burnin (a fixed number of samples discarded).\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free (tempStr); + return (ERROR); + } + } + /* set Burnin (chainBurnIn) ***********************************************************/ + else if (!strcmp(parmName, "Burnin")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + chainParams.chainBurnIn = tempI; + MrBayesPrint ("%s Setting chain burn-in to %d\n", spacer, chainParams.chainBurnIn); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Burninfrac (burninFraction) ************************************************************/ + else if (!strcmp(parmName, "Burninfrac")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%lf", &tempD); + if (tempD < 0.01) + { + MrBayesPrint ("%s Burnin fraction too low (< 0.01)\n", spacer); + free(tempStr); + return (ERROR); + } + if (tempD > 0.50) + { + MrBayesPrint ("%s Burnin fraction too high (> 0.50)\n", spacer); + free(tempStr); + return (ERROR); + } + chainParams.burninFraction = tempD; + MrBayesPrint ("%s Setting burnin fraction to %.2f\n", spacer, chainParams.burninFraction); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Stoprule (stopRule) ********************************************************/ + else if (!strcmp(parmName, "Stoprule")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.stopRule = YES; + else + chainParams.stopRule = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Stoprule\n", spacer); + free(tempStr); + return (ERROR); + } + if (chainParams.stopRule == YES) + MrBayesPrint ("%s Using stopping rule.\n", spacer); + else + MrBayesPrint ("%s Not using stopping rule.\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Stopval (stopVal) ************************************************************/ + else if (!strcmp(parmName, "Stopval")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%lf", &tempD); + if (tempD < 0.000001) + { + MrBayesPrint ("%s Stop value too low (< 0.000001)\n", spacer); + free(tempStr); + return (ERROR); + } + if (tempD > 0.20) + { + MrBayesPrint ("%s Stop value too high (> 0.20)\n", spacer); + free(tempStr); + return (ERROR); + } + chainParams.stopVal = tempD; + MrBayesPrint ("%s Setting burnin fraction to %.2f\n", spacer, chainParams.burninFraction); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Starttree (startTree) **************************************************/ + else if (!strcmp(parmName, "Starttree")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr,"User")) + { + MrBayesPrint ("%s The 'user' setting of 'Starttree' is deprecated. Set starting trees using 'Startvals' instead.\n", spacer); + free (tempStr); + return (ERROR); + } + else + strcpy(chainParams.startTree, tempStr); + } + else + { + MrBayesPrint ("%s Invalid 'Starttree' argument '%s'. This is a bug -- please report.\n", spacer, tempStr); + free(tempStr); + return (ERROR); + } + MrBayesPrint ("%s Setting 'Starttree' to \"%s\"\n", spacer, chainParams.startTree); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Startingtrees (deprecated) **************************************************/ + else if (!strcmp(parmName, "Startingtrees")) + { + free (tempStr); + MrBayesPrint ("%s Parameter 'Startingtrees' is deprecated. Use the 'Starttree' parameter or the 'Startvals' command instead.\n", spacer); + return (ERROR); + } + /* set Nperts (numStartPerts) *********************************************************/ + else if (!strcmp(parmName, "Nperts")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + chainParams.numStartPerts = tempI; + MrBayesPrint ("%s Setting number of perturbations to start tree to %d\n", spacer, chainParams.numStartPerts); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Startparams (startParams) **************************************************/ + else if (!strcmp(parmName, "Startparams")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + strcpy(chainParams.startParams, tempStr); + else + { + MrBayesPrint ("%s Invalid 'Startparams' argument\n", spacer); + free(tempStr); + return (ERROR); + } + MrBayesPrint ("%s Setting 'Startparams' to \"%s\"\n", spacer, chainParams.startParams); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Savebrlens (saveBrlens) ********************************************************/ + else if (!strcmp(parmName, "Savebrlens")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + ; /* This is the only option in version 3.2 */ + else + MrBayesPrint ("%s WARNING: Ignoring savebrlens setting; since version 3.2, branch lengths are always saved\n", spacer); + } + else + { + MrBayesPrint ("%s Invalid argument for savebrlens\n", spacer); + free(tempStr); + return (ERROR); + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + } + /* set Redirect (redirect) ********************************************************/ + else if (!strcmp(parmName, "Redirect")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.redirect = YES; + else + chainParams.redirect = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for redirecting output\n", spacer); + free(tempStr); + return (ERROR); + } + if (chainParams.redirect == YES) + MrBayesPrint ("%s Setting program to redirect output\n", spacer); + else + MrBayesPrint ("%s Setting program not to redirect output\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Data (runWithData) ************************************************************/ + else if (!strcmp(parmName, "Data")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.runWithData = YES; + else + chainParams.runWithData = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Data\n", spacer); + free(tempStr); + return (ERROR); + } + if (chainParams.runWithData == NO) + MrBayesPrint ("%s Running without data (WARNING: use this only for checking priors!)\n", spacer); + else + MrBayesPrint ("%s Running with data (standard analysis)\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Ordertaxa (chainParams.orderTaxa) *********************************************/ + else if (!strcmp(parmName, "Ordertaxa")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.orderTaxa = YES; + else + chainParams.orderTaxa = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for ordertaxa\n", spacer); + free(tempStr); + return (ERROR); + } + if (chainParams.orderTaxa == YES) + MrBayesPrint ("%s Setting ordertaxa to yes\n", spacer); + else + MrBayesPrint ("%s Setting ordertaxa to no\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Append (chainParams.append) *********************************************/ + else if (!strcmp(parmName, "Append")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.append = YES; + else + chainParams.append = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for append\n", spacer); + free(tempStr); + return (ERROR); + } + if (chainParams.append == YES) + MrBayesPrint ("%s Setting append to yes\n", spacer); + else + MrBayesPrint ("%s Setting append to no\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Autotune (chainParams.autotune) *********************************************/ + else if (!strcmp(parmName, "Autotune")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.autotune = YES; + else + chainParams.autotune = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Autotune\n", spacer); + free(tempStr); + return (ERROR); + } + if (chainParams.autotune == YES) + MrBayesPrint ("%s Setting Autotune to yes\n", spacer); + else + MrBayesPrint ("%s Setting Autotune to no\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Tunefreq (tuneFreq) ************************************************************/ + else if (!strcmp(parmName, "Tunefreq")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + if (tempI < 10) + { + MrBayesPrint ("%s Autotuning frequency must be at least 10\n", spacer); + free(tempStr); + return (ERROR); + } + chainParams.tuneFreq = tempI; + MrBayesPrint ("%s Setting autotuning frequency to %d\n", spacer, chainParams.tuneFreq); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + /* set Swapadjacent (swapAdjacentOnly) **************************************************/ + else if (!strcmp(parmName, "Swapadjacent")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.swapAdjacentOnly = YES; + else + chainParams.swapAdjacentOnly = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Swapadjacent\n", spacer); + free(tempStr); + return (ERROR); + } + if (chainParams.swapAdjacentOnly == YES) + MrBayesPrint ("%s Setting program to attempt swaps only between chains of adjacent temperatures\n", spacer); + else + MrBayesPrint ("%s Setting program to attempt all possible swaps between chains\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + free(tempStr); + return (ERROR); + } + } + else + { + free(tempStr); + return (ERROR); + } + } + free(tempStr); + return (NO_ERROR); +} + + +int DoSs (void) +{ + int ret, oldBurnin; + + if (chainParams.numGen/chainParams.sampleFreq <= chainParams.burninSS) + {/*Do not change print out to generations vs samples because of danger of overflow*/ + MrBayesPrint ("%s ERROR: Burnin %d samples is too large compared with requested total %d samples (%d generations).\n", spacer ,chainParams.burninSS, chainParams.numGen/chainParams.sampleFreq, chainParams.numGen); + return ERROR; + } + + oldBurnin = chainParams.burninSS;; + stepRelativeBurninSS = chainParams.relativeBurnin; + + chainParams.relativeBurnin = YES; + + if (chainParams.burninSS < 0) + chainParams.burninSS = chainParams.numGen / ((chainParams.numStepsSS-chainParams.burninSS)*chainParams.sampleFreq); + chainParams.isSS = YES; + + ret=DoMcmc(); + + chainParams.isSS = NO; + chainParams.burninSS = oldBurnin; + chainParams.relativeBurnin = stepRelativeBurninSS; + + return ret; +} + + +int DoSsp (void) +{ + return NO_ERROR; +} + + +int ExhaustiveParsimonySearch (Tree *t, int chain, TreeInfo *tInfo) +{ + int i, j, k; + TreeNode *p; + + for (i=j=k=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL || p->right == NULL) + tInfo->leaf[j++] = p; + else + tInfo->vertex[k++] = p; + } + + tInfo->leaf[0]->anc = tInfo->leaf[1]->anc = tInfo->vertex[0]; + tInfo->vertex[0]->left = tInfo->leaf[0]; + tInfo->vertex[0]->right = tInfo->leaf[1]; + tInfo->leaf[t->nIntNodes+1]->left = tInfo->vertex[0]; + tInfo->vertex[0]->anc = tInfo->leaf[t->nIntNodes+1]; + + BuildExhaustiveSearchTree (t, chain, 2, tInfo); + + return (NO_ERROR); +} + + +int ExtendChainQuery () +{ + int extendChain, additionalCycles; + char s[100]; + +# if defined (MPI_ENABLED) + if (proc_id == 0) + { + MrBayesPrint ("\n"); + extendChain = WantTo ("Continue with analysis"); + } + MPI_Bcast (&extendChain, 1, MPI_INT, 0, MPI_COMM_WORLD); + if (extendChain == YES) + { + if (proc_id == 0) + { + additionalCycles = 0; + do + { + if (additionalCycles < 0) + MrBayesPrint ("%s Number must be greater than or equal to 0: ", spacer); + else + MrBayesPrint ("%s Additional number of generations: ", spacer); + + if (fgets (s, 100, stdin) == NULL) + { + printf ("Error in function: %s at line: %d in file: %s", __FUNCTION__, __LINE__, __FILE__); + } + sscanf (s, "%d", &additionalCycles); + + } while (additionalCycles < 0); + MrBayesPrint ("\n"); + } + MPI_Bcast (&additionalCycles, 1, MPI_INT, 0, MPI_COMM_WORLD); + + return (additionalCycles); + } + else + return (0); +# else + MrBayesPrint ("\n"); + extendChain = WantTo ("Continue with analysis"); + + if (extendChain == YES) + { + additionalCycles = 0; + do + { + if (additionalCycles < 0) + MrBayesPrint ("%s Number must be greater than or equal to 0: ", spacer); + else + MrBayesPrint ("%s Additional number of generations: ", spacer); + + if (fgets (s, 20, stdin) == NULL) + { + printf ("Error in function: %s at line: %d in file: %s", __FUNCTION__, __LINE__, __FILE__); + } + sscanf (s, "%d", &additionalCycles); + + } while (additionalCycles < 0); + MrBayesPrint ("\n"); + return (additionalCycles); + } + else + return (0); +# endif + +} + + +int FillNumSitesOfPat (void) +{ + int i, j, n, *increased, *decreased, nToDecrease, nToIncrease, whichToChange; + MrBFlt ran, sum; + CLFlt wtIncrement; + + wtIncrement = (CLFlt) chainParams.weightScheme[2]; + increased = decreased = NULL; + + /* reallocate numSitesOfPat */ + if (memAllocs[ALLOC_NUMSITESOFPAT] == NO) + { + MrBayesPrint ("%s numSitesOfPat is not allocated\n", spacer); + goto errorExit; + } + memAllocs[ALLOC_NUMSITESOFPAT] = NO; + numSitesOfPat = (CLFlt *) SafeRealloc((void *) numSitesOfPat, numCompressedChars * chainParams.numChains * sizeof(MrBFlt)); + if (!numSitesOfPat) + { + MrBayesPrint ("%s Problem reallocating numSitesOfPat (%d)\n", spacer, numCompressedChars * chainParams.numChains * sizeof(MrBFlt)); + goto errorExit; + } + memAllocs[ALLOC_NUMSITESOFPAT] = YES; + + /* copy first numCompressedChars into the remaining bits */ + if (chainParams.numChains > 1) + { + for (i=0; i 1) + { + if (chainParams.weightScheme[0] + chainParams.weightScheme[1] > 0.0001) + MrBayesPrint ("%s Reweighting of characters for chains 1 to %d\n", spacer, chainParams.numChains); + + /* check that we don't have an HMM */ + if (chainHasAdgamma == YES && chainParams.weightScheme[0] + chainParams.weightScheme[1] > 0.0001) + { + MrBayesPrint ("%s Reweighting of characters is not allowed with an autocorrelated gamma model\n", spacer); + goto errorExit; + } + + /* how many characters */ + n = 0; + for (i=0; i 0.0001) + { + MrBayesPrint ("%s Decreasing weight of %d characters\n", spacer, nToDecrease); + MrBayesPrint ("%s Increasing weight of %d characters\n", spacer, nToIncrease); + } + + /* allocate memory */ + increased = (int *)SafeMalloc(2 * (size_t)numCompressedChars * sizeof(int)); + if (!increased) + { + MrBayesPrint ("%s Problem reallocating increased (%d)\n", spacer, numCompressedChars * chainParams.numChains * sizeof(int)); + goto errorExit; + } + decreased = increased + numCompressedChars; + + /* reweight characters for each chain */ + for (j=1; j= numCompressedChars) + continue; + } while (decreased[whichToChange] >= numSitesOfPat[0 * numCompressedChars + whichToChange]); + decreased[whichToChange]++; + numSitesOfPat[j * numCompressedChars + whichToChange] -= wtIncrement; + if (numSitesOfPat[j * numCompressedChars + whichToChange] < 0) + { + MrBayesPrint ("%s Problem reweighting characters\n", spacer); + goto errorExit; + } + } + + /* increase weight of characters */ + for (i=0; i= numCompressedChars) + continue; + } while ((increased[whichToChange] + decreased[whichToChange]) >= numSitesOfPat[0 * numCompressedChars + whichToChange]); + increased[whichToChange]++; + numSitesOfPat[j * numCompressedChars + whichToChange] += wtIncrement; + if (numSitesOfPat[j * numCompressedChars + whichToChange] < 0) + { + MrBayesPrint ("%s Problem reweighting characters\n", spacer); + goto errorExit; + } + } + + } + + /* free allocated memory */ + free (increased); + } + +# if 0 + /* print site patterns for each chain */ + for (i=0; inRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + /* Find number of site patterns */ + nSitesOfPat = numSitesOfPat + ((1 % chainParams.numChains) * numCompressedChars) + m->compCharStart; + + /* Find final-pass parsimony sets for the node and its ancestor */ + pP = m->parsSets[p->index ]; + pA = m->parsSets[p->anc->index ]; + pX = m->parsSets[addNode->index]; + + for (c=0; cnumChars; c++) + { + if (((pP[c] | pA[c])&pX[c]) == 0) + fpLength += nSitesOfPat[c]; + } + } + + /* If tip, this is the best node and its length is the min length */ + if (p->left == NULL) + { + *minLength = fpLength; + return p; + } + + /* Find best node and min length above this node */ + if (p->left != NULL) { + q = FindBestNode(t, p->left, addNode, minLength, chain); + r = FindBestNode(t, p->right, addNode, &length, chain); + if (length < *minLength) { + *minLength = length; + q = r; + } + } + + /* Return best node and min length */ + if (*minLength < fpLength) + return q; + else /* This node is the best */ + { + *minLength = fpLength; + return p; + } +} + + +/* FlipCijkSpace: Flip space for cijks with scratch area */ +void FlipCijkSpace (ModelInfo* m, int chain) +{ + int temp; + + temp = m->cijkIndex[chain]; + m->cijkIndex[chain] = m->cijkScratchIndex; + m->cijkScratchIndex = temp; +} + + +/* FlipCondLikeSpace: Flip space for conditional likelihoods with scratch area */ +void FlipCondLikeSpace (ModelInfo* m, int chain, int nodeIndex) +{ + int temp; + + temp = m->condLikeIndex[chain][nodeIndex]; + m->condLikeIndex[chain][nodeIndex] = m->condLikeScratchIndex[nodeIndex]; + m->condLikeScratchIndex[nodeIndex] = temp; +} + + +/* FlipNodeScalerSpace: Flip space for node scalers and scaler flag with scratch area */ +void FlipNodeScalerSpace (ModelInfo* m, int chain, int nodeIndex) +{ + int temp; + + temp = m->nodeScalerIndex[chain][nodeIndex]; + m->nodeScalerIndex[chain][nodeIndex] = m->nodeScalerScratchIndex[nodeIndex]; + m->nodeScalerScratchIndex[nodeIndex] = temp; + + temp = m->scalersSet[chain][nodeIndex]; + m->scalersSet[chain][nodeIndex] = m->scalersSetScratch[nodeIndex]; + m->scalersSetScratch[nodeIndex] = temp; +} + + +/* FlipSiteScalerSpace: Flip space for ln site scalers */ +void FlipSiteScalerSpace (ModelInfo *m, int chain) +{ + int temp; + +# if defined (BEAGLE_ENABLED) + int *tempp; +# endif + + temp = m->siteScalerIndex[chain]; + m->siteScalerIndex[chain] = m->siteScalerScratchIndex; + m->siteScalerScratchIndex = temp; + +# if defined (BEAGLE_ENABLED) + if (m->useBeagle == YES) + { + tempp = m->isScalerNode[chain]; + m->isScalerNode[chain] = m->isScalerNodeScratch ; + m->isScalerNodeScratch = tempp; + } +# endif +} + + +/* FlipTiProbsSpace: Flip space for ti probs with scratch area */ +void FlipTiProbsSpace (ModelInfo* m, int chain, int nodeIndex) +{ + int temp; + + temp = m->tiProbsIndex[chain][nodeIndex]; + m->tiProbsIndex[chain][nodeIndex] = m->tiProbsScratchIndex[nodeIndex]; + m->tiProbsScratchIndex[nodeIndex] = temp; +} + + +void FreeChainMemory (void) +{ + int i, j, k, nRateCats; + ModelInfo *m; + + /* free model variables for Gibbs gamma */ + for (i=0; iparsSets) + { + for (j=0; jnumParsSets; j++) + free (m->parsSets[j]); + free (m->parsSets); + m->parsSets = NULL; + } + if (m->parsNodeLens) + { + free(m->parsNodeLens); + m->parsNodeLens = NULL; + } + } + + /* free model variables for conditional likelihoods */ + for (i=0; icondLikes) + { + for (j=0; jnumCondLikes; j++) + { +# if defined (SSE_ENABLED) + if (m->useSSE == YES) + AlignedSafeFree ((void **)(&m->condLikes[j])); + else + free (m->condLikes[j]); +# else + free (m->condLikes[j]); +# endif + } + free (m->condLikes); + m->condLikes = NULL; + } + + if (m->scalers) + { + for (j=0; jnumScalers; j++) +# if defined (SSE_ENABLED) + if (m->useSSE == YES) + AlignedSafeFree ((void **)(&m->scalers[j])); + else + free (m->scalers[j]); +# else + free (m->scalers[j]); + +# endif + free (m->scalers); + m->scalers = NULL; + } + + if (m->clP) + { + free (m->clP); + m->clP = NULL; + } +# if defined (SSE_ENABLED) + if (m->useSSE == YES) + { + if (m->clP_SSE) + { + free (m->clP_SSE); + m->clP_SSE = NULL; + } + if (m->lnL_SSE) + AlignedSafeFree ((void **)(&m->lnL_SSE)); + if (m->lnLI_SSE) + AlignedSafeFree ((void **)(&m->lnLI_SSE)); + } +# endif + + if (m->tiProbs) + { + for (j=0; jnumTiProbs; j++) + free (m->tiProbs[j]); + free (m->tiProbs); + m->tiProbs = NULL; + } + + if (m->cijks) + { + for (j=0; jcijks[j]); + free (m->cijks); + m->cijks = NULL; + } + + if (m->condLikeIndex) + { + for (j=0; jcondLikeIndex[j]); + free (m->condLikeIndex); + m->condLikeIndex = NULL; + } + + if (m->condLikeScratchIndex) + { + free (m->condLikeScratchIndex); + m->condLikeScratchIndex=NULL; + } + + if (m->tiProbsIndex) + { + for (j=0; jtiProbsIndex[j]); + free (m->tiProbsIndex); + m->tiProbsIndex = NULL; + } + if (m->tiProbsScratchIndex) + { + free (m->tiProbsScratchIndex); + m->tiProbsScratchIndex = NULL; + } + if (m->nodeScalerIndex) + { + for (j=0; jnodeScalerIndex[j]); + free (m->nodeScalerIndex); + m->nodeScalerIndex = NULL; + } + if (m->nodeScalerScratchIndex) + { + free (m->nodeScalerScratchIndex); + m->nodeScalerScratchIndex = NULL; + } + if (m->scalersSet) + { + for (j=0; jscalersSet[j]); + free (m->scalersSet); + m->scalersSet = NULL; + } + if (m->scalersSetScratch) + { + free (m->scalersSetScratch); + m->scalersSetScratch = NULL; + } + if (m->siteScalerIndex) + { + free (m->siteScalerIndex); + m->siteScalerIndex = NULL; + } + if (m->cijkIndex) + { + free (m->cijkIndex); + m->cijkIndex = NULL; + } + if (m->ancStateCondLikes) + { + free (m->ancStateCondLikes); + m->ancStateCondLikes = NULL; + } + +# if defined (BEAGLE_ENABLED) + if (m->useBeagle == NO) + continue; + + beagleFinalizeInstance(m->beagleInstance); + SafeFree((void **)(&m->logLikelihoods)); + SafeFree((void **)(&m->inRates)); + SafeFree((void **)(&m->branchLengths)); + SafeFree((void **)(&m->tiProbIndices)); + SafeFree((void **)(&m->inWeights)); + SafeFree((void **)(&m->bufferIndices)); + SafeFree((void **)(&m->eigenIndices)); + SafeFree((void **)(&m->childBufferIndices)); + SafeFree((void **)(&m->childTiProbIndices)); + SafeFree((void **)(&m->cumulativeScaleIndices)); + + m->isScalerNodeScratch += numLocalTaxa; + SafeFree((void **)&(m->isScalerNodeScratch)); + for (j=0; jisScalerNode[j] += numLocalTaxa; + SafeFree((void **)&(m->isScalerNode[j])); + } + SafeFree((void **)(&m->isScalerNode)); + + SafeFree((void **)(&m->beagleComputeCount)); + SafeFree((void **)(&m->succesCount)); + SafeFree((void **)(&m->rescaleFreq)); + +# endif + } + + if (memAllocs[ALLOC_CURLNL] == YES) /*alloc in RunChain()*/ + { + free (maxLnL0); + free (curLnL); + memAllocs[ALLOC_CURLNL] = NO; + } + if (memAllocs[ALLOC_SS] == YES) /*alloc in mcmc()*/ + { + free (marginalLnLSS); + free (stepScalerSS); + free (stepAcumulatorSS); + free (splitfreqSS); + memAllocs[ALLOC_SS] = NO; + } + if (memAllocs[ALLOC_CURLNPR] == YES) /*alloc in RunChain()*/ + { + free (curLnPr); + memAllocs[ALLOC_CURLNPR] = NO; + } + if (memAllocs[ALLOC_CHAINID] == YES) /*alloc in RunChain()*/ + { + free (chainId); + memAllocs[ALLOC_CHAINID] = NO; + } + if (memAllocs[ALLOC_USEDMOVES] == YES) /*alloc in setUsedMoves()*/ + { + free (usedMoves); + memAllocs[ALLOC_USEDMOVES] = NO; + } + if (memAllocs[ALLOC_TERMSTATE] == YES) /*alloc in SetUpTermState()*/ + { + free (termState); + termState = NULL; + memAllocs[ALLOC_TERMSTATE] = NO; + } + if (memAllocs[ALLOC_ISPARTAMBIG] == YES) /*alloc in SetUpTermState()*/ + { + free (isPartAmbig); + isPartAmbig = NULL; + memAllocs[ALLOC_ISPARTAMBIG] = NO; + } + if (memAllocs[ALLOC_PRELIKES] == YES) /*alloc in InitCondLike()*/ + { + free (preLikeL); + preLikeL = NULL; + memAllocs[ALLOC_PRELIKES] = NO; + } + if (memAllocs[ALLOC_RATEPROBS] == YES) /*alloc in InitAdGamma() */ + { + free (rateProbSpace); + free (rateProbs); + rateProbs = NULL; + memAllocs[ALLOC_RATEPROBS] = NO; + } + if (memAllocs[ALLOC_SITEJUMP] == YES) /*alloc in InitAdGamma() */ + { + free (siteJump); + siteJump = NULL; + memAllocs[ALLOC_SITEJUMP] = NO; + } + if (memAllocs[ALLOC_MARKOVTIS] == YES) /*alloc in InitAdGamma() */ + { + for (i=0; inParsIntsPerSite <= 2 && m->nParsIntsPerSite > 0); + assert (source1 >= 0 && source1 < m->numParsSets); + assert (source2 >= 0 && source2 < m->numParsSets); + assert (destination >= 0 && destination < m->numParsSets); + + /* find parsimony sets for the nodes */ + pS1 = m->parsSets[source1 ]; + pS2 = m->parsSets[source2 ]; + pD = m->parsSets[destination]; + + /* Find number of site patterns */ + nSitesOfPat = numSitesOfPat + ((1 % chainParams.numChains) * numCompressedChars) + m->compCharStart;//chainId[chain] + + if (m->nParsIntsPerSite == 1) + { + for (c=0; cnumChars; c++) + { + x[0] = pS1[c] & pS2[c]; + if (x[0] == 0) + { + length += nSitesOfPat[c]; + x[0] = pS1[c] | pS2[c]; + } + pD[c] = x[0]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + assert (m->nParsIntsPerSite == 2); + for (c=i=0; cnumChars; c++) + { + x[0] = pS1[i] & pS2[i]; + x[1] = pS1[i+1] & pS2[i+1]; + if ((x[0] | x[1]) == 0) + { + length += nSitesOfPat[c]; + x[0] = pS1[i] | pS2[i]; + x[1] = pS1[i+1] | pS2[i+1]; + } + pD[i++] = x[0]; + pD[i++] = x[1]; + } + } + + return length; + MrBayesPrint ("%d", chain); /* just because I am tired of seeing the unused parameter error msg */ +} + + +MrBFlt GetParsDP (Tree *t, TreeNode *p, int chain) +{ + int n, division; + MrBFlt length; + ModelInfo *m; + + length = 0.0; + if (p->left != NULL) + { + length += GetParsDP (t, p->left, chain); + length += GetParsDP (t, p->right, chain); + + for (n=0; nnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + /* Get Fitch partials and length */ + length += GetFitchPartials(m, + chain, + p->left->index, + p->right->index, + p->index); + } + } + + return length; +} + + +void GetParsFP (Tree *t, TreeNode *p, int chain) +{ + int i, c, n, division; + BitsLong *pL, *pR, *pP, *pA, x[2]; + ModelInfo *m; + + if (p->left != NULL) + { + for (n=0; nnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + assert (m->nParsIntsPerSite == 1 || m->nParsIntsPerSite == 2); + + /* find parsimony sets for the node and its environment */ + pL = m->parsSets[p->left->index ]; + pR = m->parsSets[p->right->index]; + pP = m->parsSets[p->index ]; + pA = m->parsSets[p->anc->index ]; + + if (m->nParsIntsPerSite == 1) + { + for (c=0; cnumChars; c++) + { + x[0] = pP[c] & pA[c]; + + if (x[0] != pA[c]) + { /* means that we allow change of state from p to a */ + if ((pL[c] & pR[c]) != 0) + x[0] = ((pL[c] | pR[c]) & pA[c]) | pP[c] ; + /* We still allow only one change from both children of p through p to a. + So state from a that belong to one of the children of p can be added to pP[c], + if p assume the state then the only change would be on the other child. */ + else + x[0] = pP[c] | pA[c]; + /* Here we allow two change from both children of p through p to a. + Adding pA[c] to pP[c] means that if p assume state exclusive in a then even if + both children will be in different state from p we still get optimal parsimony */ + } + pP[c] = x[0]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (c=i=0; cnumChars; c++) + { + x[0] = pP[i] & pA[i]; + x[1] = pP[i+1] & pA[i+1]; + if (x[0] != pA[i] || x[1] != pA[i+1]) + { + x[0] = pL[i] & pR[i]; + x[1] = pL[i+1] & pR[i+1]; + if ((x[0] | x[1]) != 0) + { + x[0] = ((pL[i] | pR[i]) & pA[i]) | pP[i] ; + x[1] = ((pL[i+1] | pR[i+1]) & pA[i+1]) | pP[i+1] ; + } + else + { + x[0] = pP[i] | pA[i]; + x[1] = pP[i+1] | pA[i+1]; + } + } + pP[i++] = x[0]; + pP[i++] = x[1]; + } + } + } + GetParsFP (t, p->left, chain); + GetParsFP (t, p->right, chain); + } +} + + +int GetParsimonyBrlens (Tree *t, int chain, MrBFlt *brlens) +{ + int c, i, j, n, division; + BitsLong *pP, *pA; + CLFlt *nSitesOfPat; + TreeNode *p; + ModelInfo *m; + + /* Reset all brlens */ + for (i=0; inNodes-1; i++) + brlens[i] = 0.0; + + /* Get final parsimony state sets */ + GetParsDP(t, t->root->left, chain); + GetParsFP(t, t->root, chain); + + /* Get all branch lengths, looping over divisions */ + for (n=0; nnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + /* Find number of site patterns */ + nSitesOfPat = numSitesOfPat + ((chainId[chain] % chainParams.numChains) * numCompressedChars) + m->compCharStart; + + /* Record branch lengths in downpass */ + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + + /* Find final-pass parsimony sets for the node and its ancestor */ + pP = m->parsSets[p->index ]; + pA = m->parsSets[p->anc->index]; + + if (m->nParsIntsPerSite == 1) + { + for (c=0; cnumChars; c++) + { + if ((pP[c] & pA[c]) == 0) + brlens[i] += nSitesOfPat[c]; + } + } + else + { + for (c=j=0; cnumChars; c++, j+=2) + { + if ((pP[j] & pA[j]) == 0 && (pP[j+1] & pA[j+1]) == 0) + brlens[i] += nSitesOfPat[c]; + } + } + } + } + + return (NO_ERROR); +} + + +MrBFlt GetParsimonyLength (Tree *t, int chain) +{ + int c, i, n, division; + BitsLong *pP, *pA; + CLFlt *nSitesOfPat; + MrBFlt length; + TreeNode *p; + ModelInfo *m; + + /* Get length down to internal root */ + length = GetParsDP(t, t->root->left, chain); + + /* return if rooted */ + if (t->isRooted == NO) + return length; + + /* add in the last terminal if not rooted */ + for (n=0; nnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + /* Find number of site patterns */ + nSitesOfPat = numSitesOfPat + ((chainId[chain] % chainParams.numChains) * numCompressedChars) + m->compCharStart; + + /* Deal with last branch */ + p = t->intDownPass[t->nIntNodes-1]; + + /* find downpass parsimony sets for the node and its environment */ + pP = m->parsSets[p->index ]; + pA = m->parsSets[p->anc->index]; + + if (m->nParsIntsPerSite == 1) + { + for (c=0; cnumChars; c++) + { + if ((pP[c] & pA[c]) == 0) + { + length += nSitesOfPat[c]; + } + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (c=i=0; cnumChars; c++, i+=2) + { + if ((pP[i] & pA[i]) == 0 && (pP[i+1] & pA[i+1]) == 0) + { + length += nSitesOfPat[c]; + } + } + } + } + + return length; +} + + +void GetParsimonySubtreeRootstate (Tree *t, TreeNode *root, int chain) +{ + int c, i, n, division; + BitsLong *pD, *pP, *pA, x[2]; + TreeNode *p; + ModelInfo *m; + + /* Loop over divisions */ + for (n=0; nnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + assert (m->nParsIntsPerSite == 1 || m->nParsIntsPerSite == 2); + + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->marked = NO; + } + + p = root; + while (p->anc != NULL) + { + p->marked = YES; + p = p->anc; + } + + /* Make uppass node by node */ + for (i=t->nIntNodes-1; i>=0; i--) + { + p = t->intDownPass[i]; + + /* continue if no work needs to be done */ + if (p->marked == NO) + continue; + + /* find downpass and uppass parsimony sets for the node and its environment */ + pP = m->parsSets[p->index ]; + if (p->left->marked == YES) + pD = m->parsSets[p->right->index]; + else + pD = m->parsSets[p->left->index ]; + pA = m->parsSets[p->anc->index ]; + + if (m->nParsIntsPerSite == 1) + { + for (c=0; cnumChars; c++) + { + x[0] = pD[c] & pA[c]; + if (x[0] == 0) + { + x[0] = (pD[c] | pA[c]); + } + pP[c] = x[0]; + } + } + else if (m->nParsIntsPerSite == 2) + { + for (c=i=0; cnumChars; c++, i+=2) + { + x[0] = pD[i ] & pA[i ]; + x[1] = pD[i+1] & pA[i+1]; + if (x[0] + x[1] == 0) + { + x[0] = (pD[i ] | pA[i ]); + x[1] = (pD[i+1] | pA[i+1]); + } + pP[i ] = x[0]; + pP[i+1] = x[1]; + } + } + if (p == root) + break; + } + } + + return; + MrBayesPrint ("%d", chain); /* just because I am tired of seeing the unused parameter error msg */ +} + + +/* GetRate: retrieve the base rate for the division and chain in current state */ +MrBFlt GetRate (int division, int chain) +{ + Param *p; + MrBFlt *values, rate; + int i; + + rate = 0.0; + + p = modelSettings[division].rateMult; + values = GetParamVals (p, chain, state[chain]); + if (p->nValues == 1) + rate = values[0]; + else + { + for (i=0; inRelParts; i++) + { + if (p->relParts[i] == division) + { + rate = values[i]; + break; + } + } + } + + p = modelSettings[division].geneTreeRateMult; + if (p != NULL) + { + values = GetParamVals (p, chain, state[chain]); + for (i=0; inRelParts; i++) + { + if (p->relParts[i] == division) + { + rate *= values[i]; + break; + } + } + } + + return rate; +} + + +void GetStamp (void) +{ + int i; + + for (i=0; i<10; i++) + stamp[i] = '0' + (int)(RandomNumber(&runIDSeed) * 10); + stamp[10] = '\0'; + + MrBayesPrint ("%s MCMC stamp = %s\n", spacer, stamp); +} + + +void GetSwappers (int *swapA, int *swapB, int run) +{ + int i; + + /* this works for both the serial and parallel versions because the swapSeed is identical for all + processors, ensuring they all get the same sequence of chainIds to swap */ +# if defined (MPI_ENABLED) + + /* For now, we wonly allow random swaps in the MPI version. Other schemes require + tagging of messages, or a dedicated server node doing message processing. */ + (*swapA) = (int) (RandomNumber(&swapSeed) * chainParams.numChains); + (*swapB) = (int) (RandomNumber(&swapSeed) * (chainParams.numChains - 1)); + if ((*swapB) == (*swapA)) + (*swapB) = chainParams.numChains - 1; + +# else + + if (chainParams.swapAdjacentOnly == NO) + { + (*swapA) = (int) (RandomNumber(&swapSeed) * chainParams.numChains); + (*swapB) = (int) (RandomNumber(&swapSeed) * (chainParams.numChains - 1)); + if ((*swapB) == (*swapA)) + (*swapB) = chainParams.numChains - 1; + } + else + { + (*swapA) = (int) (RandomNumber(&swapSeed) * (chainParams.numChains - 1)); + (*swapB) = (*swapA) + 1; + } +# endif + + i = run * chainParams.numChains; + (*swapA) += i; + (*swapB) += i; + + return; +} + + +void GetTempDownPassSeq (TreeNode *p, int *i, TreeNode **dp) +{ + if (p != NULL) + { + GetTempDownPassSeq (p->left, i, dp); + GetTempDownPassSeq (p->right, i, dp); + dp[(*i)++] = p; + } +} + + +MrBFlt GibbsSampleGamma (int chain, int division, RandLong *seed) +{ + int c, i, k, *rateCat, nStates, nRateCats, nGammaCats, id; + CLFlt **catLike, **catLnScaler, *lnScaler, maxLnScaler, + *clRoot, f, bs[64], *clInvar, pInvar, freq; + MrBFlt ran, lnL, *bsVals, deltaLnL, temp; + ModelInfo *m; + Tree *t; + TreeNode *p; + + m = &modelSettings[division]; + + /* find base frequencies */ + bsVals = GetParamSubVals (m->stateFreq, chain, state[chain]); + nStates = m->numModelStates; + for (i=0; iscalers[m->siteScalerIndex[chain]]; + + /* find category like array and associated sccaler */ + catLike = m->catLike[chain]; + catLnScaler = m->catLnScaler[chain]; + + /* find rate category index */ + rateCat = m->tiIndex + chain*m->numChars; + + /* find number of rate cats and gamma cats */ + nRateCats = nGammaCats = m->numGammaCats; + if (m->pInvar != NULL) + nRateCats++; + + /* find tree */ + t = GetTree (m->brlens, chain, state[chain]); + + /* find invar cond likes (if we have invariable rate category) */ + clInvar = m->invCondLikes; + + /* get pInvar */ + if (m->pInvar == NULL) + pInvar = 0.0; + else + pInvar = (CLFlt) *GetParamVals (m->pInvar, chain, state[chain]); + freq = ((CLFlt)1.0 - pInvar) / nGammaCats; + + /* get chain temperature */ + temp = Temperature (chainId[chain]); + id = chainId[chain] % chainParams.numChains; + + /* calculate rate probs */ + for (k=0; knumChars; c++) + rateCat[c] = k; + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + if (t->isRooted == NO && p->anc->anc == NULL) + m->CondLikeRoot (p, division, chain); + else + m->CondLikeDown (p, division, chain); + if (p->scalerNode == YES) + m->CondLikeScaler (p, division, chain); + } + /* find root conditional likes */ + p = t->root->left; + clRoot = m->condLikes[m->condLikeIndex[chain][p->index]]; + for (c=0; cnumChars; c++) + { + catLike[k][c] = 0.0; + for (i=0; ipInvar != NULL) + { + k = nGammaCats; + for (c=0; cnumChars; c++) + { + catLike[k][c] = 0.0; + for (i=0; inumChars; c++) + { + /* find max scaler */ + maxLnScaler = catLnScaler[0][c]; + for (k=1; k maxLnScaler && catLike[k][c] > 0.0) + maxLnScaler = catLnScaler[k][c]; + } + /* scale values */ + for (k=0; knIntNodes; i++) + { + p = t->intDownPass[i]; + if (t->isRooted == NO && p->anc->anc == NULL) + m->CondLikeRoot (p, division, chain); + else + m->CondLikeDown (p, division, chain); + if (p->scalerNode == YES) + m->CondLikeScaler (p, division, chain); + } + lnL = 0.0; + m->Likelihood (t->root->left, division, chain, &lnL, (chainId[chain] % chainParams.numChains)); + + deltaLnL = lnL - m->lnLike[2*chain + state[chain]]; + m->lnLike[2*chain + state[chain]] = lnL; + + return (deltaLnL); +} + + +/*------------------------------------------------------------------------ +| +| InitAdGamma: initialize variables for adgamma model. +| +-------------------------------------------------------------------------*/ +int InitAdGamma (void) +{ + int d, c, i, j, k, maxRates, *corrModel; + ModelInfo *m; + + /* take care of adgamma model */ + if (chainHasAdgamma == NO) + return (NO_ERROR); + + MrBayesPrint ("%s Initializing autocorrelated discrete gamma model\n", spacer); + + /* allocate corr space */ + corrModel = (int *) SafeCalloc (numCurrentDivisions, sizeof(int)); + if (!corrModel) + return ERROR; + + /* allocate siteJump */ + if (memAllocs[ALLOC_SITEJUMP] == YES) + { + MrBayesPrint ("%s siteJump not free in InitAdGamma\n", spacer); + free (corrModel); + return ERROR; + } + siteJump = (int *) SafeCalloc (numChar, sizeof(int)); + if (siteJump) + memAllocs[ALLOC_SITEJUMP] = YES; + else + { + MrBayesPrint ("%s Problem allocating siteJump in InitAdGamma (%d ints)\n", spacer, numChar); + free (corrModel); + return ERROR; + } + + /* reset vector indicating the matrices needed */ + for (i=0; icorrelation == NULL || m->mark == YES) + continue; + + m->mark = YES; + for (i=0; icorrelation->nRelParts; i++) + { + if (modelSettings[m->correlation->relParts[i]].shape == + modelSettings[d].shape) + { + modelSettings[m->correlation->relParts[i]].mark = YES; + corrModel[m->correlation->relParts[i]] = k; + } + } + k++; + + if (m->numGammaCats > maxRates) + maxRates = m->numGammaCats; + + } + + for (c=0; c=0; j--) + { + if (corrModel[partitionId[j][partitionNum] - 1] == k) + break; + } + + if (j<0) + siteJump[c] = 0; + else if (charInfo[j].bigBreakAfter == YES) + siteJump[c] = BIG_JUMP; + else + { + siteJump[c] = c - j; + hasMarkovTi[c-j-1] = YES; + } + } + + /* check if any HMM is empty */ + k=0; + for (i=0; i k) + k = corrModel[i]; + } + for (i=1; i<=k; i++) + { + for (c=j=0; c= MAX_SMALL_JUMP && markovTiN) + memAllocs[ALLOC_MARKOVTIS] = YES; + else + { + MrBayesPrint ("%s Problem allocating MarkovTis in InitAdGamma (%d MrBFlt)\n", spacer, 2 * MAX_GAMMA_CATS * MAX_GAMMA_CATS); + for (i=0; icorrelation != NULL) + { + m->rateProbStart = i; + i += m->numGammaCats * m->numChars; + } + } + rateProbRowSize = i; + + /* allocate space */ + if (memAllocs[ALLOC_RATEPROBS] == YES) + { + MrBayesPrint ("%s Space for rate probs not free in InitAdGamma\n", spacer); + free (corrModel); + return ERROR; + } + rateProbSpace = (MrBFlt *) SafeMalloc (2 * numLocalChains * rateProbRowSize * sizeof(MrBFlt)); + rateProbs = (MrBFlt **) SafeMalloc (numLocalChains * sizeof(MrBFlt *)); + if (!rateProbSpace || !rateProbs) + { + MrBayesPrint ("%s Problem allocating rate probs\n", spacer); + if (rateProbSpace) + free (rateProbSpace); + if (rateProbs) + free (rateProbs); + free (corrModel); + return ERROR; + } + else + memAllocs[ALLOC_RATEPROBS] = YES; + + /* set chain rateProbs pointers */ + for (i=j=0; igibbsGamma == NO) + continue; + m->tiIndex = (int *) SafeMalloc (numLocalChains * m->numChars * sizeof (int)); + if (!m->tiIndex) + return ERROR; + m->catLike = (CLFlt ***) SafeMalloc (numLocalChains * sizeof (CLFlt **)); + if (!m->catLike) + return ERROR; + m->catLnScaler = (CLFlt ***) SafeMalloc (numLocalChains * sizeof (CLFlt **)); + if (!m->catLnScaler) + return ERROR; + if (m->pInvar == NULL) + nRateCats = m->numGammaCats; + else + nRateCats = m->numGammaCats + 1; + for (i=0; icatLike[i] = (CLFlt **) SafeCalloc (nRateCats, sizeof (CLFlt *)); + if (!m->catLike[i]) + return ERROR; + m->catLnScaler[i] = (CLFlt **) SafeCalloc (nRateCats, sizeof (CLFlt *)); + if (!m->catLnScaler[i]) + return ERROR; + for (j=0; jcatLike[i][j] = (CLFlt *) SafeCalloc (m->numChars, sizeof (CLFlt)); + if (!m->catLike[i][j]) + return ERROR; + m->catLnScaler[i][j] = (CLFlt *) SafeCalloc (m->numChars, sizeof (CLFlt)); + if (!m->catLnScaler[i][j]) + return ERROR; + } + } + } + + return NO_ERROR; +} + + +/*------------------------------------------------------------------------ +| +| InitChainCondLikes: (1) calculate size of cond like arrays, tiprob arrays +| and scaler arrays; (2) allocate space for cond like, tiprob and +| scaler arrays; (3) allocate and set node indices pointing to +| cond like and scaler arrays; (4) initialize tip cond likes; +| (5) allocate space for precalculated cond likes; (6) allocate +| space for adgamma probs, if used. +| +-------------------------------------------------------------------------*/ +int InitChainCondLikes (void) +{ + int c, d, i, j, k, s, t, numReps, condLikesUsed, nIntNodes, nNodes, useBeagle, + clIndex, tiIndex, scalerIndex, indexStep; + BitsLong *charBits; + CLFlt *cL; + ModelInfo *m; +# if defined (SSE_ENABLED) + int j1; +# endif +# if defined (BEAGLE_ENABLED) + double *nSitesOfPat; + MrBFlt freq; +# endif + + /* Figure out how large cond like array is needed, and how many cond like, scaler and tiprob arrays are needed. + Also check for possible use of Beagle */ + condLikesUsed = NO; + for (d=0; dnumChars); + + /* initialize model settings for chain cond likes */ + m->condLikeLength = 0; + m->numCondLikes = 0; + + if (m->parsModelId == YES) + continue; + + condLikesUsed = YES; + + /* figure out length of cond like array */ + if (m->dataType == STANDARD) + { +# if defined (BEAGLE_ENABLED) + m->useBeagle = NO; +# endif + for (c=0; cnumChars; c++) + { + numReps = m->numGammaCats; + if (m->nStates[c] == 2) + numReps *= m->numBetaCats; + m->condLikeLength += m->nStates[c] * numReps; + } + } + else + { + if (m->gibbsGamma == YES) + m->condLikeLength = m->numChars * m->numModelStates; + else + m->condLikeLength = m->numChars * m->numGammaCats * m->numOmegaCats * m->numModelStates; +# if defined (BEAGLE_ENABLED) + /* tentatively decide on whether to use Beagle */ + if (tryToUseBEAGLE == YES) + { + if (m->printAncStates == YES || m->printSiteRates == YES || m->printPosSel ==YES || m->printSiteOmegas==YES) + { + MrBayesPrint ("%s Non-beagle version of conditional likelihood calculator will be used for division %d due to\n", spacer, d+1); + MrBayesPrint ("%s request of reporting 'ancestral states', 'site rates', 'pos selection' or 'site omegas'.\n", spacer); + } + else if (m->gibbsGamma == NO) + m->useBeagle = YES; + } +# endif + } + + /* find size of tree */ + nIntNodes = GetTree(m->brlens, 0, 0)->nIntNodes; + nNodes = GetTree(m->brlens, 0, 0)->nNodes; + + /* figure out number of cond like arrays */ + m->numCondLikes = (numLocalChains + 1) * (nIntNodes); + m->numCondLikes += numLocalTaxa; + /* +# if !defined (DEBUG_NOSHORTCUTS) + for (i=0; iisPartAmbig[i] == NO && m->dataType != STANDARD) + m->numCondLikes--; + } +# endif + */ + + /* figure out number of node and site scalers */ + m->numScalers = (numLocalChains + 1) * (nIntNodes + 1); /* add 1 for site scalers */ + + /* figure out length of ti prob array and number of ti prob arrays */ + m->tiProbLength = 0; + if (m->dataType == STANDARD) + { + m->numTiCats = 0; /* We do not have repeated similar transition probability matrices */ + if (m->stateFreq->paramId == SYMPI_EQUAL) + { + for (k=0; k<9; k++) + { + if (m->isTiNeeded[k] == YES) + m->tiProbLength += (k + 2) * (k + 2) * m->numGammaCats; + } + for (k=9; k<13; k++) + { + if (m->isTiNeeded[k] == YES) + m->tiProbLength += (k - 6) * (k - 6) * m->numGammaCats; + } + for (k=13; k<18; k++) + { + if (m->isTiNeeded[k] == YES) + m->tiProbLength += (k - 11) * (k - 11) * m->numGammaCats; + } + } + else + { + /* deal with unequal state frequencies */ + if (m->isTiNeeded[0] == YES) + m->tiProbLength += 4 * m->numGammaCats * m->numBetaCats; + for (c=0; cnumChars; c++) + { + if (m->nStates[c] > 2 && (m->cType[c] == UNORD || m->cType[c] == ORD)) + { + m->tiProbLength += (m->nStates[c] * m->nStates[c]) * m->numGammaCats; + } + } + } + } + else + { + m->numTiCats = m->numGammaCats * m->numBetaCats * m->numOmegaCats; /* A single partition has either gamma, beta or omega categories */ + m->tiProbLength = m->numModelStates * m->numModelStates * m->numTiCats; + } + m->numTiProbs = (numLocalChains + 1) * nNodes; + + /* set info about eigen systems */ + if (InitEigenSystemInfo (m) == ERROR) + return (ERROR); + } + + /* check if conditional likelihoods are needed */ + if (condLikesUsed == YES) + MrBayesPrint ("%s Initializing conditional likelihoods\n", spacer); + else + return NO_ERROR; + + /* allocate space and fill in info for tips */ + for (d=0; duseBeagle == YES) + { + if (InitBeagleInstance(m, d) != ERROR) + useBeagle = YES; + else + m->useBeagle = NO; + } +# endif + //m->useSSE = NO; +# if defined (SSE_ENABLED) + /*if (useBeagle == NO && m->dataType != STANDARD) + m->useSSE = YES;*/ + if (useBeagle == YES) + m->useSSE = NO; + +# endif + if (useBeagle == NO && m->useSSE == NO) + MrBayesPrint ("%s Using standard non-SSE likelihood calculator for division %d (%s-precision)\n", spacer, d+1, (sizeof(CLFlt) == 4 ? "single" : "double")); + else if (useBeagle == NO && m->useSSE == YES) + MrBayesPrint ("%s Using standard SSE likelihood calculator for division %d (single-precision)\n", spacer, d+1); + + if (useBeagle == NO) + { + /* allocate cond like space */ + m->condLikes = (CLFlt**) SafeMalloc(m->numCondLikes * sizeof(CLFlt*)); + if (!m->condLikes) + return (ERROR); + for (i=0; inumCondLikes; i++) + { +# if defined (SSE_ENABLED) + if (m->useSSE == YES) + { + /* calculate number SSE chars */ + m->numSSEChars = ((m->numChars - 1) / FLOATS_PER_VEC) + 1; + + /* allocate space with padding (m->condLikeLength is without padding) */ + if (m->gibbsGamma == YES) + numReps = 1; + else + numReps = m->numGammaCats * m->numOmegaCats; + k = m->numSSEChars * FLOATS_PER_VEC * m->numModelStates * numReps; + + m->condLikes[i] = (CLFlt*) AlignedMalloc (k * sizeof(CLFlt), 16); + if (!m->condLikes[i]) + return (ERROR); + + /* start by filling all with 0.0f; pad when filling in tips */ + for (j=0; jcondLikes[i][j] = 0.0f; + } + else + { + m->condLikes[i] = (CLFlt*) SafeMalloc(m->condLikeLength * sizeof(CLFlt)); + if (!m->condLikes[i]) + return (ERROR); + } +# else + m->condLikes[i] = (CLFlt*) SafeMalloc(m->condLikeLength * sizeof(CLFlt)); + if (!m->condLikes[i]) + return (ERROR); +# endif + } + + /* allocate scaler space and pointers for scaling */ + m->scalers = (CLFlt**) SafeMalloc(m->numScalers * sizeof(CLFlt*)); + if (!m->scalers) + return (ERROR); + for (i=0; inumScalers; i++) + { +# if defined (SSE_ENABLED) + if (m->useSSE == YES) + { + /* allocate space with padding */ + m->scalers[i] = (CLFlt*) AlignedMalloc (m->numSSEChars * FLOATS_PER_VEC * sizeof(CLFlt), 16); + if (!m->scalers[i]) + return (ERROR); + for (j=0; jnumSSEChars*FLOATS_PER_VEC; j++) + m->scalers[i][j] = 0.0f; + } + else + { + m->scalers[i] = (CLFlt*) SafeMalloc (m->numChars * sizeof(CLFlt)); + if (!m->scalers[i]) + return (ERROR); + } +# else + m->scalers[i] = (CLFlt*) SafeMalloc (m->numChars * sizeof(CLFlt)); + if (!m->scalers[i]) + return (ERROR); +# endif + } + + /* allocate stuff for facilitating scaling and accumulation of cond likes */ + if (m->dataType == STANDARD) + { + m->clP = (CLFlt **) SafeMalloc(m->numGammaCats * sizeof(CLFlt *)); + if (!m->clP) + return (ERROR); + } + else + { + m->clP = (CLFlt **) SafeMalloc(m->numTiCats * sizeof(CLFlt *)); + if (!m->clP) + return (ERROR); +# if defined (SSE_ENABLED) + if (m->useSSE == YES) + { + m->clP_SSE = (__m128 **) SafeMalloc(m->numTiCats * sizeof(__m128 *)); + if (!m->clP_SSE) + return (ERROR); + m->lnL_SSE = AlignedMalloc (m->numSSEChars * FLOATS_PER_VEC * sizeof(CLFlt*), 16); + m->lnLI_SSE = AlignedMalloc (m->numSSEChars * FLOATS_PER_VEC * sizeof(CLFlt*), 16); + if (!m->lnL_SSE || !m->lnLI_SSE) + return (ERROR); + } +# endif + } + + /* allocate tiprob space */ + m->tiProbs = (CLFlt**) SafeMalloc(m->numTiProbs * sizeof(CLFlt*)); + if (!m->tiProbs) + return (ERROR); + for (i=0; inumTiProbs; i++) + { + m->tiProbs[i] = (CLFlt*) SafeMalloc(m->tiProbLength * sizeof(CLFlt)); + if (!m->tiProbs[i]) + return (ERROR); + } + } + + /* allocate eigen system space (needed also for Beagle version */ + if (m->nCijkParts > 0) + { + m->cijks = (MrBFlt**) SafeMalloc((numLocalChains + 1) * sizeof(MrBFlt*)); + if (!m->cijks) + return ERROR; + for (i=0; icijks[i] = (MrBFlt*) SafeMalloc(m->cijkLength * sizeof(MrBFlt)); + if (!m->cijks[i]) + return (ERROR); + } + } + + /* get size of tree */ + nIntNodes = GetTree(m->brlens,0,0)->nIntNodes; + nNodes = GetTree(m->brlens,0,0)->nNodes; + + + /* allocate and set indices from tree nodes to cond like arrays */ + m->condLikeIndex = (int **) SafeMalloc (numLocalChains * sizeof(int *)); + if (!m->condLikeIndex) + return (ERROR); + for (i=0; icondLikeIndex[i] = (int *) SafeMalloc (nNodes * sizeof(int)); + if (!m->condLikeIndex[i]) + return (ERROR); + } + for (i=0; icondLikeIndex[i][j] = -1; + + /* set up indices for terminal nodes */ + clIndex = 0; + if (useBeagle == YES) + indexStep = m->nCijkParts; + else + indexStep = 1; + for (i=0; iisPartAmbig[i] == NO && m->dataType != STANDARD) + continue; + */ +# endif + for (j=0; jcondLikeIndex[j][i] = clIndex; + clIndex += 1; /* even for multiple omega cat we need only one set of conditional likelihoods for terminals for all chains.*/ + } + + /* reserve private space for parsimony-based moves if parsimony model is used */ + if (m->parsModelId == YES && m->parsimonyBasedMove == YES) + clIndex += nIntNodes; + + /* set up indices for internal nodes */ + for (j=0; jcondLikeIndex[j][i+numLocalTaxa] = clIndex; + clIndex += indexStep; + } + } + + /* allocate and set up scratch cond like indices */ + m->condLikeScratchIndex = (int *) SafeMalloc (nNodes * sizeof(int)); + if (!m->condLikeScratchIndex) + return (ERROR); + for (i=0; icondLikeScratchIndex[i] = -1; + for (i=0; icondLikeScratchIndex[i+numLocalTaxa] = clIndex; + clIndex += indexStep; + } + + /* allocate and set indices from tree edges to ti prob arrays */ + m->tiProbsIndex = (int **) SafeMalloc (numLocalChains * sizeof(int *)); + if (!m->tiProbsIndex) + return (ERROR); + for (i=0; itiProbsIndex[i] = (int *) SafeMalloc (nNodes * sizeof(int)); + if (!m->tiProbsIndex[i]) + return (ERROR); + } + + /* set up indices for nodes */ + tiIndex = 0; + for (i=0; itiProbsIndex[i][j] = tiIndex; + tiIndex += indexStep; + } + } + + /* allocate and set up scratch transition prob indices */ + m->tiProbsScratchIndex = (int *) SafeMalloc (nNodes * sizeof(int)); + if (!m->tiProbsScratchIndex) + return (ERROR); + for (i=0; itiProbsScratchIndex[i] = tiIndex; + tiIndex += indexStep; + } + + /* allocate and set up node scaler indices */ + scalerIndex = 0; + m->nodeScalerIndex = (int **) SafeMalloc (numLocalChains * sizeof(int *)); + if (!m->nodeScalerIndex) + return (ERROR); + for (i=0; inodeScalerIndex[i] = (int *) SafeMalloc (nNodes * sizeof(int)); + if (!m->nodeScalerIndex[i]) + return (ERROR); + for (j=0; jnodeScalerIndex[i][j] = -1; + for (j=0; jnodeScalerIndex[i][j+numLocalTaxa] = scalerIndex; + scalerIndex += indexStep; + } + } + m->nodeScalerScratchIndex = (int *) SafeMalloc (nNodes * sizeof (int)); + if (!m->nodeScalerScratchIndex) + return (ERROR); + for (i=0; inodeScalerScratchIndex[i] = -1; + for (i=0; inodeScalerScratchIndex[i+numLocalTaxa] = scalerIndex; + scalerIndex += indexStep; + } + + /* allocate and set up node scaler flags */ + m->scalersSet = (int **) SafeMalloc (numLocalChains * sizeof(int *)); + if (!m->scalersSet) + return (ERROR); + for (i=0; iscalersSet[i] = (int *) SafeMalloc (nNodes * sizeof(int)); + if (!m->scalersSet[i]) + return (ERROR); + for (j=0; jscalersSet[i][j] = NO; + } + m->scalersSetScratch = (int *) SafeMalloc (nNodes * sizeof (int)); + if (!m->scalersSetScratch) + return (ERROR); + for (i=0; iscalersSetScratch[i] = NO; + + /* allocate and set up site scaler indices */ + m->siteScalerIndex = (int *) SafeMalloc (numLocalChains * sizeof(int)); + if (!m->siteScalerIndex) + return (ERROR); + for (i=0; isiteScalerIndex[i] = scalerIndex; + scalerIndex += indexStep; + } + m->siteScalerScratchIndex = scalerIndex; + +# if defined (BEAGLE_ENABLED) + /* used only with Beagle advanced dynamic rescaling where we set scaler nodes for each partition */ + if (m->useBeagle == YES) + { + m->succesCount = (int*) SafeMalloc((numLocalChains) * sizeof(int)); + m->rescaleFreq = (int*) SafeMalloc((numLocalChains) * sizeof(int)); + m->beagleComputeCount = (long *) SafeMalloc(sizeof(long) * numLocalChains); + t=BEAGLE_RESCALE_FREQ/m->numModelStates; + if (beagleFlags & BEAGLE_FLAG_PRECISION_DOUBLE) /*if double presition is used*/ + t*=BEAGLE_RESCALE_FREQ_DOUBLE; + for (i=0; irescaleFreq[i] = t; + } + m->isScalerNode = (int**) SafeMalloc((numLocalChains) * sizeof(int*)); + /* we will use m->isScalerNode[chain][node->index] to determine whether the node is scaled or not. We do it only for internal nodes whose indexes start from numLocalTaxa thus we skew the pointer */ + m->isScalerNodeScratch = (int*) SafeMalloc(nIntNodes * sizeof(int)) - numLocalTaxa; + assert (NO == 0); /* SafeMalloc set the allocated memmory to 0 while we need to set it to NO */ + for (i=0; iisScalerNode[i] = (int*) SafeMalloc(nIntNodes * sizeof(int)) - numLocalTaxa; + } + } +# endif + + /* allocate and set up cijk indices */ + if (m->nCijkParts > 0) + { + m->cijkIndex = (int *) SafeMalloc (numLocalChains * sizeof(int)); + if (!m->cijkIndex) + return (ERROR); + for (i=0; icijkIndex[i] = i*indexStep; + m->cijkScratchIndex = numLocalChains*indexStep; + } + +# if defined (BEAGLE_ENABLED) + /* Set up nSitesOfPat for Beagle */ + if (m->useBeagle == YES) + { + nSitesOfPat = (double *) SafeMalloc (m->numChars * sizeof(double)); + for (c=0; cnumChars; c++) + nSitesOfPat[c] = numSitesOfPat[m->compCharStart + c]; + beagleSetPatternWeights(m->beagleInstance, + nSitesOfPat); + free (nSitesOfPat); + nSitesOfPat = NULL; + + /* find category frequencies */ + if (m->pInvar == NO) + { + freq = 1.0 / m->numGammaCats; + + /* set category frequencies in beagle instance */ + if (m->numOmegaCats <= 1) + { + for (i=0; inumGammaCats; i++) + m->inWeights[i] = freq; + for (i=0; i< (numLocalChains); i++) { + beagleSetCategoryWeights(m->beagleInstance, + m->cijkIndex[i], + m->inWeights); + } + beagleSetCategoryWeights(m->beagleInstance, + m->cijkScratchIndex, + m->inWeights); + } + } + + /* Set up scalers for Beagle */ + for (i=0; inumScalers*m->nCijkParts; i++) + beagleResetScaleFactors(m->beagleInstance, i); + } +# endif + + /* fill in tip conditional likelihoods */ + if (m->dataType == STANDARD) + { + clIndex = 0; + for (i=0; icondLikes[clIndex++]; + for (t=0; tnumGammaCats;t++) + { + charBits = m->parsSets[i]; + for (c=0; cnumChars; c++) + { + if (m->nStates[c] == 2) + numReps = m->numBetaCats; + else + numReps = 1; + for (k=0; knStates[c]; s++) + { + if (IsBitSet(s, charBits)) + (*cL) = 1.0; + cL++; + } + } + charBits += m->nParsIntsPerSite; + } + } + } + } + else if (useBeagle == NO) + { + if (m->gibbsGamma == YES) + numReps = m->numTiCats / m->numGammaCats; + else + numReps = m->numTiCats; + + clIndex = 0; + for (i=0; iisPartAmbig[i] == NO && m->dataType != RESTRICTION) + continue; + */ +# endif + cL = m->condLikes[clIndex++]; +# if defined (SSE_ENABLED) + if (m->useSSE == YES) + { + for (k=0; kparsSets[i]; + for (c=0; cnumChars/FLOATS_PER_VEC; c++) + { + for (j=0; jnumModelStates/m->numStates; j++) + { + for (s=0; snumStates; s++) + { + for (j1=0; j1nParsIntsPerSite)) + (*cL) = 1.0; + cL++; + } + } + } + charBits += FLOATS_PER_VEC * m->nParsIntsPerSite; + } + if (m->numChars % FLOATS_PER_VEC > 0) + { + /* add last characters and padd */ + for (j=0; jnumModelStates/m->numStates; j++) + { + for (s=0; snumStates; s++) + { + for (j1=0; j1numChars%FLOATS_PER_VEC; j1++) + { + if (IsBitSet(s, charBits + j1*m->nParsIntsPerSite)) + (*cL) = 1.0; + cL++; + } + for (; j1parsSets[i]; + for (c=0; cnumChars; c++) + { + for (j=0; jnumModelStates/m->numStates; j++) + { + for (s=0; snumStates; s++) + { + if (IsBitSet(s, charBits)) + (*cL) = 1.0; + cL++; + } + } + charBits += m->nParsIntsPerSite; + } + } + } + +# else + for (k=0; kparsSets[i]; + for (c=0; cnumChars; c++) + { + for (j=0; jnumModelStates/m->numStates; j++) + { + for (s=0; snumStates; s++) + { + if (IsBitSet(s, charBits)) + (*cL) = 1.0; + cL++; + } + } + charBits += m->nParsIntsPerSite; + } + } +# endif + } + } + + if (m->printAncStates == YES) + { + m->ancStateCondLikes = (CLFlt *) SafeMalloc (m->condLikeLength * sizeof(CLFlt)); + if (!m->ancStateCondLikes) + return (ERROR); + } + } + /* allocate space for precalculated likelihoods */ + j = 0; + for (d=0; ddataType == STANDARD || m->parsModelId == YES) + continue; + + i = (m->numModelStates + 1) * m->numModelStates * m->numTiCats; + if (i > j) + j = i; + } + if (j > 0) /* don't bother allocating precalculated likelihoods if we only have parsimony model or morphological characters */ + { + if (memAllocs[ALLOC_PRELIKES] == YES) + { + MrBayesPrint ("%s Space for preLikes not free in InitChainCondLikes\n", spacer); + return ERROR; + } + preLikeL = (CLFlt *) SafeMalloc (3 * j * sizeof(CLFlt)); + if (!preLikeL) + { + MrBayesPrint ("%s Problem allocating preLikes\n", spacer); + return ERROR; + } + memAllocs[ALLOC_PRELIKES] = YES; + preLikeR = preLikeL + j; + preLikeA = preLikeR + j; + } + + return NO_ERROR; +} + + +/*------------------------------------------------------------------------ +| +| InitEigenSystemInfo: set info about eigen decompositions +| +-------------------------------------------------------------------------*/ +int InitEigenSystemInfo (ModelInfo *m) +{ + int ts; + + if (m->dataType == STANDARD) + { + /* dealt with in ProcessStdChars */ + return (NO_ERROR); + } + + m->cijkLength = 0; + m->nCijkParts = 0; + if (m->dataType == PROTEIN) + { + ts = m->numModelStates; + m->cijkLength = (ts * ts * ts) + (2 * ts); + m->nCijkParts = 1; + if (m->switchRates != NULL) /* covarion model */ + { + m->cijkLength *= m->numGammaCats; + m->nCijkParts = m->numGammaCats; + } + } + else if (m->dataType == DNA || m->dataType == RNA) + { + if (m->nucModelId == NUCMODEL_4BY4) + { + if (m->switchRates==NULL && m->nst != 6 && m->nst != NST_MIXED) + { + m->cijkLength = 0; + m->nCijkParts = 0; +# if defined (BEAGLE_ENABLED) + ts = m->numModelStates; + m->cijkLength = (ts * ts * ts) + (2 * ts); + m->nCijkParts = 1; +# endif + } + else + { + ts = m->numModelStates; + m->cijkLength = (ts * ts * ts) + (2 * ts); + m->nCijkParts = 1; + } + if (m->switchRates != NULL) + { + m->cijkLength *= m->numGammaCats; + m->nCijkParts = m->numGammaCats; + } + } + else if (m->nucModelId == NUCMODEL_DOUBLET) + { + ts = m->numModelStates; + m->cijkLength = (ts * ts * ts) + (2 * ts); + m->nCijkParts = 1; + } + else if (m->nucModelId == NUCMODEL_CODON) + { + ts = m->numModelStates; + m->cijkLength = (ts * ts * ts) + (2 * ts); + m->cijkLength *= m->numOmegaCats; + m->nCijkParts = m->numOmegaCats; + } + else + { + MrBayesPrint ("%s ERROR: Something is wrong if you are here.\n", spacer); + return ERROR; + } + } +# if defined (BEAGLE_ENABLED) + else if (m->dataType == RESTRICTION) + { + assert (m->numModelStates == 2); + ts = 2; + m->cijkLength = (ts * ts * ts) + (2 * ts); + m->nCijkParts = 1; + } +# endif + return (NO_ERROR); +} + + +/*------------------------------------------------------------------------ +| +| InitFinalStateCondLikes: allocate space for final conditional +| likelihoods if needed +| +-------------------------------------------------------------------------*/ +int InitFinalStateCondLikes (void) +{ + int d; + ModelInfo *m; + + for (d=0; dprintAncStates == YES) + { + m->ancStateCondLikes = (CLFlt *) SafeMalloc (m->condLikeLength * sizeof(CLFlt)); + if (!m->ancStateCondLikes) + return ERROR; + } + } + return (NO_ERROR); +} + + +/*------------------------------------------------------------------------ +| +| InitInvCondLikes: allocate and initialize invariable conditional +| likelihoods if needed +| +| NB! Fills in invariable cond likes for all hidden states; this +| is convenient although some space is wasted +| +-------------------------------------------------------------------------*/ +int InitInvCondLikes (void) +{ + int c, d, i, s, isConstant, usingInvCondLikes; + BitsLong *charBits; + CLFlt *cI; + ModelInfo *m; + +# if defined (SSE_ENABLED) + int c1; +# endif + + /* allocate space for invariable cond likes */ + usingInvCondLikes = NO; + for (d=0; dpInvar == NULL) + continue; + + usingInvCondLikes = YES; +# if defined (SSE_ENABLED) + c1 = m->numSSEChars * FLOATS_PER_VEC * m->numModelStates; + m->invCondLikes = (CLFlt *) AlignedMalloc (c1 * sizeof(CLFlt), 16); + for (i=0; iinvCondLikes[i] = 0.0f; +# else + m->invCondLikes = (CLFlt *) SafeMalloc (m->numChars * m->numModelStates * sizeof(CLFlt)); +# endif + if (!m->invCondLikes) + return ERROR; + } + + if (usingInvCondLikes == NO) + return NO_ERROR; + + MrBayesPrint ("%s Initializing invariable-site conditional likelihoods\n", spacer); + + /* fill in invariable-site conditional likelihoods */ + for (d=0; dpInvar == NULL) + continue; + + cI = m->invCondLikes; + if (m->dataType == STANDARD) + { + for (c=0; cnumChars; c++) + { + for (s=0; snStates[c]; s++) + { + isConstant = YES; + for (i=0; iparsSets[i][c*m->nParsIntsPerSite]; + if (IsBitSet(s, charBits) == NO) + { + isConstant = NO; + break; + } + } + if (isConstant == YES) + *cI = 1.0; + else + *cI = 0.0; + cI++; + } + } + } + else /* all other models for which pInvar is applicable */ + { + assert (m->numModelStates == m->numStates); +# if defined (SSE_ENABLED) + for (c=0; cnumChars/FLOATS_PER_VEC; c++) + { + for (s=0; snumModelStates; s++) + { + for (c1=0; c1parsMatrixStart + ((c * FLOATS_PER_VEC) + c1) * m->nParsIntsPerSite; + for (i=0; iparsSets[i][((c * FLOATS_PER_VEC) + c1) *m->nParsIntsPerSite]; + if (IsBitSet(s, charBits) == NO) + { + isConstant = NO; + break; + } + //charBits += parsMatrixRowSize; + } + if (isConstant == YES) + *cI = 1.0; + cI++; + } + } + } + if (m->numChars % FLOATS_PER_VEC != 0) + { + for (s=0; snumModelStates; s++) + { + for (c1=0; c1numChars%FLOATS_PER_VEC; c1++) + { + isConstant = YES; + //charBits = parsMatrix + m->parsMatrixStart + (((m->numChars / FLOATS_PER_VEC) * FLOATS_PER_VEC) + c1) * m->nParsIntsPerSite; + for (i=0; iparsSets[i][(((m->numChars / FLOATS_PER_VEC) * FLOATS_PER_VEC) + c1) *m->nParsIntsPerSite]; + if (IsBitSet(s, charBits) == NO) + { + isConstant = NO; + break; + } + //charBits += parsMatrixRowSize; + } + if (isConstant == YES) + *cI = 1.0; + cI++; + } + for (; c1numChars; c++) + { + for (s=0; snumModelStates; s++) + { + isConstant = YES; + for (i=0; iparsSets[i][c*m->nParsIntsPerSite]; + if (IsBitSet(s, charBits) == NO) + { + isConstant = NO; + break; + } + } + if (isConstant == YES) + *cI = 1.0; + cI++; + } + } +# endif + } + } /* next division */ + +# if 0 + invCondLikeSize = 0; + for (d=0; dpInvar == NULL) + continue; + cI = m->invCondLikes; + if (m->dataType == STANDARD) + { + } + else + { + for (c=0; cnumChars; c++) + { + printf ("%4d -- ", c); + for (s=0; snumModelStates; s++) + { + printf ("%1.0lf", *cI); + cI++; + } + printf ("\n"); + } + } + } +# endif + + return NO_ERROR; +} + + +/*------------------------------------------------------------------------ +| +| InitParsSets: allocate space for and set parsimony state sets +| +-------------------------------------------------------------------------*/ +int InitParsSets (void) +{ + int c, i, j, k, d, nParsStatesForCont, nIntNodes, nNodes, + nuc1, nuc2, nuc3, codingNucCode, allNucCode; + BitsLong allAmbig, x, x1, x2, x3, *longPtr, bitsLongOne; + ModelInfo *m; + ModelParams *mp; + + bitsLongOne = 1; + + /* this variable determines how many parsimony states are used */ + /* to represent continuous characters (determines weight of these chars) */ + nParsStatesForCont = 3; + + /* find number and size of parsimony sets and node lengths */ + for (d=0; ddataType == CONTINUOUS) + { + /* scale continuous characters down to an ordered parsimony character */ + /* with nParsStatesForCont states, represent this character as a set */ + /* of binary characters by additive binary coding */ + m->nParsIntsPerSite = nParsStatesForCont - 1; + } + else + m->nParsIntsPerSite = 1 + m->numStates / nBitsInALong; + + /* Calculate number of nodes and number of internal nodes */ + nIntNodes = GetTree(m->brlens,0,0)->nIntNodes; + nNodes = GetTree(m->brlens,0,0)->nNodes; + + /* Calculate number of parsimony sets */ + m->numParsSets = numLocalTaxa; + if (m->parsimonyBasedMove == YES || !strcmp(chainParams.startTree, "Parsimony")) + m->numParsSets += nIntNodes; + if (m->parsModelId == YES) + m->numParsSets += (numLocalChains + 1) * nIntNodes; + + if (m->parsModelId == YES) + m->numParsNodeLens = (numLocalChains + 1) * nNodes; + else + m->numParsNodeLens = 0; + } + + /* then allocate space for the sets and node lengths */ + for (d=0; dparsSets = (BitsLong **) SafeCalloc (m->numParsSets, sizeof(BitsLong*)); + if (!m->parsSets) + return (ERROR); + for (i=0; inumParsSets; i++) + { + m->parsSets[i] = (BitsLong *) SafeCalloc (m->numChars*m->nParsIntsPerSite, sizeof(BitsLong)); + if (!m->parsSets[i]) + return (ERROR); + } + + if (m->numParsNodeLens > 0) + { + m->parsNodeLens = (CLFlt *) SafeCalloc (m->numParsNodeLens, sizeof(CLFlt)); + if (!m->parsNodeLens) + return (ERROR); + } + } + + /* finally fill in tip parsimony sets */ + for (d=0; ddataType == CONTINUOUS) + { + /* Note: This is only a placeholder since continuous characters are not implemented yet. + Using additive parsimony would be more efficient than using multiple binary chars as here. */ + for (i=0; icompMatrixStart; jcompMatrixStop; j++, c++) + { + x = compMatrix[pos(i,j,compMatrixRowSize)]; + + for (k=0; knParsIntsPerSite; k++) + { + if (x > (unsigned int)(k + 1) * 1000 / (m->nParsIntsPerSite + 1)) + m->parsSets[i][c*m->nParsIntsPerSite + k] = 1; + else + m->parsSets[i][c*m->nParsIntsPerSite + k] = 2; + } + } + } + } + else if (m->nCharsPerSite == 1 && m->nParsIntsPerSite == 1) + { + allAmbig = (bitsLongOne<nStates) - 1UL; + for (i=0; icompMatrixStart; jcompMatrixStop; j++, c++) + { + x = compMatrix[pos(i,j,compMatrixRowSize)]; + + if (x == MISSING || x == GAP) + m->parsSets[i][c] = allAmbig; + else + m->parsSets[i][c] = x; + } + } + } + else if (!strcmp(mp->nucModel, "Doublet") && (mp->dataType == DNA || mp->dataType == RNA)) + { + allAmbig = 15; + for (i=0; icompMatrixStart; jcompMatrixStop; j+=m->nCharsPerSite, c++) + { + /* fetch the original values x1 and x2 */ + x1 = compMatrix[pos(i,j,compMatrixRowSize)]; + if (x1 == MISSING || x1 == GAP) + x1 = allAmbig; + x2 = compMatrix[pos(i,j+1,compMatrixRowSize)]; + if (x2 == MISSING || x2 == GAP) + x2 = allAmbig; + /* squeeze them together in the new value x */ + x = 0; + for (nuc1=0; nuc1<4; nuc1++) + { + for (nuc2=0; nuc2<4; nuc2++) + { + if (IsBitSet(nuc1,&x1) == YES && IsBitSet(nuc2, &x2) == YES) + x |= (bitsLongOne<<(nuc1*4 + nuc2)); + } + } + + m->parsSets[i][c] = x; + } + } + } + else if (!strcmp(mp->nucModel, "Codon") && (mp->dataType == DNA || mp->dataType == RNA)) + { + allAmbig = 15; + for (i=0; icompMatrixStart; jcompMatrixStop; j+=m->nCharsPerSite, c++) + { + /* fetch the original values x1, x2, and x3*/ + x1 = compMatrix[pos(i,j,compMatrixRowSize)]; + if (x1 == MISSING || x1 == GAP) + x1 = allAmbig; + x2 = compMatrix[pos(i,j+1,compMatrixRowSize)]; + if (x2 == MISSING || x2 == GAP) + x2 = allAmbig; + x3 = compMatrix[pos(i,j+2,compMatrixRowSize)]; + if (x3 == MISSING || x3 == GAP) + x3 = allAmbig; + + /* squeeze them together in the new long string pointed to by longPtr */ + longPtr = &m->parsSets[i][c*m->nParsIntsPerSite]; + allNucCode = codingNucCode = 0; + for (nuc1=0; nuc1<4; nuc1++) + for (nuc2=0; nuc2<4; nuc2++) + for (nuc3=0; nuc3<4; nuc3++) + { + if (mp->codon[allNucCode] != 21) + { + if (IsBitSet(nuc1, &x1) == YES && IsBitSet(nuc2, &x2) == YES && IsBitSet(nuc3, &x3) == YES) + SetBit(codingNucCode, longPtr); + codingNucCode++; + } + allNucCode++; + } + } + } + } + else if (!strcmp(mp->nucModel, "Protein") && (mp->dataType == DNA || mp->dataType == RNA)) + { + allAmbig = 15; + for (i=0; icompMatrixStart; jcompMatrixStop; j+=m->nCharsPerSite, c++) + { + /* fetch the original values x1, x2, and x3*/ + x1 = compMatrix[pos(i,j,compMatrixRowSize)]; + if (x1 == MISSING || x1 == GAP) + x1 = allAmbig; + x2 = compMatrix[pos(i,j+1,compMatrixRowSize)]; + if (x2 == MISSING || x2 == GAP) + x2 = allAmbig; + x3 = compMatrix[pos(i,j+2,compMatrixRowSize)]; + if (x3 == MISSING || x3 == GAP) + x3 = allAmbig; + + /* squeeze them together in the new long string pointed to by longPtr */ + longPtr = &m->parsSets[i][c*m->nParsIntsPerSite]; /* m->nParsIntsPerSite should be 1 */ + allNucCode = 0; + for (nuc1=0; nuc1<4; nuc1++) + for (nuc2=0; nuc2<4; nuc2++) + for (nuc3=0; nuc3<4; nuc3++) + { + if (mp->codon[allNucCode] != 21) + { + if (IsBitSet(nuc1, &x1) == YES && IsBitSet(nuc2, &x2) == YES && IsBitSet(nuc3, &x3) == YES) + SetBit(mp->codon[allNucCode]-1, longPtr); + } + allNucCode++; + } + } + } + } + else + { + MrBayesPrint ("%s Unrecognized data format during bitset compression\n", spacer); + return ERROR; + } + } + + return (NO_ERROR); +} + + +/*------------------------------------------------ +| +| InitPrintParams: Set up arrays of print para- +| meters and print tree parameters +| +------------------------------------------------*/ +int InitPrintParams (void) +{ + int i, j, k, k1=0; + Param *p; + + /* count number of model params to print */ + numPrintParams = 0; + for (i=0; iprintParam == YES && + p->paramType != P_TOPOLOGY && + p->paramType != P_BRLENS && + p->paramType != P_SPECIESTREE && + p->paramType != P_CPPEVENTS && + p->paramType != P_TK02BRANCHRATES && + p->paramType != P_IGRBRANCHRATES && + p->paramType != P_MIXEDBRCHRATES) + numPrintParams++; + } + + /* count number of tree params to print */ + numPrintTreeParams = 0; + for (i=0; iparamType == P_TOPOLOGY) + { + /* always print parsimony topology (printParam == YES), otherwise */ + /* print topology only if brlens never requested (nPrintSubParams == 0)*/ + if (p->printParam == YES || p->nPrintSubParams == 0) + numPrintTreeParams++; + } + else if (p->paramType == P_BRLENS) + { + /* print only if brlens (or events) requested for at least one partition */ + if (p->printParam == YES || p->nPrintSubParams > 0) + numPrintTreeParams++; + } + else if (p->paramType == P_SPECIESTREE) + { + /* always print if printParam set to YES */ + if (p->printParam == YES) + numPrintTreeParams++; + } + } + + /* allocate space */ + printParam = (Param **) SafeCalloc (numPrintParams + numPrintTreeParams + numTopologies, sizeof(Param *)); + topologyPrintIndex = (int *) SafeCalloc (numTopologies + numPrintTreeParams, sizeof(int)); + if (!printParam || !topologyPrintIndex) + { + free (printParam); + free (topologyPrintIndex); + MrBayesPrint ("%s Could not allocate printParam vector in InitPrintParams\n", spacer); + return (ERROR); + } + printTreeParam = printParam + numPrintParams; + topologyParam = printTreeParam + numPrintTreeParams; + printTreeTopologyIndex = topologyPrintIndex + numTopologies; + memAllocs[ALLOC_PRINTPARAM] = YES; + + /* assign normal print params */ + for (i=j=0; iprintParam == YES && + p->paramType != P_TOPOLOGY && + p->paramType != P_BRLENS && + p->paramType != P_SPECIESTREE && + p->paramType != P_CPPEVENTS && + p->paramType != P_TK02BRANCHRATES && + p->paramType != P_IGRBRANCHRATES && + p->paramType != P_MIXEDBRCHRATES) + printParam[j++] = p; + } + + /* assign tree print params */ + for (i=j=k=0; iparamType == P_TOPOLOGY) + { + /* always print parsimony topology (printParam == YES), otherwise */ + /* print topology only if brlens never requested (nPrintSubParams == 0)*/ + if (p->printParam == YES || p->nPrintSubParams == 0) + numPrintTreeParams++; + } + else if (p->paramType == P_BRLENS) + { + /* print only if brlens (or events) requested for at least one partition */ + if (p->printParam == YES || p->nPrintSubParams > 0) + printTreeParam[k++] = p; + } + else if (p->paramType == P_SPECIESTREE) + { + if (p->printParam == YES) + printTreeParam[k++] = p; + } + } + + /* find topologies, topology file index, and printtree topology index */ + for (i=0; iparamType == P_SPECIESTREE) + { + topologyParam[j] = p; + for (k=0; kparamType == P_TOPOLOGY) + { + topologyParam[j] = p; + for (k=0; knSubParams; k++) + { + for (k1=0; k1subParams[k]) + break; + if (k1 < numPrintTreeParams) + break; + } + topologyPrintIndex[j] = k1; + printTreeTopologyIndex[k1] = j; + } + j++; + } + } + + return (NO_ERROR); +} + + +int IsPFNodeEmpty (PFNODE *p) +{ + int i; + + for (i=0; icount[i] > 0) + break; + } + if (i == chainParams.numRuns) + return YES; + else + return NO; +} + + +/* LargestNonemptyPFNode: recursive function to largest nonempty node in a subtree */ +PFNODE *LargestNonemptyPFNode (PFNODE *p, int *i, int j) +{ + PFNODE *q; + + ++j; + if (p == NULL) + return NULL; + + q = LargestNonemptyPFNode (p->left, i, j); + + if (q != NULL) + { + return q; + } + else if (IsPFNodeEmpty (p) == NO) + { + *i = j; + return p; + } + else + { + return LargestNonemptyPFNode (p->right, i, j); + } +} + + +/* ln prior ratio for clock trees */ +int LogClockTreePriorRatio (Param *param, int chain, MrBFlt *lnPriorRatio) +{ + MrBFlt oldLnPrior, newLnPrior, theta, N, growth, clockRate, sF, *sR, *eR, *fR; + char *sS; + Model *mp; + ModelInfo *m; + Tree *newTree, *oldTree; + TreeNode *p, *q=NULL; + int i, j; + + (*lnPriorRatio) = 0.0; + + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + newTree = GetTree (m->brlens, chain, state[chain]); + oldTree = GetTree (m->brlens, chain, state[chain] ^ 1); + + if (m->clockRate != NULL) + clockRate = *GetParamVals(m->clockRate, chain, state[chain]); + else + clockRate = 1.0; + + /* calculate prior ratio on brlens of clock tree */ + if (!strcmp(mp->clockPr,"Coalescence")) + { + /* coalescence prior */ + /* first calculate theta as 4*N*mu, 3*N*mu or 2*N*mu */ + N = *(GetParamVals (m->popSize, chain, state[chain])); + if (!strcmp(mp->ploidy, "Diploid")) + theta = 4 * N * clockRate; + else if (!strcmp(mp->ploidy, "Zlinked")) + theta = 3 * N * clockRate; + else + theta = 2 * N * clockRate; + /* deal with growth */ + if (!strcmp(mp->growthPr, "Fixed")) + growth = mp->growthFix; + else + growth = *(GetParamVals (m->growthRate, chain, state[chain])); + if (LnCoalescencePriorPr (oldTree, &oldLnPrior, theta, growth) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for coalescence process\n", spacer); + return (ERROR); + } + if (LnCoalescencePriorPr (newTree, &newLnPrior, theta, growth) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for coalescence process\n", spacer); + return (ERROR); + } + (*lnPriorRatio) = (newLnPrior - oldLnPrior); + } + else if (!strcmp(mp->clockPr,"Birthdeath")) + { + /* birth-death prior */ + sR = GetParamVals (m->speciationRates, chain, state[chain]); + eR = GetParamVals (m->extinctionRates, chain, state[chain]); + sS = mp->sampleStrat; + sF = mp->sampleProb; + if (LnBirthDeathPriorPr (oldTree, clockRate, &oldLnPrior, *sR, *eR, sS, sF) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for birth-death process\n", spacer); + return (ERROR); + } + if (LnBirthDeathPriorPr (newTree, clockRate, &newLnPrior, *sR, *eR, sS, sF) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for birth-death process\n", spacer); + return (ERROR); + } + (*lnPriorRatio) = (newLnPrior - oldLnPrior); + } + else if (!strcmp(mp->clockPr,"Fossilization")) + { + /* fossilized birth-death prior */ + sR = GetParamVals (m->speciationRates, chain, state[chain]); + eR = GetParamVals (m->extinctionRates, chain, state[chain]); + sF = mp->sampleProb; + fR = GetParamVals (m->fossilizationRates, chain, state[chain]); + sS = mp->sampleStrat; + if (LnFossilizationPriorPr (oldTree, clockRate, &oldLnPrior, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + return (ERROR); + } + if (LnFossilizationPriorPr (newTree, clockRate, &newLnPrior, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + return (ERROR); + } + (*lnPriorRatio) = (newLnPrior - oldLnPrior); + } + else if (!strcmp(mp->clockPr,"Uniform")) + { + oldLnPrior = LnUniformPriorPr(oldTree, clockRate); + newLnPrior = LnUniformPriorPr(newTree, clockRate); + (*lnPriorRatio) = (newLnPrior - oldLnPrior); + } + else if (!strcmp(mp->clockPr,"Speciestreecoalescence")) + { + // Defer this calculation to the BEST code + } + + assert (*lnPriorRatio > NEG_INFINITY); + + /* take care of calibrations */ + if (newTree->isCalibrated == YES) + { + for (i=0; inNodes-1; i++) + { + p = newTree->allDownPass[i]; + if (p->isDated == NO) + continue; + for (j=0; jnNodes-1; j++) + { + q = oldTree->allDownPass[j]; + if (p->lockID == q->lockID) + break; + } + assert (j != oldTree->nNodes-1); + if (p->isDated == YES && p->calibration->prior != fixed) + { + (*lnPriorRatio) += p->calibration->LnPriorRatio(p->age, q->age, p->calibration->priorParams); + } + } + } + + return (NO_ERROR); +} + + +/*----------------------------------------------------------------- +| +| LogLike: calculate the log likelihood of the new state of the chain +| +-----------------------------------------------------------------*/ +MrBFlt LogLike (int chain) +{ + int i, d; + ModelInfo *m; + MrBFlt chainLnLike, lnL; + + /* initialize chain cond like */ + chainLnLike = 0.0; + + if (chainParams.runWithData == NO) + return (chainLnLike); + +# if defined (DEBUG_RUN_WITHOUT_DATA) + return (chainLnLike); +# endif + +# if defined (THREADS_ENABLED) + if (tryToUseThreads && ScheduleLogLikeForAllDivisions()) + { + /* Launch all divisions that require updating simultaneously */ + chainLnLike = LaunchLogLikeForAllDivisionsInParallel(chain); + } + else + { + /* Launch divisions in series */ +# endif + + /* Cycle through divisions and recalculate tis and cond likes as necessary. */ + /* Code below does not try to avoid recalculating ti probs for divisions */ + /* that could share ti probs with other divisions. */ + for (d=0; dupDateCl == YES) + { + /* Work has been delegated to a separate function so we can wrap */ + /* a thread around it */ + LaunchLogLikeForDivision(chain, d, &(m->lnLike[2 * chain + state[chain]])); + } + if (abortMove == YES) + return MRBFLT_NEG_MAX; + chainLnLike += m->lnLike[2*chain + state[chain]]; + } + +# if defined (THREADS_ENABLED) + } +# endif + + /* unmark all divisions */ + if (chainHasAdgamma == YES) + { + for (d=0; dmark = NO; + } + + /* update HMM likelihoods if appropriate */ + for (d=0; dupDateCl == YES && m->correlation != NULL && m->mark != YES) + { + lnL = 0.0; + CalcLikeAdgamma(d, m->correlation, chain, &lnL); + + /* store the value for the cases where the HMM is not touched */ + m->lnLike[2*chain + state[chain]] = lnL; + + /* add it to chainLnLike - it was not added above since the division */ + /* lnL was set to zero after the update call to Likelihood_Adgamma */ + chainLnLike += lnL; + + /* set mark for other divisions in the HMM + (i.e., those with the same correlation parameter AND the same shape parameter) */ + for (i=0; icorrelation->nRelParts; i++) + { + if (modelSettings[m->correlation->relParts[i]].shape == modelSettings[d].shape) + { + modelSettings[m->correlation->relParts[i]].mark = YES; + } + } + } + } + } + + return (chainLnLike); +} + + +MrBFlt LogOmegaPrior (MrBFlt w1, MrBFlt w2, MrBFlt w3) +{ + + /* This function returns the log prior probability of + the ratio on three omegas. Here, we have three + nonsynonymous/synonymous rate ratios, denoted w1, w2, + and w3. They have the property that w1 < w2 < w3. + Remember that w1 = dN1/dS, w2 = dN2/dS, and + w3 = dN3/dS. We assume that dN1, dN2, dN3, and dS + are all independent draws from the same exponential + distribution, and that dN1, dN2, and dN3 are the + order statistics. The w1, w2, and w3, then, are + all scaled to the same dS r.v. */ + + MrBFlt lnProb; + + lnProb = log(36.0) - 4.0 * log(1.0 + w1 + w2 + w3); + + return (lnProb); +} + + +/* ------------------------------------------------------------------------------------------------------------- */ +/* Joint distribution of branch lengths t under gamma-Dirichlet prior: */ +/* (Zhang et al. 2012, Eq. 4; Rannala et al. 2012, Eq. 36): */ +/* ln[f(t|aT,bT,a,c)] = (aT - a*s - a*c*(s-3)) * ln(T) - bT * T + (a-1) * sum[ln(t_j)] + (a*c-1) * sum[ln(t_k)] */ +/* + aT * ln(bT) - lnG(aT) - lnB(a,c) */ +/* */ +/* Joint distribution of branch lengths t under invgamma-Dirichlet prior: */ +/* (Zhang et al. 2012, Eq. 6; Rannala et al. 2012, Eq. 39): */ +/* ln[f(t|aT,bT,a,c)] = (-aT - a*s - a*c*(s-3)) * ln(T) - bT / T + (a-1) * sum[ln(t_j)] + (a*c-1) * sum[ln(t_k)] */ +/* + aT * ln(bT) - lnG(aT) - lnB(a,c) */ +/* also see DoCitations() */ +/* ------------------------------------------------------------------------------------------------------------- */ + +/* external (tip): 1, internal: 0 */ +#define IsTip(Node) (Node->index < numTaxa || (Node->anc)->index < numTaxa) + +MrBFlt LogDirPrior (Tree *t, ModelParams *mp, int PV) +{ + /* ln prior prob. under Dirichlet priors and twoExp prior + //chi */ + + int i, nb[2] = {0,0}; + MrBFlt lnprior = 0.0, tb[2] = {0,0}, treeL = 0.0; + MrBFlt aT, bT, a, c; + TreeNode *p; + + /* Not safe, should define Marcos. YES or NO should never be defined to 2 or 3 or 4! */ + /* PV is 2 or 3: Dirichlet priors */ + if (PV == 2 || PV == 3) + { + /* partially for calculating lnPriorRatio, full part is in LogPrior() */ + aT = mp->brlensDir[0]; + bT = mp->brlensDir[1]; + a = mp->brlensDir[2]; + c = mp->brlensDir[3]; + + for (i = 0; i < t->nNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + treeL += p->length; + nb[IsTip(p)]++; + tb[IsTip(p)] += log(p->length); + } + } + lnprior += (a-1)*tb[1] + (a*c -1)*tb[0]; + if (PV == 2) + lnprior += (aT - a*nb[1] - a*c*nb[0]) * log(treeL) - bT*treeL; + else + lnprior += (-aT - a*nb[1] - a*c*nb[0]) * log(treeL) - bT/treeL; + } + /* or 4: twoExp prior */ + else if (PV == 4) + { + for (i = 0; i < t->nNodes; i++) { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + nb[IsTip(p)]++; + tb[IsTip(p)] += p->length; + } + } + for (i = 0; i < 2; i++) + lnprior += nb[i] * log(mp->brlens2Exp[i]) - tb[i] * (mp->brlens2Exp[i]); + } + + return lnprior; +} + + +MrBFlt LogPrior (int chain) +{ + int i, j, c, n, nStates, *nEvents, sumEvents, *ist, nRates, nParts[6]; + const int *rateCat; + MrBFlt *st, *sst, lnPrior, sum, x, clockRate, theta, popSize, growth, *alphaDir, newProp[190], + sF, *sR, *eR, *fR, freq, pInvar, lambda, sigma, nu, igrvar, **rateMultiplier; + char *sS; + CLFlt *nSitesOfPat; + Param *p; + ModelParams *mp; + ModelInfo *m; + Tree *t; + TreeNode *branch, *q; + + /* In the stepping-stone method, constants that appear in prior probability density functions must be fully specified. + It is not necessary for Bayesian MCMC analyses because such constants cancel out. */ + + lnPrior = 0.0; + for (n=0; nrelParts[0]] == NO) + continue; +# endif + + st = GetParamVals (p, chain, state[chain]); + sst = GetParamSubVals (p, chain, state[chain]); + mp = &modelParams[p->relParts[0]]; + m = &modelSettings[p->relParts[0]]; + + if (p->paramType == P_TRATIO) + { + /* tratio parameter */ + if (p->paramId == TRATIO_DIR) + { + alphaDir = mp->tRatioDir; + /* we convert here from the ratio parameterization used in the parameter + struct to the simplex parameterization used for the prior */ + newProp[0] = st[0] / (st[0] + 1.0); + newProp[1] = (1.0 - newProp[0]); + x = LnGamma(alphaDir[0]+alphaDir[1]) - LnGamma(alphaDir[0]) - LnGamma(alphaDir[1]); + for (i=0; i<2; i++) + x += (alphaDir[i]-1.0)*log(newProp[i]); + lnPrior += x; + } + } + else if (p->paramType == P_REVMAT) + { + /* revmat parameter */ + if (p->paramId == REVMAT_DIR) + { + if (p->nValues == 6) + alphaDir = mp->revMatDir; + else /* if (p->nValues == 190) */ + alphaDir = mp->aaRevMatDir; + sum = 0.0; + for (i=0; inValues; i++) + sum += alphaDir[i]; + x = LnGamma(sum); + for (i=0; inValues; i++) + x -= LnGamma(alphaDir[i]); + for (i=0; inValues; i++) + x += (alphaDir[i] - 1.0) * log(st[i]); + lnPrior += x; + } + else if (p->paramId == REVMAT_MIX) + { + assert (p->nValues == 6); + alphaDir = &mp->revMatSymDir; + ist = GetParamIntVals(p, chain, state[chain]); /* the growth fxn */ + nRates = GetKFromGrowthFxn(ist); + /* get the actual rate proportions of the current groups */ + for (i=0; iparamType == P_OMEGA) + { + /* account for prior on omega proportion if 1 omega category */ + if (p->paramId == OMEGA_DIR) + { + alphaDir = mp->omegaDir; + /* convert from ratio parameterization to simplex representation */ + newProp[0] = st[0] / (st[0] + 1.0); + newProp[1] = 1.0 - newProp[0]; + x = LnGamma(alphaDir[0]+alphaDir[1]) - LnGamma(alphaDir[0]) - LnGamma(alphaDir[1]); + for (i=0; i<2; i++) + x += (alphaDir[i]-1.0)*log(newProp[i]); + lnPrior += x; + } + /* account for stationary state frequencies of M3 and ny98 omega categories */ + if (p->paramId == OMEGA_BUD || p->paramId == OMEGA_BED || + p->paramId == OMEGA_BFD || p->paramId == OMEGA_FUD || + p->paramId == OMEGA_FED || p->paramId == OMEGA_FFD || + p->paramId == OMEGA_ED || p->paramId == OMEGA_FD) + { + alphaDir = mp->codonCatDir; + x = 0.0; + for (i=0; i<3; i++) + x += (alphaDir[i]-1.0)*log(sst[i]); + lnPrior += x; + } + /* account for beta prior on omeganeg in NY98 */ + if (p->paramId == OMEGA_BUD || p->paramId == OMEGA_BUF || + p->paramId == OMEGA_BED || p->paramId == OMEGA_BEF || + p->paramId == OMEGA_BFD || p->paramId == OMEGA_BFF) + { + alphaDir = mp->ny98omega1Beta; + newProp[0] = st[0] / (st[0] + 1.0); + newProp[1] = 1.0 - newProp[0]; + x = 0.0; + for (i=0; i<2; i++) + x += (alphaDir[i]-1.0)*log(newProp[i]); + lnPrior += x; + } + /* account for omegapos in NY98 with uniform prior prob */ + if (p->paramId == OMEGA_BUD || p->paramId == OMEGA_BUF || + p->paramId == OMEGA_FUD || p->paramId == OMEGA_FUF) + { + lnPrior += log(1.0) - log(mp->ny98omega3Uni[1] - mp->ny98omega3Uni[0]); + } + /* account for omegapos in NY98 with exponential prior prob */ + if (p->paramId == OMEGA_BED || p->paramId == OMEGA_BEF || + p->paramId == OMEGA_FED || p->paramId == OMEGA_FEF) + { + lnPrior += (log(mp->ny98omega3Exp) - mp->ny98omega3Exp * st[2]); + } + /* account for omegas in M3, which can only be exponential; if fixed, ln prior prob is 0 */ + if (p->paramId == OMEGA_EF || p->paramId == OMEGA_ED) + { + lnPrior += LogOmegaPrior (st[0], st[1], st[2]); + } + } + else if (p->paramType == P_PI) + { + /* state frequencies parameter */ + if (p->paramId == PI_DIR) + { + nStates = p->nSubValues; + sum = 0.0; + for (i=0; iparamId == SYMPI_EXP || p->paramId == SYMPI_EXP_MS) + { + lnPrior += - mp->symBetaExp * st[0] + log(mp->symBetaExp); + } + else if (p->paramId == SYMPI_UNI || p->paramId == SYMPI_UNI_MS) + { + lnPrior += log(1.0) - log(mp->symBetaUni[1] - mp->symBetaUni[0]); + } + if (p->paramId == SYMPI_EXP_MS || p->paramId == SYMPI_UNI_MS || p->paramId == SYMPI_FIX_MS) + { + sst = GetParamStdStateFreqs(p, chain, state[chain]); + sst += 2*m->numBetaCats; + for (i=0; inSympi; i++) + { + nStates = p->sympinStates[i]; + x = LnGamma(nStates*st[0]) - nStates*LnGamma(st[0]); + for (j=0; jparamType == P_SHAPE) + { + /* gamma/lnorm shape parameter */ + if (p->paramId == SHAPE_UNI) + { + lnPrior += log(1.0) - log(mp->shapeUni[1] - mp->shapeUni[0]); + } + else if (p->paramId == SHAPE_EXP) + { + lnPrior += log(mp->shapeExp) - mp->shapeExp * st[0]; + } + for (i=0; inRelParts; i++) + { + m = &modelSettings[p->relParts[i]]; + if (m->gibbsGamma == YES) + { + if (m->pInvar == NULL) + lnPrior += log(1.0/m->numGammaCats) * m->numUncompressedChars; + else + { + rateCat = m->tiIndex + chain * m->numChars; + pInvar = *GetParamVals (m->pInvar, chain, state[chain]); + nSitesOfPat = numSitesOfPat + m->compCharStart; + freq = (1.0 - pInvar)/m->numGammaCats; + for (c=0; cnumChars; c++) + { + if (rateCat[c] < m->numGammaCats) + lnPrior += log(freq) * nSitesOfPat[c]; + else + lnPrior += log(pInvar) * nSitesOfPat[c]; + } + } + } + } + } + else if (p->paramType == P_PINVAR) + { + /* proportion of invariable sites parameter */ + lnPrior += log(1.0) - log(mp->pInvarUni[1] - mp->pInvarUni[0]); + } + else if (p->paramType == P_CORREL) + { + /* adGamma model parameter */ + lnPrior += log(1.0) - log(mp->corrUni[1] - mp->corrUni[0]); + } + else if (p->paramType == P_SWITCH) + { + /* switching rate parameter of covarion model */ + if (p->paramId == SWITCH_UNI) + { + lnPrior += log(1.0) - log(mp->covswitchUni[1] - mp->covswitchUni[0]); + } + else if (p->paramId == SWITCH_EXP) + { + lnPrior += log(mp->covswitchExp) - mp->covswitchExp * st[0]; + } + } + else if (p->paramType == P_RATEMULT && p->nValues > 1) + { + nStates = p->nValues; + sum = 0.0; + for (i=0; iparamType == P_GENETREERATE && p->nValues > 1) + { + nStates = p->nValues; + sum = 0.0; + for (i=0; iparamType == P_TOPOLOGY) + { + // Note that a topology can have several unlinked branch length subparameters but only + // one set of clock branch lengths. To find all the branch length subparameters of a + // topology, cycle through the p->subParams, which will contain at least one branch length + // parameter. + t = GetTree (p, chain, state[chain]); + if (t->isClock == YES) + continue; /* prior probability taken care of in the brlens parameter */ + if (t->nLocks > 0) + { + for (i=0; inNodes-1; i++) + { + branch = t->allDownPass[i]; + if (branch->left == NULL) + branch->x = 1; + else + branch->x = branch->left->x + branch->right->x; + if (branch->isLocked == YES || branch->anc->anc == NULL) + { + for (j = 2*branch->x - 3; j>=1; j-=2) + { + lnPrior -= log ((MrBFlt)j); + } + branch->x = 1; + } + } + } + else + { + for (j = 2*(t->nNodes-t->nIntNodes)-5; j>=1; j-=2) + { + lnPrior -= log ((MrBFlt)j); + } + } + } + else if (p->paramType == P_BRLENS) + { + /* branch lengths */ + t = GetTree (p, chain, state[chain]); + if (t->isClock == YES) + { + if (p->paramId == BRLENS_CLOCK_UNI) + { + /* uniformly distributed branch lengths */ + clockRate = *(GetParamVals (m->clockRate, chain, state[chain])); + lnPrior += LnUniformPriorPr(t, clockRate); + } + else if (p->paramId == BRLENS_CLOCK_COAL) + { + /* coalescence prior */ + popSize = *(GetParamVals (m->popSize, chain, state[chain])); + clockRate = *(GetParamVals (m->clockRate, chain, state[chain])); + if (strcmp(mp->ploidy, "Diploid") == 0) + theta = 4.0 * popSize * clockRate; + else if (strcmp(mp->ploidy, "Zlinked") == 0) + theta = 3.0 * popSize * clockRate; + else + theta = 2.0 * popSize * clockRate; + if (!strcmp(mp->growthPr, "Fixed")) + growth = mp->growthFix; + else + growth = *(GetParamVals (m->growthRate, chain, state[chain])); + if (LnCoalescencePriorPr (t, &x, theta, growth) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for coalescence process\n", spacer); + } + lnPrior += x; + } + else if (p->paramId == BRLENS_CLOCK_BD) + { + /* birth-death prior */ + sR = GetParamVals (m->speciationRates, chain, state[chain]); + eR = GetParamVals (m->extinctionRates, chain, state[chain]); + sS = mp->sampleStrat; + sF = mp->sampleProb; + if (m->clockRate != NULL) + clockRate = *(GetParamVals (m->clockRate, chain, state[chain])); + else + clockRate = 1.0; + if (LnBirthDeathPriorPr (t, clockRate, &x, *sR, *eR, sS, sF) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for birth-death process\n", spacer); + } + lnPrior += x; + } + else if (p->paramId == BRLENS_CLOCK_FOSSIL) + { + /* fossilized birth-death prior */ + sR = GetParamVals (m->speciationRates, chain, state[chain]); + eR = GetParamVals (m->extinctionRates, chain, state[chain]); + sF = mp->sampleProb; + fR = GetParamVals (m->fossilizationRates, chain, state[chain]); + sS = mp->sampleStrat; + if (m->clockRate != NULL) + clockRate = *(GetParamVals (m->clockRate, chain, state[chain])); + else + clockRate = 1.0; + if (LnFossilizationPriorPr (t, clockRate, &x, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + } + lnPrior += x; + } + else if (p->paramId == BRLENS_CLOCK_SPCOAL) + { + /* delegate this calculation to the P_SPECIESTREE parameter */ + } + if (t->isCalibrated == YES) + { + /* take care of calibrations */ + for (i=0; inNodes-1; i++) + { + q = t->allDownPass[i]; + if (q->isDated == YES && q->calibration->prior != fixed) + { + lnPrior += q->calibration->LnPriorProb(q->age, q->calibration->priorParams); + } + } + } + } + else + { + if (p->paramId == BRLENS_UNI) + { + for (i=0; inNodes; i++) + { + branch = t->allDownPass[i]; + if (branch->anc != NULL) + lnPrior += log(1.0) - log(mp->brlensUni[1] - BRLENS_MIN); + } + } + else if (p->paramId == BRLENS_EXP) + { + for (i=0; inNodes; i++) + { + branch = t->allDownPass[i]; + if (branch->anc != NULL) + lnPrior += log(mp->brlensExp) - mp->brlensExp * branch->length; + } + } + /* Dirichlet priors */ + else if (p->paramId == BRLENS_GamDir) + { + lnPrior += LogDirPrior(t, mp, 2); + lnPrior += (mp->brlensDir[0]) * log(mp->brlensDir[1]) - LnGamma(mp->brlensDir[0]) + + LnGamma (mp->brlensDir[2] * numTaxa + mp->brlensDir[2] * mp->brlensDir[3] * (numTaxa-3)) + - numTaxa * LnGamma(mp->brlensDir[2]) - (numTaxa-3) * LnGamma(mp->brlensDir[2] * mp->brlensDir[3]); + } + else if (p->paramId == BRLENS_iGmDir) + { + lnPrior += LogDirPrior(t, mp, 3); + lnPrior += (mp->brlensDir[0]) * log(mp->brlensDir[1]) - LnGamma(mp->brlensDir[0]) + + LnGamma (mp->brlensDir[2] * numTaxa + mp->brlensDir[2] * mp->brlensDir[3] * (numTaxa-3)) + - numTaxa * LnGamma(mp->brlensDir[2]) - (numTaxa-3) * LnGamma(mp->brlensDir[2] * mp->brlensDir[3]); + } + /* twoExp prior */ + else if (p->paramId == BRLENS_twoExp) + lnPrior += LogDirPrior(t, mp, 4); + } + } + else if (p->paramType == P_SPECRATE) + { + /* speciation rate parameter */ + if (p->paramId == SPECRATE_UNI) + { + for (i=0; inValues; i++) + lnPrior += log(1.0) - log(mp->speciationUni[1] - mp->speciationUni[0]); + } + else if (p->paramId == SPECRATE_EXP) + { + for (i=0; inValues; i++) + lnPrior += log(mp->speciationExp) - mp->speciationExp * st[i]; + } + } + else if (p->paramType == P_EXTRATE) + { + /* extinction rate parameter */ + if (p->paramId == EXTRATE_BETA) + { + for (i=0; inValues; i++) + { + alphaDir = mp->extinctionBeta; + newProp[0] = st[i]; + newProp[1] = (1.0 - newProp[0]); + lnPrior += LnGamma(alphaDir[0]+alphaDir[1]) - LnGamma(alphaDir[0]) - LnGamma(alphaDir[1]); + lnPrior += (alphaDir[0]-1.0)*log(newProp[0]) + (alphaDir[1]-1.0)*log(newProp[1]); + } + } + } + else if (p->paramType == P_FOSLRATE) + { + /* fossilization rate parameter */ + if (p->paramId == FOSLRATE_BETA) + { + for (i=0; inValues; i++) + { + alphaDir = mp->fossilizationBeta; + newProp[0] = st[i]; + newProp[1] = (1.0 - newProp[0]); + // if (newProp[0] > 0.0) /* to avoid psi=0 in [0, x_cut] under diversified sampling */ + lnPrior += LnGamma(alphaDir[0]+alphaDir[1]) - LnGamma(alphaDir[0]) - LnGamma(alphaDir[1]); + lnPrior += (alphaDir[0]-1.0)*log(newProp[0]) + (alphaDir[1]-1.0)*log(newProp[1]); + } + } + } + else if (p->paramType == P_POPSIZE) + { + /* neutral coalescence population size parameter; one value, or one value per branch of species tree */ + for (i=0; inValues; i++) + { + lnPrior += p->LnPriorProb(st[i], p->priorParams); + } + } + else if (p->paramType == P_AAMODEL) + { + lnPrior += sst[(int)st[0]]; + } + else if (p->paramType == P_BRCORR) + { + + } + else if (p->paramType == P_BRSIGMA) + { + + } + else if (p->paramType == P_GROWTH) + { + /* population growth parameter */ + if (p->paramId == GROWTH_UNI) + { + lnPrior += log(1.0) - log(mp->growthUni[1] - mp->growthUni[0]); + } + else if (p->paramId == GROWTH_EXP) + { + lnPrior += log(mp->growthExp) - mp->growthExp * st[0]; + } + } + else if (p->paramType == P_CPPRATE) + { + /* rate (lambda) of comp poisson process of relaxed clock */ + if (p->paramId == CPPRATE_EXP) + { + lnPrior += log (mp->cppRateExp) - mp->cppRateExp * st[0]; + } + } + else if (p->paramType == P_CPPMULTDEV) + { + /* standard deviation (log) of lognormal distribution of rate multipliers for cpp relaxed clock */ + /* only fixed value allowed currently */ + } + else if (p->paramType == P_CPPEVENTS) + { + /* events of CPP relaxed clock process */ + lambda = *GetParamVals (m->cppRate, chain, state[chain]); + sigma = *GetParamVals (m->cppMultDev, chain, state[chain]); + nEvents = p->nEvents[2*chain+state[chain]]; + rateMultiplier = p->rateMult[2*chain+state[chain]]; + /* cpp events */ + sumEvents = 0; + for (i=0; i<2*numLocalTaxa-2; i++) + sumEvents += nEvents[i]; + t = GetTree (p, chain, state[chain]); + lnPrior += - lambda * TreeLength (p, chain) + (sumEvents * log (lambda)); + /* rate multipliers */ + for (i=0; i<2*numLocalTaxa-2; i++) + { + for (j=0; jnNodes-2; i++) + { + branch = t->allDownPass[i]; + assert (fabs(branch->length - (branch->anc->nodeDepth - branch->nodeDepth)) < 0.000001); + } + } + else if (p->paramType == P_TK02VAR) + { + /* variance of rates (nu) in Thorne-Kishino model */ + if (p->paramId == TK02VAR_EXP) + { + lnPrior += log (mp->tk02varExp) - mp->tk02varExp * st[0]; + } + else if (p->paramId == TK02VAR_UNI) + { + lnPrior += log(1.0) - log (mp->tk02varUni[1] - mp->tk02varUni[0]); + } + } + else if (p->paramType == P_TK02BRANCHRATES || (p->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(p, chain, state[chain]) == RCL_TK02)) + { + /* branch rates of Thorne-Kishino model */ + t = GetTree (p, chain, state[chain]); + if (p->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (m->tk02var, chain, state[chain]); + else + nu = *GetParamVals (m->mixedvar, chain, state[chain]); + for (i=0; inNodes-2; i++) + { + branch = t->allDownPass[i]; + if (branch->length > 0.0) // not ancestral fossil + lnPrior += LnProbTK02LogNormal (st[branch->anc->index], nu*branch->length, st[branch->index]); + } + } + else if (p->paramType == P_IGRVAR) + { + /* variance of rates in independent gamma rates model */ + if (p->paramId == IGRVAR_EXP) + { + lnPrior += log (mp->igrvarExp) - mp->igrvarExp * st[0]; + } + else if (p->paramId == IGRVAR_UNI) + { + lnPrior += log(1.0) - log (mp->igrvarUni[1] - mp->igrvarUni[0]); + } + } + else if (p->paramType == P_IGRBRANCHRATES || (p->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(p, chain, state[chain]) == RCL_IGR)) + { + /* branch rates of independent branch rate model */ + t = GetTree (p, chain, state[chain]); + if (p->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (m->igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (m->mixedvar, chain, state[chain]); + for (i=0; inNodes-2; i++) + { + branch = t->allDownPass[i]; + if (branch->length > 0.0) // not ancestral fossil + lnPrior += LnProbGamma (branch->length/igrvar, branch->length/igrvar, st[branch->index]); + assert (fabs(sst[branch->index] - branch->length * st[branch->index]) < BRLENS_MIN); + assert (fabs(branch->length - (branch->anc->nodeDepth - branch->nodeDepth)) < BRLENS_MIN); + } + } + else if (p->paramType == P_MIXEDVAR) + { + /* hyper prior of rates in mixed rel clock model */ + if (p->paramId == MIXEDVAR_EXP) + { + lnPrior += log (mp->mixedvarExp) - mp->mixedvarExp * st[0]; + } + else if (p->paramId == MIXEDVAR_UNI) + { + lnPrior += log(1.0) - log (mp->mixedvarUni[1] - mp->mixedvarUni[0]); + } + } + else if (p->paramType == P_CLOCKRATE) + { + /* base rate of molecular clock */ + lnPrior += p->LnPriorProb(st[0], p->priorParams); + } + else if (p->paramType == P_SPECIESTREE) + { + /* calculate prior */ + lnPrior += LnSpeciesTreeProb(chain); + } + } + assert (lnPrior == lnPrior); + +# if defined (BEST_MPI_ENABLED) + /* Assemble prior probabilities across processors */ + myLnPrior = lnPrior; + MPI_AllReduce (&myLnPrior, &lnPrior, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +# endif + + return (lnPrior); +} + + +int LnBirthDeathPriorPr (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt sR, MrBFlt eR, char *sS, MrBFlt sF) +{ + if (!strcmp(sS, "Random")) + { + return LnBirthDeathPriorPrRandom (t, clockRate, prob, sR, eR, sF); + } + else if (!strcmp(sS, "Diversity")) + { + return LnBirthDeathPriorPrDiversity (t, clockRate, prob, sR, eR, sF); + } + else if (!strcmp(sS, "Cluster")) + { + return LnBirthDeathPriorPrCluster (t, clockRate, prob, sR, eR, sF); + } + else + { + MrBayesPrint ("%s ERROR: Sampling strategy for birth-death process not implemented\n", spacer); + return (ERROR); + } +} + + +/*--------------------------------------------------------------------------------- +| +| LnBirthDeathPriorPrRandom +| +| We assume a rooted tree that satisfies the molecular clock constraint. The +| tree is labelled as follows: +| +| t_4 (age of tips) +| \ \ \ / +| \ \ \ / +| \ \ \ / +| \ \ \ / +| \ \ \/ t_3 +| \ \ / +| \ \ / +| \ \ / +| \ \ / +| \ \/ t_2 +| \ / +| \ / +| \ / +| \ / +| \/ t_1 (age of most recent common ancestor) +| +| +| This function calculates the probability of such a tree under the neutral +| birth death prior with constant birth and death rates, conditioned on +| a particular time of the first split, t_1, and a particular number of +| species, n. We assume rho-sampling, that is, a constant sampling pro- +| bability rho, which is known, across tips of the tree. Variables: +| +| T: the unlabeled oriented tree, which is equivalent to a set of unordered +| speciation times from a point process +| tau: the labeled unoriented tree +| b: birth (speciation) rate +| d: death (extintion) rate +| f: sampling fraction +| n: number of species in the sampled tree +| +| See: +| Tanja Stadler (2009) On incomplete sampling under birth-death models and +| connections to the sampling-based coalescent. Journal of Theoretical Biology +| 261: 58-66. +| +| We use f(T|n), which is derived from f(T|n,t_or) using Stadler's approach, +| in which the time of origin of the tree is associated with a uniform prior +| and integrated out of the density. We then have: +| +| We have the following distribution for ordered bifurcation times (cf. +| equation 5 in Stadler, 2009, simplified here using the p0 and p1 functions): +| +| +| n! * p1(t_1) n-1 +| f(T|n) = --------------- * prod (b * p1(t_i)) +| (1 - p0(t_1)) i=1 +| +| +| where t_1 = time of most recent common ancestor +| p0(t) = prob. of no descendants surviving and being sampled after time t (see LnP0 function below) +| p1(t) = prob. of one descendant surviving and being sampled after time t (see LnP1 function below) +| +| To get the distribution on oriented trees, this density needs to be divided by the +| number of ways of ordering n-1 bifurcation times, (n-1)!, since each way of ordering +| the bifurcation times corresponds to a distinct oriented tree. The result is the following +| density on oritented trees: +| +| n * p1(t_1) n-1 +| f(T|n) = --------------- * prod (b * p1(t_i)) +| (1 - p0(t_1)) i=1 +| +| +| To translate this to a density on distinct labeled trees, the density needs to be multiplied by +| (2^(n-1) / n!). +| +| For the critical process where the speciation and extinction rates are equal, we obtain the +| following result in the limit (cf. equation 6 in Stadler (2009)): +| +| n n-1 f*b +| f(T|n) = -------------- * prod ----------------- +| (1 + f*b*t_1) i=1 (1 + f*b*t_i)^2 +| +---------------------------------------------------------------------------------*/ +int LnBirthDeathPriorPrRandom (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt sR, MrBFlt eR, MrBFlt sF) +{ + int i, nTaxa; + MrBFlt *nt, lambda, mu, rho; + TreeNode *p; + + /* allocate space for the speciation times */ + nt = (MrBFlt *)SafeMalloc((size_t)(t->nIntNodes) * sizeof(MrBFlt)); + if (!nt) + { + MrBayesPrint ("\n ERROR: Problem allocating nt\n"); + return (ERROR); + } + + /* transform to standard variables */ + rho = sF; + lambda = sR / (1.0 - eR); + mu = eR * lambda; + + /* get the node times and put them into a vector */ + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + nt[i] = p->nodeDepth / clockRate; + } + nTaxa = t->nIntNodes + 1; + + /* calculate probability of tree using standard variables */ + if (AreDoublesEqual(lambda,mu,ETA)==NO) + { + // birth rate != death rate, see equation (5) in Stadler (2009) and above + (*prob) = log(nTaxa) + log(lambda - mu) - (lambda - mu) * nt[t->nIntNodes-1]; + (*prob) -= log(rho*lambda + (lambda*(1.0 - rho) - mu)*exp((mu - lambda)*nt[t->nIntNodes-1])); + for (i=0; inIntNodes; i++) + (*prob) += log(rho*lambda) + LnP1Subsample(nt[i], lambda, mu, rho); + (*prob) += (nTaxa - 1.0) * log(2.0) - LnFactorial(nTaxa); /* conversion to labeled tree from oriented tree */ + } + else + { + // birth rate == death rate -> the critical branching process + (*prob) = log(nTaxa/(1.0 + rho*lambda*nt[t->nIntNodes-1])); + for (i=0; inIntNodes; i++) + (*prob) += log(rho*lambda) - 2.0 * log(1.0 + rho*lambda*nt[i]); + (*prob) += (nTaxa - 1.0) * log(2.0) - LnFactorial(nTaxa); /* conversion to labeled tree from oriented tree */ + } + + /* free memory */ + free (nt); + + return (NO_ERROR); +} + + +/*--------------------------------------------------------------------------------- + | + | LnBirthDeathPriorPrDiversity + | + | Eq.5 in Hohna et al. 2011 MBE + | + ---------------------------------------------------------------------------------*/ +int LnBirthDeathPriorPrDiversity (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt sR, MrBFlt eR, MrBFlt sF) +{ + int i, nTaxa, n, m; + MrBFlt *nt, lambda, mu, nt_min; + TreeNode *p; + + /* allocate space for the speciation times */ + nt = (MrBFlt *)SafeMalloc((size_t)(t->nIntNodes) * sizeof(MrBFlt)); + if (!nt) + { + MrBayesPrint ("\n ERROR: Problem allocating nt\n"); + return (ERROR); + } + + /* transform to standard variables */ + lambda = sR / (1.0 - eR); + mu = eR * lambda; + + n = t->nIntNodes+1; + m = (int)floor(n/sF+0.5); /* equal to round(n/sF) plus it is compatible with MS Visual Studio */ + + /* get the node times and put them into a vector */ + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + nt[i] = p->nodeDepth / clockRate; + } + nTaxa = t->nIntNodes + 1; + + /* find the youngest interal node */ + nt_min = nt[0]; + for (i=0; inIntNodes-1; i++) + { + if (nt_min > nt[i]) + nt_min = nt[i]; + } + + /* calculate probability of tree using standard variables */ + if (AreDoublesEqual(lambda,mu,ETA)==NO) + { + // birth rate != death rate + MrBFlt p0_t1; + p0_t1 = LnP0(nt[t->nIntNodes-1], lambda, mu); + (*prob) = log(nTaxa); // we need to add here the binomial coefficient + (*prob) += (m-n) * (LnP0(nt_min, lambda, mu) - p0_t1); + for (i=0; inIntNodes-1; i++) + (*prob) += (LnP1(nt[i], lambda, mu) - p0_t1); + (*prob) += (nTaxa - 1.0) * log(2.0) - LnFactorial(nTaxa); /* conversion to labeled tree from oriented tree */ + } + else + { + MrBayesPrint ("\n ERROR: Critical branchin process for diversity sampling not implemented\n"); + return (ERROR); + } + + /* condition on tmrca ??? */ + + /* free memory */ + free (nt); + + return (NO_ERROR); +} + + +/*--------------------------------------------------------------------------------- + | + | LnBirthDeathPriorPrCluster + | + | Eq.7 in Hohna et al. 2011 MBE + | + ---------------------------------------------------------------------------------*/ +int LnBirthDeathPriorPrCluster (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt sR, MrBFlt eR, MrBFlt sF) +{ + int i, nTaxa, n, m; + MrBFlt *nt, lambda, mu, nt_max; + TreeNode *p; + + /* allocate space for the speciation times */ + nt = (MrBFlt *)SafeMalloc((size_t)(t->nIntNodes) * sizeof(MrBFlt)); + if (!nt) + { + MrBayesPrint ("\n ERROR: Problem allocating nt\n"); + return (ERROR); + } + + /* transform to standard variables */ + lambda = sR / (1.0 - eR); + mu = eR * lambda; + + n = t->nIntNodes+1; + m = (int)floor(n/sF+0.5); /* equal to round(n/sF) plus it is compatible with MS Visual Studio */ + + /* get the node times and put them into a vector */ + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + nt[i] = p->nodeDepth / clockRate; + } + nTaxa = t->nIntNodes + 1; + + /* find the second oldest interal node */ + nt_max = nt[0]; + for (i=0; inIntNodes-1; i++) + { + if (nt_max < nt[i]) + nt_max = nt[i]; + } + + /* calculate probability of tree using standard variables */ + if (AreDoublesEqual(lambda,mu,ETA)==NO) + { + // birth rate != death rate + MrBFlt p0_t1; + p0_t1 = LnP0(nt[t->nIntNodes-1], lambda, mu); + (*prob) = log(nTaxa); // we need to add here the binomial coefficient + (*prob) += (m-n) * (LnP0(nt_max, lambda, mu) - p0_t1); + for (i=0; inIntNodes-1; i++) + (*prob) += (LnP1(nt[i], lambda, mu) - p0_t1); + (*prob) += (nTaxa - 1.0) * log(2.0) - LnFactorial(nTaxa); /* conversion to labeled tree from oriented tree */ + } + else + { + MrBayesPrint ("\n ERROR: Critical branchin process for cluster sampling not implemented\n"); + return (ERROR); + } + + /* condition on tmrca ??? */ + + /* free memory */ + free (nt); + + return (NO_ERROR); +} + + +/* + | + | The probability of having zero lineages remaining after time t in the + | birth-death process. + | + | param: t - speciation time + | param: b - birth rate + | param: d - death rate + | return: log probability of zero remaining lineages + | + */ +MrBFlt LnP0 (MrBFlt t, MrBFlt b, MrBFlt d) +{ + MrBFlt p0t; + + p0t = d*(1.0-exp((d-b)*t)) / (b -d*exp((d-b)*t)); + + return (log(p0t)); +} + +/* + | + | The probability of having zero lineages remaining after time t in the + | birth-death process. + | + | param: t - speciation time + | param: b - birth rate + | param: d - death rate + | param: f - sample frequency + | return: log probability of zero remaining lineages + | + */ +MrBFlt LnP0Subsample (MrBFlt t, MrBFlt b, MrBFlt d, MrBFlt f) +{ + MrBFlt p0t; + + p0t = (f*d + (b*(1.0-f) - d)*exp((d-b)*t)) / (f*b + (b*(1.0-f)-d)*exp((d-b)*t)); + + return (log(p0t)); +} + +/* + | + | The probability of having one lineage remaining after time t + | in the birth-death process. + | + | param: t - speciation time + | param: b - birth rate + | param: d - death rate + | return: log probability of one remaining lineage + | + */ +MrBFlt LnP1 (MrBFlt t, MrBFlt b, MrBFlt d) +{ + MrBFlt p0t; + + p0t = 2.0 * log(b-d) - (b-d)*t; + + p0t -= 2.0 * log(b - d*exp((d-b)*t)); + + return p0t; +} + +/* + | + | The probability of having one lineage remaining after time t + | in the birth-death process. + | + | param: t - speciation time + | param: b - birth rate + | param: d - death rate + | param: f - sample frequency + | return: log probability of one remaining lineage + | + */ +MrBFlt LnP1Subsample (MrBFlt t, MrBFlt b, MrBFlt d, MrBFlt f) +{ + MrBFlt p0t; + + p0t = (b-d) / (f*b + (b*(1.0-f)-d)*exp((d-b)*t)); + + return (2.0*log(p0t) + (d-b)*t); +} + + +/* probability that an individual alive at time t before today has + no sampled extinct or extant descendants + */ +MrBFlt LnP0_fossil (MrBFlt t, MrBFlt lambda, MrBFlt mu, MrBFlt psi, MrBFlt c1, MrBFlt c2) +{ + MrBFlt other; + + // c1 = sqrt(pow(lambda-mu-psi, 2) + 4*lambda*psi); + // c2 = (-lambda + mu + 2*lambda*rho + psi) / c1; + other = (exp(-c1 *t) * (1 - c2) - (1 + c2)) / (exp(-c1 *t) * (1 - c2) + (1 + c2)); + + return log(0.5) + log(lambda + mu + psi + c1 * other) - log(lambda); +} + +/* probability that an individual alive at time t before today has + precisely one sampled extant descendant and no sampled extinct descendant + */ +MrBFlt LnP1_fossil (MrBFlt t, MrBFlt rho, MrBFlt c1, MrBFlt c2) +{ + MrBFlt other; + + // c1 = sqrt(pow(lambda-mu-psi, 2) + 4*lambda*psi); + // c2 = (-lambda + mu + 2*lambda*rho + psi) / c1; + other = 2.0 * (1- c2*c2) * exp(-c1 *t) + pow(1-c2, 2) * exp(-2 *c1 *t) + pow(1+c2, 2); + + return log(4.0) + log(rho) - c1 *t - log(other); +} + + +/* return which time interval t is in */ +int Slice_i (MrBFlt t, MrBFlt *t_f, int sl) +{ + int i = 0; + assert (t > 0.0 && sl >= 0); + + /* we need some tolerance here, for t[i] < t <= t[i-1] to return i */ + while (t < t_f[i] + BRLENS_MIN/5) + { + i++; + if (i > sl) + return sl; + } + return i; +} + +/* probability density of an individual at time t giving rise to an edge + between time t and t_i with q_i(t_i) = 1 + */ +MrBFlt LnQi_fossil (MrBFlt t, MrBFlt *t_f, int sl, MrBFlt *c1, MrBFlt *c2) +{ + MrBFlt lnq; + int i = Slice_i (t, t_f, sl); + + lnq = log(4.0) +c1[i] *(t_f[i] -t); + lnq -= 2.0 * log(1 +c2[i] +(1 -c2[i]) *exp(c1[i] *(t_f[i] -t))); + + return lnq; +} + +/* an individual at time t has no sampled descendants when the process is stopped + (i.e., at time t_s), with t_i < t <= t_{i-1} (i = 1,..,s) + */ +MrBFlt LnPi_fossil (MrBFlt t, MrBFlt *t_f, int sl, MrBFlt *c1, MrBFlt *c2, MrBFlt *lambda, MrBFlt *mu, MrBFlt *psi) +{ + MrBFlt other; + int i = Slice_i (t, t_f, sl); + + other = lambda[i] +mu[i] +psi[i] -c1[i] * (1 +c2[i] -(1 -c2[i]) *exp(c1[i] *(t_f[i] -t))) + / (1 +c2[i] +(1 -c2[i]) *exp(c1[i] *(t_f[i] -t))); + return log(other) - log(2 *lambda[i]); +} + + +int LnFossilizationPriorPr (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt *sR, MrBFlt *eR, MrBFlt sF, MrBFlt *fR, char *sS) +{ + /* fossilization priors + //chi */ + + if (!strcmp(sS, "FossilTip")) + return LnFossilizedBDPriorFossilTip (t, clockRate, prob, *sR, *eR, sF, *fR); + else if (!strcmp(sS, "Random")) + return LnFossilizedBDPriorRandom (t, clockRate, prob, sR, eR, sF, fR); + else if (!strcmp(sS, "Diversity")) + return LnFossilizedBDPriorDiversity (t, clockRate, prob, sR, eR, sF, fR); + else + { + MrBayesPrint ("%s Sampling strategy %s for fossilized birth-death process not implemented\n", spacer, sS); + return (ERROR); + } +} + + +/*--------------------------------------------------------------------------------- + | + | time ___ 0 + | \ / | + | \ / |___ y2 + | \ \ / | + | \ \ / | + | \ \/ x3 ___| + | \ / |___ y1 + | \ \ / | + | \ \ / | + | \ \ / | + | \ \/ x2 ___| + | \ / | + | \ / | + | \ / | + | \ / | + | \/ x1 ___| + | + | + | T: oriented tree + | b: birth (speciation) rate + | d: death (extintion) rate + | p: extant sampling rate + | q: fossil sampling rate + | n: number of extant taxa + | m: number of fossil tips + | + | + | [p1(x1)]^2 n+m-1 m q + | f(T|tmrca) = ---------------- * prod b*p1(xi) * prod ----- . + | [1 - ^p0(x1)]^2 i=2 i=1 p1(yi) + | + | f(tmrca) ~ uniform, gamma, etc (see treeAge). + | + ---------------------------------------------------------------------------------*/ +int LnFossilizedBDPriorFossilTip (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt sR, MrBFlt eR, MrBFlt sF, MrBFlt fR) +{ + /* special case: upon sampling the lineage is dead and won't produce descendants. Each extinct sample is a tip */ + + int i, n, m; + MrBFlt x, lambda, rho, psi, tmrca, c1, c2, hatP0; + TreeNode *p; + Model *mp; + + /* sR = lambda-mu-psi, eR = (mu+psi)/lambda, fR = psi/(mu+psi) */ + lambda = sR / (1.0 - eR); + psi = lambda * eR * fR; + rho = sF; + + tmrca = t->root->left->nodeDepth / clockRate; + c1 = sqrt(sR*sR + 4 *lambda *psi); + c2 = (2 *lambda *rho - sR) / c1; + + /* calculate prior prob of the fbd tree */ + (*prob) = 0.0; + + for (n = m = i = 0; i < t->nNodes -1; i++) + { + p = t->allDownPass[i]; + x = p->nodeDepth / clockRate; + + if (p->left != NULL && p->right != NULL) // internal + { + if (p != t->root->left) + (*prob) += log(lambda) + LnP1_fossil(x, rho, c1, c2); + } + else if (p->left == NULL && p->right == NULL) // tip + { + if (p->nodeDepth > 0.0) + { + (*prob) += log(psi) - LnP1_fossil(x, rho, c1, c2); + m++; + } + else + n++; + } + } + + /* p_0 (t |psi=0, mu->mu+psi) */ + hatP0 = 1.0 - rho*sR / (rho*lambda + (sR - rho*lambda) * exp(-sR*tmrca)); + + (*prob) += 2.0 * (LnP1_fossil(tmrca, rho, c1, c2) - log(1 - hatP0)); + + /* condition on tmrca, calibrations are dealt with separately */ + mp = &modelParams[t->relParts[0]]; + if (t->root->left->isDated == NO) + (*prob) += mp->treeAgePr.LnPriorProb(tmrca, mp->treeAgePr.priorParams); + + /* conversion to labeled tree from oriented tree , constant for a given dataset */ + (*prob) += (n + m - 1) * log(2.0) - LnFactorial(n) - LnFactorial(m); + + return (NO_ERROR); +} + + +/*--------------------------------------------------------------------------------- + | + | LnFossilizedBDPriorRandom + | + | Gavryushkina, A., D. Welch, T. Stadler, and A. Drummond. 2014. + | Bayesian inference of sampled ancestor trees for epidemiology and fossil calibration. PLoS Comp. Biol. + | Zhang C., T. Stadler, S. Klopfstein, T. A. Heath, and F. Ronquist. 2015. + | Total-Evidence Dating under the Fossilized Birth-Death Process. Syst. Biol. + | + | + | 0 _____________ t3, rho3 + | \ / | + | \ / |___ y2 + | \ \ / _________|_________ t2, rho2 + | \ \ / | + | \ \/ x3 ___| + | \ / |___ y1 + | \ \ / | + | _\ \ / _________|_________ t1, rho1 + | \ \ / | + | \ \/ x2 ___| + | \ / | + | \ / | + | \ / | + | \ / | + | \/ x1 ___|_________ t_mrca + | + | + | sl = 2, t1 > t2 > t3 = 0 + | E = 2, K = 1, M = 2 + | + ---------------------------------------------------------------------------------*/ +int LnFossilizedBDPriorRandom (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt *sR, MrBFlt *eR, MrBFlt sF, MrBFlt *fR) +{ + /* Fossils in the past are sampled with piecewise constant rates, + also in several time slices each with a seperate probability. + Extant taxa are sampled uniformly at random at time 0 (present). */ + + int i, j, sl, K, M, E; + MrBFlt x, *lambda, *mu, *rho, *psi, *t_f, tmrca, *c1, *c2, *p_t; + TreeNode *p; + Model *mp; + + mp = &modelParams[t->relParts[0]]; + + /* time of most recent common ancestor */ + tmrca = t->root->left->nodeDepth / clockRate; + + /* get the number of fossil slice sampling events, s >= 0 */ + sl = mp->sampleFSNum; + + /* alloc memory for time of each slice, t_f[sl] = 0 */ + t_f = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + /* lambda, mu, psi */ + lambda = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + mu = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + psi = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + /* for sampling prob in each slice, including extant */ + rho = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + /* A_i, B_i, ... */ + c1 = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + c2 = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + p_t = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + + if (!lambda || !mu || !psi || !rho || !t_f || !c1 || !c2 || !p_t) + { + MrBayesPrint ("%s ERROR: Problem allocating memory in LnFossilizedBDPriorRandom\n", spacer); + free(lambda); free(mu); free(psi); free(rho); + free(t_f); free(c1); free(c2); free(p_t); + } + + /* initialization */ + for (i = 0; i <= sl; i++) + { + /* sR = lambda-mu, eR = mu/lambda, fR = psi/(mu+psi) */ + lambda[i] = sR[i] / (1.0 - eR[i]); + mu[i] = lambda[i] * eR[i]; + psi[i] = mu[i] * fR[i] / (1.0 - fR[i]); + if (i < sl) { + rho[i] = mp->sampleFSProb[i]; + t_f[i] = mp->sampleFSTime[i]; + } + } + rho[sl] = sF; + t_f[sl] = 0.0; + + if (sl > 0) assert (mp->sampleFSTime[0] < tmrca); + for (i = sl; i >= 0; i--) + { + c1[i] = sqrt(pow(lambda[i]-mu[i]-psi[i], 2) + 4*lambda[i]*psi[i]); + if (i == sl) + c2[i] = ((1 - 2* (1-rho[i])) *lambda[i] +mu[i] +psi[i]) /c1[i]; + else + c2[i] = ((1 - 2* (1-rho[i]) *p_t[i+1]) *lambda[i] +mu[i] +psi[i]) /c1[i]; + if (i > 0) + p_t[i] = (lambda[i] +mu[i] +psi[i] -c1[i] * (1 +c2[i] -(1 -c2[i]) *exp(c1[i] *(t_f[i] -t_f[i-1]))) + / (1 +c2[i] +(1 -c2[i]) *exp(c1[i] *(t_f[i] -t_f[i-1])))) *0.5/lambda[i]; + else + p_t[i] = (lambda[i] +mu[i] +psi[i] -c1[i] * (1 +c2[i] -(1 -c2[i]) *exp(c1[i] *(t_f[i] -tmrca))) + / (1 +c2[i] +(1 -c2[i]) *exp(c1[i] *(t_f[i] -tmrca)))) *0.5/lambda[i]; + } + +# ifdef DEBUG_FBDPR + for (i = 0; i <= sl; i++) + printf ("%d: lambad=%lf mu=%lf psi=%lf t=%lf rho=%lf\n",i+1, lambda[i], mu[i], psi[i], t_f[i], rho[i]); + for (i = 0; i <= sl; i++) + printf ("%d: A=%lf B=%lf p%d(t%d)=%lf\n", i+1, c1[i], c2[i], i+1, i, p_t[i]); +# endif + + /* calculate prior prob of the fbd tree */ + (*prob) = 0.0; + + for (K = M = E = 0, i = 0; i < t->nNodes -1; i++) + { + p = t->allDownPass[i]; + x = p->nodeDepth / clockRate; + + if (p->left != NULL && p->right != NULL) // internal + { + if (p->left->length > 0.0 && p->right->length > 0.0) + { + if (p != t->root->left) + (*prob) += log(lambda[Slice_i(x, t_f, sl)]) + LnQi_fossil(x, t_f, sl, c1,c2); + } + else + { + for (j = 0; j < sl; j++) + if (AreDoublesEqual(p->nodeDepth, t_f[j]*clockRate, BRLENS_MIN/5) == YES) break; + if (j == sl) /* fossil ancestor between t[j-1] and t[j] */ + { + (*prob) += log(psi[Slice_i(x, t_f, sl)]); + } + else /* fossil ancestor at silice time t[j] */ + if (rho[j] > 0.0 && rho[j] < 1.0) + { + (*prob) += log(rho[j]) - log(1 - rho[j]); + } + K++; /* number of fossil ancestors */ + } + } + else if (p->left == NULL && p->length > 0.0) // tip + { + if (p->nodeDepth > 0.0) + { + for (j = 0; j < sl; j++) + if (AreDoublesEqual(p->nodeDepth, t_f[j]*clockRate, BRLENS_MIN/5) == YES) break; + if (j == sl) /* fossil tip between t[j-1] and t[j] */ + { + (*prob) += LnPi_fossil(x, t_f, sl, c1,c2, lambda,mu,psi) + - LnQi_fossil(x, t_f, sl, c1,c2); + (*prob) += log(psi[Slice_i(x, t_f, sl)]); + } + else /* fossil tip at silice time t[j] */ + { + (*prob) += log(p_t[j+1]); + if (rho[j] > 0.0) (*prob) += log(rho[j]); + } + M++; /* number of fossil tips */ + } + else + { + if (rho[sl] > 0.0) + { + (*prob) += log(rho[sl]); + } + E++; /* number of extant taxa */ + } + } + + for (j = 0; j < sl; j++) /* degree-two vertices at silice time t_j */ + { + if (p->length > 0.0) + if ((p->nodeDepth +BRLENS_MIN/10 < t_f[j]*clockRate) && (t_f[j]*clockRate < p->anc->nodeDepth +BRLENS_MIN/10)) + { + (*prob) += LnQi_fossil(t_f[j], t_f, sl, c1,c2); + if (rho[j] < 1.0) (*prob) += log(1 - rho[j]); + } + } + } + + (*prob) += 2.0 * (LnQi_fossil(tmrca, t_f, sl, c1,c2) - log(1- p_t[0])); + + /* condition on tmrca, calibrations are dealt with separately */ + if (t->root->left->isDated == NO) + (*prob) += mp->treeAgePr.LnPriorProb(tmrca, mp->treeAgePr.priorParams); + + /* conversion to labeled tree from oriented tree */ + (*prob) += (M + E - 1) * log(2.0); // - LnFactorial(E + M + K) (# permutation is constant given data) + +# ifdef DEBUG_FBDPR + printf ("K=%d M=%d E=%d\n", K, M, E); + printf ("prob=%lf\n", *prob); +# endif + + /* free memory */ + free(lambda); free(mu); free(psi); free(rho); + free(t_f); free(c1); free(c2); free(p_t); + + return (NO_ERROR); +} + + +/*--------------------------------------------------------------------------------- + | + | LnFossilizedBDPriorDiversity + | + | Zhang C., T. Stadler, S. Klopfstein, T. A. Heath, and F. Ronquist. 2015. + | Total-Evidence Dating under the Fossilized Birth-Death Process. Syst. Biol. + | + ---------------------------------------------------------------------------------*/ +int LnFossilizedBDPriorDiversity (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt *sR, MrBFlt *eR, MrBFlt sF, MrBFlt *fR) +{ + /* Fossils in the past are sampled with piecewise constant rates, + also in several time slices each with a seperate probability. + Extant taxa are sampled with prop sF to maximize diversity. */ + + int i, j, sl, K, M, E; + MrBFlt x, x_min, t_min, M_x, *lambda, *mu, *rho, *psi, *t_f, tmrca, *c1, *c2, *p_t; + TreeNode *p; + Model *mp; + + mp = &modelParams[t->relParts[0]]; + + /* time of most recent common ancestor */ + tmrca = t->root->left->nodeDepth / clockRate; + + /* get the number of fossil slice sampling events, plus 1 extra slice (x_cut) to shift psi to 0 */ + sl = mp->sampleFSNum + 1; + + /* alloc memory for time of each slice */ + t_f = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + /* lambda, mu, psi */ + lambda = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + mu = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + psi = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + /* for sampling prob in each slice, including extant */ + rho = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + /* A_i, B_i, ... */ + c1 = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + c2 = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + p_t = (MrBFlt *)SafeMalloc((size_t)(sl+1) * sizeof(MrBFlt)); + + if (!lambda || !mu || !psi || !rho || !t_f || !c1 || !c2 || !p_t) + { + MrBayesPrint ("%s ERROR: Problem allocating memory in LnFossilizedBDPriorDiversity\n", spacer); + free(lambda); free(mu); free(psi); free(rho); + free(t_f); free(c1); free(c2); free(p_t); + } + + /* get time of youngest fossil and internal node */ + t_min = x_min = tmrca; + for (i = 0; i < t->nNodes -1; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL && p->nodeDepth > 0.0) //fossil + if (t_min > p->nodeDepth / clockRate) + t_min = p->nodeDepth / clockRate; + if (p->left != NULL && p->right != NULL && + p->left->length > 0.0 && p->right->length > 0.0) + if (x_min > p->nodeDepth / clockRate) + x_min = p->nodeDepth / clockRate; + } + + /* lower the cutoff time if not compatible */ + if (x_min > t_min) + x_min = t_min; + if (sl > 1 && mp->sampleFSTime[sl-2] < x_min) + x_min = mp->sampleFSTime[sl-2]; + + /* initialization (sl >= 1) */ + for (i = 0; i < sl; i++) + { + /* sR = lambda-mu, eR = mu/lambda, fR = psi/(mu+psi) */ + lambda[i] = sR[i] / (1.0 - eR[i]); + mu[i] = lambda[i] * eR[i]; + psi[i] = mu[i] * fR[i] / (1.0 - fR[i]); + } + lambda[sl] = lambda[sl-1]; + mu[sl] = mu[sl-1]; + psi[sl] = 0.0; // psi = 0 in [0, x_cut] + for (i = 0; i < sl-1; i++) + { + rho[i] = mp->sampleFSProb[i]; + t_f[i] = mp->sampleFSTime[i]; + } + rho[sl-1] = 0.0; + t_f[sl-1] = x_min * 0.95; // x_cut + rho[sl] = 1.0; // not sF + t_f[sl] = 0.0; + + if (sl > 1) assert (mp->sampleFSTime[0] < tmrca); + for (i = sl; i >= 0; i--) + { + c1[i] = sqrt(pow(lambda[i]-mu[i]-psi[i], 2) + 4*lambda[i]*psi[i]); + if (i == sl) + c2[i] = ((1 - 2* (1-rho[i])) *lambda[i] +mu[i] +psi[i]) /c1[i]; + else + c2[i] = ((1 - 2* (1-rho[i]) *p_t[i+1]) *lambda[i] +mu[i] +psi[i]) /c1[i]; + if (i > 0) + p_t[i] = (lambda[i] +mu[i] +psi[i] -c1[i] * (1 +c2[i] -(1 -c2[i]) *exp(c1[i] *(t_f[i] -t_f[i-1]))) + / (1 +c2[i] +(1 -c2[i]) *exp(c1[i] *(t_f[i] -t_f[i-1])))) *0.5/lambda[i]; + else + p_t[i] = (lambda[i] +mu[i] +psi[i] -c1[i] * (1 +c2[i] -(1 -c2[i]) *exp(c1[i] *(t_f[i] -tmrca))) + / (1 +c2[i] +(1 -c2[i]) *exp(c1[i] *(t_f[i] -tmrca)))) *0.5/lambda[i]; + } + +# ifdef DEBUG_FBDPR + for (i = 0; i <= sl; i++) + printf ("%d: lambad=%lf mu=%lf psi=%lf t=%lf rho=%lf\n",i+1, lambda[i], mu[i], psi[i], t_f[i], rho[i]); + for (i = 0; i <= sl; i++) + printf ("%d: A=%lf B=%lf p%d(t%d)=%lf\n", i+1, c1[i], c2[i], i+1, i, p_t[i]); +# endif + + /* first calculate prob of the fbd tree assuming complete sampling */ + (*prob) = 0.0; + + for (K = M = E = 0, i = 0; i < t->nNodes -1; i++) + { + p = t->allDownPass[i]; + x = p->nodeDepth / clockRate; + + if (p->left != NULL && p->right != NULL) // internal + { + if (p->left->length > 0.0 && p->right->length > 0.0) + { + if (p != t->root->left) + (*prob) += log(lambda[Slice_i(x, t_f, sl)]) + LnQi_fossil(x, t_f, sl, c1,c2); + } + else + { + for (j = 0; j < sl; j++) + if (AreDoublesEqual(p->nodeDepth, t_f[j]*clockRate, BRLENS_MIN/5) == YES) break; + if (j == sl) /* fossil ancestor between t[j-1] and t[j] */ + { + (*prob) += log(psi[Slice_i(x, t_f, sl)]); + } + else /* fossil ancestor at silice time t[j] */ + if (rho[j] > 0.0 && rho[j] < 1.0) + { + (*prob) += log(rho[j]) - log(1 - rho[j]); + } + K++; /* number of fossil ancestors */ + } + } + else if (p->left == NULL && p->length > 0.0) // tip + { + if (p->nodeDepth > 0.0) + { + for (j = 0; j < sl; j++) + if (AreDoublesEqual(p->nodeDepth, t_f[j]*clockRate, BRLENS_MIN/5) == YES) break; + if (j == sl) /* fossil tip between t[j-1] and t[j] */ + { + (*prob) += LnPi_fossil(x, t_f, sl, c1,c2, lambda,mu,psi) + - LnQi_fossil(x, t_f, sl, c1,c2); + (*prob) += log(psi[Slice_i(x, t_f, sl)]); + } + else /* fossil tip at silice time t[j] */ + { + (*prob) += log(p_t[j+1]); + if (rho[j] > 0.0) (*prob) += log(rho[j]); + } + M++; /* number of fossil tips */ + } + else + { + // (*prob) += log(rho[sl]); // rho[sl] == 1 + E++; /* number of extant taxa */ + } + } + + for (j = 0; j < sl; j++) /* degree-two vertices at silice time t_j */ + { + if (p->length > 0.0) + if ((p->nodeDepth +BRLENS_MIN/10 < t_f[j]*clockRate) && (t_f[j]*clockRate < p->anc->nodeDepth +BRLENS_MIN/10)) + { + (*prob) += LnQi_fossil(t_f[j], t_f, sl, c1,c2); + if (rho[j] < 1.0) (*prob) += log(1 - rho[j]); + } + } + } + + (*prob) += 2.0 * (LnQi_fossil(tmrca, t_f, sl, c1,c2) - log(1- p_t[0])); + + /* number of extant taxa not sampled */ + M_x = (int)floor(E/sF + 0.5) - E; /* equal to round(E/sF) plus it is compatible with MS Visual Studio */ + + /* then calculate the prob of the fbd tree assuming diversified sampling of extant */ + (*prob) += M_x * (log(lambda[sl] * (1.0 - exp((mu[sl]-lambda[sl])*t_f[sl-1]))) - log(lambda[sl] - mu[sl] * exp((mu[sl]-lambda[sl])*t_f[sl-1]))); + + /* condition on tmrca, calibrations are dealt with separately */ + if (t->root->left->isDated == NO) + (*prob) += mp->treeAgePr.LnPriorProb(tmrca, mp->treeAgePr.priorParams); + + /* conversion to labeled tree from oriented tree */ + (*prob) += (M + E - 1) * log(2.0); // - LnFactorial(E + M + K) (# permutation is constant given data) + +# ifdef DEBUG_FBDPR + printf ("K=%d M=%d E=%d\n", K, M, E); + printf ("prob=%lf\n", *prob); +# endif + + /* free memory */ + free(lambda); free(mu); free(psi); free(rho); + free(t_f); free(c1); free(c2); free(p_t); + + return (NO_ERROR); +} + + +/*--------------------------------------------------------------------------------- +| +| LnCoalescencePriorPr +| +| This function calculates the probability of a tree under the neutral +| coalescence prior with a (potentially) exponentially growing population. +| We assume a rooted tree that satisfies the molecular clock constraint. The +| Tree is labelled as follows: +| +| t_4 ___ +| \ \ \ / \ +| \ \ \ / | +| I_4 \ \ \ / | g_4 +| \ \ \ / | +| \ \ \/ t_3 ___ / +| \ \ / \ +| \ \ / | +| I_3 \ \ / | g_3 +| \ \ / | +| \ \/ t_2 ___ / +| \ / \ +| \ / | +| I_2 \ / | g_2 +| \ / | +| \/ t_1 ___ / +| +| Each interval on the tree is specified by successive coalescence events. +| These intervals are denoted I_2, I_3, I_4, ..., with the subscript denoting +| how many lineages exist in that interval. The time of each coalescence event +| is designated t_1, t_2, t_3, ..., where the subscript denotes the number +| of lineages that exist after the coalescence (t_3, for instance, would be +| the time of the coalescence that went from four lineages to three lineages). +| The duration of the i-th interval is designated g_i. +| +| The probability of the coalescence tree is: +| +| prob = (k_C_2 / (N(t_k + t_k))) * exp(-integral_(from x=t_k, to g_k + t_k) (k_C_2 / N(x)) dx) +| +| where N(x) = N(0) * exp(-r*x). For the constant population size case, +| N(0) = N_e. r is the population growth parameter for the exponentially +| growing population. Here, theta = N(0) * mu when organisms are haploid and +| theta = 2 * N(0) * mu when the organism is diploid. +| +| Below, ct holds the n - 1 coalescence times (t_i, above) sorted from the +| smallest to the largest. Remember that t_4 < t_3 < t_2, etc. +| +| 2010-03-23 +| The original function (described above) was incorrect in that it used theta = 2 * N * mu +| in one part of the equation and theta = 4 * N * mu in another. It is now corrected to +| consistently use theta = 4 * N * mu, which is the standard for diploid populations +| and theta = 2 * N * mu for haploid populations. The calculations are the same for the +| diploid and haploid cases, only the interpretation is different. See, e.g., Felsenstein +| (2004; Inferring Phylogenies). -- Fredrik. +| +---------------------------------------------------------------------------------*/ +int LnCoalescencePriorPr (Tree *t, MrBFlt *prob, MrBFlt theta, MrBFlt growth) +{ + int i, j, k, nNodes; + MrBFlt *ct, tempD, lastCoalescenceTime, coalescenceTime, intervalLength; + TreeNode *p; + + /* allocate space for the coalescence times */ + ct = (MrBFlt *)SafeMalloc((size_t)(t->nIntNodes) * sizeof(MrBFlt)); + if (!ct) + { + MrBayesPrint ("\n ERROR: Problem allocating ct\n"); + return (ERROR); + } + + /* get the coalescence times and put them into a vector */ + for (i=j=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + if (p->anc != NULL) + ct[j++] = p->nodeDepth; // Don't divide clockRate here, as mu is already in theta + } + nNodes = j; + + /* sort the coalescence times */ + SortMrBFlt (ct, 0, nNodes-1); + + /*for (i=0, k=numLocalTaxa; irelParts[0]]; + treeAge = t->root->left->nodeDepth / clockRate; + assert (t->root->left->isDated == NO || AreDoublesEqual(treeAge, t->root->left->age, 0.000001) == YES); + + /* Calculate number of tips for convenience */ + nTips = t->nNodes - t->nIntNodes - 1; + + /* First take tree age into account f(t_0) */ + if (t->root->left->isDated == YES) + { + lnProb += 0.0; /* calibrations are dealt with separately in calling function */ + } + else + { + lnProb += mp->treeAgePr.LnPriorProb(treeAge, mp->treeAgePr.priorParams); + } + + /* If tree is not calibrated or only root is calibrated, it is easy */ + for (i=j=0; inNodes-2; i++) + { + if (t->allDownPass[i]->isDated == YES) + j++; + } + if (j == 0) + { + /* Calculate simple probability f(tau|t_0) */ + lnProb += (nTips - 1.0)*log(2.0) - LnFactorial(nTips) - log(nTips-1.0) - (nTips - 2.0)*log(treeAge); + assert (lnProb > NEG_INFINITY); + return lnProb; + } + + /* We have a tree with interior or tip calibrations */ + + /* Color subtrees by assigning an index 1,...,k to the x variable of each node, + where k is the total number of separate subtrees. A subtree is characterized + by having all interior nodes being unconstrained and all tips being either + terminals or constrained interior nodes. The root of a subtree may be the + root of the tree, or an interior node that is constrained and dated, or an + interior node that is constrained but not dated. */ + i = 0; + ColorClusters (t->root->left, &i); + + /* Get the probability for each subtree */ + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + + /* Skip unless this is the root of a subtree */ + if (p->anc->anc != NULL && p->isDated != YES) + continue; + + /* Save the root of the subtree */ + root = p; + + /* Create an array containing the sorted times */ + + /* Allocate space for node depths */ + nDatedTips = NumDatedTips (root); + nodeDepths = (MrBFlt *) SafeRealloc ((void *)nodeDepths, (nDatedTips+1)*sizeof(MrBFlt)); + + /* Get the dated node depths and sort them. The call to GetDatedNodeDepths also + returns the root node depth into nodeDepths, which is convenient. For now, this + only works for dated tips, not for constrained but undated interior nodes. */ + GetDatedNodeDepths (root, nodeDepths); + SortMrBFlt (nodeDepths, 0, nDatedTips); /* use index of left and right in call */ + + /* Get probability due to the uniform node depths; we do not use first and last tip depth + for obvious reasons (see figure above) */ + for (j=1; jnodeDepth - nodeDepths[j]) / clockRate); + + /* Get probability due to sorting of interior node depths */ + + /* First get the potential number of lineages leaving each interval j at time nodeDepths[j+1] */ + nLineages = (int *) SafeRealloc ((void *)nLineages, nDatedTips*sizeof(int)); + for (j=0; jnIntNodes; j++) + { + p = t->intDownPass[j]; + if (p->x != root->x || p == root || p->isDated == YES) + continue; + for (k=0; knodeDepth < nodeDepths[k+1]) + nLineages[k]--; + } + + /* Now get the density effect of the sorting constraints */ + for (j=1; j 1 && nLineagesIn - nLineagesOut >= 1) + { + lnProb += LnFactorial (nLineagesIn-1) - LnFactorial(nLineagesOut-1); + } + } + + /* Finally get the effect of the number of possible coalescent histories */ + for (j=1; jx = root->anc->x; + + } + + free (nodeDepths); + free (nLineages); + + assert (lnProb > NEG_INFINITY); + + return lnProb; +} + + +/*------------------------------------------------------------------------ +| +| NewtonRaphsonBrlen: Find one maximum likelihood branch length using +| the Newton-Raphson method. This function assumes that the tree is +| a non-clock tree. For clock trees, you have to optimize the node +| depths instead. +| +------------------------------------------------------------------------*/ +int NewtonRaphsonBrlen (Tree *t, TreeNode *p, int chain) +{ + int c, i, j, s, k, n, d, division, nIterations, maxNumIterations, + index, *rateCat, r; + MrBFlt vOld, *pi, *cijk, *eigenValues, *catRate, baseRate, length, theRate, tolerance, + expLambdaV[64], pInvar=0.0, likeI=0.0, sum=0.0, sum1, sum2, beta, w, v, x, y, expBetaV, + expWV, kappa, bigPi, *ptr; + CLFlt *nSitesOfPat, *clP, *clA, *tiP, *tiP1, *tiP2, like, like1, like2, CLsum, CLsum1, CLsum2, + freq, sumLike1, sumLike2, *lnScaler=NULL, *clInvar=NULL; + ModelInfo *m; + + /* TODO: Standard model (also check RES for ascertainment bias) */ + tolerance = 0.001; + maxNumIterations = 5; + + nIterations = 0; + do { + /* reset f'(v) and f''(v) sums */ + sumLike1 = sumLike2 = 0.0; + + /* cycle over character partitions */ + for (d=0; dnRelParts; d++) + { + division = t->relParts[d]; + + /* get pointer to model */ + m = &modelSettings[division]; + + /* get number of model states */ + n = m->numModelStates; + + /* find conditional likelihoods */ + clP = m->condLikes[m->condLikeIndex[chain][p->index ]]; + clA = m->condLikes[m->condLikeIndex[chain][p->anc->index]]; + + /* get state frequencies */ + pi = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* get base rate */ + theRate = 1.0; + baseRate = GetRate (division, chain); + + /* get category rates */ + if (m->shape == NULL) + catRate = &theRate; + else + catRate = GetParamSubVals (m->shape, chain, state[chain]); + + /* find category frequencies and some additional stuff for the invar model */ + if (m->pInvar == NULL) + freq = (CLFlt) (1.0 / m->numGammaCats); + else + { + /* invariable sites model */ + pInvar = * GetParamVals(m->pInvar, chain, state[chain]); + freq = (CLFlt) ((1.0 - pInvar) / m->numGammaCats); + baseRate /= (1.0 - pInvar); + clInvar = m->invCondLikes; + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + } + + /* find the branch lengths times any correction factor to make them + in terms of expected number of substitutions per character */ + length = p->length; + if (m->dataType == DNA || m->dataType == RNA) + { + if (m->nucModelId == NUCMODEL_DOUBLET) + length *= 2.0; + else if (m->nucModelId == NUCMODEL_CODON) + length *= 3.0; + } + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + ((chainId[chain] % chainParams.numChains)*numCompressedChars) + m->compCharStart; + + /* get tiProbs for current length; use the scratch location */ + FlipTiProbsSpace(m, chain, p->index); + m->TiProbs (p, division, chain); + tiP = m->tiProbs[m->tiProbsIndex[chain][p->index]]; + FlipTiProbsSpace(m, chain, p->index); + + /* allocate space for first and second derivatives */ + tiP1 = (CLFlt *) SafeCalloc (2*m->tiProbLength, sizeof (CLFlt)); + if (!tiP1) + return (ERROR); + tiP2 = tiP1 + m->tiProbLength; + + /* calculate first and second derivatives of P(v): P'(v) and P''(v) */ + index = 0; + if (m->TiProbs == &TiProbs_Fels || m->TiProbs == &TiProbs_Res) + { + /* calculate beta */ + sum = 0.0; + for (i=0; inumModelStates; i++) + for (j=i+1; jnumModelStates; j++) + sum += pi[i]*pi[j]; + beta = 0.5 / sum; + + /* calculate derivatives */ + for (k=0; knumGammaCats; k++) + { + v = length * catRate[k] * baseRate; + expBetaV = exp (- beta * v); + for (i=0; inumModelStates; i++) + { + for (j=0; jnumModelStates; j++) + { + if (i == j) + { + x = - beta * (1.0 - pi[j]) * expBetaV; + tiP1[index] = (CLFlt) x; + tiP2[index] = (CLFlt) (- beta * x); + } + else + { + x = beta * pi[j] * expBetaV; + tiP1[index] = (CLFlt) x; + tiP2[index] = (CLFlt) (- beta * x); + } + index++; + } + } + } + } + else if (m->TiProbs == &TiProbs_Hky) + { + /* get kappa */ + kappa = *GetParamVals (m->tRatio, chain, state[chain]); + + /* calculate beta */ + sum = 0.0; + for (i=0; inumModelStates; i++) + { + for (j=i+1; jnumModelStates; j++) + { + if (j - i == 2) + sum += kappa * pi[i] * pi[j]; + else + sum += pi[i] * pi[j]; + } + } + beta = 0.5 / sum; + + /* calculate derivatives */ + for (k=0; knumGammaCats; k++) + { + v = length * catRate[k] * baseRate; + expBetaV = exp (- beta * v); + for (i=0; inumModelStates; i++) + { + for (j=0; jnumModelStates; j++) + { + s = (j + 2) % 4; + bigPi = pi[j] + pi[s]; + w = (1.0 + bigPi * (kappa - 1.0)) * beta; + expWV = exp (- w * v); + if (i == j) + { + x = - beta * ((pi[j]/bigPi) - pi[j]) * expBetaV; + y = - w * (pi[s]/bigPi) * expWV; + tiP1[index] = (CLFlt) (x + y); + tiP2[index] = (CLFlt) (- beta * x - w * y); + } + else if (abs(i-j) == 2) + { + x = - beta * pi[j] * ((pi[j]/bigPi) - pi[j]) * expBetaV; + y = w * (pi[j]/bigPi) * expWV; + tiP1[index] = (CLFlt) (x + y); + tiP2[index] = (CLFlt) (- beta * x - w * y); + } + else + { + x = beta * pi[j] * expBetaV; + tiP1[index] = (CLFlt) x; + tiP2[index] = (CLFlt) (- beta * x); + } + index++; + } + } + } + } + else if (m->TiProbs == &TiProbs_Gen || m->TiProbs == &TiProbs_GenCov) + { + /* get eigenvalues and cijk pointers */ + eigenValues = m->cijks[m->cijkIndex[chain]]; + cijk = eigenValues + (2 * n); + + /* calculate P'(v) and P''(v) */ + for (k=0; knumGammaCats; k++) + { + v = length * catRate[k]; + for (s=0; s 0.000001) + { + x = eigenValues[s] * (*ptr++) * expLambdaV[s]; + sum1 += x; + sum2 += eigenValues[s] * x; + } + else + ptr += n; + } + tiP1[index] = (CLFlt) ((sum1 < 0.0) ? 0.0 : sum); + tiP2[index] = (CLFlt) ((sum2 < 0.0) ? 0.0 : sum); + index++; + } + } + } + } + else if (m->TiProbs == &TiProbs_GenCov) + { + /* get eigenvalues and cijk pointers */ + eigenValues = m->cijks[m->cijkIndex[chain]]; + cijk = eigenValues + (2 * n); + + /* calculate P'(v) and P''(v) */ + for (k=0; knumTiCats; k++) + { + if (m->numGammaCats > 1) + v = length * catRate[k]; + else + v = length; + for (s=0; s 0.000001) + { + x = eigenValues[s] * (*cijk++) * expLambdaV[s]; + sum1 += x; + sum2 += eigenValues[s] * x; + } + } + tiP1[index] = (CLFlt) ((sum1 < 0.0) ? 0.0 : sum); + tiP2[index] = (CLFlt) ((sum2 < 0.0) ? 0.0 : sum); + index++; + } + } + /* get new eigenvalues and cijks */ + eigenValues += m->cijkLength / m->nCijkParts; + cijk = eigenValues + 2 * n; + } + } + /* calculate f(v), f'(v) and f''(v) for this partition */ + /* note that the scalers are irrelevant because they disappear when + we take the derivative of the log likelihood */ + if (m->gibbsGamma == YES) + { + /* find rate category index */ + rateCat = m->tiIndex + chain*m->numChars; + for (c=0; cnumChars; c++) + { + like = like1 = like2 = 0.0; + r = rateCat[c]; + if (r < m->numGammaCats) + { + index = r*m->numModelStates*m->numModelStates; + for (j=0; jnumChars; c++) + { + like = like1 = like2 = 0.0; + index = 0; + for (k=0; knumTiCats; k++) + { + for (j=0; jpInvar != NULL) + { + /* get right like; like1 and like2 not affected */; + for (i=0; i 1E-70) + { + /* forget about like; it is going to be insignificant compared to likeI */ + like = (CLFlt) likeI; + } + else + { + /* treat likeI as if 0.0, that is, ignore it completely */ + like = like + (CLFlt)(0.0); + } + } + else /* take both likeI and like into account */ + like = like + (CLFlt) (likeI * exp (-lnScaler[c])); + } + sumLike1 += nSitesOfPat[c] * (like1 / like); + sumLike2 += nSitesOfPat[c] * (like2 * like - like1 * like1) / (like * like); + } + } + free (tiP1); + } + vOld = p->length; + p->length -= sumLike2 / sumLike1; + nIterations++; + } while (fabs(p->length - vOld) > tolerance && nIterations < maxNumIterations); + + return (NO_ERROR); +} + + +void NodeToNodeDistances (Tree *t, TreeNode *fromNode) +{ + int i; + TreeNode *p; + + /* set all distances to 0.0 and also set marks on all nodes to NO */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->x = NO; + p->d = 0.0; + } + + /* find distances, and mark path, below "fromNode" */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p == fromNode) + { + p->x = YES; + } + if (p->left != NULL && p->right != NULL && p->anc != NULL) + { + if (p->left->x == YES) + { + p->x = YES; + p->d = p->left->d + p->left->length; + } + else if (p->right->x == YES) + { + p->x = YES; + p->d = p->right->d + p->right->length; + } + } + } + + /* find all other distances */ + for (i=t->nNodes-1; i>=0; i--) + { + p = t->allDownPass[i]; + if (p->anc == NULL) + { + if (p == fromNode) + p->d = 0.0; + else + p->d = p->left->d + p->left->length; + } + else + { + if (p->x == NO) + { + p->d = p->anc->d + p->length; + } + } + } +} + + +int NumCppEvents (Param *p, int chain) +{ + int i, *nEvents, sumEvents; + + nEvents = p->nEvents[2*chain+state[chain]]; + + sumEvents = 0; + for (i=0; i<2*numLocalTaxa-2; i++) + sumEvents += nEvents[i]; + + return (sumEvents); +} + + +/*---------------------------------------------------------------------- +| +| OpenNewMBPrintFile: Open a file the first time for printing +| +------------------------------------------------------------------------*/ +FILE *OpenNewMBPrintFile (char *fileName) +{ + int overWrite; + FILE *fp; + + /* Open file, use noWarn to determine if the user should be prompted + to have the file over-written or appended. */ + if (noWarn == YES) + { + /* overwrite or append file, if already present */ + if ((fp = TestOpenTextFileR(fileName)) != NULL) + { + SafeFclose (&fp); + if (autoOverwrite == NO) + { + MrBayesPrint ("%s Appending to file \"%s\"\n", spacer, fileName); + return (OpenTextFileA(fileName)); + } + else + MrBayesPrint ("%s Overwriting file \"%s\"\n", spacer, fileName); + } + return (OpenTextFileW(fileName)); + } + else + { + /* prompt user if file is already present */ + if ((fp = TestOpenTextFileR(fileName)) != NULL) + { + SafeFclose (&fp); + MrBayesPrint ("\n"); + MrBayesPrint ("%s File \"%s\" already exists\n", spacer, fileName); + overWrite = WantTo ("Overwrite information in this file"); + + if (overWrite == YES) + { + MrBayesPrint ("%s Overwriting file \"%s\"\n", spacer, fileName); + return (OpenTextFileW(fileName)); + } + else + { + MrBayesPrint ("%s Appending to file \"%s\"\n", spacer, fileName); + return (OpenTextFileA(fileName)); + } + } + + else + { + /* file is not present */ + return (OpenTextFileW(fileName)); + } + } +} + + +int PickProposal (RandLong *seed, int chainIndex) +{ + MrBFlt ran; + int i; + + ran = RandomNumber(seed); + + for (i=0; usedMoves[i]->cumProposalProb[chainIndex] <= ran; i++); + + return i; +} + + +/* Calculate positive selection probabilities */ +int PosSelProbs (TreeNode *p, int division, int chain) +{ + int c, j, k, nStates; + MrBFlt catLike, *like, *bs, *omegaCatFreq, *omega, + posProb, *ps, sum; + CLFlt **clP; + ModelInfo *m; + + /* find model partition */ + m = &modelSettings[division]; + + /* allocate space for conditional likelihood pointer array and site likelihood array */ + clP = (CLFlt **) calloc (m->numOmegaCats, sizeof(CLFlt *)); + like = (MrBFlt *) calloc (m->numOmegaCats, sizeof(MrBFlt)); + if (!clP || !like) + { + MrBayesPrint ("%s ERROR: Out of memory in PosSelProbs\n", spacer); + return (ERROR); + } + + /* number of states */ + nStates = m->numModelStates; + + /* find conditional likelihoods */ + clP[0] = m->condLikes[m->condLikeIndex[chain][p->index]]; + for (k=1; knumOmegaCats; k++) + clP[k] = clP[0] + k*m->numModelStates*m->numChars; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* find category frequencies */ + omegaCatFreq = GetParamSubVals (m->omega, chain, state[chain]); + + /* get category omegas */ + omega = GetParamVals (m->omega, chain, state[chain]); + + /* find posSelProbs */ + ps = posSelProbs + m->compCharStart; + for (c=0; cnumChars; c++) + { + sum = 0.0; + for (k=0; knumOmegaCats; k++) + { + like[k] = 0.0; + catLike = 0.0; + for (j=0; jnumOmegaCats; k++) + { + if (omega[k] > 1.0) + posProb += like[k] / sum; + } + ps[c] = posProb; + } + + free (clP); + free (like); + + return NO_ERROR; +} + + +#if defined (SSE_ENABLED) +/* Calculate positive selection probabilities (SSE version) */ +int PosSelProbs_SSE (TreeNode *p, int division, int chain) +{ + int i, c1, c2, j, k, nStates; + CLFlt **catLike, *siteLike; + MrBFlt *bs, *omegaCatFreq, *omega, + posProb, *ps; + __m128 m1, m2, *clPtr, **clP, mSiteLike, *mCatLike; + ModelInfo *m; + + /* find model partition */ + m = &modelSettings[division]; + + /* number of states */ + nStates = m->numModelStates; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* find category frequencies */ + omegaCatFreq = GetParamSubVals (m->omega, chain, state[chain]); + + /* get category omegas */ + omega = GetParamVals (m->omega, chain, state[chain]); + /* allocate space for category likelihood arrays */ + catLike = (CLFlt **) calloc (m->numOmegaCats, sizeof(CLFlt *)); + mCatLike = (__m128 *) calloc (m->numOmegaCats, sizeof(__m128)); + if (!catLike || !mCatLike) + { + MrBayesPrint ("%s ERROR: Out of memory in PosSelProbs_SSE\n", spacer); + return (ERROR); + } + + /* find conditional likelihood pointers */ + clPtr = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP_SSE; + for (k=0; knumOmegaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numSSEChars * nStates; + catLike[k] = (CLFlt *) (&(mCatLike[k])); + } + siteLike = (CLFlt *) (&mSiteLike); + + /* find posSelProbs */ + ps = posSelProbs + m->compCharStart; + for (c1=c2=0; c1numSSEChars; c1++) + { + mSiteLike = _mm_setzero_ps (); + for (k=0; knumOmegaCats; k++) + { + mCatLike[k] = _mm_setzero_ps(); + m1 = _mm_setzero_ps (); + for (j=0; jnumChars; ++i, ++c2) + { + posProb = 0.0; + for (k=0; knumOmegaCats; k++) + { + if (omega[k] > 1.0) + { + posProb += catLike[k][i] / siteLike[i]; + } + } + ps[c2] = posProb; + } + } + + free (catLike); + free (mCatLike); + + return NO_ERROR; +} +#endif + + +/* Calculate omega values for each site */ +int SiteOmegas (TreeNode *p, int division, int chain) +{ + int c, j, k, nStates; + MrBFlt catLike, *like, *bs, *omegaCatFreq, *omega, + siteOmega, *ps, sum; + CLFlt **clP; + ModelInfo *m; + + /* find model partition */ + m = &modelSettings[division]; + + /* allocate space for conditional likelihood pointer array and site likelihood array */ + clP = (CLFlt **) calloc (m->numOmegaCats, sizeof(CLFlt *)); + like = (MrBFlt *) calloc (m->numOmegaCats, sizeof(MrBFlt)); + if (!clP || !like) + { + MrBayesPrint ("%s ERROR: Out of memory in SiteOmegas\n", spacer); + return (ERROR); + } + + /* number of states */ + nStates = m->numModelStates; + + /* find conditional likelihoods */ + clP[0] = m->condLikes[m->condLikeIndex[chain][p->index]]; + for (k=1; knumOmegaCats; k++) + clP[k] = clP[0] + k*m->numModelStates*m->numChars; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* find category frequencies */ + omegaCatFreq = GetParamSubVals (m->omega, chain, state[chain]); + + /* get category omegas */ + omega = GetParamVals (m->omega, chain, state[chain]); + + /* find site omegas (using posSelProbs space) */ + ps = posSelProbs + m->compCharStart; + for (c=0; cnumChars; c++) + { + sum = 0.0; + for (k=0; knumOmegaCats; k++) + { + like[k] = 0.0; + catLike = 0.0; + for (j=0; jnumOmegaCats; k++) + { + siteOmega += (like[k]/sum) * omega[k]; + } + ps[c] = siteOmega; + } + + free (clP); + free (like); + + return NO_ERROR; +} + + +#if defined (SSE_ENABLED) +/* Calculate omega values for each site (SSE version) */ +int SiteOmegas_SSE (TreeNode *p, int division, int chain) +{ + int i, c1, c2, j, k, nStates; + CLFlt **catLike, *siteLike; + MrBFlt *bs, *omegaCatFreq, *omega, + siteOmega, *ps; + __m128 m1, m2, *clPtr, **clP, mSiteLike, *mCatLike; + ModelInfo *m; + + /* find model partition */ + m = &modelSettings[division]; + + /* number of states */ + nStates = m->numModelStates; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* find category frequencies */ + omegaCatFreq = GetParamSubVals (m->omega, chain, state[chain]); + + /* get category omegas */ + omega = GetParamVals (m->omega, chain, state[chain]); + + /* allocate space for category likelihood arrays */ + catLike = (CLFlt **) calloc (m->numOmegaCats, sizeof(CLFlt *)); + mCatLike = (__m128 *) calloc (m->numOmegaCats, sizeof(__m128)); + if (!catLike || !mCatLike) + { + MrBayesPrint ("%s ERROR: Out of memory in SiteOmegas_SSE\n", spacer); + return (ERROR); + } + + /* find conditional likelihood pointers */ + clPtr = (__m128 *) m->condLikes[m->condLikeIndex[chain][p->index]]; + clP = m->clP_SSE; + for (k=0; knumOmegaCats; k++) + { + clP[k] = clPtr; + clPtr += m->numSSEChars * nStates; + catLike[k] = (CLFlt *) (&(mCatLike[k])); + } + siteLike = (CLFlt *) (&mSiteLike); + + /* find site omegas (using posSelProbs space) */ + ps = posSelProbs + m->compCharStart; + for (c1=c2=0; c1numSSEChars; c1++) + { + mSiteLike = _mm_setzero_ps (); + for (k=0; knumOmegaCats; k++) + { + mCatLike[k] = _mm_setzero_ps(); + m1 = _mm_setzero_ps (); + for (j=0; jnumChars; ++i, ++c2) + { + siteOmega = 0.0; + for (k=0; knumOmegaCats; k++) + { + siteOmega += (catLike[k][i] / siteLike[i]) * omega[k]; + } + ps[c2] = siteOmega; + } + } + + free (catLike); + free (mCatLike); + + return NO_ERROR; +} +#endif + + +/*---------------------------------------------------------------------- +| +| PreparePrintFiles: Prepare .t, .p, and .mcmc files for printing +| +------------------------------------------------------------------------*/ +int PreparePrintFiles (void) +{ + int i, n, previousResults, oldAutoOverwrite, oldNoWarn; + char localFileName[100], fileName[220], bkupName[220]; + FILE *tempFile; + +#if defined (MPI_ENABLED) + if (proc_id != 0) + return (NO_ERROR); +#endif + + oldNoWarn = noWarn; + oldAutoOverwrite = autoOverwrite; + + /* Allocate space for file pointers */ + if (memAllocs[ALLOC_FILEPOINTERS] == YES) + { + MrBayesPrint ("%s File pointers already allocated in PreparePrintFiles\n", spacer); + return ERROR; + } + fpMcmc = NULL; + fpSS = NULL; + fpParm = NULL; + fpTree = NULL; + fpParm = (FILE **) SafeCalloc (chainParams.numRuns, sizeof (FILE *)); + if (fpParm == NULL) + { + MrBayesPrint ("%s Could not allocate fpParm in PreparePrintFiles\n", spacer); + return ERROR; + } + memAllocs[ALLOC_FILEPOINTERS] = YES; + fpTree = (FILE ***) SafeCalloc (chainParams.numRuns, sizeof (FILE **)); + if (fpTree == NULL) + { + MrBayesPrint ("%s Could not allocate fpTree in PreparePrintFiles\n", spacer); + return ERROR; + } + fpTree[0] = (FILE **) SafeCalloc (numTrees*chainParams.numRuns, sizeof (FILE *)); + if (fpTree[0] == NULL) + { + MrBayesPrint ("%s Could not allocate fpTree[0] in PreparePrintFiles\n", spacer); + return ERROR; + } + for (i=1; i 1 && chainParams.numRuns == 1) + sprintf (fileName, "%s.tree%d.t", localFileName, i+1); + else if (numTrees == 1 && chainParams.numRuns > 1) + sprintf (fileName, "%s.run%d.t", localFileName, n+1); + else + sprintf (fileName, "%s.tree%d.run%d.t", localFileName, i+1, n+1); + if ((tempFile = TestOpenTextFileR(fileName)) != NULL) + { + fclose(tempFile); + previousResults = YES; + } + } + } + if (previousResults == YES) + { + MrBayesPrint("\n"); + MrBayesPrint("%s There are results from a previous run saved using the same filename(s).\n", spacer); + if (WantTo("Do you want to overwrite these results") == YES) + { + MrBayesPrint("\n"); + noWarn = YES; + autoOverwrite = YES; + } + else + { + MrBayesPrint("\n"); + MrBayesPrint("%s Please specify a different file name before running the mcmc analysis.\n", spacer); + MrBayesPrint("%s You can do that using 'mcmc filename='. You can also move or\n", spacer); + MrBayesPrint("%s rename the old result files.\n", spacer); + return ERROR; + } + } + } + + /* Prepare the .mcmc file */ + if (chainParams.mcmcDiagn == YES) + { + sprintf (fileName, "%s.mcmc", chainParams.chainFileName); + if ((fpMcmc = OpenNewMBPrintFile (fileName)) == NULL) + { + noWarn = oldNoWarn; + autoOverwrite = oldAutoOverwrite; + return (ERROR); + } + } + + /* Prepare the .p and .t files */ + for (n=0; n 1 && chainParams.numRuns == 1) + sprintf (fileName, "%s.tree%d.t", localFileName, i+1); + else if (numTrees == 1 && chainParams.numRuns > 1) + sprintf (fileName, "%s.run%d.t", localFileName, n+1); + else + sprintf (fileName, "%s.tree%d.run%d.t", localFileName, i+1, n+1); + if ((fpTree[n][i] = OpenNewMBPrintFile (fileName)) == NULL) + { + noWarn = oldNoWarn; + autoOverwrite = oldAutoOverwrite; + return (ERROR); + } + } + } + + /* Prepare the .ss file */ + if (chainParams.isSS == YES) + { + sprintf (fileName, "%s.ss", chainParams.chainFileName); + if ((fpSS = OpenNewMBPrintFile (fileName)) == NULL) + { + noWarn = oldNoWarn; + autoOverwrite = oldAutoOverwrite; + return (ERROR); + } + } + + /* Remove previous chekpoint file if present */ + sprintf (fileName, "%s%s.ckp", workingDir, chainParams.chainFileName); + strcpy (bkupName, fileName); + strcat (bkupName, "~"); + remove (bkupName); + rename (fileName, bkupName); + +# if defined (PRINT_DUMP) + fpDump = (FILE **) SafeCalloc (chainParams.numRuns, sizeof (FILE *)); + + for (n=0; nstateFreq, chain, state[chain]); + + /* find frequencies of rate categories */ + freq = 1.0 / m->numGammaCats; + + /* find the conditional likelihoods from the final pass */ + clFP = m->condLikes[m->condLikeScratchIndex[p->index]]; + + clP = m->clP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clFP; + clFP += m->numChars * m->numModelStates; + } + + /* find the preallocated working space */ + cL = m->ancStateCondLikes; + + /* cycle over the compressed characters */ + for (c=0; cnumChars; c++) + { + cL[0] = cL[1] = 0.0; + for (k=0; knumGammaCats; k++) + { + cL[0] += clP[k][0]; + cL[1] += clP[k][1]; + clP[k]+=2; + } + cL[0] *= (CLFlt) (bs[0] * freq); + cL[1] *= (CLFlt) (bs[1] * freq); + sum = cL[0] + cL[1]; + assert (cL[0]==cL[0]); + assert (cL[1]==cL[1]); + assert (sum<9999999999999999999999999999999.0); + cL[0] /= sum; + cL[1] /= sum; + assert (cL[0]==cL[0]); + assert (cL[1]==cL[1]); + cL += 2; + } + + /* print the resulting conditional likelihoods cycling over uncompressed chars */ + for (c=0; ccompCharStart; + cL = m->ancStateCondLikes + (i*2); + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(cL[0])); + if (AddToPrintString (tempStr) == ERROR) return (ERROR); + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(cL[1])); + if (AddToPrintString (tempStr) == ERROR) return (ERROR); + } + + free (tempStr); + return NO_ERROR; +} + + +/*---------------------------------------------------------------- +| +| PrintAncStates_Gen: print ancestral states after final pass +| General model with or without rate variation +| +-----------------------------------------------------------------*/ +int PrintAncStates_Gen (TreeNode *p, int division, int chain) +{ + int c, i, k, nStates, hasPInvar, nGammaCats; + const int *rateCat; + MrBFlt *bsVals; + CLFlt *cL, sum, pInvar=0.0, freq, f, bs[64]; + const CLFlt *clFP, *clInvar=NULL, *lnScaler, **clP; + char *tempStr, *printedChar; + int tempStrSize = TEMPSTRSIZE; + ModelInfo *m; + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + return (ERROR); + } + + if (!strcmp(modelParams[division].nucModel,"Codon") || !strcmp(modelParams[division].nucModel,"Protein") || !strcmp(modelParams[division].nucModel,"Doublet")) + { + assert (modelParams[division].dataType == DNA || modelParams[division].dataType == RNA); + /* Note that we can have matrix with Protein datatype which is not and should not be covered here */ + printedChar = (char *) SafeMalloc (numChar*sizeof(char)); + } + else + { + printedChar = NULL; + } + + + /* find model settings for this division */ + m = &modelSettings[division]; + + /* find number of states */ + nStates = m->numModelStates; + + /* find state frequencies */ + bsVals = GetParamSubVals (m->stateFreq, chain, state[chain]); + for (i=0; ipInvar == NULL) + hasPInvar = NO; + else + { + hasPInvar = YES; + clInvar = m->invCondLikes; + pInvar = (CLFlt) *GetParamVals (m->pInvar, chain, state[chain]); + } + + /* find number of rate categories */ + nGammaCats = m->numGammaCats; + + /* find frequencies of rate categories (only relevant if gibbsGamma == NO) */ + freq = ((CLFlt)1.0 - pInvar) / nGammaCats; + + /* find site scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find rate category index */ + rateCat = m->tiIndex + chain*m->numChars; + + /* find the conditional likelihoods from the final pass */ + clFP = m->condLikes[m->condLikeScratchIndex[p->index]]; + + /* find the preallocated working space */ + cL = m->ancStateCondLikes; + + /* cycle over the compressed characters */ + if (m->gibbsGamma == YES) + { + for (c=0; cnumChars; c++) + { + sum = 0.0; + if (rateCat[c] < nGammaCats) + { + for (i=0; iclP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clFP; + clFP += m->numChars * m->numModelStates; + } + for (c=0; cnumChars; c++) + { + for (i=0; i 0) + { + sum = 0.0; + for (i=0; i 0.0) + { + if (lnScaler[c] < -100.0) + { + /* only invar cond likes are relevant */ + for (i=0; i 0.0); + for (i=0; icompCharStart; + cL = m->ancStateCondLikes + (i*nStates); + if (printedChar) + { + for (i=c+1; istateFreq, chain, state[chain]); + bs[A] = (CLFlt) bsVals[A]; + bs[C] = (CLFlt) bsVals[C]; + bs[G] = (CLFlt) bsVals[G]; + bs[T] = (CLFlt) bsVals[T]; + + /* find invar cond likes */ + if (m->pInvar == NULL) + hasPInvar = NO; + else + { + hasPInvar = YES; + clInvar = m->invCondLikes; + pInvar = (CLFlt) *GetParamVals (m->pInvar, chain, state[chain]); + } + + /* find number of rate categories */ + nGammaCats = m->numGammaCats; + + /* find frequencies of rate categories (only relevant if gibbsGamma == NO) */ + if (hasPInvar == NO) + freq = (CLFlt) 1.0 / nGammaCats; + else + freq = ((CLFlt)1.0 - pInvar) / nGammaCats; + + /* find site scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find rate category index */ + rateCat = m->tiIndex + chain*m->numChars; + + /* find the conditional likelihoods from the final pass */ + clFP = m->condLikes[m->condLikeScratchIndex[p->index]]; + + /* find the preallocated working space */ + cL = m->ancStateCondLikes; + + /* cycle over the compressed characters */ + if (m->gibbsGamma == YES) + { + for (c=0; cnumChars; c++) + { + if (rateCat[c] < nGammaCats) + { + cL[A] = clFP[A] * (CLFlt) bs[A]; + cL[C] = clFP[C] * (CLFlt) bs[C]; + cL[G] = clFP[G] * (CLFlt) bs[G]; + cL[T] = clFP[T] * (CLFlt) bs[T]; + } + else + { + cL[A] = clInvar[A] * (CLFlt) bs[A]; + cL[C] = clInvar[C] * (CLFlt) bs[C]; + cL[G] = clInvar[G] * (CLFlt) bs[G]; + cL[T] = clInvar[T] * (CLFlt) bs[T]; + } + sum = cL[A] + cL[C] + cL[G] + cL[T]; + cL[A] /= sum; + cL[C] /= sum; + cL[G] /= sum; + cL[T] /= sum; + clInvar += 4; + clFP += 4; + cL += 4; + } + } + else + { + /* find conditional likelihood pointers */ + clP = (const CLFlt**)m->clP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clFP; + clFP += m->numChars * m->numModelStates; + } + + for (c=0; cnumChars; c++) + { + cL[A] = cL[C] = cL[G] = cL[T] = 0.0; + for (k=0; k 0.0) + { + if (lnScaler[c] < -100.0) + { + /* only invar cond likes are relevant */ + cL[A] = clInvar[A] * bs[A] * pInvar; + cL[C] = clInvar[C] * bs[C] * pInvar; + cL[G] = clInvar[G] * bs[G] * pInvar; + cL[T] = clInvar[T] * bs[T] * pInvar; + } + else + { + f = (CLFlt)exp(lnScaler[c]) * freq; + cL[A] = clInvar[A] * bs[A] * pInvar + cL[A] * f; + cL[C] = clInvar[C] * bs[C] * pInvar + cL[C] * f; + cL[G] = clInvar[G] * bs[G] * pInvar + cL[G] * f; + cL[T] = clInvar[T] * bs[T] * pInvar + cL[T] * f; + } + } + clInvar += 4; + } + sum = cL[A] + cL[C] + cL[G] + cL[T]; + cL[A] /= sum; + cL[C] /= sum; + cL[G] /= sum; + cL[T] /= sum; + cL += 4; + } + } + + /* print the resulting conditional likelihoods cycling over uncompressed chars */ + for (c=0; ccompCharStart; + cL = m->ancStateCondLikes + (i*4); + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(cL[A])); + if (AddToPrintString (tempStr) == ERROR) return ERROR; + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(cL[C])); + if (AddToPrintString (tempStr) == ERROR) return ERROR; + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(cL[G])); + if (AddToPrintString (tempStr) == ERROR) return ERROR; + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(cL[T])); + if (AddToPrintString (tempStr) == ERROR) return ERROR; + } + free (tempStr); + return NO_ERROR; +} + + +/*---------------------------------------------------------------- +| +| PrintAncStates_Std: print ancestral states after final pass +| Standard model with or without rate variation +| +-----------------------------------------------------------------*/ +int PrintAncStates_Std (TreeNode *p, int division, int chain) +{ + int c, i, j, k, s, nStates, numReps; + MrBFlt *bsBase, *bs, freq; + CLFlt *clFP, *cL, sum,** clP; + char *tempStr; + int tempStrSize = TEMPSTRSIZE; + ModelInfo *m; + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + return (ERROR); + } + + /* find model settings for this division */ + m = &modelSettings[division]; + + /* find state frequencies, base index */ + bsBase = GetParamStdStateFreqs (m->stateFreq, chain, state[chain]); + + /* find the conditional likelihoods from the final pass */ + clFP = m->condLikes[m->condLikeScratchIndex[p->index]]; + + numReps=0; + for (c=0; cnumChars; c++) + { + if (m->nStates[c] == 2) + numReps += m->numBetaCats * 2; + else + numReps += m->nStates[c]; + } + + /* find conditional likelihood pointers */ + clP = m->clP; + for (k=0; knumGammaCats; k++) + { + clP[k] = clFP; + clFP += numReps; + } + + /* find the preallocated working space */ + cL = m->ancStateCondLikes; + + /* cycle over the compressed characters */ + for (c=0; cnumChars; c++) + { + nStates = m->nStates[c]; + bs = bsBase + m->bsIndex[c]; + + for (s=0; snumBetaCats * m->numGammaCats); + for (i=0; inumBetaCats; i++) + { + for (k=0; knumGammaCats; k++) + { + for (s=0; snumGammaCats); + for (k=0; knumGammaCats; k++) + { + for (s=0; scompCharStart; + for (i=j=0; inStates[i]; + cL = m->ancStateCondLikes + j; + + for (i=0; inStates[k]; i++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(cL[i])); + if (AddToPrintString (tempStr) == ERROR) return (ERROR); + } + } + free (tempStr); + return NO_ERROR; +} + + +/*----------------------------------------------------------------------- +| +| PrintCheckPoint: Print checkpoint to file +| +------------------------------------------------------------------------*/ +int PrintCheckPoint (int gen) +{ + int i, j, k, k1, nErrors=0, run, chn, nValues, tempStrSize = TEMPSTRSIZE, + hasEvents, *intValue, id, oldPrecision; + char bkupFileName[220], oldBkupFileName[220], ckpFileName[220], *tempString=NULL; + MrBFlt *value, clockRate; + Param *p = NULL, *subParm = NULL; + Tree *t; + FILE *fp = NULL; + MCMCMove *mv; + /*ModelInfo *m = NULL;*/ + +#if defined (MPI_ENABLED) + int sumErrors=0,ierror; + MrBFlt r, sum; +#endif + + /* use high precision for checkpointing */ + oldPrecision = precision; + precision = 15; + + /* allocate tempString */ + if ((tempString = (char *) SafeCalloc (tempStrSize, sizeof(char))) == NULL) + nErrors++; + +#if defined (MPI_ENABLED) + if (proc_id == 0) + { +#endif + if (nErrors == 0) + { + /* figure out check-point file names */ + sprintf(ckpFileName, "%s.ckp", chainParams.chainFileName); + strcpy (bkupFileName, ckpFileName); + strcat (bkupFileName, "~"); + strcpy (oldBkupFileName, bkupFileName); + strcat (oldBkupFileName, "~"); + + /* shift check-point files */ + remove (oldBkupFileName); + rename (bkupFileName, oldBkupFileName); + rename (ckpFileName, bkupFileName); + + /* create new ckp file */ + if ((fp = OpenTextFileW (ckpFileName)) == NULL) + { + MrBayesPrint ("%s Problem opening checkpoint file\n", spacer); + nErrors++; + } + } + +#if defined (MPI_ENABLED) + } /* end of if (proc_id == 0)*/ +#endif + + ERROR_TEST2("",free(tempString),return(ERROR)); + + /* write file header */ + MrBayesPrintf (fp, "#NEXUS\n[ID: %s]\n[generation: %d]\n", stamp, gen); + + if (chainParams.isSS == YES) + { + /* dump to .ckp file current step contribution */ + MrBayesPrintf (fp, "[SsAcumulators:"); +# if defined (MPI_ENABLED) + for (j=0; j 0) + { + MrBayesPrint ("%s Memory allocation error on at least one processor\n", spacer); + free (tempString); + return ERROR; + } +# else + if (nErrors > 0) + { + free (tempString); + return ERROR; + } +# endif +*/ + /* print trees (but not species trees) */ + for (i=0; iparamType != P_BRLENS && p->paramType != P_TOPOLOGY) + continue; + if (p->paramType == P_TOPOLOGY && p->subParams[0] != p) + continue; + hasEvents = NO; + for (j=0; jname) == ERROR) + nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) + nErrors++; + if (p->paramType == P_BRLENS && p->nSubParams > 0) + { + for (k=0; knSubParams; k++) + { + subParm = p->subParams[k]; + if (subParm->paramType == P_CPPEVENTS) + { + hasEvents = YES; + if (SafeSprintf (&tempString, &tempStrSize, " [&E %s]", subParm->name) == ERROR) nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) nErrors++; + } + if (nErrors == 0 && (subParm->paramType == P_CPPEVENTS || subParm->paramType == P_TK02BRANCHRATES || + subParm->paramType == P_IGRBRANCHRATES || subParm->paramType == P_MIXEDBRCHRATES)) + { + if (subParm->paramType == P_MIXEDBRCHRATES) + { + id = *GetParamIntVals(subParm, j, state[j]); + if (SafeSprintf (&tempString, &tempStrSize, " [&B %s %d]", subParm->name, id) == ERROR) nErrors++; + } + else + if (SafeSprintf (&tempString, &tempStrSize, " [&B %s]", subParm->name) == ERROR) nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) nErrors++; + } + } + } + + if (t->isRooted == YES && t->isClock == NO) + SafeSprintf (&tempString, &tempStrSize, " = "); + else if (t->isRooted == YES && t->isClock == YES) + { + clockRate = *GetParamVals(modelSettings[p->relParts[0]].clockRate, j, state[j]); + SafeSprintf (&tempString, &tempStrSize, " = [&R] [&clockrate = %s] ", MbPrintNum(clockRate)); + } + else /* if (t->isRooted == NO) */ + SafeSprintf (&tempString, &tempStrSize, " = "); + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) nErrors++; + /* write the tree in (extended) Newick format */ + if (nErrors == 0) + { + if (p->paramType == P_TOPOLOGY) + WriteNoEvtTreeToPrintString (t->root->left, j, p, NO, t->isRooted); + else if (hasEvents == NO) + WriteNoEvtTreeToPrintString (t->root->left, j, p, YES, t->isRooted); + else + WriteEventTreeToPrintString (t->root->left, j, p, YES); + if (AddToPrintString (";\n") == ERROR) + nErrors++; + } + } + MrBayesPrintf (fp, "%s", printString); +#if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Print error on at least one processor\n", spacer); + goto errorExit; + } + if (PrintMPISlaves(fp) == ERROR) + goto errorExit; +#else + if (nErrors > 0) + goto errorExit; +#endif + strcpy (printString, ""); + strcpy (tempString, ""); + } + MrBayesPrintf (fp, "end;\n\n"); + + /* print species trees */ + if (strcmp(modelParams[0].topologyPr,"Speciestree") == 0) + { + /* get the first species tree */ + for (i=0; iparamType == P_SPECIESTREE) + break; + } + t = GetTree(p, 0, state[0]); + +#if defined (MPI_ENABLED) +if (proc_id == 0) + { +#endif + /* write the block header and translate block */ + MrBayesPrintf (fp, "\nbegin trees;\n"); + PrintTranslateBlock (fp, t); +#if defined (MPI_ENABLED) + } +#endif + + for (j=0; jname) == ERROR) + nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) + nErrors++; + + subParm = modelSettings[p->relParts[0]].popSize; + if (subParm->nValues > 1) + { + if (SafeSprintf (&tempString, &tempStrSize, " [&N %s]", subParm->name) == ERROR) nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) nErrors++; + } + + clockRate = *GetParamVals(modelSettings[p->relParts[0]].clockRate, j, state[j]); + SafeSprintf (&tempString, &tempStrSize, " = [&R] [&clockrate = %s] ", MbPrintNum(clockRate)); + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) nErrors++; + + /* write the tree in (extended) Newick format */ + if (nErrors == 0) + { + WriteNoEvtTreeToPrintString (t->root->left, j, p, YES, t->isRooted); + if (AddToPrintString (";\n") == ERROR) + nErrors++; + } + } + MrBayesPrintf (fp, "%s", printString); +#if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Print error on at least one processor\n", spacer); + goto errorExit; + } + if (PrintMPISlaves(fp) == ERROR) + goto errorExit; +#else + if (nErrors > 0) + goto errorExit; +#endif + strcpy (printString, ""); + strcpy (tempString, ""); + MrBayesPrintf (fp, "end;\n\n"); + } + + /* start startvals block */ + MrBayesPrintf (fp,"begin mrbayes;\n"); + MrBayesPrintf (fp, "\tstartvals\n"); + + /* first print topology values */ + for (i=0; iparamType == P_TOPOLOGY) + { + for (j=0; jname, run, chn, t->name) == ERROR) + nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) + nErrors++; + } + MrBayesPrintf (fp, "%s", printString); +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Print error on at least one processor\n", spacer); + goto errorExit; + } + if (PrintMPISlaves(fp) == ERROR) + goto errorExit; +# else + if (nErrors > 0) + goto errorExit; +# endif + strcpy (printString, ""); + strcpy (tempString, ""); + } + } + + /* now print branch lengths and relaxed clock parameters */ + for (i=0; iparamType == P_BRLENS) + { + for (j=0; jname, run, chn, t->name) == ERROR) + nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) + nErrors++; + for (k=0; knSubParams; k++) + { + if (nErrors == 0 && SafeSprintf (&tempString, &tempStrSize, "\t\t%s(%d,%d)=%s\n", p->subParams[k]->name, run, chn, t->name) == ERROR) + nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) + nErrors++; + } + } + MrBayesPrintf (fp, "%s", printString); +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Print error on at least one processor\n", spacer); + goto errorExit; + } + if (PrintMPISlaves(fp) == ERROR) + goto errorExit; +# else + if (nErrors > 0) + goto errorExit; +# endif + strcpy (printString, ""); + strcpy (tempString, ""); + } + } + + /* now print species tree and population size parameters */ + for (i=0; iparamType == P_SPECIESTREE) + { + for (j=0; jname, run, chn, t->name) == ERROR) + nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) + nErrors++; + if (modelSettings[p->relParts[0]].popSize->nValues > 1) + if (nErrors == 0 && SafeSprintf (&tempString, &tempStrSize, "\t\t%s(%d,%d)=%s\n", modelSettings[p->relParts[0]].popSize->name, run, chn, t->name) == ERROR) + nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) + nErrors++; + } + MrBayesPrintf (fp, "%s", printString); +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Print error on at least one processor\n", spacer); + goto errorExit; + } + if (PrintMPISlaves(fp) == ERROR) + goto errorExit; +# else + if (nErrors > 0) + goto errorExit; +# endif + strcpy (printString, ""); + strcpy (tempString, ""); + } + } + + /* now print param values */ + for (i=0; iparamType == P_PI && modelSettings[p->relParts[0]].dataType != STANDARD) + { + value = GetParamSubVals (p, j, state[j]); + nValues = p->nSubValues; + } + else + { + value = GetParamVals (p, j, state[j]); + nValues = p->nValues; + } + if (nErrors == 0 && SafeSprintf (&tempString, &tempStrSize, "\t\t%s(%d,%d)=(%.15le", p->name, run, chn, value[0]) == ERROR) + nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) + nErrors++; + for (k=1; knIntValues > 0) + { + intValue = GetParamIntVals (p, j, state[j]); + nValues = p->nIntValues; + for (k=0; knSympi > 0) + { + value = GetParamStdStateFreqs (p, j, state[j]); + if (p->hasBinaryStd == YES) + value += 2 * modelSettings[p->relParts[0]].numBetaCats; + for (k=0; knSympi; k++) + { + for (k1=0; k1sympinStates[k]; k1++) + { + if (nErrors==0 && SafeSprintf (&tempString, &tempStrSize, ",%.15le", *value++) == ERROR) + nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) + nErrors++; + } + } + } + /* print extra params for omega */ + if (p->paramType == P_OMEGA) + { + value = GetParamSubVals (p, j, state[j]); + nValues = p->nSubValues/2; + for (k=0; k 0) + { + MrBayesPrint ("%s Print error on at least one processor\n", spacer); + goto errorExit; + } + if (PrintMPISlaves(fp) == ERROR) + goto errorExit; +#else + if (nErrors > 0) + goto errorExit; +#endif + strcpy (printString, ""); + strcpy (tempString, ""); + } + /* end startvals statement */ + MrBayesPrintf (fp, "\t;\n"); + + /* print tuning parameters of moves */ + MrBayesPrintf (fp, "\tpropset\n"); + for (i=0; imoveType->Autotune == NULL) + continue; /* tuning parameter(s) do not change */ + for (j=0; j$(,)= */ + if (nErrors == 0 && SafeSprintf (&tempString, &tempStrSize, "\t\t%s$%s(%d,%d)=%.15le\n", + mv->name, mv->moveType->shortTuningName[0], run, chn, mv->tuningParam[chainId[j]][0]) == ERROR) + nErrors++; + if (nErrors == 0 && AddToPrintString (tempString) == ERROR) + nErrors++; + } + MrBayesPrintf (fp, "%s", printString); +#if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Print error on at least one processor\n", spacer); + goto errorExit; + } + if (PrintMPISlaves(fp) == ERROR) + goto errorExit; +#else + if (nErrors > 0) + goto errorExit; +#endif + strcpy (printString, ""); + strcpy (tempString, ""); + } + + /* end propset statement */ + MrBayesPrintf (fp, "\t;\n"); + + /* end mrbayes block */ + MrBayesPrintf (fp, "end;\n\n"); + + /* change precision back */ + precision = oldPrecision; + + SafeFclose (&fp); + free (tempString); + free (printString); + printStringSize = 0; + return (NO_ERROR); + +errorExit: + precision = oldPrecision; + free (tempString); + free (printString); + printString = NULL; + printStringSize = 0; + SafeFclose (&fp); + return (ERROR); +} + + +/*---------------------------------------------------------------------- +| +| PrintMCMCDiagnosticsToFile: Print acceptance ratios, swapping +| frequencies, and convergence diagnostics to file. +| +------------------------------------------------------------------------*/ +int PrintMCMCDiagnosticsToFile (int curGen) +{ + int i, j, n; + MCMCMove *theMove; + char *diagnstat; + + /* Simply print header if curGen == 0 */ + if (curGen == 0) + { + // MrBayesPrintf (fpMcmc, "[LEGEND:]\n"); + MrBayesPrintf (fpMcmc, "[ID: %s]\n", stamp); + MrBayesPrintf (fpMcmc, "[ Gen -- Generation]\n"); + if (chainParams.allChains == YES) + MrBayesPrintf (fpMcmc, "[ ()$acc_run2_chn3 -- Acceptance rate of move changing parameter in run 2, chain 3]\n"); + else /* if (chainParams.allChains == NO) */ + MrBayesPrintf (fpMcmc, "[ ()$acc_run2 -- Acceptance rate of move changing parameter 1 in run 2]\n"); + if (chainParams.numChains > 1 && chainParams.numRuns > 1) + MrBayesPrintf (fpMcmc, "[ Swap(1<>2)$acc_run3 -- Acceptance rate of swaps between chains 1 and 2 in run 3]\n"); + else if (chainParams.numChains > 1 && chainParams.numRuns == 1) + MrBayesPrintf (fpMcmc, "[ Swap(1<>2)$acc -- Acceptance rate of swaps between chains 1 and 2]\n"); + if (chainParams.diagnStat == AVGSTDDEV) + diagnstat = "Average"; + else + diagnstat = "Maximum"; + if (chainParams.numRuns > 1 && numTopologies == 1 && chainParams.allComps == NO) + MrBayesPrintf (fpMcmc, "[ StdDev(s) -- %s standard deviation of split frequencies]\n", diagnstat); + else if (chainParams.numRuns > 1 && numTopologies == 1 && chainParams.allComps == YES) + MrBayesPrintf (fpMcmc, "[ StdDev(s)(run1-run2) -- %s standard deviation of split frequencies between runs 1 and 2]\n", diagnstat); + else if (chainParams.numRuns > 1 && numTopologies > 1 && chainParams.allComps == NO) + MrBayesPrintf (fpMcmc, "[ StdDev(s.tree1) -- %s standard deviation of split frequencies for topology 1]\n", diagnstat); + else if (chainParams.numRuns > 1 && numTopologies > 1 && chainParams.allComps == YES) + MrBayesPrintf (fpMcmc, "[ StdDev(s.tree1)(run1-run2) -- %s standard deviation of split frequencies between runs 1 and 2 for topology 1]\n", diagnstat); + + MrBayesPrintf (fpMcmc, "Gen"); + for (n=0; nmoveType->shortName, + theMove->parm->name, n+1, i+1); + if (theMove->moveType->Autotune != NULL && chainParams.autotune == YES) + MrBayesPrintf (fpMcmc, "\t%s(%s)$%s_run%d_chn%d", theMove->moveType->shortName, + theMove->parm->name, theMove->moveType->shortTuningName[0], n+1, i+1); + } + } + } + else + { + for (i=0; imoveType->shortName, theMove->parm->name); + if (theMove->moveType->Autotune != NULL && chainParams.autotune == YES) + MrBayesPrintf (fpMcmc, "\t%s(%s)$%s", theMove->moveType->shortName, theMove->parm->name, theMove->moveType->shortTuningName[0]); + } + else + { + MrBayesPrintf (fpMcmc, "\t%s(%s)$acc_run%d", theMove->moveType->shortName, theMove->parm->name, n+1); + if (theMove->moveType->Autotune != NULL && chainParams.autotune == YES) + MrBayesPrintf (fpMcmc, "\t%s(%s)$%s_run%d", theMove->moveType->shortName, theMove->parm->name, theMove->moveType->shortTuningName[0], n+1); + } + } + } + if (chainParams.numChains > 1) + { + for (i=0; i%d)$acc", i+1, j+1); + else + MrBayesPrintf (fpMcmc, "\tSwap(%d<>%d)$acc(%d)", i+1, j+1, n+1); + } + } + } + } + + if (chainParams.numRuns > 1) + { + for (n=0; n 1 && ReassembleSwapInfo() == ERROR) + return (ERROR); + if (proc_id != 0) + return (NO_ERROR); +#endif + + MrBayesPrintf (fpMcmc, "%d", curGen); + + for (n=0; nnBatches[j] < 1) + MrBayesPrintf (fpMcmc, "\tNA"); + else + MrBayesPrintf (fpMcmc, "\t%.6f", theMove->lastAcceptanceRate[j]); + if (theMove->moveType->Autotune != NULL && chainParams.autotune == YES) + MrBayesPrintf (fpMcmc, "\t%.6e", theMove->tuningParam[j][0]); + } + } + } + else + { + j = n*chainParams.numChains; + for (i=0; inBatches[j] < 1) + MrBayesPrintf (fpMcmc, "\tNA"); + else + MrBayesPrintf (fpMcmc, "\t%.6f", theMove->lastAcceptanceRate[j]); + if (theMove->moveType->Autotune != NULL && chainParams.autotune == YES) + MrBayesPrintf (fpMcmc, "\t%.6e", theMove->tuningParam[j][0]); + } + } + if (chainParams.numChains > 1) + { + for (i=0; i 1) + { + for (n=0; n strlen(s)) + { + if ((s = (char *) SafeRealloc ((void *)s, ((size_t)len+5)*sizeof(char))) == NULL) + { + MrBayesPrint ("%s Problem reallocating %d chars to string 's' on proc 0 in PrintMPISlaves()\n", spacer, len+5); + nErrors++; + } + } + /* communicate and print string */ + if (nErrors == 0) + { + if (proc_id == 0) + { + /* receive string */ + ierror = MPI_Recv (s, len+1, MPI_CHAR, i, tag, MPI_COMM_WORLD, &status); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem receiving printString from proc_id = %d\n", spacer, i); + nErrors++; + } + /* print string */ + if (nErrors == 0) + MrBayesPrintf (fp, "%s", s); + } + else if (proc_id == i) + { + /* send string */ + ierror = MPI_Send (printString, len+1, MPI_CHAR, 0, tag, MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem sending printString from proc_id = %d\n", spacer, i); + nErrors++; + } + } + } + if (nErrors > 0) + break; + } + + if (proc_id == 0) + { + free (s); + s = NULL; + } + + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Problem with the printing in PrintMPISlaves().\n", spacer); + return (ERROR); + } + + return (NO_ERROR); +} +#endif + + +/*---------------------------------------------------------------------- +| +| PrintParamValues: print parameter values and subvalues for param +| +----------------------------------------------------------------------*/ +void PrintParamValues (Param *p, int chain, char *s) +{ + int j; + MrBFlt *value0, *value1; + + if (p == NULL) + MrBayesPrint ("%s %s = NULL\n", spacer, s); + else + { + if (p->nValues > 0) + { + value0 = GetParamVals (p, chain, 0); + value1 = GetParamVals (p, chain, 1); + for (j=0; jnValues; j++) + MrBayesPrint ("%s hyper [%s] = (%lf %lf)\n", spacer, s, value0[j], value1[j]); + } + if (p->nSubValues > 0) + { + value0 = GetParamSubVals (p, chain, 0); + value1 = GetParamSubVals (p, chain, 1); + for (j=0; jnSubValues; j++) + MrBayesPrint ("%s %s = (%lf %lf)\n", spacer, s, value0[j], value1[j]); + } + } + MrBayesPrint ("\n\n"); + + return; +} + + +/*---------------------------------------------------------------------- +| +| PrintParsMatrix: Print parsimony (bitset) matrix +| using hexadecimal representation +| +| +------------------------------------------------------------------------*/ +int PrintParsMatrix (void) +{ + int i, j=0, k, c, d, printWidth, nextColumn, nChars, inputChar; + BitsLong x, y, bitsLongOne; + char ch; + ModelInfo *m; + + bitsLongOne = 1; + + printWidth = 79; + + for (d=0; dnumStates) - 1) / log(16)); + + for (c=0; cnumChars; c++) + { + MrBayesPrint ("Parsimony sets for character %d -- \n", (c / m->nParsIntsPerSite)); + for (i=0; inParsIntsPerSite; + for (nextColumn=13; nextColumn < printWidth; nextColumn+=nChars + 1) + { + if (j >= m->numChars*m->nParsIntsPerSite) + break; + x = m->parsSets[i][j]; + for (k=8 - nChars; k<8; k++) + { + y = (x >> (4* (7 - k))) & 15; + // if (y > 16) printf ("y is too big %ld\n",y); + if (y < 10) + ch = (char) y + '0'; + else + ch = (char) y - 10 + 'A'; + MrBayesPrint("%c", ch); + } + MrBayesPrint(" "); + j++; + } + MrBayesPrint ("\n"); + } + MrBayesPrint("\n"); + printf ("Do you want to stop (y/n)?\n"); + inputChar = getchar(); + if (inputChar == 'y' || inputChar == 'Y') + return NO_ERROR; + else + MrBayesPrint ("\n"); + } + } /* next division */ + + return NO_ERROR; +} + + +/*------------------------------------------------------------------ +| +| PrintSiteRates_Gen: general n-state models with rate variation +| +-------------------------------------------------------------------*/ +int PrintSiteRates_Gen (TreeNode *p, int division, int chain) +{ + int c, j, k, nStates, hasPInvar; + MrBFlt freq, siteLike, invLike, catLike, pInvar=0.0, *bs, + *catRate, baseRate; + MrBFlt s01, s10, probOn, probOff, *swr, covBF[40]; + CLFlt *lnScaler, *clP, *siteRates, *clInvar=NULL; + char *tempStr; + int tempStrSize = TEMPSTRSIZE; + ModelInfo *m; + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + return (ERROR); + } + + /* find model settings and nStates, pInvar, invar cond likes */ + m = &modelSettings[division]; + nStates = m->numModelStates; + if (m->pInvar == NULL) + { + hasPInvar = NO; + } + else + { + hasPInvar = YES; + pInvar = *(GetParamVals (m->pInvar, chain, state[chain])); + clInvar = m->invCondLikes; + } + + /* find conditional likelihood pointer */ + clP = m->condLikes[m->condLikeIndex[chain][p->index]]; + + /* use scratch space for root node for temporary calculations */ + siteRates = m->condLikes[m->condLikeScratchIndex[p->index]]; + + /* find site scaler */ + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + + /* find base frequencies */ + bs = GetParamSubVals (m->stateFreq, chain, state[chain]); + + /* if covarion model, adjust base frequencies */ + if (m->switchRates != NULL) + { + /* find the stationary frequencies */ + swr = GetParamVals(m->switchRates, chain, state[chain]); + s01 = swr[0]; + s10 = swr[1]; + probOn = s01 / (s01 + s10); + probOff = 1.0 - probOn; + + /* now adjust the base frequencies; on-state stored first in cond likes */ + for (j=0; jnumGammaCats; + else + freq = (1.0 - pInvar) / m->numGammaCats; + + /* get rate multipliers (for gamma & partition specific rates) */ + baseRate = GetRate (division, chain); + + /* compensate for invariable sites */ + if (hasPInvar == YES) + baseRate /= (1.0 - pInvar); + + /* get category rates */ + catRate = GetParamSubVals (m->shape, chain, state[chain]); + + /* loop over characters */ + if (hasPInvar == NO) + { + /* no invariable category */ + for (c=0; cnumChars; c++) + { + siteLike = 0.0; + siteRates[c] = 0.0; + for (k=0; knumGammaCats; k++) + { + catLike = 0.0; + for (j=0; jnumChars; c++) + { + siteLike = invLike = 0.0; + siteRates[c] = 0.0; + for (k=0; knumGammaCats; k++) + { + catLike = 0.0; + for (j=0; jcompCharStart; + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(siteRates[j])); + if (AddToPrintString (tempStr) == ERROR) return (ERROR); + } + + free (tempStr); + return NO_ERROR; +} + + +/*------------------------------------------------------------------ +| +| PrintSiteRates_Std: standard model with rate variation +| +-------------------------------------------------------------------*/ +int PrintSiteRates_Std (TreeNode *p, int division, int chain) +{ + int c, j, k, nStates; + MrBFlt siteLike, catLike, *bs, *catRate, baseRate; + CLFlt *clP, *siteRates; + char *tempStr; + int tempStrSize = TEMPSTRSIZE; + ModelInfo *m; + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + return (ERROR); + } + + /* find model settings */ + m = &modelSettings[division]; + + /* find conditional likelihood pointer */ + clP = m->condLikes[m->condLikeIndex[chain][p->index]]; + + /* use scratch space for root node for temporary calculations */ + siteRates = m->condLikes[m->condLikeScratchIndex[p->index]]; + + /* find base frequencies */ + bs = GetParamStdStateFreqs (m->stateFreq, chain, state[chain]); + + /* get rate multiplier */ + baseRate = GetRate (division, chain); + + /* get category rates */ + catRate = GetParamSubVals (m->shape, chain, state[chain]); + + /* loop over characters */ + for (c=0; cnumChars; c++) + { + siteLike = 0.0; + siteRates[c] = 0.0; + nStates = m->nStates[c]; + for (k=0; knumGammaCats; k++) + { + catLike = 0.0; + for (j=0; jcompCharStart; + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(siteRates[j])); + if (AddToPrintString (tempStr) == ERROR) return (ERROR); + } + + free (tempStr); + return NO_ERROR; +} + + +int PrintStates (int curGen, int coldId) +{ + int d, i, j, k, k1, compressedCharPosition, *printedChar=NULL, origAlignmentChars[3]; + char *partString=NULL, stateString[4]; + MrBFlt *st, *sst, sum; + Param *p; + ModelInfo *m; + Tree *tree; + TreeNode *node; + ModelParams *mp; + char *tempStr; + int tempStrSize; + + /* allocate the print string */ + printStringSize = tempStrSize = TEMPSTRSIZE; + printString = (char *)SafeMalloc((size_t)printStringSize * sizeof(char)); + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + + if (!printString) + { + MrBayesPrint ("%s Problem allocating printString (%d)\n", spacer, printStringSize * sizeof(char)); + goto errorExit; + } + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + goto errorExit; + } + + *printString = '\0'; + *tempStr = '\0'; + + /* Allocate memory, temporarily, in case we infer positive selection probs, site omegas, or site rates */ + if (inferPosSel == YES || inferSiteOmegas == YES) + { + if (memAllocs[ALLOC_POSSELPROBS] == YES) + { + MrBayesPrint ("%s posSelProbs not free in PrintStates\n", spacer); + goto errorExit; + } + posSelProbs = (MrBFlt *)SafeMalloc((size_t)numCompressedChars * sizeof(MrBFlt)); + if (!posSelProbs) + { + MrBayesPrint ("%s Problem allocating posSelProbs (%d)\n", spacer, numCompressedChars * sizeof(MrBFlt)); + goto errorExit; + } + for (i=0; iparamType == P_BRLENS) + { + /* print tree lengths or heights for all trees */ + tree = GetTree (p, coldId, state[coldId]); + if (tree->isRooted == YES) + { + if (FillRelPartsString(p, &partString) == YES) + SafeSprintf (&tempStr, &tempStrSize, "\tTH%s\tTL%s", partString, partString); + else + SafeSprintf (&tempStr, &tempStrSize, "\tTH\tTL"); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + else + { + if (FillRelPartsString(p, &partString) == YES) + SafeSprintf (&tempStr, &tempStrSize, "\tTL%s", partString); + else + SafeSprintf (&tempStr, &tempStrSize, "\tTL"); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + /* print # cpp events, or relaxed clock model indicator */ + for (j=0; jnSubParams; j++) + { + if (p->subParams[j]->paramType == P_CPPEVENTS) + { + if (FillRelPartsString(p->subParams[j], &partString) == YES) + SafeSprintf (&tempStr, &tempStrSize, "\tn_CPP%s", partString); + else + SafeSprintf (&tempStr, &tempStrSize, "\tn_CPP"); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + else if (p->subParams[j]->paramType == P_MIXEDBRCHRATES) + { + if (FillRelPartsString(p->subParams[j], &partString) == YES) + SafeSprintf (&tempStr, &tempStrSize, "\tm_RCl%s", partString); + else + SafeSprintf (&tempStr, &tempStrSize, "\tm_RCl"); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + } + /* print proportion of ancestral fossils */ + else if (p->paramType == P_FOSLRATE) + { + if (FillRelPartsString(p, &partString) == YES) + { + SafeSprintf (&tempStr, &tempStrSize, "\tprop_ancfossil%s", partString); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + else + { + SafeSprintf (&tempStr, &tempStrSize, "\tprop_ancfossil"); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + } + + /* print ordinary parameters header */ + for (i=0; iparamHeader); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + + /* print substitution model parameters header */ + if (inferSiteRates == YES) + { + for (i=0; iprintSiteRates == YES) + { + if (m->nCharsPerSite == 1) + { + SafeSprintf (&tempStr, &tempStrSize, "\tr(%d)", i+1); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + else + { + origAlignmentChars[0] = i; + k = 1; + for (j=i+1; j m->nCharsPerSite) + return (ERROR); + origAlignmentChars[k++] = j; + printedChar[j] = YES; + } + } + if (k != m->nCharsPerSite) + return (ERROR); + SafeSprintf (&tempStr, &tempStrSize, "\tr(%d,", origAlignmentChars[0]); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + for (j=1; jbrlens, coldId, state[coldId]); + if (m->printPosSel == YES) + { + if (m->PosSelProbs (tree->root->left, d, coldId) == ERROR) + goto errorExit; + } + } + /* for (i=0; ibrlens, coldId, state[coldId]); + if (m->printSiteOmegas == YES) + { + if (m->SiteOmegas (tree->root->left, d, coldId) == ERROR) + goto errorExit; + } + } + /* for (i=0; i= 0.0 && printedChar[i] == NO && charInfo[i].isExcluded == NO) + { + for (j=k=0; jprintAncStates != YES) + continue; + for (i=0; iactiveConstraints[i] == NO || definedConstraintsType[i] != HARD) + continue; + for (j=0; jdataType == STANDARD) + { + for (k=0; knStates[compCharPos[j] - m->compCharStart]; k++) + { + SafeSprintf (&tempStr, &tempStrSize, "\tp(%c){%d@%s}", m->StateCode(k), j+1, constraintNames[i]); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else if ((mp->dataType == DNA || mp->dataType == RNA) && !strcmp(mp->nucModel,"Codon")) + { + origAlignmentChars[0] = j+1; + k1 = 1; + for (k=j+1; knumStates; k++) + { + State_CODON(stateString, k, d); + SafeSprintf (&tempStr, &tempStrSize, "\tp(%s){%d,%d,%d@%s}", + stateString, + origAlignmentChars[0], + origAlignmentChars[1], + origAlignmentChars[2], + constraintNames[i]); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else if ((mp->dataType == DNA || mp->dataType == RNA) && !strcmp(mp->nucModel,"Doublet")) + { + origAlignmentChars[0] = j+1; + k1 = 1; + for (k=j+1; knumStates; k++) + { + State_DOUBLET(stateString, k); + SafeSprintf (&tempStr, &tempStrSize, "\tp(%s){%d,%d@%s}", + stateString, + origAlignmentChars[0], + origAlignmentChars[1], + constraintNames[i]); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else if ((mp->dataType == DNA || mp->dataType == RNA) && !strcmp(mp->nucModel,"Protein")) + { + origAlignmentChars[0] = j+1; + k1 = 1; + for (k=j+1; knumStates; k++) + { + SafeSprintf (&tempStr, &tempStrSize, "\tp(%c){%d,%d,%d@%s}", + m->StateCode(k), + origAlignmentChars[0], + origAlignmentChars[1], + origAlignmentChars[2], + constraintNames[i]); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else + { + for (k=0; knumStates; k++) + { + SafeSprintf (&tempStr, &tempStrSize, "\tp(%c){%d@%s}", m->StateCode(k), j+1, constraintNames[i]); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + } + } + } + } + + SafeSprintf (&tempStr, &tempStrSize, "\n"); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + + /* now print parameter values */ + SafeSprintf (&tempStr, &tempStrSize, "%d", curGen); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(curLnL[coldId])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(curLnPr[coldId])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + + for (i=0; iparamType == P_BRLENS) + { + /* print tree lengths or heights for all trees */ + tree = GetTree (p, coldId, state[coldId]); + if (tree->isRooted == NO) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(TreeLength(p, coldId))); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + else + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(tree->root->left->nodeDepth)); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(TreeLength(p, coldId))); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + /* print # cpp events, or relaxed clock model indicator */ + for (j=0; jnSubParams; j++) + { + if (p->subParams[j]->paramType == P_CPPEVENTS) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%d", NumCppEvents(p->subParams[j],coldId)); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + else if (p->subParams[j]->paramType == P_MIXEDBRCHRATES) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%d", *GetParamIntVals(p->subParams[j],coldId,state[coldId])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + } + else if (p->paramType == P_FOSLRATE) + { + /* print proportion of ancestral fossils */ + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(PropAncFossil(p, coldId))); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + + /* print ordinary parameters */ + for (i=0; irelParts[0]]; + m = &modelSettings[p->relParts[0]]; + + st = GetParamVals (p, coldId, state[coldId]); + sst = GetParamSubVals (p, coldId, state[coldId]); + + if (p->paramId == SYMPI_EXP_MS || p->paramId == SYMPI_UNI_MS || p->paramId == SYMPI_FIX_MS) + { + /* We print symmetric dirichlet alpha value if not fixed and then multistate character state frequencies */ + if (p->paramId != SYMPI_FIX_MS) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(st[0])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + sst = GetParamStdStateFreqs (p, coldId, state[coldId]); + if (p->hasBinaryStd == YES) + sst += 2 * m->numBetaCats; + for (j=0; jnSympi; j++) + { + for (k=0; ksympinStates[j]; k++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(*sst++)); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + } + else if (p->paramType == P_PI) + { + /* We print the subvalues if we are dealing with state frequencies (state frequencies are held in subvalues). */ + for (j=0; jnSubValues; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(sst[j])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else if (p->paramType == P_TRATIO && !strcmp(mp->tratioFormat,"Dirichlet")) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(st[0] / (1.0 + st[0]))); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(1.0 / (1.0 + st[0]))); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + else if (p->paramType == P_REVMAT) + { + if (!strcmp(mp->revmatFormat,"Ratio")) + { + sum = st[p->nValues-1]; + for (j=0; jnValues; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(st[j] / sum)); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else + { + /* we already have rate proportions */ + for (j=0; jnValues; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(st[j])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + if (p->paramId == REVMAT_MIX) + { + /* add model index and k for nst=mixed */ + SafeSprintf (&tempStr, &tempStrSize, "\t%d", FromGrowthFxnToIndex(GetParamIntVals(p, coldId, state[coldId]))); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + SafeSprintf (&tempStr, &tempStrSize, "\t%d", GetKFromGrowthFxn(GetParamIntVals(p, coldId, state[coldId]))); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else if (p->paramType == P_RATEMULT) + { + if (!strcmp(mp->ratemultFormat,"Ratio")) + { + for (j=0; jnValues; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(st[j] / st[0])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else if (!strcmp(mp->ratemultFormat, "Dirichlet")) + { + sum = 0.0; + for (j=0; jnValues; j++) + sum += st[j]; + for (j=0; jnValues; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(st[j] / sum)); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else + { + for (j=0; jnValues; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(st[j])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + } + else if (p->paramType == P_AAMODEL) + { + for (j=0; jnValues; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%d", (int)st[j]); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else + { + /* run of the mill parameter */ + for (j=0; jnValues; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(st[j])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + + if (p->paramType == P_OMEGA && p->paramId != OMEGA_DIR && p->paramId != OMEGA_FIX && p->paramId != OMEGA_FFF && p->paramId != OMEGA_FF && p->paramId != OMEGA_10FFF) + { + /* OK, we also need to print subvalues for the category frequencies in a NY98-like model. */ + if (!strcmp(mp->omegaVar, "M10")) + { + for (j=0; j<4; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(sst[mp->numM10BetaCats + mp->numM10GammaCats + 4 + j])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + for (j=0; j<2; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(sst[mp->numM10BetaCats + mp->numM10GammaCats + j])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + else + { + for (j=0; j<3; j++) + { + SafeSprintf (&tempStr, &tempStrSize, "\t%s", MbPrintNum(sst[j])); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + } + } + } + } + + /* if user wants site rates, we print those here */ + if (inferSiteRates == YES) + { + for (d=0; dprintSiteRates == YES) + { + mp = &modelParams[d]; + tree = GetTree (m->brlens, coldId, state[coldId]); + node = tree->root->left; + m->PrintSiteRates (node, d, coldId); + } + } + } + + /* If the user wants to infer sites that are under positive selection, then we need to print out the posterior + probability that each site is a positively selected one here. */ + if (inferPosSel == YES) + { + /* loop over the divisions, calculating the probability of being in the positively + selected class for each relevant partition */ + for (d=0; dbrlens, coldId, state[coldId]); + if (m->printPosSel == YES) + { + if (m->PosSelProbs (tree->root->left, d, coldId) == ERROR) + { + goto errorExit; + } + } + } + + /* print the probabilities for the appropriate sites in the original alignment */ + for (i=0; i (%3d,%3d,%3d) %1.25le\n", i, origAlignmentChars[0]+1, origAlignmentChars[1]+1, + origAlignmentChars[2]+1, posSelProbs[compressedCharPosition]); */ + } + } + } + + /* If the user wants omega values for each site, we print those here. */ + if (inferSiteOmegas == YES) + { + /* loop over the divisions, calculating the omega value for each site */ + for (d=0; dbrlens, coldId, state[coldId]); + if (m->printSiteOmegas == YES) + { + if (m->SiteOmegas (tree->root->left, d, coldId) == ERROR) + { + goto errorExit; + } + } + } + + /* print the site omegas for the appropriate sites in the original alignment */ + /* note that we use posSelProbs to pass values between SiteOmegas and this function */ + for (i=0; i= 0.0 && printedChar[i] == NO && charInfo[i].isExcluded == NO) + { + for (j=k=0; j (%3d,%3d,%3d) %1.25le\n", i, origAlignmentChars[0]+1, origAlignmentChars[1]+1, + origAlignmentChars[2]+1, posSelProbs[compressedCharPosition]); */ + } + } + } + + /* free memory for positive selection probs or site omegas */ + if (inferPosSel == YES || inferSiteOmegas == YES) + { + if (memAllocs[ALLOC_POSSELPROBS] == YES) + free (posSelProbs); + memAllocs[ALLOC_POSSELPROBS] = NO; + free (printedChar); + } + + /* if user wants ancestral states for constrained nodes, we obtain and print those here */ + if (inferAncStates == YES) + { + for (d=0; dprintAncStates == YES) + { + mp = &modelParams[d]; + tree = GetTree (m->brlens, coldId, state[coldId]); + for (i=j=tree->nIntNodes - 1; i>=0; i--) + { + node = tree->intDownPass[i]; + m->CondLikeUp (node, d, coldId); + } + for (k=0; kactiveConstraints[k] == NO || definedConstraintsType[k] != HARD) + continue; + for (i=tree->nIntNodes-1; i>=0; i--) + { + node = tree->intDownPass[i]; + if (node->isLocked == YES && k == node->lockID) + m->PrintAncStates (node, d, coldId); + } + } + } + } + } + + SafeSprintf (&tempStr, &tempStrSize, "\n"); + if (AddToPrintString (tempStr) == ERROR) goto errorExit; + + free (tempStr); + SafeFree ((void **)&partString); + + return (NO_ERROR); + + errorExit: + if (printedChar) + free (printedChar); + if (memAllocs[ALLOC_POSSELPROBS] == YES) + free (posSelProbs); + memAllocs[ALLOC_POSSELPROBS] = NO; + free (tempStr); + SafeFree ((void **)&partString); + return (ERROR); +} + + +/*---------------------------------------------------------------------- +| +| PrintStatesToFiles: Print trees and model parameters to files. We +| only come into this function if it is the first cycle of the chain +| or if we hit a cycle number evenly divisible by the sample frequency, +| or this is the last cycle of the chain. +| +------------------------------------------------------------------------*/ +int PrintStatesToFiles (int curGen) +{ + int i, j, chn, coldId, runId; + MrBFlt clockRate; + Tree *tree=NULL; + Param *param; +# if defined (MPI_ENABLED) + int id, x, doesThisProcHaveId, procWithChain, ierror, tag, nErrors, sumErrors; + MPI_Status status; +# endif + +# if !defined (MPI_ENABLED) + + /* print parameter values and trees (single-processor version) */ + for (chn=0; chnparamType == P_TOPOLOGY) + { + if (tree->isClock == YES) + clockRate = *GetParamVals(modelSettings[tree->relParts[0]].clockRate, coldId, state[coldId]); + else + clockRate = 0.0; + if (PrintTree (curGen, param, coldId, NO, clockRate) == ERROR) + return (ERROR); + } + else + { + if (tree->isClock == YES) + clockRate = *GetParamVals(modelSettings[tree->relParts[0]].clockRate, coldId, state[coldId]); + else + clockRate = 0.0; + if (PrintTree (curGen, param, coldId, YES, clockRate) == ERROR) + return (ERROR); + } + + fprintf (fpTree[runId][i], "%s", printString); + fflush (fpTree[runId][i]); + free(printString); + + j = printTreeTopologyIndex[i]; + if (j 1) + { + if (chainParams.relativeBurnin == YES || curGen >= chainParams.chainBurnIn * chainParams.sampleFreq) + { + if (AddTreeToPartitionCounters (tree, j, runId) == ERROR) + return ERROR; + if (chainParams.relativeBurnin == YES && chainParams.saveTrees == YES && (noWarn == NO || curGen <= chainParams.stopTreeGen)) + { + ResetTopologyFromTree (chainParams.dtree, tree); + if (AddToTreeList (&chainParams.treeList[numTopologies*runId+j], chainParams.dtree) == ERROR) + return (ERROR); + } + } + } + } + } + } + } +# else + /* print parameter values and trees (parallel version) */ + + /* Wait for all of the processors to get to this point before starting the printing. */ + ierror = MPI_Barrier (MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem at chain barrier.\n", spacer); + return ERROR; + } + tag = nErrors = 0; + + /* Loop over runs. */ + for (runId=0; runId 0) + { + MrBayesPrint ("%s Problem with PrintStates.\n", spacer); + return ERROR; + } + + /* First communication: Send/receive the length of the printString. */ + if (proc_id == 0 || proc_id == procWithChain) + { + if (procWithChain != 0) + { + if (proc_id == procWithChain) + { + /* Find out how large the string is, and send the information to proc_id = 0. */ + ierror = MPI_Send (&printStringSize, 1, MPI_LONG, 0, tag, MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + nErrors++; + } + else + { + /* Receive the length of the string from proc_id = procWithChain, and then allocate + printString to be that length. */ + ierror = MPI_Recv (&printStringSize, 1, MPI_LONG, procWithChain, tag, MPI_COMM_WORLD, &status); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem receiving printStringSize from proc_id = %d\n", spacer, procWithChain); + nErrors++; + } + printString = (char *)SafeMalloc((size_t)printStringSize * sizeof(char)); + if (!printString) + { + MrBayesPrint ("%s Problem allocating printString (%d)\n", spacer, printStringSize * sizeof(char)); + nErrors++; + } + strcpy (printString, ""); + } + } + } + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Problem with first communication (states).\n", spacer); + return ERROR; + } + + /* Second communication: Send/receive the printString. */ + if (proc_id == 0 || proc_id == procWithChain) + { + if (procWithChain != 0) + { + if (proc_id == procWithChain) + { + /* Send the printString to proc_id = 0. After we send the string to proc_id = 0, we can + free it. */ + ierror = MPI_Send (&printString[0], (int)printStringSize, MPI_CHAR, 0, tag, MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + nErrors++; + free(printString); + } + else + { + /* Receive the printString from proc_id = procWithChain. */ + ierror = MPI_Recv (&printString[0], (int)printStringSize, MPI_CHAR, procWithChain, tag, MPI_COMM_WORLD, &status); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem receiving printString from proc_id = %d\n", spacer, procWithChain); + nErrors++; + } + } + } + } + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Problem with second communication (states).\n", spacer); + return ERROR; + } + + /* Print the string with the parameter information if we are proc_id = 0. */ + if (proc_id == 0) + { + fprintf (fpParm[runId], "%s", printString); + fflush (fpParm[runId]); + free(printString); + } + + /* ****************************************************************************************************/ + /* print trees ****************************************************************************************/ + + for (i=0; iparamType == P_TOPOLOGY) + { + if (tree->isClock == YES) + clockRate = *GetParamVals(modelSettings[tree->relParts[0]].clockRate, coldId, state[coldId]); + else + clockRate = 0.0; + if (PrintTree (curGen, param, coldId, NO, clockRate) == ERROR) + nErrors++; + } + else + { + if (tree->isClock == YES) + clockRate = *GetParamVals(modelSettings[tree->relParts[0]].clockRate, coldId, state[coldId]); + else + clockRate = 0.0; + if (PrintTree (curGen, param, coldId, YES, clockRate) == ERROR) + nErrors++; + } + } + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Problem with printing trees.\n", spacer); + return ERROR; + } + + /* First communication: Send/receive the length of the printString. */ + if (proc_id == 0 || proc_id == procWithChain) + { + if (procWithChain != 0) + { + if (proc_id == procWithChain) + { + /* Find out how large the string is, and send the information to proc_id = 0. */ + ierror = MPI_Send (&printStringSize, 1, MPI_LONG, 0, tag, MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + nErrors++; + } + else + { + /* Receive the length of the string from proc_id = procWithChain, and then allocate + printString to be that length. */ + ierror = MPI_Recv (&printStringSize, 1, MPI_LONG, procWithChain, tag, MPI_COMM_WORLD, &status); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem receiving printStringSize from proc_id = %d\n", spacer, procWithChain); + nErrors++; + } + printString = (char *)SafeMalloc((size_t)printStringSize * sizeof(char)); + if (!printString) + { + MrBayesPrint ("%s Problem allocating printString (%d)\n", spacer, printStringSize * sizeof(char)); + nErrors++; + } + strcpy (printString, ""); + } + } + } + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Problem with first communication (states).\n", spacer); + return ERROR; + } + + /* Second communication: Send/receive the printString. */ + if (proc_id == 0 || proc_id == procWithChain) + { + if (procWithChain != 0) + { + if (proc_id == procWithChain) + { + /* Send the printString to proc_id = 0. After we send the string to proc_id = 0, we can + free it. */ + ierror = MPI_Send (&printString[0], (int)printStringSize, MPI_CHAR, 0, tag, MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + nErrors++; + free(printString); + } + else + { + /* Receive the printString from proc_id = procWithChain. */ + ierror = MPI_Recv (&printString[0], (int)printStringSize, MPI_CHAR, procWithChain, tag, MPI_COMM_WORLD, &status); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem receiving printString from proc_id = %d\n", spacer, procWithChain); + nErrors++; + } + } + } + } + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Problem with second communication (states).\n", spacer); + return ERROR; + } + + /* Print the string with the parameter information if we are proc_id = 0. */ + if (proc_id == 0) + { + fprintf (fpTree[runId][i], "%s", printString); + fflush (fpTree[runId][i]); + j = printTreeTopologyIndex[i]; + if (j < numTopologies) + { + if (chainParams.numRuns > 1 && chainParams.mcmcDiagn == YES) + { + if (chainParams.relativeBurnin == YES || curGen >= chainParams.chainBurnIn * chainParams.sampleFreq) + { + char *s = NULL; + StripComments (printString); + /* if it is the first tree, we strip out the translate block first (twice) */ + if (curGen==0) { + if (strtok (printString, ";")==NULL) /* get translate lock */ + return (ERROR); + if (strtok (NULL, ";")==NULL) + return (ERROR); + if (strtok (NULL, "\n\t\r ")==NULL) /* get 'tree' */ + return (ERROR); + } + else { + if (strtok (printString, "\n\t\r ")==NULL) /* get 'tree' */ + return (ERROR); + } + if (strtok (NULL, " =")==NULL) /* get 'rep.xxxx' */ + return (ERROR); + if ((s = strtok (NULL, " =;"))==NULL) /* get Newick string */ + return (ERROR); + ResetTopology (chainParams.dtree, s); + if (AddTreeToPartitionCounters (chainParams.dtree, j, runId) == ERROR) + return ERROR; + if (chainParams.relativeBurnin == YES && chainParams.saveTrees == YES && (noWarn == NO || curGen <= chainParams.stopTreeGen)) + { + if (AddToTreeList (&chainParams.treeList[runId*numTopologies+j], chainParams.dtree) == ERROR) + return (ERROR); + } + } + } + } + free(printString); + } + } + + /* Have all of the chains wait here, until the string has been successfully printed on proc_id = 0. */ + ierror = MPI_Barrier (MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem at chain barrier.\n", spacer); + return ERROR; + } + } +# endif + + return (NO_ERROR); +} + + +int PrintSwapInfo (void) +{ + int i, j, n, maxNumExchanges, len, maxLen, reweightingChars=0; + char *tempStr; + int tempStrSize; + + if (chainParams.numChains == 1) + return NO_ERROR; + +# if defined (MPI_ENABLED) + if (ReassembleSwapInfo() == ERROR) + return ERROR; + if (proc_id != 0) + return NO_ERROR; +# endif + + tempStrSize = TEMPSTRSIZE; + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + return (ERROR); + } + + for (n=0; n j && swapInfo[n][i][j] > maxNumExchanges) + maxNumExchanges = swapInfo[n][i][j]; + SafeSprintf (&tempStr, &tempStrSize, "%d", maxNumExchanges); + maxLen = (int) strlen(tempStr); + if (maxLen < 4) + maxLen = 4; + + reweightingChars = NO; + if ((chainParams.weightScheme[0] + chainParams.weightScheme[1]) > 0.00001) + reweightingChars = YES; + + if (chainParams.numRuns == 1) + MrBayesPrint ("\n%s Chain swap information:\n\n", spacer); + else + MrBayesPrint ("\n%s Chain swap information for run %d:\n\n", spacer, n+1); + + MrBayesPrint ("%s ", spacer); + for (j=0; jcovarionModel, "Yes")) + nReps = 2; + else + nReps = 1; + + nDigits = 1 + (int)(log10(mp->nStates * mp->nStates * nReps)); + + for (c=m->compCharStart; ccompCharStop; c=j) + { + for (i=0; i= m->compCharStop) + break; + MrBayesPrint ("%*d ",nDigits, m->termState[i][j-c]); + j++; + } + MrBayesPrint ("\n"); + } + MrBayesPrint("\n"); + } + } /* next division */ + + return NO_ERROR; +} + + +/*-------------------------------------------------- +| +| PrintTiProbs: This function is for debugging of +| tiProbs; it will print a square matrix of +| tiProbs, check row sums, and check for time +| reversibility +| +---------------------------------------------------*/ +void PrintTiProbs (CLFlt *tP, MrBFlt *bs, int nStates) +{ + int i, j; + CLFlt *tiP, sum; + + tiP = tP; + + printf ("\nTransition matrix\n"); + for (i=0; i j && stat->pair[i][j] > maxNumPartitions) + maxNumPartitions = stat->pair[i][j]; + SafeSprintf (&tempStr, &tempStrSize, "%d", (int) maxNumPartitions); + maxLen = (int) strlen(tempStr); + if (maxLen < 5) + maxLen = 5; + + if (numTopologies == 1) + { + if (chainParams.diagnStat == AVGSTDDEV) + MrBayesPrint ("%s Pairwise average standard deviation of split frequencies (upper triangle)\n", spacer); + else + MrBayesPrint ("%s Pairwise maximum standard deviation of split frequencies (upper triangle)\n", spacer); + MrBayesPrint ("%s and number of qualifying splits for each comparison (lower triangle):\n\n", spacer); + } + else + { + if (chainParams.diagnStat == AVGSTDDEV) + MrBayesPrint ("%s Pairwise average standard deviation of split frequencies in topology %d (upper triangle)\n", spacer, n); + else + MrBayesPrint ("%s Pairwise maximum standard deviation of split frequencies in topology %d (upper triangle)\n", spacer, n); + MrBayesPrint ("%s and number of qualifying splits for each comparison (lower triangle):\n\n", spacer); + } + + MrBayesPrint ("%s ", spacer); + for (j=0; jpair[i][j]) / (MrBFlt) (stat->pair[j][i])); + else /* if (chainParams.diagnStat == MAXSTDDEV) */ + SafeSprintf (&tempStr, &tempStrSize, "%1.3lf", stat->pair[i][j]); + len = (int) strlen(tempStr); + MrBayesPrint ("%*c%s ", maxLen-len+1, ' ', tempStr); + } + else if (i == j) + { + MrBayesPrint ("%*c ", maxLen+1, ' '); + } + else + { + SafeSprintf (&tempStr, &tempStrSize, "%d", (int) stat->pair[i][j]); + len = (int) strlen(tempStr); + MrBayesPrint ("%*c%s ", maxLen-len+1, ' ', tempStr); + } + } + MrBayesPrint ("\n"); + } + + MrBayesPrint ("\n"); + } + + free (tempStr); + return (NO_ERROR); +} + + +void PrintToScreen (int curGen, int startGen, time_t endingT, time_t startingT) +{ + int i, chn, nHours, nMins, nSecs; + MrBFlt timePerGen; + +# if defined (MPI_ENABLED) + int numLocalColdChains, numFirstAndLastCold; + + if (curGen == 0) + { + if (chainParams.isSS == NO && chainParams.mcmcDiagn == YES && chainParams.numRuns > 1) + { + MrBayesPrint ("\n"); + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using a relative burnin of %.1f %% for diagnostics\n", spacer, 100.0*chainParams.burninFraction); + else + MrBayesPrint ("%s Using an absolute burnin of %d samples for diagnostics\n", spacer, chainParams.chainBurnIn); + } + MrBayesPrint ("\n"); + MrBayesPrint ("%s Chain results (%d generations requested):\n\n", spacer, chainParams.numGen); + } + MrBayesPrint ("%s %4d -- ", spacer, curGen); + numLocalColdChains = numFirstAndLastCold = 0; + for (chn=0; chn chainParams.printMax) + { + if (i == chainParams.printMax +1) + { + i++; + if (numLocalColdChains > 0 && numLocalColdChains > numFirstAndLastCold) + MrBayesPrint ("[...%d more local chains...] ", numLocalChains - chainParams.printMax); + else + MrBayesPrint ("(...%d more local chains...) ", numLocalChains - chainParams.printMax); + continue; + } + else + continue; + } + if ((chainId[chn] % chainParams.numChains) == 0) + { + i++; + if (chainParams.printAll == YES) + MrBayesPrint ("[%1.3lf] ", curLnL[chn]); + else + MrBayesPrint ("[%1.3lf] .. ", curLnL[chn]); + } + else if (chainParams.printAll == YES) + { + i++; + MrBayesPrint ("(%1.3lf) ", curLnL[chn]); + } + if (chn < numLocalChains - 1 && (chainId[chn] / chainParams.numChains != chainId[chn+1] / chainParams.numChains)) + MrBayesPrint ("* "); + } + + if (numLocalColdChains == chainParams.numRuns) + MrBayesPrint ("(...%d remote chains...) ", (chainParams.numChains*chainParams.numRuns) - numLocalChains); + else + MrBayesPrint ("[...%d remote chains...] ", (chainParams.numChains*chainParams.numRuns) - numLocalChains); + + if (curGen > 0) + { + timePerGen = (MrBFlt) ((MrBFlt)(endingT-startingT)/(MrBFlt)(curGen-startGen)); + nSecs = (int)((chainParams.numGen - curGen) * timePerGen); + nHours = nSecs / 3600; + nSecs = nSecs % 3600; + nMins = nSecs / 60; + nSecs = nSecs % 60; + MrBayesPrint ("-- %d:%0.2d:%0.2d", nHours, nMins, nSecs); + } + MrBayesPrint ("\n"); + fflush (stdout); + +# else + + if (curGen == 0) + { + if (chainParams.isSS == NO && chainParams.mcmcDiagn == YES && chainParams.numRuns > 1) + { + MrBayesPrint ("\n"); + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using a relative burnin of %.1f %% for diagnostics\n", spacer, 100.0*chainParams.burninFraction); + else + MrBayesPrint ("%s Using an absolute burnin of %d samples for diagnostics\n", spacer, chainParams.chainBurnIn); + } + MrBayesPrint ("\n"); + MrBayesPrint ("%s Chain results (%d generations requested):\n\n", spacer, chainParams.numGen); + } + MrBayesPrint ("%s %5d -- ", spacer, curGen); + if (numLocalChains == 1) + MrBayesPrint ("%1.3lf ", curLnL[0]); + else + { + i = 0; + for (chn=0; chn= chainParams.printMax) + { + if (i == chainParams.printMax) + MrBayesPrint (".. "); + i++; + continue; + } + if (chainParams.numChains == 1) + { + MrBayesPrint ("%1.3lf ", curLnL[chn]); + i++; + } + else if (chainId[chn] % chainParams.numChains == 0) + { + if (chainParams.printAll == YES) + MrBayesPrint ("[%1.3lf] ", curLnL[chn]); + else + MrBayesPrint ("[%1.3lf][%d] .. ", curLnL[chn], chn % chainParams.numChains + 1); + i++; + } + else if (chainParams.printAll == YES) + { + MrBayesPrint ("(%1.3lf) ", curLnL[chn]); + i++; + } + if (chn < numLocalChains - 1 && (chainId[chn] / chainParams.numChains != chainId[chn+1] / chainParams.numChains) + && i < chainParams.printMax - 1) + MrBayesPrint ("* "); + } + } + + if (curGen > 0) + { + timePerGen = (MrBFlt) ((MrBFlt)(endingT-startingT)/(MrBFlt)(curGen-startGen)); + nSecs = (int)((chainParams.numGen - curGen) * timePerGen); + nHours = nSecs / 3600; + nSecs = nSecs % 3600; + nMins = nSecs / 60; + nSecs = nSecs % 60; + MrBayesPrint ("-- %d:%0.2d:%0.2d", nHours, nMins, nSecs); + } + MrBayesPrint ("\n"); + + fflush (stdout); + +# endif + +} + + +int PrintTree (int curGen, Param *treeParam, int chain, int showBrlens, MrBFlt clockRate) +{ + int i, tempStrSize; + char *tempStr; + Tree *tree; + TreeNode *p=NULL, *q; + Param *subParm; + + /* allocate the print string */ + printStringSize = 200; + printString = (char *)SafeMalloc((size_t)printStringSize * sizeof(char)); + if (!printString) + { + MrBayesPrint ("%s Problem allocating printString (%d)\n", spacer, printStringSize * sizeof(char)); + return (ERROR); + } + *printString = '\0'; + + tempStrSize = TEMPSTRSIZE; + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + return (ERROR); + } + + /* get tree */ + tree = GetTree(treeParam, chain, state[chain]); + + /* order the taxa */ + if (chainParams.orderTaxa == YES) + { + for (i=0; inNodes-1; i++) + { + p = tree->allDownPass[i]; + if (p->left == NULL) + { + if (p->index == localOutGroup) + p->x = -1; + else + p->x = p->index; + } + else if (p->left->x < p->right->x) + p->x = p->left->x; + else + p->x = p->right->x; + } + for (i=0; inIntNodes; i++) + { + if (p->left->x > p->right->x) + { + q = p->left; + p->left = p->right; + p->right = q; + } + } + } + + /* print the translate block information and the top of the file */ + if (curGen == 0) + { + /* print #NEXUS and translation block information */ + SafeSprintf (&tempStr, &tempStrSize, "#NEXUS\n"); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + SafeSprintf (&tempStr, &tempStrSize, "[ID: %s]\n", stamp); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + SafeSprintf (&tempStr, &tempStrSize, "[Param: tree"); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + if (numCurrentDivisions == 1) + { + SafeSprintf (&tempStr, &tempStrSize, "]\n"); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + } + else if (numCurrentDivisions == tree->nRelParts) + { + SafeSprintf (&tempStr, &tempStrSize, "{all}]\n"); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + } + else + { + SafeSprintf (&tempStr, &tempStrSize, "{%d", tree->relParts[0]+1); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + for (i=1; inRelParts; i++) + { + SafeSprintf (&tempStr, &tempStrSize, ",%d", tree->relParts[i]+1); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + } + SafeSprintf (&tempStr, &tempStrSize, "}]\n"); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + } + SafeSprintf (&tempStr, &tempStrSize, "begin trees;\n"); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + SafeSprintf (&tempStr, &tempStrSize, " translate\n"); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + if (treeParam->paramType == P_SPECIESTREE) + { + for (i=0; iparamType == P_BRLENS && treeParam->nSubParams > 0) + { + for (i=0; inSubParams; i++) + { + subParm = treeParam->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + if (SafeSprintf (&tempStr, &tempStrSize, " [&E %s]", subParm->name) == ERROR) return (ERROR); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + } + // if (subParm->paramType == P_MIXEDBRCHRATES) + // { + // id = *GetParamIntVals(subParm, chain, state[chain]); + // if (SafeSprintf (&tempStr, &tempStrSize, " [&B %s %d]", subParm->name, id) == ERROR) return (ERROR); + // } + else + if (SafeSprintf (&tempStr, &tempStrSize, " [&B %s]", subParm->name) == ERROR) return (ERROR); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + } + } + subParm = modelSettings[treeParam->relParts[0]].popSize; + if (treeParam->paramType == P_SPECIESTREE && subParm->nValues > 1) + { + if (SafeSprintf (&tempStr, &tempStrSize, " [&N %s]", subParm->name) == ERROR) return (ERROR); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + } + + /* write the tree in (extended) Newick format */ + if (tree->isRooted == YES && tree->isCalibrated == NO) + SafeSprintf (&tempStr, &tempStrSize, " = [&R] "); + else if (tree->isRooted == YES && tree->isCalibrated == YES) + SafeSprintf (&tempStr, &tempStrSize, " = [&R] [&clockrate=%s] ", MbPrintNum(clockRate)); + else /* if (tree->isRooted == NO) */ + SafeSprintf (&tempStr, &tempStrSize, " = [&U] "); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + WriteNoEvtTreeToPrintString (tree->root->left, chain, treeParam, showBrlens, tree->isRooted); + SafeSprintf (&tempStr, &tempStrSize, ";\n"); + if (AddToPrintString (tempStr) == ERROR) return(ERROR); + + free (tempStr); + return (NO_ERROR); +} + + +#if defined (MPI_ENABLED) +int ReassembleMoveInfo (void) +{ + int i, n, ierror; + double x[7], sum[7]; + MCMCMove *mv; + + for (n=0; nnAccepted[n]; + x[1] = mv->nTried[n]; + x[2] = mv->nBatches[n]; + x[3] = mv->nTotAccepted[n]; + x[4] = mv->nTotTried[n]; + x[5] = mv->lastAcceptanceRate[n]; + if (mv->moveType->Autotune != NULL) + x[6]=mv->tuningParam[n][0]; + + ierror = MPI_Allreduce (&x, &sum, 7, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + return (ERROR); + + if (proc_id == 0) + { + mv->nAccepted[n] = (int)sum[0]; + mv->nTried[n] = (int)sum[1]; + mv->nBatches[n] = (int)sum[2]; + mv->nTotAccepted[n] = (int)sum[3]; + mv->nTotTried[n] = (int)sum[4]; + mv->lastAcceptanceRate[n] = (MrBFlt)sum[5]; + if (mv->moveType->Autotune != NULL) + mv->tuningParam[n][0]=(MrBFlt)sum[6]; + } + } + } + + return (NO_ERROR); +} + + +int ReassembleParamVals (int *curId) +{ + int i, j, k, orderLen, nBrlens, lower, upper, numChainsForProc, proc, ierror, *y, *order, *id, *nEvents; + MrBFlt *x, *brlens, **position, **rateMult; + MPI_Status status; + MPI_Request request; + Tree *tree; + Param *p; + + extern MrBFlt *paramValues; + extern int paramValsRowSize; + extern int intValsRowSize; + + for (i=0; i 0) + lower = upper = numChainsForProc+1; + else + lower = upper = numChainsForProc; + + for (proc=1; proc 0) + { + y = intValues + 2*intValsRowSize*lower; + ierror = MPI_Irecv (y, intValsRowSize*2*(upper-lower), MPI_INT, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + } + } + else if (proc_id == proc) + { + x = paramValues; + ierror = MPI_Isend (x, paramValsRowSize*2*(upper-lower), MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + if (intValsRowSize > 0) + { + y = intValues; + ierror = MPI_Isend (y, intValsRowSize*2*(upper-lower), MPI_INT, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + } + } + + /* std state frequencies */ + if (stdStateFreqsRowSize > 0) + { + if (proc_id == 0) + { + x = stdStateFreqs + 2*stdStateFreqsRowSize*lower; + ierror = MPI_Irecv (x, stdStateFreqsRowSize*2*(upper-lower), MPI_DOUBLE, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + } + else if (proc_id == proc) + { + x = stdStateFreqs; + ierror = MPI_Isend (x, stdStateFreqsRowSize*2*(upper-lower), MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + } + } + + /* mcmc trees */ + brlens = (MrBFlt *) SafeCalloc (2*numLocalTaxa, sizeof(MrBFlt)); + order = (int *) SafeCalloc (2*numLocalTaxa, sizeof(int)); + for (i=lower; inIntNodes - 1; + nBrlens = tree->nNodes - 1; + if (proc_id == 0) + { + tree = GetTreeFromIndex(j,i,state[i]); + ierror = MPI_Irecv (order, orderLen, MPI_INT, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Irecv (brlens, nBrlens, MPI_DOUBLE, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + if (tree->isRooted == YES) + RetrieveRTreeWithIndices(tree, order, brlens); + else + { + RetrieveUTree(tree, order, brlens); + if (localOutGroup!=0) + MoveCalculationRoot(tree,localOutGroup); + } + /* since we only transferred some info, there are additional things we need to + consider, like constraints and calibrations; tree names are OK on proc 0 */ + InitializeTreeCalibrations(tree); + CheckSetConstraints(tree); + SetDatedNodeAges(modelSettings[tree->relParts[0]].brlens, i, state[i]); + } + else if (proc_id == proc) + { + tree = GetTreeFromIndex(j,i-lower,state[i-lower]); + if (tree->isRooted == YES) + StoreRTreeWithIndices(tree, order, brlens); + else + StoreUTree(tree, order, brlens); + ierror = MPI_Isend (order, orderLen, MPI_INT, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Isend (brlens, nBrlens, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + } + } + } + free (brlens); + free (order); + + /* CPP event parameters */ + for (i=lower; iparamType == P_CPPEVENTS) + { + if (proc_id == proc) + { + /* get pointers */ + nEvents = p->nEvents[2*(i-lower)+state[i-lower]]; + position = p->position[2*(i-lower)+state[i-lower]]; + rateMult = p->rateMult[2*(i-lower)+state[i-lower]]; + + /* send number of events */ + ierror = MPI_Isend (nEvents, 2*numLocalTaxa, MPI_INT, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + + /* send events and clear pointers */ + for (k=0; k<2*numLocalTaxa; k++) + { + if (nEvents[k] > 0) + { + ierror = MPI_Isend (position[k], nEvents[k], MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + + ierror = MPI_Isend (rateMult[k], nEvents[k], MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + + free(position[k]); + free(rateMult[k]); + position[k] = NULL; + rateMult[k] = NULL; + nEvents[k] = 0; + } + } + } + else if (proc_id == 0) + { + /* find pointers */ + nEvents = p->nEvents[2*i]; + position = p->position[2*i]; + rateMult = p->rateMult[2*i]; + + /* clear previous events */ + for (k=0; k<2*numLocalTaxa; k++) + { + if (nEvents[k] > 0) + { + free (position[k]); + free (rateMult[k]); + position[k] = NULL; + rateMult[k] = NULL; + nEvents[k] = 0; + } + } + + /* receive events */ + ierror = MPI_Irecv (nEvents, 2*numLocalTaxa, MPI_INT, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + + for (k=0; k<2*numLocalTaxa; k++) + { + if (nEvents[k] > 0) + { + position[k] = (MrBFlt *) SafeCalloc (nEvents[k], sizeof(MrBFlt)); + rateMult[k] = (MrBFlt *) SafeCalloc (nEvents[k], sizeof(MrBFlt)); + + ierror = MPI_Irecv (position[k], nEvents[k], MPI_DOUBLE, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + + ierror = MPI_Irecv (rateMult[k], nEvents[k], MPI_DOUBLE, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + } + } + } + } + } + } + } + + return (NO_ERROR); +} + + +int ReassembleSwapInfo (void) +{ + int i, j, n, x, sum, ierror; + + for (n=0; nmoveType->numTuningParams > 0) /* we have the tuning parameter of interest */ + x[k] = usedMoves[k]->tuningParam[i][0]; + else + x[k] = 0.0; + } + + ierror = MPI_Allreduce (x, sum, numUsedMoves, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + { + free (x); + return (ERROR); + } + + if (proc_id == 0) + { + for (k=0; kmoveType->numTuningParams > 0) + usedMoves[k]->tuningParam[i][0] = sum[k]; + } + } + } + + free (x); + return (NO_ERROR); +} + + +void RedistributeMoveInfo (void) +{ + int i, j, k; + MCMCMove *mv; + + /* Leave if not processor 0, because then we already have the necessary info since + it was not deleted in ReassembleMoveInfo */ + if (proc_id != 0) + return; + + /* If we are processor 0, simply delete the unnecessary information */ + for (i=0; inAccepted[i] = 0; + mv->nTried[i] = 0; + mv->nBatches[i] = 0; + mv->nTotAccepted[i] = 0; + mv->nTotTried[i] = 0; + mv->lastAcceptanceRate[i] = 0; + if (mv->moveType->Autotune != NULL) + mv->tuningParam[i][0]=0.0; + } + } + } +} + + +int RedistributeParamVals (void) +{ + int i, j, k, orderLen, nBrlens, lower, upper, numChainsForProc, proc, ierror, *y, *order, *nEvents; + MrBFlt *x, *brlens, **position, **rateMult; + MPI_Status status; + MPI_Request request; + Tree *tree; + Param *p; + + extern MrBFlt *paramValues; + extern int paramValsRowSize; + extern int intValsRowSize; + + numChainsForProc = numGlobalChains / num_procs; + if (numGlobalChains % num_procs > 0) + lower = upper = numChainsForProc+1; + else + lower = upper = numChainsForProc; + + for (proc=1; proc 0) + { + y = intValues + 2*intValsRowSize*lower; + ierror = MPI_Isend (y, intValsRowSize*2*(upper-lower), MPI_INT, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + } + } + else if (proc_id == proc) + { + x = paramValues; + ierror = MPI_Irecv (x, paramValsRowSize*2*(upper-lower), MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + if (intValsRowSize > 0) + { + y = intValues; + ierror = MPI_Irecv (y, intValsRowSize*2*(upper-lower), MPI_INT, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + } + } + + /* mcmc trees */ + brlens = (MrBFlt *) SafeCalloc (2*numLocalTaxa, sizeof(MrBFlt)); + order = (int *) SafeCalloc (2*numLocalTaxa, sizeof(int)); + for (i=lower; inIntNodes - 1; + nBrlens = tree->nNodes - 1; + if (proc_id == 0) + { + tree = GetTreeFromIndex(j,i,0); + if (tree->isRooted == YES) + StoreRTreeWithIndices(tree, order, brlens); + else + StoreUTree(tree, order, brlens); + ierror = MPI_Isend (order, orderLen, MPI_INT, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Isend (brlens, nBrlens, MPI_DOUBLE, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + } + else if (proc_id == proc) + { + tree = GetTreeFromIndex(j,i-lower,0); + ierror = MPI_Irecv (order, orderLen, MPI_INT, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Irecv (brlens, nBrlens, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + { + return (ERROR); + } + if (tree->isRooted == YES) + RetrieveRTreeWithIndices(tree, order, brlens); + else + { + RetrieveUTree(tree, order, brlens); + if (localOutGroup != 0) + MoveCalculationRoot(tree,localOutGroup); + } + /* since we only transferred some info, there are additional things we need to + consider, like names, constraints and calibrations */ + InitializeTreeCalibrations(tree); + CheckSetConstraints(tree); + SetDatedNodeAges(modelSettings[tree->relParts[0]].brlens, i-lower, 0); + strcpy(tree->name, GetTreeFromIndex(j, i, 0)->name); + tree = GetTreeFromIndex(j,i-lower,1); + strcpy(tree->name, GetTreeFromIndex(j, i, 0)->name); + } + } + } + free (brlens); + free (order); + + /* CPP relaxed clock parameters */ + for (i=lower; iparamType == P_CPPEVENTS) + { + if (proc_id == 0) + { + /* get pointers */ + nEvents = p->nEvents[2*i]; + position = p->position[2*i]; + rateMult = p->rateMult[2*i]; + + /* send number of events */ + ierror = MPI_Isend (nEvents, 2*numLocalTaxa, MPI_INT, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + + /* send events and clear pointers */ + for (k=0; k<2*numLocalTaxa; k++) + { + if (nEvents[k] > 0) + { + ierror = MPI_Isend (position[k], nEvents[k], MPI_DOUBLE, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + + ierror = MPI_Isend (rateMult[k], nEvents[k], MPI_DOUBLE, proc, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + + free(position[k]); + free(rateMult[k]); + position[k] = NULL; + rateMult[k] = NULL; + nEvents[k] = 0; + } + } + } + else if (proc_id == proc) + { + /* find pointers */ + nEvents = p->nEvents[2*(i-lower)]; + position = p->position[2*(i-lower)]; + rateMult = p->rateMult[2*(i-lower)]; + + /* clear previous events */ + for (k=0; k<2*numLocalTaxa; k++) + { + if (nEvents[k] > 0) + { + free (position[k]); + free (rateMult[k]); + position[k] = NULL; + rateMult[k] = NULL; + nEvents[k] = 0; + } + } + + /* receive events */ + ierror = MPI_Irecv (nEvents, 2*numLocalTaxa, MPI_INT, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + for (k=0; k<2*numLocalTaxa; k++) + { + if (nEvents[k] > 0) + { + position[k] = (MrBFlt *) SafeCalloc (nEvents[k], sizeof(MrBFlt)); + rateMult[k] = (MrBFlt *) SafeCalloc (nEvents[k], sizeof(MrBFlt)); + + ierror = MPI_Irecv (position[k], nEvents[k], MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + + ierror = MPI_Irecv (rateMult[k], nEvents[k], MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &request); + if (ierror != MPI_SUCCESS) + return (ERROR); + ierror = MPI_Waitall (1, &request, &status); + if (ierror != MPI_SUCCESS) + return (ERROR); + } + } + } + } + } + } + + /* update evolutionary branch lengths or rates (because node indices have changed) */ + if (proc_id == proc) + { + for (i=0; iparamType == P_CPPEVENTS) + { + tree = GetTree(p, i, 0); + UpdateCppEvolLengths (p, tree->root->left, i); + } + else if (p->paramType == P_TK02BRANCHRATES || (p->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(p, i, 0) == RCL_TK02)) + { + tree = GetTree (p, i, 0); + UpdateTK02EvolLengths (p, tree, i); + } + else if (p->paramType == P_IGRBRANCHRATES || (p->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(p, i, 0) == RCL_IGR)) + { + tree = GetTree(p, i, 0); + UpdateIgrBrachLengths (p, tree, i); + } + } + } + } + } + + return (NO_ERROR); +} + + +int RedistributeTuningParams (void) +{ + int i, j, k, lower, ierror; + MrBFlt *x, *sum; + + x = (MrBFlt *) SafeCalloc (2*numUsedMoves, sizeof(MrBFlt)); + sum = x + numUsedMoves; + + lower = numGlobalChains / num_procs; + if (numGlobalChains % num_procs != 0) + lower++; + + if (proc_id != 0) + { + for (i=0; imoveType->numTuningParams > 0) + usedMoves[k]->tuningParam[i][0] = 0.0; + } + } + } + + for (i=lower; imoveType->numTuningParams > 0) /* we have the tuning parameter of interest */ + { + x[k] = usedMoves[k]->tuningParam[i][0]; + usedMoves[k]->tuningParam[i][0]=0.0; + } + else + x[k] = 0.0; + } + + ierror = MPI_Allreduce (x, sum, numUsedMoves, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + { + free (x); + return (ERROR); + } + + if (j != numLocalChains) /* we have the chain of interest */ + { + for (k=0; kmoveType->numTuningParams > 0) + usedMoves[k]->tuningParam[i][0] = sum[k]; + } + } + } + + free (x); + return (NO_ERROR); +} + +#endif + + +/* RemovePartition: Remove a partition from the tree keeping track of partition frequencies */ +int RemovePartition (PFNODE *r, BitsLong *p, int runId) +{ + int i, comp; + + if (r == NULL) + { + return (ERROR); + } + else + { + for (i=0; ipartition[i] != p[i]) + break; + } + + if (i == nLongsNeeded) + comp = 0; + else if (r->partition[i] < p[i]) + comp = -1; + else + comp = 1; + + if (comp == 0) /* match */ + { + if (r->count[runId] == 0) + return ERROR; + else + r->count[runId]--; + } + else if (comp < 0) /* greater than -> into left subtree */ + { + if ((RemovePartition (r->left, p, runId)) == ERROR) + return ERROR; + } + else + { + /* less than -> into right subtree */ + if ((RemovePartition (r->right, p, runId)) == ERROR) + return ERROR; + } + } + + return (NO_ERROR); +} + + +/* RemoveTreeFromPartitionCounters: Break a tree into partitions and remove those from counters */ +int RemoveTreeFromPartitionCounters (Tree *tree, int treeId, int runId) +{ + int i, j, nTaxa; + TreeNode *p; + + if (tree->isRooted == YES) + nTaxa = tree->nNodes - tree->nIntNodes - 1; + else + nTaxa = tree->nNodes - tree->nIntNodes; + + for (i=0; inIntNodes-1; i++) + { + p = tree->intDownPass[i]; + assert (p->index >= tree->nNodes - tree->nIntNodes - (tree->isRooted == YES ? 1 : 0)); + for (j=0; jindex][j] = partition[p->left->index][j] | partition[p->right->index][j]; + } + + if ((RemovePartition (partFreqTreeRoot[treeId], partition[p->index], runId)) == ERROR) + { + MrBayesPrint ("%s Could not remove partition %d in RemoveTreeFromPartitionCounters\n", spacer, p->index); + ShowParts(stdout,partition[p->index],numLocalTaxa); + return ERROR; + } + } + + return NO_ERROR; +} + + +/* RemoveTreeSamples: Remove tree samples from partition counters */ +int RemoveTreeSamples (int from, int to) +{ + int i, j, k, longestLine, line; + char c, *s, *lineBuf=0; + FILE *fp; + Tree *t; + TreeList *treeList; + char *tempStr; + int tempStrSize = TEMPSTRSIZE; + +# if defined (MPI_ENABLED) + if (proc_id != 0) + return (NO_ERROR); +# endif + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + return (ERROR); + } + + if (chainParams.saveTrees == YES) + { + for (i=0; itree[0]->isRooted == YES) + t->isRooted = YES; + else + t->isRooted = NO; + + for (j=0; j longestLine) + longestLine = line; + + while ((c = fgetc(fp)) == '\r' || c == '\n') + ; + } + + lineBuf = (char *) SafeCalloc (longestLine + 10, sizeof (char)); + if (!lineBuf) + { + SafeFclose (&fp); + free (tempStr); + return (ERROR); + } + fsetpos (fp, &chainParams.tFilePos[j*numTopologies+i]); + /* The fsetpos and fgetpos pair are affected by writing to the file, + at least on Windows systems. The effect is to put the subsequent + fsetpos back a few positions. The following code will deal with this + problem without affecting systems where this does not happen. */ + do { c = fgetc(fp); + } while (c != 't'); + + for (k=from; k<=to; k++) + { + if (fgets (lineBuf, longestLine + 5, fp) == NULL) + { + free (tempStr); + free (lineBuf); + return ERROR; + } + + s = strtok (lineBuf, " "); + for (s = strtok (NULL, ";"); *s != '('; s++) + ; + + StripComments (s); + if (ResetTopology (t, s) == ERROR) + { + SafeFclose (&fp); + free (tempStr); + free (lineBuf); + return (ERROR); + } + + if (RemoveTreeFromPartitionCounters (t, i, j) == ERROR) + { + SafeFclose (&fp); + free (tempStr); + free (lineBuf); + return (ERROR); + } + } + fgetpos (fp, &chainParams.tFilePos[j*numTopologies+i]); + free (lineBuf); + SafeFclose (&fp); + } + } + } + + /* remove unnecessary nodes from the tree holding partition counters */ + for (i=0; i 1 && chainParams.numRuns == 1) + sprintf (fileName, "%s.tree%d.t", localFileName, i+1); + else if (numTrees == 1 && chainParams.numRuns > 1) + sprintf (fileName, "%s.run%d.t", localFileName, n+1); + else + sprintf (fileName, "%s.tree%d.run%d.t", localFileName, i+1, n+1); + + if ((fpTree[n][i] = OpenTextFileA (fileName)) == NULL) + return (ERROR); + } + } + + /* Reopen the .mcmc file */ + if (chainParams.mcmcDiagn == YES) + { + sprintf (fileName, "%s.mcmc", localFileName); + + if ((fpMcmc = OpenTextFileA (fileName)) == NULL) + return (ERROR); + } + +# if defined (PRINT_DUMP) + for (n=0; nnValues; k++) + { + toVals[k] = fromVals[k]; + fromVals[k] = swapVals[k]; + } + toVals = GetParamSubVals (p, toChn, 0); + swapVals = GetParamSubVals (p, toChn, 1); + fromVals = GetParamSubVals (p, fromChn, state[fromChn]); + for (k=0; knSubValues; k++) + { + toVals[k] = fromVals[k]; + fromVals[k] = swapVals[k]; + } + if (p->nStdStateFreqs > 0) + { + toVals = GetParamStdStateFreqs (p, toChn, 0); + swapVals = GetParamStdStateFreqs (p, toChn, 1); + fromVals = GetParamStdStateFreqs (p, fromChn, state[fromChn]); + for (k=0; knStdStateFreqs; k++) + { + toVals[k] = fromVals[k]; + fromVals[k] = swapVals[k]; + } + } + } + + /* mcmc trees */ + for (j=0; jparamType == P_CPPEVENTS) + { + to = p->nEvents[2*toChn]; + swap = p->nEvents[2*toChn+1]; + from = p->nEvents[2*fromChn+state[fromChn]]; + toPosition = p->position[2*toChn]; + swapPosition = p->position[2*toChn+1]; + fromPosition = p->position[2*fromChn+state[fromChn]]; + toRateMult = p->rateMult[2*toChn]; + swapRateMult = p->rateMult[2*toChn+1]; + fromRateMult = p->rateMult[2*fromChn+state[fromChn]]; + for (k=0; k<2*numLocalTaxa; k++) + { + if (from[k] > 0) + { + toPosition[k] = (MrBFlt *) SafeRealloc ((void *)toPosition[k], from[k]*sizeof (MrBFlt)); + toRateMult[k] = (MrBFlt *) SafeRealloc ((void *)toRateMult[k], from[k]*sizeof (MrBFlt)); + for (k1=0; k1 0) + { + free (toPosition[k]); + toPosition[k] = NULL; + free (toRateMult[k]); + toRateMult[k] = NULL; + } + to[k] = from[k]; + if (swap[k] > 0) + { + fromPosition[k] = (MrBFlt *) SafeRealloc ((void *)fromPosition[k], swap[k]*sizeof (MrBFlt)); + fromRateMult[k] = (MrBFlt *) SafeRealloc ((void *)fromRateMult[k], swap[k]*sizeof (MrBFlt)); + for (k1=0; k1 0) + { + free (fromPosition[k]); + fromPosition[k] = NULL; + free (fromRateMult[k]); + fromRateMult[k] = NULL; + } + from[k] = swap[k]; + } + } + } + /* reset state of chain */ + state[toChn] = 0; + + /* make sure that the id is correct for the from chain */ + tempId = curId[toChn]; + curId[fromChn] = curId[toChn]; + curId[toChn] = tempId; + } + + free (curId); +} + + +/* ResetFlips: Reset flipped cond likes etc after rejection */ +void ResetFlips (int chain) +{ + int d, i; + ModelInfo *m; + TreeNode *p; + Tree *tree; +#if defined (BEAGLE_ENABLED) + int *isScalerNode=NULL; +#endif + + for (d=0; duseBeagle == YES) + isScalerNode = m->isScalerNode[chain]; +#endif + if (m->upDateCl != YES) + continue; + +#if defined (BEAGLE_ENABLED) + if (m->useBeagle == NO || + beagleScalingScheme == MB_BEAGLE_SCALE_ALWAYS || + m->rescaleBeagleAll == YES) + { + FlipSiteScalerSpace (m, chain); + if (m->useBeagle == YES && m->rescaleBeagleAll == YES) + m->rescaleFreq[chain] = m->rescaleFreqOld; + } +#else + FlipSiteScalerSpace (m, chain); +#endif + + + if (m->upDateCijk == YES && m->nCijkParts > 0) + FlipCijkSpace (m, chain); + + /* cycle over tree */ + tree = GetTree (m->brlens, chain, state[chain]); + for (i=0; inNodes; i++) + { + p = tree->allDownPass[i]; + if (p->upDateTi == YES) + FlipTiProbsSpace (m, chain, p->index); + if (p->right != NULL) /* do not flip terminals in case these flags are inappropriately set by moves */ + { + if (p->upDateCl == YES) + { + FlipCondLikeSpace (m, chain, p->index); +#if defined (BEAGLE_ENABLED) + if (m->useBeagle == NO || + beagleScalingScheme == MB_BEAGLE_SCALE_ALWAYS || + (m->rescaleBeagleAll == YES && isScalerNode[p->index] == YES)) + FlipNodeScalerSpace (m, chain, p->index); +#else + FlipNodeScalerSpace (m, chain, p->index); +#endif + } +#if defined (BEAGLE_ENABLED) + else if (m->rescaleBeagleAll == YES) + { + FlipCondLikeSpace (m, chain, p->index); + if (isScalerNode[p->index] == YES) + FlipNodeScalerSpace (m, chain, p->index); + } +#endif + } + } + + /* division flag and tree node flags are reset when trees are copied */ + } +} + + +/*------------------------------------------------------------------- +| +| ResetScalersPartition: reset scaler nodes of the given tree by appropriately setting isScalerNode array. +| @param isScalerNode is an array which gets set with information about scaler node. +| For each internal node isScalerNode[node->index] is set to YES if it has to be scaler node. +| Note: Only internal nodes can become scaler nodes thus isScalerNode is set only for elemnts in interval [numLocalTaxa, numLocalTaxa+t->nIntNodes] +| +| @param rescaleFreq effectively represent gaps between rescaling, higher number means more sparse choice of rescaling nodes +| +--------------------------------------------------------------------*/ +int ResetScalersPartition (int *isScalerNode, Tree* t, unsigned rescaleFreq) +{ + int n; + TreeNode *p; + + /* set the node depth value of terminal nodes to zero; reset scalerNode */ + for (n=0; nnNodes; n++) + { + p = t->allDownPass[n]; + if (p->left == NULL) + p->x = 0; + } + + /* loop over interior nodes */ + for (n=0; nnIntNodes; n++) + { + p = t->intDownPass[n]; + assert (((p->index - numLocalTaxa) >= 0) && ((p->index - numLocalTaxa) < t->nIntNodes)); + p->x = p->left->x + p->right->x + 1; + + if (p->x > 2 * (int)rescaleFreq) + { + assert (p->left->left != NULL && p->right->left != NULL); + isScalerNode[p->left->index] = YES; + p->left->x = 0; + isScalerNode[p->right->index] = YES; + p->right->x = 0; + p->x = 1; + } + else if (p->x > (int)rescaleFreq) + { + if (p->left->x > p->right->x) + { + assert (p->left->left != NULL); + isScalerNode[p->left->index] = YES; + p->left->x = 0; + } + else + { + assert (p->right->left != NULL); + isScalerNode[p->right->index] = YES; + p->right->x = 0; + } + p->x = p->left->x + p->right->x + 1; + } + else + isScalerNode[p->index] = NO; + } + + return NO_ERROR; +} + + +/*------------------------------------------------------------------- +| +| ResetScalers: reset scaler nodes of all trees of all chains +| This scheme ensures that minimally RESCALE_FREQ +| unscaled interior nodes occur before rescaling is done +| +--------------------------------------------------------------------*/ +int ResetScalers (void) +{ + int i, n, chn; + Tree *t; + TreeNode *p; + +#if defined (DEBUG_NOSCALING) + return (NO_ERROR); +#endif + + for (chn=0; chnnNodes; n++) + { + p = t->allDownPass[n]; + p->scalerNode = NO; + if (p->left == NULL) + p->x = 0; + } + + /* loop over interior nodes */ + for (n=0; nnIntNodes; n++) + { + p = t->intDownPass[n]; + + p->x = p->left->x + p->right->x + 1; + + if (p->x > 2 * RESCALE_FREQ) + { + assert (p->left->left != NULL && p->right->left != NULL); + p->left->scalerNode = YES; + p->left->x = 0; + p->right->scalerNode = YES; + p->right->x = 0; + p->x = 1; + } + else if (p->x > RESCALE_FREQ) + { + if (p->left->x > p->right->x) + { + assert (p->left->left != NULL); + p->left->scalerNode = YES; + p->left->x = 0; + } + else + { + assert (p->right->left != NULL); + p->right->scalerNode = YES; + p->right->x = 0; + } + p->x = p->left->x + p->right->x + 1; + } + else + p->scalerNode = NO; + } + } + } + + return NO_ERROR; +} + + +void ResetSiteScalers (ModelInfo *m, int chain) +{ + int c; + CLFlt *lnScaler; + +#if defined (BEAGLE_ENABLED) + if (m->useBeagle == YES) + { + beagleResetScaleFactors(m->beagleInstance, m->siteScalerIndex[chain]); + return; + } +#endif + lnScaler = m->scalers[m->siteScalerIndex[chain]]; + for (c=0; cnumChars; c++) + lnScaler[c] = 0.0; +} + + +/*---------------------------------------------------------------------- +| +| ReusePreviousResults: Save old .p, .t, .ss and .mcmc files with ~ extension, +| then prepare new print files with the relevant old values added in +| The number of samples is returned in numSamples +| +------------------------------------------------------------------------*/ +int ReusePreviousResults (int *numSamples, int steps) +{ + int i, n; + char localFileName[100], fileName[220], bkupName[220]; + + (*numSamples) = 0; + +# if defined (MPI_ENABLED) + if (proc_id != 0) + return (NO_ERROR); +# endif + + /* Allocate space for file pointers */ + if (memAllocs[ALLOC_FILEPOINTERS] == YES) + { + MrBayesPrint ("%s File pointers already allocated in ReusePreviousResults\n", spacer); + return ERROR; + } + fpMcmc = NULL; + fpSS = NULL; + fpParm = NULL; + fpTree = NULL; + fpParm = (FILE **) SafeCalloc (chainParams.numRuns, sizeof (FILE *)); + if (fpParm == NULL) + { + MrBayesPrint ("%s Could not allocate fpParm in ReusePreviousResults\n", spacer); + return ERROR; + } + memAllocs[ALLOC_FILEPOINTERS] = YES; + fpTree = (FILE ***) SafeCalloc (chainParams.numRuns, sizeof (FILE **)); + if (fpTree == NULL) + { + MrBayesPrint ("%s Could not allocate fpTree in ReusePreviousResults\n", spacer); + return ERROR; + } + fpTree[0] = (FILE **) SafeCalloc (numTrees*chainParams.numRuns, sizeof (FILE *)); + if (fpTree[0] == NULL) + { + MrBayesPrint ("%s Could not allocate fpTree[0] in ReusePreviousResults\n", spacer); + return ERROR; + } + for (i=1; i 1 && chainParams.numRuns == 1) + sprintf (fileName, "%s%s.tree%d.t", workingDir, localFileName, i+1); + else if (numTrees == 1 && chainParams.numRuns > 1) + sprintf (fileName, "%s%s.run%d.t", workingDir, localFileName, n+1); + else + sprintf (fileName, "%s%s.tree%d.run%d.t", workingDir, localFileName, i+1, n+1); + strcpy(bkupName,fileName); + strcat(bkupName,"~"); + remove(bkupName); + if (rename(fileName,bkupName) != 0) + { + MrBayesPrint ("%s Could not rename file %s\n", spacer, fileName); + return ERROR; + } + if ((fpTree[n][i] = OpenNewMBPrintFile (fileName+strlen(workingDir))) == NULL) + return (ERROR); + else if (CopyTreeResults(fpTree[n][i],bkupName+strlen(workingDir),numPreviousGen,numSamples) == ERROR) + return (ERROR); + } + } + + /* Store old and prepare new .ss file */ + if (chainParams.isSS == YES) + { + sprintf (fileName, "%s%s.ss", workingDir, chainParams.chainFileName); + strcpy(bkupName,fileName); + strcat(bkupName,"~"); + remove(bkupName); + if (rename(fileName,bkupName) != 0) + { + MrBayesPrint ("%s Could not rename file %s\n", spacer, fileName); + return ERROR; + } + if ((fpSS = OpenNewMBPrintFile (fileName+strlen(workingDir))) == NULL) + return (ERROR); + else if (CopyProcessSsFile(fpSS,bkupName+strlen(workingDir),steps,marginalLnLSS,splitfreqSS)==ERROR) + return (ERROR); + } + + /* Store old and prepare new .mcmc file */ + if (chainParams.mcmcDiagn == YES) + { + sprintf (fileName, "%s%s.mcmc", workingDir, chainParams.chainFileName); + strcpy(bkupName,fileName); + strcat(bkupName,"~"); + remove(bkupName); + if (rename(fileName,bkupName) != 0) + { + MrBayesPrint ("%s Could not rename file %s\n", spacer, fileName); + return ERROR; + } + if ((fpMcmc = OpenNewMBPrintFile (fileName+strlen(workingDir))) == NULL) + return (ERROR); + else if (CopyResults(fpMcmc,bkupName+strlen(workingDir),numPreviousGen)==ERROR) + return (ERROR); + } + +# if defined (PRINT_DUMP) + fpDump = (FILE **) SafeCalloc (chainParams.numRuns, sizeof (FILE *)); + + for (n=0; nscalerNode, used in old style rescaling; +# ifdef DEBUG_BEAGLE + int beagleScalingSchemeOld; +# endif + ModelInfo *m; + ResetScalersNeeded = NO; + + for (i=0; iuseBeagle == NO || beagleScalingScheme == MB_BEAGLE_SCALE_ALWAYS) + { + ResetScalersNeeded =YES; + break; + } + } +# endif + +# if defined (MPI_ENABLED) + int ierror, sumErrors; + MrBFlt best, sum=0.0; + MPI_Status status; +# endif +# if defined (DEBUG_RUNCHAIN) + ModelInfo *m; +# endif + + /* set nErrors to 0 */ + nErrors = 0; + if (numLocalTaxa < 4) + { + for (i=0; iisRooted == NO) + break; + if (i < numTrees && numLocalTaxa < 4) + { + MrBayesPrint ("%s There must be at least four taxa in the analysis\n", spacer); + return (ERROR); + } + else if (i == numTrees && numLocalTaxa < 3) + { + MrBayesPrint ("%s There must be at least three taxa in the analysis\n", spacer); + return (ERROR); + } + } + + /* allocate some memory for the chains */ + if (memAllocs[ALLOC_CURLNL] == YES) + { + MrBayesPrint ("%s curLnL is already allocated\n", spacer); + nErrors++; + } + else if ((curLnL = (MrBFlt *)SafeMalloc((size_t)numLocalChains * sizeof(MrBFlt))) == NULL) + { + MrBayesPrint ("%s Problem allocating curLnL (%d)\n", spacer, numLocalChains * sizeof(MrBFlt)); + nErrors++; + } + else if ((maxLnL0 = (MrBFlt *) SafeCalloc ((size_t)(chainParams.numRuns) * (size_t)(chainParams.numChains), sizeof(MrBFlt))) == NULL) + { + MrBayesPrint ("%s Problem allocating maxLnL0\n", spacer, numLocalChains * sizeof(MrBFlt)); + free (curLnL); + nErrors++; + } + else + memAllocs[ALLOC_CURLNL] = YES; +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Memory allocation error on at least one processor\n", spacer); + return ERROR; + } +# else + if (nErrors > 0) + return ERROR; +# endif + + if (memAllocs[ALLOC_CURLNPR] == YES) + { + MrBayesPrint ("%s curLnPr is already allocated\n", spacer); + nErrors++; + } + else if ((curLnPr = (MrBFlt *)SafeMalloc((size_t)numLocalChains * sizeof(MrBFlt))) == NULL) + { + MrBayesPrint ("%s Problem allocating curLnPr (%d)\n", spacer, numLocalChains * sizeof(MrBFlt)); + nErrors++; + } + else + memAllocs[ALLOC_CURLNPR] = YES; +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Memory allocation error on at least one processor\n", spacer); + return ERROR; + } +# else + if (nErrors > 0) + return ERROR; +# endif + + if (memAllocs[ALLOC_CHAINID] == YES) + { + MrBayesPrint ("%s chainId is already allocated\n", spacer); + nErrors++; + } + else if ((chainId = (int *)SafeMalloc((size_t)numLocalChains * sizeof(int))) == NULL) + { + MrBayesPrint ("%s Problem allocating chainId (%d)\n", spacer, numLocalChains * sizeof(int)); + nErrors++; + } + else + memAllocs[ALLOC_CHAINID] = YES; +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Memory allocation error on at least one processor\n", spacer); + return ERROR; + } +# else + if (nErrors > 0) + return ERROR; +# endif + + if (memAllocs[ALLOC_SWAPINFO] == YES) + { + MrBayesPrint ("%s swapInfo is already allocated\n", spacer); + nErrors++; + } + else if ((swapInfo = (int ***) SafeCalloc (chainParams.numRuns, sizeof (int **))) == NULL) + { + MrBayesPrint ("%s Problem allocating swapInfo\n", spacer); + nErrors++; + } + else + { + for (n=0; n 0) + { + MrBayesPrint ("%s Memory allocation error on at least one processor\n", spacer); + return ERROR; + } +# else + if (nErrors > 0) + return ERROR; +# endif + + for (n=0; n 1) + { + if (SetUpPartitionCounters () == ERROR) + nErrors++; +# if defined (MPI_ENABLED) + if (proc_id == 0) + { +# endif + if (chainParams.relativeBurnin == YES) + { + /* we have to remove trees later on */ + if (chainParams.saveTrees == YES) + { + if (chainParams.treeList) + nErrors++; + else + { + chainParams.treeList = (TreeList *) SafeCalloc (chainParams.numRuns*numTopologies, sizeof (TreeList)); + if (!chainParams.treeList) + nErrors++; + } + if (nErrors == 0) + memAllocs[ALLOC_TREELIST] = YES; + if (noWarn == YES) + chainParams.stopTreeGen = (int) (chainParams.numGen * chainParams.burninFraction); + else + chainParams.stopTreeGen = chainParams.numGen; + } + else /* if (chainParams.saveTrees == NO) */ + { + chainParams.tFilePos = (fpos_t*) SafeRealloc ((void *)chainParams.tFilePos, chainParams.numRuns*numTopologies*sizeof (fpos_t)); + if (!chainParams.tFilePos) + nErrors++; + else + memAllocs[ALLOC_TFILEPOS] = YES; + } + } +# if defined (MPI_ENABLED) + } +# endif +# if defined (MPI_ENABLED) + if (proc_id == 0) + { + if ((chainParams.stat = (STATS *) SafeCalloc (numTopologies, sizeof (STATS))) == NULL) + nErrors++; + else + { + memAllocs[ALLOC_STATS] = YES; + for (i=0; i 0) + { + MrBayesPrint ("%s Memory allocation error on at least one processor\n", spacer); + return ERROR; + } +# else + if ((chainParams.stat = (STATS *) SafeCalloc (numTopologies, sizeof (STATS))) == NULL) + return ERROR; + else + { + memAllocs[ALLOC_STATS] = YES; + for (i=0; i 2) + MrBayesPrint ("%s There are %d more chains on other processor(s)\n\n", spacer, numGlobalChains - numLocalChains); + else if (num_procs==2) + MrBayesPrint ("%s There are %d more chains on the other processor\n\n", spacer, numGlobalChains - numLocalChains); +# endif + + /* All steps are assumed to have the same length. */ + if (chainParams.isSS == YES) + { + numGenInStepSS = (chainParams.numGen - chainParams.burninSS*chainParams.sampleFreq)/ chainParams.numStepsSS; + numGenInStepSS = chainParams.sampleFreq*(numGenInStepSS/chainParams.sampleFreq); /*make muliple of chainParams.sampleFreq*/ + numGenOld = chainParams.numGen; + chainParams.numGen = (chainParams.burninSS * chainParams.sampleFreq + chainParams.numStepsSS*numGenInStepSS) ; + if (stepRelativeBurninSS==YES) + numGenInStepBurninSS = ((int)(numGenInStepSS*chainParams.burninFraction / chainParams.sampleFreq))*chainParams.sampleFreq; + else + numGenInStepBurninSS = chainParams.chainBurnIn * chainParams.sampleFreq; + MrBayesPrint ("\n"); + MrBayesPrint ("%s Starting stepping-stone sampling to estimate marginal likelihood. \n", spacer); + MrBayesPrint ("%s %d steps will be used with %d generations (%d samples) within each step. \n", spacer, chainParams.numStepsSS, numGenInStepSS, numGenInStepSS/chainParams.sampleFreq); + MrBayesPrint ("%s Total of %d generations (%d samples) will be collected while first \n", spacer, chainParams.numGen, chainParams.numGen/chainParams.sampleFreq); + MrBayesPrint ("%s %d generations (%d samples) will be discarded as initial burnin. \n", spacer, chainParams.burninSS*chainParams.sampleFreq, chainParams.burninSS); + MrBayesPrint ("%s Additionally at the begining of each step %d generations (%d samples) \n", spacer, numGenInStepBurninSS, numGenInStepBurninSS/chainParams.sampleFreq); + MrBayesPrint ("%s will be discarded as burnin. \n", spacer); + if (chainParams.startFromPriorSS==YES) + MrBayesPrint ("%s Sampling from prior to posterior, i.e. first step samples from prior. \n", spacer); + else + { + MrBayesPrint ("%s Sampling from posterior to prior, i.e. first step samples from close to \n", spacer); + MrBayesPrint ("%s posterior. \n", spacer); + } + if (numGenOld != chainParams.numGen) + { + MrBayesPrint ("%s NOTE: Number of generation of each step is reduced to the closest multi-\n", spacer); + MrBayesPrint ("%s ple of sampling frequency. That is why, in total it will be taken %d \n", spacer, chainParams.numGen); + MrBayesPrint ("%s generations instead of requested %d. \n", spacer, numGenOld); + } + MrBayesPrint ("\n"); + if ((numGenInStepSS-numGenInStepBurninSS)/chainParams.sampleFreq < 1) + { + MrBayesPrint ("%s There is less then one sample in each step of stepping-stone sampling. \n", spacer); + MrBayesPrint ("%s Please adjust burnin, nuber of generations, sampling frequency or \n", spacer); + MrBayesPrint ("%s numnber of step in order to allow at least one sample per step. \n", spacer); + return ERROR; /*All MPI run will return here since all of them have the same values*/ + } + if (numPreviousGen==0 || numPreviousGen < chainParams.burninSS * chainParams.sampleFreq) + { + lastStepEndSS = chainParams.burninSS * chainParams.sampleFreq; + stepIndexSS = chainParams.numStepsSS-1; + if (numPreviousGen != 0) + removeTo=(numPreviousGen/chainParams.sampleFreq)+1; + if (chainParams.startFromPriorSS==YES) + { + // powerSS = BetaQuantile (chainParams.alphaSS, 1.0, (MrBFlt)(chainParams.numStepsSS-1-stepIndexSS)/(MrBFlt)chainParams.numStepsSS); + powerSS = 0.0; + stepLengthSS = BetaQuantile (chainParams.alphaSS, 1.0, (MrBFlt)(chainParams.numStepsSS-stepIndexSS)/(MrBFlt)chainParams.numStepsSS)-powerSS; + } + else + { + powerSS = BetaQuantile (chainParams.alphaSS, 1.0, (MrBFlt)stepIndexSS/(MrBFlt)chainParams.numStepsSS); + stepLengthSS = 1.0-powerSS; + } + samplesCountSS=0; + } + else + { + stepIndexSS = (numPreviousGen-chainParams.burninSS * chainParams.sampleFreq)/numGenInStepSS; /* for now it holds number of steps we fully complited*/ + lastStepEndSS = chainParams.burninSS * chainParams.sampleFreq + stepIndexSS*numGenInStepSS; + removeTo = chainParams.burninSS + (stepIndexSS*numGenInStepSS+numGenInStepBurninSS)/chainParams.sampleFreq + 1; + if (numPreviousGen < (removeTo-1)*chainParams.sampleFreq) + removeTo=numPreviousGen/chainParams.sampleFreq+1; + stepIndexSS = chainParams.numStepsSS-1-stepIndexSS; + if (chainParams.startFromPriorSS==YES) + { + powerSS = BetaQuantile (chainParams.alphaSS, 1.0, (MrBFlt)(chainParams.numStepsSS-1-stepIndexSS)/(MrBFlt)chainParams.numStepsSS); + stepLengthSS = BetaQuantile (chainParams.alphaSS, 1.0, (MrBFlt)(chainParams.numStepsSS-stepIndexSS)/(MrBFlt)chainParams.numStepsSS)-powerSS; + } + else + { + powerSS = BetaQuantile (chainParams.alphaSS, 1.0, (MrBFlt)stepIndexSS/(MrBFlt)chainParams.numStepsSS); + stepLengthSS = BetaQuantile (chainParams.alphaSS, 1.0, (MrBFlt)(stepIndexSS+1)/(MrBFlt)chainParams.numStepsSS)-powerSS; + } +# ifdef SAMPLE_ALL_SS + samplesCountSS = (numPreviousGen-lastStepEndSS-numGenInStepBurninSS); +# else + samplesCountSS = (numPreviousGen-lastStepEndSS-numGenInStepBurninSS)/chainParams.sampleFreq; +# endif + if (samplesCountSS < 0) + samplesCountSS=0; + + MrBayesPrint("%s Continue sampling step %d out of %d steps...\n",spacer, chainParams.numStepsSS-stepIndexSS, chainParams.numStepsSS); + /*marginalLnLSS will be red from file and destributed to other MPI_proc later. stepScalerSS, stepAcumulatorSS are lready red and if (samplesCountSS!=0) they will be redestributed. */ + } + + if (samplesCountSS == 0) /* in appended case it also can happen */ + { + for (run=0; run 1 && chainParams.mcmcDiagn == YES) /* we potentially need to add tree samples for conv diagn */ + { + /* Add tree samples to partition counters */ + if (chainParams.relativeBurnin == YES) + { + if (numPreviousGen/(i-1) != chainParams.sampleFreq) + { + MrBayesPrint ("%s 1. Use the same sampling frequency as in the previous run to use relative burnin.\n", spacer); + MrBayesPrint ("%s 2. Check (and modify) the number in [generation: number] at line 3 of the .ckp file\n", spacer); + MrBayesPrint ("%s to match the previous number of generations in all the .p and .t files. This may\n", spacer); + MrBayesPrint ("%s happen if checkfreq was smaller than samplefreq.\n", spacer); + MrBayesPrint ("%s 3. Rarely, delete the last sample/line in the .p and .t files to achieve 2. above.\n", spacer); + MrBayesPrint ("%s This may happen if ngen was not divisible by samplefreq.\n", spacer); + nErrors++; + } + if (chainParams.isSS == NO) + { + if (noWarn == YES) + { + /* We definitely know the final number of generations */ + j = (chainParams.numGen/chainParams.sampleFreq)+1; + j = (int) (j*chainParams.burninFraction); + } + else /* User may extend chain so save all trees if saving trees */ + j = i; + if (j < i) + { + if (AddTreeSamples(1,j,chainParams.saveTrees) == ERROR) nErrors++; + if (AddTreeSamples(j+1,i,NO) == ERROR) nErrors++; + /* Since we never need to remove trees from partition counter after total burnin we put NO in the last argument */ + } + else + { + if (AddTreeSamples(1,i,chainParams.saveTrees) == ERROR) nErrors++; + } + } + else + { + if (SetFilePositions(removeTo) == ERROR) nErrors++; + if (AddTreeSamples(removeTo+1,i,chainParams.saveTrees) == ERROR) nErrors++; + } + } + else if (chainParams.chainBurnIn < i) + { + if (AddTreeSamples(chainParams.chainBurnIn,i-1,chainParams.saveTrees) == ERROR) nErrors++; + } + } + if (nErrors == 0) + { + if (chainParams.isSS == NO && chainParams.mcmcDiagn == YES && chainParams.numRuns > 1) + { + MrBayesPrint ("\n"); + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using a relative burnin of %.1f %% for diagnostics\n", spacer, 100.0*chainParams.burninFraction); + else + MrBayesPrint ("%s Using an absolute burnin of %d samples for diagnostics\n", spacer, chainParams.chainBurnIn); + } + MrBayesPrint ("\n"); + MrBayesPrint ("%s Chain results (continued from previous run; %d generations requested):\n\n", spacer, chainParams.numGen); + } +# if defined (MPI_ENABLED) + } +# endif + + if (chainParams.autotune == YES) + { + for (i=0; icumProposalProb[chainId[i]]; + else + f = usedMoves[j]->cumProposalProb[chainId[i]] - usedMoves[j-1]->cumProposalProb[chainId[i]]; + if (usedMoves[j]->targetRate[chainId[i]] > 0.0) + { + /* autotuned move; we assume it was perfectly tuned and start tuning from there at appropriate rate */ + usedMoves[j]->nBatches[chainId[i]] = (int) (f*numPreviousGen/chainParams.tuneFreq); + usedMoves[j]->lastAcceptanceRate[chainId[i]] = usedMoves[j]->targetRate[chainId[i]]; + } + else + { + /* not autotuned move; no previous batches will result in acceptance rate calculated from new samples */ + usedMoves[j]->nBatches[chainId[i]] = 0; + usedMoves[j]->lastAcceptanceRate[chainId[i]] = 0.0; + } + } + } + } +# if defined (MPI_ENABLED) + if (chainParams.isSS == YES) + { + MPI_Bcast (marginalLnLSS, chainParams.numRuns, MPI_DOUBLE, 0, MPI_COMM_WORLD); + + if (samplesCountSS != 0) + { + MPI_Bcast (stepScalerSS, chainParams.numRuns, MPI_DOUBLE, 0, MPI_COMM_WORLD); + MPI_Bcast (stepAcumulatorSS, chainParams.numRuns, MPI_DOUBLE, 0, MPI_COMM_WORLD); + } + /*Set to zero all runs that we are not responsable for*/ + for (run=0; run 0) + { + MrBayesPrint ("%s Error appending to previous run\n", spacer); + return ERROR; + } +# else + if (nErrors == 1) + { + MrBayesPrint ("%s Error appending to previous run\n", spacer); + return ERROR; + } +# endif + } + else + { + if (PreparePrintFiles() == ERROR) + nErrors++; + } + +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Error preparing print files on at least one processor\n", spacer); + CloseMBPrintFiles(); + return ERROR; + } +# else + if (nErrors > 0) + { + MrBayesPrint ("%s Error preparing print files\n", spacer); + CloseMBPrintFiles(); + return ERROR; + } +# endif + + if (chainParams.relativeBurnin == NO) + lastDiagnostics = chainParams.chainBurnIn; + else + lastDiagnostics = 0; + stopChain = NO; + + for (i=0; i 0) + { + MrBayesPrint ("%s Aborting run.\n"); + return ERROR; + } +# endif + + if (chainParams.mcmcDiagn == YES) + { + if (PrintMCMCDiagnosticsToFile (0) == ERROR) + { + MrBayesPrint ("%s Problem printing mcmc diagnostics headers to file\n", spacer); +# if defined (MPI_ENABLED) + nErrors++; +# else + return (ERROR); +# endif + } +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Aborting run.\n"); + return ERROR; + } +# endif + + if (chainParams.isSS == YES && chainParams.burninSS == 0 && chainParams.numRuns > 1) + { + /* Remove first sample (generation 0) from diagnostics */ + removeTo=1; + if (RemoveTreeSamples (1,1) == ERROR) + { + MrBayesPrint("%s Problem removing tree samples\n"); +# if defined (MPI_ENABLED) + nErrors++; +# else + return ERROR; +# endif + } +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Aborting run.\n"); + return ERROR; + } +# endif + } + } + if (chainParams.isSS == YES) + { + if (chainParams.burninSS == 0) + MrBayesPrint("%s Sampling step 1 out of %d steps...\n\n",spacer, chainParams.numStepsSS); + + /*Printing SS header*/ + MrBayesPrintf (fpSS, "[LEGEND: The file contains statistics on the Steppingstone Sampling.]\n"); + MrBayesPrintf (fpSS, "[ID: %s]\n", stamp); + MrBayesPrintf (fpSS, "[ Step -- Index of the step ]\n"); + MrBayesPrintf (fpSS, "[ Power -- At each step we sample from the distribution with density (Likelihood^Power)*Prior ]\n"); + MrBayesPrintf (fpSS, "[ runX -- Contribution to the marginal log likelihood of run X, i.e. marginal log likelihood for run X is the sum across all steps in column runX. ]\n"); + if (chainParams.diagnStat == AVGSTDDEV) + MrBayesPrintf (fpSS, "[ aSplitX -- Average standard deviation of split frequencies of tree X. -2.0 is printed if no diagnostics was requested. -1.0 is printed if there were no splits with frequency above minimum.]\n"); + else + MrBayesPrintf (fpSS, "[ mSplitX -- Maximal standard deviation of split frequencies of tree X. -2.0 is printed if no diagnostics was requested. -1.0 is printed if there were no splits with frequency above minimum.]\n"); + MrBayesPrintf (fpSS, "Step\tPower"); + for (j=0; j 10 * CLOCKS_PER_SEC) + { + CPUTime += (currentCPUTime - previousCPUTime) / (MrBFlt) (CLOCKS_PER_SEC); + previousCPUTime = currentCPUTime; + } + + /*! requestAbortRun is set by the signal handler when it receives a CTRL-C (serial version only) */ + if (requestAbortRun == YES && ConfirmAbortRun() == 1) + return ABORT; + + /* Refresh scalers every SCALER_REFRESH_FREQ generations. */ + /* It is done before copying so we know it will take effect immediately. */ + /* However, the actual scalers are recalculated only when really needed. */ +# if defined (BEAGLE_ENABLED) + if (ResetScalersNeeded && n % SCALER_REFRESH_FREQ == 0) + ResetScalers(); +# else + if (n % SCALER_REFRESH_FREQ == 0) + ResetScalers(); +# endif + + // RandLong oldSeed = *seed; /* record the old seed for debugging */ + for (chn=0; chnname); +# endif + +# if defined (BEST_MPI_ENABLED) + bestCycleGen = n % (numNonTreeMoves + numTreeMoves + numBestMoves); + if (bestCycleGen < numNonTreeMoves) + PickNonTreeProposal(seed, chainId[chn]); + else if (bestCycleGen < numNonTreeMoves + numTreeMoves) + PickTreeProposal(seed, chainId[chn]); + else + PickBestProposal(chainId[chn]); +# endif + + /* set prior and proposal ratios */ + lnProposalRatio = 0.0; + lnPriorRatio = 0.0; + + /* reset abort move flag */ + abortMove = NO; + + /* Touch the relevant partitions */ + /* as a service to the move functions. */ + for (i=0; iparm->nRelParts; i++) + modelSettings[theMove->parm->relParts[i]].upDateCl = YES; + +# ifndef NDEBUG + if (IsTreeConsistent(theMove->parm, chn, state[chn]) != YES) + { + printf ("IsTreeConsistent failed before a move!\n"); + return ERROR; + } +# endif +# if defined (DEBUG_CONSTRAINTS) + if (theMove->parm->paramType == P_TOPOLOGY && DoesTreeSatisfyConstraints(GetTree (theMove->parm, chn, state[chn]))!=YES) + { + printf ("DEBUG ERROR: DoesTreeSatisfyConstraints failed before a move\n"); + return ERROR; + } +# endif + /* make move */ + if ((theMove->moveFxn)(theMove->parm, chn, seed, &lnPriorRatio, &lnProposalRatio, theMove->tuningParam[chainId[chn]]) == ERROR) + { + printf ("%s Error in move %s\n", spacer, theMove->name); +# if defined (MPI_ENABLED) + nErrors++; +# else + return ERROR; +# endif + } + + if (theMove->parm->paramType == P_TOPOLOGY && DoesTreeSatisfyConstraints(GetTree (theMove->parm, chn, state[chn])) != YES) + { +# if defined (DEBUG_CONSTRAINTS) + if (DoesTreeSatisfyConstraints(GetTree (theMove->parm, chn, state[chn]))==ABORT) + { + printf ("DEBUG ERROR: DoesTreeSatisfyConstraints failed after move '%s'\n", theMove->name); + } +# endif + abortMove = YES; + } + + /* abortMove is set to YES if the calculation fails because the likelihood is too small */ + if (abortMove == NO) + lnLike = LogLike(chn); + + /* calculate acceptance probability */ + if (abortMove == NO) + { + lnLikelihoodRatio = lnLike - curLnL[chn]; + lnPrior = curLnPr[chn] + lnPriorRatio; + +# ifndef NDEBUG + /* We check various aspects of calculations in debug version of code */ + if (IsTreeConsistent(theMove->parm, chn, state[chn]) != YES) + { + printf ("DEBUG ERROR: IsTreeConsistent failed after move '%s'\n", theMove->name); + return ERROR; + } + if (lnPriorRatio != lnPriorRatio) + { + printf ("DEBUG ERROR: Log prior ratio nan after move '%s'\n", theMove->name); + // printf ("Seed: %ld\n", oldSeed); state[chn] ^= 1; PrintCheckPoint (n); + return ERROR; + } + if (fabs((lnPrior-LogPrior(chn))/lnPrior) > 0.0001) + { + printf ("DEBUG ERROR: Log prior incorrect after move '%s' :%e :%e\n", theMove->name,lnPrior,LogPrior(chn)); + // printf ("Seed: %ld\n", oldSeed); state[chn] ^= 1; PrintCheckPoint (n); + return ERROR; + } + if (lnProposalRatio != lnProposalRatio) + { + printf ("DEBUG ERROR: Log proposal ratio nan after move '%s'\n", theMove->name); + // printf ("Seed: %ld\n", oldSeed); state[chn] ^= 1; PrintCheckPoint (n); + return ERROR; + } + if (lnLike != lnLike) + { + printf ("DEBUG ERROR: Log likelihood nan after move '%s'\n", theMove->name); + // printf ("Seed: %ld\n", oldSeed); state[chn] ^= 1; PrintCheckPoint (n); + return ERROR; + } +# if defined (DEBUG_LNLIKELIHOOD) /* slow */ + ResetFlips(chn); /* needed to return flags so they point to old state */ + TouchEverything(chn); + if (fabs((lnLike-LogLike(chn))/lnLike) > 0.0001) + { + printf ("DEBUG ERROR: Log likelihood incorrect after move '%s'\n", theMove->name); + return ERROR; + } +# endif + if (theMove->parm->paramType == P_TOPOLOGY && GetTree (theMove->parm, chn, state[chn])->isClock == YES && + IsClockSatisfied (GetTree (theMove->parm, chn, state[chn]),0.001) == NO) + { + printf ("%s Branch lengths of the tree do not satisfy the requirements of a clock tree.\n", spacer); + ShowNodes(GetTree (theMove->parm, chn, state[chn])->root,0,YES); + return (ERROR); + } +# endif + + /* heat */ + lnLikelihoodRatio *= Temperature (chainId[chn]); + lnPriorRatio *= Temperature (chainId[chn]); + + if (chainParams.isSS == YES) + lnLikelihoodRatio *= powerSS; + + /* calculate the acceptance probability */ + if (lnLikelihoodRatio + lnPriorRatio + lnProposalRatio < -100.0) + r = 0.0; + else if (lnLikelihoodRatio + lnPriorRatio + lnProposalRatio > 0.0) + r = 1.0; + else + r = exp(lnLikelihoodRatio + lnPriorRatio + lnProposalRatio); + } + + /* decide to accept or reject the move */ + acceptMove = NO; + i = chainId[chn]; + theMove->nTried[i]++; + theMove->nTotTried[i]++; + if (abortMove == NO && RandomNumber(seed) < r) + { + acceptMove = YES; + theMove->nAccepted[i]++; + theMove->nTotAccepted[i]++; + } + + /* update the chain */ + if (acceptMove == NO) + { + /* the new state did not work out so shift chain back */ + if (abortMove == NO) + ResetFlips(chn); + state[chn] ^= 1; +# if defined (BEAGLE_ENABLED) + if (recalcScalers == YES) + { + recalculateScalers(chn); + recalcScalers = NO; + } +# endif + } + else + { + /* if the move is accepted then let the chain stay in the new state */ + /* store the likelihood and prior of the chain */ + curLnL[chn] = lnLike; + curLnPr[chn] = lnPrior; + } + + /* check if time to autotune */ + if (theMove->nTried[i] >= chainParams.tuneFreq) + { + theMove->lastAcceptanceRate[i] = (MrBFlt) theMove->nAccepted[i] / (MrBFlt) theMove->nTried[i]; + theMove->nTried[i] = 0; + theMove->nAccepted[i] = 0; + theMove->nBatches[i]++; /* we only autotune at most 10000 times */ + if (chainParams.autotune == YES && theMove->moveType->Autotune != NULL && theMove->nBatches[i] < MAXTUNINGPARAM) + { + theMove->moveType->Autotune(theMove->lastAcceptanceRate[i], + theMove->targetRate[i], + theMove->nBatches[i], + &theMove->tuningParam[i][0], + theMove->moveType->minimum[0], + theMove->moveType->maximum[0]); + } + } + + /* ShowValuesForChain (chn); */ + + if (curLnL[chn] > maxLnL0[chainId[chn]]) + maxLnL0[chainId[chn]] = curLnL[chn]; + + } + + /* attempt swap(s) Non-blocking for MPI if no swap with external process. */ + if (chainParams.numChains > 1 && n % chainParams.swapFreq == 0) + { + for (i = 0; i 0) + { + MrBayesPrint ("%s Aborting run.\n"); + return ERROR; + } +# endif + if (PrintStatesToFiles (n) == ERROR) + { + MrBayesPrint("%s Error in printing states to files\n"); +# if defined (MPI_ENABLED) + nErrors++; +# else + return ERROR; +# endif + } +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Aborting run.\n"); + return ERROR; + } +# endif + } + + /* print mcmc diagnostics. Blocking for MPI */ + if (chainParams.mcmcDiagn == YES && (n % chainParams.diagnFreq == 0 + || n == chainParams.numGen + || (chainParams.isSS == YES && (n-lastStepEndSS) % numGenInStepSS == 0))) + { + if (chainParams.numRuns > 1 && + ((n > 0 && chainParams.relativeBurnin == YES && (chainParams.isSS == NO || (n > chainParams.burninSS * chainParams.sampleFreq && (n-lastStepEndSS) > numGenInStepBurninSS))) + || (n >= chainParams.chainBurnIn * chainParams.sampleFreq && chainParams.relativeBurnin == NO))) + { + /* we need some space for coming output */ + MrBayesPrint ("\n"); + /* remove tree samples if using burninpercentage */ + /* the following function returns immediately in MPI if proc_id != 0 */ + if (chainParams.relativeBurnin == YES && chainParams.isSS == NO) + { + removeFrom = removeTo; + removeTo = (int)(chainParams.burninFraction * (n/chainParams.sampleFreq+1)); /* (n/chainParams.sampleFreq+1) is the current number of samples */ + if (removeFrom < removeTo) + { + if (RemoveTreeSamples (removeFrom+1, removeTo) == ERROR) + { + MrBayesPrint("%s Problem removing tree samples\n"); +# if defined (MPI_ENABLED) + nErrors++; +# else + return ERROR; +# endif + } + } +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Aborting run.\n"); + return ERROR; + } +# endif + } + + lastDiagnostics = (n/chainParams.sampleFreq)+1; /* +1 because we always have start tree sampled*/ + if (chainParams.relativeBurnin == YES) + { + i = lastDiagnostics - removeTo; + } + else + i = lastDiagnostics - chainParams.chainBurnIn; +# if defined (MPI_ENABLED) + if (proc_id == 0) + { +# endif + /* calculate statistics */ + CalcTopoConvDiagn (i); + /* output statistics */ + if (numTopologies == 1) + { + f = -1.0; + if (chainParams.stat[0].numPartitions == 0) + { + MrBayesPrint ("%s Average standard deviation of split frequencies: NA (no splits above min. frequency)\n", spacer); + } + else if (chainParams.diagnStat == AVGSTDDEV) + { + f = chainParams.stat[0].avgStdDev; + MrBayesPrint ("%s Average standard deviation of split frequencies: %.6f\n", spacer, f); + } + else + { + f = chainParams.stat[0].max; + MrBayesPrint ("%s Max standard deviation of split frequencies: %.6f\n", spacer, f); + } + if (chainParams.isSS == YES) + splitfreqSS[chainParams.numStepsSS-stepIndexSS-1] = f; + if (chainParams.stat[0].numPartitions > 0 && f <= chainParams.stopVal) + stopChain = YES; + if (n < chainParams.numGen - chainParams.printFreq && (chainParams.stopRule == NO || stopChain == NO)) + MrBayesPrint ("\n"); + } + else + { + stopChain = YES; + for (i=0; i chainParams.stopVal) + stopChain = NO; + } + if (n < chainParams.numGen - chainParams.printFreq && (chainParams.stopRule == NO || stopChain == NO)) + MrBayesPrint ("\n"); + } + if (chainParams.allComps == YES) + PrintTopConvInfo (); +# if defined (MPI_ENABLED) + } + ierror = MPI_Bcast (&stopChain, 1, MPI_INT, 0, MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem broadcasting stop value\n", spacer); + nErrors++; + } +# endif + } + + /* part of the following function needs to be performed by all MPI processors. Blocking for MPI. */ + if (PrintMCMCDiagnosticsToFile (n) == ERROR) + { + MrBayesPrint ("%s Problem printing mcmc diagnostics to file\n", spacer); +# if defined (MPI_ENABLED) + nErrors++; +# else + return (ERROR); +# endif + } +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s Aborting run.\n"); + return ERROR; + } +# endif + } + + /* check if time to break because stopVal reached */ + if (chainParams.isSS == NO && (chainParams.stopRule == YES && stopChain == YES)) + { + MrBayesPrint ("\n%s Analysis stopped because convergence diagnostic hit stop value.\n", spacer); + break; + } + + /* user may want to extend chain */ + if (chainParams.isSS == NO && (n == chainParams.numGen && autoClose == NO)) + { + stoppingT1 = time(0); + currentCPUTime = clock(); + CPUTime += (currentCPUTime - previousCPUTime) / (MrBFlt) CLOCKS_PER_SEC; + previousCPUTime = currentCPUTime; + chainParams.numGen += ExtendChainQuery (); + stoppingT2 = time(0); + startingT += (stoppingT2-stoppingT1); + previousCPUTime = clock(); + /* timers should not be increased during the wait for a reply */ + } + + /* Do stepping sampling staf if needed */ + if (chainParams.isSS == YES && n >= chainParams.burninSS*chainParams.sampleFreq) + { +# ifndef SAMPLE_ALL_SS + if ((n-lastStepEndSS) % chainParams.sampleFreq == 0) +# endif + { + if (n > chainParams.burninSS*chainParams.sampleFreq && (n-lastStepEndSS > numGenInStepBurninSS)) + { /* do sampling */ + for (chn=0; chn stepScalerSS[run] + 200.0) + { + // adjust scaler; + stepAcumulatorSS[run] /= exp (curLnL[chn]*stepLengthSS - 100.0 - stepScalerSS[run]); + stepScalerSS[run]= curLnL[chn]*stepLengthSS - 100.0; + } + stepAcumulatorSS[run] += exp (curLnL[chn]*stepLengthSS - stepScalerSS[run]); + } + } + samplesCountSS++; + } + } + + if ((n-lastStepEndSS) == numGenInStepBurninSS) + { + /* Remove all previouse samples from diagnostics */ + if (chainParams.mcmcDiagn == YES && chainParams.numRuns > 1) + { + removeFrom = removeTo; + removeTo = (int)(n/chainParams.sampleFreq); /* (n/chainParams.sampleFreq+1) is the current number of samples including 0 one*/ + removeTo++; + if (removeFrom < removeTo) + { + if (RemoveTreeSamples (removeFrom+1, removeTo) == ERROR) + { + nErrors++; + } + ERROR_TEST2("Problem removing tree samples",return(ERROR),); + } + } + } + + if ((n-lastStepEndSS) % numGenInStepSS == 0) /* prepare sample of next step */ + { + assert (n-lastStepEndSS <= numGenInStepSS); + lastStepEndSS=n; + + if (n > chainParams.burninSS*chainParams.sampleFreq) + { + /* dump to file current step contribution */ + MrBayesPrintf (fpSS, "%3d\t%.4f", chainParams.numStepsSS-stepIndexSS, powerSS); +# if defined (MPI_ENABLED) + for (j=0; j 1) + { + for (i=0; i 3600.0) + MrBayesPrint ("%s Analysis completed in %d hours %d mins %d seconds\n", spacer, + (int) (difftime(endingT, startingT)/3600), + ((int) (difftime(endingT, startingT))%3600)/60, + (int) (difftime(endingT, startingT))%60); + else if (difftime (endingT, startingT) > 60.0) + MrBayesPrint ("%s Analysis completed in %d mins %d seconds\n", spacer, + (int) (difftime(endingT, startingT)/60), + (int) (difftime(endingT, startingT))%60); + else if (difftime (endingT, startingT) > 2.0) + MrBayesPrint ("%s Analysis completed in %.0f seconds\n", spacer, + difftime(endingT, startingT)); + else if (difftime (endingT, startingT) >= 1.0) + MrBayesPrint ("%s Analysis completed in 1 second\n", spacer); + else + MrBayesPrint ("%s Analysis completed in less than 1 second\n", spacer); + +# if defined (MPI_ENABLED) + MrBayesPrint ("%s Analysis used %1.2f seconds of CPU time on processor 0\n", spacer, (MrBFlt) CPUTime); +# else + MrBayesPrint ("%s Analysis used %1.2f seconds of CPU time\n", spacer, (MrBFlt) CPUTime); +# endif + +# if defined (MPI_ENABLED) + /* find the best likelihoods across all of the processors */ + ierror = MPI_Barrier (MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem at chain barrier\n", spacer); + return (ERROR); + } + for (j=0; j best) + best = maxLnL0[j]; + } + else if (proc_id == i) + { + ierror = MPI_Send (&maxLnL0[j], 1, MPI_DOUBLE, 0, i, MPI_COMM_WORLD); + if (ierror != MPI_SUCCESS) + { + MrBayesPrint ("%s Problem with MPI_Send\n", spacer); + return ERROR; + } + } + } + maxLnL0[j] = best; + } + + /* Collecting marginal log likelihoods if SS is used */ + if (chainParams.isSS == YES) + { + for (j=0; j 1) + { + MeanVarianceLog(marginalLnLSS,chainParams.numRuns,&meanSS,&varSS,NULL); + MrBayesPrint ("%s Mean: %9.2f\n\n",spacer,meanSS); + //MrBayesPrint ("%s Mean: %9.2lf Scaled variance: %.2f of Marginal log likelihood estimates among runs.\n",spacer,meanSS,varSS-2*meanSS); + //MrBayesPrint ("%s Note: Scaled variance is given in log units and calculated as \"variance/mean^2\"\n",spacer); + } + MrBayesPrint ("%s More statistics on stepping-stone sampling is dumped to %s.ss file.\n", spacer, chainParams.chainFileName); + + if (chainParams.mcmcDiagn == YES) + { + if ((tempX = (MrBFlt *) SafeCalloc (chainParams.numStepsSS, sizeof(MrBFlt))) == NULL) + { + nErrors++; + } + ERROR_TEST2("Problem allocating memory", return(ERROR),); + + for (i=0; i 1) + { + if (chainParams.diagnStat == AVGSTDDEV) + MrBayesPrint (" Plots of average standard deviation of split frequencies across steps for different topology."); + else + MrBayesPrint (" Plots of max standard deviation of split frequencies across steps for different topology."); + } + else + { + if (chainParams.diagnStat == AVGSTDDEV) + MrBayesPrint (" Plot of average standard deviation of split frequencies across steps."); + else + MrBayesPrint (" Plot of max standard deviation of split frequencies across steps."); + } + MrBayesPrint ("\n"); + MrBayesPrint (" Points at -1.0 (y-axis) indicate that there were no splits\n"); + MrBayesPrint (" above minimum frequency for corresponding step."); + if (numTopologies > 1) + { + for (i=0; i 0) + { + MrBayesPrint ("%s ReassembleMoveInfo failed\n", spacer); + return ERROR; + } +# endif + + /* print acceptance rates for the moves */ + for (j=0; jnBatches[j] < 1) + MrBayesPrint ("%s NA NA %s\n", + spacer, mv->name); + else + MrBayesPrint ("%s %6.1f %% (%3.0f %%) %s\n", spacer, + 100.0*mv->nTotAccepted[j]/(MrBFlt)(mv->nTotTried[j]), + 100.0*mv->lastAcceptanceRate[j], + mv->name); + } + } + } + +# if defined MPI_ENABLED + /* Redistribute move info in case it is needed in a follow-up run */ + RedistributeMoveInfo(); +# endif + + /* output information on the success of the chain state swap proposals */ + if (PrintSwapInfo () == ERROR) + nErrors++; +# if defined (MPI_ENABLED) + MPI_Allreduce (&nErrors, &sumErrors, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (sumErrors > 0) + { + MrBayesPrint ("%s PrintSwapInfo failed\n", spacer); + return ERROR; + } +# else + if (nErrors > 1) + { + MrBayesPrint ("%s PrintSwapInfo failed\n", spacer); + return ERROR; + } +# endif + +# if defined (MPI_ENABLED) + if (proc_id != 0) + return (NO_ERROR); +# endif + + if (chainParams.isSS == NO && (chainParams.numRuns > 1 && chainParams.mcmcDiagn == YES)) + { + f = 0.0; + for (i=0; i f) + f = chainParams.stat[i].avgStdDev; + } + if (f > 0.10) + { + MrBayesPrint ("\n"); + MrBayesPrint ("%s ************************* WARNING!! ************************************ \n", spacer); + MrBayesPrint ("%s MrBayes suspects that your runs have not converged because the tree \n", spacer); + MrBayesPrint ("%s samples are very different (average standard deviation of split frequen- \n", spacer); + MrBayesPrint ("%s cies larger than 0.10 (%1.2lf)). MrBayes suggests that you run the ana- \n", spacer, f); + MrBayesPrint ("%s lysis longer or try to improve the MCMC sampling efficiency by fine- \n", spacer); + MrBayesPrint ("%s tuning MCMC proposal or heating parameters. \n", spacer); + } + } + + return (NO_ERROR); +} + + +int SafeSprintf (char **target, int *targetLen, char *fmt, ...) +{ + va_list argp; + int retval; + + while (1) { + /* try to print in the available space */ + va_start(argp, fmt); +# ifdef VISUAL + retval = _vsnprintf (*target, *targetLen, fmt, argp); +# else + /* With SGI IRIX this function returns 0. Allen Smith suggested using + _xpg5_vnsprintf, but this function needs a recent version of IRIX. + For now, I just allocate a large buffer for SGI, so there is no need for + memory reallocation on this kind of machines */ + /* It appears to me that the reason for the bug is that the old version of + this function relies on nonstandard return values for vsnprintf. With + the current version of the code, SGI should do fine without special + treatment. FR */ + retval = vsnprintf (*target, *targetLen, fmt, argp); +# endif + va_end(argp); + + /* if it worked, retval will be in interval [0,*targetLen-1], else -1 or true length */ + if (retval > -1 && retval < *targetLen) + return NO_ERROR; + + /* readjust length */ + if (retval > -1) /* some C compilers will return true length in retval */ + *targetLen = retval + 1; /* exactly what is needed */ + else /* some C compilers will return -1 on buffer overwrite */ + *targetLen += TARGETLENDELTA; + + /* reallocate target */ + *target = SafeRealloc ((void *)*target, *targetLen); + if (*target == NULL) + return ERROR; + } +} + + +void SetChainIds (void) +{ + /* Fill with the global chain number. + Ex. For proc_0, chain[0] = 0; + chain[1] = 1; + chain[2] = 2; (numchains = 3) + For proc_1, chain[0] = 3; + chain[1] = 4; (numchains = 2) + etc... + */ + +# if defined (MPI_ENABLED) + + int i, proc, numChainsForProc, numGlobalChains; + int id; + int remainder; + + /* calculate global number of chains */ + numGlobalChains = chainParams.numChains * chainParams.numRuns; + + /* there are chains left over after + load balancing the chains */ + remainder = numGlobalChains % num_procs; + + /* get the number of chains handled by this proc */ + numChainsForProc = (int) (numGlobalChains / num_procs); + + /* we must distribute the remaining chains (causing + the chain load between procs to become unbalanced) */ + if (proc_id < remainder) + numChainsForProc++; + + /* NOTE: at this point, procs can have different number of numChainsForProc + (one more for chains < remainder, one less for procs larger than or equal + to the remainder) */ + + id = 0; + for (proc=0; proc\"\n", spacer, chainParams.chainFileName); + } + else /* if (chainParams.numRuns > 1) */ + { + sprintf (comptreeParams.comptFileName1, "%s.run1.t", chainParams.chainFileName); + sprintf (comptreeParams.comptFileName2, "%s.run2.t", chainParams.chainFileName); + sprintf (plotParams.plotFileName, "%s.run1.p", chainParams.chainFileName); + MrBayesPrint ("%s Setting chain output file names to \"%s.run.

    \"\n", spacer, chainParams.chainFileName); + } +} + + +/*---------------------------------------------------------------------------- +| +| SetLikeFunctions: This function will set up the pointers from each +| data division to the relevant likelihood functions +| +-----------------------------------------------------------------------------*/ +int SetLikeFunctions (void) +{ + int i; + + ModelInfo *m; + + /* couple divisions with likelihood functions */ + for (i=0; iuseSSE= NO; + + if (m->dataType == DNA || m->dataType == RNA) + { + if (m->parsModelId == YES) + { + m->Likelihood = &Likelihood_Pars; + } + else + { + if (m->nucModelId == NUCMODEL_4BY4) + { + if (m->numModelStates > 4) + { + /* covariotide model */ + /* TODO: allow autocorrelated rates */ + if (m->gibbsGamma == YES) + { + m->CondLikeDown = &CondLikeDown_Gen_GibbsGamma; + m->CondLikeRoot = &CondLikeRoot_Gen_GibbsGamma; + m->CondLikeScaler = &CondLikeScaler_Gen_GibbsGamma; + m->Likelihood = &Likelihood_Gen_GibbsGamma; + } + else + { + m->CondLikeDown = &CondLikeDown_Gen; + m->CondLikeRoot = &CondLikeRoot_Gen; + m->CondLikeScaler = &CondLikeScaler_Gen; + m->Likelihood = &Likelihood_Gen; + } + if (m->correlation != NULL) + m->Likelihood = &Likelihood_Adgamma; + else + m->Likelihood = &Likelihood_Gen; + if (m->nCijkParts == 1) + m->TiProbs = &TiProbs_Gen; + else if (m->nCijkParts > 1) + m->TiProbs = &TiProbs_GenCov; + m->PrintAncStates = &PrintAncStates_NUC4; + m->PrintSiteRates = &PrintSiteRates_Gen; + } + else + { +# if defined (SSE_ENABLED) + if (m->printAncStates == YES || m->printSiteRates == YES) + { + MrBayesPrint ("%s Non-SSE version of conditional likelihood calculator will be used for division %d\n", spacer, i+1); + MrBayesPrint ("%s due to request of reporting 'ancestral states' or 'site rates'.\n", spacer); + } + + m->CondLikeUp = &CondLikeUp_NUC4; + m->PrintAncStates = &PrintAncStates_NUC4; + m->PrintSiteRates = &PrintSiteRates_Gen; + + if (m->gibbsGamma == YES) + { + m->CondLikeDown = &CondLikeDown_NUC4_GibbsGamma; + m->CondLikeRoot = &CondLikeRoot_NUC4_GibbsGamma; + m->CondLikeScaler = &CondLikeScaler_NUC4_GibbsGamma; + } + else if (m->correlation != NULL || m->printAncStates == YES || m->printSiteRates == YES) + { + m->CondLikeDown = &CondLikeDown_NUC4; + m->CondLikeRoot = &CondLikeRoot_NUC4; + m->CondLikeScaler = &CondLikeScaler_NUC4; + } + else + { + m->useSSE= YES; + m->CondLikeDown = &CondLikeDown_NUC4_SSE; + m->CondLikeRoot = &CondLikeRoot_NUC4_SSE; + m->CondLikeScaler = &CondLikeScaler_NUC4_SSE; + /* Should be sse versions if we want to handle m->printAncStates == YES || inferSiteRates == YES. + For now just set to NULL for early error detection if functions anyway got called by mistake */ + m->CondLikeUp = NULL; + m->PrintAncStates = NULL; + m->PrintSiteRates = NULL; + } + + if (m->correlation != NULL) + m->Likelihood = &Likelihood_Adgamma; + else if (m->gibbsGamma == YES) + m->Likelihood = &Likelihood_NUC4_GibbsGamma; + else if (m->printAncStates == YES || inferSiteRates == YES) + m->Likelihood = &Likelihood_NUC4; + else + m->Likelihood = &Likelihood_NUC4_SSE; +# else + if (m->gibbsGamma == YES) + { + m->CondLikeDown = &CondLikeDown_NUC4_GibbsGamma; + m->CondLikeRoot = &CondLikeRoot_NUC4_GibbsGamma; + m->CondLikeScaler = &CondLikeScaler_NUC4_GibbsGamma; + } + else + { + m->CondLikeDown = &CondLikeDown_NUC4; + m->CondLikeRoot = &CondLikeRoot_NUC4; + m->CondLikeScaler = &CondLikeScaler_NUC4; + } + + if (m->correlation != NULL) + m->Likelihood = &Likelihood_Adgamma; + else if (m->gibbsGamma == YES) + m->Likelihood = &Likelihood_NUC4_GibbsGamma; + else + m->Likelihood = &Likelihood_NUC4; + + m->CondLikeUp = &CondLikeUp_NUC4; + m->PrintAncStates = &PrintAncStates_NUC4; + m->PrintSiteRates = &PrintSiteRates_Gen; +# endif + if (m->nst == 1) + m->TiProbs = &TiProbs_Fels; + else if (m->nst == 2) + m->TiProbs = &TiProbs_Hky; + else + m->TiProbs = &TiProbs_Gen; + m->StateCode = &StateCode_NUC4; + } + } + else if (m->nucModelId == NUCMODEL_DOUBLET) + { + if (m->gibbsGamma == YES) + { + m->CondLikeDown = &CondLikeDown_Gen_GibbsGamma; + m->CondLikeRoot = &CondLikeRoot_Gen_GibbsGamma; + m->CondLikeScaler = &CondLikeScaler_Gen_GibbsGamma; + m->Likelihood = &Likelihood_Gen_GibbsGamma; + } + else + { + m->CondLikeDown = &CondLikeDown_Gen; + m->CondLikeRoot = &CondLikeRoot_Gen; + m->CondLikeScaler = &CondLikeScaler_Gen; + m->Likelihood = &Likelihood_Gen; + } + if (m->nst == 1) + m->TiProbs = &TiProbs_Gen; + else if (m->nst == 2) + m->TiProbs = &TiProbs_Gen; + else + m->TiProbs = &TiProbs_Gen; + m->CondLikeUp = &CondLikeUp_Gen; + m->PrintAncStates = &PrintAncStates_Gen; + m->PrintSiteRates = &PrintSiteRates_Gen; + } + else if (m->nucModelId == NUCMODEL_CODON) + { + /* codon models */ + if (m->numOmegaCats == 1) + { + if (m->gibbsGamma == YES) + { + m->CondLikeDown = &CondLikeDown_Gen_GibbsGamma; + m->CondLikeRoot = &CondLikeRoot_Gen_GibbsGamma; + m->CondLikeScaler = &CondLikeScaler_Gen_GibbsGamma; + m->Likelihood = &Likelihood_Gen_GibbsGamma; + } + else + { + m->CondLikeDown = &CondLikeDown_Gen; + m->CondLikeRoot = &CondLikeRoot_Gen; + m->CondLikeScaler = &CondLikeScaler_Gen; + m->Likelihood = &Likelihood_Gen; +# if defined (SSE_ENABLED) + if (m->printAncStates == YES || m->printSiteRates == YES) + { + MrBayesPrint ("%s Non-SSE version of conditional likelihood calculator will be used for division %d\n", spacer, i+1); + MrBayesPrint ("%s due to request of reporting 'ancestral states' or 'site rates'.\n", spacer); + } + else + { + m->useSSE= YES; + m->CondLikeDown = &CondLikeDown_Gen_SSE; + m->CondLikeRoot = &CondLikeRoot_Gen_SSE; + m->CondLikeScaler = &CondLikeScaler_Gen_SSE; + m->Likelihood = &Likelihood_Gen_SSE; + } +# endif + } + } + else + { + m->CondLikeDown = &CondLikeDown_NY98; + m->CondLikeRoot = &CondLikeRoot_NY98; + m->CondLikeScaler = &CondLikeScaler_NY98; + m->Likelihood = &Likelihood_NY98; + m->PosSelProbs = &PosSelProbs; + m->SiteOmegas = &SiteOmegas; +# if defined (SSE_ENABLED) + if (m->printAncStates == YES || m->printSiteRates == YES) + { + MrBayesPrint ("%s Non-SSE version of conditional likelihood calculator will be used for division %d\n", spacer, i+1); + MrBayesPrint ("%s due to request of reporting 'ancestral states' or 'site rates'.\n", spacer); + } + else + { + m->useSSE= YES; + m->CondLikeDown = &CondLikeDown_NY98_SSE; + m->CondLikeRoot = &CondLikeRoot_NY98_SSE; + m->CondLikeScaler = &CondLikeScaler_NY98_SSE; + m->Likelihood = &Likelihood_NY98_SSE; + m->PosSelProbs = &PosSelProbs_SSE; + m->SiteOmegas = &SiteOmegas_SSE; + } +# endif + } + m->TiProbs = &TiProbs_Gen; + if (m->nCijkParts > 1) + m->TiProbs = &TiProbs_GenCov; + m->CondLikeUp = &CondLikeUp_Gen; + m->PrintAncStates = &PrintAncStates_Gen; + m->PrintSiteRates = &PrintSiteRates_Gen; + } + else /* if (m->nucModelId == NUCMODEL_AA) */ + { + if (m->gibbsGamma == YES) + { + m->CondLikeDown = &CondLikeDown_Gen_GibbsGamma; + m->CondLikeRoot = &CondLikeRoot_Gen_GibbsGamma; + m->CondLikeScaler = &CondLikeScaler_Gen_GibbsGamma; + m->Likelihood = &Likelihood_Gen_GibbsGamma; + } + else + { + m->CondLikeDown = &CondLikeDown_Gen; + m->CondLikeRoot = &CondLikeRoot_Gen; + m->CondLikeScaler = &CondLikeScaler_Gen; + m->Likelihood = &Likelihood_Gen; +# if defined (SSE_ENABLED) + if (m->printAncStates == YES || m->printSiteRates == YES) + { + MrBayesPrint ("%s Non-SSE version of conditional likelihood calculator will be used for division %d\n", spacer, i+1); + MrBayesPrint ("%s due to request of reporting 'ancestral states' or 'site rates'.\n", spacer); + } + else + { + m->useSSE= YES; + m->CondLikeDown = &CondLikeDown_Gen_SSE; + m->CondLikeRoot = &CondLikeRoot_Gen_SSE; + m->CondLikeScaler = &CondLikeScaler_Gen_SSE; + m->Likelihood = &Likelihood_Gen_SSE; + } +# endif + } + if (m->nCijkParts > 1) + m->TiProbs = &TiProbs_GenCov; + else + m->TiProbs = &TiProbs_Gen; + m->CondLikeUp = &CondLikeUp_Gen; + m->StateCode = &StateCode_AA; + m->PrintAncStates = &PrintAncStates_Gen; + m->PrintSiteRates = &PrintSiteRates_Gen; + } + } + } + else if (m->dataType == PROTEIN) + { + if (m->parsModelId == YES) + { + m->Likelihood = &Likelihood_Pars; + } + else + { + /* TODO: allow autocorrelated rates for covarion model */ + if (m->gibbsGamma == YES) + { + m->CondLikeDown = &CondLikeDown_Gen_GibbsGamma; + m->CondLikeRoot = &CondLikeRoot_Gen_GibbsGamma; + m->CondLikeScaler = &CondLikeScaler_Gen_GibbsGamma; + m->Likelihood = &Likelihood_Gen_GibbsGamma; + } + else + { + m->CondLikeDown = &CondLikeDown_Gen; + m->CondLikeRoot = &CondLikeRoot_Gen; + m->CondLikeScaler = &CondLikeScaler_Gen; + m->Likelihood = &Likelihood_Gen; +# if defined (SSE_ENABLED) + if (m->printAncStates == YES || m->printSiteRates == YES) + { + MrBayesPrint ("%s Non-SSE version of conditional likelihood calculator will be used for division %d\n", spacer, i+1); + MrBayesPrint ("%s due to request of reporting 'ancestral states' or 'site rates'.\n", spacer); + } + else + { + m->useSSE= YES; + m->CondLikeDown = &CondLikeDown_Gen_SSE; + m->CondLikeRoot = &CondLikeRoot_Gen_SSE; + m->CondLikeScaler = &CondLikeScaler_Gen_SSE; + m->Likelihood = &Likelihood_Gen_SSE; + } +# endif + } + if (m->correlation != NULL) + { + if (m->gibbsGamma == YES) + { + MrBayesPrint ("%s Adgamma model cannot be used with Gibbs sampling of rate categories\n", spacer); + return (ERROR); + } + else + m->Likelihood = &Likelihood_Adgamma; + } + if (m->numModelStates > 20 && m->nCijkParts > 1) + m->TiProbs = &TiProbs_GenCov; + else + m->TiProbs = &TiProbs_Gen; + m->CondLikeUp = &CondLikeUp_Gen; + m->StateCode = &StateCode_AA; + m->PrintAncStates = &PrintAncStates_Gen; + m->PrintSiteRates = &PrintSiteRates_Gen; + } + } + else if (m->dataType == RESTRICTION) + { + if (m->parsModelId == YES) + { + m->Likelihood = &Likelihood_Pars; + } + else + { + m->CondLikeDown = &CondLikeDown_Bin; + m->CondLikeRoot = &CondLikeRoot_Bin; + m->CondLikeScaler = &CondLikeScaler_Gen; + m->Likelihood = &Likelihood_Res; +# if defined (SSE_ENABLED) + if (m->printAncStates == YES || m->printSiteRates == YES) + { + MrBayesPrint ("%s Non-SSE version of conditional likelihood calculator will be used for division %d\n", spacer, i+1); + MrBayesPrint ("%s due to request of reporting 'ancestral states' or 'site rates'.\n", spacer); + } + else + { + m->useSSE= YES; + m->CondLikeDown = &CondLikeDown_Bin_SSE; + m->CondLikeRoot = &CondLikeRoot_Bin_SSE; + m->CondLikeScaler = &CondLikeScaler_Gen_SSE; + m->Likelihood = &Likelihood_Res_SSE; + } +# endif + m->TiProbs = &TiProbs_Res; + m->CondLikeUp = &CondLikeUp_Bin; + m->StateCode = &StateCode_Std; + m->PrintAncStates = &PrintAncStates_Bin; + m->PrintSiteRates = &PrintSiteRates_Gen; + } + } + else if (m->dataType == STANDARD) + { + if (m->parsModelId == YES) + { + if (m->numModelStates == 2) + { + m->Likelihood = &Likelihood_Pars; /* this is much faster if number of states do not vary */ + m->numStates = 2; /* this is needed for the parsimony calculator */ + } + else + m->Likelihood = &Likelihood_ParsStd; + } + else + { + m->CondLikeDown = &CondLikeDown_Std; + m->CondLikeRoot = &CondLikeRoot_Std; + m->CondLikeScaler = &CondLikeScaler_Std; + m->Likelihood = &Likelihood_Std; + m->TiProbs = &TiProbs_Std; + m->CondLikeUp = &CondLikeUp_Std; + m->StateCode = &StateCode_Std; + m->PrintAncStates = &PrintAncStates_Std; + m->PrintSiteRates = &PrintSiteRates_Std; + } + } + else if (m->dataType == CONTINUOUS) + { + + } + else + { + MrBayesPrint ("%s ERROR: Data should be one of these types!\n", spacer); + return ERROR; + } + + } + + return NO_ERROR; +} + + +/* Determine number of chains and data splits to be handled by MPI processors or threads */ +int SetLocalChainsAndDataSplits(void) +{ +# if defined (MPI_ENABLED) + + /* tell user how many chains each processor has been assigned */ + if (num_procs <= numGlobalChains) + { + if (numGlobalChains % num_procs != 0) + { + MrBayesPrint ("%s The total number of chains (%d) must be evenly divisible by\n", spacer, numGlobalChains); + MrBayesPrint ("%s the number of MPI processors (%d).\n", spacer, num_procs); + /* + MrBayesPrint ("%s The total number of chains (%d) must be evenly divisible by\n", spacer, numGlobalChains); + MrBayesPrint ("%s the number of MPI processors (%d), or the number of MPI\n", spacer, num_procs); + MrBayesPrint ("%s processors should be a multiple of the number of chains.\n", spacer, num_procs); + */ + MrBayesPrint ("%s Please change your MPI settings.\n", spacer, num_procs); + return ERROR; + } + numLocalChains = numGlobalChains / num_procs; + MrBayesPrint ("%s Number of chains per MPI processor = %d\n", spacer, numLocalChains); + } + else + { + MrBayesPrint ("%s There must be at least as many chains as MPI processors\n", spacer); + return (ERROR); + } + /* + { + if (num_procs % numGlobalChains != 0) + { + MrBayesPrint ("%s The number of MPI processors (%d) must be a multiple of the\n", spacer, num_procs); + MrBayesPrint ("%s total number of chains (%d), or the total number of chains\n", spacer, numGlobalChains); + MrBayesPrint ("%s should be evenly divisible by the number of MPI processsors.\n", spacer); + MrBayesPrint ("%s Please change your MPI settings.\n", spacer); + return ERROR; + } + numLocalChains = 1; + // numMPIDataSplits = num_procs / numGlobalChains; + // MrBayesPrint ("%s Number of MPI data splits per chain = %d\n", spacer, numMPIDataSplits); + } + */ +# else + + numLocalChains = numGlobalChains; + +# endif + +# if defined (THREADS_ENABLED) + + if (numLocalChains > 1) + { + /* Use pthreads to divide chains and possibly do data splits */ + } + else + { + /* Use pthreads for data splits */ + } +# endif + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------------------- +| +| ShowMoveSummary: Show summary of moves that will be used in MCMC sampling +| +-----------------------------------------------------------------------------*/ +int ShowMoveSummary (void) +{ + int i, run, chain, areRunsSame, areChainsSame, chainIndex; + MCMCMove *mv; + MrBFlt prob; + + /* first find out if the probabilities are different in different runs */ + areRunsSame = YES; + for (run=1; runrelProposalProb[chainIndex], mv->relProposalProb[chain], 0.000001) == NO) + { + areRunsSame = NO; + break; + } + } + if (areRunsSame == NO) + break; + } + if (areRunsSame == NO) + break; + } + + /* now print values */ + for (run=0; run= 1) + break; + + /* find out if chains are different within this run */ + areChainsSame = YES; + for (chain=1; chainrelProposalProb[chainIndex], mv->relProposalProb[chainIndex-chain], 0.000001) == NO) + { + areChainsSame = NO; + break; + } + } + if (areChainsSame == NO) + break; + } + + for (chain=0; chain= 1) + break; + + /* now we can print the values */ + MrBayesPrint("\n"); + if (areRunsSame == YES && areChainsSame == YES) + MrBayesPrint ("%s The MCMC sampler will use the following moves:\n", spacer); + else if (areRunsSame == NO && areChainsSame == YES) + MrBayesPrint ("%s The MCMC sampler will use the following moves for run %d:\n", spacer, run+1); + else if (areRunsSame == YES && areChainsSame == NO) + MrBayesPrint ("%s The MCMC sampler will use the following moves for chain %d:\n", spacer, chain+1); + else if (areRunsSame == NO && areChainsSame == NO) + MrBayesPrint ("%s The MCMC sampler will use the following moves for run %d, chain %d:\n", spacer, run+1, chain+1); + + chainIndex = run*chainParams.numChains + chain; + MrBayesPrint ("%s With prob. Chain will use move\n", spacer); + for (i=0; icumProposalProb[chainIndex]; + if (i > 0) + prob -= usedMoves[i-1]->cumProposalProb[chainIndex]; + if (AreDoublesEqual(prob,0.0,0.000001) == YES) + continue; + MrBayesPrint ("%s %6.2f %% %s\n", spacer, 100*prob, mv->name); + } + MrBayesPrint ("\n"); + } /* next chain */ + } /* next run */ + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------------- +| +| SetUpPartitionCounters: Set up partitions and the root of the +| partition frequency tree +| +|----------------------------------------------------------------------*/ +int SetUpPartitionCounters (void) +{ + int i; + +# if defined (MPI_ENABLED) + /* we only keep partition counters on proc 0 in the MPI version */ + if (proc_id != 0) + return (NO_ERROR); +# endif + nLongsNeeded = 1 + (numLocalTaxa - 1) / nBitsInALong; + + if (memAllocs[ALLOC_PFCOUNTERS] == YES) + { + MrBayesPrint ("%s ERROR: pfcounters not free in SetUpPartitionCounters\n", spacer); + return ERROR; + } + partition = (BitsLong **) SafeCalloc (2*numLocalTaxa, sizeof (BitsLong *)); + if (partition == NULL) + { + MrBayesPrint ("%s Failed to allocate partition in SetUpPartitionCounters\n", spacer); + return ERROR; + } + partition[0] = (BitsLong *) SafeCalloc (2*numLocalTaxa * nLongsNeeded, sizeof(BitsLong)); + if (partition[0] == NULL) + { + free (partition); + MrBayesPrint ("%s Failed to allocate partition[0] in SetUpPartitionCounters\n", spacer); + return ERROR; + } + partFreqTreeRoot = (PFNODE **) SafeCalloc (numTopologies, sizeof (PFNODE *)); + if (partFreqTreeRoot == NULL) + { + free (partition); + free (partition[0]); + MrBayesPrint ("%s Failed to allocate partFreqTreeRoot in SetUpPartitionCounters\n", spacer); + return ERROR; + } + memAllocs[ALLOC_PFCOUNTERS] = YES; + + for (i=1; i<2*numLocalTaxa; i++) + { + partition[i] = partition[0] + i*nLongsNeeded; + } + + for (i=0; inumSSEChars = ((m->numChars - 1) / FLOATS_PER_VEC) + 1; + if (m->dataType != STANDARD && m->gibbsGamma == NO) + numComprChars += m->numSSEChars * FLOATS_PER_VEC; + else + numComprChars += m->numChars; + } +# else + numComprChars = numCompressedChars; +# endif + + termState = (int *) SafeCalloc (numLocalTaxa * numComprChars, sizeof(int)); + if (termState) + memAllocs[ALLOC_TERMSTATE] = YES; + else + { + MrBayesPrint ("%s Problem allocating termState\n", spacer); + return (ERROR); + } + isPartAmbig = (int *) SafeCalloc (numLocalTaxa*numCurrentDivisions, sizeof(int)); + if (isPartAmbig) + memAllocs[ALLOC_ISPARTAMBIG] = YES; + else + { + MrBayesPrint ("%s Problem allocating isPartAmbig\n", spacer); + return (ERROR); + } + + /*initialize isPartAmbig */ + for (i=0; idataType == CONTINUOUS) + continue; + + m->termState = (int **) SafeCalloc (numLocalTaxa, sizeof(int *)); + if (!m->termState) + { + MrBayesPrint("%s Problems allocating termState pointers for division %d\n", spacer, d+1); + return ERROR; + } + +# if defined SSE_ENABLED + if (m->dataType != STANDARD && m->gibbsGamma == NO) + numComprChars = m->numSSEChars * FLOATS_PER_VEC; + else + numComprChars = m->numChars; + +# else + numComprChars = m->numChars; +# endif + + for (i=0; itermState[i] = termStatePtr; + termStatePtr += numComprChars; + } + + m->isPartAmbig = isPartAmbig + numLocalTaxa * d; + + for (i=0; iparsSets[i]; + for (c=0; cnumChars; c++) + { + for (k=n=0; knumStates; k++) + { + if (IsBitSet(k, p)) + { + x = k; + n++; + } + } + /* find appropriate index */ + if (n == 1) + m->termState[i][c] = x * m->numModelStates; + else if (n == m->numStates) + m->termState[i][c] = m->numStates * m->numModelStates; + else + m->isPartAmbig[i] = YES; + + p += m->nParsIntsPerSite; + } + for (; ctermState[i][c] = m->numStates * m->numModelStates; + } + } + } + + /* print the termState matrix */ +# if defined (DEBUG_SETUPTERMSTATE) + PrintTermState(); + getchar(); +# endif + + return NO_ERROR; +} + + +/*---------------------------------------------------------------------------- +| +| SetUsedMoves: This function will extract an array of pointers to the moves +| that will actually be used in the MCMC sampling. It also makes sure +| that the parsimonyBased flag is set in the relevant model partitions +| if there are moves used that are based on parsimony scores +| +-----------------------------------------------------------------------------*/ +int SetUsedMoves (void) +{ + int i, j, moveIndex, numGlobalChains; + MrBFlt prob, sum, cumSum; + + /* first count moves */ + numUsedMoves = 0; + numGlobalChains = chainParams.numChains * chainParams.numRuns; + for (i=0; irelProposalProb[j] > prob) + prob = moves[i]->relProposalProb[j]; + } + if (prob > 0.000001) + numUsedMoves++; + } + + /* allocate space */ + if (memAllocs[ALLOC_USEDMOVES] == YES) + { + MrBayesPrint ("%s Memory problem: usedMoves not free in SetUsedMoves\n", spacer); + return (ERROR); + } + usedMoves = (MCMCMove **) SafeMalloc (numUsedMoves * sizeof (MCMCMove *)); + if (!usedMoves) + { + MrBayesPrint ("%s Problem allocating usedMoves\n", spacer); + return (ERROR); + } + memAllocs[ALLOC_USEDMOVES] = YES; + + /* set move pointers */ + moveIndex = 0; + for (i=0; irelProposalProb[j] > prob) + prob = moves[i]->relProposalProb[j]; + } + if (prob > 0.000001) + usedMoves[moveIndex++] = moves[i]; + } + + if (moveIndex != numUsedMoves) + { + MrBayesPrint ("%s Problem finding the used moves\n", spacer); + return (ERROR); + } + + /* set parsimony flag if applicable */ + for (i=0; imoveType->parsimonyBased == YES) + { + for (j=0; jparm->nRelParts; j++) + modelSettings[usedMoves[i]->parm->relParts[j]].parsimonyBasedMove = YES; + } + } + + /* set cumulative proposal probabilities */ + for (j=0; jrelProposalProb[j]; + } + cumSum = 0.0; + for (i=0; irelProposalProb[j]; + usedMoves[i]->cumProposalProb[j] = cumSum / sum; + } + } + + /* reset acceptance probability values */ + for (i=0; inAccepted[j] = 0; + usedMoves[i]->nTried[j] = 0; + usedMoves[i]->nTotAccepted[j] = 0; + usedMoves[i]->nTotTried[j] = 0; + } + } + + return (NO_ERROR); +} + + +void ShowValuesForChain (int chn) +{ + int i; + char s[100]; + + MrBayesPrint ("%s Chain = %d\n", spacer, chn); + MrBayesPrint ("%s numParams = %d\n", spacer, numParams); + MrBayesPrint ("%s numTrees = %d\n", spacer, numTrees); + MrBayesPrint ("%s current state: %d\n", spacer, state[chn]); + + strcat (spacer, " "); + + /* tRatio */ + for (i=0; iright, i, j); + + if (q != NULL) + { + return q; + } + else if (IsPFNodeEmpty (p) == NO) + { + *i = j; + return p; + } + else + { + return SmallestNonemptyPFNode (p->left, i, j); + } +} + + +/* Talloc: Allocate space for a new node in the tree keeping track of partition frequencies */ +PFNODE *Talloc (void) +{ + PFNODE *temp; + + temp = (PFNODE *) SafeMalloc (sizeof(PFNODE)); + if (temp == NULL) + return NULL; + + temp->partition = (BitsLong *) SafeCalloc (nLongsNeeded, sizeof (BitsLong)); + if (temp->partition == NULL) + { + free (temp); + return NULL; + } + + temp->count = (int *) SafeCalloc (chainParams.numRuns, sizeof (int)); + if (temp->count == NULL) + { + free (temp->partition); + free (temp); + return NULL; + } + + return temp; +} + + +MrBFlt Temperature (int id) +{ + /* let id be number of chain in run */ + id %= chainParams.numChains; + + if (chainParams.userDefinedTemps == YES) + { + return (chainParams.userTemps[id]); + } + else + { + return (1.0 / (1.0 + chainParams.chainTemp * id)); + } +} + + +/* Tfree: Free space for partition frequency counter tree */ +void Tfree (PFNODE *r) +{ + if (r != NULL) + { + if (r->left != NULL) + Tfree (r->left); + if (r->right != NULL) + Tfree (r->right); + + free (r->partition); + free (r->count); + free (r); + } +} + + +void TouchAllCijks (int chain) +{ + int i; + + for (i=0; i= 1) + modelSettings[i].upDateCijk = YES; + } + + return; + MrBayesPrint ("%d", chain); /* just because I am tired of seeing the unused parameter error msg */ +} + + +void TouchAllPartitions (void) +{ + int i; + + for (i=0; inNodes; j++) + { + p = t->allDownPass[j]; + p->upDateCl = YES; + p->upDateTi = YES; + } + } + + for (i=0; i= 1) + modelSettings[i].upDateCijk = YES; + modelSettings[i].upDateCl = YES; + modelSettings[i].upDateAll = YES; + } + + for (i=0; inNodes; j++) + { + p = t->allDownPass[j]; + p->upDateCl = YES; + p->upDateTi = YES; + } + } + + return; +} + + +/*------------------------------------------------------------------ +| +| TreeLength: Calculates the tree length as the sum of the lengths +| of all the branches. The tree length is the expected number +| of character state transformations per character over the +| entire phylogenetic tree. +| +-------------------------------------------------------------------*/ +MrBFlt TreeLength (Param *param, int chain) +{ + int i, j; + MrBFlt tl; + Tree *t; + TreeNode *p; + + if (param->paramId == BRLENS_PARSIMONY) + { + tl = 0.0; + for (j=0; jnRelParts; j++) + tl += modelSettings[param->relParts[j]].parsTreeLength[2*chain+state[chain]]; + } + else + { + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* loop over all branches of the tree */ + tl = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + if (p->anc->anc == NULL && t->isRooted == NO) + { + tl += p->length; + } + else + { + tl += p->length; + } + } + } + } + + return (tl); +} + + +/* proportion of ancestral fossils in a FBD tree */ +MrBFlt PropAncFossil (Param *param, int chain) +{ + int i, m, k; + Tree *t; + TreeNode *p; + + t = GetTree (param, chain, state[chain]); + + if (t->isRooted == NO) + return 0.0; + + /* count # of tip and ancestral fossils */ + m = k = 0; + for (i = 0; i < t->nNodes -2; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL && p->right == NULL && p->nodeDepth > 0.0) + { + if (p->length > 0.0) + m++; + else + k++; + } + } + + if (k == 0) + return 0.0; + else + return (MrBFlt)k / (m+k); +} + diff --git a/src/mcmc.h b/src/mcmc.h new file mode 100644 index 0000000..f231cff --- /dev/null +++ b/src/mcmc.h @@ -0,0 +1,34 @@ +#ifndef __MCMC_H__ +#define __MCMC_H__ + +int AddToPrintString (char *tempStr); +void AutotuneDirichlet (MrBFlt acceptanceRate, MrBFlt targetRate, int batch, MrBFlt *alphaPi, MrBFlt minTuning, MrBFlt maxTuning); +void AutotuneMultiplier (MrBFlt acceptanceRate, MrBFlt targetRate, int batch, MrBFlt *lambda, MrBFlt minTuning, MrBFlt maxTuning); +void AutotuneSlider (MrBFlt acceptanceRate, MrBFlt targetRate, int batch, MrBFlt *width, MrBFlt minTuning, MrBFlt maxTuning); +int DoMcmc (void); +int DoMcmcp (void); +int DoMcmcParm (char *parmName, char *tkn); +int DoSs (void); +int DoSsp (void); +int DoSsParm (char *parmName, char *tkn); +int ExhaustiveParsimonySearch (Tree *t, int chain, TreeInfo *tInfo); +MrBFlt GetParsDP (Tree *t, TreeNode *p, int chain); +void GetParsFP (Tree *t, TreeNode *p, int chain); +int GetParsimonyBrlens (Tree *t, int chain, MrBFlt *brlens); +MrBFlt GetParsimonyLength (Tree *t, int chain); +void GetParsimonySubtreeRootstate (Tree *t, TreeNode *root, int chain); +MrBFlt GetRate (int division, int chain); +int LnBirthDeathPriorPr (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt sR, MrBFlt eR, char *sS, MrBFlt sF); +int LnCoalescencePriorPr (Tree *t, MrBFlt *prob, MrBFlt theta, MrBFlt growth); +MrBFlt LnUniformPriorPr (Tree *t, MrBFlt clockRate); +int LnFossilizationPriorPr (Tree *t, MrBFlt clockRate, MrBFlt *prob, MrBFlt *sR, MrBFlt *eR, MrBFlt sF, MrBFlt *fR, char *sS); +int LogClockTreePriorRatio (Param *param, int chain, MrBFlt *lnPriorRatio); +MrBFlt LogDirPrior (Tree *t, ModelParams *mp, int PV); +MrBFlt LogOmegaPrior (MrBFlt w1, MrBFlt w2, MrBFlt w3); +FILE *OpenNewMBPrintFile (char *fileName); +int ResetScalersPartition (int *isScalerNode, Tree* t, unsigned rescaleFreq); +int SafeSprintf (char **target, int *targetLen, char *fmt, ...); +int SetFilePositions (int samplePos); +MrBFlt TreeLength (Param *param, int chain); + +#endif /* __MCMC_H__ */ diff --git a/src/model.c b/src/model.c new file mode 100644 index 0000000..1053f23 --- /dev/null +++ b/src/model.c @@ -0,0 +1,24216 @@ +/* + * MrBayes 3 + * + * (c) 2002-2013 + * + * John P. Huelsenbeck + * Dept. Integrative Biology + * University of California, Berkeley + * Berkeley, CA 94720-3140 + * johnh@berkeley.edu + * + * Fredrik Ronquist + * Swedish Museum of Natural History + * Box 50007 + * SE-10405 Stockholm, SWEDEN + * fredrik.ronquist@nrm.se + * + * With important contributions by + * + * Paul van der Mark (paulvdm@sc.fsu.edu) + * Maxim Teslenko (maxim.teslenko@nrm.se) + * + * and by many users (run 'acknowledgments' to see more info) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details (www.gnu.org). + * + */ + +#include "bayes.h" +#include "best.h" +#include "command.h" +#include "model.h" +#include "mcmc.h" +#include "proposal.h" +#include "sumpt.h" +#include "utils.h" +#if defined(__MWERKS__) +#include "SIOUX.h" +#endif + +const char* const svnRevisionModelC = "$Rev: 1067 $"; /* Revision keyword which is expended/updated by svn on each commit/update */ + +#undef DEBUG_ADDDUMMYCHARS +#undef DEBUG_CONSTRAINTS +#undef DEBUG_COMPRESSDATA +#undef DEBUG_CPP + +/* local prototypes */ +int AddDummyChars (void); +void AllocateCppEvents (Param *p); +MCMCMove *AllocateMove (MoveType *moveType, Param *param); +int AllocateNormalParams (void); +int AllocateTreeParams (void); +void CheckCharCodingType (Matrix *m, CharInfo *ci); +int CheckExpandedModels (void); +int CompressData (void); +int InitializeChainTrees (Param *p, int from, int to, int isRooted); +int FillBrlensSubParams (Param *param, int chn, int state); +void FreeCppEvents (Param *p); +void FreeMove (MCMCMove *mv); +void GetPossibleAAs (int aaCode, int aa[]); +void GetPossibleNucs (int nucCode, int nuc[]); +void GetPossibleRestrictionSites (int resSiteCode, int *sites); +int GetUserTreeFromName (int *index, char *treeName); +void InitializeMcmcTrees (Param *p); +int IsApplicable (Param *param); +int IsApplicable_FiveTaxaOrMore (Param *param); +int IsApplicable_FourTaxaOrMore (Param *param); +int IsApplicable_ThreeTaxaOrMore (Param *param); +int IsApplicableTreeAgeMove (Param *param); +int IsModelSame (int whichParam, int part1, int part2, int *isApplic1, int *isApplic2); +int LargestMovableSubtree(Param *treeParam); +int NumActiveParts (void); +int NumInformativeHardConstraints (ModelParams *mp); +int NumNonExcludedChar (void); +int NumStates (int part); +int PrintCompMatrix (void); +int PrintMatrix (void); +int ProcessStdChars (RandLong *seed); +void SetCode (int part); +int SetModelParams (void); +int SetPopSizeParam (Param *param, int chn, int state, PolyTree *pt); +int SetRelaxedClockParam (Param *param, int chn, int state, PolyTree *pt); +int SetUpLinkTable (void); +int ShowMoves (int used); +int ShowParameters (int showStartVals, int showMoves, int showAllAvailable); +int UpdateCppEvolLength (int *nEvents, MrBFlt **pos, MrBFlt **rateMult, MrBFlt *evolLength, TreeNode *p, MrBFlt baseRate); + +/* globals */ +int *activeParams[NUM_LINKED]; /* a table holding the parameter link status */ +int localOutGroup; /* outgroup for non-excluded taxa */ +Calibration **localTaxonCalibration = NULL; /* stores local taxon calibrations (ages) */ +char **localTaxonNames = NULL; /* points to names of non-excluded taxa */ +Model *modelParams; /* holds model params */ +ModelInfo *modelSettings; /* stores important info on model params */ +MCMCMove **moves; /* vector of pointers to applicable moves */ +int numApplicableMoves; /* number of moves applicable to model parameters */ +int numCurrentDivisions; /* number of partitions of data */ +int numGlobalChains; /* number of global chains */ +int numLocalTaxa; /* number of non-excluded taxa */ +int numLocalChar; /* number of non-excluded characters */ +int numParams; /* number of parameters in model */ +int numTopologies; /* number of topologies for one chain and state */ +int numTrees; /* number of trees for one chain and state */ +Param *params; /* vector of parameters */ +Param *printParams; /* vector of subst model parameters to print */ +ShowmovesParams showmovesParams; /* holds parameters for Showmoves command */ +Param *treePrintparams; /* vector of tree parameters to print */ +int setUpAnalysisSuccess; /* Set to YES if analysis is set without error */ + +/* globals used to describe and change the current model; allocated in AllocCharacters and SetPartition */ +int *numVars; /* number of variables in setting arrays */ +int *activeParts; /* partitions changes should apply to */ +int *linkTable[NUM_LINKED]; /* how parameters are linked across parts */ +int *tempLinkUnlink[NUM_LINKED]; /* for changing parameter linkage */ +int *tempLinkUnlinkVec; /* for changing parameter linkage */ +MrBFlt *tempNum; /* vector of numbers used for setting arrays */ + +/* Aamodel parameters */ +MrBFlt aaJones[20][20]; /* rates for Jones model */ +MrBFlt aaDayhoff[20][20]; /* rates for Dayhoff model */ +MrBFlt aaMtrev24[20][20]; /* rates for mtrev24 model */ +MrBFlt aaMtmam[20][20]; /* rates for mtmam model */ +MrBFlt aartREV[20][20]; /* rates for rtREV model */ +MrBFlt aaWAG[20][20]; /* rates for WAG model */ +MrBFlt aacpREV[20][20]; /* rates for aacpREV model */ +MrBFlt aaVt[20][20]; /* rates for VT model */ +MrBFlt aaBlosum[20][20]; /* rates for Blosum62 model */ +MrBFlt aaLG[20][20]; /* rates for LG model */ +MrBFlt jonesPi[20]; /* stationary frequencies for Jones model */ +MrBFlt dayhoffPi[20]; /* stationary frequencies for Dayhoff model */ +MrBFlt mtrev24Pi[20]; /* stationary frequencies for mtrev24 model */ +MrBFlt mtmamPi[20]; /* stationary frequencies for mtmam model */ +MrBFlt rtrevPi[20]; /* stationary frequencies for rtREV model */ +MrBFlt wagPi[20]; /* stationary frequencies for WAG model */ +MrBFlt cprevPi[20]; /* stationary frequencies for aacpREV model */ +MrBFlt vtPi[20]; /* stationary frequencies for VT model */ +MrBFlt blosPi[20]; /* stationary frequencies for Blosum62 model */ +MrBFlt lgPi[20]; /* stationary frequencies for LG model */ + +/* parser flags and variables */ +int fromI, toJ, foundDash, foundComma, foundEqual, foundBeta, + foundAaSetting, foundExp, modelIsFixed, linkNum, foundLeftPar, + foundFSNum[999], foundFSTime[999], tempNumStates, isNegative; +MrBFlt tempStateFreqs[200], tempAaModelPrs[10]; +char colonPr[100], clockPr[30]; + +/* other local variables (this file) */ +MrBFlt empiricalFreqs[200]; /* emprical base frequencies for partition */ +int intValsRowSize = 0; /* row size of intValues matrix */ +int *intValues = NULL; /* stores int values of chain parameters */ +Tree **mcmcTree; /* pointers to trees for mcmc */ +int paramValsRowSize = 0; /* row size of paramValues matrix */ +MrBFlt *paramValues = NULL; /* stores actual values and subvalues of chain parameters */ +int *relevantParts = NULL; /* partitions that are affected by this move */ +Param **subParamPtrs; /* pointer to subparams for topology params */ +int *stateSize; /* # states for each compressed char */ +// int foundCurly; +// char *plotTokenP; /* plotToken[CMD_STRING_LENGTH];*/ + + +/*----------------------------------------------------------------------- +| +| AddDummyChars: Add dummy characters to relevant partitions +| +------------------------------------------------------------------------*/ +int AddDummyChars (void) +{ + int i, j, k, d, numIncompatible, numDeleted, numStdChars, oldRowSize, + newRowSize, numDummyChars, newColumn, newChar, oldColumn, oldChar, + isCompat, *tempChar, numIncompatibleChars; + BitsLong *tempMatrix, bitsLongOne = 1; + CLFlt *tempSitesOfPat; + ModelInfo *m; + ModelParams *mp; + CharInfo cinfo; + Matrix matrix; + + /* set pointers to NULL */ + tempMatrix = NULL; + tempSitesOfPat = NULL; + tempChar = NULL; + + /* check how many dummy characters needed in total */ + numDummyChars = 0; + numStdChars = 0; + for (d=0; dnumDummyChars = 0; + + if (mp->dataType == RESTRICTION && !strcmp(mp->parsModel,"No")) + { + if (mp->coding & NOABSENCESITES) + m->numDummyChars++; + if (mp->coding & NOPRESENCESITES) + m->numDummyChars++; + if (mp->coding & NOSINGLETONABSENCE) + m->numDummyChars += numLocalTaxa; + if (mp->coding & NOSINGLETONPRESENCE) + m->numDummyChars += numLocalTaxa; + } + + if (mp->dataType == STANDARD && !strcmp(mp->parsModel,"No")) + { + if (mp->coding & VARIABLE) + m->numDummyChars += 2; + if (mp->coding & NOSINGLETONS) + m->numDummyChars += 2*numLocalTaxa; + numStdChars += (m->numChars + m->numDummyChars); + } + + numDummyChars += m->numDummyChars; + m->numChars += m->numDummyChars; + } + + /* exit if dummy characters not needed */ + if (numDummyChars == 0) + return NO_ERROR; + + /* print original compressed matrix */ +# if defined (DEBUG_ADDDUMMYCHARS) + MrBayesPrint ("Compressed matrix before adding dummy characters...\n"); + PrintCompMatrix(); +# endif + + /* set row sizes for old and new matrices */ + oldRowSize = compMatrixRowSize; + compMatrixRowSize += numDummyChars; + newRowSize = compMatrixRowSize; + numCompressedChars += numDummyChars; + + /* allocate space for new data */ + tempMatrix = (BitsLong *) SafeCalloc (numLocalTaxa * newRowSize, sizeof(BitsLong)); + tempSitesOfPat = (CLFlt *) SafeCalloc (numCompressedChars, sizeof(CLFlt)); + tempChar = (int *) SafeCalloc (compMatrixRowSize, sizeof(int)); + if (!tempMatrix || !tempSitesOfPat || !tempChar) + { + MrBayesPrint ("%s Problem allocating temporary variables in AddDummyChars\n", spacer); + goto errorExit; + } + + /* initialize indices */ + oldChar = newChar = newColumn = numDeleted = 0; + + /* set up matrix struct */ + matrix.origin = compMatrix; + matrix.nRows = numLocalTaxa; + matrix.rowSize = oldRowSize; + + /* loop over divisions */ + for (d=0; dnumDummyChars > 0) + { + // MrBayesPrint("%s Adding dummy characters (unobserved site patterns) for division %d\n", spacer, d+1); + // do not print this every time + + for (k=0; k<2; k++) + { + if (((mp->coding & NOSINGLETONPRESENCE) && k == 0) || ((mp->coding & NOSINGLETONABSENCE) && k == 1)) + { + for (i=0; i< numLocalTaxa; i++) + { + for (j=0; jcoding & NOABSENCESITES) + { + for (i=0; icoding & NOPRESENCESITES) + { + for (i=0; icompMatrixStart; oldColumncompMatrixStop; oldColumn++) + { + isCompat = YES; + /* first check if the character is supposed to be present */ + if (m->numDummyChars > 0) + { + /* set up matrix struct */ + matrix.column = oldColumn; + /* set up charinfo struct */ + cinfo.dType = mp->dataType; + cinfo.cType = charInfo[origChar[oldChar]].ctype; + cinfo.nStates = charInfo[origChar[oldChar]].numStates; + CheckCharCodingType(&matrix, &cinfo); + + if (mp->coding & VARIABLE) + { + if((mp->coding & VARIABLE) == VARIABLE && cinfo.variable == NO) + { + isCompat = NO; + } + else if((mp->coding & NOABSENCESITES) && cinfo.constant[0] == YES) + { + isCompat = NO; + } + else if((mp->coding & NOPRESENCESITES) && cinfo.constant[1] == YES) + { + isCompat = NO; + } + } + if (mp->coding & NOSINGLETONS) + { + if((mp->coding & NOSINGLETONS) == NOSINGLETONS && cinfo.informative == NO && cinfo.variable == YES) + { + isCompat = NO; + } + else if((mp->coding & NOSINGLETONABSENCE) && cinfo.singleton[0] == YES && cinfo.informative == NO) + { + isCompat = NO; + } + else if((mp->coding & NOSINGLETONPRESENCE) && cinfo.singleton[1] == YES && cinfo.informative == NO) + { + isCompat = NO; + } + } + } + + if (isCompat == NO) + { + numIncompatible++; + numIncompatibleChars += (int) numSitesOfPat[oldChar]; + oldChar++; + } + else + { + /* add character */ + for (i=0; icompMatrixStart+1) % m->nCharsPerSite == 0) + { + newChar++; + oldChar++; + } + } + } + + /* print a warning if there are incompatible characters */ + if (numIncompatible > 0) + { + m->numChars -= numIncompatible; + m->numUncompressedChars -= numIncompatibleChars; + numDeleted += numIncompatible; + if (numIncompatibleChars > 1) + { + MrBayesPrint ("%s WARNING: There are %d characters incompatible with the specified\n", spacer, numIncompatibleChars); + MrBayesPrint ("%s coding bias. These characters will be excluded.\n", spacer); + } + else + { + MrBayesPrint ("%s WARNING: There is one character incompatible with the specified\n", spacer); + MrBayesPrint ("%s coding bias. This character will be excluded.\n", spacer); + } + } + + /* update division comp matrix and comp char pointers */ + m->compCharStop = newChar; + m->compMatrixStop = newColumn; + m->compCharStart = newChar - m->numChars; + m->compMatrixStart = newColumn - m->nCharsPerSite * m->numChars; + + } /* next division */ + + /* compress matrix if necessary */ + if (numDeleted > 0) + { + for (i=k=0; inEvents = (int **) SafeCalloc (2*numGlobalChains, sizeof (int *)); + p->nEvents[0] = (int *) SafeCalloc (2*numGlobalChains*(2*numLocalTaxa), sizeof (int)); + for (i=1; i<2*numGlobalChains; i++) + p->nEvents[i] = p->nEvents[i-1] + (2*numLocalTaxa); + p->position = (MrBFlt ***) SafeCalloc (2*numGlobalChains, sizeof (MrBFlt **)); + p->position[0] = (MrBFlt **) SafeCalloc (2*numGlobalChains*(2*numLocalTaxa), sizeof (MrBFlt *)); + for (i=1; i<2*numGlobalChains; i++) + p->position[i] = p->position[i-1] + (2*numLocalTaxa); + p->rateMult = (MrBFlt ***) SafeCalloc (2*numGlobalChains, sizeof (MrBFlt **)); + p->rateMult[0] = (MrBFlt **) SafeCalloc (2*numGlobalChains*(2*numLocalTaxa), sizeof (MrBFlt *)); + for (i=1; i<2*numGlobalChains; i++) + p->rateMult[i] = p->rateMult[i-1] + (2*numLocalTaxa); + +} + + +/*---------------------------------------------------------------------------- +| +| AllocateMove: Allocate space for and initialize one applicable move +| +-----------------------------------------------------------------------------*/ +MCMCMove *AllocateMove (MoveType *moveType, Param *param) +{ + int i, j, nameLength; + char *partitionDescriptor = ""; + MCMCMove *temp; + + if ((temp = (MCMCMove *) SafeCalloc (1, sizeof (MCMCMove))) == NULL) + return (NULL); + + /* calculate length */ + if (strcmp (moveType->paramName, "") == 0) + nameLength = (int) (strlen (moveType->shortName) + strlen (param->name)) + 10; + else + { + partitionDescriptor = param->name; + while (*partitionDescriptor != '\0') + { + if (*partitionDescriptor == '{') + break; + partitionDescriptor++; + } + nameLength = (int) (strlen (moveType->shortName) + strlen (moveType->paramName) + strlen (partitionDescriptor)) + 10; + } + /* add length of names of subparams */ + if (moveType->subParams == YES) + { + for (i=0; inSubParams; i++) + nameLength += (int)(strlen(param->subParams[i]->name)) + 1; + } + + if ((temp->name = (char *) SafeCalloc (nameLength, sizeof (char))) == NULL) + { + free (temp); + return NULL; + } + + if ((temp->nAccepted = (int *) SafeCalloc (5*numGlobalChains, sizeof (int))) == NULL) + { + free (temp->name); + free (temp); + return NULL; + } + temp->nTried = temp->nAccepted + numGlobalChains; + temp->nBatches = temp->nAccepted + 2*numGlobalChains; + temp->nTotAccepted = temp->nAccepted + 3*numGlobalChains; + temp->nTotTried = temp->nAccepted + 4*numGlobalChains; + + if ((temp->relProposalProb = (MrBFlt *) SafeCalloc (4*numGlobalChains, sizeof (MrBFlt))) == NULL) + { + free (temp->nAccepted); + free (temp->name); + free (temp); + return NULL; + } + temp->cumProposalProb = temp->relProposalProb + numGlobalChains; + temp->targetRate = temp->relProposalProb + 2*numGlobalChains; + temp->lastAcceptanceRate = temp->relProposalProb + 3*numGlobalChains; + + if ((temp->tuningParam = (MrBFlt **) SafeCalloc (numGlobalChains, sizeof (MrBFlt *))) == NULL) + { + free (temp->relProposalProb); + free (temp->nAccepted); + free (temp->name); + free (temp); + return NULL; + } + if ((temp->tuningParam[0] = (MrBFlt *) SafeCalloc (moveType->numTuningParams*numGlobalChains, sizeof (MrBFlt))) == NULL) + { + free (temp->tuningParam); + free (temp->relProposalProb); + free (temp->nAccepted); + free (temp->name); + free (temp); + return NULL; + } + for (i=1; ituningParam[i] = temp->tuningParam[0] + (i * moveType->numTuningParams); + + /* set default values */ + if (strcmp(moveType->paramName, "") != 0) + sprintf (temp->name, "%s(%s%s)", moveType->shortName, moveType->paramName, partitionDescriptor); + else + { + sprintf (temp->name, "%s(%s", moveType->shortName, param->name); + if (moveType->subParams == YES) + { + for (i=0; inSubParams; i++) + { + strcat(temp->name,","); + strcat(temp->name,param->subParams[i]->name); + } + } + strcat (temp->name,")"); + } + + temp->moveType = moveType; + temp->moveFxn = moveType->moveFxn; + for (i=0; irelProposalProb[i] = moveType->relProposalProb; + temp->cumProposalProb[i] = 0.0; + temp->nAccepted[i] = 0; + temp->nTried[i] = 0; + temp->nBatches[i] = 0; + temp->nTotAccepted[i] = 0; + temp->nTotTried[i] = 0; + temp->targetRate[i] = moveType->targetRate; + temp->lastAcceptanceRate[i] = 0.0; + for (j=0; jnumTuningParams; j++) + temp->tuningParam[i][j] = moveType->tuningParam[j]; + } + return (temp); +} + + +/*---------------------------------------------------------------------- +| +| AllocateNormalParams: Allocate space for normal parameters +| +-----------------------------------------------------------------------*/ +int AllocateNormalParams (void) +{ + int i, k, nOfParams, nOfIntParams; + Param *p; + + /* Count the number of param values and subvalues */ + nOfParams = 0; + nOfIntParams = 0; + for (k=0; k 0) + intValues = (int *) SafeRealloc ((void *) intValues, nOfIntParams * sizeof(int)); + } + else + { + paramValues = (MrBFlt *) SafeCalloc (nOfParams, sizeof(MrBFlt)); + if (nOfIntParams > 0) + intValues = (int *) SafeCalloc (nOfIntParams, sizeof(int)); + else + intValues = NULL; + } + if (!paramValues || (nOfIntParams > 0 && !intValues)) + { + MrBayesPrint ("%s Problem allocating paramValues\n", spacer); + if (paramValues) + free (paramValues); + if (intValues) + free (intValues); + return ERROR; + } + else + memAllocs[ALLOC_PARAMVALUES] = YES; + + /* set pointers to values for chain 1 state 0 */ + /* this scheme keeps the chain and state values together */ + nOfParams = 0; + nOfIntParams = 0; + for (k=0; knValues > 0) + p->values = paramValues + nOfParams; + else + p->values = NULL; + nOfParams += p->nValues; + if (p->nSubValues > 0) + p->subValues = paramValues + nOfParams; + else + p->subValues = NULL; + nOfParams += p->nSubValues; + if (p->nIntValues > 0) + p->intValues = intValues + nOfIntParams; + else + p->intValues = NULL; + nOfIntParams += p->nIntValues; + } + + /* allocate space for cpp events */ + for (k=0; kparamType == P_CPPEVENTS) + AllocateCppEvents(p); + } + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------------- +| +| AllocateTreeParams: Allocate space for tree parameters +| +-----------------------------------------------------------------------*/ +int AllocateTreeParams (void) +{ + int i, j, k, n, nOfParams, nOfTrees, isRooted, numSubParamPtrs; + Param *p, *q; + + /* Count the number of trees and dated trees */ + /* based on branch length parameters */ + /* One tree is needed for each brlen parameter. + A topology may apply to several trees; a topology parameter + contains pointers to all trees it applies to */ + numTrees = 0; + numTopologies = 0; + for (k=0; krelParts[0]].topology; + q->nSubParams++; + if (p->printParam == YES) + q->nPrintSubParams++; + } + else if (params[k].paramType == P_TOPOLOGY) + { + q = modelSettings[p->relParts[0]].speciesTree; + if (q != NULL) + q->nSubParams++; + } + } + + /* Make sure there is also one subparam for a parsimony tree */ + for (k=0; knSubParams == 0) + p->nSubParams = 1; + } + + /* Count subparams for relaxed clock parameters */ + for (k=0; kparamType == P_CPPEVENTS) + { + q = modelSettings[p->relParts[0]].cppRate; + q->nSubParams++; + q = modelSettings[p->relParts[0]].cppMultDev; + q->nSubParams++; + q = modelSettings[p->relParts[0]].brlens; + q->nSubParams++; + } + else if (p->paramType == P_TK02BRANCHRATES) + { + q = modelSettings[p->relParts[0]].tk02var; + q->nSubParams++; + q = modelSettings[p->relParts[0]].brlens; + q->nSubParams++; + } + else if (p->paramType == P_IGRBRANCHRATES) + { + q = modelSettings[p->relParts[0]].igrvar; + q->nSubParams++; + q = modelSettings[p->relParts[0]].brlens; + q->nSubParams++; + } + else if (p->paramType == P_MIXEDBRCHRATES) + { + q = modelSettings[p->relParts[0]].mixedvar; + q->nSubParams++; + q = modelSettings[p->relParts[0]].brlens; + q->nSubParams++; + } + } + + /* set pointers to subparams */ + nOfParams = 0; + for (k=0; knSubParams > 0) + { + p->subParams = subParamPtrs + nOfParams; + nOfParams += p->nSubParams; + } + } + assert (nOfParams == numSubParamPtrs); + + /* Set brlens param pointers and tree values */ + /* the scheme below keeps trees for the same state and chain together */ + nOfTrees = 0; + for (k=0; kparamType == P_BRLENS) || + (p->paramType == P_TOPOLOGY && p->paramId == TOPOLOGY_PARSIMONY_UNIFORM) || + (p->paramType == P_TOPOLOGY && p->paramId == TOPOLOGY_PARSIMONY_CONSTRAINED) || + (p->paramType == P_SPECIESTREE)) + { + /* allocate space for trees and initialize trees */ + p->treeIndex = nOfTrees; + p->tree = mcmcTree + nOfTrees; + nOfTrees++; + } + } + + /* Set topology params and associated brlen subparams */ + for (k=0; kparamType == P_TOPOLOGY) + { + if (p->paramId == TOPOLOGY_PARSIMONY_UNIFORM || + p->paramId == TOPOLOGY_PARSIMONY_CONSTRAINED) + /* pure parsimony topology case */ + { + /* there is no brlen subparam */ + /* so let subparam point to the param itself */ + q = p->subParams[0] = p; + /* p->tree and p->treeIndex have been set above */ + } + else + { + /* first set brlens pointers for any parsimony partitions */ + for (i=j=0; inRelParts; i++) + { + if (modelSettings[p->relParts[i]].parsModelId == YES) + { + modelSettings[p->relParts[i]].brlens = p; + } + } + + /* now proceed with pointer assignment */ + q = modelSettings[p->relParts[0]].brlens; + n = 0; /* number of stored subParams */ + i = 0; /* relevant partition number */ + while (i < p->nRelParts) + { + for (j=0; jsubParams[j]) + break; + + if (j == n && q != p) /* a new tree (brlens) for this topology */ + { + p->subParams[n++] = q; + } + q = modelSettings[p->relParts[++i]].brlens; + } + + p->tree = p->subParams[0]->tree; + p->treeIndex = p->subParams[0]->treeIndex; + } + } + else if (p->paramType == P_SPECIESTREE) + { + /* now proceed with pointer assignment */ + q = modelSettings[p->relParts[0]].topology; + n = 0; /* number of stored subParams */ + i = 0; /* relevant partition number */ + while (i < p->nRelParts) + { + for (j=0; jsubParams[j]) + break; + + if (j == n && q != p) /* a new topology for this species tree */ + { + p->subParams[n++] = q; + } + q = modelSettings[p->relParts[++i]].topology; + } + } + } + + /* Check for constraints */ + for (k=0; kparamType == P_TOPOLOGY) + { + if (!strcmp(modelParams[p->relParts[0]].topologyPr, "Constraints")) + { + for (i=0; inSubParams; i++) + { + q = p->subParams[i]; + q->checkConstraints = YES; + } + } + else + { + for (i=0; inSubParams; i++) + { + q = p->subParams[i]; + q->checkConstraints = NO; + } + } + } + } + + /* update paramId */ + for (k=0; kparamType == P_TOPOLOGY) + { + if (p->nSubParams > 1) + { + if (p->paramId == TOPOLOGY_NCL_UNIFORM_HOMO) + p->paramId = TOPOLOGY_NCL_UNIFORM_HETERO; + else if (p->paramId == TOPOLOGY_NCL_CONSTRAINED_HOMO) + p->paramId = TOPOLOGY_NCL_CONSTRAINED_HETERO; + else if (p->paramId == TOPOLOGY_NCL_FIXED_HOMO) + p->paramId = TOPOLOGY_NCL_FIXED_HETERO; + else + { + MrBayesPrint ("%s A clock tree cannot have more than one set of branch lengths\n", spacer); + printf ("nparam:%d paramid:%d",p->nSubParams,p->paramId); + return (ERROR); + } + } + } + } + + /* finally initialize trees */ + for (k=0; kparamType == P_BRLENS) + { + /* find type of tree */ + if (!strcmp(modelParams[p->relParts[0]].brlensPr,"Clock")) + isRooted = YES; + else + isRooted = NO; + + if (InitializeChainTrees (p, 0, numGlobalChains, isRooted) == ERROR) + return (ERROR); + } + else if (p->paramType == P_SPECIESTREE) + { + if (InitializeChainTrees (p, 0, numGlobalChains, YES) == ERROR) + return (ERROR); + } + } + + /* now initialize subparam pointers for relaxed clock models */ + /* use nSubParams to point to the next available subParam by first + resetting all nSubParams to 0 */ + for (k=0; kparamType == P_CPPRATE || + p->paramType == P_CPPMULTDEV || + p->paramType == P_BRLENS || + p->paramType == P_TK02VAR || + p->paramType == P_IGRVAR || + p->paramType == P_MIXEDVAR) + p->nSubParams = 0; + } + for (k=0; kparamType == P_CPPEVENTS) + { + q = modelSettings[p->relParts[0]].cppRate; + q->subParams[q->nSubParams++] = p; + q = modelSettings[p->relParts[0]].cppMultDev; + q->subParams[q->nSubParams++] = p; + q = modelSettings[p->relParts[0]].brlens; + q->subParams[q->nSubParams++] = p; + p->treeIndex = q->treeIndex; + p->tree = q->tree; + if (p->printParam == YES) + q->nPrintSubParams++; + } + else if (p->paramType == P_TK02BRANCHRATES) + { + q = modelSettings[p->relParts[0]].tk02var; + q->subParams[q->nSubParams++] = p; + q = modelSettings[p->relParts[0]].brlens; + q->subParams[q->nSubParams++] = p; + p->treeIndex = q->treeIndex; + p->tree = q->tree; + if (p->printParam == YES) + q->nPrintSubParams++; + } + else if (p->paramType == P_IGRBRANCHRATES) + { + q = modelSettings[p->relParts[0]].igrvar; + q->subParams[q->nSubParams++] = p; + q = modelSettings[p->relParts[0]].brlens; + q->subParams[q->nSubParams++] = p; + p->treeIndex = q->treeIndex; + p->tree = q->tree; + if (p->printParam == YES) + q->nPrintSubParams++; + } + else if (p->paramType == P_MIXEDBRCHRATES) + { + q = modelSettings[p->relParts[0]].mixedvar; + q->subParams[q->nSubParams++] = p; + q = modelSettings[p->relParts[0]].brlens; + q->subParams[q->nSubParams++] = p; + p->treeIndex = q->treeIndex; + p->tree = q->tree; + if (p->printParam == YES) + q->nPrintSubParams++; + } + } + + return (NO_ERROR); +} + + +int AreDoublesEqual (MrBFlt x, MrBFlt y, MrBFlt tol) +{ + if ((x - y) < -tol || (x - y) > tol) + return (NO); + else + return (YES); +} + + +int ChangeNumChains (int from, int to) +{ + int i, i1, j, k, m, st, nRuns, fromIndex, toIndex, run, chn, *tempIntVals, nCppEventParams, *toEvents, *fromEvents; + MCMCMove **tempMoves, *fromMove, *toMove; + Tree **tempTrees; + MrBFlt *tempVals, **toRateMult, **toPosition, **fromRateMult, **fromPosition, *stdStateFreqsOld; + Param *p, *q, *cppEventParams = NULL; + Tree **oldMcmcTree, *tree; + + if (from == to) + return (NO_ERROR); + + /* set new number of chains */ + chainParams.numChains = to; + nRuns = chainParams.numRuns; + numGlobalChains = chainParams.numRuns * chainParams.numChains; + + /* Do the normal parameters */ + /* first save old values */ + tempVals = paramValues; + paramValues = NULL; + tempIntVals = intValues; + intValues = NULL; + memAllocs[ALLOC_PARAMS] = NO; + /* .. and old cpp events parameters */ + nCppEventParams = 0; + for (i=0; iparamType == P_CPPEVENTS) + nCppEventParams++; + } + cppEventParams = (Param *) SafeCalloc (nCppEventParams, sizeof(Param)); + for (i=0; iparamType == P_CPPEVENTS) + { + cppEventParams[j].nEvents = p->nEvents; + p->nEvents = NULL; + cppEventParams[j].position = p->position; + p->position = NULL; + cppEventParams[j].rateMult = p->rateMult; + p->rateMult = NULL; + j++; + } + } + if (AllocateNormalParams () == ERROR) + return (ERROR); + + /* then fill all params */ + FillNormalParams (&globalSeed, 0, numGlobalChains); + + /* finally overwrite with old values if present */ + for (run=0; runparamType == P_CPPEVENTS) + { + fromIndex = 2*(run*from + chn); + toIndex = 2*(run*to + chn); + fromEvents = cppEventParams[i1].nEvents[fromIndex]; + toEvents = p->nEvents[toIndex]; + fromPosition = cppEventParams[i1].position[fromIndex]; + toPosition = p->position[toIndex]; + fromRateMult = cppEventParams[i1].rateMult[fromIndex]; + toRateMult = p->rateMult[toIndex]; + for (j=0; j<2*numLocalTaxa; j++) + { + toEvents[j] = fromEvents[j]; + toPosition[j] = (MrBFlt *) SafeRealloc ((void *)toPosition[j], toEvents[j]*sizeof(MrBFlt)); + toRateMult[j] = (MrBFlt *) SafeRealloc ((void *)toRateMult[j], toEvents[j]*sizeof(MrBFlt)); + for (k=0; k 0) + free (tempIntVals); + for (i=0; i 0) + free (cppEventParams); + + /* then do the trees (they cannot be done before the parameters because otherwise FillTreeParams will overwrite + relaxed clock parameters that need to be saved) */ + + /* reallocate trees */ + tempTrees = (Tree **) SafeCalloc (2*nRuns*from*numTrees, sizeof(Tree *)); + for (i=0; i<2*nRuns*from*numTrees; i++) + tempTrees[i] = mcmcTree[i]; + oldMcmcTree = mcmcTree; + mcmcTree = (Tree **) SafeRealloc ((void *)(mcmcTree), 2 * (size_t)numGlobalChains * (size_t)numTrees * sizeof(Tree*)); + for (i=0; i<2*nRuns*to*numTrees; i++) + mcmcTree[i] = NULL; + + /* move the old trees over */ + for (run=0; run= to) + continue; + /*Here we move only one tree per chain/state?! Should not we move numTrees??*/ + fromIndex = 2*(run*from + chn) * numTrees; + toIndex = 2*(run*to + chn) * numTrees; + for (k=0;k<2*numTrees;k++) + { + mcmcTree[toIndex+k] = tempTrees[fromIndex+k]; + tempTrees[fromIndex+k] = NULL; + } + } + } + + /* remove any remaining old trees */ + for (i=0; i<2*nRuns*from*numTrees; i++) + if (tempTrees[i] != NULL) + FreeTree (tempTrees[i]); + free (tempTrees); + + /* now fill in the tree parameters */ + for (i=0; iparamType == P_TOPOLOGY) + { + p->tree += (mcmcTree - oldMcmcTree); /* calculate new address */ + for (j=0; jnSubParams; j++) + { + q = p->subParams[j]; + assert (q->paramType==P_BRLENS); + q->tree += (mcmcTree - oldMcmcTree); /* calculate new address */ + if (to > from) + for (run=0; run 1) + sprintf (tree->name, "mcmc.tree%d_%d", p->treeIndex+1, run*to + m +1); + else /* if (numTrees == 1) */ + sprintf (tree->name, "mcmc.tree_%d", run*to + m +1); + } + } + InitializeChainTrees (q, run*to + from, run*to + to , GetTree (q, 0, 0)->isRooted); + } + } + } + else if (p->paramType == P_CPPEVENTS || p->paramType == P_TK02BRANCHRATES || p->paramType == P_IGRBRANCHRATES || p->paramType == P_MIXEDBRCHRATES) + p->tree += (mcmcTree - oldMcmcTree); + else + assert (p->paramType==P_BRLENS || p->tree==NULL); + } + + + /* fill new tree parameters */ + if (to > from) + { + for (run=0; run 0) + { + assert (memAllocs[ALLOC_STDSTATEFREQS] == YES); + stdStateFreqsOld=stdStateFreqs; + stdStateFreqs = (MrBFlt *) SafeMalloc (2 * (size_t)stdStateFreqsRowSize * (size_t)numGlobalChains * sizeof (MrBFlt)); + if (!stdStateFreqs) + { + MrBayesPrint ("%s Problem reallocating stdStateFreqs\n", spacer); + return (ERROR); + } + + /* set pointers */ + for (k=0; kparamType != P_PI || modelParams[p->relParts[0]].dataType != STANDARD) + continue; + p->stdStateFreqs += stdStateFreqs-stdStateFreqsOld; + } + + for (run=0; run= to) + break; + + fromIndex = 2*(run*from + chn)*stdStateFreqsRowSize; + toIndex = 2*(run*to + chn)*stdStateFreqsRowSize; + for (k=0;k<2*stdStateFreqsRowSize;k++) + { + stdStateFreqs[toIndex+k]=stdStateFreqsOld[fromIndex+k]; + } + } + /* set new chains */ + FillStdStateFreqs (run*to+from, run*to+to, &globalSeed); + } + free(stdStateFreqsOld); + } + + /* Do the moves */ + /* first allocate space and set up default moves */ + tempMoves = moves; + moves = NULL; + memAllocs[ALLOC_MOVES] = NO; + SetMoves (); + + /* then overwrite with old values if present */ + for (i=0; irelProposalProb[toIndex] = fromMove->relProposalProb[fromIndex]; + for (j=0; jmoveType->numTuningParams; j++) + { + toMove->tuningParam[toIndex][j] = fromMove->tuningParam[fromIndex][j]; + } + } + } + } + } + + /* and free up space */ + for (i=0; iparamType == P_CPPEVENTS) + { + printf ("Trees before changing number of runs\n"); + for (j=0; jnEvents[2*j][k]); + for (i1=0; i1nEvents[2*j][k]; i1++) + { + if (i1 == 0) + printf (" (%lf %lf,", p->position[2*j][k], p->rateMult[2*j][k]); + else if (i1 == p->nEvents[2*j][k]-1) + printf (" %lf %lf)", p->position[2*j][k], p->rateMult[2*j][k]); + else + printf (" %lf %lf,", p->position[2*j][k], p->rateMult[2*j][k]); + } + printf ("\n"); + } + for (k=0; k<2*numLocalTaxa; k++) + { + printf ("%d -- %d:", k, p->nEvents[2*j][k]); + for (i1=0; i1nEvents[2*j+1][k]; i1++) + { + if (i1 == 0) + printf (" (%lf %lf,", p->position[2*j+1][k], p->rateMult[2*j+1][k]); + else if (i1 == p->nEvents[2*j][k]-1) + printf (" %lf %lf)", p->position[2*j+1][k], p->rateMult[2*j+1][k]); + else + printf (" %lf %lf,", p->position[2*j+1][k], p->rateMult[2*j+1][k]); + } + printf ("\n"); + } + } + } + } +#endif + + /* set new number of runs */ + chainParams.numRuns = to; + nChains = chainParams.numChains; + numGlobalChains = chainParams.numRuns * chainParams.numChains; + + /* do the trees, free tree's memory if we reduce number of trees. */ + for (i=to*2*nChains*numTrees; iparamType == P_CPPEVENTS) + { + p->nEvents = (int **) SafeRealloc ((void *)p->nEvents, 2*numGlobalChains*sizeof (int *)); + p->nEvents[0] = (int *) SafeRealloc ((void *)p->nEvents[0], 2*numGlobalChains*(2*numLocalTaxa)*sizeof (int)); + for (i=1; i<2*numGlobalChains; i++) + p->nEvents[i] = p->nEvents[i-1] + (2*numLocalTaxa); + if (from > to) + { + for (j=numGlobalChains; jposition[2*j+0][k]); + p->position[2*j+0][k] = NULL; + free (p->rateMult[2*j+0][k]); + p->rateMult[2*j+0][k] = NULL; + } + } + } + p->position = (MrBFlt ***) SafeRealloc ((void *)p->position, 2*numGlobalChains*sizeof (MrBFlt **)); + p->position[0] = (MrBFlt **) SafeRealloc ((void *)p->position[0], 2*numGlobalChains*(2*numLocalTaxa)*sizeof (MrBFlt *)); + for (i=1; i<2*numGlobalChains; i++) + p->position[i] = p->position[i-1] + (2*numLocalTaxa); + p->rateMult = (MrBFlt ***) SafeRealloc ((void *)p->rateMult, 2*numGlobalChains*sizeof (MrBFlt **)); + p->rateMult[0] = (MrBFlt **) SafeRealloc ((void *)p->rateMult[0], 2*numGlobalChains*(2*numLocalTaxa)*sizeof (MrBFlt *)); + for (i=1; i<2*numGlobalChains; i++) + p->rateMult[i] = p->rateMult[i-1] + (2*numLocalTaxa); + if (to > from) + { + for (j=from*nChains; jnEvents[2*j+0][k] = 0; + p->position[2*j+0][k] = NULL; + p->rateMult[2*j+0][k] = NULL; + p->nEvents[2*j+1][k] = 0; + p->position[2*j+1][k] = NULL; + p->rateMult[2*j+1][k] = NULL; + } + } + } + } + } + /* and finally the normal parameters */ + oldParamValues = paramValues; + paramValues = (MrBFlt *) SafeRealloc ((void *) paramValues, paramValsRowSize * 2 * numGlobalChains * sizeof (MrBFlt)); + oldintValues = intValues; + intValues = (int *) SafeRealloc ((void *) intValues, intValsRowSize * 2 * numGlobalChains * sizeof (int)); + if (paramValues == NULL) + { + memAllocs[ALLOC_PARAMVALUES] = NO; + MrBayesPrint ("%s Problem reallocating paramValues\n", spacer); + return (ERROR); + } + for (i=0; i from) + FillNormalParams (&globalSeed, from*nChains, to*nChains); + + /* now fill in the tree parameters */ + for (i=0; iparamType == P_TOPOLOGY) + { + p->tree += (mcmcTree - oldMcmcTree); /* calculate new address */ + for (j=0; jnSubParams; j++) + { + q = p->subParams[j]; + assert (q->paramType==P_BRLENS); + q->tree += (mcmcTree - oldMcmcTree); /* calculate new address */ + InitializeChainTrees (q, from*nChains, to*nChains, GetTree (q, 0, 0)->isRooted); + } + } + else if (p->paramType == P_CPPEVENTS || p->paramType == P_TK02BRANCHRATES || p->paramType == P_IGRBRANCHRATES || p->paramType == P_MIXEDBRCHRATES) + p->tree += (mcmcTree - oldMcmcTree); + } + + FillTreeParams (&globalSeed, from*nChains, to*nChains); + + /* fix stationary frequencies for standard data */ + if (stdStateFreqsRowSize > 0) + { + assert (memAllocs[ALLOC_STDSTATEFREQS] == YES); + stdStateFreqsOld=stdStateFreqs; + stdStateFreqs = (MrBFlt *) SafeRealloc ((void *) stdStateFreqs, stdStateFreqsRowSize * 2 * numGlobalChains * sizeof (MrBFlt)); + if (!stdStateFreqs) + { + MrBayesPrint ("%s Problem reallocating stdStateFreqs\n", spacer); + return (ERROR); + } + + /* set pointers */ + for (k=n=0; kparamType != P_PI || modelParams[p->relParts[0]].dataType != STANDARD) + continue; + p->stdStateFreqs += stdStateFreqs-stdStateFreqsOld; + } + + FillStdStateFreqs (from*nChains, to*nChains, &globalSeed); + } + + /* do the moves */ + for (i=0; imoveType; + moves[i]->tuningParam = (MrBFlt **) SafeRealloc ((void *) moves[i]->tuningParam, (size_t)numGlobalChains * sizeof (MrBFlt *)); + moves[i]->tuningParam[0] = (MrBFlt *) SafeRealloc ((void *) moves[i]->tuningParam[0], (size_t)numGlobalChains * (size_t)(mvt->numTuningParams) * sizeof (MrBFlt)); + for (j=1; jtuningParam[j] = moves[i]->tuningParam[0] + j * mvt->numTuningParams; + moves[i]->relProposalProb = (MrBFlt *) SafeRealloc ((void *) moves[i]->relProposalProb, 4 * (size_t)numGlobalChains * sizeof (MrBFlt)); + moves[i]->cumProposalProb = moves[i]->relProposalProb + numGlobalChains; + moves[i]->targetRate = moves[i]->relProposalProb + 2*numGlobalChains; + moves[i]->lastAcceptanceRate = moves[i]->relProposalProb + 3*numGlobalChains; + moves[i]->nAccepted = (int *) SafeRealloc ((void *) moves[i]->nAccepted, 5* (size_t)numGlobalChains * sizeof (int)); + moves[i]->nTried = moves[i]->nAccepted + numGlobalChains; + moves[i]->nBatches = moves[i]->nAccepted + 2*numGlobalChains; + moves[i]->nTotAccepted = moves[i]->nAccepted + 3*numGlobalChains; + moves[i]->nTotTried = moves[i]->nAccepted + 4*numGlobalChains; + /* initialize all values to default */ + for (j=0; jnAccepted[j] = 0; + moves[i]->nTried[j] = 0; + moves[i]->nBatches[j] = 0; + moves[i]->nTotAccepted[j] = 0; + moves[i]->nTotTried[j] = 0; + moves[i]->relProposalProb[j] = mvt->relProposalProb; + moves[i]->cumProposalProb[j] = 0.0; + moves[i]->lastAcceptanceRate[j] = 0.0; + for (k=0; knumTuningParams; k++) + moves[i]->tuningParam[j][k] = mvt->tuningParam[k]; + moves[i]->targetRate[j] = mvt->targetRate; + } + } + +#if 0 + for (i=0; iparamType == P_CPPEVENTS) + { + printf ("Trees after changing number of runs\n"); + for (j=0; jnEvents[2*j][k]); + assert (p->nEvents[2*j] >= 0); + for (i1=0; i1nEvents[2*j][k]; i1++) + { + if (i1 == 0) + printf (" (%lf %lf,", p->position[2*j][k], p->rateMult[2*j][k]); + else if (i1 == p->nEvents[2*j][k]-1) + printf (" %lf %lf)", p->position[2*j][k], p->rateMult[2*j][k]); + else + printf (" %lf %lf,", p->position[2*j][k], p->rateMult[2*j][k]); + } + printf ("\n"); + } + for (k=0; k<2*numLocalTaxa; k++) + { + printf ("%d -- %d:", k, p->nEvents[2*j+1][k]); + assert (p->nEvents[2*j+1] >= 0); + for (i1=0; i1nEvents[2*j+1][k]; i1++) + { + if (i1 == 0) + printf (" (%lf %lf,", p->position[2*j+1][k], p->rateMult[2*j+1][k]); + else if (i1 == p->nEvents[2*j][k]-1) + printf (" %lf %lf)", p->position[2*j+1][k], p->rateMult[2*j+1][k]); + else + printf (" %lf %lf,", p->position[2*j+1][k], p->rateMult[2*j+1][k]); + } + printf ("\n"); + } + } + } + } +#endif + + return (NO_ERROR); +} + + +/*----------------------------------------------------------- +| +| CheckCharCodingType: check if character is parsimony- +| informative, variable, or constant +| +-----------------------------------------------------------*/ +void CheckCharCodingType (Matrix *m, CharInfo *ci) +{ + int i, j, k, x, n1[10], n2[10], largest, smallest, numPartAmbig, + numConsidered, numInformative, lastInformative=0, uniqueBits, + newPoss, oldPoss; + BitsLong combinations[2048], *tempComb, *newComb, *oldComb, bitsLongOne=1; + + /* set up comb pointers */ + oldComb = combinations; + newComb = oldComb + 1024; + + /* set counters to 0 */ + numPartAmbig = numConsidered = 0; + + /* set variable and informative to yes */ + ci->variable = ci->informative = YES; + + /* set constant to no and state counters to 0 for all states */ + for (i=0; i<10; i++) + { + ci->constant[i] = ci->singleton[i] = NO; + n1[i] = n2[i] = 0; + } + + for (i=0; inRows; i++) + { + /* retrieve character */ + x = (int) m->origin[m->column + i*m->rowSize]; + + /* add it to counters if not all ambiguous */ + if (NBits(x) < ci->nStates) + { + numConsidered++; + if (NBits(x) > 1) + numPartAmbig++; + for (j=0; j<10; j++) + { + if (((bitsLongOne<constant[i] = YES; + ci->variable = ci->informative = NO; + } + else if (n1[i] == 1) + { + ci->singleton[i] = YES; + } + } + + /* return if variable is no */ + if (ci->variable == NO) + return; + + /* the character is either (variable and uninformative) or informative */ + + /* first consider unambiguous characters */ + /* find smallest and largest unambiguous state for this character */ + smallest = 9; + largest = 0; + for (i=0; i<10; i++) + { + if (n2[i] > 0) + { + if (i < smallest) + smallest = i; + if (i > largest) + largest = i; + } + } + + /* count the number of informative states in the unambiguous codings */ + for (i=numInformative=0; i<10; i++) + { + if (ci->cType == ORD && n2[i] > 0 && i != smallest && i != largest) + { + numInformative++; + lastInformative = i; + } + else if (n2[i] > 1) + { + numInformative++; + lastInformative = i; + } + } + + /* set informative */ + if (numInformative > 1) + ci->informative = YES; + else + ci->informative = NO; + + + /* we can return now unless informative is no and numPartAmbig is not 0 */ + if (!(numPartAmbig > 0 && ci->informative == NO)) + return; + + /* check if partially ambiguous observations make this character informative + after all */ + + /* first set the bits for the taken states */ + x = 0; + for (i=0; i<10; i++) + { + if (n2[i] > 0 && i != lastInformative) + x |= (bitsLongOne<nRows; i++) + { + x = (int) m->origin[m->column + i*m->rowSize]; + /* if partambig */ + if (NBits(x) > 1 && NBits(x) < ci->nStates) + { + /* remove lastInformative */ + x &= !(bitsLongOne<nRows) + ci->informative = YES; + + return; +} + + +/*----------------------------------------------------------- +| +| CheckModel: check model and warn user if strange things +| are discovered. +| +-------------------------------------------------------------*/ +int CheckModel (void) +{ + int i, j, k, answer; + Tree *t = NULL; + TreeNode *p; + + /* there should only be one calibrated tree */ + for (i=0; iisCalibrated == YES) + break; + } + + if (i < numTrees) + { + if (!strcmp(modelParams[t->relParts[0]].clockRatePr, "Fixed") && AreDoublesEqual(modelParams[t->relParts[0]].clockRateFix, 1.0, 1E-6) == YES) + { + MrBayesPrint("%s WARNING: You have calibrated the tree but the clock rate is fixed to 1.0.\n", spacer); + MrBayesPrint("%s This means that time is measured in expected changes per time unit. If\n", spacer); + MrBayesPrint("%s the calibrations use a different time scale, you need to modify the model\n", spacer); + MrBayesPrint("%s by introducing a prior for the clock rate ('prset clockratepr').\n", spacer); + + if (noWarn == NO) + { + answer = WantTo("Do you want to continue with the run regardless"); + if (answer == YES) + { + MrBayesPrint("%s Continuing with the run...\n\n", spacer); + } + else + { + MrBayesPrint("%s Stopping the run...\n\n", spacer); + return (ERROR); + } + } + } + } + + /* check coalescence model */ + for (i=0; irelParts[0]].clockPr,"Coalescence") || !strcmp(modelParams[t->relParts[0]].clockPr,"Speciestreecoalescence")) + && !strcmp(modelParams[t->relParts[0]].clockRatePr, "Fixed") && AreDoublesEqual(modelParams[t->relParts[0]].clockRateFix, 1.0, 1E-6) == YES) + { + MrBayesPrint("%s WARNING: You are using a coalescent model but the clock rate is fixed to 1.0.\n", spacer); + MrBayesPrint("%s This is likely to be incorrect unless you have set the population size prior\n", spacer); + MrBayesPrint("%s ('prset popsizepr') to reflect an appropriate prior on theta. \n", spacer); + + if (noWarn == NO) + { + answer = WantTo("Do you want to continue with the run regardless"); + if (answer == YES) + { + MrBayesPrint("%s Continuing with the run...\n\n", spacer); + } + else + { + MrBayesPrint("%s Stopping the run...\n\n", spacer); + return (ERROR); + } + } + } + } + + /* Check consistency of best model. First we guarantee that if one topology has + a species tree prior, then all topologies have the same prior. Then we make + sure that all clock trees have a coalescence prior. */ + + j = 0; + for (i=0; i 0) + { + if (j != numCurrentDivisions) + { + MrBayesPrint("%s ERROR: If one gene tree has a speciestree prior then all\n", spacer); + MrBayesPrint("%s gene trees must have the same prior.\n", spacer); + return (ERROR); + } + for (i=0; irelParts[0]].clockPr,"Speciestreecoalescence") != 0) + { + MrBayesPrint("%s ERROR: All gene trees must have a speciestreecoalescence prior\n", spacer); + MrBayesPrint("%s if they fold into a species tree.\n", spacer); + return (ERROR); + } + if (t->isCalibrated == YES) + { + for (k=0; knNodes-1; k++) + { + p = t->allDownPass[k]; + if (p->calibration != NULL) + { + MrBayesPrint("%s ERROR: Gene trees cannot be individually calibrated\n", spacer); + MrBayesPrint("%s if they fold into a species tree.\n", spacer); + return (ERROR); + } + } + } + } + } + + return NO_ERROR; +} + + +/*----------------------------------------------------------- +| +| CheckExpandedModels: check data partitions that have +| the codon or doublet model specified +| +-------------------------------------------------------------*/ +int CheckExpandedModels (void) +{ + int c, d, i, t, s, s1, s2, s3, whichNuc, uniqueId, numCharsInPart, + firstChar, lastChar, contiguousPart, badBreak, badExclusion, + nGone, nuc1, nuc2, nuc3, foundStopCodon, posNucs1[4], posNucs2[4], posNucs3[4], + oneGoodCodon, foundUnpaired, nPair, allCheckedOut; + char *tempStr; + int tempStrSize=100; + ModelParams *mp; + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + return (ERROR); + } + + /* first, set charId to 0 for all characters */ + for (i=0; idataType == DNA || mp->dataType == RNA) + { + if (!strcmp(mp->nucModel,"Codon") || !strcmp(mp->nucModel,"Protein")) + { + /* start check that the codon model is appropriate for this partition */ + + /* find first character in this partition */ + for (c=0; c=0; c--) + { + if (partitionId[c][partitionNum] == d+1) + break; + } + lastChar = c; + /*printf (" last character = %d\n", lastChar);*/ + + /* check that the number of characters in partition is divisible by 3 */ + numCharsInPart = 0; + for (c=firstChar; c<=lastChar; c++) + { + if (charInfo[c].isExcluded == YES || partitionId[c][partitionNum] != d+1) + continue; + numCharsInPart++; + } + /*printf (" numCharsInPart = %d\n", numCharsInPart);*/ + if (numCharsInPart % 3 != 0) + { + if (numCurrentDivisions == 1) + { + MrBayesPrint ("%s The number of characters is not divisible by three.\n", spacer); + MrBayesPrint ("%s You specified a %s model which requires triplets\n", spacer, mp->nucModel); + MrBayesPrint ("%s However, you have %d characters.\n", spacer, numCharsInPart); + } + else + { + MrBayesPrint ("%s The number of characters in partition %d is not\n", spacer, d+1); + MrBayesPrint ("%s divisible by three. You specified a %s model\n", spacer, mp->nucModel); + MrBayesPrint ("%s which requires triplets. \n", spacer); + MrBayesPrint ("%s However, you have %d characters in this partition\n", spacer, numCharsInPart); + } + free (tempStr); + return (ERROR); + } + + /* check that all of the characters in the partition are contiguous */ + contiguousPart = YES; + for (c=firstChar; c<=lastChar; c++) + { + if (charInfo[c].isExcluded == NO && partitionId[c][partitionNum] != d+1) + contiguousPart = NO; + } + if (contiguousPart == NO) + { + MrBayesPrint ("%s Partition %d is not contiguous. You specified that\n", spacer, d+1); + MrBayesPrint ("%s a %s model be used for this partition. However, there\n", spacer, mp->nucModel); + MrBayesPrint ("%s is another partition that is between some of the characters\n", spacer); + MrBayesPrint ("%s in this partition. \n", spacer); + free (tempStr); + return (ERROR); + } + + /* check that there is not a break inside a triplet of characters */ + badBreak = NO; + whichNuc = 0; + for (c=firstChar; c<=lastChar; c++) + { + if (charInfo[c].isExcluded == NO) + continue; + whichNuc++; + if (charInfo[c].bigBreakAfter == YES && whichNuc != 3) + badBreak = YES; + if (whichNuc == 3) + whichNuc = 0; + } + if (badBreak == YES) + { + MrBayesPrint ("%s You specified a databreak inside of a coding triplet.\n", spacer); + MrBayesPrint ("%s This is a problem, as you imply that part of the codon\n", spacer); + MrBayesPrint ("%s lies in one gene and the remainder in another gene. \n", spacer); + free (tempStr); + return (ERROR); + } + + /* make certain excluded characters are in triplets but allow frameshift exclusions first in sequence */ + badExclusion = NO; + whichNuc = nGone = 0; + for (c=firstChar; c<=lastChar; c++) + if (charInfo[c].isExcluded == NO) + break; + for (; c<=lastChar; c++) + { + whichNuc++; + if (charInfo[c].isExcluded == YES) + nGone++; + if (whichNuc == 3) + { + if (nGone == 1 || nGone == 2) + badExclusion = YES; + whichNuc = nGone = 0; + } + } + if (badExclusion == YES) + { + MrBayesPrint ("%s In excluding characters, you failed to remove all of the\n", spacer); + MrBayesPrint ("%s sites of at least one codon. If you exclude sites, make \n", spacer); + MrBayesPrint ("%s certain to exclude all of the sites in the codon(s). \n", spacer); + free (tempStr); + return (ERROR); + } + + /* check that there are no stop codons */ + foundStopCodon = NO; + /* allow frameshifting exclusions in the beginning */ + for (c=firstChar; c<=lastChar; c++) + if (charInfo[c].isExcluded == NO) + break; + for (; c<=lastChar; c+=3) + { + if (charInfo[c].isExcluded == NO) + { + for (t=0; tcodon[s1*16 + s2*4 + s3] != 21) + oneGoodCodon = YES; + } + s++; + } + } + } + if (oneGoodCodon == NO) + { + foundStopCodon = YES; + MrBayesPrint ("%s Stop codon: taxon %s, sites %d to %d (%c%c%c, %s code)\n", spacer, + taxaNames[t], c+1, c+3, WhichNuc (nuc1), WhichNuc (nuc2), WhichNuc (nuc3), mp->geneticCode); + } + } + } + } + if (foundStopCodon == YES) + { + MrBayesPrint ("%s At least one stop codon was found. Stop codons are not\n", spacer); + MrBayesPrint ("%s allowed under the codon models. \n", spacer); + free (tempStr); + return (ERROR); + } + + /* everything checks out. Now we can initialize charId */ + whichNuc = 0; + for (c=firstChar; c<=lastChar; c++) + { + whichNuc++; + charInfo[c].charId = uniqueId; + if (whichNuc == 3) + { + whichNuc = 0; + uniqueId++; + } + } + + allCheckedOut++; + /* end check that the codon model is appropriate for this partition */ + } + else if (!strcmp(mp->nucModel,"Doublet")) + { + /* start check that the doublet model is appropriate for this partition */ + + /* Check that pairsId does not equal 0 for any of the characters in + the partition. If it does, then this means that at least one + site was not appropriately paired. Remember, that pairsId is + initialized 1, 2, 3, ... for the first pair, second pair, etc. + Also, check that every pair is only represented two times. */ + foundUnpaired = NO; + for (c=0; c= 0 && nuc2 >= 0) + { + charInfo[nuc1].charId = charInfo[nuc2].charId = uniqueId; + uniqueId++; + } + else + { + MrBayesPrint ("%s Weird doublet problem in partition %d.\n", spacer, d+1); + free (tempStr); + return (ERROR); + } + } + } + + allCheckedOut++; + /* end check that the doublet model is appropriate for this partition */ + } + } + } + + /* + if (allCheckedOut > 0) + MrBayesPrint ("%s Codon/Doublet models successfully checked\n", spacer); + */ + +# if 0 + for (c=0; ccompMatrixStart = newColumn; + + /* set compressed character offset for this division */ + m->compCharStart = numCompressedChars; + + /* set number of compressed characters to 0 for this division */ + m->numChars = 0; + + /* find the number of original characters per model site */ + m->nCharsPerSite = 1; + if (mp->dataType == DNA || mp->dataType == RNA) + { + if (!strcmp(mp->nucModel, "Doublet")) + m->nCharsPerSite = 2; + if (!strcmp(mp->nucModel, "Codon") || !strcmp(mp->nucModel, "Protein")) + m->nCharsPerSite = 3; + } + + /* sort and compress the characters for this division */ + for (c=0; cnCharsPerSite > 1) + { + j = 1; + if (charInfo[c].charId == 0) + { + MrBayesPrint("%s Character %d is not properly defined\n", spacer, c+1); + goto errorExit; + } + for (i=c+1; i= m->nCharsPerSite) + { + MrBayesPrint("%s Too many matches in charId (division %d char %d)\n", spacer, d, numCompressedChars); + goto errorExit; + } + else + { + col[j++] = i; + isTaken[i] = YES; + } + } + } + if (j != m->nCharsPerSite) + { + MrBayesPrint ("%s Too few matches in charId (division %d char %d)\n", spacer, d, numCompressedChars); + goto errorExit; + } + } + + /* add character to temporary matrix in column(s) at newColumn */ + for (t=newRow=0; tnCharsPerSite; k++) + { + tempMatrix[pos(newRow,newColumn+k,numLocalChar)] = matrix[pos(t,col[k],numChar)]; + } + newRow++; + } + + /* is it unique? */ + isSame = NO; + if (mp->dataType != CONTINUOUS) + { + for (i=m->compMatrixStart; inCharsPerSite) + { + isSame = YES; + for (j=0; jnCharsPerSite; k++) + if (tempMatrix[pos(j,newColumn+k,numLocalChar)] != tempMatrix[pos(j,i+k,numLocalChar)]) + { + isSame = NO; + break; + } + if (isSame == NO) + break; + } + if (isSame == YES) + break; + } + } + + /* if subject to data augmentation, it is always unique */ + if (!strcmp(mp->augmentData, "Yes")) + { + for (k=0; knCharsPerSite; k++) + { + if (charInfo[col[k]].isMissAmbig == YES) + isSame = NO; + } + } + + if (isSame == NO) + { + /* if it is unique then it should be added */ + tempSitesOfPat[numCompressedChars] = 1; + for (k=0; knCharsPerSite; k++) + { + compColPos[col[k]] = newColumn + k; + compCharPos[col[k]] = numCompressedChars; + tempChar[newColumn + k] = col[k]; + } + newColumn+=m->nCharsPerSite; + m->numChars++; + numCompressedChars++; + } + else + { + /* if it is not unique then simply update tempSitesOfPat */ + /* calculate compressed character position and put it into a */ + /* (i points to compressed column position) */ + a = m->compCharStart + ((i - m->compMatrixStart) / m->nCharsPerSite); + tempSitesOfPat[a]++; + for (k=0; knCharsPerSite; k++) + { + compColPos[col[k]] = i; + compCharPos[col[k]] = a; + /* tempChar (pointing from compressed to uncompresed) */ + /* can only be set for first pattern */ + } + } + } /* next character */ + + /* check that the partition has at least a single character */ + if (m->numChars <= 0) + { + MrBayesPrint ("%s You must have at least one site in a partition. Partition %d\n", spacer, d+1); + MrBayesPrint ("%s has %d site patterns.\n", spacer, m->numChars); + goto errorExit; + } + + m->compCharStop = m->compCharStart + m->numChars; + m->compMatrixStop = newColumn; + + } /* next division */ + + compMatrixRowSize = newColumn; + + /* now we know the size, so we can allocate space for the compressed matrix ... */ + if (memAllocs[ALLOC_COMPMATRIX] == YES) + { + free (compMatrix); + compMatrix = NULL; + memAllocs[ALLOC_COMPMATRIX] = NO; + } + compMatrix = (BitsLong *) SafeCalloc (compMatrixRowSize * numLocalTaxa, sizeof(BitsLong)); + if (!compMatrix) + { + MrBayesPrint ("%s Problem allocating compMatrix (%d)\n", spacer, compMatrixRowSize * numLocalTaxa * sizeof(BitsLong)); + goto errorExit; + } + memAllocs[ALLOC_COMPMATRIX] = YES; + + if (memAllocs[ALLOC_NUMSITESOFPAT] == YES) + { + free (numSitesOfPat); + numSitesOfPat = NULL; + memAllocs[ALLOC_NUMSITESOFPAT] = NO; + } + numSitesOfPat = (CLFlt *) SafeCalloc (numCompressedChars, sizeof(CLFlt)); + if (!numSitesOfPat) + { + MrBayesPrint ("%s Problem allocating numSitesOfPat (%d)\n", spacer, numCompressedChars * sizeof(MrBFlt)); + goto errorExit; + } + memAllocs[ALLOC_NUMSITESOFPAT] = YES; + + if (memAllocs[ALLOC_ORIGCHAR] == YES) + { + free (origChar); + origChar = NULL; + memAllocs[ALLOC_ORIGCHAR] = NO; + } + origChar = (int *)SafeMalloc((size_t)compMatrixRowSize * sizeof(int)); + if (!origChar) + { + MrBayesPrint ("%s Problem allocating origChar (%d)\n", spacer, numCompressedChars * sizeof(int)); + goto errorExit; + } + memAllocs[ALLOC_ORIGCHAR] = YES; + + /* ... and copy the data there */ + for (i=0; i numCurrentDivisions) + { + MrBayesPrint ("%s Partition delimiter is too large\n", spacer); + return (ERROR); + } + if (fromI == -1) + fromI = tempInt; + else if (fromI != -1 && toJ == -1 && foundDash == YES && foundComma == NO) + { + toJ = tempInt; + for (i=fromI-1; i=0; i--) + { + if (activeParts[i] == YES) + { + lastActive = i; + break; + } + } + + /* MrBayesPrint ("\n"); */ + if (numCurrentDivisions == 1) + MrBayesPrint ("%s Successfully set likelihood model parameters\n", spacer); + else + { + if (nApplied == numCurrentDivisions || nApplied == 0) + { + MrBayesPrint ("%s Successfully set likelihood model parameters to all\n", spacer); + MrBayesPrint ("%s applicable data partitions \n", spacer); + } + else + { + MrBayesPrint ("%s Successfully set likelihood model parameters to\n", spacer); + if (nApplied == 1) + MrBayesPrint ("%s partition", spacer); + else + MrBayesPrint ("%s partitions", spacer); + for (i=0; i 1) + MrBayesPrint (" and %d", i+1); + else + MrBayesPrint (" %d", i+1); + if (nApplied > 2 && i != lastActive) + MrBayesPrint (","); + } + } + MrBayesPrint (" (if applicable)\n"); + } + } + + if (SetUpAnalysis (&globalSeed) == ERROR) + return (ERROR); + + return (NO_ERROR); +} + + +int DoLsetParm (char *parmName, char *tkn) +{ + int i, j, tempInt, nApplied; + char tempStr[100]; + + if (defMatrix == NO) + { + MrBayesPrint ("%s A matrix must be specified before the model can be defined\n", spacer); + return (ERROR); + } + if (inValidCommand == YES) + { + for (i=0; i numCurrentDivisions) + { + MrBayesPrint ("%s Partition delimiter is too large\n", spacer); + return (ERROR); + } + if (fromI == -1) + fromI = tempInt; + else if (fromI != -1 && toJ == -1 && foundDash == YES && foundComma == NO) + { + toJ = tempInt; + for (i=fromI-1; i= 2 && tempInt < MAX_GAMMA_CATS) + { + nApplied = NumActiveParts (); + for (i=0; i= 1 && tempInt <= 1000) + { + nApplied = NumActiveParts (); + for (i=0; i= 2 && tempInt < MAX_GAMMA_CATS) + { + nApplied = NumActiveParts (); + for (i=0; i= 2 && tempInt < MAX_GAMMA_CATS) + { + nApplied = NumActiveParts (); + for (i=0; i= 2 && tempInt < MAX_GAMMA_CATS) + { + nApplied = NumActiveParts (); + for (i=0; i)' instead.\n", spacer); + return (ERROR); + } + /* set Parsmodel (useParsModel) *******************************************************/ + else if (!strcmp(parmName, "Parsmodel")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i 0) + MrBayesPrint ("%s Of the %d lines, %d of them will be summarized (starting at line %d)\n", spacer, fileInfo.numRows+burnin, fileInfo.numRows, fileInfo.firstParamLine); + else + MrBayesPrint ("%s All %d lines will be summarized (starting at line %d)\n", spacer, fileInfo.numRows, fileInfo.firstParamLine); + MrBayesPrint ("%s (Only the last set of lines will be read, in case multiple\n", spacer); + MrBayesPrint ("%s parameter blocks are present in the same file.)\n", spacer); + + /* allocate space to hold parameter information */ + if (AllocateParameterSamples (¶meterSamples, 1, fileInfo.numRows, fileInfo.numColumns) == ERROR) + goto errorExit; + + /* Now we read the file for real. First, rewind file pointer to beginning of file... */ + if (ReadParamSamples (plotParams.plotFileName, &fileInfo, parameterSamples, 0) == ERROR) + goto errorExit; + + /* get length of longest header */ + longestHeader = 9; /* 9 is the length of the word "parameter" (for printing table) */ + for (i=0; i longestHeader) + longestHeader = len; + } + + /* print x-y plot of parameter vs. generation */ + whichIsX = -1; + for (i=0; i= 0 && whichIsX != whichIsY) + { + MrBayesPrint ("\n%s Rough trace plot of parameter %s:\n", spacer, headerNames[whichIsY]); + if (PrintPlot (parameterSamples[whichIsX].values[0], parameterSamples[whichIsY].values[0], fileInfo.numRows) == ERROR) + goto errorExit; + numPlotted++; + } + } + + if (numPlotted == 0) + { + MrBayesPrint ("%s Did not find any parameters matching \"%s\" to plot\n", spacer, plotParams.parameter); + } + + /* free memory */ + for (i=0; i 0.50) + { + MrBayesPrint ("%s Burnin fraction too high (> 0.50)\n", spacer); + return (ERROR); + } + chainParams.burninFraction = tempD; + MrBayesPrint ("%s Setting burnin fraction to %.2f\n", spacer, chainParams.burninFraction); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Parameter (plotParams.parameter) *******************************************************/ + else if (!strcmp(parmName, "Parameter")) + { + if (expecting == Expecting(EQUALSIGN)) + { + expecting = Expecting(ALPHA); + readWord = YES; + } + else if (expecting == Expecting(ALPHA)) + { + strcpy (plotParams.parameter, tkn); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Parameter (plotParams.match) *******************************************************/ + else if (!strcmp(parmName, "Match")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + strcpy (plotParams.match, tempStr); + else + return (ERROR); + + MrBayesPrint ("%s Setting plot matching to %s\n", spacer, plotParams.match); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + + else + return (ERROR); + } + + return (NO_ERROR); +} + + +int DoPropset (void) +{ + MrBayesPrint ("%s Successfully set proposal parameters\n", spacer); + + return (NO_ERROR); +} + + +int DoPropsetParm (char *parmName, char *tkn) +{ + int i, j, k, nMatches, tempInt; + MrBFlt tempFloat; + static MCMCMove *mv = NULL; + static MrBFlt *theValue, theValueMin, theValueMax; + static int jump, runIndex, chainIndex; + static char *temp=NULL, *localTkn=NULL; /*freed at the end of the call*/ + static char *tempName=NULL; /*not freed at the end of the call*/ + + if (defMatrix == NO) + { + MrBayesPrint ("%s A matrix must be specified before proposal parameters can be changed\n", spacer); + return (ERROR); + } + + if (expecting == Expecting(PARAMETER)) + { + if (!strcmp(parmName, "Xxxxxxxxxx")) + { + /* we expect a move name with possible run and chain specification as follows: + $(,)= -- apply to run and chain + $(,)= -- apply to chain for all runs + $(,)= -- apply to all chains of run + $prob(,)= -- change relative proposal probability + $targetrate(,)= -- change target acc rate for autotuning + + the parsing is complicated by the fact that the move name can look something like: + eTBR(Tau{all}) + eTBR(Tau{1,4,5}) + so we need to assemble the move name from several tokens that are parsed out separately; + here we receive only the first part (before the left parenthesis) + */ + + /* copy to local move name */ + SafeStrcpy(&tempName, tkn); + mv = NULL; + foundComma = foundEqual = NO; + expecting = Expecting(LEFTCURL) | Expecting(RIGHTCURL) | Expecting(COMMA) | + Expecting(LEFTPAR) | Expecting(RIGHTPAR) | Expecting(NUMBER) | Expecting(ALPHA) | + Expecting(DOLLAR); + } + else + return (ERROR); + } + else if (expecting == Expecting(ALPHA)) + { + if (mv == NULL) + { + /* we are still assembling the move name */ + SafeStrcat(&tempName, tkn); + expecting = Expecting(LEFTCURL) | Expecting(RIGHTCURL) | Expecting(COMMA) | + Expecting(LEFTPAR) | Expecting(RIGHTPAR) | Expecting(NUMBER) | Expecting(ALPHA) | + Expecting(DOLLAR); + } + else + { + /* we have a parameter name; now find the parameter name, case insensitive */ + SafeStrcpy(&localTkn, tkn); + for (i=0; i<(int)strlen(localTkn); i++) + localTkn[i] = tolower(localTkn[i]); + nMatches = j = 0; + for (i=0; imoveType->numTuningParams; i++) + { + SafeStrcpy(&temp, mv->moveType->shortTuningName[i]); + for (k=0; k<(int)strlen(temp); k++) + temp[k] = tolower(temp[k]); + if (strncmp(localTkn,temp,strlen(localTkn)) == 0) + { + j = i; + nMatches++; + } + } + if (strncmp(localTkn,"prob",strlen(localTkn)) == 0) + { + j = -1; + nMatches++; + } + else if (strncmp(localTkn,"targetrate",strlen(localTkn)) == 0) + { + j = -2; + nMatches++; + } + if (nMatches == 0) + { + MrBayesPrint ("%s Could not find move parameter to change '%s'\n", spacer, localTkn); + return (ERROR); + } + else if (nMatches > 1) + { + MrBayesPrint ("%s Several move parameters matched the abbreviated name '%s'\n", spacer, localTkn); + return (ERROR); + } + + if (j == -1) + { + theValue = mv->relProposalProb; + theValueMin = 0.0; + theValueMax = 1000.0; + jump = 1; + } + else if (j == -2) + { + theValue = mv->targetRate; + theValueMin = 0.10; + theValueMax = 0.70; + jump = 1; + } + else + { + theValue = &mv->tuningParam[0][j]; + theValueMin = mv->moveType->minimum[j]; + theValueMax = mv->moveType->maximum[j]; + jump = mv->moveType->numTuningParams; + } + chainIndex = -1; + runIndex = -1; + expecting = Expecting(LEFTPAR) | Expecting(EQUALSIGN); + } + } + else if (expecting == Expecting(LEFTCURL) || expecting == Expecting(RIGHTCURL)) + { + /* we are still assembling the move name */ + SafeStrcat (&tempName, tkn); + expecting = Expecting(LEFTCURL) | Expecting(RIGHTCURL) | Expecting(COMMA) | + Expecting(LEFTPAR) | Expecting(RIGHTPAR) | Expecting(NUMBER) | Expecting(ALPHA) | + Expecting(DOLLAR); + } + else if (expecting == Expecting(DOLLAR)) + { + /* we know that the name is complete now; find the move by its name, + case insensitive */ + SafeStrcpy(&localTkn, tempName); + j=(int)strlen(localTkn); + for (i=0; iname); + for (k=0; k<(int)strlen(temp); k++) + temp[k] = tolower(temp[k]); + if (strncmp(temp,localTkn,strlen(localTkn)) == 0) + { + j = i; + nMatches++; + } + } + if (nMatches == 0) + { + MrBayesPrint ("%s Could not find move '%s'\n", spacer, localTkn); + return (ERROR); + } + else if (nMatches > 1) + { + MrBayesPrint ("%s Several moves matched the abbreviated name '%s'\n", spacer, localTkn); + return (ERROR); + } + else + mv = moves[j]; + + foundComma = foundEqual = NO; + expecting = Expecting(ALPHA); + } + else if (expecting == Expecting(LEFTPAR)) + { + if (mv == NULL) + { + /* we are still assembling the move name */ + SafeStrcat (&tempName, tkn); + expecting = Expecting(LEFTCURL) | Expecting(RIGHTCURL) | Expecting(COMMA) | + Expecting(LEFTPAR) | Expecting(RIGHTPAR) | Expecting(NUMBER) | Expecting(ALPHA) | + Expecting(DOLLAR); + } + else /* if (mv != NULL) */ + { + /* we will be reading in run and chain indices */ + expecting = Expecting(NUMBER) | Expecting(COMMA); + } + } + else if (expecting == Expecting(NUMBER)) + { + if (mv == NULL) + { + /* we are still assembling the move name */ + SafeStrcat (&tempName, tkn); + expecting = Expecting(LEFTCURL) | Expecting(RIGHTCURL) | Expecting(COMMA) | + Expecting(LEFTPAR) | Expecting(RIGHTPAR) | Expecting(NUMBER) | Expecting(ALPHA) | + Expecting(DOLLAR); + } + else if (foundEqual == YES) + { + sscanf (tkn, "%lf", &tempFloat); + if (tempFloat < theValueMin || tempFloat > theValueMax) + { + MrBayesPrint ("%s The value is out of range (min = %lf; max = %lf)\n", spacer, theValueMin, theValueMax); + return (ERROR); + } + if (runIndex == -1 && chainIndex == -1) + { + for (i=0; i= 0) + { + theValue += chainIndex*jump; + for (i=0; i= 0 && chainIndex == -1) + { + theValue += runIndex*chainParams.numChains*jump; + for (i=0; i= 0 && chainIndex >= 0) */ + { + theValue[runIndex*chainParams.numChains*jump+chainIndex*jump] = tempFloat; + } + expecting = Expecting (PARAMETER) | Expecting(SEMICOLON); + } + else /* if (foundEqual == NO) */ + { + sscanf (tkn, "%d", &tempInt); + if (foundComma == NO) + { + if (tempInt <= 0 || tempInt > chainParams.numRuns) + { + MrBayesPrint ("%s Run index is out of range (min=1; max=%d)\n", spacer, chainParams.numRuns); + return (ERROR); + } + runIndex = tempInt - 1; + expecting = Expecting(COMMA); + } + else + { + if (tempInt <= 0 || tempInt > chainParams.numChains) + { + MrBayesPrint ("%s Chain index is out of range (min=1; max=%d)\n", spacer, chainParams.numChains); + return (ERROR); + } + chainIndex = tempInt - 1; + expecting = Expecting(RIGHTPAR); + } + } + } + else if (expecting == Expecting(COMMA)) + { + if (mv == NULL) + { + /* we are still assembling the move name */ + SafeStrcat (&tempName, tkn); + expecting = Expecting(LEFTCURL) | Expecting(RIGHTCURL) | Expecting(COMMA) | + Expecting(LEFTPAR) | Expecting(RIGHTPAR) | Expecting(NUMBER) | Expecting(ALPHA) | + Expecting(DOLLAR); + } + else + { + /* we will be reading in chain index, if present */ + foundComma = YES; + expecting = Expecting(RIGHTPAR) | Expecting(NUMBER); + } + } + else if (expecting == Expecting(RIGHTPAR)) + { + if (mv == NULL) + { + /* we are still assembling the move name */ + SafeStrcat (&tempName, tkn); + expecting = Expecting(LEFTCURL) | Expecting(RIGHTCURL) | Expecting(COMMA) | + Expecting(LEFTPAR) | Expecting(RIGHTPAR) | Expecting(NUMBER) | Expecting(ALPHA) | + Expecting(DOLLAR); + } + else + expecting = Expecting(EQUALSIGN); + } + else if (expecting == Expecting(EQUALSIGN)) + { + foundEqual = YES; + expecting = Expecting(NUMBER); + } + else + return (ERROR); + + SafeFree ((void **)&temp); + SafeFree ((void **)&localTkn); + return (NO_ERROR); +} + + +int DoPrset (void) +{ + int i, nApplied, lastActive=0; + + nApplied = NumActiveParts (); + for (i=numCurrentDivisions-1; i>=0; i--) + { + if (activeParts[i] == YES) + { + lastActive = i; + break; + } + } + + if (numCurrentDivisions == 1) + MrBayesPrint ("%s Successfully set prior model parameters\n", spacer); + else + { + if (nApplied == numCurrentDivisions || nApplied == 0) + { + MrBayesPrint ("%s Successfully set prior model parameters to all\n", spacer); + MrBayesPrint ("%s applicable data partitions \n", spacer); + } + else + { + MrBayesPrint ("%s Successfully set prior model parameters to\n", spacer); + if (nApplied == 1) + MrBayesPrint ("%s partition", spacer); + else + MrBayesPrint ("%s partitions", spacer); + for (i=0; i 1) + MrBayesPrint (" and %d", i+1); + else + MrBayesPrint (" %d", i+1); + if (nApplied > 2 && i != lastActive) + MrBayesPrint (","); + } + } + MrBayesPrint (" (if applicable)\n"); + } + } + + if (SetUpAnalysis (&globalSeed) == ERROR) + return (ERROR); + + return (NO_ERROR); +} + + +int DoPrsetParm (char *parmName, char *tkn) +{ + int i, j, k, tempInt, nApplied, index, ns, flag=0; + MrBFlt tempD, sum; + char tempStr[100]; + + if (defMatrix == NO) + { + MrBayesPrint ("%s A matrix must be specified before the model can be defined\n", spacer); + return (ERROR); + } + if (inValidCommand == YES) + { + for (i=0; i numCurrentDivisions) + { + MrBayesPrint ("%s Partition delimiter is too large\n", spacer); + return (ERROR); + } + if (fromI == -1) + fromI = tempInt; + else if (fromI != -1 && toJ == -1 && foundDash == YES && foundComma == NO) + { + toJ = tempInt; + for (i=fromI-1; i ALPHA_MAX) + { + MrBayesPrint ("%s Beta parameter cannot be greater than %1.2lf\n", spacer, ALPHA_MAX); + return (ERROR); + } + if (tempD < ALPHA_MIN) + { + MrBayesPrint ("%s Beta parameter cannot be less than %1.2lf\n", spacer, ALPHA_MIN); + return (ERROR); + } + modelParams[i].tRatioDir[numVars[i]++] = tempD; + if (numVars[i] < 2) + expecting = Expecting(COMMA); + else + { + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Tratiopr to Beta(%1.2lf,%1.2lf)\n", spacer, modelParams[i].tRatioDir[0], modelParams[i].tRatioDir[1]); + else + MrBayesPrint ("%s Setting Tratiopr to Beta(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].tRatioDir[0], modelParams[i].tRatioDir[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].tRatioPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].tRatioFix = tempD; + if (modelParams[i].tRatioFix > KAPPA_MAX) + { + MrBayesPrint ("%s Tratio cannot be greater than %1.2lf\n", spacer, KAPPA_MAX); + return (ERROR); + } + if (modelParams[i].tRatioFix < 0.0) + { + MrBayesPrint ("%s Tratio cannot be less than %1.2lf\n", spacer, 0.0); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Tratiopr to Fixed(%1.2lf)\n", spacer, modelParams[i].tRatioFix); + else + MrBayesPrint ("%s Setting Tratiopr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].tRatioFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Revmatpr (revMatPr) ************************************************************/ + else if (!strcmp(parmName, "Revmatpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i ALPHA_MAX) + { + MrBayesPrint ("%s Dirichlet parameter cannot be greater than %1.2lf\n", spacer, ALPHA_MAX); + return (ERROR); + } + if (tempD < ALPHA_MIN) + { + MrBayesPrint ("%s Dirichlet parameter cannot be less than %1.2lf\n", spacer, ALPHA_MIN); + return (ERROR); + } + } + else if (!strcmp(tempStr,"Fixed")) + { + if (tempD > KAPPA_MAX) + { + MrBayesPrint ("%s Rate value cannot be greater than %1.2lf\n", spacer, KAPPA_MAX); + return (ERROR); + } + if (tempD < 0.0001) + { + MrBayesPrint ("%s Rate value cannot be less than %1.2lf\n", spacer, 0.0001); + return (ERROR); + } + } + tempNum[tempNumStates++] = tempD; + if (tempNumStates == 1 && !strcmp(tempStr,"Dirichlet")) + expecting = Expecting(COMMA) | Expecting(RIGHTPAR); + else if (tempNumStates < 6) + expecting = Expecting(COMMA); + else + expecting = Expecting(RIGHTPAR); + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + nApplied = NumActiveParts (); + for (i=0; i ALPHA_MAX) + { + MrBayesPrint ("%s Dirichlet parameter cannot be greater than %1.2lf\n", spacer, ALPHA_MAX); + return (ERROR); + } + if (tempD < ALPHA_MIN) + { + MrBayesPrint ("%s Dirichlet parameter cannot be less than %1.2lf\n", spacer, ALPHA_MIN); + return (ERROR); + } + } + else if (!strcmp(tempStr,"Fixed")) + { + if (tempD > KAPPA_MAX) + { + MrBayesPrint ("%s Rate value cannot be greater than %1.2lf\n", spacer, KAPPA_MAX); + return (ERROR); + } + if (tempD < 0.0001) + { + MrBayesPrint ("%s Rate value cannot be less than %1.2lf\n", spacer, 0.0001); + return (ERROR); + } + } + tempStateFreqs[tempNumStates++] = tempD; + if (tempNumStates == 1 && !strcmp(tempStr,"Dirichlet")) + expecting = Expecting(COMMA) | Expecting(RIGHTPAR); + else if (tempNumStates < 190) + expecting = Expecting(COMMA); + else + expecting = Expecting(RIGHTPAR); + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + nApplied = NumActiveParts (); + for (i=0; i ALPHA_MAX) + { + MrBayesPrint ("%s Dirichlet parameter cannot be greater than %1.2lf\n", spacer, ALPHA_MAX); + return (ERROR); + } + if (tempD < ALPHA_MIN) + { + MrBayesPrint ("%s Dirichlet parameter cannot be less than %1.2lf\n", spacer, ALPHA_MIN); + return (ERROR); + } + modelParams[i].omegaDir[numVars[i]++] = tempD; + if (numVars[i] == 1) + expecting = Expecting(COMMA); + else + { + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Omegapr to Dirichlet(%1.2lf,%1.2lf)\n", spacer, modelParams[i].omegaDir[0], modelParams[i].omegaDir[1]); + else + MrBayesPrint ("%s Setting Omegapr to Dirichlet(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].omegaDir[0], modelParams[i].omegaDir[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].omegaPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].omegaFix = tempD; + if (modelParams[i].omegaFix > KAPPA_MAX) + { + MrBayesPrint ("%s Omega ratio cannot be greater than %1.2lf\n", spacer, KAPPA_MAX); + return (ERROR); + } + if (modelParams[i].omegaFix < 0.0) + { + MrBayesPrint ("%s Omega ratio cannot be less than %1.2lf\n", spacer, 0.0); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Omegapr to Fixed(%1.2lf)\n", spacer, modelParams[i].omegaFix); + else + MrBayesPrint ("%s Setting Omegapr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].omegaFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Ny98omega1pr (ny98omega1pr) ********************************************************/ + else if (!strcmp(parmName, "Ny98omega1pr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i= modelParams[i].ny98omega3Uni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Ny98omega3pr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].ny98omega3Uni[0], modelParams[i].ny98omega3Uni[1]); + else + MrBayesPrint ("%s Setting Ny98omega3pr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].ny98omega3Uni[0], modelParams[i].ny98omega3Uni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].ny98omega3pr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].ny98omega3Exp = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Ny98omega3pr to Exponential(%1.2lf)\n", spacer, modelParams[i].ny98omega3Exp); + else + MrBayesPrint ("%s Setting Ny98omega3pr to Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].ny98omega3Exp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].ny98omega3pr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].ny98omega3Fixed = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Ny98omega3pr to Fixed(%1.2lf)\n", spacer, modelParams[i].ny98omega3Fixed); + else + MrBayesPrint ("%s Setting Ny98omega3pr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].ny98omega3Fixed, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set M3omegapr (m3omegapr) ********************************************************/ + else if (!strcmp(parmName, "M3omegapr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i= modelParams[i].m3omegaFixed[1] || modelParams[i].m3omegaFixed[0] >= modelParams[i].m3omegaFixed[2] || modelParams[i].m3omegaFixed[1] >= modelParams[i].m3omegaFixed[2]) + { + MrBayesPrint ("%s The three omega values must be ordered, such that omega1 < omega2 < omega3\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting M3omegapr to Fixed(%1.2lf,%1.2lf,%1.2lf)\n", spacer, modelParams[i].m3omegaFixed[0], modelParams[i].m3omegaFixed[1], modelParams[i].m3omegaFixed[2]); + else + MrBayesPrint ("%s Setting M3omegapr to Fixed(%1.2lf,%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].m3omegaFixed[0], modelParams[i].m3omegaFixed[1], modelParams[i].m3omegaFixed[2], i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Codoncatfreqs (codonCatFreqPr) ********************************************************/ + else if (!strcmp(parmName, "Codoncatfreqs")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i= modelParams[i].shapeUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (modelParams[i].shapeUni[1] > MAX_SHAPE_PARAM) + { + MrBayesPrint ("%s Upper value for uniform cannot be greater than %1.2lf\n", spacer, MAX_SHAPE_PARAM); + return (ERROR); + } + if (modelParams[i].shapeUni[0] < MIN_SHAPE_PARAM) + { + MrBayesPrint ("%s Lower value for uniform cannot be less than %1.2lf\n", spacer, MIN_SHAPE_PARAM); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Shapepr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].shapeUni[0], modelParams[i].shapeUni[1]); + else + MrBayesPrint ("%s Setting Shapepr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].shapeUni[0], modelParams[i].shapeUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].shapePr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].shapeExp = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Shapepr to Exponential(%1.2lf)\n", spacer, modelParams[i].shapeExp); + else + MrBayesPrint ("%s Setting Shapepr to Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].shapeExp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].shapePr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].shapeFix = tempD; + if (modelParams[i].shapeFix > MAX_SHAPE_PARAM) + { + MrBayesPrint ("%s Shape parameter cannot be greater than %1.2lf\n", spacer, MAX_SHAPE_PARAM); + return (ERROR); + } + if (modelParams[i].shapeFix < MIN_SHAPE_PARAM) + { + MrBayesPrint ("%s Shape parameter cannot be less than %1.2lf\n", spacer, MIN_SHAPE_PARAM); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Shapepr to Fixed(%1.2lf)\n", spacer, modelParams[i].shapeFix); + else + MrBayesPrint ("%s Setting Shapepr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].shapeFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Pinvarpr (pInvarPr) ************************************************************/ + else if (!strcmp(parmName, "Pinvarpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i= modelParams[i].pInvarUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (modelParams[i].pInvarUni[1] > 1.0) + { + MrBayesPrint ("%s Upper value for uniform should be less than or equal to 1.0\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Pinvarpr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].pInvarUni[0], modelParams[i].pInvarUni[1]); + else + MrBayesPrint ("%s Setting Pinvarpr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].pInvarUni[0], modelParams[i].pInvarUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].pInvarPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + if (tempD > 1.0) + { + MrBayesPrint ("%s Value for Pinvar should be in the interval (0, 1)\n", spacer); + return (ERROR); + } + modelParams[i].pInvarFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Pinvarpr to Fixed(%1.2lf)\n", spacer, modelParams[i].pInvarFix); + else + MrBayesPrint ("%s Setting Pinvarpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].pInvarFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Ratecorrpr (adGammaCorPr) ******************************************************/ + else if (!strcmp(parmName, "Ratecorrpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i= modelParams[i].corrUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (modelParams[i].corrUni[1] > 1.0) + { + MrBayesPrint ("%s Upper value for uniform should be less than or equal to 1.0\n", spacer); + return (ERROR); + } + if (modelParams[i].corrUni[0] < -1.0) + { + MrBayesPrint ("%s Lower value for uniform should be greater than or equal to -1.0\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Ratecorrpr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].corrUni[0], modelParams[i].corrUni[1]); + else + MrBayesPrint ("%s Setting Ratecorrpr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].corrUni[0], modelParams[i].corrUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].adGammaCorPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + if (foundDash == YES) + tempD *= -1.0; + if (tempD > 1.0 || tempD < -1.0) + { + MrBayesPrint ("%s Value for Ratecorrpr should be in the interval (-1, +1)\n", spacer); + return (ERROR); + } + modelParams[i].corrFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Ratecorrpr to Fixed(%1.2lf)\n", spacer, modelParams[i].corrFix); + else + MrBayesPrint ("%s Setting Ratecorrpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].corrFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + foundDash = NO; + } + else if (expecting == Expecting(DASH)) + { + foundDash = YES; + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER) | Expecting(DASH); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Browncorrpr (brownCorPr) ******************************************************/ + else if (!strcmp(parmName, "Browncorrpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i= modelParams[i].brownCorrUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (modelParams[i].brownCorrUni[1] > 1.0) + { + MrBayesPrint ("%s Upper value for uniform should be less than or equal to 1.0\n", spacer); + return (ERROR); + } + if (modelParams[i].brownCorrUni[0] < -1.0) + { + MrBayesPrint ("%s Lower value for uniform should be greater than or equal to -1.0\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Browncorrpr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].brownCorrUni[0], modelParams[i].brownCorrUni[1]); + else + MrBayesPrint ("%s Setting Browncorrpr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].brownCorrUni[0], modelParams[i].brownCorrUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].brownCorPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + if (foundDash == YES) + tempD *= -1.0; + if (tempD > 1.0 || tempD < -1.0) + { + MrBayesPrint ("%s Value for Browncorrpr should be in the interval (-1, +1)\n", spacer); + return (ERROR); + } + modelParams[i].brownCorrFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Browncorrpr to Fixed(%1.2lf)\n", spacer, modelParams[i].brownCorrFix); + else + MrBayesPrint ("%s Setting Browncorrpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].brownCorrFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + foundDash = NO; + } + else if (expecting == Expecting(DASH)) + { + foundDash = YES; + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER) | Expecting(DASH); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Ratepr (ratePr) *****************************************************************/ + else if (!strcmp(parmName, "Ratepr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i ALPHA_MAX) + { + MrBayesPrint ("%s Ratemultiplier Dirichlet parameter %lf out of range\n", spacer, tempD); + return (ERROR); + } + /* set the parameter */ + modelParams[i].ratePrDir = tempD; + /* check if all partitions have been filled in */ + for (i=0; i 1) + MrBayesPrint ("s"); + for (i=k=0; i 1) + MrBayesPrint (", and %d", i+1); + else if (k == 1) + MrBayesPrint (" %d", i+1); + else + MrBayesPrint (", %d", i+1); + } + } + MrBayesPrint ("\n"); + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Generatepr (generatePr) *****************************************************************/ + else if (!strcmp(parmName, "Generatepr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i ALPHA_MAX) + { + MrBayesPrint ("%s Generate multiplier Dirichlet parameter %lf out of range\n", spacer, tempD); + return (ERROR); + } + /* set the parameter */ + modelParams[i].generatePrDir = tempD; + /* check if all partitions have been filled in */ + for (i=0; i 1) + MrBayesPrint ("s"); + for (i=k=0; i 1) + MrBayesPrint (", and %d", i+1); + else if (k == 1) + MrBayesPrint (" %d", i+1); + else + MrBayesPrint (", %d", i+1); + } + } + MrBayesPrint ("\n"); + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Covswitchpr (covSwitchPr) ******************************************************/ + else if (!strcmp(parmName, "Covswitchpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i= modelParams[i].covswitchUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Covswitchpr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].covswitchUni[0], modelParams[i].covswitchUni[1]); + else + MrBayesPrint ("%s Setting Covswitchpr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].covswitchUni[0], modelParams[i].covswitchUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].covSwitchPr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].covswitchExp = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Covswitchpr to Exponential(%1.2lf)\n", spacer, modelParams[i].covswitchExp); + else + MrBayesPrint ("%s Setting Covswitchpr to Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].covswitchExp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].covSwitchPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].covswitchFix[numVars[i]++] = tempD; + if (numVars[i] == 1) + expecting = Expecting(COMMA); + else + { + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Covswitchpr to Fixed(%1.4lf,%1.4lf)\n", spacer, modelParams[i].covswitchFix[0], modelParams[i].covswitchFix[1]); + else + MrBayesPrint ("%s Setting Covswitchpr to Fixed(%1.4lf,%1.4lf) for partition %d\n", spacer, modelParams[i].covswitchFix[0], modelParams[i].covswitchFix[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Symdirihyperpr (symPiPr) ******************************************************/ + else if (!strcmp(parmName, "Symdirihyperpr")) + { + if (expecting == Expecting(EQUALSIGN)) + { + foundBeta = NO; + expecting = Expecting(ALPHA); + } + else if (expecting == Expecting(ALPHA)) + { + if (foundBeta == NO) + { + /* expecting to see Uniform, Exponential, or Fixed */ + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i= modelParams[i].symBetaUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Symdirihyperpr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].symBetaUni[0], modelParams[i].symBetaUni[1]); + else + MrBayesPrint ("%s Setting Symdirihyperpr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].symBetaUni[0], modelParams[i].symBetaUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else + { + MrBayesPrint ("%s Problem setting Symdirihyperpr\n", spacer); + return (ERROR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Statefreqpr (stateFreqPr) ******************************************************/ + else if (!strcmp(parmName, "Statefreqpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsSame ("Equal", tkn) == DIFFERENT && IsSame ("Empirical", tkn) == DIFFERENT) + { + /* the user wants to specify a dirichlet or fixed prior */ + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i numDefinedConstraints) + { + MrBayesPrint ("%s Constraint number is too large\n", spacer); + return (ERROR); + } + if (fromI == -1) + { + if (foundDash == YES) + { + MrBayesPrint ("%s Unexpected dash\n", spacer); + return (ERROR); + } + fromI = tempInt; + tempActiveConstraints[fromI-1] = YES; + } + else if (fromI != -1 && toJ == -1 && foundDash == YES && foundComma == NO) + { + toJ = tempInt; + //for (i=fromI-1; i numUserTrees) + { + MrBayesPrint ("%s Tree number is too large\n", spacer); + return (ERROR); + } + if (tempInt < 1) + { + MrBayesPrint ("%s Tree number is too small\n", spacer); + return (ERROR); + } + fromI = tempInt; + expecting = Expecting(RIGHTPAR); /* only one tree number acceptable */ + } + } + else if (expecting == Expecting(COMMA)) + { + foundComma = YES; + expecting = Expecting(NUMBER) | Expecting(ALPHA); + } + else if (expecting == Expecting(DASH)) + { + foundDash = YES; + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + /* find out whether we need a tree number or constraint number(s) */ + nApplied = NumActiveParts (); + for (i=0; i 0.000001) + { + MrBayesPrint ("%s Lower value for uniform must equal 0.0\n", spacer); + return (ERROR); + } + if (modelParams[i].brlensUni[0] >= modelParams[i].brlensUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Brlenspr to Unconstrained:Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].brlensUni[0], modelParams[i].brlensUni[1]); + else + MrBayesPrint ("%s Setting Brlenspr to Unconstrained:Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].brlensUni[0], modelParams[i].brlensUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].unconstrainedPr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].brlensExp = tempD; + if (modelParams[i].brlensExp <= 0.0) + { + MrBayesPrint ("%s Value for exponential must > 0.0\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Brlenspr to Unconstrained:Exponential(%1.2lf)\n", spacer, modelParams[i].brlensExp); + else + MrBayesPrint ("%s Setting Brlenspr to Unconstrained:Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].brlensExp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].unconstrainedPr,"GammaDir")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].brlensDir[numVars[i]++] = tempD; + if (numVars[i] == 1 || numVars[i] == 2 || numVars[i] == 3) + expecting = Expecting(COMMA); + else + { + if (modelParams[i].brlensDir[0] <= 0.0 || modelParams[i].brlensDir[1] <= 0.0 || modelParams[i].brlensDir[2] <= 0.0 || modelParams[i].brlensDir[3] <= 0.0) + { + MrBayesPrint ("%s alphaT & betaT & a & c for GammaDir prior must > 0.0\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Brlenspr to Unconstrained:GammaDir(%1.2lf,%1.4lf,%1.2lf,%1.2lf)\n", spacer, modelParams[i].brlensDir[0], modelParams[i].brlensDir[1], modelParams[i].brlensDir[2], modelParams[i].brlensDir[3]); + else + MrBayesPrint ("%s Setting Brlenspr to Unconstrained:GammaDir(%1.2lf,%1.4lf,%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].brlensDir[0], modelParams[i].brlensDir[1], modelParams[i].brlensDir[2], modelParams[i].brlensDir[3], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].unconstrainedPr,"invGamDir")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].brlensDir[numVars[i]++] = tempD; + if (numVars[i] == 1 || numVars[i] == 2 || numVars[i] == 3) + expecting = Expecting(COMMA); + else + { + if (modelParams[i].brlensDir[0] <= 2.0 || modelParams[i].brlensDir[1] <= 0.0 || modelParams[i].brlensDir[2] <= 0.0 || modelParams[i].brlensDir[3] <= 0.0) + { + MrBayesPrint ("%s alphaT must > 2.0, betaT & a & c for invGamDir prior must > 0.0\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Brlenspr to Unconstrained:invGamDir(%1.2lf,%1.4lf,%1.2lf,%1.2lf)\n", spacer, modelParams[i].brlensDir[0], modelParams[i].brlensDir[1], modelParams[i].brlensDir[2], modelParams[i].brlensDir[3]); + else + MrBayesPrint ("%s Setting Brlenspr to Unconstrained:invGamDir(%1.2lf,%1.4lf,%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].brlensDir[0], modelParams[i].brlensDir[1], modelParams[i].brlensDir[2], modelParams[i].brlensDir[3], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].unconstrainedPr,"twoExp")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].brlens2Exp[numVars[i]++] = tempD; + if (numVars[i] == 1) + expecting = Expecting(COMMA); + else + { + if (modelParams[i].brlens2Exp[0] <= 0.0 || modelParams[i].brlens2Exp[1] <= 0.0) + { + MrBayesPrint ("%s Values for the two exponentials must > 0.0\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Brlenspr to Unconstrained:twoExp(%1.2lf,%1.2lf)\n", spacer, modelParams[i].brlens2Exp[0], modelParams[i].brlens2Exp[1]); + else + MrBayesPrint ("%s Setting Brlenspr to Unconstrained:twoExp(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].brlens2Exp[0], modelParams[i].brlens2Exp[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + } + else if (!strcmp(colonPr,"Fixed") || !strcmp(colonPr,"Clock")) + { + sscanf (tkn, "%d", &tempInt); + if (tempInt < 1 || tempInt > numUserTrees) + { + MrBayesPrint ("%s Tree needs to be in the range %d to %d\n", spacer, 1, numUserTrees); + return (ERROR); + } + fromI = tempInt; + expecting = Expecting(RIGHTPAR); + } + foundLeftPar = NO; + } + else if (expecting == Expecting(COLON)) + { + expecting = Expecting(ALPHA); + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + if (!strcmp(colonPr,"Fixed") || (!strcmp(colonPr,"Clock") && !strcmp(clockPr,"Fixed"))) + { + /* index of a tree which set up branch lengths*/ + nApplied = NumActiveParts (); + for (i=0; iname); + else + MrBayesPrint ("%s Setting Brlenspr to Fixed(%s) for partition %d\n", spacer, userTree[fromI-1]->name, i+1); + } + else + { + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Brlenspr to Fixed(%s)\n", spacer, userTree[fromI-1]->name); + else + MrBayesPrint ("%s Setting Brlenspr to Fixed(%s) for partition %d\n", spacer, userTree[fromI-1]->name, i+1); + } + } + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Speciationpr (speciationPr) *************************************************/ + else if (!strcmp(parmName, "Speciationpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i= modelParams[i].speciationUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Speciationpr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].speciationUni[0], modelParams[i].speciationUni[1]); + else + MrBayesPrint ("%s Setting Speciationpr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].speciationUni[0], modelParams[i].speciationUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].speciationPr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + if (tempD <= 0.0) + { + MrBayesPrint ("%s Exponential parameter must be positive\n", spacer); + return (ERROR); + } + modelParams[i].speciationExp = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Speciationpr to Exponential(%1.2lf)\n", spacer, modelParams[i].speciationExp); + else + MrBayesPrint ("%s Setting Speciationpr to Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].speciationExp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].speciationPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + if (tempD <= 0.0) + { + MrBayesPrint ("%s Net speciation rate must be positive\n", spacer); + return (ERROR); + } + modelParams[i].speciationFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Speciationpr to Fixed(%1.2lf)\n", spacer, modelParams[i].speciationFix); + else + MrBayesPrint ("%s Setting Speciationpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].speciationFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Extinctionpr (extinctionPr) *************************************************/ + else if (!strcmp(parmName, "Extinctionpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i= 1.0) + { + MrBayesPrint ("%s Relative extinction rate must be in range [0,1)\n", spacer); + return (ERROR); + } + modelParams[i].extinctionFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Extinctionpr to Fixed(%1.2lf)\n", spacer, modelParams[i].extinctionFix); + else + MrBayesPrint ("%s Setting Extinctionpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].extinctionFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Fossilizationpr (fossilizationPr) */ + else if (!strcmp(parmName, "Fossilizationpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i 1.0) + { + MrBayesPrint ("%s Relative fossilization rate must be in the range (0,1]\n", spacer); + return (ERROR); + } + modelParams[i].fossilizationFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Fossilizationpr to Fixed(%1.2lf)\n", spacer, modelParams[i].fossilizationFix); + else + MrBayesPrint ("%s Setting Fossilizationpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].fossilizationFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set SampleStrat (sampleStrat) ***************************************************/ + else if (!strcmp(parmName, "Samplestrat")) + { + if (expecting == Expecting(EQUALSIGN)) + { + expecting = Expecting(ALPHA); + } + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i 0\n", spacer); + return (ERROR); + } + modelParams[i].sampleFSNum = tempInt; + if (memAllocs[ALLOC_SAMPLEFOSSILSLICE] == YES) + { + free(modelParams[i].sampleFSProb); + free(modelParams[i].sampleFSTime); + } + modelParams[i].sampleFSTime = (MrBFlt *) SafeMalloc ((size_t)tempInt * sizeof(MrBFlt)); + modelParams[i].sampleFSProb = (MrBFlt *) SafeMalloc ((size_t)tempInt * sizeof(MrBFlt)); + memAllocs[ALLOC_SAMPLEFOSSILSLICE] = YES; + foundFSNum[i] = YES; + expecting = Expecting(COLON); + } + else if (foundFSTime[i] == NO) + { + sscanf (tkn, "%lf", &tempD); + if (tempD <= 0.0) + { + MrBayesPrint ("%s Time of fossil slice sampling events must be > 0.\n", spacer); + return (ERROR); + } + if (numVars[i] > 0 && modelParams[i].sampleFSTime[numVars[i]-1] < tempD) + { + MrBayesPrint ("%s Time of fossil slice sampling events must be in decreasing order\n", spacer); + return (ERROR); + } + modelParams[i].sampleFSTime[numVars[i]] = tempD; + foundFSTime[i] = YES; + expecting = Expecting(NUMBER); + } + else + { + sscanf (tkn, "%lf", &tempD); + if (tempD < 0.0 || tempD > 1.0) + { + MrBayesPrint ("%s Prob of fossil slice sampling events must be in [0,1]\n", spacer); + return (ERROR); + } + modelParams[i].sampleFSProb[numVars[i]] = tempD; + foundFSTime[i] = NO; + expecting = Expecting(COMMA); + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting %d FSTime FSProb to %1.2lf %1.6lf\n", spacer, numVars[i]+1, + modelParams[i].sampleFSTime[numVars[i]], modelParams[i].sampleFSProb[numVars[i]]); + else + MrBayesPrint ("%s Setting %d FSTime FSProb to %1.2lf %1.6lf for partition %d\n", spacer, numVars[i]+1, + modelParams[i].sampleFSTime[numVars[i]], modelParams[i].sampleFSProb[numVars[i]], i+1); + numVars[i]++; + if (numVars[i] == modelParams[i].sampleFSNum) + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + } + } + } + else if (expecting == Expecting(COLON) || expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else + { + return (ERROR); + } + } + /* set Sampleprob (sampleProb) *****************************************************/ + else if (!strcmp(parmName, "Sampleprob")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + nApplied = NumActiveParts (); + for (i=0; i 1.0) + { + MrBayesPrint ("%s Sampleprob should be in range (0,1]\n", spacer); + return (ERROR); + } + modelParams[i].sampleProb = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Sampleprob to %1.8lf\n", spacer, modelParams[i].sampleProb); + else + MrBayesPrint ("%s Setting Sampleprob to %1.8lf for partition %d\n", spacer, modelParams[i].sampleProb, i+1); + } + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Treeagepr (treeAgePr) *******************************************************/ + else if (!strcmp(parmName, "Treeagepr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i= modelParams[i].popSizeUni[1]) + { + MrBayesPrint ("%s Lower value for Uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Popsizepr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].popSizeUni[0], modelParams[i].popSizeUni[1]); + else + MrBayesPrint ("%s Setting Popsizepr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].popSizeUni[0], modelParams[i].popSizeUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].popSizePr,"Lognormal")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].popSizeLognormal[numVars[i]++] = tempD; + if (numVars[i] == 1) + { + expecting = Expecting(COMMA); + } + else + { + if (modelParams[i].popSizeLognormal[1] <= 0.0) + { + MrBayesPrint ("%s Standard deviation of Lognormal must be a positive number\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Popsizepr to Lognormal(%1.2lf,%1.2lf)\n", spacer, modelParams[i].popSizeLognormal[0], modelParams[i].popSizeLognormal[1]); + else + MrBayesPrint ("%s Setting Popsizepr to Lognormal(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].popSizeLognormal[0], modelParams[i].popSizeLognormal[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].popSizePr,"Normal")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].popSizeNormal[numVars[i]++] = tempD; + if (numVars[i] == 1) + { + if (modelParams[i].popSizeNormal[0] <= 0.0) + { + MrBayesPrint ("%s Mean of Truncated Normal must be a positive number\n", spacer); + return (ERROR); + } + expecting = Expecting(COMMA); + } + else + { + if (modelParams[i].popSizeNormal[1] <= 0.0) + { + MrBayesPrint ("%s Standard deviation of Truncated Normal must be a positive number\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Popsizepr to Truncated Normal(%1.2lf,%1.2lf)\n", spacer, modelParams[i].popSizeNormal[0], modelParams[i].popSizeNormal[1]); + else + MrBayesPrint ("%s Setting Popsizepr to Truncated Normal(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].popSizeNormal[0], modelParams[i].popSizeNormal[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].popSizePr,"Gamma")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].popSizeGamma[numVars[i]++] = tempD; + if (numVars[i] == 1) + { + if (modelParams[i].popSizeGamma[0] <= 0.0) + { + MrBayesPrint ("%s Shape (alpha) of Gamma must be a positive number\n", spacer); + return (ERROR); + } + expecting = Expecting(COMMA); + } + else + { + if (modelParams[i].popSizeGamma[1] <= 0.0) + { + MrBayesPrint ("%s Rate (beta) of Gamma must be a positive number\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Popsizepr to Gamma(%1.2lf,%1.2lf)\n", spacer, modelParams[i].popSizeGamma[0], modelParams[i].popSizeGamma[1]); + else + MrBayesPrint ("%s Setting Popsizepr to Gamma(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].popSizeGamma[0], modelParams[i].popSizeGamma[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].popSizePr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + if (AreDoublesEqual(tempD, 0.0, ETA)==YES) + { + MrBayesPrint ("%s Popsizepr cannot be fixed to 0.0\n", spacer); + return (ERROR); + } + modelParams[i].popSizeFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Popsizepr to Fixed(%1.5lf)\n", spacer, modelParams[i].popSizeFix); + else + MrBayesPrint ("%s Setting Popsizepr to Fixed(%1.5lf) for partition %d\n", spacer, modelParams[i].popSizeFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Popvarpr (popVarPr) **************************************************************/ + else if (!strcmp(parmName, "Popvarpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i CPPLAMBDA_MAX) + { + MrBayesPrint ("%s CPP rate must be in the range %f - %f\n", spacer, CPPLAMBDA_MIN, CPPLAMBDA_MAX); + return (ERROR); + } + modelParams[i].cppRateFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Cppratepr to Fixed(%1.2lf)\n", spacer, modelParams[i].cppRateFix); + else + MrBayesPrint ("%s Setting Cppratepr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].cppRateFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Compound Poisson Process rate multiplier standard deviation (log scale) ***********************/ + else if (!strcmp(parmName, "Cppmultdevpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i POSREAL_MAX) + { + MrBayesPrint ("%s The log standard deviation of rate multipliers must be in the range %f - %f\n", spacer, POSREAL_MIN, POSREAL_MAX); + return (ERROR); + } + modelParams[i].cppMultDevFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Cppmultdevpr to Fixed(%1.2lf)\n", spacer, modelParams[i].cppMultDevFix); + else + MrBayesPrint ("%s Setting Cppmultdevpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].cppMultDevFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set prior for variance of lognormal of autocorrelated rates (tk02varPr) ***********************/ + else if (!strcmp(parmName, "TK02varpr") || !strcmp(parmName,"Bmvarpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i= modelParams[i].tk02varUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting TK02varpr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].tk02varUni[0], modelParams[i].tk02varUni[1]); + else + MrBayesPrint ("%s Setting TK02varpr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].tk02varUni[0], modelParams[i].tk02varUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].tk02varPr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].tk02varExp = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting TK02varpr to Exponential(%1.2lf)\n", spacer, modelParams[i].tk02varExp); + else + MrBayesPrint ("%s Setting TK02varpr to Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].tk02varExp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].tk02varPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + if (tempD < TK02VAR_MIN || tempD > TK02VAR_MAX) + { + MrBayesPrint ("%s Ratevar (nu) must be in the range %f - %f\n", spacer, TK02VAR_MIN, TK02VAR_MAX); + return (ERROR); + } + modelParams[i].tk02varFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting TK02varpr to Fixed(%1.2lf)\n", spacer, modelParams[i].tk02varFix); + else + MrBayesPrint ("%s Setting TK02varpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].tk02varFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set prior for shape of independent branch rate gamma distribution (igrvarPr) ***********************/ + else if (!strcmp(parmName, "Igrvarpr") || !strcmp(parmName, "Ibrvarpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i= modelParams[i].igrvarUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Igrvarpr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].igrvarUni[0], modelParams[i].igrvarUni[1]); + else + MrBayesPrint ("%s Setting Igrvarpr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].igrvarUni[0], modelParams[i].igrvarUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].igrvarPr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].igrvarExp = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Igrvarpr to Exponential(%1.2lf)\n", spacer, modelParams[i].igrvarExp); + else + MrBayesPrint ("%s Setting Igrvarpr to Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].igrvarExp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].igrvarPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + if (tempD < IGRVAR_MIN || tempD > IGRVAR_MAX) + { + MrBayesPrint ("%s Igrvar must be in the range %f - %f\n", spacer, IGRVAR_MIN, IGRVAR_MAX); + return (ERROR); + } + modelParams[i].igrvarFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Igrvarpr to Fixed(%1.2lf)\n", spacer, modelParams[i].igrvarFix); + else + MrBayesPrint ("%s Setting Igrvarpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].igrvarFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set prior for variance of mixed relaxed clock model (mixedvarPr) ***********************/ + else if (!strcmp(parmName, "Mixedvarpr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i= modelParams[i].mixedvarUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Mixedvarpr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].mixedvarUni[0], modelParams[i].mixedvarUni[1]); + else + MrBayesPrint ("%s Setting Mixedvarpr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].mixedvarUni[0], modelParams[i].mixedvarUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].mixedvarPr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].mixedvarExp = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Mixedvarpr to Exponential(%1.2lf)\n", spacer, modelParams[i].mixedvarExp); + else + MrBayesPrint ("%s Setting Mixedvarpr to Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].mixedvarExp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].mixedvarPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + if (tempD < IGRVAR_MIN || tempD > IGRVAR_MAX || tempD < TK02VAR_MIN || tempD > TK02VAR_MAX) + { + MrBayesPrint ("%s Mixedvar must be in the range %f - %f\n", spacer, IGRVAR_MIN, IGRVAR_MAX); + return (ERROR); + } + modelParams[i].mixedvarFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Mixedvarpr to Fixed(%1.2lf)\n", spacer, modelParams[i].mixedvarFix); + else + MrBayesPrint ("%s Setting Mixedvarpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].mixedvarFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Growthpr (growthPr) **************************************************************/ + else if (!strcmp(parmName, "Growthpr")) + { + if (expecting == Expecting(EQUALSIGN)) + { + expecting = Expecting(ALPHA); + isNegative = NO; + } + else if (expecting == Expecting(ALPHA)) + { + isNegative = NO; + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i= modelParams[i].growthUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Growthpr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].growthUni[0], modelParams[i].growthUni[1]); + else + MrBayesPrint ("%s Setting Growthpr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].growthUni[0], modelParams[i].growthUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].growthPr,"Normal")) + { + sscanf (tkn, "%lf", &tempD); + if (isNegative == YES) + tempD *= -1.0; + modelParams[i].growthNorm[numVars[i]++] = tempD; + if (numVars[i] == 1) + expecting = Expecting(COMMA); + else + { + if (modelParams[i].growthNorm[1] < 0.0) + { + MrBayesPrint ("%s Variance for normal distribution should be greater than zero\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Growthpr to Normal(%1.2lf,%1.2lf)\n", spacer, modelParams[i].growthNorm[0], modelParams[i].growthNorm[1]); + else + MrBayesPrint ("%s Setting Growthpr to Normal(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].growthNorm[0], modelParams[i].growthNorm[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].growthPr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].growthExp = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Growthpr to Exponential(%1.2lf)\n", spacer, modelParams[i].growthExp); + else + MrBayesPrint ("%s Setting Growthpr to Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].growthExp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].growthPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + if (isNegative == YES) + tempD *= -1.0; + modelParams[i].growthFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Growthpr to Fixed(%1.2lf)\n", spacer, modelParams[i].growthFix); + else + MrBayesPrint ("%s Setting Growthpr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].growthFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + isNegative = NO; + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Aamodelpr (aaModelPr) **************************************************************/ + else if (!strcmp(parmName, "Aamodelpr")) + { + if (expecting == Expecting(EQUALSIGN)) + { + expecting = Expecting(ALPHA); + foundAaSetting = foundExp = modelIsFixed = foundDash = NO; + fromI = 0; + for (i=0; i<10; i++) + tempAaModelPrs[i] = 0.0; + } + else if (expecting == Expecting(ALPHA)) + { + if (foundAaSetting == NO) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + for (i=0; i= 10) + { + MrBayesPrint ("%s Too many arguments in Aamodelpr\n", spacer); + return (ERROR); + } + if (modelIsFixed == NO) + { + if (foundExp == YES) + { + if (foundDash == YES) + tempAaModelPrs[fromI++] = -tempD; + else + tempAaModelPrs[fromI++] = tempD; + expecting = Expecting(RIGHTPAR); + } + else + { + if (foundDash == YES) + { + MrBayesPrint ("%s Unexpected \"-\" in Aamodelpr\n", spacer); + return (ERROR); + } + else + { + if (tempD <= 0.000000000001) + tempAaModelPrs[fromI++] = -1000000000; + else + tempAaModelPrs[fromI++] = (MrBFlt) log(tempD); + } + expecting = Expecting(COMMA) | Expecting(RIGHTPAR); + } + foundDash = NO; + } + else + { + MrBayesPrint ("%s Not expecting a number\n", spacer); + return (ERROR); + } + } + else if (expecting == Expecting(LEFTPAR)) + { + if (modelIsFixed == YES) + expecting = Expecting(ALPHA); + else + { + if (foundExp == YES) + expecting = Expecting(NUMBER) | Expecting(DASH); + else + expecting = Expecting(NUMBER) | Expecting(ALPHA); + } + } + else if (expecting == Expecting(RIGHTPAR)) + { + if (modelIsFixed == YES) + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + else + { + if (foundExp == YES) + { + foundExp = NO; + expecting = Expecting(COMMA) | Expecting(RIGHTPAR); + } + else + { + if (fromI < 10) + { + MrBayesPrint ("%s Too few arguments in Aamodelpr\n", spacer); + return (ERROR); + } + nApplied = NumActiveParts (); + for (i=0; i= modelParams[i].brownScalesUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Brownscalepr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].brownScalesUni[0], modelParams[i].brownScalesUni[1]); + else + MrBayesPrint ("%s Setting Brownscalepr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].brownScalesUni[0], modelParams[i].brownScalesUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].brownScalesPr,"Gamma")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].brownScalesGamma[numVars[i]++] = tempD; + if (numVars[i] == 1) + expecting = Expecting(COMMA); + else + { + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Brownscalepr to Gamma Mean=%1.2lf Var=%1.2lf\n", spacer, modelParams[i].brownScalesGamma[0], modelParams[i].brownScalesGamma[1]); + else + MrBayesPrint ("%s Setting Brownscalepr to Gamma Mean=%1.2lf Var=%1.2lf for partition %d\n", spacer, modelParams[i].brownScalesGamma[0], modelParams[i].brownScalesGamma[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].brownScalesPr,"Gammamean")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].brownScalesGammaMean = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Brownscalepr to Gamma Mean= Var=%1.2lf\n", spacer, modelParams[i].brownScalesGammaMean); + else + MrBayesPrint ("%s Setting Brownscalepr to Gamma Mean= Var=%1.2lf for partition %d\n", spacer, modelParams[i].brownScalesGammaMean, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].brownScalesPr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].brownScalesFix = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting Brownscalepr to Fixed(%1.2lf)\n", spacer, modelParams[i].brownScalesFix); + else + MrBayesPrint ("%s Setting Brownscalepr to Fixed(%1.2lf) for partition %d\n", spacer, modelParams[i].brownScalesFix, i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set M10betapr (m10betapr) ********************************************************/ + else if (!strcmp(parmName, "M10betapr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i= modelParams[i].m10betaUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting M10betapr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].m10betaUni[0], modelParams[i].m10betaUni[1]); + else + MrBayesPrint ("%s Setting M10betapr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].m10betaUni[0], modelParams[i].m10betaUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].m10betapr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].m10betaExp = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting M10betapr to Exponential(%1.2lf)\n", spacer, modelParams[i].m10betaExp); + else + MrBayesPrint ("%s Setting M10betapr to Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].m10betaExp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].m10betapr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].m10betaFix[numVars[i]++] = tempD; + if (numVars[i] == 1) + expecting = Expecting(COMMA); + else + { + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting M10betapr to Fixed(%1.2lf,%1.2lf)\n", spacer, modelParams[i].m10betaFix[0], modelParams[i].m10betaFix[1]); + else + MrBayesPrint ("%s Setting M10betapr to Fixed(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].m10betaFix[0], modelParams[i].m10betaFix[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set M10gammapr (m10gammapr) ********************************************************/ + else if (!strcmp(parmName, "M10gammapr")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + flag = 0; + for (i=0; i= modelParams[i].m10gammaUni[1]) + { + MrBayesPrint ("%s Lower value for uniform should be greater than upper value\n", spacer); + return (ERROR); + } + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting M10gammapr to Uniform(%1.2lf,%1.2lf)\n", spacer, modelParams[i].m10gammaUni[0], modelParams[i].m10gammaUni[1]); + else + MrBayesPrint ("%s Setting M10gammapr to Uniform(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].m10gammaUni[0], modelParams[i].m10gammaUni[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + else if (!strcmp(modelParams[i].m10gammapr,"Exponential")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].m10gammaExp = tempD; + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting M10gammapr to Exponential(%1.2lf)\n", spacer, modelParams[i].m10gammaExp); + else + MrBayesPrint ("%s Setting M10gammapr to Exponential(%1.2lf) for partition %d\n", spacer, modelParams[i].m10gammaExp, i+1); + expecting = Expecting(RIGHTPAR); + } + else if (!strcmp(modelParams[i].m10gammapr,"Fixed")) + { + sscanf (tkn, "%lf", &tempD); + modelParams[i].m10gammaFix[numVars[i]++] = tempD; + if (numVars[i] == 1) + expecting = Expecting(COMMA); + else + { + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting M10gammapr to Fixed(%1.2lf,%1.2lf)\n", spacer, modelParams[i].m10gammaFix[0], modelParams[i].m10gammaFix[1]); + else + MrBayesPrint ("%s Setting M10gammapr to Fixed(%1.2lf,%1.2lf) for partition %d\n", spacer, modelParams[i].m10gammaFix[0], modelParams[i].m10gammaFix[1], i+1); + expecting = Expecting(RIGHTPAR); + } + } + } + } + } + else if (expecting == Expecting(COMMA)) + { + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(RIGHTPAR)) + { + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + + else + return (ERROR); + } + + return (NO_ERROR); +} + + +int DoQuit (void) +{ + int i; + char tempName[100]; + + /* free information for model and matrix */ + FreeModel (); + FreeMatrix (); + + SafeFclose (&logFileFp); + logToFile = NO; + + /* check to see if any memory has not been freed */ + for (i=0; i numCurrentDivisions) + { + MrBayesPrint ("%s Partition delimiter is too large\n", spacer); + return (ERROR); + } + if (fromI == -1) + fromI = tempInt; + else if (fromI != -1 && toJ == -1 && foundDash == YES && foundComma == NO) + { + toJ = tempInt; + for (i=fromI-1; i 1) + { + strcpy(modelParams[i].ratemultFormat, tempStr); + if (nApplied == 0 && numCurrentDivisions == 1) + MrBayesPrint ("%s Setting rate multiplier (ratemult) format to %s\n", spacer, modelParams[i].ratemultFormat); + else + MrBayesPrint ("%s Setting rate multiplier (ratemult) format to %s for partition %d\n", spacer, modelParams[i].ratemultFormat, i+1); + } + } + } + else + { + MrBayesPrint ("%s Invalid rate multiplier (ratemult) format \n", spacer); + return (ERROR); + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set report format of tree ***************************************************/ + else if (!strcmp(parmName, "Tree")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting (ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + nApplied = NumActiveParts (); + tempInt = NO; + for (i=0; i(,)=(,...) -- apply to run and chain + (,)=(,...) -- apply to chain for all runs + (,)=(,...) -- apply to run for all chains + + topology and branch length parameters are specified like + (,)=| + + parameter names will often be followed by partition specifiers like: + pi{all} + pinvar{1,4,5} + so we need to assemble the parameter name from several tokens that are parsed out separately; + here we receive only the first part (before the left curly, if present) + */ + + /* copy to local parameter name */ + SafeStrcpy (&tempName, tkn); + param = NULL; + runIndex = chainIndex = -1; + useSubvalues = NO; + useIntValues = NO; + useStdStateFreqs = NO; + foundComma = foundEqual = foundName = foundDash = NO; + expecting = Expecting(LEFTCURL) | Expecting(LEFTPAR) | Expecting(EQUALSIGN); + } + else + return (ERROR); + } + else if (expecting == Expecting(ALPHA)) + { + if (param == NULL) + { + /* we are still assembling the parameter name */ + SafeStrcat (&tempName, tkn); + expecting = Expecting(RIGHTCURL) | Expecting(COMMA) | Expecting(LEFTPAR) | Expecting(EQUALSIGN); + } + else + { + /* we have a tree name; now find the tree based on name, case insensitive */ + if (GetUserTreeFromName (&treeIndex, tkn) == ERROR || treeIndex == -1) + { + MrBayesPrint ("%s Error in finding user tree\n", spacer); + return (ERROR); + } + + /* set the tree parameter */ + for (i=0; iparamType != P_POPSIZE) + { + if (param->paramType == P_TOPOLOGY || param->paramType == P_BRLENS || param->paramType == P_SPECIESTREE) + { + /* topology or brlens or speciestree params */ + theTree = GetTree (param, chainId, 0); + usrTree = GetTree (param, chainId, 1); /* use as scratch space */ + } + else + { + /* relaxed clock params */ + theTree = GetTree (modelSettings[param->relParts[0]].brlens, chainId, 0); + usrTree = GetTree (modelSettings[param->relParts[0]].brlens, chainId, 1); + } + CopyToTreeFromTree (usrTree, theTree); + if (param->paramType == P_SPECIESTREE) + thePolyTree = AllocatePolyTree(numSpecies); + else + thePolyTree = AllocatePolyTree (numTaxa); + CopyToPolyTreeFromPolyTree (thePolyTree, userTree[treeIndex]); + if (param->paramType == P_SPECIESTREE) + { + ResetIntNodeIndices(thePolyTree); + } + else + { + PrunePolyTree (thePolyTree); + ResetTipIndices(thePolyTree); + } + RandResolve (NULL, thePolyTree, &globalSeed, theTree->isRooted); + GetPolyDownPass(thePolyTree); + ResetIntNodeIndices(thePolyTree); + if (param->paramType == P_SPECIESTREE) + { + ret=CopyToSpeciesTreeFromPolyTree (usrTree, thePolyTree); + } + else + ret=CopyToTreeFromPolyTree (usrTree, thePolyTree); + FreePolyTree (thePolyTree); + if (ret==ERROR) + return ERROR; + } + else + { + /* param->paramType == P_POPSIZE */ + theTree = GetTree (modelSettings[param->relParts[0]].speciesTree, chainId, 0); + usrTree = GetTree (modelSettings[param->relParts[0]].speciesTree, chainId, 1); + CopyToTreeFromTree (usrTree, theTree); + thePolyTree = AllocatePolyTree(numSpecies); + CopyToPolyTreeFromPolyTree (thePolyTree, userTree[treeIndex]); + ResetIntNodeIndices(thePolyTree); + RandResolve (NULL, thePolyTree, &globalSeed, theTree->isRooted); + CopyToSpeciesTreeFromPolyTree (usrTree, thePolyTree); + FreePolyTree (thePolyTree); + } + if (param->paramType == P_TOPOLOGY) + { + if (theTree->checkConstraints == YES && CheckSetConstraints (usrTree) == ERROR) + { + MrBayesPrint ("%s Could not set the constraints for topology parameter '%s'\n", spacer, param->name); + return (ERROR); + } + if (ResetTopologyFromTree (theTree, usrTree) == ERROR) + { + MrBayesPrint ("%s Could not set the topology parameter '%s'\n", spacer, param->name); + return (ERROR); + } + if (theTree->checkConstraints == YES && CheckSetConstraints (theTree)==ERROR) + { + MrBayesPrint ("%s Could not set the constraints for topology parameter '%s'\n", spacer, param->name); + return (ERROR); + } + FillTopologySubParams (param, chainId, 0, &globalSeed); + //MrBayesPrint ("%s Branch lengths and relaxed clock subparameters of a parameter '%s' are reset.\n", spacer, param->name); + if (param->paramId == TOPOLOGY_SPECIESTREE) + FillSpeciesTreeParams(&globalSeed, chainId, chainId+1); + //assert (IsTreeConsistent(param, chainId, 0) == YES); + } + else if (param->paramType == P_BRLENS) + { + if (usrTree->allDownPass[0]->length == 0.0 && param->paramId != BRLENS_CLOCK_FOSSIL) + { + MrBayesPrint ("%s User tree '%s' does not have branch lengths so it cannot be used in setting parameter '%s'\n", spacer, userTree[treeIndex]->name, param->name); + return (ERROR); + } + if (AreTopologiesSame (theTree, usrTree) == NO) + { + MrBayesPrint ("%s Topology of user tree '%s' wrong in setting parameter '%s'\n", spacer, userTree[treeIndex]->name, param->name); + return (ERROR); + } + //assert (IsTreeConsistent(param, chainId, 0) == YES); + /* reset node depths to ensure that non-dated tips have node depth 0.0 */ + /* if (usrTree->isClock == YES) + SetNodeDepths(usrTree); */ + if (ResetBrlensFromTree (theTree, usrTree) == ERROR) + { + MrBayesPrint ("%s Could not set parameter '%s' from user tree '%s'\n", spacer, param->name, userTree[treeIndex]->name); + return (ERROR); + } + if (theTree->isClock == YES && modelParams[theTree->relParts[0]].treeAgePr.prior == fixed) + { + if (!strcmp(modelParams[theTree->relParts[0]].clockPr,"Uniform") + || !strcmp(modelParams[theTree->relParts[0]].clockPr,"Fossilization")) + ResetRootHeight (theTree, modelParams[theTree->relParts[0]].treeAgePr.priorParams[0]); + } + /* the test will find suitable clock rate and ages of nodes in theTree */ + if (theTree->isClock == YES && IsClockSatisfied (theTree,0.001) == NO) + { + MrBayesPrint ("%s Non-calibrated tips are not at the same level after setting up starting tree branch lengthes(%s) from user tree '%s'.\n", + spacer, param->name, userTree[treeIndex]->name); + ShowNodes(theTree->root,0,YES); + return (ERROR); + } + if (theTree->isCalibrated == YES && IsCalibratedClockSatisfied (theTree, &minRate,&maxRate, 0.001) == NO) + { + MrBayesPrint ("%s Problem setting calibrated tree parameters\n", spacer); + return (ERROR); + } + if (theTree->isCalibrated == YES && !strcmp(modelParams[theTree->relParts[0]].clockRatePr, "Fixed")) + { + clockRate = modelParams[theTree->relParts[0]].clockRateFix; + if ((clockRate < minRate && AreDoublesEqual (clockRate, minRate , 0.001) == NO) || (clockRate > maxRate && AreDoublesEqual (clockRate, maxRate , 0.001) == NO)) + { + MrBayesPrint("%s Fixed branch lengths do not satisfy fixed clockrate\n", spacer); + return (ERROR); + } + } + theTree->fromUserTree=YES; + + FillBrlensSubParams (param, chainId, 0); + //MrBayesPrint ("%s Rrelaxed clock subparamiters of a parameter '%s' are reset.\n", spacer, param->name); + //assert (IsTreeConsistent(param, chainId, 0) == YES); + if (param->paramId == BRLENS_CLOCK_SPCOAL) + FillSpeciesTreeParams(&globalSeed, chainId, chainId+1); + //assert (IsTreeConsistent(param, chainId, 0) == YES); + } + else if (param->paramType == P_CPPEVENTS || param->paramType == P_TK02BRANCHRATES || + param->paramType == P_IGRBRANCHRATES || param->paramType == P_MIXEDBRCHRATES) + { + if (theTree->isCalibrated == YES && theTree->fromUserTree == NO) + { /* if theTree is not set from user tree then we can not garanty that branch lenghts will stay the same + by the time we start mcmc run because of clockrate adjustment. */ + MrBayesPrint ("%s Set starting values for branch lengthes first before setting starting values of relaxed parameters!\n", spacer); + return (ERROR); + } + if (theTree->isCalibrated == NO && IsClockSatisfied (usrTree, 0.001) == NO) // user tree is not calibrated so do not check it if calibration is in place + { + MrBayesPrint ("%s Branch lengths of the user tree '%s' do not satisfy clock in setting parameter '%s'\n", spacer, userTree[treeIndex], param->name); + ShowNodes(usrTree->root,0,YES); + return (ERROR); + } + if (AreTopologiesSame (theTree, usrTree) == NO) + { + MrBayesPrint ("%s Topology of user tree '%s' is wrong in setting parameter '%s'\n", spacer, userTree[treeIndex]->name, param->name); + return (ERROR); + } + if (SetRelaxedClockParam (param, chainId, 0, userTree[treeIndex]) == ERROR) + { + MrBayesPrint ("%s Could not set parameter '%s' from user tree '%s'\n", spacer, param->name, userTree[treeIndex]->name); + return (ERROR); + } + //assert (IsTreeConsistent(param, chainId, 0) == YES); + } + else if (param->paramType == P_POPSIZE) + { + if (AreTopologiesSame (theTree, usrTree) == NO) + { + MrBayesPrint ("%s Topology of user tree '%s' is wrong in setting parameter '%s'\n", spacer, userTree[treeIndex]->name, param->name); + return (ERROR); + } + if (SetPopSizeParam (param, chainId, 0, userTree[treeIndex]) == ERROR) + { + MrBayesPrint ("%s Could not set parameter '%s' from user tree '%s'\n", spacer, param->name, userTree[treeIndex]->name); + return (ERROR); + } + } + else if (param->paramType == P_SPECIESTREE) + { + if (IsSpeciesTreeConsistent (usrTree, chainId) == NO) + { + MrBayesPrint ("%s User-specified species tree '%s' is inconsistent with gene trees\n", spacer, userTree[treeIndex]->name); + return (ERROR); + } + if (CopyToTreeFromTree (theTree, usrTree) == ERROR) + { + MrBayesPrint ("%s Could not set the species tree parameter '%s'\n", spacer, param->name); + return (ERROR); + } + //assert (IsTreeConsistent(param, chainId, 0) == YES); + } + } + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + } + else if (expecting == Expecting(LEFTCURL)) + { + /* we are still assembling the parameter name */ + SafeStrcat (&tempName, tkn); + expecting = Expecting(NUMBER) | Expecting(ALPHA) | Expecting(LEFTPAR) | Expecting(EQUALSIGN); + } + else if (expecting == Expecting(RIGHTCURL)) + { + /* we are still assembling the parameter name */ + SafeStrcat (&tempName, tkn); + foundComma = NO; /*! if there was a comma in the partition part, we should reset this variable. Otherwise we can't parse something like A{1,2}(3,4) */ + expecting = Expecting(LEFTPAR) | Expecting(EQUALSIGN); + } + else if (expecting == Expecting(LEFTPAR)) + { + if (foundEqual == NO) + { + foundName = YES; /* we found the name */ + /* we will be reading in run and chain indices */ + expecting = Expecting(NUMBER) | Expecting(COMMA); + } + else + { + expecting = Expecting(NUMBER); + expecting |= Expecting(DASH); + } + } + else if (expecting == Expecting(DASH)) + { + foundDash = YES; + expecting = Expecting(NUMBER); + } + else if (expecting == Expecting(NUMBER)) + { + if (foundName == NO) + { + /* we are still assembling the parameter name */ + SafeStrcat (&tempName, tkn); + expecting = Expecting(COMMA) | Expecting(LEFTPAR) | Expecting(RIGHTCURL) | Expecting(EQUALSIGN); + } + else if (foundEqual == YES) + { + theValueMin = param->min; + theValueMax = param->max; + + /* we are reading in a parameter value */ + if (param->paramType==P_OMEGA && nValuesRead==numExpectedValues && useSubvalues == NO) + { + /* continue with subvalues */ + nValuesRead = 0; + numExpectedValues = param->nSubValues/2; + useSubvalues = YES; + theValueMin = ETA; + theValueMax = 1.0; + } + if (param->paramType==P_OMEGA && nValuesRead==numExpectedValues && useSubvalues == NO) + { + /* continue with subvalues */ + nValuesRead = 0; + numExpectedValues = param->nSubValues/2; + useSubvalues = YES; + theValueMin = ETA; + theValueMax = 1.0; + } + if (param->nIntValues > 0 && nValuesRead==numExpectedValues && useIntValues == NO) + { + /* continue with intValues */ + nValuesRead = 0; + numExpectedValues = param->nIntValues; + useIntValues = YES; + } + if (param->paramType==P_PI && modelSettings[param->relParts[0]].dataType == STANDARD && param->paramId != SYMPI_EQUAL + && nValuesRead==numExpectedValues && useStdStateFreqs == NO) + { + /* we have read alpha_symdir, continue with multistate char state freqs */ + nValuesRead = 0; + numExpectedValues = param->nStdStateFreqs; + if (param->hasBinaryStd == YES) + numExpectedValues -= 2 * modelSettings[param->relParts[0]].numBetaCats; + useStdStateFreqs = YES; + theValueMin = ETA; + theValueMax = 1.0; + } + nValuesRead++; + if (nValuesRead > numExpectedValues) + { + if (param->paramType == P_OMEGA) + MrBayesPrint ("%s Only %d values were expected for parameter '%s'\n", spacer, param->nValues+param->nSubValues/2, param->name); + else if (param->nIntValues > 0) + MrBayesPrint ("%s Only %d values were expected for parameter '%s'\n", spacer, param->nValues+param->nIntValues, param->name); + else + MrBayesPrint ("%s Only %d values were expected for parameter '%s'\n", spacer, numExpectedValues, param->name); + return (ERROR); + } + if (useIntValues == YES) + sscanf (tkn, "%d", &tempInt); + else + sscanf (tkn, "%lf", &tempFloat); + if (foundDash == YES) + { + if (useIntValues == NO) + tempFloat = -tempFloat; + else + tempInt = -tempInt; + foundDash = NO; + } + if (useIntValues == NO && (tempFloat < theValueMin || tempFloat > theValueMax)) + { + MrBayesPrint ("%s The value is out of range (min = %lf; max = %lf)\n", spacer, theValueMin, theValueMax); + return (ERROR); + } + for (i=0; ihasBinaryStd == YES) + theValue += 2 * modelSettings[param->relParts[0]].numBetaCats; + } + else + return (ERROR); + if (param->paramType == P_CLOCKRATE) + { + if (UpdateClockRate(tempFloat, i*chainParams.numChains+j) == ERROR) + { + return (ERROR); + } + } + theValue[nValuesRead-1] = tempFloat; + } + } + } + expecting = Expecting (COMMA) | Expecting(RIGHTPAR); + } + else /* if (foundEqual == NO) */ + { + sscanf (tkn, "%d", &tempInt); + if (foundComma == NO) + { + if (tempInt <= 0 || tempInt > chainParams.numRuns) + { + MrBayesPrint ("%s Run index is out of range (min=1; max=%d)\n", spacer, chainParams.numRuns); + return (ERROR); + } + runIndex = tempInt - 1; + expecting = Expecting(COMMA); + } + else + { + if (tempInt <= 0 || tempInt > chainParams.numChains) + { + MrBayesPrint ("%s Chain index is out of range (min=1; max=%d)\n", spacer, chainParams.numChains); + return (ERROR); + } + chainIndex = tempInt - 1; + foundComma = NO; + expecting = Expecting(RIGHTPAR); + } + } + } + else if (expecting == Expecting(COMMA)) + { + if (foundEqual == YES) + { + /* we expect another parameter value */ + expecting = Expecting(NUMBER); + } + else /* if (foundEqual == NO) */ + { + /* we will be reading in chain index, if present */ + foundComma = YES; + expecting = Expecting(RIGHTPAR) | Expecting(NUMBER); + /* if the comma is in a list of partitions (so between { and }) we have to add the comma to the parameter name */ + if (param == NULL && strchr(tempName, '}')==NULL && strchr(tempName, '{')!=NULL) + SafeStrcat (&tempName, ","); + } + } + else if (expecting == Expecting(RIGHTPAR)) + { + if (foundEqual == NO) + { + /* this is the end of the run and chain specification */ + expecting = Expecting(EQUALSIGN); + } + else /* if (foundEqual == YES) */ + { + /* this is the end of the parameter values */ + if (nValuesRead != numExpectedValues) + { + MrBayesPrint ("%s Expected %d values but only found %d values for parameter '%s'\n", spacer, numExpectedValues, nValuesRead, param->name); + return (ERROR); + } + /* Post processing needed for some parameters */ + if (param->paramType == P_SHAPE || param->paramType == P_CORREL) + { + for (i=0; iparamType == P_SHAPE && !strncmp(param->name, "Alpha", 5)) + { + if (DiscreteGamma (subValue, value[0], value[0], param->nSubValues, 0) == ERROR) + return (ERROR); + } + else if (param->paramType == P_SHAPE && !strncmp(param->name, "Sigma", 5)) + { + if( DiscreteLogNormal(subValue, value[0], param->nSubValues, 1) == ERROR) + return (ERROR); + } + else if (param->paramType == P_CORREL) + { + if (AutodGamma (subValue, value[0], (int)(sqrt(param->nSubValues) + 0.5)) == ERROR) + return (ERROR); + } + } + } + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + } + else if (expecting == Expecting(EQUALSIGN)) + { + foundEqual = YES; + foundName = YES; + + /* we now know that the name is complete; try to find the parameter with this name (case insensitive) */ + for (i=0; i<(int)strlen(tempName); i++) + tempName[i] = tolower(tempName[i]); + + /* first check exact matches */ + nMatches = j = 0; + for (i=0; iname); + for (k=0; k<(int)(strlen(temp)); k++) + temp[k] = tolower(temp[k]); + if (strcmp(tempName,temp) == 0) + { + j = i; + nMatches++; + } + } + /* now check unambiguous abbreviation matches */ + if (nMatches == 0) + { + nMatches = j = 0; + for (i=0; iname); + for (k=0; k<(int)strlen(temp); k++) + temp[k] = tolower(temp[k]); + if (strncmp(tempName,temp,strlen(tempName)) == 0) + { + j = i; + nMatches++; + } + } + } + + if (nMatches == 0) + { + extern char *tokenP; + MrBayesPrint ("%s Could not find parameter '%s': ignoring values\n", spacer, tempName); + while (*tokenP && *tokenP++!=')') {}; + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + return (*tokenP ? NO_ERROR:ERROR); + } + else if (nMatches > 1) + { + MrBayesPrint ("%s Several parameters matched the abbreviated name '%s'\n", spacer, tempName); + return (ERROR); + } + + param = ¶ms[j]; + if (param->printParam == NO && !(param->paramType == P_TOPOLOGY && strcmp(modelParams[param->relParts[0]].topologyPr,"Fixed")!=0) + && !(param->paramType == P_CPPEVENTS) + && !(param->paramType == P_TK02BRANCHRATES) + && !(param->paramType == P_IGRBRANCHRATES) + && !(param->paramType == P_MIXEDBRCHRATES) + && !(param->paramType == P_POPSIZE && param->nValues > 1)) + { + MrBayesPrint ("%s The parameter '%s' is fixed so the starting value cannot be set\n", spacer, param->name); + return (ERROR); + } + if (param->paramType == P_BRLENS || param->paramType == P_TOPOLOGY || param->paramType == P_CPPEVENTS || + param->paramType == P_TK02BRANCHRATES || param->paramType == P_IGRBRANCHRATES || param->paramType == P_MIXEDBRCHRATES || + param->paramType == P_SPECIESTREE || (param->paramType == P_POPSIZE && param->nValues > 1)) + { + /* all these parameters are set from a tree */ + expecting = Expecting (ALPHA); + } + else + /* run of the mill character */ + { + theValueMin = param->min; + theValueMax = param->max; + if ((param->paramType == P_PI && modelParams[param->relParts[0]].dataType != STANDARD)) + { + useSubvalues = YES; + useIntValues = NO; + numExpectedValues = param->nSubValues; + } + else if (param->nValues == 0 && param->nIntValues > 0) + { + useSubvalues = NO; + useIntValues = YES; + numExpectedValues = param->nIntValues; + } + else if (param->nValues > 0) + { + useSubvalues = NO; + useIntValues = NO; + numExpectedValues = param->nValues; + } + else + { + MrBayesPrint ("%s Not expecting any values for parameter '%s'\n", spacer, param->name); + return (ERROR); + } + nValuesRead = 0; + expecting = Expecting(LEFTPAR); + } + } + else + return (ERROR); + + SafeFree ((void **)&temp); + return (NO_ERROR); +} + + +int DoUnlink (void) +{ + int i, j; + + MrBayesPrint ("%s Unlinking\n", spacer); + + /* update status of linkTable */ + for (j=0; jisRooted == YES) + MrBayesPrint ("\n Tree '%s' [rooted]:\n\n", t->name); + else + MrBayesPrint ("\n Tree '%s' [unrooted]:\n\n", t->name); + if (ShowTree (t) == ERROR) + return (ERROR); + else + MrBayesPrint ("\n"); + } + } + } + + return (NO_ERROR); +} + + +int DoShowModel (void) +{ + if (defMatrix == NO) + { + MrBayesPrint ("%s A matrix must be specified before the model can be defined\n", spacer); + return (ERROR); + } + + if (ShowModel() == ERROR) + return (ERROR); + + return (NO_ERROR); +} + + +int DoShowMoves (void) +{ + if (defMatrix == NO) + { + MrBayesPrint ("%s A matrix must be specified before moves can be assigned\n", spacer); + return (ERROR); + } + + MrBayesPrint ("%s Moves that will be used by MCMC sampler (rel. proposal prob. > 0.0):\n\n", spacer); + if (ShowMoves(YES) == ERROR) + return (ERROR); + + if (showmovesParams.allavailable == YES) + { + MrBayesPrint ("%s Other available moves (rel. proposal prob. = 0.0):\n\n", spacer); + if (ShowMoves(NO) == ERROR) + return (ERROR); + } + else + MrBayesPrint ("%s Use 'Showmoves allavailable=yes' to see a list of all available moves\n", spacer); + + return (NO_ERROR); +} + + +int DoShowmovesParm (char *parmName, char *tkn) +{ + char tempStr[100]; + + if (expecting == Expecting(PARAMETER)) + { + expecting = Expecting(EQUALSIGN); + } + else + { + /* set Allavailable **********************************************************/ + if (!strcmp(parmName, "Allavailable")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + showmovesParams.allavailable = YES; + else + showmovesParams.allavailable = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for allavailable\n", spacer); + return (ERROR); + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + else + return (ERROR); + + } + + return (NO_ERROR); +} + + +int DoShowParams (void) +{ + if (defMatrix == NO) + { + MrBayesPrint ("%s A matrix must be specified before model parameters can be shown\n", spacer); + return (ERROR); + } + + if (ShowParameters(YES, YES, YES) == ERROR) + return (ERROR); + + return (NO_ERROR); +} + + +/*------------------------------------------------------------------------ +| +| FillNormalParams: Allocate and fill in non-tree parameters +| +-------------------------------------------------------------------------*/ +int FillNormalParams (RandLong *seed, int fromChain, int toChain) +{ + int i, j, k, chn, tempInt, *intValue; + MrBFlt *bs, *value, *subValue, scaler; + Tree *tree; + Param *p; + ModelInfo *m; + ModelParams *mp; + + /* fill in values for nontree params for state 0 of chains */ + for (chn=fromChain; chnrelParts[0]]; + m = &modelSettings[p->relParts[0]]; + + /* find model settings and nStates, pInvar, invar cond likes */ + + value = GetParamVals (p, chn, 0); + subValue = GetParamSubVals (p, chn, 0); + intValue = GetParamIntVals (p, chn, 0); + + if (p->paramType == P_TRATIO) + { + /* Fill in tratios **************************************************************************************/ + if (p->paramId == TRATIO_DIR) + value[0] = 1.0; + else if (p->paramId == TRATIO_FIX) + value[0] = mp->tRatioFix; + } + else if (p->paramType == P_REVMAT) + { + /* Fill in revMat ***************************************************************************************/ + /* rates are stored in order, AC or AR first, using the Dirichlet parameterization */ + if (p->paramId == REVMAT_DIR) + { + for (j=0; jnValues; j++) + value[j] = 1.0 / (MrBFlt) (p->nValues); + } + else if (p->paramId == REVMAT_FIX) + { + scaler = 0.0; + if (m->dataType == PROTEIN) + { + for (j=0; j<190; j++) + scaler += (value[j] = mp->aaRevMatFix[j]); + for (j=0; j<190; j++) + value[j] /= scaler; + } + else + { + for (j=0; j<6; j++) + scaler += (value[j] = mp->revMatFix[j]); + for (j=0; j<6; j++) + value[j] /= scaler; + } + } + else if (p->paramId == REVMAT_MIX) + { + for (j=0; j<6; j++) + { + value[j] = 1.0 / 6.0; + intValue[j] = 0; + } + } + } + else if (p->paramType == P_OMEGA) + { + /* Fill in omega ****************************************************************************************/ + if (p->nValues == 1) + { + if (p->paramId == OMEGA_DIR) + value[0] = 1.0; + else if (p->paramId == OMEGA_FIX) + value[0] = mp->omegaFix; + } + else + { + if (!strcmp(mp->omegaVar, "Ny98")) + { + if (p->paramId == OMEGA_BUD || p->paramId == OMEGA_BUF || p->paramId == OMEGA_BED || + p->paramId == OMEGA_BEF || p->paramId == OMEGA_BFD || p->paramId == OMEGA_BFF) + value[0] = RandomNumber(seed); + else if (p->paramId == OMEGA_FUD || p->paramId == OMEGA_FUF || p->paramId == OMEGA_FED || + p->paramId == OMEGA_FEF || p->paramId == OMEGA_FFD || p->paramId == OMEGA_FFF) + value[0] = mp->ny98omega1Fixed; + value[1] = 1.0; + if (p->paramId == OMEGA_BUD || p->paramId == OMEGA_BUF || p->paramId == OMEGA_FUD || + p->paramId == OMEGA_FUF) + value[2] = mp->ny98omega3Uni[0] + RandomNumber(seed) * (mp->ny98omega3Uni[1] - mp->ny98omega3Uni[0]); + else if (p->paramId == OMEGA_BED || p->paramId == OMEGA_BEF || p->paramId == OMEGA_FED || + p->paramId == OMEGA_FEF) + value[2] = (1.0 - (1.0/mp->ny98omega3Exp) * log(RandomNumber(seed))); + else + value[2] = mp->ny98omega3Fixed; + if (p->paramId == OMEGA_BUD || p->paramId == OMEGA_BED || p->paramId == OMEGA_BFD || + p->paramId == OMEGA_FUD || p->paramId == OMEGA_FED || p->paramId == OMEGA_FFD) + { + subValue[3] = mp->codonCatDir[0]; + subValue[4] = mp->codonCatDir[1]; + subValue[5] = mp->codonCatDir[2]; + DirichletRandomVariable (&subValue[3], &subValue[0], 3, seed); + } + else + { + subValue[0] = mp->codonCatFreqFix[0]; + subValue[1] = mp->codonCatFreqFix[1]; + subValue[2] = mp->codonCatFreqFix[2]; + subValue[3] = 0.0; + subValue[4] = 0.0; + subValue[5] = 0.0; + } + } + else if (!strcmp(mp->omegaVar, "M3")) + { + if (p->paramId == OMEGA_FD || p->paramId == OMEGA_FF) + { + value[0] = mp->m3omegaFixed[0]; + value[1] = mp->m3omegaFixed[1]; + value[2] = mp->m3omegaFixed[2]; + } + else + { + value[0] = 0.1; + value[1] = 1.0; + value[2] = 3.0; + } + if (p->paramId == OMEGA_ED || p->paramId == OMEGA_FD) + { + subValue[3] = mp->codonCatDir[0]; + subValue[4] = mp->codonCatDir[1]; + subValue[5] = mp->codonCatDir[2]; + DirichletRandomVariable (&subValue[3], &subValue[0], 3, seed); + } + else + { + subValue[0] = mp->codonCatFreqFix[0]; + subValue[1] = mp->codonCatFreqFix[1]; + subValue[2] = mp->codonCatFreqFix[2]; + subValue[3] = 0.0; + subValue[4] = 0.0; + subValue[5] = 0.0; + } + } + else if (!strcmp(mp->omegaVar, "M10")) + { + if (p->paramId == OMEGA_10UUB || p->paramId == OMEGA_10UEB || p->paramId == OMEGA_10UFB || + p->paramId == OMEGA_10EUB || p->paramId == OMEGA_10EEB || p->paramId == OMEGA_10EFB || + p->paramId == OMEGA_10FUB || p->paramId == OMEGA_10FEB || p->paramId == OMEGA_10FFB) + { + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 2] = mp->codonCatDir[0]; + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 3] = mp->codonCatDir[1]; + DirichletRandomVariable (&subValue[mp->numM10BetaCats + mp->numM10GammaCats + 2], &subValue[mp->numM10BetaCats + mp->numM10GammaCats + 0], 2, seed); + } + else + { + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 0] = mp->codonCatFreqFix[0]; + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 1] = mp->codonCatFreqFix[1]; + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 2] = 0.0; + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 3] = 0.0; + } + + for (i=0; inumM10BetaCats; i++) + subValue[i] = subValue[mp->numM10BetaCats + mp->numM10GammaCats + 0] / mp->numM10BetaCats; + for (i=mp->numM10BetaCats; inumM10BetaCats+mp->numM10GammaCats; i++) + subValue[i] = subValue[mp->numM10BetaCats + mp->numM10GammaCats + 1] / mp->numM10GammaCats; + + if (p->paramId == OMEGA_10FUB || p->paramId == OMEGA_10FUF || p->paramId == OMEGA_10FEB || + p->paramId == OMEGA_10FEF || p->paramId == OMEGA_10FFB || p->paramId == OMEGA_10FFF) + { + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 4] = mp->m10betaFix[0]; + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 5] = mp->m10betaFix[1]; + } + else + { + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 4] = 1.0; + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 5] = 1.0; + } + + if (p->paramId == OMEGA_10UFB || p->paramId == OMEGA_10UFF || p->paramId == OMEGA_10EFB || + p->paramId == OMEGA_10EFF || p->paramId == OMEGA_10FFB || p->paramId == OMEGA_10FFF) + { + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 6] = mp->m10gammaFix[0]; + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 7] = mp->m10gammaFix[1]; + } + else + { + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 6] = 1.0; + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 7] = 1.0; + } + + BetaBreaks (subValue[mp->numM10BetaCats + mp->numM10GammaCats + 4], subValue[mp->numM10BetaCats + mp->numM10GammaCats + 5], &value[0], mp->numM10BetaCats); + if (DiscreteGamma (&value[mp->numM10BetaCats], subValue[mp->numM10BetaCats + mp->numM10GammaCats + 6], + subValue[mp->numM10BetaCats + mp->numM10GammaCats + 7], mp->numM10GammaCats, 0) == ERROR) + return (ERROR); + for (i=0; inumM10GammaCats; i++) + value[mp->numM10BetaCats + i] += 1.0; + } + } + } + else if (p->paramType == P_PI) + { + /* Fill in state frequencies ****************************************************************************/ + /* note that standard chars are mainly dealt with in ProcessStdChars in mcmc.c */ + if (p->paramId == SYMPI_UNI || p->paramId == SYMPI_UNI_MS) + value[0] = 1.0; + else if (p->paramId == SYMPI_EXP || p->paramId == SYMPI_EXP_MS) + value[0] = 1.0; + + else if (p->paramId == SYMPI_FIX || p->paramId == SYMPI_FIX_MS) + value[0] = mp->symBetaFix; + + else if (p->paramId == PI_DIR) + { + if (mp->numDirParams != mp->nStates && mp->numDirParams != 0) + { + MrBayesPrint ("%s Mismatch between number of dirichlet parameters (%d) and the number of states (%d)\n", spacer, mp->numDirParams, m->numStates); + return ERROR; + } + + /* if user has not set dirichlet parameters, go with default */ + /* overall variance equals number of states */ + if (mp->numDirParams == 0) + for (i=0; inStates; i++) + value[i] = mp->stateFreqsDir[i] = 1.0; + else + for (i=0; inumStates; i++) + value[i] = mp->stateFreqsDir[i]; + + /* now fill in subvalues */ + for (i=0; inumStates; i++) + subValue[i] = 1.0 / mp->nStates; + } + + else if (p->paramId == PI_USER) + { + for (i=0; inumStates; i++) + subValue[i] = mp->stateFreqsFix[i]; + } + + else if (p->paramId == PI_FIXED) + { + if (!strcmp(mp->aaModelPr, "Fixed")) + { + if (!strcmp(mp->aaModel, "Jones")) + { + for (i=0; inStates; i++) + subValue[i] = jonesPi[i]; + } + else if (!strcmp(mp->aaModel, "Dayhoff")) + { + for (i=0; inStates; i++) + subValue[i] = dayhoffPi[i]; + } + else if (!strcmp(mp->aaModel, "Mtrev")) + { + for (i=0; inStates; i++) + subValue[i] = mtrev24Pi[i]; + } + else if (!strcmp(mp->aaModel, "Mtmam")) + { + for (i=0; inStates; i++) + subValue[i] = mtmamPi[i]; + } + else if (!strcmp(mp->aaModel, "Wag")) + { + for (i=0; inStates; i++) + subValue[i] = wagPi[i]; + } + else if (!strcmp(mp->aaModel, "Rtrev")) + { + for (i=0; inStates; i++) + subValue[i] = rtrevPi[i]; + } + else if (!strcmp(mp->aaModel, "Cprev")) + { + for (i=0; inStates; i++) + subValue[i] = cprevPi[i]; + } + else if (!strcmp(mp->aaModel, "Vt")) + { + for (i=0; inStates; i++) + subValue[i] = vtPi[i]; + } + else if (!strcmp(mp->aaModel, "Blosum")) + { + for (i=0; inStates; i++) + subValue[i] = blosPi[i]; + } + else if (!strcmp(mp->aaModel, "LG")) + { + for (i=0; inStates; i++) + subValue[i] = lgPi[i]; + } + } + } + + else if (p->paramId == PI_EMPIRICAL) + { + if (GetEmpiricalFreqs (p->relParts, p->nRelParts) == ERROR) + return (ERROR); + for (i=0; inStates; i++) + subValue[i] = empiricalFreqs[i]; + } + + else if (p->paramId == PI_EQUAL) + { + for (i=0; inStates; i++) + subValue[i] = 1.0 / mp->nStates; + } + } + else if (p->paramType == P_SHAPE) + { + /* Fill in shape values ********************************************************************************/ + /* first get hyperprior */ + if (p->paramId == SHAPE_UNI) + { + value[0] = 1.0; + if (value[0] < mp->shapeUni[0] || value[0] > mp->shapeUni[1]) + value[0] = mp->shapeUni[0] + (mp->shapeUni[1] - mp->shapeUni[0]) * 0.5; + } + else if (p->paramId == SHAPE_EXP) + value[0] = 1.0; // was 100.0 + else if (p->paramId == SHAPE_FIX) + value[0] = mp->shapeFix; + /* now fill in rates */ + if (!strcmp(mp->ratesModel, "LNorm")) + { + if (DiscreteLogNormal (subValue, value[0], mp->numGammaCats, 1) == ERROR) + return (ERROR); + } + else /* gamma rate */ + { + if (DiscreteGamma (subValue, value[0], value[0], mp->numGammaCats, 0) == ERROR) + return (ERROR); + } + } + else if (p->paramType == P_PINVAR) + { + /* Fill in pInvar ***************************************************************************************/ + if (p->paramId == PINVAR_UNI) + value[0] = 0.0; + + else if (p->paramId == PINVAR_FIX) + value[0] = mp->pInvarFix; + } + else if (p->paramType == P_CORREL) + { + /* Fill in correlation parameter of adgamma model *******************************************************/ + if (p->paramId == CORREL_UNI) + value[0] = 0.0; + + else if (p->paramId == CORREL_FIX) + value[0] = mp->corrFix; + + /* Fill in correlation matrices */ + AutodGamma (subValue, value[0], mp->numGammaCats); + } + else if (p->paramType == P_SWITCH) + { + /* Fill in switchRates for covarion model ***************************************************************/ + for (j=0; j<2; j++) + { + if (p->paramId == SWITCH_UNI) + value[j] = RandomNumber(seed) * (mp->covswitchUni[1] - mp->covswitchUni[0]) + mp->covswitchUni[0]; + + else if (p->paramId == SWITCH_EXP) + value[j] = -(1.0/mp->covswitchExp) * log(RandomNumber(seed)); + + else if (p->paramId == SWITCH_FIX) + value[j] = mp->covswitchFix[j]; + } + } + else if (p->paramType == P_RATEMULT) + { + /* Fill in division rates *****************************************************************************/ + for (j=0; jnValues; j++) + { + value[j] = 1.0; + /* fill in more info about the divisions if this is a true rate multiplier + and not a base rate */ + if (p->nSubValues > 0) + { + /* num uncompressed chars */ + subValue[j] = (modelSettings[p->relParts[j]].numUncompressedChars); + /* Dirichlet parameters */ + subValue[p->nValues + j] = modelParams[p->relParts[j]].ratePrDir; + } + } + } + else if (p->paramType == P_GENETREERATE) + { + /* Fill in division rates *****************************************************************************/ + for (j=0; jnValues; j++) + { + value[j] = 1.0; + /* Dirichlet parameters fixed to 1.0 for now; ignored if the rate is fixed */ + subValue[p->nValues + j] = 1.0; + /* Get number of uncompressed chars from tree */ + tree = GetTreeFromIndex(j, 0, 0); + subValue[j] = 0.0; + for (i=0; inRelParts; i++) /* num uncompressed chars */ + subValue[j] += modelSettings[tree->relParts[i]].numUncompressedChars; + } + } + else if (p->paramType == P_SPECRATE) + { + /* Fill in speciation rates *****************************************************************************/ + for (j=0; jnValues; j++) + { + if (p->paramId == SPECRATE_FIX) + value[j] = mp->speciationFix; + else + value[j] = 0.1; + } + } + else if (p->paramType == P_EXTRATE) + { + /* Fill in extinction rates *****************************************************************************/ + for (j=0; jnValues; j++) + { + if (p->paramId == EXTRATE_FIX) + value[j] = mp->extinctionFix; + else + value[j] = 0.8; + } + } + else if (p->paramType == P_FOSLRATE) + { + /* Fill in fossilization rates */ + for (j=0; jnValues; j++) + { + if (p->paramId == FOSLRATE_FIX) + value[j] = mp->fossilizationFix; + else + value[j] = 0.2; + } + } + else if (p->paramType == P_GROWTH) + { + /* Fill in growth rate ****************************************************************************************/ + if (p->paramId == GROWTH_FIX) + value[0] = mp->growthFix; + else + value[0] = 1.0; + } + else if (p->paramType == P_POPSIZE) + { + /* Fill in population size ****************************************************************************************/ + for (j=0; jnValues; j++) + { + if (p->paramId == POPSIZE_UNI) + value[j] = RandomNumber(seed) * (mp->popSizeUni[1] - mp->popSizeUni[0]) + mp->popSizeUni[0]; + else if (p->paramId == POPSIZE_LOGNORMAL) + value[j] = exp(mp->popSizeLognormal[0]); + else if (p->paramId == POPSIZE_NORMAL) + value[j] = mp->popSizeNormal[0]; + else if (p->paramId == POPSIZE_GAMMA) + value[j] = mp->popSizeGamma[0] / mp->popSizeGamma[1]; + else if (p->paramId == POPSIZE_FIX) + value[j] = mp->popSizeFix; + } + } + else if (p->paramType == P_AAMODEL) + { + /* Fill in theta ****************************************************************************************/ + if (p->paramId == AAMODEL_MIX) + { + /* amino acid model ID's + AAMODEL_POISSON 0 + AAMODEL_JONES 1 + AAMODEL_DAY 2 + AAMODEL_MTREV 3 + AAMODEL_MTMAM 4 + AAMODEL_WAG 5 + AAMODEL_RTREV 6 + AAMODEL_CPREV 7 + AAMODEL_VT 8 + AAMODEL_BLOSUM 9 */ + + /* set the amino acid model (the meaning of the numbers is defined) */ + tempInt = (int)(RandomNumber(seed) * 10); + value[0] = tempInt; + + /* we need to make certain that the aa frequencies are filled in correctly */ + bs = GetParamSubVals (m->stateFreq, chn, 0); + if (tempInt == AAMODEL_POISSON) + { + for (i=0; inStates; i++) + bs[i] = (1.0 / 20.0); + } + else if (tempInt == AAMODEL_JONES) + { + for (i=0; inStates; i++) + bs[i] = jonesPi[i]; + } + else if (tempInt == AAMODEL_DAY) + { + for (i=0; inStates; i++) + bs[i] = dayhoffPi[i]; + } + else if (tempInt == AAMODEL_MTREV) + { + for (i=0; inStates; i++) + bs[i] = mtrev24Pi[i]; + } + else if (tempInt == AAMODEL_MTMAM) + { + for (i=0; inStates; i++) + bs[i] = mtmamPi[i]; + } + else if (tempInt == AAMODEL_WAG) + { + for (i=0; inStates; i++) + bs[i] = wagPi[i]; + } + else if (tempInt == AAMODEL_RTREV) + { + for (i=0; inStates; i++) + bs[i] = rtrevPi[i]; + } + else if (tempInt == AAMODEL_CPREV) + { + for (i=0; inStates; i++) + bs[i] = cprevPi[i]; + } + else if (tempInt == AAMODEL_VT) + { + for (i=0; inStates; i++) + bs[i] = vtPi[i]; + } + else if (tempInt == AAMODEL_BLOSUM) + { + for (i=0; inStates; i++) + bs[i] = blosPi[i]; + } + + for (i=0; inSubValues; i++) + { + subValue[i] = mp->aaModelPrProbs[i]; + } + } + } + else if (p->paramType == P_CPPRATE) + { + /* Fill in lambda (cpp rate) ********************************************************************************************/ + if (p->paramId == CPPRATE_EXP) + value[0] = -(1.0/mp->cppRateExp) * log(RandomNumber(seed)); + else if (p->paramId == CPPRATE_FIX) + value[0] = mp->cppRateFix; + } + else if (p->paramType == P_CPPMULTDEV) + { + /* Fill in log standard deviation (for relaxed clock rate multiplier) ***********************************************************/ + if (p->paramId == CPPMULTDEV_FIX) + value[0] = mp->cppMultDevFix; + } + else if (p->paramType == P_CPPEVENTS) + { + /* We fill in these when we fill in tree params **************************************************************************/ + } + else if (p->paramType == P_TK02VAR) + { + /* Fill in variance of relaxed clock lognormal **************************************************************************/ + if (p->paramId == TK02VAR_UNI) + value[0] = RandomNumber(seed) * (mp->tk02varUni[1] - mp->tk02varUni[0]) + mp->tk02varUni[0]; + else if (p->paramId == TK02VAR_EXP) + value[0] = 2.0/(mp->tk02varExp); + else if (p->paramId == TK02VAR_FIX) + value[0] = mp->tk02varFix; + } + else if (p->paramType == P_TK02BRANCHRATES) + { + /* We fill in these when we fill in tree params **************************************************************************/ + } + else if (p->paramType == P_IGRVAR) + { + /* Fill in variance of relaxed clock lognormal **************************************************************************/ + if (p->paramId == IGRVAR_UNI) + value[0] = RandomNumber(seed) * (mp->igrvarUni[1] - mp->igrvarUni[0]) + mp->igrvarUni[0]; + else if (p->paramId == IGRVAR_EXP) + value[0] = 1.0/(mp->igrvarExp); + else if (p->paramId == IGRVAR_FIX) + value[0] = mp->igrvarFix; + } + else if (p->paramType == P_IGRBRANCHRATES) + { + /* We fill in these when we fill in tree params **************************************************************************/ + } + else if (p->paramType == P_MIXEDVAR) + { + /* Fill in variance of mixed relaxed clock **************************************************************************/ + if (p->paramId == MIXEDVAR_UNI) + value[0] = RandomNumber(seed) * (mp->mixedvarUni[1] - mp->mixedvarUni[0]) + mp->mixedvarUni[0]; + else if (p->paramId == MIXEDVAR_EXP) + value[0] = 1.0/(mp->mixedvarExp); + else if (p->paramId == MIXEDVAR_FIX) + value[0] = mp->mixedvarFix; + } + else if (p->paramType == P_MIXEDBRCHRATES) + { + /* initialize the mixed relaxed clock model to TK02 or IGR */ + intValue[0] = (RandomNumber(seed) <0.5) ? RCL_TK02 : RCL_IGR; + /* We fill in the rest when we fill in tree params **************************************************************************/ + } + else if (p->paramType == P_CLOCKRATE) + { + /* Fill in base rate of molecular clock **************************************************************************/ + if (p->paramId == CLOCKRATE_FIX) + value[0] = mp->clockRateFix; + else if (p->paramId == CLOCKRATE_NORMAL) + value[0] = mp->clockRateNormal[0]; + else if (p->paramId == CLOCKRATE_LOGNORMAL) + value[0] = exp(mp->clockRateLognormal[0]); + else if (p->paramId == CLOCKRATE_EXP) + value[0] = 1.0/(mp->clockRateExp); + else if (p->paramId == CLOCKRATE_GAMMA) + value[0] = mp->clockRateGamma[0]/mp->clockRateGamma[1]; + } + } /* next param */ + } /* next chain */ + + return NO_ERROR; +} + + +int FillRelPartsString (Param *p, char **relPartString) +{ + int i, n, filledString; + char *tempStr; + int tempStrSize=50; + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + { + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + return (ERROR); + } + + if (numCurrentDivisions == 1) + { + filledString = NO; + SafeStrcpy (relPartString, ""); + } + else + { + filledString = YES; + if (p->nRelParts == numCurrentDivisions) + { + SafeStrcpy (relPartString, "{all}"); + } + else + { + SafeStrcpy (relPartString, "{"); + for (i=n=0; inRelParts; i++) + { + n++; + SafeSprintf (&tempStr, &tempStrSize, "%d", p->relParts[i] + 1); + SafeStrcat (relPartString, tempStr); + if (n < p->nRelParts) + SafeStrcat (relPartString, ","); + } + SafeStrcat (relPartString, "}"); + } + } + free (tempStr); + return (filledString); +} + + +/*-------------------------------------------------------------- + | + | FillStdStateFreqs: fills stationary frequencies for standard data divisions of chains in range [chfrom, chto) + | + ---------------------------------------------------------------*/ +void FillStdStateFreqs (int chfrom, int chto, RandLong *seed) +{ + int chn, n, i, j, k, b, c, nb, index; + MrBFlt *subValue, sum, symDir[10]; + Param *p; + + for (chn=chfrom; chnparamType != P_PI || modelParams[p->relParts[0]].dataType != STANDARD) + continue; + subValue = GetParamStdStateFreqs (p, chn, 0); + if (p->paramId == SYMPI_EQUAL) + { + for (n=index=0; n<9; n++) + { + for (i=0; inRelParts; i++) + if (modelSettings[p->relParts[i]].isTiNeeded[n] == YES) + break; + if (i < p->nRelParts) + { + for (j=0; j<(n+2); j++) + { + subValue[index++] = (1.0 / (n + 2)); + } + } + } + for (n=9; n<13; n++) + { + for (i=0; inRelParts; i++) + if (modelSettings[p->relParts[i]].isTiNeeded[n] == YES) + break; + if (i < p->nRelParts) + { + for (j=0; j<(n-6); j++) + { + subValue[index++] = (1.0 / (n - 6)); + } + } + } + } + + /* Deal with transition asymmetry for standard characters */ + /* First, fill in stationary frequencies for beta categories if needed; */ + /* discard category frequencies (assume equal) */ + if (p->paramId == SYMPI_FIX || p->paramId == SYMPI_UNI || p->paramId == SYMPI_EXP || + p->paramId == SYMPI_FIX_MS || p->paramId == SYMPI_UNI_MS || p->paramId == SYMPI_EXP_MS) + { + if (p->hasBinaryStd == YES) + { + nb=modelParams[p->relParts[0]].numBetaCats; + BetaBreaks (p->values[0], p->values[0], subValue, nb); + b = 2*nb; + for (i=b-2; i>0; i-=2) + { + subValue[i] = subValue[i/2]; + } + for (i=1; ivalues[0]; + + for (c=0; cnSympi; c++) + { + /* now fill in subvalues */ + DirichletRandomVariable (symDir, subValue, p->sympinStates[c], seed); + sum = 0.0; + for (i=0; isympinStates[c]; i++) + { + if (subValue[i] < 0.0001) + subValue[i] = 0.0001; + sum += subValue[i]; + } + for (i=0; irelParts[0]].nStates; i++) + subValue[i] /= sum; + subValue += p->sympinStates[c]; + } + } + } /* next parameter */ + } /* next chain */ +} + + +/* FillTopologySubParams: Fill subparams (brlens) for a topology */ +int FillTopologySubParams (Param *param, int chn, int state, RandLong *seed) +{ + int i,returnVal; + Tree *tree, *tree1; + Param *q; + MrBFlt clockRate; + PolyTree *sourceTree; + MrBFlt minRate,maxRate; + + tree = GetTree (param, chn, state); + + for (i=1; inSubParams; i++) + { + q = param->subParams[i]; + tree1 = GetTree (q, chn, state); + if (CopyToTreeFromTree(tree1, tree) == ERROR) + return (ERROR); + } + for (i=0; inSubParams; i++) + { + q = param->subParams[i]; + tree = GetTree (q, chn, state); + if (q->paramId == BRLENS_FIXED || q->paramId == BRLENS_CLOCK_FIXED) + { + if (param->paramId == TOPOLOGY_NCL_FIXED || + param->paramId == TOPOLOGY_NCL_FIXED_HOMO || + param->paramId == TOPOLOGY_NCL_FIXED_HETERO || + param->paramId == TOPOLOGY_CL_FIXED || + param->paramId == TOPOLOGY_RCL_FIXED || + param->paramId == TOPOLOGY_CCL_FIXED || + param->paramId == TOPOLOGY_RCCL_FIXED|| + param->paramId == TOPOLOGY_FIXED) + { + sourceTree = AllocatePolyTree(numTaxa); + CopyToPolyTreeFromPolyTree (sourceTree, userTree[modelParams[q->relParts[0]].brlensFix]); + PrunePolyTree (sourceTree); + ResetTipIndices (sourceTree); + ResetIntNodeIndices (sourceTree); + if (tree->isRooted != sourceTree->isRooted) + { + MrBayesPrint("%s Cannot set fixed branch lengths because of mismatch in rootedness", spacer); + FreePolyTree (sourceTree); + return (ERROR); + } + if (CopyToTreeFromPolyTree(tree,sourceTree) == ERROR) + { + MrBayesPrint("%s Problem setting fixed branch lengths", spacer); + FreePolyTree (sourceTree); + return (ERROR); + } + FreePolyTree (sourceTree); + if (tree->isClock == YES && IsClockSatisfied(tree, 0.0001) == NO) + { + MrBayesPrint("%s Fixed branch lengths do not satisfy clock", spacer); + return (ERROR); + } + if (tree->isCalibrated == YES && IsCalibratedClockSatisfied(tree,&minRate,&maxRate, 0.0001) == NO) + { + MrBayesPrint("%s Fixed branch lengths do not satisfy calibrations", spacer); + return (ERROR); + } + if (tree->isCalibrated == YES && !strcmp(modelParams[tree->relParts[0]].clockRatePr, "Fixed")) + { + clockRate = modelParams[tree->relParts[0]].clockRateFix; + if ((clockRate < minRate && AreDoublesEqual (clockRate, minRate , 0.0001) == NO) || + (clockRate > maxRate && AreDoublesEqual (clockRate, maxRate , 0.0001) == NO)) + { + MrBayesPrint("%s Fixed branch lengths do not satisfy fixed clockrate", spacer); + return (ERROR); + } + } + + tree->fromUserTree=YES; + returnVal = NO_ERROR; + } + else + { + MrBayesPrint("%s Fixed branch lengths can only be used for a fixed topology\n", spacer); + return (ERROR); + } + } + else if (tree->isCalibrated == YES || (tree->isClock == YES && (!strcmp(modelParams[tree->relParts[0]].clockPr,"Uniform") || + !strcmp(modelParams[tree->relParts[0]].clockPr,"Fossilization")))) + { + assert (tree->isClock == YES); + clockRate = *GetParamVals(modelSettings[tree->relParts[0]].clockRate, chn, state); + returnVal = InitCalibratedBrlens (tree, clockRate, seed); + if (IsClockSatisfied (tree,0.0001) == NO) + { + MrBayesPrint ("%s Branch lengths of the tree does not satisfy clock\n", spacer); + return (ERROR); + } + tree->fromUserTree=NO; + } + else if (tree->isClock == YES) + returnVal = InitClockBrlens (tree); + else + returnVal = InitBrlens (tree, 0.02); + + if (returnVal == ERROR) + return (ERROR); + + if (FillBrlensSubParams (q, chn, state) == ERROR) + return (ERROR); + } + + return (NO_ERROR); +} + + +/* FillBrlensSubParams: Fill any relaxed clock subparams of a brlens param */ +int FillBrlensSubParams (Param *param, int chn, int state) +{ + int i, j, *nEvents; + MrBFlt *brlen, *branchRate, **position, **rateMult; + Tree *tree; + TreeNode *p; + Param *q; + + tree = GetTree (param, chn, state); + + for (i=0; inSubParams; i++) + { + q = param->subParams[i]; + if (q->paramType == P_CPPEVENTS) + { + nEvents = q->nEvents[2*chn+state]; + position = q->position[2*chn+state]; + rateMult = q->rateMult[2*chn+state]; + brlen = GetParamSubVals (q, chn, state); + for (j=0; jnNodes-1; j++) + { + p = tree->allDownPass[j]; + if (nEvents[p->index] != 0) + { + free (position[p->index]); + position[p->index] = NULL; + free (rateMult[p->index]); + rateMult[p->index] = NULL; + } + nEvents[p->index] = 0; + assert (j==tree->nNodes-2 || fabs(p->length - (p->anc->nodeDepth - p->nodeDepth)) < 0.000001); + brlen[p->index] = p->length; + } + } + else if (q->paramType == P_TK02BRANCHRATES || q->paramType == P_IGRBRANCHRATES || q->paramType == P_MIXEDBRCHRATES) + { + branchRate = GetParamVals (q, chn, state); + brlen = GetParamSubVals (q, chn, state); + for (j=0; jnNodes-1; j++) + { + p = tree->allDownPass[j]; + assert (j==tree->nNodes-2 || fabs(p->length - (p->anc->nodeDepth - p->nodeDepth)) < 0.000001); + branchRate[p->index] = 1.0; + brlen[p->index] = p->length; + } + } + } + + return (NO_ERROR); +} + + +/* Note: In PruneConstraintPartitions() we can not relay on specific rootnes of a tree since different partitions + may theoreticly have different clock models, while constraints apply to all partitions/trees */ +int PruneConstraintPartitions() +{ + int i, j, constraintId, nLongsNeeded; + + nLongsNeeded = (numLocalTaxa - 1) / nBitsInALong + 1; + + for (constraintId=0; constraintIdcheckConstraints == NO) + return YES; + /* get some handy numbers */ + numTaxa = t->nNodes - t->nIntNodes - (t->isRooted == YES ? 1 : 0); + nLongsNeeded = (numTaxa - 1) / nBitsInALong + 1; + + if (t->bitsets == NULL) + { + AllocateTreePartitions(t); + } + else + { + ResetTreePartitions(t); /*Inefficient function, rewrite faster version*/ + } +# if defined (DEBUG_CONSTRAINTS) + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + if (p->isLocked == YES) + { + if (IsUnionEqThird (definedConstraintPruned[p->lockID], definedConstraintPruned[p->lockID], p->partition, nLongsNeeded) == NO && IsUnionEqThird (definedConstraintTwoPruned[p->lockID], definedConstraintTwoPruned[p->lockID], p->partition, nLongsNeeded) == NO) + { + printf ("DEBUG ERROR: Locked node does not represent right partition. \n"); + return ABORT; + } + else + { + locks_count++; + } + } + } + + if (locks_count != t->nLocks) + { + printf ("DEBUG ERROR: locks_count:%d should be locks_count:%d\n", locks_count, t->nLocks); + return ABORT; + } +# endif + + for (k=0; kconstraints[k] == YES && definedConstraintsType[k] == HARD) + { + if (t->isRooted == YES) + { + CheckFirst = YES; + CheckSecond = NO; + } + else + { + /*exactly one of next two will be YES*/ + CheckFirst = IsBitSet(localOutGroup, definedConstraintPruned[k])==YES ? NO : YES; + CheckSecond = IsBitSet(localOutGroup, definedConstraintTwoPruned[k])==YES ? NO : YES; + assert ((CheckFirst^CheckSecond)==1); + } + + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + if (p->anc != NULL) + { + if (CheckFirst==YES && IsPartNested(definedConstraintPruned[k], p->partition, nLongsNeeded) && IsPartNested(p->partition,definedConstraintPruned[k], nLongsNeeded)) + break; + if (CheckSecond==YES && IsPartNested(definedConstraintTwoPruned[k], p->partition, nLongsNeeded) && IsPartNested(p->partition, definedConstraintTwoPruned[k], nLongsNeeded)) + break; + } + } + + if (i==t->nIntNodes) + { + printf ("DEBUG ERROR: Hard constraint is not satisfied. \n"); + return ABORT; + //assert (0); + } + } +# endif + + if (t->constraints[k] == NO || definedConstraintsType[k] == HARD) + continue; + + if (definedConstraintsType[k] == PARTIAL) + { + /* alternative way + if (t->isRooted == NO && !IsBitSet(localOutGroup, definedConstraintPruned[k])) + { + m = FirstTaxonInPartition (constraintPartition, nLongsNeeded); + for (i=0; t->nodes[i].index != m; i++) + ; + p = &t->nodes[i]; + + p=p->anc; + while (!IsPartNested(definedConstraintPruned[k], p->partition, nLongsNeeded)) + p=p->anc; + + if (IsSectionEmpty(definedConstraintTwoPruned[k], p->partition, nLongsNeeded)) + continue; + } + */ + if (t->isRooted == YES) + { + CheckFirst = YES; + CheckSecond = NO; /* In rooted case even if we have a node with partition fully containing second set and not containing the first set it would not satisfy the constraint */ + } + else + { + if (NumBits(definedConstraintPruned[k], nLongsNeeded) == 1 || NumBits(definedConstraintTwoPruned[k], nLongsNeeded) == 1) + continue; + /*one or two of the next two statments will be YES*/ + CheckFirst = IsBitSet(localOutGroup, definedConstraintPruned[k])==YES ? NO : YES; + CheckSecond = IsBitSet(localOutGroup, definedConstraintTwoPruned[k])==YES ? NO : YES; + assert ((CheckFirst|CheckSecond)==1); + } + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + if (p->anc != NULL) + { + if (CheckFirst== YES && IsPartNested(definedConstraintPruned[k], p->partition, nLongsNeeded) && IsSectionEmpty(definedConstraintTwoPruned[k], p->partition, nLongsNeeded)) + break; + if (CheckSecond==YES && IsPartNested(definedConstraintTwoPruned[k], p->partition, nLongsNeeded) && IsSectionEmpty(definedConstraintPruned[k], p->partition, nLongsNeeded)) + break; + } + } + if (i==t->nIntNodes) + return NO; + } + else + { + assert (definedConstraintsType[k] == NEGATIVE); + if (t->isRooted == YES) + { + CheckFirst = YES; + CheckSecond = NO; + } + else + { + /*exactly one of next two will be YES*/ + CheckFirst = IsBitSet(localOutGroup, definedConstraintPruned[k])==YES ? NO : YES; + CheckSecond = IsBitSet(localOutGroup, definedConstraintTwoPruned[k])==YES ? NO : YES; + assert ((CheckFirst^CheckSecond)==1); + } + + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + if (p->anc != NULL) + { + if (CheckFirst==YES && AreBitfieldsEqual(definedConstraintPruned[k], p->partition, nLongsNeeded)) + break; + if (CheckSecond==YES && AreBitfieldsEqual(definedConstraintTwoPruned[k], p->partition, nLongsNeeded)) + break; + } + } + if (i!=t->nIntNodes) + return NO; + } + } + + return YES; +} + + +/*------------------------------------------------------------------ +| +| FillTreeParams: Fill in trees and branch lengths +| +| Note: Should be run after FillNormalParams because +| clockrate needs to be set if calibrated tree needs +| to be filled. +| +------------------------------------------------------------------*/ +int FillTreeParams (RandLong *seed, int fromChain, int toChain) +{ + int i, k, chn, nTaxa, tmp; + Param *p, *q; + Tree *tree; + PolyTree *constraintTree; + PolyTree *constraintTreeRef; + + if (PruneConstraintPartitions() == ERROR) + return ERROR; + + /* Build starting trees for state 0 */ + for (chn=fromChain; chnparamType == P_TOPOLOGY) + { + q = p->subParams[0]; + tree = GetTree (q, chn, 0); + if (tree->isRooted == YES) + nTaxa = tree->nNodes - tree->nIntNodes - 1; + else + nTaxa = tree->nNodes - tree->nIntNodes; + + /* fixed topology */ + if (p->paramId == TOPOLOGY_NCL_FIXED || + p->paramId == TOPOLOGY_NCL_FIXED_HOMO || + p->paramId == TOPOLOGY_NCL_FIXED_HETERO || + p->paramId == TOPOLOGY_CL_FIXED || + p->paramId == TOPOLOGY_RCL_FIXED || + p->paramId == TOPOLOGY_CCL_FIXED || + p->paramId == TOPOLOGY_RCCL_FIXED|| + p->paramId == TOPOLOGY_FIXED || + p->paramId == TOPOLOGY_PARSIMONY_FIXED) + { + constraintTree = AllocatePolyTree (numTaxa); + CopyToPolyTreeFromPolyTree (constraintTree, userTree[modelParams[p->relParts[0]].topologyFix]); + PrunePolyTree (constraintTree); + ResetTipIndices(constraintTree); + ResetIntNodeIndices(constraintTree); + RandResolve (NULL, constraintTree, seed, constraintTree->isRooted); + if (tree->nIntNodes != constraintTree->nIntNodes) + { + if (tree->isRooted != constraintTree->isRooted) + { + MrBayesPrint ("%s Could not fix topology because user tree '%s' differs in rootedness with the model tree.\n", spacer, + userTree[modelParams[p->relParts[0]].topologyFix]->name); + MrBayesPrint ("%s The user tree %s is%srooted, while expected model tree is%srooted.\n", spacer, + userTree[modelParams[p->relParts[0]].topologyFix]->name, (constraintTree->isRooted?" ":" not "), (tree->isRooted?" ":" not ")); + MrBayesPrint ("%s Check brlenspr is set correctly before fixing topology.\n", spacer); + } + else + MrBayesPrint ("%s Could not fix topology because user tree '%s' is not fully resolved.\n", + spacer, userTree[modelParams[p->relParts[0]].topologyFix]->name); + FreePolyTree (constraintTree); + return (ERROR); + } + if (CopyToTreeFromPolyTree(tree, constraintTree) == ERROR) + { + MrBayesPrint ("%s Could not fix topology according to user tree '%s'\n", spacer, userTree[modelParams[p->relParts[0]].topologyFix]->name); + FreePolyTree (constraintTree); + return (ERROR); + } + FreePolyTree (constraintTree); + } + /* constrained topology */ + else if (tree->nConstraints > 0) + { + constraintTreeRef = AllocatePolyTree (nTaxa); + if (!constraintTreeRef) + return (ERROR); + if (BuildConstraintTree (tree, constraintTreeRef, localTaxonNames) == ERROR) + { + FreePolyTree (constraintTreeRef); + return (ERROR); + } + if (AllocatePolyTreePartitions (constraintTreeRef) == ERROR) + return (ERROR); + + constraintTree = AllocatePolyTree (nTaxa); + if (!constraintTree) + return (ERROR); + if (AllocatePolyTreePartitions (constraintTree) == ERROR) + return (ERROR); + + for (i=0;i<100;i++) + { + CopyToPolyTreeFromPolyTree(constraintTree,constraintTreeRef); + tmp = RandResolve (tree, constraintTree, &globalSeed, tree->isRooted); + if (tmp != NO_ERROR) + { + if (tmp == ERROR) + { + FreePolyTree (constraintTree); + return (ERROR); + } + else + { + assert (tmp == ABORT); + continue; + } + } + + CopyToTreeFromPolyTree(tree, constraintTree); + if (DoesTreeSatisfyConstraints(tree)==YES) + break; + } +# if defined (DEBUG_CONSTRAINTS) + if (theTree->checkConstraints == YES && CheckConstraints (tree) == ERROR) + { + printf ("Error in constraints of starting tree\n"); + getchar(); + } +# endif + FreePolyTree (constraintTree); + FreePolyTree (constraintTreeRef); + if (i==100) + { + MrBayesPrint ("%s Could not build a starting tree satisfying all constraints\n", spacer); + return (ERROR); + } + } + /* random topology */ + else + { + if (tree->isRooted == YES) + { + if (BuildRandomRTopology (tree, &globalSeed) == ERROR) + return (ERROR); + } + else + { + if (BuildRandomUTopology (tree, &globalSeed) == ERROR) + return (ERROR); + if (MoveCalculationRoot (tree, localOutGroup) == ERROR) + return (ERROR); + } + } + + if (LabelTree (tree, localTaxonNames) == ERROR) + return (ERROR); + if (q == p) + continue; /* this is a parsimony tree without branch lengths */ + if (InitializeTreeCalibrations (tree) == ERROR) + return (ERROR); + if (FillTopologySubParams(p, chn, 0, seed)== ERROR) + return (ERROR); + } + } + } + + if (numTopologies > 1 && !strcmp(modelParams[0].topologyPr,"Speciestree")) + { + if (FillSpeciesTreeParams(seed, fromChain, toChain) == ERROR) + return (ERROR); + } + + return (NO_ERROR); +} + + +void FreeCppEvents (Param *p) +{ + int i, j; + + if (p->paramType != P_CPPEVENTS) + return; + + if (p->nEvents != NULL) + { + free (p->nEvents[0]); + free (p->nEvents); + for (i=0; iposition[2*i][j]); + free (p->rateMult[2*i][j]); + free (p->position[2*i+1][j]); + free (p->rateMult[2*i+1][j]); + } + } + free (p->position[0]); + free (p->position); + free (p->rateMult[0]); + free (p->rateMult); + p->nEvents = NULL; + p->position = NULL; + p->rateMult = NULL; + } +} + + +int FreeModel (void) +{ + int i; + Param *p; + + if (memAllocs[ALLOC_MODEL] == YES) + { + for (i=0; iparamType == P_CPPEVENTS) + FreeCppEvents(p); + } + free (paramValues); + paramValues = NULL; + free (intValues); + intValues = NULL; + paramValsRowSize = intValsRowSize = 0; + memAllocs[ALLOC_PARAMVALUES] = NO; + } + if (memAllocs[ALLOC_PARAMS] == YES) + { + for (i=0; ituningParam[0]); + free (mv->tuningParam); + free (mv->relProposalProb); + free (mv->nAccepted); + free (mv->name); + free (mv); +} + + +/* Compute empirical state freq are return it in global array empiricalFreqs[] */ +int GetEmpiricalFreqs (int *relParts, int nRelParts) +{ + int i, j, k, m, n, thePartition, nuc[20], ns, temp, isDNA, isProtein, firstRel; + MrBFlt freqN[20], sum, sumN[20]/*, rawCounts[20]*/; + + isDNA = isProtein = NO; + ns = 0; + firstRel = 0; + for (i=0; idataType == DNA || m->dataType == RNA) + { + if (m->nucModelId == NUCMODEL_DOUBLET) + n *= 2; + else if (m->nucModelId == NUCMODEL_CODON) + n *= 3; + } + + m->numUncompressedChars = n; + } + + return (NO_ERROR); +} + + +int *GetParamIntVals (Param *parm, int chain, int state) +{ + return parm->intValues + (2 * chain + state) * intValsRowSize; +} + + +MrBFlt *GetParamStdStateFreqs (Param *parm, int chain, int state) +{ + return parm->stdStateFreqs + (2 * chain + state) * stdStateFreqsRowSize; +} + + +MrBFlt *GetParamSubVals (Param *parm, int chain, int state) +{ + return parm->subValues + (2 * chain + state) * paramValsRowSize; +} + + +MrBFlt *GetParamVals (Param *parm, int chain, int state) +{ + return parm->values + (2 * chain + state) * paramValsRowSize; +} + + +void GetPossibleAAs (int aaCode, int aa[]) +{ + int m; + + for (m=0; m<20; m++) + aa[m] = 0; + + if (aaCode > 0 && aaCode <= 20) + aa[aaCode-1] = 1; + else + { + for (m=0; m<20; m++) + aa[m] = 1; + } + +# if 0 + printf ("%2d -- ", aaCode); + for (m=0; m<20; m++) + printf ("%d", aa[m]); + printf ("\n"); +# endif +} + + +void GetPossibleNucs (int nucCode, int nuc[]) +{ + if (nucCode == 1) + { + nuc[0] = 1; + nuc[1] = 0; + nuc[2] = 0; + nuc[3] = 0; + } + else if (nucCode == 2) + { + nuc[0] = 0; + nuc[1] = 1; + nuc[2] = 0; + nuc[3] = 0; + } + else if (nucCode == 3) + { + nuc[0] = 1; + nuc[1] = 1; + nuc[2] = 0; + nuc[3] = 0; + } + else if (nucCode == 4) + { + nuc[0] = 0; + nuc[1] = 0; + nuc[2] = 1; + nuc[3] = 0; + } + else if (nucCode == 5) + { + nuc[0] = 1; + nuc[1] = 0; + nuc[2] = 1; + nuc[3] = 0; + } + else if (nucCode == 6) + { + nuc[0] = 0; + nuc[1] = 1; + nuc[2] = 1; + nuc[3] = 0; + } + else if (nucCode == 7) + { + nuc[0] = 1; + nuc[1] = 1; + nuc[2] = 1; + nuc[3] = 0; + } + else if (nucCode == 8) + { + nuc[0] = 0; + nuc[1] = 0; + nuc[2] = 0; + nuc[3] = 1; + } + else if (nucCode == 9) + { + nuc[0] = 1; + nuc[1] = 0; + nuc[2] = 0; + nuc[3] = 1; + } + else if (nucCode == 10) + { + nuc[0] = 0; + nuc[1] = 1; + nuc[2] = 0; + nuc[3] = 1; + } + else if (nucCode == 11) + { + nuc[0] = 1; + nuc[1] = 1; + nuc[2] = 0; + nuc[3] = 1; + } + else if (nucCode == 12) + { + nuc[0] = 0; + nuc[1] = 0; + nuc[2] = 1; + nuc[3] = 1; + } + else if (nucCode == 13) + { + nuc[0] = 1; + nuc[1] = 0; + nuc[2] = 1; + nuc[3] = 1; + } + else if (nucCode == 14) + { + nuc[0] = 0; + nuc[1] = 1; + nuc[2] = 1; + nuc[3] = 1; + } + else + { + nuc[0] = 1; + nuc[1] = 1; + nuc[2] = 1; + nuc[3] = 1; + } +} + + +void GetPossibleRestrictionSites (int resSiteCode, int *sites) +{ + int m; + + for (m=0; m<2; m++) + sites[m] = 0; + + if (resSiteCode == 1) + sites[0] = 1; + else if (resSiteCode == 2) + sites[1] = 1; + else + sites[0] = sites[1] = 1; + +# if 0 + printf ("%2d -- ", aaCode); + for (m=0; m<20; m++) + printf ("%d", aa[m]); + printf ("\n"); +# endif +} + + +Tree *GetTree (Param *parm, int chain, int state) +{ + return mcmcTree[parm->treeIndex + ((2 * chain + state) * numTrees)]; +} + + +Tree *GetTreeFromIndex (int index, int chain, int state) +{ + return mcmcTree[index + ((2 * chain + state) * numTrees)]; +} + + +/*----------------------------------------------------------- +| +| GetUserTreeFromName: Do case-insensitive search for user +| tree, return index if match, -1 and ERROR if error +| +------------------------------------------------------------*/ +int GetUserTreeFromName (int *index, char *treeName) +{ + int i, j, k, nMatches; + char localName[100], temp[100]; + + (*index) = -1; /* appropriate return if no match */ + + if ((int)strlen(treeName) > 99) + { + MrBayesPrint ("%s Too many characters in tree name\n", spacer); + return (ERROR); + } + + strcpy (localName, treeName); + for (i=0; i<(int)strlen(localName); i++) + localName[i] = tolower(localName[i]); + + nMatches = j = 0; + for (i=0; iname); + for (k=0; k<(int)strlen(temp); k++) + temp[k] = tolower(temp[k]); + if (strcmp(localName,temp) == 0) + { + j = i; + nMatches++; + } + } + if (nMatches==0) + { + for (i=0; iname); + for (k=0; k<(int)strlen(temp); k++) + temp[k] = tolower(temp[k]); + if (strncmp(localName,temp,strlen(localName)) == 0) + { + j = i; + nMatches++; + } + } + } + if (nMatches == 0) + { + MrBayesPrint ("%s Could not find tree '%s'\n", spacer, localName); + return (ERROR); + } + else if (nMatches > 1) + { + MrBayesPrint ("%s Several trees matched the abbreviated name '%s'\n", spacer, localName); + return (ERROR); + } + else + { + (*index) = j; + return (NO_ERROR); + } +} + + +/*---------------------------------------------------------------------- + | + | InitializeChainTrees: 'Constructor' for chain trees + | + -----------------------------------------------------------------------*/ +int InitializeChainTrees (Param *p, int from, int to, int isRooted) +{ + int i, st, isCalibrated, isClock, nTaxa, numActiveHardConstraints=0; + Tree *tree, **treeHandle; + Model *mp; + + mp = &modelParams[p->relParts[0]]; + + if (p->paramType == P_SPECIESTREE) + nTaxa = numSpecies; + else + nTaxa = numLocalTaxa; + + /* figure out whether the trees are clock */ + if (!strcmp(mp->brlensPr,"Clock")) + isClock = YES; + else + isClock = NO; + + /* figure out whether the trees are calibrated */ + if (!strcmp(mp->brlensPr,"Clock") && (strcmp(mp->nodeAgePr,"Calibrated") == 0 || strcmp(mp->clockRatePr,"Fixed") != 0 || + (strcmp(mp->clockRatePr, "Fixed") == 0 && AreDoublesEqual(mp->clockRateFix, 1.0, 1E-6) == NO))) + isCalibrated = YES; + else + isCalibrated = NO; + + if (p->checkConstraints == YES) + { + for (i=0; iactiveConstraints[i] == YES && definedConstraintsType[i] == HARD) + numActiveHardConstraints++; + } + } + + /* allocate space for and construct the trees */ + /* NOTE: The memory allocation scheme used here must match GetTree and GetTreeFromIndex */ + for (i=from; itreeIndex + 2*i*numTrees; + if (*treeHandle) + free(*treeHandle); + if ((*treeHandle = AllocateTree (nTaxa)) == NULL) + { + MrBayesPrint ("%s Problem allocating mcmc trees\n", spacer); + return (ERROR); + } + treeHandle = mcmcTree + p->treeIndex + (2*i + 1)*numTrees; + if (*treeHandle) + free(*treeHandle); + if ((*treeHandle = AllocateTree (nTaxa)) == NULL) + { + MrBayesPrint ("%s Problem allocating mcmc trees\n", spacer); + return (ERROR); + } + } + + /* initialize the trees */ + for (i=from; i 1) + sprintf (tree->name, "mcmc.tree%d_%d", p->treeIndex+1, i+1); + else /* if (numTrees == 1) */ + sprintf (tree->name, "mcmc.tree_%d", i+1); + tree->nRelParts = p->nRelParts; + tree->relParts = p->relParts; + tree->isRooted = isRooted; + tree->isClock = isClock; + tree->isCalibrated = isCalibrated; + if (p->paramType == P_SPECIESTREE) + { + tree->nNodes = 2*numSpecies; + tree->nIntNodes = numSpecies - 1; + } + else if (tree->isRooted == YES) + { + tree->nNodes = 2*numLocalTaxa; + tree->nIntNodes = numLocalTaxa - 1; + } + else /* if (tree->isRooted == NO) */ + { + tree->nNodes = 2*numLocalTaxa - 2; + tree->nIntNodes = numLocalTaxa - 2; + } + if (p->checkConstraints == YES) + { + tree->checkConstraints = YES; + tree->nLocks = NumInformativeHardConstraints(mp); + tree->nConstraints = mp->numActiveConstraints; /* nConstraints is number of constraints to check */ + tree->constraints = mp->activeConstraints; + } + else + { + tree->checkConstraints = NO; + tree->nConstraints = tree->nLocks = 0; + tree->constraints = NULL; + } + } + } + + return (NO_ERROR); +} + + +int InitializeLinks (void) +{ + int i, j; + + linkNum = 0; + for (i=0; iisCalibrated == NO) + return (NO_ERROR); + + /* Set tip calibrations */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL && p->right == NULL && localTaxonCalibration[p->index]->prior != unconstrained) + { + p->isDated = YES; + p->calibration = localTaxonCalibration[p->index]; + p->age = p->calibration->min; + } + else if (p->left == NULL && p->right == NULL) + { + p->isDated = NO; + p->calibration = NULL; + p->age = -1.0; + } + } + + /* Initialize interior calibrations */ + if (CheckSetConstraints(t) == ERROR) + return (ERROR); + + return (NO_ERROR); +} + + +int IsApplicable (Param *param) +{ + if (param == NULL) + return NO; + + return YES; +} + + +int IsApplicable_ThreeTaxaOrMore (Param *param) +{ + if (LargestMovableSubtree (param) >= 3) + return YES; + else + return NO; +} + + +int IsApplicable_FourTaxaOrMore (Param *param) +{ + if (LargestMovableSubtree (param) >= 4) + return YES; + else + return NO; +} + + +int IsApplicable_FiveTaxaOrMore (Param *param) +{ + if (LargestMovableSubtree (param) >= 5) + return YES; + else + return NO; +} + + +int IsApplicable_TreeAgeMove (Param *param) +{ + Tree *t; + TreeNode *p; + + if (param == NULL) + return NO; + + if (param->paramType != P_BRLENS) + return NO; + + t = GetTree (param, 0, 0); + + p = t->root->left; + if (p->isDated == NO) + return NO; + if (p->calibration->prior == fixed) + return NO; + else + return YES; +} + + +int IsApplicable_AncestralFossil (Param *param) +{ + ModelParams *mp = &modelParams[param->relParts[0]]; + + if (!strcmp(mp->sampleStrat, "FossilTip")) + return NO; + else if (mp->fossilizationFix == 0.0) + return NO; + else /* fossils may be ancestors of other fossils or extant species */ + return YES; +} + + +int IsModelSame (int whichParam, int part1, int part2, int *isApplic1, int *isApplic2) +{ + int i, isSame, isFirstNucleotide, isSecondNucleotide, isFirstProtein, isSecondProtein, nDiff, temp1, temp2; + + isSame = YES; + *isApplic1 = YES; + *isApplic2 = YES; + + /* We cannot rely on SetModelInfo being called first so we need to be smart in figuring out model data type by looking at several model params */ + isFirstNucleotide = isSecondNucleotide = NO; + if ((modelParams[part1].dataType == DNA || modelParams[part1].dataType == RNA) && strcmp(modelParams[part1].nucModel,"Protein") != 0) + isFirstNucleotide = YES; + if ((modelParams[part2].dataType == DNA || modelParams[part2].dataType == RNA) && strcmp(modelParams[part2].nucModel,"Protein") != 0) + isSecondNucleotide = YES; + isFirstProtein = isSecondProtein = NO; + if (modelParams[part1].dataType == PROTEIN || ((modelParams[part1].dataType == DNA || modelParams[part1].dataType == RNA) && !strcmp(modelParams[part1].nucModel,"Protein"))) + isFirstProtein = YES; + if (modelParams[part2].dataType == PROTEIN || ((modelParams[part2].dataType == DNA || modelParams[part2].dataType == RNA) && !strcmp(modelParams[part2].nucModel,"Protein"))) + isSecondProtein = YES; + + if (whichParam == P_TRATIO) + { + /* Check the ti/tv rate ratio for partitions 1 and 2. */ + + /* Check if the model is parsimony for either partition */ + if (!strcmp(modelParams[part1].parsModel, "Yes")) + *isApplic1 = NO; /* part1 has a parsimony model and tratio does not apply */ + if (!strcmp(modelParams[part2].parsModel, "Yes")) + *isApplic2 = NO; /* part2 has a parsimony model and tratio does not apply */ + + /* Check that the data are nucleotide for both partitions 1 and 2 */ + if (isFirstNucleotide == NO) + *isApplic1 = NO; /* part1 is not nucleotide data so tratio does not apply */ + if (isSecondNucleotide == NO) + *isApplic2 = NO; /* part2 is not nucleotide data so tratio does not apply */ + + /* check that nst=2 for both partitions */ + if (strcmp(modelParams[part1].nst, "2")) + *isApplic1 = NO; /* part1 does not have nst=2 and tratio does not apply */ + if (strcmp(modelParams[part2].nst, "2")) + *isApplic2 = NO; /* part2 does not have nst=2 and tratio does not apply */ + + /* Check if part1 & part2 are restriction */ + if (modelParams[part1].dataType == RESTRICTION) + *isApplic1 = NO; + if (modelParams[part2].dataType == RESTRICTION) + *isApplic2 = NO; + + /* If Nst = 2 for both part1 and part2, we now need to check if the prior is the same for both. */ + if (!strcmp(modelParams[part1].tRatioPr,"Beta") && !strcmp(modelParams[part2].tRatioPr,"Beta")) + { + if (AreDoublesEqual (modelParams[part1].tRatioDir[0], modelParams[part2].tRatioDir[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].tRatioDir[1], modelParams[part2].tRatioDir[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else if (!strcmp(modelParams[part1].tRatioPr,"Fixed") && !strcmp(modelParams[part2].tRatioPr,"Fixed")) + { + if (AreDoublesEqual (modelParams[part1].tRatioFix, modelParams[part2].tRatioFix, (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + + /* Check to see if tratio is inapplicable for either partition. */ + if ((*isApplic1) == NO || (*isApplic2) == NO) + isSame = NO; /* if tratio is inapplicable for either partition, then the parameter cannot be the same */ + } + else if (whichParam == P_REVMAT) + { + /* Check the GTR rates for partitions 1 and 2. */ + + /* Check if the model is parsimony for either partition */ + if (!strcmp(modelParams[part1].parsModel, "Yes")) + *isApplic1 = NO; /* part1 has a parsimony model and GTR rates do not apply */ + if (!strcmp(modelParams[part2].parsModel, "Yes")) + *isApplic2 = NO; /* part2 has a parsimony model and GTR rates do not apply */ + + /* Check that the data are nucleotide or protein for both partitions 1 and 2 */ + if (isFirstNucleotide == NO && isFirstProtein == NO) + *isApplic1 = NO; /* part1 is not nucleotide or protein data so GTR rates do not apply */ + if (isSecondNucleotide == NO && isSecondProtein == NO) + *isApplic2 = NO; /* part2 is not nucleotide or protein data so GTR rates do not apply */ + + /* check that nst=6 or mixed for both partitions if nucleotide */ + if (isFirstNucleotide == YES && strcmp(modelParams[part1].nst, "6") && strcmp(modelParams[part1].nst, "Mixed")) + *isApplic1 = NO; /* part1 does not have nst=6/Mixed and GTR rates do not apply */ + if (isSecondNucleotide == YES && strcmp(modelParams[part2].nst, "6") && strcmp(modelParams[part2].nst, "Mixed")) + *isApplic2 = NO; /* part2 does not have nst=6/Mixed and GTR rates do not apply */ + + /* check that model is GTR for both partitions if protein */ + if (isFirstProtein == YES && (strcmp(modelParams[part1].aaModel,"Gtr")!=0 || strcmp(modelParams[part1].aaModelPr,"Fixed")!=0)) + *isApplic1 = NO; + if (isSecondProtein == YES && (strcmp(modelParams[part2].aaModel,"Gtr")!=0 || strcmp(modelParams[part2].aaModelPr,"Fixed")!=0)) + *isApplic2 = NO; + + /* check that data type is the same for both partitions */ + if (isFirstNucleotide == YES && isSecondNucleotide == NO) + isSame = NO; + if (isFirstProtein == YES && isSecondProtein == NO) + isSame = NO; + + /* GTR applies to both part1 and part2. We now need to check if the prior is the same for both. */ + if (isFirstNucleotide == YES) + { + if (strcmp(modelParams[part1].nst, modelParams[part2].nst) != 0) + isSame = NO; + if (!strcmp(modelParams[part1].nst,"Mixed")) + { + if (AreDoublesEqual (modelParams[part1].revMatSymDir, modelParams[part2].revMatSymDir, (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else if (!strcmp(modelParams[part1].nst,"6") && !strcmp(modelParams[part1].revMatPr,"Dirichlet") && !strcmp(modelParams[part2].revMatPr,"Dirichlet")) + { + for (i=0; i<6; i++) + { + if (AreDoublesEqual (modelParams[part1].revMatDir[i], modelParams[part2].revMatDir[i], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + } + else if (!strcmp(modelParams[part1].nst,"6") && !strcmp(modelParams[part1].revMatPr,"Fixed") && !strcmp(modelParams[part2].revMatPr,"Fixed")) + { + for (i=0; i<6; i++) + { + if (AreDoublesEqual (modelParams[part1].revMatFix[i], modelParams[part2].revMatFix[i], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + } + else /* if (isFirstProtein == YES) */ + { + if (!strcmp(modelParams[part1].aaRevMatPr,"Dirichlet") && !strcmp(modelParams[part2].aaRevMatPr,"Dirichlet")) + { + for (i=0; i<190; i++) + { + if (AreDoublesEqual (modelParams[part1].aaRevMatDir[i], modelParams[part2].aaRevMatDir[i], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + } + else if (!strcmp(modelParams[part1].aaRevMatPr,"Fixed") && !strcmp(modelParams[part2].aaRevMatPr,"Fixed")) + { + for (i=0; i<190; i++) + { + if (AreDoublesEqual (modelParams[part1].aaRevMatFix[i], modelParams[part2].aaRevMatFix[i], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + } + + /* Check to see if the GTR rates are inapplicable for either partition. */ + if ((*isApplic1) == NO || (*isApplic2) == NO) + isSame = NO; /* if GTR rates are inapplicable for either partition, then the parameter cannot be the same */ + } + else if (whichParam == P_OMEGA) + { + /* Check the nonsynonymous/synonymous rate ratio for partitions 1 and 2. */ + + /* Check if the model is parsimony for either partition */ + if (!strcmp(modelParams[part1].parsModel, "Yes")) + *isApplic1 = NO; /* part1 has a parsimony model and nonsynonymous/synonymous rate ratio does not apply */ + if (!strcmp(modelParams[part2].parsModel, "Yes")) + *isApplic2 = NO; /* part2 has a parsimony model and nonsynonymous/synonymous rate ratio does not apply */ + + /* Check that the data are nucleotide for both partitions 1 and 2 */ + if (isFirstNucleotide == NO) + *isApplic1 = NO; /* part1 is not nucleotide data so a nonsynonymous/synonymous rate ratio does not apply */ + if (isSecondNucleotide == NO) + *isApplic2 = NO; /* part2 is not nucleotide data so a nonsynonymous/synonymous rate ratio does not apply */ + + /* Check that the model structure is the same for both. The nucmodel should be "codon". */ + if (strcmp(modelParams[part1].nucModel, "Codon")) + *isApplic1 = NO; /* part1 does not have Nucmodel = Codon and nonsynonymous/synonymous rate ratio does not apply */ + if (strcmp(modelParams[part2].nucModel, "Codon")) + *isApplic2 = NO; /* part2 does not have Nucmodel = Codon and nonsynonymous/synonymous rate ratio does not apply */ + + /* Assuming that Nucmodel = Codon for both part1 and part2, we now need to check if the prior is the + same for both. */ + if (!strcmp(modelParams[part1].omegaVar, "M3") && !strcmp(modelParams[part2].omegaVar, "M3")) + { + if (!strcmp(modelParams[part1].m3omegapr, "Exponential") && !strcmp(modelParams[part2].m3omegapr, "Exponential")) + { + } + else if (!strcmp(modelParams[part1].m3omegapr, "Fixed") && !strcmp(modelParams[part1].m3omegapr, "Fixed")) + { + if (AreDoublesEqual (modelParams[part1].m3omegaFixed[0], modelParams[part2].m3omegaFixed[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].m3omegaFixed[1], modelParams[part2].m3omegaFixed[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + + if (!strcmp(modelParams[part1].codonCatFreqPr, "Dirichlet") && !strcmp(modelParams[part2].codonCatFreqPr, "Dirichlet")) + { + if (AreDoublesEqual (modelParams[part1].codonCatDir[0], modelParams[part2].codonCatDir[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].codonCatDir[1], modelParams[part2].codonCatDir[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].codonCatDir[2], modelParams[part2].codonCatDir[2], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else if (!strcmp(modelParams[part1].codonCatFreqPr, "Fixed") && !strcmp(modelParams[part1].codonCatFreqPr, "Fixed")) + { + if (AreDoublesEqual (modelParams[part1].codonCatFreqFix[0], modelParams[part2].codonCatFreqFix[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].codonCatFreqFix[1], modelParams[part2].codonCatFreqFix[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].codonCatFreqFix[2], modelParams[part2].codonCatFreqFix[2], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + } + else if (!strcmp(modelParams[part1].omegaVar, "M10") && !strcmp(modelParams[part2].omegaVar, "M10")) + { + if (!strcmp(modelParams[part1].codonCatFreqPr, "Dirichlet") && !strcmp(modelParams[part2].codonCatFreqPr, "Dirichlet")) + { + if (AreDoublesEqual (modelParams[part1].codonCatDir[0], modelParams[part2].codonCatDir[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].codonCatDir[1], modelParams[part2].codonCatDir[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else if (!strcmp(modelParams[part1].codonCatFreqPr, "Fixed") && !strcmp(modelParams[part1].codonCatFreqPr, "Fixed")) + { + if (AreDoublesEqual (modelParams[part1].codonCatFreqFix[0], modelParams[part2].codonCatFreqFix[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].codonCatFreqFix[1], modelParams[part2].codonCatFreqFix[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + } + else if (!strcmp(modelParams[part1].omegaVar, "Ny98") && !strcmp(modelParams[part2].omegaVar, "Ny98")) + { + if (!strcmp(modelParams[part1].ny98omega1pr, "Beta") && !strcmp(modelParams[part2].ny98omega1pr, "Beta")) + { + if (AreDoublesEqual (modelParams[part1].ny98omega1Beta[0], modelParams[part2].ny98omega1Beta[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].ny98omega1Beta[1], modelParams[part2].ny98omega1Beta[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else if (!strcmp(modelParams[part1].ny98omega1pr, "Fixed") && !strcmp(modelParams[part1].ny98omega1pr, "Fixed")) + { + if (AreDoublesEqual (modelParams[part1].ny98omega1Fixed, modelParams[part2].ny98omega1Fixed, (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + if (!strcmp(modelParams[part1].ny98omega3pr, "Uniform") && !strcmp(modelParams[part2].ny98omega3pr, "Uniform")) + { + if (AreDoublesEqual (modelParams[part1].ny98omega3Uni[0], modelParams[part2].ny98omega3Uni[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].ny98omega3Uni[1], modelParams[part2].ny98omega3Uni[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else if (!strcmp(modelParams[part1].ny98omega3pr, "Exponential") && !strcmp(modelParams[part1].ny98omega3pr, "Exponential")) + { + if (AreDoublesEqual (modelParams[part1].ny98omega3Exp, modelParams[part2].ny98omega3Exp, (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else if (!strcmp(modelParams[part1].ny98omega3pr, "Fixed") && !strcmp(modelParams[part1].ny98omega3pr, "Fixed")) + { + if (AreDoublesEqual (modelParams[part1].ny98omega3Fixed, modelParams[part2].ny98omega3Fixed, (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + if (!strcmp(modelParams[part1].codonCatFreqPr, "Dirichlet") && !strcmp(modelParams[part2].codonCatFreqPr, "Dirichlet")) + { + if (AreDoublesEqual (modelParams[part1].codonCatDir[0], modelParams[part2].codonCatDir[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].codonCatDir[1], modelParams[part2].codonCatDir[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].codonCatDir[2], modelParams[part2].codonCatDir[2], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else if (!strcmp(modelParams[part1].codonCatFreqPr, "Fixed") && !strcmp(modelParams[part1].codonCatFreqPr, "Fixed")) + { + if (AreDoublesEqual (modelParams[part1].codonCatFreqFix[0], modelParams[part2].codonCatFreqFix[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].codonCatFreqFix[1], modelParams[part2].codonCatFreqFix[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].codonCatFreqFix[2], modelParams[part2].codonCatFreqFix[2], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + } + else if (!strcmp(modelParams[part1].omegaVar, "Equal") && !strcmp(modelParams[part2].omegaVar, "Equal")) + { + if (!strcmp(modelParams[part1].omegaPr,"Dirichlet") && !strcmp(modelParams[part2].omegaPr,"Dirichlet")) + { + if (AreDoublesEqual (modelParams[part1].omegaDir[0], modelParams[part2].omegaDir[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].omegaDir[1], modelParams[part2].omegaDir[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else if (!strcmp(modelParams[part1].omegaPr,"Fixed") && !strcmp(modelParams[part2].omegaPr,"Fixed")) + { + if (AreDoublesEqual (modelParams[part1].omegaFix, modelParams[part2].omegaFix, (MrBFlt) 0.00001) == NO) + isSame = NO; + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + + /* Check to see if omega is inapplicable for either partition. */ + if ((*isApplic1) == NO || (*isApplic2) == NO) + isSame = NO; /* if omega is inapplicable for either partition, then the parameter cannot be the same */ + } + else if (whichParam == P_PI) + { + /* Check the state frequencies for partitions 1 and 2. */ + + /* Check if the model is parsimony for either partition */ + if (!strcmp(modelParams[part1].parsModel, "Yes")) + *isApplic1 = NO; /* part1 has a parsimony model and state frequencies do not apply */ + if (!strcmp(modelParams[part2].parsModel, "Yes")) + *isApplic2 = NO; /* part2 has a parsimony model and state frequencies do not apply */ + + /* Check that the data are not CONTINUOUS for partitions 1 and 2 */ + if (modelParams[part1].dataType == CONTINUOUS) + *isApplic1 = NO; /* state frequencies do not make sense for part1 */ + if (modelParams[part2].dataType == CONTINUOUS) + *isApplic2 = NO; /* state frequencies do not make sense for part2 */ + + /* Now, check that the data are the same (i.e., both nucleotide or both amino acid, or whatever). */ + if (isFirstNucleotide != isSecondNucleotide) + isSame = NO; /* data are not both nucleotide or both note nucleotide */ + else if (modelParams[part1].dataType != modelParams[part2].dataType && isFirstNucleotide == NO) + isSame = NO; /* data are not the same */ + + /* Check that the model structure is the same for both partitions */ + if (strcmp(modelParams[part1].nucModel, modelParams[part2].nucModel)) + isSame = NO; /* the nucleotide models are different */ + if (strcmp(modelParams[part1].covarionModel, modelParams[part2].covarionModel) && !(!strcmp(modelParams[part1].nucModel, "Codon") && !strcmp(modelParams[part2].nucModel, "Codon"))) + isSame = NO; /* the models have different covarion struture */ + + /* If both partitions have nucmodel=codon, then we also have to make certain that the same genetic code is used. */ + if (!strcmp(modelParams[part1].nucModel, "Codon") && !strcmp(modelParams[part2].nucModel, "Codon")) + { + if (strcmp(modelParams[part1].geneticCode, modelParams[part2].geneticCode)) + isSame = NO; /* the models have different genetic codes */ + } + + /* Let's see if the prior is the same. */ + if (modelParams[part1].dataType == STANDARD && modelParams[part2].dataType == STANDARD) + { + /* The data are morphological (STANDARD). The state frequencies are specified by a + symmetric beta distribution, the parameter of which needs to be the same to apply to both + partitions. Note that symPiPr = -1 is equivalent to setting the variance to 0.0. */ + if (!strcmp(modelParams[part1].symPiPr,"Uniform") && !strcmp(modelParams[part2].symPiPr,"Uniform")) + { + if (AreDoublesEqual (modelParams[part1].symBetaUni[0], modelParams[part2].symBetaUni[0], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].symBetaUni[1], modelParams[part2].symBetaUni[1], (MrBFlt) 0.00001) == NO) + isSame = NO; + if (modelParams[part1].numBetaCats != modelParams[part2].numBetaCats) + isSame = NO; /* can't link because the discrete beta approximation is different */ + } + else if (!strcmp(modelParams[part1].symPiPr,"Exponential") && !strcmp(modelParams[part2].symPiPr,"Exponential")) + { + if (AreDoublesEqual (modelParams[part1].symBetaExp, modelParams[part2].symBetaExp, (MrBFlt) 0.00001) == NO) + isSame = NO; + if (modelParams[part1].numBetaCats != modelParams[part2].numBetaCats) + isSame = NO; /* can't link because the discrete beta approximation is different */ + } + else if (!strcmp(modelParams[part1].symPiPr,"Fixed") && !strcmp(modelParams[part2].symPiPr,"Fixed")) + { + if (AreDoublesEqual (modelParams[part1].symBetaFix, modelParams[part2].symBetaFix, (MrBFlt) 0.00001) == NO) + isSame = NO; + if (AreDoublesEqual (modelParams[part1].symBetaFix, (MrBFlt) -1.0, (MrBFlt) 0.00001) == NO && modelParams[part1].numBetaCats != modelParams[part2].numBetaCats) + isSame = NO; /* can't link because the discrete beta approximation is different */ + } + else + isSame = NO; /* the priors are not the same, so we cannot set the parameter to be equal for both partitions */ + } + if (modelSettings[part1].dataType == PROTEIN && modelSettings[part2].dataType == PROTEIN) + { + /* We are dealing with protein data. */ + if (!strcmp(modelParams[part1].aaModelPr, modelParams[part2].aaModelPr)) + { + if (!strcmp(modelParams[part1].aaModelPr, "Fixed")) + { + /* only have a single, fixed, amino acid rate matrix */ + if (!strcmp(modelParams[part1].aaModel, modelParams[part2].aaModel)) + {} + else + isSame = NO; /* we have different amino acid models, and the state frequencies must be different */ + /* if we have an equalin model or Gtr model, then we need to check the prior on the state frequencies */ + if (!strcmp(modelParams[part1].aaModel, "Equalin") || !strcmp(modelParams[part1].aaModel, "Gtr")) + { + if (!strcmp(modelParams[part1].stateFreqPr, modelParams[part2].stateFreqPr)) + { + /* the prior form is the same */ + if (!strcmp(modelParams[part1].stateFreqPr, "Dirichlet")) /* both prior models must be dirichlet */ + { + for (i=0; irelParts[0]]; + + if (treeParam->paramType == P_SPECIESTREE) + return numLocalTaxa; /* no constraints allowed in species tree; set constraints in gene trees instead */ + + /* This is difficult because we cannot rely on the tree being initialized. + We need to retrieve the bitfields ourselves and figure out what they mean. */ + nLongsNeeded = ((numLocalTaxa - 1) / nBitsInALong) + 1; + subtreePartition = (BitsLong *) SafeCalloc(3*nLongsNeeded, sizeof(BitsLong)); + constraintPartition = (BitsLong **) SafeCalloc (numDefinedConstraints+1, sizeof(BitsLong *)); + constraintPartition[0] = (BitsLong *) SafeCalloc ((numDefinedConstraints+1)*nLongsNeeded, sizeof(BitsLong)); + for (i=1; iactiveConstraints[a] == NO || definedConstraintsType[a] != HARD) + continue; + + /* set bits in partition under consideration */ + ClearBits(constraintPartition[numPartitions], nLongsNeeded); + for (i=j=0; ibrlensPr,"Clock") != 0 && IsBitSet(localOutGroup, constraintPartition[numPartitions]) == YES) + FlipBits(constraintPartition[numPartitions], nLongsNeeded, mask); + + /* skip partition if uninformative */ + k = NumBits(constraintPartition[numPartitions], nLongsNeeded); + if (k == 0 || k == 1) + continue; + + numPartitions++; + } + + /* Add all-species partition */ + CopyBits(constraintPartition[numPartitions], mask, nLongsNeeded); + numPartitions++; + + /* Now we have all constraints. Calculate the movable subtree for each */ + largestSubtree = 0; + for (i=0; ibrlensPr,"Clock") != 0 && NumBits (constraintPartition[i], nLongsNeeded) == numLocalTaxa - 1) + k++; + if (k > largestSubtree) + largestSubtree = k; + } + + free(subtreePartition); + free(constraintPartition[0]); + free(constraintPartition); + + return largestSubtree; +} + + +int Link (void) +{ + int i, j; + + for (j=0; jactiveConstraints[a] == NO || definedConstraintsType[a] != HARD) + continue; + + /* set bits in partition to add */ + ClearBits(constraintPartition, nLongsNeeded); + for (i=j=0; ibrlensPr,"Clock") != 0 && IsBitSet(localOutGroup, constraintPartition) == YES) + FlipBits(constraintPartition, nLongsNeeded, mask); + + /* skip partition if uninformative */ + k = NumBits(constraintPartition, nLongsNeeded); + if (k == 0 || k == 1) + continue; + + numInformativeHardConstraints++; + } + + return numInformativeHardConstraints; +} + + +int NumNonExcludedChar (void) +{ + int i, n; + + /* count number of non-excluded characters */ + n = 0; + for (i=0; idataType == DNA || mp->dataType == RNA) + whichChar = &WhichNuc; + if (mp->dataType == PROTEIN) + whichChar = &WhichAA; + if (mp->dataType == RESTRICTION) + whichChar = &WhichRes; + if (mp->dataType == STANDARD) + whichChar = &WhichStand; + + MrBayesPrint ("\nCompressed matrix for division %d\n\n", d+1); + + k = 66; + if (mp->dataType == CONTINUOUS) + k /= 4; + + for (c=m->compMatrixStart; ccompMatrixStop; c+=k) + { + for (i=0; i= m->compMatrixStop) + break; + if (mp->dataType == CONTINUOUS) + MrBayesPrint ("%3d ", compMatrix[pos(i,j,compMatrixRowSize)]); + else + MrBayesPrint ("%c", whichChar((int)compMatrix[pos(i,j,compMatrixRowSize)])); + } + MrBayesPrint("\n"); + } + MrBayesPrint("\nNo. sites "); + for (j=c; j= m->compMatrixStop) + break; + i = (int) numSitesOfPat[m->compCharStart + (0*numCompressedChars) + (j - m->compMatrixStart)/m->nCharsPerSite]; /* NOTE: We are printing the unadulterated site pat nums */ + if (i>9) + i = 'A' + i - 10; + else + i = '0' + i; + if (mp->dataType == CONTINUOUS) + MrBayesPrint(" %c ", i); + else + { + if ((j-m->compMatrixStart) % m->nCharsPerSite == 0) + MrBayesPrint ("%c", i); + else + MrBayesPrint(" "); + } + } + MrBayesPrint ("\nOrig. char "); + for (j=c; j= m->compMatrixStop) + break; + i = origChar[j]; + if (i>9) + i = '0' + (i % 10); + else + i = '0' +i; + if (mp->dataType == CONTINUOUS) + MrBayesPrint(" %c ", i); + else + MrBayesPrint ("%c", i); + } + + if (mp->dataType == STANDARD && m->nStates != NULL) + { + MrBayesPrint ("\nNo. states "); + for (j=c; j= m->compMatrixStop) + break; + i = m->nStates[j-m->compCharStart]; + MrBayesPrint ("%d", i); + } + MrBayesPrint ("\nCharType "); + for (j=c; j= m->compMatrixStop) + break; + i = m->cType[j-m->compMatrixStart]; + if (i == ORD) + MrBayesPrint ("%c", 'O'); + else if (i == UNORD) + MrBayesPrint ("%c", 'U'); + else + MrBayesPrint ("%c", 'I'); + } + MrBayesPrint ("\ntiIndex "); + for (j=c; j= m->compMatrixStop) + break; + i = m->tiIndex[j-m->compCharStart]; + MrBayesPrint ("%d", i % 10); + } + MrBayesPrint ("\nbsIndex "); + for (j=c; j= m->compMatrixStop) + break; + i = m->bsIndex[j-m->compCharStart]; + MrBayesPrint ("%d", i % 10); + } + } + MrBayesPrint ("\n\n"); + } + MrBayesPrint ("Press return to continue\n"); + getchar(); + } /* next division */ + + return NO_ERROR; +} + + +/*---------------------------------------------------------------------- +| +| PrintMatrix: Print data matrix +| +| +------------------------------------------------------------------------*/ +int PrintMatrix (void) +{ + int i, j=0, c, printWidth, nextColumn; + + if (!matrix) + return ERROR; + + MrBayesPrint ("\nData matrix\n\n"); + + printWidth = 79; + + for (c=0; c= numChar) + break; + if (charInfo[j].charType == CONTINUOUS && nextColumn < printWidth - 3) + break; + if (charInfo[j].charType == CONTINUOUS) + { + MrBayesPrint ("%3d ", matrix[pos(i,j,numChar)]); + nextColumn += 3; + } + else if (charInfo[j].charType == DNA || charInfo[j].charType == RNA) + MrBayesPrint ("%c", WhichNuc(matrix[pos(i,j,numChar)])); + else if (charInfo[j].charType == PROTEIN) + MrBayesPrint ("%c", WhichAA(matrix[pos(i,j,numChar)])); + else if (charInfo[j].charType == RESTRICTION) + MrBayesPrint ("%c", WhichRes(matrix[pos(i,j,numChar)])); + else if (charInfo[j].charType == STANDARD) + MrBayesPrint ("%c", WhichStand(matrix[pos(i,j,numChar)])); + j++; + } + MrBayesPrint("\n"); + } + MrBayesPrint ("\n"); + } + + return NO_ERROR; +} + + +/*-------------------------------------------------------------- +| +| ProcessStdChars: process standard characters +| +---------------------------------------------------------------*/ +int ProcessStdChars (RandLong *seed) +{ + int c, d, i, j, k, n, ts, index, numStandardChars, origCharPos, *bsIndex; + char piHeader[30]; + ModelInfo *m; + ModelParams *mp=NULL; + Param *p; + + /* set character type, no. states, ti index and bs index for standard characters */ + /* first calculate how many standard characters we have */ + numStandardChars = 0; + for (d=0; ddataType != STANDARD) + continue; + + numStandardChars += m->numChars; + } + + /* return if there are no standard characters */ + if (numStandardChars == 0) + return (NO_ERROR); + + /* we are still here so we have standard characters and need to deal with them */ + + /* first allocate space for stdType, stateSize, tiIndex, bsIndex */ + if (memAllocs[ALLOC_STDTYPE] == YES) + { + free (stdType); + stdType = NULL; + memAllocs[ALLOC_STDTYPE] = NO; + } + stdType = (int *)SafeCalloc(4 * (size_t)numStandardChars, sizeof(int)); + if (!stdType) + { + MrBayesPrint ("%s Problem allocating stdType (%d ints)\n", 4 * numStandardChars); + return ERROR; + } + memAllocs[ALLOC_STDTYPE] = YES; + stateSize = stdType + numStandardChars; + tiIndex = stateSize + numStandardChars; + bsIndex = tiIndex + numStandardChars; + + /* then fill in stdType and stateSize, set pointers */ + /* also fill in isTiNeeded for each division and tiIndex for each character */ + for (d=j=0; ddataType != STANDARD) + continue; + + m->cType = stdType + j; + m->nStates = stateSize + j; + m->tiIndex = tiIndex + j; + m->bsIndex = bsIndex + j; + + m->cijkLength = 0; + m->nCijkParts = 0; + for (c=0; cnumChars; c++) + { + if (origChar[c+m->compMatrixStart] < 0) + { + /* this is a dummy character */ + m->cType[c] = UNORD; + m->nStates[c] = 2; + } + else + { + /* this is an ordinary character */ + m->cType[c] = charInfo[origChar[c + m->compMatrixStart]].ctype; + m->nStates[c] = charInfo[origChar[c + m->compMatrixStart]].numStates; + } + + /* check ctype settings */ + if (m->nStates[c] < 2) + { + MrBayesPrint ("%s WARNING: Compressed character %d (original character %d) of division %d has less \n", spacer, c+m->compCharStart,origChar[c+m->compCharStart]+1, d+1); + MrBayesPrint ("%s than two observed states; it will be assumed to have two states.\n", spacer); + m->nStates[c] = 2; + } + if (m->nStates[c] > 6 && m->cType[c] != UNORD) + { + MrBayesPrint ("%s Only unordered model supported for characters with more than 6 states\n", spacer); + return ERROR; + } + if (m->nStates[c] == 2 && m->cType[c] == ORD) + m->cType[c] = UNORD; + if (m->cType[c] == IRREV) + { + MrBayesPrint ("%s Irreversible model not yet supported\n", spacer); + return ERROR; + } + + /* find max number of states */ + if (m->nStates[c] > m->numModelStates) + m->numModelStates = m->nStates[c]; + + /* update Cijk info */ + if (strcmp(mp->symPiPr,"Fixed") != 0 || AreDoublesEqual(mp->symBetaFix, -1.0, 0.00001) == NO) + { + /* Asymmetry between stationary state frequencies -- we need one cijk and eigenvalue + set for each multistate character */ + if (m->nStates[c] > 2 && (m->cType[c] == UNORD || m->cType[c] == ORD)) + { + ts = m->nStates[c]; + m->cijkLength += (ts * ts * ts) + (2 * ts); + m->nCijkParts++; + } + } + + /* set the ti probs needed */ + if (m->stateFreq->nValues == 0 || m->nStates[c] == 2) + { + if (m->cType[c] == UNORD) + m->isTiNeeded[m->nStates[c]-2] = YES; + if (m->cType[c] == ORD) + m->isTiNeeded[m->nStates[c]+6] = YES; + if (m->cType[c] == IRREV) + m->isTiNeeded[m->nStates[c]+11] = YES; + } + } + + /* set ti index for each compressed character first */ + /* set bs index later (below) */ + + /* set base index, valid for binary chars */ + m->tiIndex[c] = 0; + + /* first adjust for unordered characters */ + for (k=0; k<9; k++) + { + if (m->isTiNeeded [k] == NO) + continue; + + for (c=0; cnumChars; c++) + { + if (m->cType[c] != UNORD || m->nStates[c] > k + 2) + { + m->tiIndex[c] += (k + 2) * (k + 2) * m->numGammaCats; + } + } + } + + /* second for ordered characters */ + for (k=9; k<13; k++) + { + if (m->isTiNeeded [k] == NO) + continue; + + for (c=0; cnumChars; c++) + { + if (m->cType[c] == IRREV || (m->cType[c] == ORD && m->nStates[c] > k - 6)) + { + m->tiIndex[c] += (k - 6) * (k - 6) * m->numGammaCats; + } + } + } + + /* third for irrev characters */ + for (k=13; k<18; k++) + { + if (m->isTiNeeded [k] == NO) + continue; + + for (c=0; cnumChars; c++) + { + if (m->cType[c] == IRREV && m->nStates[c] > k - 11) + { + m->tiIndex[c] += (k - 11) * (k - 11) * m->numGammaCats; + } + } + } + + /* finally take beta cats into account in tiIndex */ + /* the beta cats will only be used for binary characters */ + /* multistate characters get their ti indices reset here */ + if (m->numBetaCats > 1 && m->isTiNeeded[0] == YES) + { + k = 4 * m->numBetaCats * m->numGammaCats; /* offset for binary character ti probs */ + for (c=0; cnumChars; c++) + { + if (m->nStates[c] > 2) + { + m->tiIndex[c] = k; + k += m->nStates[c] * m->nStates[c] * m->numGammaCats; + } + } + } + j += m->numChars; + } + + /* deal with bsIndex */ + for (k=0; kparamType != P_PI || modelParams[p->relParts[0]].dataType != STANDARD) + continue; + p->nSympi = 0; + p->hasBinaryStd = NO; + for (i=0; inRelParts; i++) + if (modelSettings[p->relParts[i]].isTiNeeded[0] == YES) + break; + if (i < p->nRelParts) + p->hasBinaryStd = YES; + if (p->paramId == SYMPI_EQUAL) + { + /* calculate the number of state frequencies needed */ + /* also set bsIndex appropriately */ + for (n=index=0; n<9; n++) + { + for (i=0; inRelParts; i++) + if (modelSettings[p->relParts[i]].isTiNeeded[n] == YES) + break; + if (i < p->nRelParts) + { + for (i=0; inRelParts; i++) + { + m = &modelSettings[p->relParts[i]]; + for (c=0; cnumChars; c++) + { + if (m->cType[c] != UNORD || m->nStates[c] > n + 2) + { + m->bsIndex[c] += (n + 2); + } + } + } + index += (n + 2); + } + } + for (n=9; n<13; n++) + { + for (i=0; inRelParts; i++) + if (modelSettings[p->relParts[i]].isTiNeeded[n] == YES) + break; + if (i < p->nRelParts) + { + for (i=0; inRelParts; i++) + { + m = &modelSettings[p->relParts[i]]; + for (c=0; cnumChars; c++) + { + if (m->cType[c] == ORD && m->nStates[c] > n - 6) + { + m->bsIndex[c] += (n - 6); + } + } + } + index += (n - 6); + } + } + p->nStdStateFreqs = index; + } + else + { + /* if not equal we need space for beta category frequencies */ + index = 0; + if (p->hasBinaryStd == YES) + index += (2 * modelSettings[p->relParts[0]].numBetaCats); + /* as well as one set of frequencies for each multistate character */ + for (i=0; inRelParts; i++) + { + m = &modelSettings[p->relParts[i]]; + for (c=0; cnumChars; c++) + { + if (m->nStates[c] > 2 && (m->cType[c] == UNORD || m->cType[c] == ORD)) + { + m->bsIndex[c] = index; + index += m->nStates[c]; + p->nSympi++; + } + } + } + } + p->nStdStateFreqs = index; + } + + /* allocate space for bsIndex, sympiIndex, stdStateFreqs; then fill */ + + /* first count number of sympis needed */ + for (k=n=i=0; knSympi; /* nsympi calculated above */ + } + + /* then allocate and fill in */ + if (n > 0) + { + if (memAllocs[ALLOC_SYMPIINDEX] == YES) + { + sympiIndex = (int *) SafeRealloc ((void *) sympiIndex, 3*n * sizeof (int)); + for (i=0; i<3*n; i++) + sympiIndex[i] = 0; + } + else + sympiIndex = (int *) SafeCalloc (3*n, sizeof (int)); + if (!sympiIndex) + { + MrBayesPrint ("%s Problem allocating sympiIndex\n", spacer); + return (ERROR); + } + else + memAllocs[ALLOC_SYMPIINDEX] = YES; + + /* set up sympi pointers and fill sympiIndex */ + for (k=i=0; knSympi > 0) + { + p->printParam = YES; /* print even if fixed alpha_symdir */ + index = 0; + p->sympiBsIndex = sympiIndex + i; + p->sympinStates = sympiIndex + i + n; + p->sympiCType = sympiIndex + i + (2 * n); + for (j=0; jnRelParts; j++) + { + m = &modelSettings[p->relParts[j]]; + for (c=0; cnumChars; c++) + { + if (m->nStates[c] > 2 && (m->cType[c] == UNORD || m->cType[c] == ORD)) + { + p->sympinStates[index] = m->nStates[c]; + p->sympiBsIndex[index] = m->bsIndex[c]; + p->sympiCType[index] = m->cType[c]; + origCharPos = origChar[m->compCharStart + c]; + for (ts=0; tsnStates[c]; ts++) + { + sprintf (piHeader, "\tpi_%d(%d)", origCharPos+1, ts); + SafeStrcat(&p->paramHeader, piHeader); + } + index++; + } + } + } + assert (index == p->nSympi); + i += p->nSympi; + } + } + assert (i == n); + } + + /* count space needed for state frequencies */ + for (k=n=0; kparamType != P_PI || modelParams[p->relParts[0]].dataType != STANDARD) + continue; + n += p->nStdStateFreqs; + } + + stdStateFreqsRowSize = n; + + /* allocate space */ + if (memAllocs[ALLOC_STDSTATEFREQS] == YES) + { + free (stdStateFreqs); + stdStateFreqs = NULL; + memAllocs[ALLOC_STDSTATEFREQS] = NO; + } + stdStateFreqs = (MrBFlt *) SafeCalloc (n * 2 * numGlobalChains, sizeof (MrBFlt)); + if (!stdStateFreqs) + { + MrBayesPrint ("%s Problem allocating stdStateFreqs in ProcessStdChars\n", spacer); + return (ERROR); + } + else + memAllocs[ALLOC_STDSTATEFREQS] = YES; + + /* set pointers */ + for (k=n=0; kparamType != P_PI || modelParams[p->relParts[0]].dataType != STANDARD) + continue; + p->stdStateFreqs = stdStateFreqs + n; + n += p->nStdStateFreqs; + } + + FillStdStateFreqs (0 , numGlobalChains, seed); + + return (NO_ERROR); +} + + +int SetAARates (void) +{ + int i, j; + MrBFlt diff, sum, scaler; + + /* A R N D C Q E G H I L K M F P S T W Y V */ + + /* jones */ + aaJones[ 0][ 0] = 0; aaJones[ 0][ 1] = 58; aaJones[ 0][ 2] = 54; aaJones[ 0][ 3] = 81; aaJones[ 0][ 4] = 56; + aaJones[ 0][ 5] = 57; aaJones[ 0][ 6] = 105; aaJones[ 0][ 7] = 179; aaJones[ 0][ 8] = 27; aaJones[ 0][ 9] = 36; + aaJones[ 0][10] = 30; aaJones[ 0][11] = 35; aaJones[ 0][12] = 54; aaJones[ 0][13] = 15; aaJones[ 0][14] = 194; + aaJones[ 0][15] = 378; aaJones[ 0][16] = 475; aaJones[ 0][17] = 9; aaJones[ 0][18] = 11; aaJones[ 0][19] = 298; + aaJones[ 1][ 0] = 58; aaJones[ 1][ 1] = 0; aaJones[ 1][ 2] = 45; aaJones[ 1][ 3] = 16; aaJones[ 1][ 4] = 113; + aaJones[ 1][ 5] = 310; aaJones[ 1][ 6] = 29; aaJones[ 1][ 7] = 137; aaJones[ 1][ 8] = 328; aaJones[ 1][ 9] = 22; + aaJones[ 1][10] = 38; aaJones[ 1][11] = 646; aaJones[ 1][12] = 44; aaJones[ 1][13] = 5; aaJones[ 1][14] = 74; + aaJones[ 1][15] = 101; aaJones[ 1][16] = 64; aaJones[ 1][17] = 126; aaJones[ 1][18] = 20; aaJones[ 1][19] = 17; + aaJones[ 2][ 0] = 54; aaJones[ 2][ 1] = 45; aaJones[ 2][ 2] = 0; aaJones[ 2][ 3] = 528; aaJones[ 2][ 4] = 34; + aaJones[ 2][ 5] = 86; aaJones[ 2][ 6] = 58; aaJones[ 2][ 7] = 81; aaJones[ 2][ 8] = 391; aaJones[ 2][ 9] = 47; + aaJones[ 2][10] = 12; aaJones[ 2][11] = 263; aaJones[ 2][12] = 30; aaJones[ 2][13] = 10; aaJones[ 2][14] = 15; + aaJones[ 2][15] = 503; aaJones[ 2][16] = 232; aaJones[ 2][17] = 8; aaJones[ 2][18] = 70; aaJones[ 2][19] = 16; + aaJones[ 3][ 0] = 81; aaJones[ 3][ 1] = 16; aaJones[ 3][ 2] = 528; aaJones[ 3][ 3] = 0; aaJones[ 3][ 4] = 10; + aaJones[ 3][ 5] = 49; aaJones[ 3][ 6] = 767; aaJones[ 3][ 7] = 130; aaJones[ 3][ 8] = 112; aaJones[ 3][ 9] = 11; + aaJones[ 3][10] = 7; aaJones[ 3][11] = 26; aaJones[ 3][12] = 15; aaJones[ 3][13] = 4; aaJones[ 3][14] = 15; + aaJones[ 3][15] = 59; aaJones[ 3][16] = 38; aaJones[ 3][17] = 4; aaJones[ 3][18] = 46; aaJones[ 3][19] = 31; + aaJones[ 4][ 0] = 56; aaJones[ 4][ 1] = 113; aaJones[ 4][ 2] = 34; aaJones[ 4][ 3] = 10; aaJones[ 4][ 4] = 0; + aaJones[ 4][ 5] = 9; aaJones[ 4][ 6] = 5; aaJones[ 4][ 7] = 59; aaJones[ 4][ 8] = 69; aaJones[ 4][ 9] = 17; + aaJones[ 4][10] = 23; aaJones[ 4][11] = 7; aaJones[ 4][12] = 31; aaJones[ 4][13] = 78; aaJones[ 4][14] = 14; + aaJones[ 4][15] = 223; aaJones[ 4][16] = 42; aaJones[ 4][17] = 115; aaJones[ 4][18] = 209; aaJones[ 4][19] = 62; + aaJones[ 5][ 0] = 57; aaJones[ 5][ 1] = 310; aaJones[ 5][ 2] = 86; aaJones[ 5][ 3] = 49; aaJones[ 5][ 4] = 9; + aaJones[ 5][ 5] = 0; aaJones[ 5][ 6] = 323; aaJones[ 5][ 7] = 26; aaJones[ 5][ 8] = 597; aaJones[ 5][ 9] = 9; + aaJones[ 5][10] = 72; aaJones[ 5][11] = 292; aaJones[ 5][12] = 43; aaJones[ 5][13] = 4; aaJones[ 5][14] = 164; + aaJones[ 5][15] = 53; aaJones[ 5][16] = 51; aaJones[ 5][17] = 18; aaJones[ 5][18] = 24; aaJones[ 5][19] = 20; + aaJones[ 6][ 0] = 105; aaJones[ 6][ 1] = 29; aaJones[ 6][ 2] = 58; aaJones[ 6][ 3] = 767; aaJones[ 6][ 4] = 5; + aaJones[ 6][ 5] = 323; aaJones[ 6][ 6] = 0; aaJones[ 6][ 7] = 119; aaJones[ 6][ 8] = 26; aaJones[ 6][ 9] = 12; + aaJones[ 6][10] = 9; aaJones[ 6][11] = 181; aaJones[ 6][12] = 18; aaJones[ 6][13] = 5; aaJones[ 6][14] = 18; + aaJones[ 6][15] = 30; aaJones[ 6][16] = 32; aaJones[ 6][17] = 10; aaJones[ 6][18] = 7; aaJones[ 6][19] = 45; + aaJones[ 7][ 0] = 179; aaJones[ 7][ 1] = 137; aaJones[ 7][ 2] = 81; aaJones[ 7][ 3] = 130; aaJones[ 7][ 4] = 59; + aaJones[ 7][ 5] = 26; aaJones[ 7][ 6] = 119; aaJones[ 7][ 7] = 0; aaJones[ 7][ 8] = 23; aaJones[ 7][ 9] = 6; + aaJones[ 7][10] = 6; aaJones[ 7][11] = 27; aaJones[ 7][12] = 14; aaJones[ 7][13] = 5; aaJones[ 7][14] = 24; + aaJones[ 7][15] = 201; aaJones[ 7][16] = 33; aaJones[ 7][17] = 55; aaJones[ 7][18] = 8; aaJones[ 7][19] = 47; + aaJones[ 8][ 0] = 27; aaJones[ 8][ 1] = 328; aaJones[ 8][ 2] = 391; aaJones[ 8][ 3] = 112; aaJones[ 8][ 4] = 69; + aaJones[ 8][ 5] = 597; aaJones[ 8][ 6] = 26; aaJones[ 8][ 7] = 23; aaJones[ 8][ 8] = 0; aaJones[ 8][ 9] = 16; + aaJones[ 8][10] = 56; aaJones[ 8][11] = 45; aaJones[ 8][12] = 33; aaJones[ 8][13] = 40; aaJones[ 8][14] = 115; + aaJones[ 8][15] = 73; aaJones[ 8][16] = 46; aaJones[ 8][17] = 8; aaJones[ 8][18] = 573; aaJones[ 8][19] = 11; + aaJones[ 9][ 0] = 36; aaJones[ 9][ 1] = 22; aaJones[ 9][ 2] = 47; aaJones[ 9][ 3] = 11; aaJones[ 9][ 4] = 17; + aaJones[ 9][ 5] = 9; aaJones[ 9][ 6] = 12; aaJones[ 9][ 7] = 6; aaJones[ 9][ 8] = 16; aaJones[ 9][ 9] = 0; + aaJones[ 9][10] = 229; aaJones[ 9][11] = 21; aaJones[ 9][12] = 479; aaJones[ 9][13] = 89; aaJones[ 9][14] = 10; + aaJones[ 9][15] = 40; aaJones[ 9][16] = 245; aaJones[ 9][17] = 9; aaJones[ 9][18] = 32; aaJones[ 9][19] = 961; + aaJones[10][ 0] = 30; aaJones[10][ 1] = 38; aaJones[10][ 2] = 12; aaJones[10][ 3] = 7; aaJones[10][ 4] = 23; + aaJones[10][ 5] = 72; aaJones[10][ 6] = 9; aaJones[10][ 7] = 6; aaJones[10][ 8] = 56; aaJones[10][ 9] = 229; + aaJones[10][10] = 0; aaJones[10][11] = 14; aaJones[10][12] = 388; aaJones[10][13] = 248; aaJones[10][14] = 102; + aaJones[10][15] = 59; aaJones[10][16] = 25; aaJones[10][17] = 52; aaJones[10][18] = 24; aaJones[10][19] = 180; + aaJones[11][ 0] = 35; aaJones[11][ 1] = 646; aaJones[11][ 2] = 263; aaJones[11][ 3] = 26; aaJones[11][ 4] = 7; + aaJones[11][ 5] = 292; aaJones[11][ 6] = 181; aaJones[11][ 7] = 27; aaJones[11][ 8] = 45; aaJones[11][ 9] = 21; + aaJones[11][10] = 14; aaJones[11][11] = 0; aaJones[11][12] = 65; aaJones[11][13] = 4; aaJones[11][14] = 21; + aaJones[11][15] = 47; aaJones[11][16] = 103; aaJones[11][17] = 10; aaJones[11][18] = 8; aaJones[11][19] = 14; + aaJones[12][ 0] = 54; aaJones[12][ 1] = 44; aaJones[12][ 2] = 30; aaJones[12][ 3] = 15; aaJones[12][ 4] = 31; + aaJones[12][ 5] = 43; aaJones[12][ 6] = 18; aaJones[12][ 7] = 14; aaJones[12][ 8] = 33; aaJones[12][ 9] = 479; + aaJones[12][10] = 388; aaJones[12][11] = 65; aaJones[12][12] = 0; aaJones[12][13] = 43; aaJones[12][14] = 16; + aaJones[12][15] = 29; aaJones[12][16] = 226; aaJones[12][17] = 24; aaJones[12][18] = 18; aaJones[12][19] = 323; + aaJones[13][ 0] = 15; aaJones[13][ 1] = 5; aaJones[13][ 2] = 10; aaJones[13][ 3] = 4; aaJones[13][ 4] = 78; + aaJones[13][ 5] = 4; aaJones[13][ 6] = 5; aaJones[13][ 7] = 5; aaJones[13][ 8] = 40; aaJones[13][ 9] = 89; + aaJones[13][10] = 248; aaJones[13][11] = 4; aaJones[13][12] = 43; aaJones[13][13] = 0; aaJones[13][14] = 17; + aaJones[13][15] = 92; aaJones[13][16] = 12; aaJones[13][17] = 53; aaJones[13][18] = 536; aaJones[13][19] = 62; + aaJones[14][ 0] = 194; aaJones[14][ 1] = 74; aaJones[14][ 2] = 15; aaJones[14][ 3] = 15; aaJones[14][ 4] = 14; + aaJones[14][ 5] = 164; aaJones[14][ 6] = 18; aaJones[14][ 7] = 24; aaJones[14][ 8] = 115; aaJones[14][ 9] = 10; + aaJones[14][10] = 102; aaJones[14][11] = 21; aaJones[14][12] = 16; aaJones[14][13] = 17; aaJones[14][14] = 0; + aaJones[14][15] = 285; aaJones[14][16] = 118; aaJones[14][17] = 6; aaJones[14][18] = 10; aaJones[14][19] = 23; + aaJones[15][ 0] = 378; aaJones[15][ 1] = 101; aaJones[15][ 2] = 503; aaJones[15][ 3] = 59; aaJones[15][ 4] = 223; + aaJones[15][ 5] = 53; aaJones[15][ 6] = 30; aaJones[15][ 7] = 201; aaJones[15][ 8] = 73; aaJones[15][ 9] = 40; + aaJones[15][10] = 59; aaJones[15][11] = 47; aaJones[15][12] = 29; aaJones[15][13] = 92; aaJones[15][14] = 285; + aaJones[15][15] = 0; aaJones[15][16] = 477; aaJones[15][17] = 35; aaJones[15][18] = 63; aaJones[15][19] = 38; + aaJones[16][ 0] = 475; aaJones[16][ 1] = 64; aaJones[16][ 2] = 232; aaJones[16][ 3] = 38; aaJones[16][ 4] = 42; + aaJones[16][ 5] = 51; aaJones[16][ 6] = 32; aaJones[16][ 7] = 33; aaJones[16][ 8] = 46; aaJones[16][ 9] = 245; + aaJones[16][10] = 25; aaJones[16][11] = 103; aaJones[16][12] = 226; aaJones[16][13] = 12; aaJones[16][14] = 118; + aaJones[16][15] = 477; aaJones[16][16] = 0; aaJones[16][17] = 12; aaJones[16][18] = 21; aaJones[16][19] = 112; + aaJones[17][ 0] = 9; aaJones[17][ 1] = 126; aaJones[17][ 2] = 8; aaJones[17][ 3] = 4; aaJones[17][ 4] = 115; + aaJones[17][ 5] = 18; aaJones[17][ 6] = 10; aaJones[17][ 7] = 55; aaJones[17][ 8] = 8; aaJones[17][ 9] = 9; + aaJones[17][10] = 52; aaJones[17][11] = 10; aaJones[17][12] = 24; aaJones[17][13] = 53; aaJones[17][14] = 6; + aaJones[17][15] = 35; aaJones[17][16] = 12; aaJones[17][17] = 0; aaJones[17][18] = 71; aaJones[17][19] = 25; + aaJones[18][ 0] = 11; aaJones[18][ 1] = 20; aaJones[18][ 2] = 70; aaJones[18][ 3] = 46; aaJones[18][ 4] = 209; + aaJones[18][ 5] = 24; aaJones[18][ 6] = 7; aaJones[18][ 7] = 8; aaJones[18][ 8] = 573; aaJones[18][ 9] = 32; + aaJones[18][10] = 24; aaJones[18][11] = 8; aaJones[18][12] = 18; aaJones[18][13] = 536; aaJones[18][14] = 10; + aaJones[18][15] = 63; aaJones[18][16] = 21; aaJones[18][17] = 71; aaJones[18][18] = 0; aaJones[18][19] = 16; + aaJones[19][ 0] = 298; aaJones[19][ 1] = 17; aaJones[19][ 2] = 16; aaJones[19][ 3] = 31; aaJones[19][ 4] = 62; + aaJones[19][ 5] = 20; aaJones[19][ 6] = 45; aaJones[19][ 7] = 47; aaJones[19][ 8] = 11; aaJones[19][ 9] = 961; + aaJones[19][10] = 180; aaJones[19][11] = 14; aaJones[19][12] = 323; aaJones[19][13] = 62; aaJones[19][14] = 23; + aaJones[19][15] = 38; aaJones[19][16] = 112; aaJones[19][17] = 25; aaJones[19][18] = 16; aaJones[19][19] = 0; + + jonesPi[ 0] = 0.076748; + jonesPi[ 1] = 0.051691; + jonesPi[ 2] = 0.042645; + jonesPi[ 3] = 0.051544; + jonesPi[ 4] = 0.019803; + jonesPi[ 5] = 0.040752; + jonesPi[ 6] = 0.061830; + jonesPi[ 7] = 0.073152; + jonesPi[ 8] = 0.022944; + jonesPi[ 9] = 0.053761; + jonesPi[10] = 0.091904; + jonesPi[11] = 0.058676; + jonesPi[12] = 0.023826; + jonesPi[13] = 0.040126; + jonesPi[14] = 0.050901; + jonesPi[15] = 0.068765; + jonesPi[16] = 0.058565; + jonesPi[17] = 0.014261; + jonesPi[18] = 0.032102; + jonesPi[19] = 0.066005; + + /* dayhoff */ + aaDayhoff[ 0][ 0] = 0; aaDayhoff[ 0][ 1] = 27; aaDayhoff[ 0][ 2] = 98; aaDayhoff[ 0][ 3] = 120; aaDayhoff[ 0][ 4] = 36; + aaDayhoff[ 0][ 5] = 89; aaDayhoff[ 0][ 6] = 198; aaDayhoff[ 0][ 7] = 240; aaDayhoff[ 0][ 8] = 23; aaDayhoff[ 0][ 9] = 65; + aaDayhoff[ 0][10] = 41; aaDayhoff[ 0][11] = 26; aaDayhoff[ 0][12] = 72; aaDayhoff[ 0][13] = 18; aaDayhoff[ 0][14] = 250; + aaDayhoff[ 0][15] = 409; aaDayhoff[ 0][16] = 371; aaDayhoff[ 0][17] = 0; aaDayhoff[ 0][18] = 24; aaDayhoff[ 0][19] = 208; + aaDayhoff[ 1][ 0] = 27; aaDayhoff[ 1][ 1] = 0; aaDayhoff[ 1][ 2] = 32; aaDayhoff[ 1][ 3] = 0; aaDayhoff[ 1][ 4] = 23; + aaDayhoff[ 1][ 5] = 246; aaDayhoff[ 1][ 6] = 1; aaDayhoff[ 1][ 7] = 9; aaDayhoff[ 1][ 8] = 240; aaDayhoff[ 1][ 9] = 64; + aaDayhoff[ 1][10] = 15; aaDayhoff[ 1][11] = 464; aaDayhoff[ 1][12] = 90; aaDayhoff[ 1][13] = 14; aaDayhoff[ 1][14] = 103; + aaDayhoff[ 1][15] = 154; aaDayhoff[ 1][16] = 26; aaDayhoff[ 1][17] = 201; aaDayhoff[ 1][18] = 8; aaDayhoff[ 1][19] = 24; + aaDayhoff[ 2][ 0] = 98; aaDayhoff[ 2][ 1] = 32; aaDayhoff[ 2][ 2] = 0; aaDayhoff[ 2][ 3] = 905; aaDayhoff[ 2][ 4] = 0; + aaDayhoff[ 2][ 5] = 103; aaDayhoff[ 2][ 6] = 148; aaDayhoff[ 2][ 7] = 139; aaDayhoff[ 2][ 8] = 535; aaDayhoff[ 2][ 9] = 77; + aaDayhoff[ 2][10] = 34; aaDayhoff[ 2][11] = 318; aaDayhoff[ 2][12] = 1; aaDayhoff[ 2][13] = 14; aaDayhoff[ 2][14] = 42; + aaDayhoff[ 2][15] = 495; aaDayhoff[ 2][16] = 229; aaDayhoff[ 2][17] = 23; aaDayhoff[ 2][18] = 95; aaDayhoff[ 2][19] = 15; + aaDayhoff[ 3][ 0] = 120; aaDayhoff[ 3][ 1] = 0; aaDayhoff[ 3][ 2] = 905; aaDayhoff[ 3][ 3] = 0; aaDayhoff[ 3][ 4] = 0; + aaDayhoff[ 3][ 5] = 134; aaDayhoff[ 3][ 6] = 1153; aaDayhoff[ 3][ 7] = 125; aaDayhoff[ 3][ 8] = 86; aaDayhoff[ 3][ 9] = 24; + aaDayhoff[ 3][10] = 0; aaDayhoff[ 3][11] = 71; aaDayhoff[ 3][12] = 0; aaDayhoff[ 3][13] = 0; aaDayhoff[ 3][14] = 13; + aaDayhoff[ 3][15] = 95; aaDayhoff[ 3][16] = 66; aaDayhoff[ 3][17] = 0; aaDayhoff[ 3][18] = 0; aaDayhoff[ 3][19] = 18; + aaDayhoff[ 4][ 0] = 36; aaDayhoff[ 4][ 1] = 23; aaDayhoff[ 4][ 2] = 0; aaDayhoff[ 4][ 3] = 0; aaDayhoff[ 4][ 4] = 0; + aaDayhoff[ 4][ 5] = 0; aaDayhoff[ 4][ 6] = 0; aaDayhoff[ 4][ 7] = 11; aaDayhoff[ 4][ 8] = 28; aaDayhoff[ 4][ 9] = 44; + aaDayhoff[ 4][10] = 0; aaDayhoff[ 4][11] = 0; aaDayhoff[ 4][12] = 0; aaDayhoff[ 4][13] = 0; aaDayhoff[ 4][14] = 19; + aaDayhoff[ 4][15] = 161; aaDayhoff[ 4][16] = 16; aaDayhoff[ 4][17] = 0; aaDayhoff[ 4][18] = 96; aaDayhoff[ 4][19] = 49; + aaDayhoff[ 5][ 0] = 89; aaDayhoff[ 5][ 1] = 246; aaDayhoff[ 5][ 2] = 103; aaDayhoff[ 5][ 3] = 134; aaDayhoff[ 5][ 4] = 0; + aaDayhoff[ 5][ 5] = 0; aaDayhoff[ 5][ 6] = 716; aaDayhoff[ 5][ 7] = 28; aaDayhoff[ 5][ 8] = 606; aaDayhoff[ 5][ 9] = 18; + aaDayhoff[ 5][10] = 73; aaDayhoff[ 5][11] = 153; aaDayhoff[ 5][12] = 114; aaDayhoff[ 5][13] = 0; aaDayhoff[ 5][14] = 153; + aaDayhoff[ 5][15] = 56; aaDayhoff[ 5][16] = 53; aaDayhoff[ 5][17] = 0; aaDayhoff[ 5][18] = 0; aaDayhoff[ 5][19] = 35; + aaDayhoff[ 6][ 0] = 198; aaDayhoff[ 6][ 1] = 1; aaDayhoff[ 6][ 2] = 148; aaDayhoff[ 6][ 3] = 1153; aaDayhoff[ 6][ 4] = 0; + aaDayhoff[ 6][ 5] = 716; aaDayhoff[ 6][ 6] = 0; aaDayhoff[ 6][ 7] = 81; aaDayhoff[ 6][ 8] = 43; aaDayhoff[ 6][ 9] = 61; + aaDayhoff[ 6][10] = 11; aaDayhoff[ 6][11] = 83; aaDayhoff[ 6][12] = 30; aaDayhoff[ 6][13] = 0; aaDayhoff[ 6][14] = 51; + aaDayhoff[ 6][15] = 79; aaDayhoff[ 6][16] = 34; aaDayhoff[ 6][17] = 0; aaDayhoff[ 6][18] = 22; aaDayhoff[ 6][19] = 37; + aaDayhoff[ 7][ 0] = 240; aaDayhoff[ 7][ 1] = 9; aaDayhoff[ 7][ 2] = 139; aaDayhoff[ 7][ 3] = 125; aaDayhoff[ 7][ 4] = 11; + aaDayhoff[ 7][ 5] = 28; aaDayhoff[ 7][ 6] = 81; aaDayhoff[ 7][ 7] = 0; aaDayhoff[ 7][ 8] = 10; aaDayhoff[ 7][ 9] = 0; + aaDayhoff[ 7][10] = 7; aaDayhoff[ 7][11] = 27; aaDayhoff[ 7][12] = 17; aaDayhoff[ 7][13] = 15; aaDayhoff[ 7][14] = 34; + aaDayhoff[ 7][15] = 234; aaDayhoff[ 7][16] = 30; aaDayhoff[ 7][17] = 0; aaDayhoff[ 7][18] = 0; aaDayhoff[ 7][19] = 54; + aaDayhoff[ 8][ 0] = 23; aaDayhoff[ 8][ 1] = 240; aaDayhoff[ 8][ 2] = 535; aaDayhoff[ 8][ 3] = 86; aaDayhoff[ 8][ 4] = 28; + aaDayhoff[ 8][ 5] = 606; aaDayhoff[ 8][ 6] = 43; aaDayhoff[ 8][ 7] = 10; aaDayhoff[ 8][ 8] = 0; aaDayhoff[ 8][ 9] = 7; + aaDayhoff[ 8][10] = 44; aaDayhoff[ 8][11] = 26; aaDayhoff[ 8][12] = 0; aaDayhoff[ 8][13] = 48; aaDayhoff[ 8][14] = 94; + aaDayhoff[ 8][15] = 35; aaDayhoff[ 8][16] = 22; aaDayhoff[ 8][17] = 27; aaDayhoff[ 8][18] = 127; aaDayhoff[ 8][19] = 44; + aaDayhoff[ 9][ 0] = 65; aaDayhoff[ 9][ 1] = 64; aaDayhoff[ 9][ 2] = 77; aaDayhoff[ 9][ 3] = 24; aaDayhoff[ 9][ 4] = 44; + aaDayhoff[ 9][ 5] = 18; aaDayhoff[ 9][ 6] = 61; aaDayhoff[ 9][ 7] = 0; aaDayhoff[ 9][ 8] = 7; aaDayhoff[ 9][ 9] = 0; + aaDayhoff[ 9][10] = 257; aaDayhoff[ 9][11] = 46; aaDayhoff[ 9][12] = 336; aaDayhoff[ 9][13] = 196; aaDayhoff[ 9][14] = 12; + aaDayhoff[ 9][15] = 24; aaDayhoff[ 9][16] = 192; aaDayhoff[ 9][17] = 0; aaDayhoff[ 9][18] = 37; aaDayhoff[ 9][19] = 889; + aaDayhoff[10][ 0] = 41; aaDayhoff[10][ 1] = 15; aaDayhoff[10][ 2] = 34; aaDayhoff[10][ 3] = 0; aaDayhoff[10][ 4] = 0; + aaDayhoff[10][ 5] = 73; aaDayhoff[10][ 6] = 11; aaDayhoff[10][ 7] = 7; aaDayhoff[10][ 8] = 44; aaDayhoff[10][ 9] = 257; + aaDayhoff[10][10] = 0; aaDayhoff[10][11] = 18; aaDayhoff[10][12] = 527; aaDayhoff[10][13] = 157; aaDayhoff[10][14] = 32; + aaDayhoff[10][15] = 17; aaDayhoff[10][16] = 33; aaDayhoff[10][17] = 46; aaDayhoff[10][18] = 28; aaDayhoff[10][19] = 175; + aaDayhoff[11][ 0] = 26; aaDayhoff[11][ 1] = 464; aaDayhoff[11][ 2] = 318; aaDayhoff[11][ 3] = 71; aaDayhoff[11][ 4] = 0; + aaDayhoff[11][ 5] = 153; aaDayhoff[11][ 6] = 83; aaDayhoff[11][ 7] = 27; aaDayhoff[11][ 8] = 26; aaDayhoff[11][ 9] = 46; + aaDayhoff[11][10] = 18; aaDayhoff[11][11] = 0; aaDayhoff[11][12] = 243; aaDayhoff[11][13] = 0; aaDayhoff[11][14] = 33; + aaDayhoff[11][15] = 96; aaDayhoff[11][16] = 136; aaDayhoff[11][17] = 0; aaDayhoff[11][18] = 13; aaDayhoff[11][19] = 10; + aaDayhoff[12][ 0] = 72; aaDayhoff[12][ 1] = 90; aaDayhoff[12][ 2] = 1; aaDayhoff[12][ 3] = 0; aaDayhoff[12][ 4] = 0; + aaDayhoff[12][ 5] = 114; aaDayhoff[12][ 6] = 30; aaDayhoff[12][ 7] = 17; aaDayhoff[12][ 8] = 0; aaDayhoff[12][ 9] = 336; + aaDayhoff[12][10] = 527; aaDayhoff[12][11] = 243; aaDayhoff[12][12] = 0; aaDayhoff[12][13] = 92; aaDayhoff[12][14] = 17; + aaDayhoff[12][15] = 62; aaDayhoff[12][16] = 104; aaDayhoff[12][17] = 0; aaDayhoff[12][18] = 0; aaDayhoff[12][19] = 258; + aaDayhoff[13][ 0] = 18; aaDayhoff[13][ 1] = 14; aaDayhoff[13][ 2] = 14; aaDayhoff[13][ 3] = 0; aaDayhoff[13][ 4] = 0; + aaDayhoff[13][ 5] = 0; aaDayhoff[13][ 6] = 0; aaDayhoff[13][ 7] = 15; aaDayhoff[13][ 8] = 48; aaDayhoff[13][ 9] = 196; + aaDayhoff[13][10] = 157; aaDayhoff[13][11] = 0; aaDayhoff[13][12] = 92; aaDayhoff[13][13] = 0; aaDayhoff[13][14] = 11; + aaDayhoff[13][15] = 46; aaDayhoff[13][16] = 13; aaDayhoff[13][17] = 76; aaDayhoff[13][18] = 698; aaDayhoff[13][19] = 12; + aaDayhoff[14][ 0] = 250; aaDayhoff[14][ 1] = 103; aaDayhoff[14][ 2] = 42; aaDayhoff[14][ 3] = 13; aaDayhoff[14][ 4] = 19; + aaDayhoff[14][ 5] = 153; aaDayhoff[14][ 6] = 51; aaDayhoff[14][ 7] = 34; aaDayhoff[14][ 8] = 94; aaDayhoff[14][ 9] = 12; + aaDayhoff[14][10] = 32; aaDayhoff[14][11] = 33; aaDayhoff[14][12] = 17; aaDayhoff[14][13] = 11; aaDayhoff[14][14] = 0; + aaDayhoff[14][15] = 245; aaDayhoff[14][16] = 78; aaDayhoff[14][17] = 0; aaDayhoff[14][18] = 0; aaDayhoff[14][19] = 48; + aaDayhoff[15][ 0] = 409; aaDayhoff[15][ 1] = 154; aaDayhoff[15][ 2] = 495; aaDayhoff[15][ 3] = 95; aaDayhoff[15][ 4] = 161; + aaDayhoff[15][ 5] = 56; aaDayhoff[15][ 6] = 79; aaDayhoff[15][ 7] = 234; aaDayhoff[15][ 8] = 35; aaDayhoff[15][ 9] = 24; + aaDayhoff[15][10] = 17; aaDayhoff[15][11] = 96; aaDayhoff[15][12] = 62; aaDayhoff[15][13] = 46; aaDayhoff[15][14] = 245; + aaDayhoff[15][15] = 0; aaDayhoff[15][16] = 550; aaDayhoff[15][17] = 75; aaDayhoff[15][18] = 34; aaDayhoff[15][19] = 30; + aaDayhoff[16][ 0] = 371; aaDayhoff[16][ 1] = 26; aaDayhoff[16][ 2] = 229; aaDayhoff[16][ 3] = 66; aaDayhoff[16][ 4] = 16; + aaDayhoff[16][ 5] = 53; aaDayhoff[16][ 6] = 34; aaDayhoff[16][ 7] = 30; aaDayhoff[16][ 8] = 22; aaDayhoff[16][ 9] = 192; + aaDayhoff[16][10] = 33; aaDayhoff[16][11] = 136; aaDayhoff[16][12] = 104; aaDayhoff[16][13] = 13; aaDayhoff[16][14] = 78; + aaDayhoff[16][15] = 550; aaDayhoff[16][16] = 0; aaDayhoff[16][17] = 0; aaDayhoff[16][18] = 42; aaDayhoff[16][19] = 157; + aaDayhoff[17][ 0] = 0; aaDayhoff[17][ 1] = 201; aaDayhoff[17][ 2] = 23; aaDayhoff[17][ 3] = 0; aaDayhoff[17][ 4] = 0; + aaDayhoff[17][ 5] = 0; aaDayhoff[17][ 6] = 0; aaDayhoff[17][ 7] = 0; aaDayhoff[17][ 8] = 27; aaDayhoff[17][ 9] = 0; + aaDayhoff[17][10] = 46; aaDayhoff[17][11] = 0; aaDayhoff[17][12] = 0; aaDayhoff[17][13] = 76; aaDayhoff[17][14] = 0; + aaDayhoff[17][15] = 75; aaDayhoff[17][16] = 0; aaDayhoff[17][17] = 0; aaDayhoff[17][18] = 61; aaDayhoff[17][19] = 0; + aaDayhoff[18][ 0] = 24; aaDayhoff[18][ 1] = 8; aaDayhoff[18][ 2] = 95; aaDayhoff[18][ 3] = 0; aaDayhoff[18][ 4] = 96; + aaDayhoff[18][ 5] = 0; aaDayhoff[18][ 6] = 22; aaDayhoff[18][ 7] = 0; aaDayhoff[18][ 8] = 127; aaDayhoff[18][ 9] = 37; + aaDayhoff[18][10] = 28; aaDayhoff[18][11] = 13; aaDayhoff[18][12] = 0; aaDayhoff[18][13] = 698; aaDayhoff[18][14] = 0; + aaDayhoff[18][15] = 34; aaDayhoff[18][16] = 42; aaDayhoff[18][17] = 61; aaDayhoff[18][18] = 0; aaDayhoff[18][19] = 28; + aaDayhoff[19][ 0] = 208; aaDayhoff[19][ 1] = 24; aaDayhoff[19][ 2] = 15; aaDayhoff[19][ 3] = 18; aaDayhoff[19][ 4] = 49; + aaDayhoff[19][ 5] = 35; aaDayhoff[19][ 6] = 37; aaDayhoff[19][ 7] = 54; aaDayhoff[19][ 8] = 44; aaDayhoff[19][ 9] = 889; + aaDayhoff[19][10] = 175; aaDayhoff[19][11] = 10; aaDayhoff[19][12] = 258; aaDayhoff[19][13] = 12; aaDayhoff[19][14] = 48; + aaDayhoff[19][15] = 30; aaDayhoff[19][16] = 157; aaDayhoff[19][17] = 0; aaDayhoff[19][18] = 28; aaDayhoff[19][19] = 0; + + dayhoffPi[ 0] = 0.087127; + dayhoffPi[ 1] = 0.040904; + dayhoffPi[ 2] = 0.040432; + dayhoffPi[ 3] = 0.046872; + dayhoffPi[ 4] = 0.033474; + dayhoffPi[ 5] = 0.038255; + dayhoffPi[ 6] = 0.049530; + dayhoffPi[ 7] = 0.088612; + dayhoffPi[ 8] = 0.033618; + dayhoffPi[ 9] = 0.036886; + dayhoffPi[10] = 0.085357; + dayhoffPi[11] = 0.080482; + dayhoffPi[12] = 0.014753; + dayhoffPi[13] = 0.039772; + dayhoffPi[14] = 0.050680; + dayhoffPi[15] = 0.069577; + dayhoffPi[16] = 0.058542; + dayhoffPi[17] = 0.010494; + dayhoffPi[18] = 0.029916; + dayhoffPi[19] = 0.064718; + + /* mtrev24 */ + aaMtrev24[ 0][ 0] = 0.00; aaMtrev24[ 0][ 1] = 23.18; aaMtrev24[ 0][ 2] = 26.95; aaMtrev24[ 0][ 3] = 17.67; aaMtrev24[ 0][ 4] = 59.93; + aaMtrev24[ 0][ 5] = 1.90; aaMtrev24[ 0][ 6] = 9.77; aaMtrev24[ 0][ 7] = 120.71; aaMtrev24[ 0][ 8] = 13.90; aaMtrev24[ 0][ 9] = 96.49; + aaMtrev24[ 0][10] = 25.46; aaMtrev24[ 0][11] = 8.36; aaMtrev24[ 0][12] = 141.88; aaMtrev24[ 0][13] = 6.37; aaMtrev24[ 0][14] = 54.31; + aaMtrev24[ 0][15] = 387.86; aaMtrev24[ 0][16] = 480.72; aaMtrev24[ 0][17] = 1.90; aaMtrev24[ 0][18] = 6.48; aaMtrev24[ 0][19] = 195.06; + aaMtrev24[ 1][ 0] = 23.18; aaMtrev24[ 1][ 1] = 0.00; aaMtrev24[ 1][ 2] = 13.24; aaMtrev24[ 1][ 3] = 1.90; aaMtrev24[ 1][ 4] = 103.33; + aaMtrev24[ 1][ 5] = 220.99; aaMtrev24[ 1][ 6] = 1.90; aaMtrev24[ 1][ 7] = 23.03; aaMtrev24[ 1][ 8] = 165.23; aaMtrev24[ 1][ 9] = 1.90; + aaMtrev24[ 1][10] = 15.58; aaMtrev24[ 1][11] = 141.40; aaMtrev24[ 1][12] = 1.90; aaMtrev24[ 1][13] = 4.69; aaMtrev24[ 1][14] = 23.64; + aaMtrev24[ 1][15] = 6.04; aaMtrev24[ 1][16] = 2.08; aaMtrev24[ 1][17] = 21.95; aaMtrev24[ 1][18] = 1.90; aaMtrev24[ 1][19] = 7.64; + aaMtrev24[ 2][ 0] = 26.95; aaMtrev24[ 2][ 1] = 13.24; aaMtrev24[ 2][ 2] = 0.00; aaMtrev24[ 2][ 3] = 794.38; aaMtrev24[ 2][ 4] = 58.94; + aaMtrev24[ 2][ 5] = 173.56; aaMtrev24[ 2][ 6] = 63.05; aaMtrev24[ 2][ 7] = 53.30; aaMtrev24[ 2][ 8] = 496.13; aaMtrev24[ 2][ 9] = 27.10; + aaMtrev24[ 2][10] = 15.16; aaMtrev24[ 2][11] = 608.70; aaMtrev24[ 2][12] = 65.41; aaMtrev24[ 2][13] = 15.20; aaMtrev24[ 2][14] = 73.31; + aaMtrev24[ 2][15] = 494.39; aaMtrev24[ 2][16] = 238.46; aaMtrev24[ 2][17] = 10.68; aaMtrev24[ 2][18] = 191.36; aaMtrev24[ 2][19] = 1.90; + aaMtrev24[ 3][ 0] = 17.67; aaMtrev24[ 3][ 1] = 1.90; aaMtrev24[ 3][ 2] = 794.38; aaMtrev24[ 3][ 3] = 0.00; aaMtrev24[ 3][ 4] = 1.90; + aaMtrev24[ 3][ 5] = 55.28; aaMtrev24[ 3][ 6] = 583.55; aaMtrev24[ 3][ 7] = 56.77; aaMtrev24[ 3][ 8] = 113.99; aaMtrev24[ 3][ 9] = 4.34; + aaMtrev24[ 3][10] = 1.90; aaMtrev24[ 3][11] = 2.31; aaMtrev24[ 3][12] = 1.90; aaMtrev24[ 3][13] = 4.98; aaMtrev24[ 3][14] = 13.43; + aaMtrev24[ 3][15] = 69.02; aaMtrev24[ 3][16] = 28.01; aaMtrev24[ 3][17] = 19.86; aaMtrev24[ 3][18] = 21.21; aaMtrev24[ 3][19] = 1.90; + aaMtrev24[ 4][ 0] = 59.93; aaMtrev24[ 4][ 1] = 103.33; aaMtrev24[ 4][ 2] = 58.94; aaMtrev24[ 4][ 3] = 1.90; aaMtrev24[ 4][ 4] = 0.00; + aaMtrev24[ 4][ 5] = 75.24; aaMtrev24[ 4][ 6] = 1.90; aaMtrev24[ 4][ 7] = 30.71; aaMtrev24[ 4][ 8] = 141.49; aaMtrev24[ 4][ 9] = 62.73; + aaMtrev24[ 4][10] = 25.65; aaMtrev24[ 4][11] = 1.90; aaMtrev24[ 4][12] = 6.18; aaMtrev24[ 4][13] = 70.80; aaMtrev24[ 4][14] = 31.26; + aaMtrev24[ 4][15] = 277.05; aaMtrev24[ 4][16] = 179.97; aaMtrev24[ 4][17] = 33.60; aaMtrev24[ 4][18] = 254.77; aaMtrev24[ 4][19] = 1.90; + aaMtrev24[ 5][ 0] = 1.90; aaMtrev24[ 5][ 1] = 220.99; aaMtrev24[ 5][ 2] = 173.56; aaMtrev24[ 5][ 3] = 55.28; aaMtrev24[ 5][ 4] = 75.24; + aaMtrev24[ 5][ 5] = 0.00; aaMtrev24[ 5][ 6] = 313.56; aaMtrev24[ 5][ 7] = 6.75; aaMtrev24[ 5][ 8] = 582.40; aaMtrev24[ 5][ 9] = 8.34; + aaMtrev24[ 5][10] = 39.70; aaMtrev24[ 5][11] = 465.58; aaMtrev24[ 5][12] = 47.37; aaMtrev24[ 5][13] = 19.11; aaMtrev24[ 5][14] = 137.29; + aaMtrev24[ 5][15] = 54.11; aaMtrev24[ 5][16] = 94.93; aaMtrev24[ 5][17] = 1.90; aaMtrev24[ 5][18] = 38.82; aaMtrev24[ 5][19] = 19.00; + aaMtrev24[ 6][ 0] = 9.77; aaMtrev24[ 6][ 1] = 1.90; aaMtrev24[ 6][ 2] = 63.05; aaMtrev24[ 6][ 3] = 583.55; aaMtrev24[ 6][ 4] = 1.90; + aaMtrev24[ 6][ 5] = 313.56; aaMtrev24[ 6][ 6] = 0.00; aaMtrev24[ 6][ 7] = 28.28; aaMtrev24[ 6][ 8] = 49.12; aaMtrev24[ 6][ 9] = 3.31; + aaMtrev24[ 6][10] = 1.90; aaMtrev24[ 6][11] = 313.86; aaMtrev24[ 6][12] = 1.90; aaMtrev24[ 6][13] = 2.67; aaMtrev24[ 6][14] = 12.83; + aaMtrev24[ 6][15] = 54.71; aaMtrev24[ 6][16] = 14.82; aaMtrev24[ 6][17] = 1.90; aaMtrev24[ 6][18] = 13.12; aaMtrev24[ 6][19] = 21.14; + aaMtrev24[ 7][ 0] = 120.71; aaMtrev24[ 7][ 1] = 23.03; aaMtrev24[ 7][ 2] = 53.30; aaMtrev24[ 7][ 3] = 56.77; aaMtrev24[ 7][ 4] = 30.71; + aaMtrev24[ 7][ 5] = 6.75; aaMtrev24[ 7][ 6] = 28.28; aaMtrev24[ 7][ 7] = 0.00; aaMtrev24[ 7][ 8] = 1.90; aaMtrev24[ 7][ 9] = 5.98; + aaMtrev24[ 7][10] = 2.41; aaMtrev24[ 7][11] = 22.73; aaMtrev24[ 7][12] = 1.90; aaMtrev24[ 7][13] = 1.90; aaMtrev24[ 7][14] = 1.90; + aaMtrev24[ 7][15] = 125.93; aaMtrev24[ 7][16] = 11.17; aaMtrev24[ 7][17] = 10.92; aaMtrev24[ 7][18] = 3.21; aaMtrev24[ 7][19] = 2.53; + aaMtrev24[ 8][ 0] = 13.90; aaMtrev24[ 8][ 1] = 165.23; aaMtrev24[ 8][ 2] = 496.13; aaMtrev24[ 8][ 3] = 113.99; aaMtrev24[ 8][ 4] = 141.49; + aaMtrev24[ 8][ 5] = 582.40; aaMtrev24[ 8][ 6] = 49.12; aaMtrev24[ 8][ 7] = 1.90; aaMtrev24[ 8][ 8] = 0.00; aaMtrev24[ 8][ 9] = 12.26; + aaMtrev24[ 8][10] = 11.49; aaMtrev24[ 8][11] = 127.67; aaMtrev24[ 8][12] = 11.97; aaMtrev24[ 8][13] = 48.16; aaMtrev24[ 8][14] = 60.97; + aaMtrev24[ 8][15] = 77.46; aaMtrev24[ 8][16] = 44.78; aaMtrev24[ 8][17] = 7.08; aaMtrev24[ 8][18] = 670.14; aaMtrev24[ 8][19] = 1.90; + aaMtrev24[ 9][ 0] = 96.49; aaMtrev24[ 9][ 1] = 1.90; aaMtrev24[ 9][ 2] = 27.10; aaMtrev24[ 9][ 3] = 4.34; aaMtrev24[ 9][ 4] = 62.73; + aaMtrev24[ 9][ 5] = 8.34; aaMtrev24[ 9][ 6] = 3.31; aaMtrev24[ 9][ 7] = 5.98; aaMtrev24[ 9][ 8] = 12.26; aaMtrev24[ 9][ 9] = 0.00; + aaMtrev24[ 9][10] = 329.09; aaMtrev24[ 9][11] = 19.57; aaMtrev24[ 9][12] = 517.98; aaMtrev24[ 9][13] = 84.67; aaMtrev24[ 9][14] = 20.63; + aaMtrev24[ 9][15] = 47.70; aaMtrev24[ 9][16] = 368.43; aaMtrev24[ 9][17] = 1.90; aaMtrev24[ 9][18] = 25.01; aaMtrev24[ 9][19] =1222.94; + aaMtrev24[10][ 0] = 25.46; aaMtrev24[10][ 1] = 15.58; aaMtrev24[10][ 2] = 15.16; aaMtrev24[10][ 3] = 1.90; aaMtrev24[10][ 4] = 25.65; + aaMtrev24[10][ 5] = 39.70; aaMtrev24[10][ 6] = 1.90; aaMtrev24[10][ 7] = 2.41; aaMtrev24[10][ 8] = 11.49; aaMtrev24[10][ 9] = 329.09; + aaMtrev24[10][10] = 0.00; aaMtrev24[10][11] = 14.88; aaMtrev24[10][12] = 537.53; aaMtrev24[10][13] = 216.06; aaMtrev24[10][14] = 40.10; + aaMtrev24[10][15] = 73.61; aaMtrev24[10][16] = 126.40; aaMtrev24[10][17] = 32.44; aaMtrev24[10][18] = 44.15; aaMtrev24[10][19] = 91.67; + aaMtrev24[11][ 0] = 8.36; aaMtrev24[11][ 1] = 141.40; aaMtrev24[11][ 2] = 608.70; aaMtrev24[11][ 3] = 2.31; aaMtrev24[11][ 4] = 1.90; + aaMtrev24[11][ 5] = 465.58; aaMtrev24[11][ 6] = 313.86; aaMtrev24[11][ 7] = 22.73; aaMtrev24[11][ 8] = 127.67; aaMtrev24[11][ 9] = 19.57; + aaMtrev24[11][10] = 14.88; aaMtrev24[11][11] = 0.00; aaMtrev24[11][12] = 91.37; aaMtrev24[11][13] = 6.44; aaMtrev24[11][14] = 50.10; + aaMtrev24[11][15] = 105.79; aaMtrev24[11][16] = 136.33; aaMtrev24[11][17] = 24.00; aaMtrev24[11][18] = 51.17; aaMtrev24[11][19] = 1.90; + aaMtrev24[12][ 0] = 141.88; aaMtrev24[12][ 1] = 1.90; aaMtrev24[12][ 2] = 65.41; aaMtrev24[12][ 3] = 1.90; aaMtrev24[12][ 4] = 6.18; + aaMtrev24[12][ 5] = 47.37; aaMtrev24[12][ 6] = 1.90; aaMtrev24[12][ 7] = 1.90; aaMtrev24[12][ 8] = 11.97; aaMtrev24[12][ 9] = 517.98; + aaMtrev24[12][10] = 537.53; aaMtrev24[12][11] = 91.37; aaMtrev24[12][12] = 0.00; aaMtrev24[12][13] = 90.82; aaMtrev24[12][14] = 18.84; + aaMtrev24[12][15] = 111.16; aaMtrev24[12][16] = 528.17; aaMtrev24[12][17] = 21.71; aaMtrev24[12][18] = 39.96; aaMtrev24[12][19] = 387.54; + aaMtrev24[13][ 0] = 6.37; aaMtrev24[13][ 1] = 4.69; aaMtrev24[13][ 2] = 15.20; aaMtrev24[13][ 3] = 4.98; aaMtrev24[13][ 4] = 70.80; + aaMtrev24[13][ 5] = 19.11; aaMtrev24[13][ 6] = 2.67; aaMtrev24[13][ 7] = 1.90; aaMtrev24[13][ 8] = 48.16; aaMtrev24[13][ 9] = 84.67; + aaMtrev24[13][10] = 216.06; aaMtrev24[13][11] = 6.44; aaMtrev24[13][12] = 90.82; aaMtrev24[13][13] = 0.00; aaMtrev24[13][14] = 17.31; + aaMtrev24[13][15] = 64.29; aaMtrev24[13][16] = 33.85; aaMtrev24[13][17] = 7.84; aaMtrev24[13][18] = 465.58; aaMtrev24[13][19] = 6.35; + aaMtrev24[14][ 0] = 54.31; aaMtrev24[14][ 1] = 23.64; aaMtrev24[14][ 2] = 73.31; aaMtrev24[14][ 3] = 13.43; aaMtrev24[14][ 4] = 31.26; + aaMtrev24[14][ 5] = 137.29; aaMtrev24[14][ 6] = 12.83; aaMtrev24[14][ 7] = 1.90; aaMtrev24[14][ 8] = 60.97; aaMtrev24[14][ 9] = 20.63; + aaMtrev24[14][10] = 40.10; aaMtrev24[14][11] = 50.10; aaMtrev24[14][12] = 18.84; aaMtrev24[14][13] = 17.31; aaMtrev24[14][14] = 0.00; + aaMtrev24[14][15] = 169.90; aaMtrev24[14][16] = 128.22; aaMtrev24[14][17] = 4.21; aaMtrev24[14][18] = 16.21; aaMtrev24[14][19] = 8.23; + aaMtrev24[15][ 0] = 387.86; aaMtrev24[15][ 1] = 6.04; aaMtrev24[15][ 2] = 494.39; aaMtrev24[15][ 3] = 69.02; aaMtrev24[15][ 4] = 277.05; + aaMtrev24[15][ 5] = 54.11; aaMtrev24[15][ 6] = 54.71; aaMtrev24[15][ 7] = 125.93; aaMtrev24[15][ 8] = 77.46; aaMtrev24[15][ 9] = 47.70; + aaMtrev24[15][10] = 73.61; aaMtrev24[15][11] = 105.79; aaMtrev24[15][12] = 111.16; aaMtrev24[15][13] = 64.29; aaMtrev24[15][14] = 169.90; + aaMtrev24[15][15] = 0.00; aaMtrev24[15][16] = 597.21; aaMtrev24[15][17] = 38.58; aaMtrev24[15][18] = 64.92; aaMtrev24[15][19] = 1.90; + aaMtrev24[16][ 0] = 480.72; aaMtrev24[16][ 1] = 2.08; aaMtrev24[16][ 2] = 238.46; aaMtrev24[16][ 3] = 28.01; aaMtrev24[16][ 4] = 179.97; + aaMtrev24[16][ 5] = 94.93; aaMtrev24[16][ 6] = 14.82; aaMtrev24[16][ 7] = 11.17; aaMtrev24[16][ 8] = 44.78; aaMtrev24[16][ 9] = 368.43; + aaMtrev24[16][10] = 126.40; aaMtrev24[16][11] = 136.33; aaMtrev24[16][12] = 528.17; aaMtrev24[16][13] = 33.85; aaMtrev24[16][14] = 128.22; + aaMtrev24[16][15] = 597.21; aaMtrev24[16][16] = 0.00; aaMtrev24[16][17] = 9.99; aaMtrev24[16][18] = 38.73; aaMtrev24[16][19] = 204.54; + aaMtrev24[17][ 0] = 1.90; aaMtrev24[17][ 1] = 21.95; aaMtrev24[17][ 2] = 10.68; aaMtrev24[17][ 3] = 19.86; aaMtrev24[17][ 4] = 33.60; + aaMtrev24[17][ 5] = 1.90; aaMtrev24[17][ 6] = 1.90; aaMtrev24[17][ 7] = 10.92; aaMtrev24[17][ 8] = 7.08; aaMtrev24[17][ 9] = 1.90; + aaMtrev24[17][10] = 32.44; aaMtrev24[17][11] = 24.00; aaMtrev24[17][12] = 21.71; aaMtrev24[17][13] = 7.84; aaMtrev24[17][14] = 4.21; + aaMtrev24[17][15] = 38.58; aaMtrev24[17][16] = 9.99; aaMtrev24[17][17] = 0.00; aaMtrev24[17][18] = 26.25; aaMtrev24[17][19] = 5.37; + aaMtrev24[18][ 0] = 6.48; aaMtrev24[18][ 1] = 1.90; aaMtrev24[18][ 2] = 191.36; aaMtrev24[18][ 3] = 21.21; aaMtrev24[18][ 4] = 254.77; + aaMtrev24[18][ 5] = 38.82; aaMtrev24[18][ 6] = 13.12; aaMtrev24[18][ 7] = 3.21; aaMtrev24[18][ 8] = 670.14; aaMtrev24[18][ 9] = 25.01; + aaMtrev24[18][10] = 44.15; aaMtrev24[18][11] = 51.17; aaMtrev24[18][12] = 39.96; aaMtrev24[18][13] = 465.58; aaMtrev24[18][14] = 16.21; + aaMtrev24[18][15] = 64.92; aaMtrev24[18][16] = 38.73; aaMtrev24[18][17] = 26.25; aaMtrev24[18][18] = 0.00; aaMtrev24[18][19] = 1.90; + aaMtrev24[19][ 0] = 195.06; aaMtrev24[19][ 1] = 7.64; aaMtrev24[19][ 2] = 1.90; aaMtrev24[19][ 3] = 1.90; aaMtrev24[19][ 4] = 1.90; + aaMtrev24[19][ 5] = 19.00; aaMtrev24[19][ 6] = 21.14; aaMtrev24[19][ 7] = 2.53; aaMtrev24[19][ 8] = 1.90; aaMtrev24[19][ 9] =1222.94; + aaMtrev24[19][10] = 91.67; aaMtrev24[19][11] = 1.90; aaMtrev24[19][12] = 387.54; aaMtrev24[19][13] = 6.35; aaMtrev24[19][14] = 8.23; + aaMtrev24[19][15] = 1.90; aaMtrev24[19][16] = 204.54; aaMtrev24[19][17] = 5.37; aaMtrev24[19][18] = 1.90; aaMtrev24[19][19] = 0.00; + + mtrev24Pi[ 0] = 0.072; + mtrev24Pi[ 1] = 0.019; + mtrev24Pi[ 2] = 0.039; + mtrev24Pi[ 3] = 0.019; + mtrev24Pi[ 4] = 0.006; + mtrev24Pi[ 5] = 0.025; + mtrev24Pi[ 6] = 0.024; + mtrev24Pi[ 7] = 0.056; + mtrev24Pi[ 8] = 0.028; + mtrev24Pi[ 9] = 0.088; + mtrev24Pi[10] = 0.168; + mtrev24Pi[11] = 0.023; + mtrev24Pi[12] = 0.054; + mtrev24Pi[13] = 0.061; + mtrev24Pi[14] = 0.054; + mtrev24Pi[15] = 0.072; + mtrev24Pi[16] = 0.086; + mtrev24Pi[17] = 0.029; + mtrev24Pi[18] = 0.033; + mtrev24Pi[19] = 0.043; + + /* mtmam */ + aaMtmam[ 0][ 0] = 0; aaMtmam[ 0][ 1] = 32; aaMtmam[ 0][ 2] = 2; aaMtmam[ 0][ 3] = 11; aaMtmam[ 0][ 4] = 0; + aaMtmam[ 0][ 5] = 0; aaMtmam[ 0][ 6] = 0; aaMtmam[ 0][ 7] = 78; aaMtmam[ 0][ 8] = 8; aaMtmam[ 0][ 9] = 75; + aaMtmam[ 0][10] = 21; aaMtmam[ 0][11] = 0; aaMtmam[ 0][12] = 76; aaMtmam[ 0][13] = 0; aaMtmam[ 0][14] = 53; + aaMtmam[ 0][15] = 342; aaMtmam[ 0][16] = 681; aaMtmam[ 0][17] = 5; aaMtmam[ 0][18] = 0; aaMtmam[ 0][19] = 398; + aaMtmam[ 1][ 0] = 32; aaMtmam[ 1][ 1] = 0; aaMtmam[ 1][ 2] = 4; aaMtmam[ 1][ 3] = 0; aaMtmam[ 1][ 4] = 186; + aaMtmam[ 1][ 5] = 246; aaMtmam[ 1][ 6] = 0; aaMtmam[ 1][ 7] = 18; aaMtmam[ 1][ 8] = 232; aaMtmam[ 1][ 9] = 0; + aaMtmam[ 1][10] = 6; aaMtmam[ 1][11] = 50; aaMtmam[ 1][12] = 0; aaMtmam[ 1][13] = 0; aaMtmam[ 1][14] = 9; + aaMtmam[ 1][15] = 3; aaMtmam[ 1][16] = 0; aaMtmam[ 1][17] = 16; aaMtmam[ 1][18] = 0; aaMtmam[ 1][19] = 0; + aaMtmam[ 2][ 0] = 2; aaMtmam[ 2][ 1] = 4; aaMtmam[ 2][ 2] = 0; aaMtmam[ 2][ 3] = 864; aaMtmam[ 2][ 4] = 0; + aaMtmam[ 2][ 5] = 8; aaMtmam[ 2][ 6] = 0; aaMtmam[ 2][ 7] = 47; aaMtmam[ 2][ 8] = 458; aaMtmam[ 2][ 9] = 19; + aaMtmam[ 2][10] = 0; aaMtmam[ 2][11] = 408; aaMtmam[ 2][12] = 21; aaMtmam[ 2][13] = 6; aaMtmam[ 2][14] = 33; + aaMtmam[ 2][15] = 446; aaMtmam[ 2][16] = 110; aaMtmam[ 2][17] = 6; aaMtmam[ 2][18] = 156; aaMtmam[ 2][19] = 0; + aaMtmam[ 3][ 0] = 11; aaMtmam[ 3][ 1] = 0; aaMtmam[ 3][ 2] = 864; aaMtmam[ 3][ 3] = 0; aaMtmam[ 3][ 4] = 0; + aaMtmam[ 3][ 5] = 49; aaMtmam[ 3][ 6] = 569; aaMtmam[ 3][ 7] = 79; aaMtmam[ 3][ 8] = 11; aaMtmam[ 3][ 9] = 0; + aaMtmam[ 3][10] = 0; aaMtmam[ 3][11] = 0; aaMtmam[ 3][12] = 0; aaMtmam[ 3][13] = 5; aaMtmam[ 3][14] = 2; + aaMtmam[ 3][15] = 16; aaMtmam[ 3][16] = 0; aaMtmam[ 3][17] = 0; aaMtmam[ 3][18] = 0; aaMtmam[ 3][19] = 10; + aaMtmam[ 4][ 0] = 0; aaMtmam[ 4][ 1] = 186; aaMtmam[ 4][ 2] = 0; aaMtmam[ 4][ 3] = 0; aaMtmam[ 4][ 4] = 0; + aaMtmam[ 4][ 5] = 0; aaMtmam[ 4][ 6] = 0; aaMtmam[ 4][ 7] = 0; aaMtmam[ 4][ 8] = 305; aaMtmam[ 4][ 9] = 41; + aaMtmam[ 4][10] = 27; aaMtmam[ 4][11] = 0; aaMtmam[ 4][12] = 0; aaMtmam[ 4][13] = 7; aaMtmam[ 4][14] = 0; + aaMtmam[ 4][15] = 347; aaMtmam[ 4][16] = 114; aaMtmam[ 4][17] = 65; aaMtmam[ 4][18] = 530; aaMtmam[ 4][19] = 0; + aaMtmam[ 5][ 0] = 0; aaMtmam[ 5][ 1] = 246; aaMtmam[ 5][ 2] = 8; aaMtmam[ 5][ 3] = 49; aaMtmam[ 5][ 4] = 0; + aaMtmam[ 5][ 5] = 0; aaMtmam[ 5][ 6] = 274; aaMtmam[ 5][ 7] = 0; aaMtmam[ 5][ 8] = 550; aaMtmam[ 5][ 9] = 0; + aaMtmam[ 5][10] = 20; aaMtmam[ 5][11] = 242; aaMtmam[ 5][12] = 22; aaMtmam[ 5][13] = 0; aaMtmam[ 5][14] = 51; + aaMtmam[ 5][15] = 30; aaMtmam[ 5][16] = 0; aaMtmam[ 5][17] = 0; aaMtmam[ 5][18] = 54; aaMtmam[ 5][19] = 33; + aaMtmam[ 6][ 0] = 0; aaMtmam[ 6][ 1] = 0; aaMtmam[ 6][ 2] = 0; aaMtmam[ 6][ 3] = 569; aaMtmam[ 6][ 4] = 0; + aaMtmam[ 6][ 5] = 274; aaMtmam[ 6][ 6] = 0; aaMtmam[ 6][ 7] = 22; aaMtmam[ 6][ 8] = 22; aaMtmam[ 6][ 9] = 0; + aaMtmam[ 6][10] = 0; aaMtmam[ 6][11] = 215; aaMtmam[ 6][12] = 0; aaMtmam[ 6][13] = 0; aaMtmam[ 6][14] = 0; + aaMtmam[ 6][15] = 21; aaMtmam[ 6][16] = 4; aaMtmam[ 6][17] = 0; aaMtmam[ 6][18] = 0; aaMtmam[ 6][19] = 20; + aaMtmam[ 7][ 0] = 78; aaMtmam[ 7][ 1] = 18; aaMtmam[ 7][ 2] = 47; aaMtmam[ 7][ 3] = 79; aaMtmam[ 7][ 4] = 0; + aaMtmam[ 7][ 5] = 0; aaMtmam[ 7][ 6] = 22; aaMtmam[ 7][ 7] = 0; aaMtmam[ 7][ 8] = 0; aaMtmam[ 7][ 9] = 0; + aaMtmam[ 7][10] = 0; aaMtmam[ 7][11] = 0; aaMtmam[ 7][12] = 0; aaMtmam[ 7][13] = 0; aaMtmam[ 7][14] = 0; + aaMtmam[ 7][15] = 112; aaMtmam[ 7][16] = 0; aaMtmam[ 7][17] = 0; aaMtmam[ 7][18] = 1; aaMtmam[ 7][19] = 5; + aaMtmam[ 8][ 0] = 8; aaMtmam[ 8][ 1] = 232; aaMtmam[ 8][ 2] = 458; aaMtmam[ 8][ 3] = 11; aaMtmam[ 8][ 4] = 305; + aaMtmam[ 8][ 5] = 550; aaMtmam[ 8][ 6] = 22; aaMtmam[ 8][ 7] = 0; aaMtmam[ 8][ 8] = 0; aaMtmam[ 8][ 9] = 0; + aaMtmam[ 8][10] = 26; aaMtmam[ 8][11] = 0; aaMtmam[ 8][12] = 0; aaMtmam[ 8][13] = 0; aaMtmam[ 8][14] = 53; + aaMtmam[ 8][15] = 20; aaMtmam[ 8][16] = 1; aaMtmam[ 8][17] = 0; aaMtmam[ 8][18] =1525; aaMtmam[ 8][19] = 0; + aaMtmam[ 9][ 0] = 75; aaMtmam[ 9][ 1] = 0; aaMtmam[ 9][ 2] = 19; aaMtmam[ 9][ 3] = 0; aaMtmam[ 9][ 4] = 41; + aaMtmam[ 9][ 5] = 0; aaMtmam[ 9][ 6] = 0; aaMtmam[ 9][ 7] = 0; aaMtmam[ 9][ 8] = 0; aaMtmam[ 9][ 9] = 0; + aaMtmam[ 9][10] = 232; aaMtmam[ 9][11] = 6; aaMtmam[ 9][12] = 378; aaMtmam[ 9][13] = 57; aaMtmam[ 9][14] = 5; + aaMtmam[ 9][15] = 0; aaMtmam[ 9][16] = 360; aaMtmam[ 9][17] = 0; aaMtmam[ 9][18] = 16; aaMtmam[ 9][19] =2220; + aaMtmam[10][ 0] = 21; aaMtmam[10][ 1] = 6; aaMtmam[10][ 2] = 0; aaMtmam[10][ 3] = 0; aaMtmam[10][ 4] = 27; + aaMtmam[10][ 5] = 20; aaMtmam[10][ 6] = 0; aaMtmam[10][ 7] = 0; aaMtmam[10][ 8] = 26; aaMtmam[10][ 9] = 232; + aaMtmam[10][10] = 0; aaMtmam[10][11] = 4; aaMtmam[10][12] = 609; aaMtmam[10][13] = 246; aaMtmam[10][14] = 43; + aaMtmam[10][15] = 74; aaMtmam[10][16] = 34; aaMtmam[10][17] = 12; aaMtmam[10][18] = 25; aaMtmam[10][19] = 100; + aaMtmam[11][ 0] = 0; aaMtmam[11][ 1] = 50; aaMtmam[11][ 2] = 408; aaMtmam[11][ 3] = 0; aaMtmam[11][ 4] = 0; + aaMtmam[11][ 5] = 242; aaMtmam[11][ 6] = 215; aaMtmam[11][ 7] = 0; aaMtmam[11][ 8] = 0; aaMtmam[11][ 9] = 6; + aaMtmam[11][10] = 4; aaMtmam[11][11] = 0; aaMtmam[11][12] = 59; aaMtmam[11][13] = 0; aaMtmam[11][14] = 18; + aaMtmam[11][15] = 65; aaMtmam[11][16] = 50; aaMtmam[11][17] = 0; aaMtmam[11][18] = 67; aaMtmam[11][19] = 0; + aaMtmam[12][ 0] = 76; aaMtmam[12][ 1] = 0; aaMtmam[12][ 2] = 21; aaMtmam[12][ 3] = 0; aaMtmam[12][ 4] = 0; + aaMtmam[12][ 5] = 22; aaMtmam[12][ 6] = 0; aaMtmam[12][ 7] = 0; aaMtmam[12][ 8] = 0; aaMtmam[12][ 9] = 378; + aaMtmam[12][10] = 609; aaMtmam[12][11] = 59; aaMtmam[12][12] = 0; aaMtmam[12][13] = 11; aaMtmam[12][14] = 0; + aaMtmam[12][15] = 47; aaMtmam[12][16] = 691; aaMtmam[12][17] = 13; aaMtmam[12][18] = 0; aaMtmam[12][19] = 832; + aaMtmam[13][ 0] = 0; aaMtmam[13][ 1] = 0; aaMtmam[13][ 2] = 6; aaMtmam[13][ 3] = 5; aaMtmam[13][ 4] = 7; + aaMtmam[13][ 5] = 0; aaMtmam[13][ 6] = 0; aaMtmam[13][ 7] = 0; aaMtmam[13][ 8] = 0; aaMtmam[13][ 9] = 57; + aaMtmam[13][10] = 246; aaMtmam[13][11] = 0; aaMtmam[13][12] = 11; aaMtmam[13][13] = 0; aaMtmam[13][14] = 17; + aaMtmam[13][15] = 90; aaMtmam[13][16] = 8; aaMtmam[13][17] = 0; aaMtmam[13][18] = 682; aaMtmam[13][19] = 6; + aaMtmam[14][ 0] = 53; aaMtmam[14][ 1] = 9; aaMtmam[14][ 2] = 33; aaMtmam[14][ 3] = 2; aaMtmam[14][ 4] = 0; + aaMtmam[14][ 5] = 51; aaMtmam[14][ 6] = 0; aaMtmam[14][ 7] = 0; aaMtmam[14][ 8] = 53; aaMtmam[14][ 9] = 5; + aaMtmam[14][10] = 43; aaMtmam[14][11] = 18; aaMtmam[14][12] = 0; aaMtmam[14][13] = 17; aaMtmam[14][14] = 0; + aaMtmam[14][15] = 202; aaMtmam[14][16] = 78; aaMtmam[14][17] = 7; aaMtmam[14][18] = 8; aaMtmam[14][19] = 0; + aaMtmam[15][ 0] = 342; aaMtmam[15][ 1] = 3; aaMtmam[15][ 2] = 446; aaMtmam[15][ 3] = 16; aaMtmam[15][ 4] = 347; + aaMtmam[15][ 5] = 30; aaMtmam[15][ 6] = 21; aaMtmam[15][ 7] = 112; aaMtmam[15][ 8] = 20; aaMtmam[15][ 9] = 0; + aaMtmam[15][10] = 74; aaMtmam[15][11] = 65; aaMtmam[15][12] = 47; aaMtmam[15][13] = 90; aaMtmam[15][14] = 202; + aaMtmam[15][15] = 0; aaMtmam[15][16] = 614; aaMtmam[15][17] = 17; aaMtmam[15][18] = 107; aaMtmam[15][19] = 0; + aaMtmam[16][ 0] = 681; aaMtmam[16][ 1] = 0; aaMtmam[16][ 2] = 110; aaMtmam[16][ 3] = 0; aaMtmam[16][ 4] = 114; + aaMtmam[16][ 5] = 0; aaMtmam[16][ 6] = 4; aaMtmam[16][ 7] = 0; aaMtmam[16][ 8] = 1; aaMtmam[16][ 9] = 360; + aaMtmam[16][10] = 34; aaMtmam[16][11] = 50; aaMtmam[16][12] = 691; aaMtmam[16][13] = 8; aaMtmam[16][14] = 78; + aaMtmam[16][15] = 614; aaMtmam[16][16] = 0; aaMtmam[16][17] = 0; aaMtmam[16][18] = 0; aaMtmam[16][19] = 237; + aaMtmam[17][ 0] = 5; aaMtmam[17][ 1] = 16; aaMtmam[17][ 2] = 6; aaMtmam[17][ 3] = 0; aaMtmam[17][ 4] = 65; + aaMtmam[17][ 5] = 0; aaMtmam[17][ 6] = 0; aaMtmam[17][ 7] = 0; aaMtmam[17][ 8] = 0; aaMtmam[17][ 9] = 0; + aaMtmam[17][10] = 12; aaMtmam[17][11] = 0; aaMtmam[17][12] = 13; aaMtmam[17][13] = 0; aaMtmam[17][14] = 7; + aaMtmam[17][15] = 17; aaMtmam[17][16] = 0; aaMtmam[17][17] = 0; aaMtmam[17][18] = 14; aaMtmam[17][19] = 0; + aaMtmam[18][ 0] = 0; aaMtmam[18][ 1] = 0; aaMtmam[18][ 2] = 156; aaMtmam[18][ 3] = 0; aaMtmam[18][ 4] = 530; + aaMtmam[18][ 5] = 54; aaMtmam[18][ 6] = 0; aaMtmam[18][ 7] = 1; aaMtmam[18][ 8] =1525; aaMtmam[18][ 9] = 16; + aaMtmam[18][10] = 25; aaMtmam[18][11] = 67; aaMtmam[18][12] = 0; aaMtmam[18][13] = 682; aaMtmam[18][14] = 8; + aaMtmam[18][15] = 107; aaMtmam[18][16] = 0; aaMtmam[18][17] = 14; aaMtmam[18][18] = 0; aaMtmam[18][19] = 0; + aaMtmam[19][ 0] = 398; aaMtmam[19][ 1] = 0; aaMtmam[19][ 2] = 0; aaMtmam[19][ 3] = 10; aaMtmam[19][ 4] = 0; + aaMtmam[19][ 5] = 33; aaMtmam[19][ 6] = 20; aaMtmam[19][ 7] = 5; aaMtmam[19][ 8] = 0; aaMtmam[19][ 9] =2220; + aaMtmam[19][10] = 100; aaMtmam[19][11] = 0; aaMtmam[19][12] = 832; aaMtmam[19][13] = 6; aaMtmam[19][14] = 0; + aaMtmam[19][15] = 0; aaMtmam[19][16] = 237; aaMtmam[19][17] = 0; aaMtmam[19][18] = 0; aaMtmam[19][19] = 0; + + mtmamPi[ 0] = 0.0692; + mtmamPi[ 1] = 0.0184; + mtmamPi[ 2] = 0.0400; + mtmamPi[ 3] = 0.0186; + mtmamPi[ 4] = 0.0065; + mtmamPi[ 5] = 0.0238; + mtmamPi[ 6] = 0.0236; + mtmamPi[ 7] = 0.0557; + mtmamPi[ 8] = 0.0277; + mtmamPi[ 9] = 0.0905; + mtmamPi[10] = 0.1675; + mtmamPi[11] = 0.0221; + mtmamPi[12] = 0.0561; + mtmamPi[13] = 0.0611; + mtmamPi[14] = 0.0536; + mtmamPi[15] = 0.0725; + mtmamPi[16] = 0.0870; + mtmamPi[17] = 0.0293; + mtmamPi[18] = 0.0340; + mtmamPi[19] = 0.0428; + + /* rtRev */ + aartREV[ 0][ 0] = 0; aartREV[ 1][ 0] = 34; aartREV[ 2][ 0] = 51; aartREV[ 3][ 0] = 10; aartREV[ 4][ 0] = 439; + aartREV[ 5][ 0] = 32; aartREV[ 6][ 0] = 81; aartREV[ 7][ 0] = 135; aartREV[ 8][ 0] = 30; aartREV[ 9][ 0] = 1; + aartREV[10][ 0] = 45; aartREV[11][ 0] = 38; aartREV[12][ 0] = 235; aartREV[13][ 0] = 1; aartREV[14][ 0] = 97; + aartREV[15][ 0] = 460; aartREV[16][ 0] = 258; aartREV[17][ 0] = 5; aartREV[18][ 0] = 55; aartREV[19][ 0] = 197; + aartREV[ 0][ 1] = 34; aartREV[ 1][ 1] = 0; aartREV[ 2][ 1] = 35; aartREV[ 3][ 1] = 30; aartREV[ 4][ 1] = 92; + aartREV[ 5][ 1] = 221; aartREV[ 6][ 1] = 10; aartREV[ 7][ 1] = 41; aartREV[ 8][ 1] = 90; aartREV[ 9][ 1] = 24; + aartREV[10][ 1] = 18; aartREV[11][ 1] = 593; aartREV[12][ 1] = 57; aartREV[13][ 1] = 7; aartREV[14][ 1] = 24; + aartREV[15][ 1] = 102; aartREV[16][ 1] = 64; aartREV[17][ 1] = 13; aartREV[18][ 1] = 47; aartREV[19][ 1] = 29; + aartREV[ 0][ 2] = 51; aartREV[ 1][ 2] = 35; aartREV[ 2][ 2] = 0; aartREV[ 3][ 2] = 384; aartREV[ 4][ 2] = 128; + aartREV[ 5][ 2] = 236; aartREV[ 6][ 2] = 79; aartREV[ 7][ 2] = 94; aartREV[ 8][ 2] = 320; aartREV[ 9][ 2] = 35; + aartREV[10][ 2] = 15; aartREV[11][ 2] = 123; aartREV[12][ 2] = 1; aartREV[13][ 2] = 49; aartREV[14][ 2] = 33; + aartREV[15][ 2] = 294; aartREV[16][ 2] = 148; aartREV[17][ 2] = 16; aartREV[18][ 2] = 28; aartREV[19][ 2] = 21; + aartREV[ 0][ 3] = 10; aartREV[ 1][ 3] = 30; aartREV[ 2][ 3] = 384; aartREV[ 3][ 3] = 0; aartREV[ 4][ 3] = 1; + aartREV[ 5][ 3] = 78; aartREV[ 6][ 3] = 542; aartREV[ 7][ 3] = 61; aartREV[ 8][ 3] = 91; aartREV[ 9][ 3] = 1; + aartREV[10][ 3] = 5; aartREV[11][ 3] = 20; aartREV[12][ 3] = 1; aartREV[13][ 3] = 1; aartREV[14][ 3] = 55; + aartREV[15][ 3] = 136; aartREV[16][ 3] = 55; aartREV[17][ 3] = 1; aartREV[18][ 3] = 1; aartREV[19][ 3] = 6; + aartREV[ 0][ 4] = 439; aartREV[ 1][ 4] = 92; aartREV[ 2][ 4] = 128; aartREV[ 3][ 4] = 1; aartREV[ 4][ 4] = 0; + aartREV[ 5][ 4] = 70; aartREV[ 6][ 4] = 1; aartREV[ 7][ 4] = 48; aartREV[ 8][ 4] = 124; aartREV[ 9][ 4] = 104; + aartREV[10][ 4] = 110; aartREV[11][ 4] = 16; aartREV[12][ 4] = 156; aartREV[13][ 4] = 70; aartREV[14][ 4] = 1; + aartREV[15][ 4] = 75; aartREV[16][ 4] = 117; aartREV[17][ 4] = 55; aartREV[18][ 4] = 131; aartREV[19][ 4] = 295; + aartREV[ 0][ 5] = 32; aartREV[ 1][ 5] = 221; aartREV[ 2][ 5] = 236; aartREV[ 3][ 5] = 78; aartREV[ 4][ 5] = 70; + aartREV[ 5][ 5] = 0; aartREV[ 6][ 5] = 372; aartREV[ 7][ 5] = 18; aartREV[ 8][ 5] = 387; aartREV[ 9][ 5] = 33; + aartREV[10][ 5] = 54; aartREV[11][ 5] = 309; aartREV[12][ 5] = 158; aartREV[13][ 5] = 1; aartREV[14][ 5] = 68; + aartREV[15][ 5] = 225; aartREV[16][ 5] = 146; aartREV[17][ 5] = 10; aartREV[18][ 5] = 45; aartREV[19][ 5] = 36; + aartREV[ 0][ 6] = 81; aartREV[ 1][ 6] = 10; aartREV[ 2][ 6] = 79; aartREV[ 3][ 6] = 542; aartREV[ 4][ 6] = 1; + aartREV[ 5][ 6] = 372; aartREV[ 6][ 6] = 0; aartREV[ 7][ 6] = 70; aartREV[ 8][ 6] = 34; aartREV[ 9][ 6] = 1; + aartREV[10][ 6] = 21; aartREV[11][ 6] = 141; aartREV[12][ 6] = 1; aartREV[13][ 6] = 1; aartREV[14][ 6] = 52; + aartREV[15][ 6] = 95; aartREV[16][ 6] = 82; aartREV[17][ 6] = 17; aartREV[18][ 6] = 1; aartREV[19][ 6] = 35; + aartREV[ 0][ 7] = 135; aartREV[ 1][ 7] = 41; aartREV[ 2][ 7] = 94; aartREV[ 3][ 7] = 61; aartREV[ 4][ 7] = 48; + aartREV[ 5][ 7] = 18; aartREV[ 6][ 7] = 70; aartREV[ 7][ 7] = 0; aartREV[ 8][ 7] = 68; aartREV[ 9][ 7] = 1; + aartREV[10][ 7] = 3; aartREV[11][ 7] = 30; aartREV[12][ 7] = 37; aartREV[13][ 7] = 7; aartREV[14][ 7] = 17; + aartREV[15][ 7] = 152; aartREV[16][ 7] = 7; aartREV[17][ 7] = 23; aartREV[18][ 7] = 21; aartREV[19][ 7] = 3; + aartREV[ 0][ 8] = 30; aartREV[ 1][ 8] = 90; aartREV[ 2][ 8] = 320; aartREV[ 3][ 8] = 91; aartREV[ 4][ 8] = 124; + aartREV[ 5][ 8] = 387; aartREV[ 6][ 8] = 34; aartREV[ 7][ 8] = 68; aartREV[ 8][ 8] = 0; aartREV[ 9][ 8] = 34; + aartREV[10][ 8] = 51; aartREV[11][ 8] = 76; aartREV[12][ 8] = 116; aartREV[13][ 8] = 141; aartREV[14][ 8] = 44; + aartREV[15][ 8] = 183; aartREV[16][ 8] = 49; aartREV[17][ 8] = 48; aartREV[18][ 8] = 307; aartREV[19][ 8] = 1; + aartREV[ 0][ 9] = 1; aartREV[ 1][ 9] = 24; aartREV[ 2][ 9] = 35; aartREV[ 3][ 9] = 1; aartREV[ 4][ 9] = 104; + aartREV[ 5][ 9] = 33; aartREV[ 6][ 9] = 1; aartREV[ 7][ 9] = 1; aartREV[ 8][ 9] = 34; aartREV[ 9][ 9] = 0; + aartREV[10][ 9] = 385; aartREV[11][ 9] = 34; aartREV[12][ 9] = 375; aartREV[13][ 9] = 64; aartREV[14][ 9] = 10; + aartREV[15][ 9] = 4; aartREV[16][ 9] = 72; aartREV[17][ 9] = 39; aartREV[18][ 9] = 26; aartREV[19][ 9] =1048; + aartREV[ 0][10] = 45; aartREV[ 1][10] = 18; aartREV[ 2][10] = 15; aartREV[ 3][10] = 5; aartREV[ 4][10] = 110; + aartREV[ 5][10] = 54; aartREV[ 6][10] = 21; aartREV[ 7][10] = 3; aartREV[ 8][10] = 51; aartREV[ 9][10] = 385; + aartREV[10][10] = 0; aartREV[11][10] = 23; aartREV[12][10] = 581; aartREV[13][10] = 179; aartREV[14][10] = 22; + aartREV[15][10] = 24; aartREV[16][10] = 25; aartREV[17][10] = 47; aartREV[18][10] = 64; aartREV[19][10] = 112; + aartREV[ 0][11] = 38; aartREV[ 1][11] = 593; aartREV[ 2][11] = 123; aartREV[ 3][11] = 20; aartREV[ 4][11] = 16; + aartREV[ 5][11] = 309; aartREV[ 6][11] = 141; aartREV[ 7][11] = 30; aartREV[ 8][11] = 76; aartREV[ 9][11] = 34; + aartREV[10][11] = 23; aartREV[11][11] = 0; aartREV[12][11] = 134; aartREV[13][11] = 14; aartREV[14][11] = 43; + aartREV[15][11] = 77; aartREV[16][11] = 110; aartREV[17][11] = 6; aartREV[18][11] = 1; aartREV[19][11] = 19; + aartREV[ 0][12] = 235; aartREV[ 1][12] = 57; aartREV[ 2][12] = 1; aartREV[ 3][12] = 1; aartREV[ 4][12] = 156; + aartREV[ 5][12] = 158; aartREV[ 6][12] = 1; aartREV[ 7][12] = 37; aartREV[ 8][12] = 116; aartREV[ 9][12] = 375; + aartREV[10][12] = 581; aartREV[11][12] = 134; aartREV[12][12] = 0; aartREV[13][12] = 247; aartREV[14][12] = 1; + aartREV[15][12] = 1; aartREV[16][12] = 131; aartREV[17][12] = 111; aartREV[18][12] = 74; aartREV[19][12] = 236; + aartREV[ 0][13] = 1; aartREV[ 1][13] = 7; aartREV[ 2][13] = 49; aartREV[ 3][13] = 1; aartREV[ 4][13] = 70; + aartREV[ 5][13] = 1; aartREV[ 6][13] = 1; aartREV[ 7][13] = 7; aartREV[ 8][13] = 141; aartREV[ 9][13] = 64; + aartREV[10][13] = 179; aartREV[11][13] = 14; aartREV[12][13] = 247; aartREV[13][13] = 0; aartREV[14][13] = 11; + aartREV[15][13] = 20; aartREV[16][13] = 69; aartREV[17][13] = 182; aartREV[18][13] =1017; aartREV[19][13] = 92; + aartREV[ 0][14] = 97; aartREV[ 1][14] = 24; aartREV[ 2][14] = 33; aartREV[ 3][14] = 55; aartREV[ 4][14] = 1; + aartREV[ 5][14] = 68; aartREV[ 6][14] = 52; aartREV[ 7][14] = 17; aartREV[ 8][14] = 44; aartREV[ 9][14] = 10; + aartREV[10][14] = 22; aartREV[11][14] = 43; aartREV[12][14] = 1; aartREV[13][14] = 11; aartREV[14][14] = 0; + aartREV[15][14] = 134; aartREV[16][14] = 62; aartREV[17][14] = 9; aartREV[18][14] = 14; aartREV[19][14] = 25; + aartREV[ 0][15] = 460; aartREV[ 1][15] = 102; aartREV[ 2][15] = 294; aartREV[ 3][15] = 136; aartREV[ 4][15] = 75; + aartREV[ 5][15] = 225; aartREV[ 6][15] = 95; aartREV[ 7][15] = 152; aartREV[ 8][15] = 183; aartREV[ 9][15] = 4; + aartREV[10][15] = 24; aartREV[11][15] = 77; aartREV[12][15] = 1; aartREV[13][15] = 20; aartREV[14][15] = 134; + aartREV[15][15] = 0; aartREV[16][15] = 671; aartREV[17][15] = 14; aartREV[18][15] = 31; aartREV[19][15] = 39; + aartREV[ 0][16] = 258; aartREV[ 1][16] = 64; aartREV[ 2][16] = 148; aartREV[ 3][16] = 55; aartREV[ 4][16] = 117; + aartREV[ 5][16] = 146; aartREV[ 6][16] = 82; aartREV[ 7][16] = 7; aartREV[ 8][16] = 49; aartREV[ 9][16] = 72; + aartREV[10][16] = 25; aartREV[11][16] = 110; aartREV[12][16] = 131; aartREV[13][16] = 69; aartREV[14][16] = 62; + aartREV[15][16] = 671; aartREV[16][16] = 0; aartREV[17][16] = 1; aartREV[18][16] = 34; aartREV[19][16] = 196; + aartREV[ 0][17] = 5; aartREV[ 1][17] = 13; aartREV[ 2][17] = 16; aartREV[ 3][17] = 1; aartREV[ 4][17] = 55; + aartREV[ 5][17] = 10; aartREV[ 6][17] = 17; aartREV[ 7][17] = 23; aartREV[ 8][17] = 48; aartREV[ 9][17] = 39; + aartREV[10][17] = 47; aartREV[11][17] = 6; aartREV[12][17] = 111; aartREV[13][17] = 182; aartREV[14][17] = 9; + aartREV[15][17] = 14; aartREV[16][17] = 1; aartREV[17][17] = 0; aartREV[18][17] = 176; aartREV[19][17] = 26; + aartREV[ 0][18] = 55; aartREV[ 1][18] = 47; aartREV[ 2][18] = 28; aartREV[ 3][18] = 1; aartREV[ 4][18] = 131; + aartREV[ 5][18] = 45; aartREV[ 6][18] = 1; aartREV[ 7][18] = 21; aartREV[ 8][18] = 307; aartREV[ 9][18] = 26; + aartREV[10][18] = 64; aartREV[11][18] = 1; aartREV[12][18] = 74; aartREV[13][18] =1017; aartREV[14][18] = 14; + aartREV[15][18] = 31; aartREV[16][18] = 34; aartREV[17][18] = 176; aartREV[18][18] = 0; aartREV[19][18] = 59; + aartREV[ 0][19] = 197; aartREV[ 1][19] = 29; aartREV[ 2][19] = 21; aartREV[ 3][19] = 6; aartREV[ 4][19] = 295; + aartREV[ 5][19] = 36; aartREV[ 6][19] = 35; aartREV[ 7][19] = 3; aartREV[ 8][19] = 1; aartREV[ 9][19] =1048; + aartREV[10][19] = 112; aartREV[11][19] = 19; aartREV[12][19] = 236; aartREV[13][19] = 92; aartREV[14][19] = 25; + aartREV[15][19] = 39; aartREV[16][19] = 196; aartREV[17][19] = 26; aartREV[18][19] = 59; aartREV[19][19] = 0; + rtrevPi[ 0] = 0.0646; + rtrevPi[ 1] = 0.0453; + rtrevPi[ 2] = 0.0376; + rtrevPi[ 3] = 0.0422; + rtrevPi[ 4] = 0.0114; + rtrevPi[ 5] = 0.0606; + rtrevPi[ 6] = 0.0607; + rtrevPi[ 7] = 0.0639; + rtrevPi[ 8] = 0.0273; + rtrevPi[ 9] = 0.0679; + rtrevPi[10] = 0.1018; + rtrevPi[11] = 0.0751; + rtrevPi[12] = 0.0150; + rtrevPi[13] = 0.0287; + rtrevPi[14] = 0.0681; + rtrevPi[15] = 0.0488; + rtrevPi[16] = 0.0622; + rtrevPi[17] = 0.0251; + rtrevPi[18] = 0.0318; + rtrevPi[19] = 0.0619; + + /* wag */ + aaWAG[ 0][ 0] = 0.0000000; aaWAG[ 1][ 0] = 0.5515710; aaWAG[ 2][ 0] = 0.5098480; aaWAG[ 3][ 0] = 0.7389980; aaWAG[ 4][ 0] = 1.0270400; + aaWAG[ 5][ 0] = 0.9085980; aaWAG[ 6][ 0] = 1.5828500; aaWAG[ 7][ 0] = 1.4167200; aaWAG[ 8][ 0] = 0.3169540; aaWAG[ 9][ 0] = 0.1933350; + aaWAG[10][ 0] = 0.3979150; aaWAG[11][ 0] = 0.9062650; aaWAG[12][ 0] = 0.8934960; aaWAG[13][ 0] = 0.2104940; aaWAG[14][ 0] = 1.4385500; + aaWAG[15][ 0] = 3.3707900; aaWAG[16][ 0] = 2.1211100; aaWAG[17][ 0] = 0.1131330; aaWAG[18][ 0] = 0.2407350; aaWAG[19][ 0] = 2.0060100; + aaWAG[ 0][ 1] = 0.5515710; aaWAG[ 1][ 1] = 0.0000000; aaWAG[ 2][ 1] = 0.6353460; aaWAG[ 3][ 1] = 0.1473040; aaWAG[ 4][ 1] = 0.5281910; + aaWAG[ 5][ 1] = 3.0355000; aaWAG[ 6][ 1] = 0.4391570; aaWAG[ 7][ 1] = 0.5846650; aaWAG[ 8][ 1] = 2.1371500; aaWAG[ 9][ 1] = 0.1869790; + aaWAG[10][ 1] = 0.4976710; aaWAG[11][ 1] = 5.3514200; aaWAG[12][ 1] = 0.6831620; aaWAG[13][ 1] = 0.1027110; aaWAG[14][ 1] = 0.6794890; + aaWAG[15][ 1] = 1.2241900; aaWAG[16][ 1] = 0.5544130; aaWAG[17][ 1] = 1.1639200; aaWAG[18][ 1] = 0.3815330; aaWAG[19][ 1] = 0.2518490; + aaWAG[ 0][ 2] = 0.5098480; aaWAG[ 1][ 2] = 0.6353460; aaWAG[ 2][ 2] = 0.0000000; aaWAG[ 3][ 2] = 5.4294200; aaWAG[ 4][ 2] = 0.2652560; + aaWAG[ 5][ 2] = 1.5436400; aaWAG[ 6][ 2] = 0.9471980; aaWAG[ 7][ 2] = 1.1255600; aaWAG[ 8][ 2] = 3.9562900; aaWAG[ 9][ 2] = 0.5542360; + aaWAG[10][ 2] = 0.1315280; aaWAG[11][ 2] = 3.0120100; aaWAG[12][ 2] = 0.1982210; aaWAG[13][ 2] = 0.0961621; aaWAG[14][ 2] = 0.1950810; + aaWAG[15][ 2] = 3.9742300; aaWAG[16][ 2] = 2.0300600; aaWAG[17][ 2] = 0.0719167; aaWAG[18][ 2] = 1.0860000; aaWAG[19][ 2] = 0.1962460; + aaWAG[ 0][ 3] = 0.7389980; aaWAG[ 1][ 3] = 0.1473040; aaWAG[ 2][ 3] = 5.4294200; aaWAG[ 3][ 3] = 0.0000000; aaWAG[ 4][ 3] = 0.0302949; + aaWAG[ 5][ 3] = 0.6167830; aaWAG[ 6][ 3] = 6.1741600; aaWAG[ 7][ 3] = 0.8655840; aaWAG[ 8][ 3] = 0.9306760; aaWAG[ 9][ 3] = 0.0394370; + aaWAG[10][ 3] = 0.0848047; aaWAG[11][ 3] = 0.4798550; aaWAG[12][ 3] = 0.1037540; aaWAG[13][ 3] = 0.0467304; aaWAG[14][ 3] = 0.4239840; + aaWAG[15][ 3] = 1.0717600; aaWAG[16][ 3] = 0.3748660; aaWAG[17][ 3] = 0.1297670; aaWAG[18][ 3] = 0.3257110; aaWAG[19][ 3] = 0.1523350; + aaWAG[ 0][ 4] = 1.0270400; aaWAG[ 1][ 4] = 0.5281910; aaWAG[ 2][ 4] = 0.2652560; aaWAG[ 3][ 4] = 0.0302949; aaWAG[ 4][ 4] = 0.0000000; + aaWAG[ 5][ 4] = 0.0988179; aaWAG[ 6][ 4] = 0.0213520; aaWAG[ 7][ 4] = 0.3066740; aaWAG[ 8][ 4] = 0.2489720; aaWAG[ 9][ 4] = 0.1701350; + aaWAG[10][ 4] = 0.3842870; aaWAG[11][ 4] = 0.0740339; aaWAG[12][ 4] = 0.3904820; aaWAG[13][ 4] = 0.3980200; aaWAG[14][ 4] = 0.1094040; + aaWAG[15][ 4] = 1.4076600; aaWAG[16][ 4] = 0.5129840; aaWAG[17][ 4] = 0.7170700; aaWAG[18][ 4] = 0.5438330; aaWAG[19][ 4] = 1.0021400; + aaWAG[ 0][ 5] = 0.9085980; aaWAG[ 1][ 5] = 3.0355000; aaWAG[ 2][ 5] = 1.5436400; aaWAG[ 3][ 5] = 0.6167830; aaWAG[ 4][ 5] = 0.0988179; + aaWAG[ 5][ 5] = 0.0000000; aaWAG[ 6][ 5] = 5.4694700; aaWAG[ 7][ 5] = 0.3300520; aaWAG[ 8][ 5] = 4.2941100; aaWAG[ 9][ 5] = 0.1139170; + aaWAG[10][ 5] = 0.8694890; aaWAG[11][ 5] = 3.8949000; aaWAG[12][ 5] = 1.5452600; aaWAG[13][ 5] = 0.0999208; aaWAG[14][ 5] = 0.9333720; + aaWAG[15][ 5] = 1.0288700; aaWAG[16][ 5] = 0.8579280; aaWAG[17][ 5] = 0.2157370; aaWAG[18][ 5] = 0.2277100; aaWAG[19][ 5] = 0.3012810; + aaWAG[ 0][ 6] = 1.5828500; aaWAG[ 1][ 6] = 0.4391570; aaWAG[ 2][ 6] = 0.9471980; aaWAG[ 3][ 6] = 6.1741600; aaWAG[ 4][ 6] = 0.0213520; + aaWAG[ 5][ 6] = 5.4694700; aaWAG[ 6][ 6] = 0.0000000; aaWAG[ 7][ 6] = 0.5677170; aaWAG[ 8][ 6] = 0.5700250; aaWAG[ 9][ 6] = 0.1273950; + aaWAG[10][ 6] = 0.1542630; aaWAG[11][ 6] = 2.5844300; aaWAG[12][ 6] = 0.3151240; aaWAG[13][ 6] = 0.0811339; aaWAG[14][ 6] = 0.6823550; + aaWAG[15][ 6] = 0.7049390; aaWAG[16][ 6] = 0.8227650; aaWAG[17][ 6] = 0.1565570; aaWAG[18][ 6] = 0.1963030; aaWAG[19][ 6] = 0.5887310; + aaWAG[ 0][ 7] = 1.4167200; aaWAG[ 1][ 7] = 0.5846650; aaWAG[ 2][ 7] = 1.1255600; aaWAG[ 3][ 7] = 0.8655840; aaWAG[ 4][ 7] = 0.3066740; + aaWAG[ 5][ 7] = 0.3300520; aaWAG[ 6][ 7] = 0.5677170; aaWAG[ 7][ 7] = 0.0000000; aaWAG[ 8][ 7] = 0.2494100; aaWAG[ 9][ 7] = 0.0304501; + aaWAG[10][ 7] = 0.0613037; aaWAG[11][ 7] = 0.3735580; aaWAG[12][ 7] = 0.1741000; aaWAG[13][ 7] = 0.0499310; aaWAG[14][ 7] = 0.2435700; + aaWAG[15][ 7] = 1.3418200; aaWAG[16][ 7] = 0.2258330; aaWAG[17][ 7] = 0.3369830; aaWAG[18][ 7] = 0.1036040; aaWAG[19][ 7] = 0.1872470; + aaWAG[ 0][ 8] = 0.3169540; aaWAG[ 1][ 8] = 2.1371500; aaWAG[ 2][ 8] = 3.9562900; aaWAG[ 3][ 8] = 0.9306760; aaWAG[ 4][ 8] = 0.2489720; + aaWAG[ 5][ 8] = 4.2941100; aaWAG[ 6][ 8] = 0.5700250; aaWAG[ 7][ 8] = 0.2494100; aaWAG[ 8][ 8] = 0.0000000; aaWAG[ 9][ 8] = 0.1381900; + aaWAG[10][ 8] = 0.4994620; aaWAG[11][ 8] = 0.8904320; aaWAG[12][ 8] = 0.4041410; aaWAG[13][ 8] = 0.6793710; aaWAG[14][ 8] = 0.6961980; + aaWAG[15][ 8] = 0.7401690; aaWAG[16][ 8] = 0.4733070; aaWAG[17][ 8] = 0.2625690; aaWAG[18][ 8] = 3.8734400; aaWAG[19][ 8] = 0.1183580; + aaWAG[ 0][ 9] = 0.1933350; aaWAG[ 1][ 9] = 0.1869790; aaWAG[ 2][ 9] = 0.5542360; aaWAG[ 3][ 9] = 0.0394370; aaWAG[ 4][ 9] = 0.1701350; + aaWAG[ 5][ 9] = 0.1139170; aaWAG[ 6][ 9] = 0.1273950; aaWAG[ 7][ 9] = 0.0304501; aaWAG[ 8][ 9] = 0.1381900; aaWAG[ 9][ 9] = 0.0000000; + aaWAG[10][ 9] = 3.1709700; aaWAG[11][ 9] = 0.3238320; aaWAG[12][ 9] = 4.2574600; aaWAG[13][ 9] = 1.0594700; aaWAG[14][ 9] = 0.0999288; + aaWAG[15][ 9] = 0.3194400; aaWAG[16][ 9] = 1.4581600; aaWAG[17][ 9] = 0.2124830; aaWAG[18][ 9] = 0.4201700; aaWAG[19][ 9] = 7.8213000; + aaWAG[ 0][10] = 0.3979150; aaWAG[ 1][10] = 0.4976710; aaWAG[ 2][10] = 0.1315280; aaWAG[ 3][10] = 0.0848047; aaWAG[ 4][10] = 0.3842870; + aaWAG[ 5][10] = 0.8694890; aaWAG[ 6][10] = 0.1542630; aaWAG[ 7][10] = 0.0613037; aaWAG[ 8][10] = 0.4994620; aaWAG[ 9][10] = 3.1709700; + aaWAG[10][10] = 0.0000000; aaWAG[11][10] = 0.2575550; aaWAG[12][10] = 4.8540200; aaWAG[13][10] = 2.1151700; aaWAG[14][10] = 0.4158440; + aaWAG[15][10] = 0.3447390; aaWAG[16][10] = 0.3266220; aaWAG[17][10] = 0.6653090; aaWAG[18][10] = 0.3986180; aaWAG[19][10] = 1.8003400; + aaWAG[ 0][11] = 0.9062650; aaWAG[ 1][11] = 5.3514200; aaWAG[ 2][11] = 3.0120100; aaWAG[ 3][11] = 0.4798550; aaWAG[ 4][11] = 0.0740339; + aaWAG[ 5][11] = 3.8949000; aaWAG[ 6][11] = 2.5844300; aaWAG[ 7][11] = 0.3735580; aaWAG[ 8][11] = 0.8904320; aaWAG[ 9][11] = 0.3238320; + aaWAG[10][11] = 0.2575550; aaWAG[11][11] = 0.0000000; aaWAG[12][11] = 0.9342760; aaWAG[13][11] = 0.0888360; aaWAG[14][11] = 0.5568960; + aaWAG[15][11] = 0.9671300; aaWAG[16][11] = 1.3869800; aaWAG[17][11] = 0.1375050; aaWAG[18][11] = 0.1332640; aaWAG[19][11] = 0.3054340; + aaWAG[ 0][12] = 0.8934960; aaWAG[ 1][12] = 0.6831620; aaWAG[ 2][12] = 0.1982210; aaWAG[ 3][12] = 0.1037540; aaWAG[ 4][12] = 0.3904820; + aaWAG[ 5][12] = 1.5452600; aaWAG[ 6][12] = 0.3151240; aaWAG[ 7][12] = 0.1741000; aaWAG[ 8][12] = 0.4041410; aaWAG[ 9][12] = 4.2574600; + aaWAG[10][12] = 4.8540200; aaWAG[11][12] = 0.9342760; aaWAG[12][12] = 0.0000000; aaWAG[13][12] = 1.1906300; aaWAG[14][12] = 0.1713290; + aaWAG[15][12] = 0.4939050; aaWAG[16][12] = 1.5161200; aaWAG[17][12] = 0.5157060; aaWAG[18][12] = 0.4284370; aaWAG[19][12] = 2.0584500; + aaWAG[ 0][13] = 0.2104940; aaWAG[ 1][13] = 0.1027110; aaWAG[ 2][13] = 0.0961621; aaWAG[ 3][13] = 0.0467304; aaWAG[ 4][13] = 0.3980200; + aaWAG[ 5][13] = 0.0999208; aaWAG[ 6][13] = 0.0811339; aaWAG[ 7][13] = 0.0499310; aaWAG[ 8][13] = 0.6793710; aaWAG[ 9][13] = 1.0594700; + aaWAG[10][13] = 2.1151700; aaWAG[11][13] = 0.0888360; aaWAG[12][13] = 1.1906300; aaWAG[13][13] = 0.0000000; aaWAG[14][13] = 0.1614440; + aaWAG[15][13] = 0.5459310; aaWAG[16][13] = 0.1719030; aaWAG[17][13] = 1.5296400; aaWAG[18][13] = 6.4542800; aaWAG[19][13] = 0.6498920; + aaWAG[ 0][14] = 1.4385500; aaWAG[ 1][14] = 0.6794890; aaWAG[ 2][14] = 0.1950810; aaWAG[ 3][14] = 0.4239840; aaWAG[ 4][14] = 0.1094040; + aaWAG[ 5][14] = 0.9333720; aaWAG[ 6][14] = 0.6823550; aaWAG[ 7][14] = 0.2435700; aaWAG[ 8][14] = 0.6961980; aaWAG[ 9][14] = 0.0999288; + aaWAG[10][14] = 0.4158440; aaWAG[11][14] = 0.5568960; aaWAG[12][14] = 0.1713290; aaWAG[13][14] = 0.1614440; aaWAG[14][14] = 0.0000000; + aaWAG[15][14] = 1.6132800; aaWAG[16][14] = 0.7953840; aaWAG[17][14] = 0.1394050; aaWAG[18][14] = 0.2160460; aaWAG[19][14] = 0.3148870; + aaWAG[ 0][15] = 3.3707900; aaWAG[ 1][15] = 1.2241900; aaWAG[ 2][15] = 3.9742300; aaWAG[ 3][15] = 1.0717600; aaWAG[ 4][15] = 1.4076600; + aaWAG[ 5][15] = 1.0288700; aaWAG[ 6][15] = 0.7049390; aaWAG[ 7][15] = 1.3418200; aaWAG[ 8][15] = 0.7401690; aaWAG[ 9][15] = 0.3194400; + aaWAG[10][15] = 0.3447390; aaWAG[11][15] = 0.9671300; aaWAG[12][15] = 0.4939050; aaWAG[13][15] = 0.5459310; aaWAG[14][15] = 1.6132800; + aaWAG[15][15] = 0.0000000; aaWAG[16][15] = 4.3780200; aaWAG[17][15] = 0.5237420; aaWAG[18][15] = 0.7869930; aaWAG[19][15] = 0.2327390; + aaWAG[ 0][16] = 2.1211100; aaWAG[ 1][16] = 0.5544130; aaWAG[ 2][16] = 2.0300600; aaWAG[ 3][16] = 0.3748660; aaWAG[ 4][16] = 0.5129840; + aaWAG[ 5][16] = 0.8579280; aaWAG[ 6][16] = 0.8227650; aaWAG[ 7][16] = 0.2258330; aaWAG[ 8][16] = 0.4733070; aaWAG[ 9][16] = 1.4581600; + aaWAG[10][16] = 0.3266220; aaWAG[11][16] = 1.3869800; aaWAG[12][16] = 1.5161200; aaWAG[13][16] = 0.1719030; aaWAG[14][16] = 0.7953840; + aaWAG[15][16] = 4.3780200; aaWAG[16][16] = 0.0000000; aaWAG[17][16] = 0.1108640; aaWAG[18][16] = 0.2911480; aaWAG[19][16] = 1.3882300; + aaWAG[ 0][17] = 0.1131330; aaWAG[ 1][17] = 1.1639200; aaWAG[ 2][17] = 0.0719167; aaWAG[ 3][17] = 0.1297670; aaWAG[ 4][17] = 0.7170700; + aaWAG[ 5][17] = 0.2157370; aaWAG[ 6][17] = 0.1565570; aaWAG[ 7][17] = 0.3369830; aaWAG[ 8][17] = 0.2625690; aaWAG[ 9][17] = 0.2124830; + aaWAG[10][17] = 0.6653090; aaWAG[11][17] = 0.1375050; aaWAG[12][17] = 0.5157060; aaWAG[13][17] = 1.5296400; aaWAG[14][17] = 0.1394050; + aaWAG[15][17] = 0.5237420; aaWAG[16][17] = 0.1108640; aaWAG[17][17] = 0.0000000; aaWAG[18][17] = 2.4853900; aaWAG[19][17] = 0.3653690; + aaWAG[ 0][18] = 0.2407350; aaWAG[ 1][18] = 0.3815330; aaWAG[ 2][18] = 1.0860000; aaWAG[ 3][18] = 0.3257110; aaWAG[ 4][18] = 0.5438330; + aaWAG[ 5][18] = 0.2277100; aaWAG[ 6][18] = 0.1963030; aaWAG[ 7][18] = 0.1036040; aaWAG[ 8][18] = 3.8734400; aaWAG[ 9][18] = 0.4201700; + aaWAG[10][18] = 0.3986180; aaWAG[11][18] = 0.1332640; aaWAG[12][18] = 0.4284370; aaWAG[13][18] = 6.4542800; aaWAG[14][18] = 0.2160460; + aaWAG[15][18] = 0.7869930; aaWAG[16][18] = 0.2911480; aaWAG[17][18] = 2.4853900; aaWAG[18][18] = 0.0000000; aaWAG[19][18] = 0.3147300; + aaWAG[ 0][19] = 2.0060100; aaWAG[ 1][19] = 0.2518490; aaWAG[ 2][19] = 0.1962460; aaWAG[ 3][19] = 0.1523350; aaWAG[ 4][19] = 1.0021400; + aaWAG[ 5][19] = 0.3012810; aaWAG[ 6][19] = 0.5887310; aaWAG[ 7][19] = 0.1872470; aaWAG[ 8][19] = 0.1183580; aaWAG[ 9][19] = 7.8213000; + aaWAG[10][19] = 1.8003400; aaWAG[11][19] = 0.3054340; aaWAG[12][19] = 2.0584500; aaWAG[13][19] = 0.6498920; aaWAG[14][19] = 0.3148870; + aaWAG[15][19] = 0.2327390; aaWAG[16][19] = 1.3882300; aaWAG[17][19] = 0.3653690; aaWAG[18][19] = 0.3147300; aaWAG[19][19] = 0.0000000; + wagPi[ 0] = 0.08662790; + wagPi[ 1] = 0.04397200; + wagPi[ 2] = 0.03908940; + wagPi[ 3] = 0.05704510; + wagPi[ 4] = 0.01930780; + wagPi[ 5] = 0.03672810; + wagPi[ 6] = 0.05805890; + wagPi[ 7] = 0.08325180; + wagPi[ 8] = 0.02443130; + wagPi[ 9] = 0.04846600; + wagPi[10] = 0.08620970; + wagPi[11] = 0.06202860; + wagPi[12] = 0.01950273; + wagPi[13] = 0.03843190; + wagPi[14] = 0.04576310; + wagPi[15] = 0.06951790; + wagPi[16] = 0.06101270; + wagPi[17] = 0.01438590; + wagPi[18] = 0.03527420; + wagPi[19] = 0.07089560; + + /* cpRev */ + aacpREV[ 0][ 0] = 0; aacpREV[ 0][ 1] = 105; aacpREV[ 0][ 2] = 227; aacpREV[ 0][ 3] = 175; aacpREV[ 0][ 4] = 669; + aacpREV[ 0][ 5] = 157; aacpREV[ 0][ 6] = 499; aacpREV[ 0][ 7] = 665; aacpREV[ 0][ 8] = 66; aacpREV[ 0][ 9] = 145; + aacpREV[ 0][10] = 197; aacpREV[ 0][11] = 236; aacpREV[ 0][12] = 185; aacpREV[ 0][13] = 68; aacpREV[ 0][14] = 490; + aacpREV[ 0][15] = 2440; aacpREV[ 0][16] = 1340; aacpREV[ 0][17] = 14; aacpREV[ 0][18] = 56; aacpREV[ 0][19] = 968; + aacpREV[ 1][ 0] = 105; aacpREV[ 1][ 1] = 0; aacpREV[ 1][ 2] = 357; aacpREV[ 1][ 3] = 43; aacpREV[ 1][ 4] = 823; + aacpREV[ 1][ 5] = 1745; aacpREV[ 1][ 6] = 152; aacpREV[ 1][ 7] = 243; aacpREV[ 1][ 8] = 715; aacpREV[ 1][ 9] = 136; + aacpREV[ 1][10] = 203; aacpREV[ 1][11] = 4482; aacpREV[ 1][12] = 125; aacpREV[ 1][13] = 53; aacpREV[ 1][14] = 87; + aacpREV[ 1][15] = 385; aacpREV[ 1][16] = 314; aacpREV[ 1][17] = 230; aacpREV[ 1][18] = 323; aacpREV[ 1][19] = 92; + aacpREV[ 2][ 0] = 227; aacpREV[ 2][ 1] = 357; aacpREV[ 2][ 2] = 0; aacpREV[ 2][ 3] = 4435; aacpREV[ 2][ 4] = 538; + aacpREV[ 2][ 5] = 768; aacpREV[ 2][ 6] = 1055; aacpREV[ 2][ 7] = 653; aacpREV[ 2][ 8] = 1405; aacpREV[ 2][ 9] = 168; + aacpREV[ 2][10] = 113; aacpREV[ 2][11] = 2430; aacpREV[ 2][12] = 61; aacpREV[ 2][13] = 97; aacpREV[ 2][14] = 173; + aacpREV[ 2][15] = 2085; aacpREV[ 2][16] = 1393; aacpREV[ 2][17] = 40; aacpREV[ 2][18] = 754; aacpREV[ 2][19] = 83; + aacpREV[ 3][ 0] = 175; aacpREV[ 3][ 1] = 43; aacpREV[ 3][ 2] = 4435; aacpREV[ 3][ 3] = 0; aacpREV[ 3][ 4] = 10; + aacpREV[ 3][ 5] = 400; aacpREV[ 3][ 6] = 3691; aacpREV[ 3][ 7] = 431; aacpREV[ 3][ 8] = 331; aacpREV[ 3][ 9] = 10; + aacpREV[ 3][10] = 10; aacpREV[ 3][11] = 412; aacpREV[ 3][12] = 47; aacpREV[ 3][13] = 22; aacpREV[ 3][14] = 170; + aacpREV[ 3][15] = 590; aacpREV[ 3][16] = 266; aacpREV[ 3][17] = 18; aacpREV[ 3][18] = 281; aacpREV[ 3][19] = 75; + aacpREV[ 4][ 0] = 669; aacpREV[ 4][ 1] = 823; aacpREV[ 4][ 2] = 538; aacpREV[ 4][ 3] = 10; aacpREV[ 4][ 4] = 0; + aacpREV[ 4][ 5] = 10; aacpREV[ 4][ 6] = 10; aacpREV[ 4][ 7] = 303; aacpREV[ 4][ 8] = 441; aacpREV[ 4][ 9] = 280; + aacpREV[ 4][10] = 396; aacpREV[ 4][11] = 48; aacpREV[ 4][12] = 159; aacpREV[ 4][13] = 726; aacpREV[ 4][14] = 285; + aacpREV[ 4][15] = 2331; aacpREV[ 4][16] = 576; aacpREV[ 4][17] = 435; aacpREV[ 4][18] = 1466; aacpREV[ 4][19] = 592; + aacpREV[ 5][ 0] = 157; aacpREV[ 5][ 1] = 1745; aacpREV[ 5][ 2] = 768; aacpREV[ 5][ 3] = 400; aacpREV[ 5][ 4] = 10; + aacpREV[ 5][ 5] = 0; aacpREV[ 5][ 6] = 3122; aacpREV[ 5][ 7] = 133; aacpREV[ 5][ 8] = 1269; aacpREV[ 5][ 9] = 92; + aacpREV[ 5][10] = 286; aacpREV[ 5][11] = 3313; aacpREV[ 5][12] = 202; aacpREV[ 5][13] = 10; aacpREV[ 5][14] = 323; + aacpREV[ 5][15] = 396; aacpREV[ 5][16] = 241; aacpREV[ 5][17] = 53; aacpREV[ 5][18] = 391; aacpREV[ 5][19] = 54; + aacpREV[ 6][ 0] = 499; aacpREV[ 6][ 1] = 152; aacpREV[ 6][ 2] = 1055; aacpREV[ 6][ 3] = 3691; aacpREV[ 6][ 4] = 10; + aacpREV[ 6][ 5] = 3122; aacpREV[ 6][ 6] = 0; aacpREV[ 6][ 7] = 379; aacpREV[ 6][ 8] = 162; aacpREV[ 6][ 9] = 148; + aacpREV[ 6][10] = 82; aacpREV[ 6][11] = 2629; aacpREV[ 6][12] = 113; aacpREV[ 6][13] = 145; aacpREV[ 6][14] = 185; + aacpREV[ 6][15] = 568; aacpREV[ 6][16] = 369; aacpREV[ 6][17] = 63; aacpREV[ 6][18] = 142; aacpREV[ 6][19] = 200; + aacpREV[ 7][ 0] = 665; aacpREV[ 7][ 1] = 243; aacpREV[ 7][ 2] = 653; aacpREV[ 7][ 3] = 431; aacpREV[ 7][ 4] = 303; + aacpREV[ 7][ 5] = 133; aacpREV[ 7][ 6] = 379; aacpREV[ 7][ 7] = 0; aacpREV[ 7][ 8] = 19; aacpREV[ 7][ 9] = 40; + aacpREV[ 7][10] = 20; aacpREV[ 7][11] = 263; aacpREV[ 7][12] = 21; aacpREV[ 7][13] = 25; aacpREV[ 7][14] = 28; + aacpREV[ 7][15] = 691; aacpREV[ 7][16] = 92; aacpREV[ 7][17] = 82; aacpREV[ 7][18] = 10; aacpREV[ 7][19] = 91; + aacpREV[ 8][ 0] = 66; aacpREV[ 8][ 1] = 715; aacpREV[ 8][ 2] = 1405; aacpREV[ 8][ 3] = 331; aacpREV[ 8][ 4] = 441; + aacpREV[ 8][ 5] = 1269; aacpREV[ 8][ 6] = 162; aacpREV[ 8][ 7] = 19; aacpREV[ 8][ 8] = 0; aacpREV[ 8][ 9] = 29; + aacpREV[ 8][10] = 66; aacpREV[ 8][11] = 305; aacpREV[ 8][12] = 10; aacpREV[ 8][13] = 127; aacpREV[ 8][14] = 152; + aacpREV[ 8][15] = 303; aacpREV[ 8][16] = 32; aacpREV[ 8][17] = 69; aacpREV[ 8][18] = 1971; aacpREV[ 8][19] = 25; + aacpREV[ 9][ 0] = 145; aacpREV[ 9][ 1] = 136; aacpREV[ 9][ 2] = 168; aacpREV[ 9][ 3] = 10; aacpREV[ 9][ 4] = 280; + aacpREV[ 9][ 5] = 92; aacpREV[ 9][ 6] = 148; aacpREV[ 9][ 7] = 40; aacpREV[ 9][ 8] = 29; aacpREV[ 9][ 9] = 0; + aacpREV[ 9][10] = 1745; aacpREV[ 9][11] = 345; aacpREV[ 9][12] = 1772; aacpREV[ 9][13] = 454; aacpREV[ 9][14] = 117; + aacpREV[ 9][15] = 216; aacpREV[ 9][16] = 1040; aacpREV[ 9][17] = 42; aacpREV[ 9][18] = 89; aacpREV[ 9][19] = 4797; + aacpREV[10][ 0] = 197; aacpREV[10][ 1] = 203; aacpREV[10][ 2] = 113; aacpREV[10][ 3] = 10; aacpREV[10][ 4] = 396; + aacpREV[10][ 5] = 286; aacpREV[10][ 6] = 82; aacpREV[10][ 7] = 20; aacpREV[10][ 8] = 66; aacpREV[10][ 9] = 1745; + aacpREV[10][10] = 0; aacpREV[10][11] = 218; aacpREV[10][12] = 1351; aacpREV[10][13] = 1268; aacpREV[10][14] = 219; + aacpREV[10][15] = 516; aacpREV[10][16] = 156; aacpREV[10][17] = 159; aacpREV[10][18] = 189; aacpREV[10][19] = 865; + aacpREV[11][ 0] = 236; aacpREV[11][ 1] = 4482; aacpREV[11][ 2] = 2430; aacpREV[11][ 3] = 412; aacpREV[11][ 4] = 48; + aacpREV[11][ 5] = 3313; aacpREV[11][ 6] = 2629; aacpREV[11][ 7] = 263; aacpREV[11][ 8] = 305; aacpREV[11][ 9] = 345; + aacpREV[11][10] = 218; aacpREV[11][11] = 0; aacpREV[11][12] = 193; aacpREV[11][13] = 72; aacpREV[11][14] = 302; + aacpREV[11][15] = 868; aacpREV[11][16] = 918; aacpREV[11][17] = 10; aacpREV[11][18] = 247; aacpREV[11][19] = 249; + aacpREV[12][ 0] = 185; aacpREV[12][ 1] = 125; aacpREV[12][ 2] = 61; aacpREV[12][ 3] = 47; aacpREV[12][ 4] = 159; + aacpREV[12][ 5] = 202; aacpREV[12][ 6] = 113; aacpREV[12][ 7] = 21; aacpREV[12][ 8] = 10; aacpREV[12][ 9] = 1772; + aacpREV[12][10] = 1351; aacpREV[12][11] = 193; aacpREV[12][12] = 0; aacpREV[12][13] = 327; aacpREV[12][14] = 100; + aacpREV[12][15] = 93; aacpREV[12][16] = 645; aacpREV[12][17] = 86; aacpREV[12][18] = 215; aacpREV[12][19] = 475; + aacpREV[13][ 0] = 68; aacpREV[13][ 1] = 53; aacpREV[13][ 2] = 97; aacpREV[13][ 3] = 22; aacpREV[13][ 4] = 726; + aacpREV[13][ 5] = 10; aacpREV[13][ 6] = 145; aacpREV[13][ 7] = 25; aacpREV[13][ 8] = 127; aacpREV[13][ 9] = 454; + aacpREV[13][10] = 1268; aacpREV[13][11] = 72; aacpREV[13][12] = 327; aacpREV[13][13] = 0; aacpREV[13][14] = 43; + aacpREV[13][15] = 487; aacpREV[13][16] = 148; aacpREV[13][17] = 468; aacpREV[13][18] = 2370; aacpREV[13][19] = 317; + aacpREV[14][ 0] = 490; aacpREV[14][ 1] = 87; aacpREV[14][ 2] = 173; aacpREV[14][ 3] = 170; aacpREV[14][ 4] = 285; + aacpREV[14][ 5] = 323; aacpREV[14][ 6] = 185; aacpREV[14][ 7] = 28; aacpREV[14][ 8] = 152; aacpREV[14][ 9] = 117; + aacpREV[14][10] = 219; aacpREV[14][11] = 302; aacpREV[14][12] = 100; aacpREV[14][13] = 43; aacpREV[14][14] = 0; + aacpREV[14][15] = 1202; aacpREV[14][16] = 260; aacpREV[14][17] = 49; aacpREV[14][18] = 97; aacpREV[14][19] = 122; + aacpREV[15][ 0] = 2440; aacpREV[15][ 1] = 385; aacpREV[15][ 2] = 2085; aacpREV[15][ 3] = 590; aacpREV[15][ 4] = 2331; + aacpREV[15][ 5] = 396; aacpREV[15][ 6] = 568; aacpREV[15][ 7] = 691; aacpREV[15][ 8] = 303; aacpREV[15][ 9] = 216; + aacpREV[15][10] = 516; aacpREV[15][11] = 868; aacpREV[15][12] = 93; aacpREV[15][13] = 487; aacpREV[15][14] = 1202; + aacpREV[15][15] = 0; aacpREV[15][16] = 2151; aacpREV[15][17] = 73; aacpREV[15][18] = 522; aacpREV[15][19] = 167; + aacpREV[16][ 0] = 1340; aacpREV[16][ 1] = 314; aacpREV[16][ 2] = 1393; aacpREV[16][ 3] = 266; aacpREV[16][ 4] = 576; + aacpREV[16][ 5] = 241; aacpREV[16][ 6] = 369; aacpREV[16][ 7] = 92; aacpREV[16][ 8] = 32; aacpREV[16][ 9] = 1040; + aacpREV[16][10] = 156; aacpREV[16][11] = 918; aacpREV[16][12] = 645; aacpREV[16][13] = 148; aacpREV[16][14] = 260; + aacpREV[16][15] = 2151; aacpREV[16][16] = 0; aacpREV[16][17] = 29; aacpREV[16][18] = 71; aacpREV[16][19] = 760; + aacpREV[17][ 0] = 14; aacpREV[17][ 1] = 230; aacpREV[17][ 2] = 40; aacpREV[17][ 3] = 18; aacpREV[17][ 4] = 435; + aacpREV[17][ 5] = 53; aacpREV[17][ 6] = 63; aacpREV[17][ 7] = 82; aacpREV[17][ 8] = 69; aacpREV[17][ 9] = 42; + aacpREV[17][10] = 159; aacpREV[17][11] = 10; aacpREV[17][12] = 86; aacpREV[17][13] = 468; aacpREV[17][14] = 49; + aacpREV[17][15] = 73; aacpREV[17][16] = 29; aacpREV[17][17] = 0; aacpREV[17][18] = 346; aacpREV[17][19] = 10; + aacpREV[18][ 0] = 56; aacpREV[18][ 1] = 323; aacpREV[18][ 2] = 754; aacpREV[18][ 3] = 281; aacpREV[18][ 4] = 1466; + aacpREV[18][ 5] = 391; aacpREV[18][ 6] = 142; aacpREV[18][ 7] = 10; aacpREV[18][ 8] = 1971; aacpREV[18][ 9] = 89; + aacpREV[18][10] = 189; aacpREV[18][11] = 247; aacpREV[18][12] = 215; aacpREV[18][13] = 2370; aacpREV[18][14] = 97; + aacpREV[18][15] = 522; aacpREV[18][16] = 71; aacpREV[18][17] = 346; aacpREV[18][18] = 0; aacpREV[18][19] = 119; + aacpREV[19][ 0] = 968; aacpREV[19][ 1] = 92; aacpREV[19][ 2] = 83; aacpREV[19][ 3] = 75; aacpREV[19][ 4] = 592; + aacpREV[19][ 5] = 54; aacpREV[19][ 6] = 200; aacpREV[19][ 7] = 91; aacpREV[19][ 8] = 25; aacpREV[19][ 9] = 4797; + aacpREV[19][10] = 865; aacpREV[19][11] = 249; aacpREV[19][12] = 475; aacpREV[19][13] = 317; aacpREV[19][14] = 122; + aacpREV[19][15] = 167; aacpREV[19][16] = 760; aacpREV[19][17] = 10; aacpREV[19][18] = 119; aacpREV[19][19] = 0; + + cprevPi[0] = 0.076; + cprevPi[1] = 0.062; + cprevPi[2] = 0.041; + cprevPi[3] = 0.037; + cprevPi[4] = 0.009; + cprevPi[5] = 0.038; + cprevPi[6] = 0.049; + cprevPi[7] = 0.084; + cprevPi[8] = 0.025; + cprevPi[9] = 0.081; + cprevPi[10] = 0.101; + cprevPi[11] = 0.050; + cprevPi[12] = 0.022; + cprevPi[13] = 0.051; + cprevPi[14] = 0.043; + cprevPi[15] = 0.062; + cprevPi[16] = 0.054; + cprevPi[17] = 0.018; + cprevPi[18] = 0.031; + cprevPi[19] = 0.066; + + /* VT model */ + aaVt[ 0][ 0] = 0.000000; aaVt[ 0][ 1] = 0.233108; aaVt[ 0][ 2] = 0.199097; aaVt[ 0][ 3] = 0.265145; aaVt[ 0][ 4] = 0.227333; + aaVt[ 0][ 5] = 0.310084; aaVt[ 0][ 6] = 0.567957; aaVt[ 0][ 7] = 0.876213; aaVt[ 0][ 8] = 0.078692; aaVt[ 0][ 9] = 0.222972; + aaVt[ 0][10] = 0.424630; aaVt[ 0][11] = 0.393245; aaVt[ 0][12] = 0.211550; aaVt[ 0][13] = 0.116646; aaVt[ 0][14] = 0.399143; + aaVt[ 0][15] = 1.817198; aaVt[ 0][16] = 0.877877; aaVt[ 0][17] = 0.030309; aaVt[ 0][18] = 0.087061; aaVt[ 0][19] = 1.230985; + aaVt[ 1][ 0] = 0.233108; aaVt[ 1][ 1] = 0.000000; aaVt[ 1][ 2] = 0.210797; aaVt[ 1][ 3] = 0.105191; aaVt[ 1][ 4] = 0.031726; + aaVt[ 1][ 5] = 0.493763; aaVt[ 1][ 6] = 0.255240; aaVt[ 1][ 7] = 0.156945; aaVt[ 1][ 8] = 0.213164; aaVt[ 1][ 9] = 0.081510; + aaVt[ 1][10] = 0.192364; aaVt[ 1][11] = 1.755838; aaVt[ 1][12] = 0.087930; aaVt[ 1][13] = 0.042569; aaVt[ 1][14] = 0.128480; + aaVt[ 1][15] = 0.292327; aaVt[ 1][16] = 0.204109; aaVt[ 1][17] = 0.046417; aaVt[ 1][18] = 0.097010; aaVt[ 1][19] = 0.113146; + aaVt[ 2][ 0] = 0.199097; aaVt[ 2][ 1] = 0.210797; aaVt[ 2][ 2] = 0.000000; aaVt[ 2][ 3] = 0.883422; aaVt[ 2][ 4] = 0.027495; + aaVt[ 2][ 5] = 0.275700; aaVt[ 2][ 6] = 0.270417; aaVt[ 2][ 7] = 0.362028; aaVt[ 2][ 8] = 0.290006; aaVt[ 2][ 9] = 0.087225; + aaVt[ 2][10] = 0.069245; aaVt[ 2][11] = 0.503060; aaVt[ 2][12] = 0.057420; aaVt[ 2][13] = 0.039769; aaVt[ 2][14] = 0.083956; + aaVt[ 2][15] = 0.847049; aaVt[ 2][16] = 0.471268; aaVt[ 2][17] = 0.010459; aaVt[ 2][18] = 0.093268; aaVt[ 2][19] = 0.049824; + aaVt[ 3][ 0] = 0.265145; aaVt[ 3][ 1] = 0.105191; aaVt[ 3][ 2] = 0.883422; aaVt[ 3][ 3] = 0.000000; aaVt[ 3][ 4] = 0.010313; + aaVt[ 3][ 5] = 0.205842; aaVt[ 3][ 6] = 1.599461; aaVt[ 3][ 7] = 0.311718; aaVt[ 3][ 8] = 0.134252; aaVt[ 3][ 9] = 0.011720; + aaVt[ 3][10] = 0.060863; aaVt[ 3][11] = 0.261101; aaVt[ 3][12] = 0.012182; aaVt[ 3][13] = 0.016577; aaVt[ 3][14] = 0.160063; + aaVt[ 3][15] = 0.461519; aaVt[ 3][16] = 0.178197; aaVt[ 3][17] = 0.011393; aaVt[ 3][18] = 0.051664; aaVt[ 3][19] = 0.048769; + aaVt[ 4][ 0] = 0.227333; aaVt[ 4][ 1] = 0.031726; aaVt[ 4][ 2] = 0.027495; aaVt[ 4][ 3] = 0.010313; aaVt[ 4][ 4] = 0.000000; + aaVt[ 4][ 5] = 0.004315; aaVt[ 4][ 6] = 0.005321; aaVt[ 4][ 7] = 0.050876; aaVt[ 4][ 8] = 0.016695; aaVt[ 4][ 9] = 0.046398; + aaVt[ 4][10] = 0.091709; aaVt[ 4][11] = 0.004067; aaVt[ 4][12] = 0.023690; aaVt[ 4][13] = 0.051127; aaVt[ 4][14] = 0.011137; + aaVt[ 4][15] = 0.175270; aaVt[ 4][16] = 0.079511; aaVt[ 4][17] = 0.007732; aaVt[ 4][18] = 0.042823; aaVt[ 4][19] = 0.163831; + aaVt[ 5][ 0] = 0.310084; aaVt[ 5][ 1] = 0.493763; aaVt[ 5][ 2] = 0.275700; aaVt[ 5][ 3] = 0.205842; aaVt[ 5][ 4] = 0.004315; + aaVt[ 5][ 5] = 0.000000; aaVt[ 5][ 6] = 0.960976; aaVt[ 5][ 7] = 0.128660; aaVt[ 5][ 8] = 0.315521; aaVt[ 5][ 9] = 0.054602; + aaVt[ 5][10] = 0.243530; aaVt[ 5][11] = 0.738208; aaVt[ 5][12] = 0.120801; aaVt[ 5][13] = 0.026235; aaVt[ 5][14] = 0.156570; + aaVt[ 5][15] = 0.358017; aaVt[ 5][16] = 0.248992; aaVt[ 5][17] = 0.021248; aaVt[ 5][18] = 0.062544; aaVt[ 5][19] = 0.112027; + aaVt[ 6][ 0] = 0.567957; aaVt[ 6][ 1] = 0.255240; aaVt[ 6][ 2] = 0.270417; aaVt[ 6][ 3] = 1.599461; aaVt[ 6][ 4] = 0.005321; + aaVt[ 6][ 5] = 0.960976; aaVt[ 6][ 6] = 0.000000; aaVt[ 6][ 7] = 0.250447; aaVt[ 6][ 8] = 0.104458; aaVt[ 6][ 9] = 0.046589; + aaVt[ 6][10] = 0.151924; aaVt[ 6][11] = 0.888630; aaVt[ 6][12] = 0.058643; aaVt[ 6][13] = 0.028168; aaVt[ 6][14] = 0.205134; + aaVt[ 6][15] = 0.406035; aaVt[ 6][16] = 0.321028; aaVt[ 6][17] = 0.018844; aaVt[ 6][18] = 0.055200; aaVt[ 6][19] = 0.205868; + aaVt[ 7][ 0] = 0.876213; aaVt[ 7][ 1] = 0.156945; aaVt[ 7][ 2] = 0.362028; aaVt[ 7][ 3] = 0.311718; aaVt[ 7][ 4] = 0.050876; + aaVt[ 7][ 5] = 0.128660; aaVt[ 7][ 6] = 0.250447; aaVt[ 7][ 7] = 0.000000; aaVt[ 7][ 8] = 0.058131; aaVt[ 7][ 9] = 0.051089; + aaVt[ 7][10] = 0.087056; aaVt[ 7][11] = 0.193243; aaVt[ 7][12] = 0.046560; aaVt[ 7][13] = 0.050143; aaVt[ 7][14] = 0.124492; + aaVt[ 7][15] = 0.612843; aaVt[ 7][16] = 0.136266; aaVt[ 7][17] = 0.023990; aaVt[ 7][18] = 0.037568; aaVt[ 7][19] = 0.082579; + aaVt[ 8][ 0] = 0.078692; aaVt[ 8][ 1] = 0.213164; aaVt[ 8][ 2] = 0.290006; aaVt[ 8][ 3] = 0.134252; aaVt[ 8][ 4] = 0.016695; + aaVt[ 8][ 5] = 0.315521; aaVt[ 8][ 6] = 0.104458; aaVt[ 8][ 7] = 0.058131; aaVt[ 8][ 8] = 0.000000; aaVt[ 8][ 9] = 0.020039; + aaVt[ 8][10] = 0.103552; aaVt[ 8][11] = 0.153323; aaVt[ 8][12] = 0.021157; aaVt[ 8][13] = 0.079807; aaVt[ 8][14] = 0.078892; + aaVt[ 8][15] = 0.167406; aaVt[ 8][16] = 0.101117; aaVt[ 8][17] = 0.020009; aaVt[ 8][18] = 0.286027; aaVt[ 8][19] = 0.068575; + aaVt[ 9][ 0] = 0.222972; aaVt[ 9][ 1] = 0.081510; aaVt[ 9][ 2] = 0.087225; aaVt[ 9][ 3] = 0.011720; aaVt[ 9][ 4] = 0.046398; + aaVt[ 9][ 5] = 0.054602; aaVt[ 9][ 6] = 0.046589; aaVt[ 9][ 7] = 0.051089; aaVt[ 9][ 8] = 0.020039; aaVt[ 9][ 9] = 0.000000; + aaVt[ 9][10] = 2.089890; aaVt[ 9][11] = 0.093181; aaVt[ 9][12] = 0.493845; aaVt[ 9][13] = 0.321020; aaVt[ 9][14] = 0.054797; + aaVt[ 9][15] = 0.081567; aaVt[ 9][16] = 0.376588; aaVt[ 9][17] = 0.034954; aaVt[ 9][18] = 0.086237; aaVt[ 9][19] = 3.654430; + aaVt[10][ 0] = 0.424630; aaVt[10][ 1] = 0.192364; aaVt[10][ 2] = 0.069245; aaVt[10][ 3] = 0.060863; aaVt[10][ 4] = 0.091709; + aaVt[10][ 5] = 0.243530; aaVt[10][ 6] = 0.151924; aaVt[10][ 7] = 0.087056; aaVt[10][ 8] = 0.103552; aaVt[10][ 9] = 2.089890; + aaVt[10][10] = 0.000000; aaVt[10][11] = 0.201204; aaVt[10][12] = 1.105667; aaVt[10][13] = 0.946499; aaVt[10][14] = 0.169784; + aaVt[10][15] = 0.214977; aaVt[10][16] = 0.243227; aaVt[10][17] = 0.083439; aaVt[10][18] = 0.189842; aaVt[10][19] = 1.337571; + aaVt[11][ 0] = 0.393245; aaVt[11][ 1] = 1.755838; aaVt[11][ 2] = 0.503060; aaVt[11][ 3] = 0.261101; aaVt[11][ 4] = 0.004067; + aaVt[11][ 5] = 0.738208; aaVt[11][ 6] = 0.888630; aaVt[11][ 7] = 0.193243; aaVt[11][ 8] = 0.153323; aaVt[11][ 9] = 0.093181; + aaVt[11][10] = 0.201204; aaVt[11][11] = 0.000000; aaVt[11][12] = 0.096474; aaVt[11][13] = 0.038261; aaVt[11][14] = 0.212302; + aaVt[11][15] = 0.400072; aaVt[11][16] = 0.446646; aaVt[11][17] = 0.023321; aaVt[11][18] = 0.068689; aaVt[11][19] = 0.144587; + aaVt[12][ 0] = 0.211550; aaVt[12][ 1] = 0.087930; aaVt[12][ 2] = 0.057420; aaVt[12][ 3] = 0.012182; aaVt[12][ 4] = 0.023690; + aaVt[12][ 5] = 0.120801; aaVt[12][ 6] = 0.058643; aaVt[12][ 7] = 0.046560; aaVt[12][ 8] = 0.021157; aaVt[12][ 9] = 0.493845; + aaVt[12][10] = 1.105667; aaVt[12][11] = 0.096474; aaVt[12][12] = 0.000000; aaVt[12][13] = 0.173052; aaVt[12][14] = 0.010363; + aaVt[12][15] = 0.090515; aaVt[12][16] = 0.184609; aaVt[12][17] = 0.022019; aaVt[12][18] = 0.073223; aaVt[12][19] = 0.307309; + aaVt[13][ 0] = 0.116646; aaVt[13][ 1] = 0.042569; aaVt[13][ 2] = 0.039769; aaVt[13][ 3] = 0.016577; aaVt[13][ 4] = 0.051127; + aaVt[13][ 5] = 0.026235; aaVt[13][ 6] = 0.028168; aaVt[13][ 7] = 0.050143; aaVt[13][ 8] = 0.079807; aaVt[13][ 9] = 0.321020; + aaVt[13][10] = 0.946499; aaVt[13][11] = 0.038261; aaVt[13][12] = 0.173052; aaVt[13][13] = 0.000000; aaVt[13][14] = 0.042564; + aaVt[13][15] = 0.138119; aaVt[13][16] = 0.085870; aaVt[13][17] = 0.128050; aaVt[13][18] = 0.898663; aaVt[13][19] = 0.247329; + aaVt[14][ 0] = 0.399143; aaVt[14][ 1] = 0.128480; aaVt[14][ 2] = 0.083956; aaVt[14][ 3] = 0.160063; aaVt[14][ 4] = 0.011137; + aaVt[14][ 5] = 0.156570; aaVt[14][ 6] = 0.205134; aaVt[14][ 7] = 0.124492; aaVt[14][ 8] = 0.078892; aaVt[14][ 9] = 0.054797; + aaVt[14][10] = 0.169784; aaVt[14][11] = 0.212302; aaVt[14][12] = 0.010363; aaVt[14][13] = 0.042564; aaVt[14][14] = 0.000000; + aaVt[14][15] = 0.430431; aaVt[14][16] = 0.207143; aaVt[14][17] = 0.014584; aaVt[14][18] = 0.032043; aaVt[14][19] = 0.129315; + aaVt[15][ 0] = 1.817198; aaVt[15][ 1] = 0.292327; aaVt[15][ 2] = 0.847049; aaVt[15][ 3] = 0.461519; aaVt[15][ 4] = 0.175270; + aaVt[15][ 5] = 0.358017; aaVt[15][ 6] = 0.406035; aaVt[15][ 7] = 0.612843; aaVt[15][ 8] = 0.167406; aaVt[15][ 9] = 0.081567; + aaVt[15][10] = 0.214977; aaVt[15][11] = 0.400072; aaVt[15][12] = 0.090515; aaVt[15][13] = 0.138119; aaVt[15][14] = 0.430431; + aaVt[15][15] = 0.000000; aaVt[15][16] = 1.767766; aaVt[15][17] = 0.035933; aaVt[15][18] = 0.121979; aaVt[15][19] = 0.127700; + aaVt[16][ 0] = 0.877877; aaVt[16][ 1] = 0.204109; aaVt[16][ 2] = 0.471268; aaVt[16][ 3] = 0.178197; aaVt[16][ 4] = 0.079511; + aaVt[16][ 5] = 0.248992; aaVt[16][ 6] = 0.321028; aaVt[16][ 7] = 0.136266; aaVt[16][ 8] = 0.101117; aaVt[16][ 9] = 0.376588; + aaVt[16][10] = 0.243227; aaVt[16][11] = 0.446646; aaVt[16][12] = 0.184609; aaVt[16][13] = 0.085870; aaVt[16][14] = 0.207143; + aaVt[16][15] = 1.767766; aaVt[16][16] = 0.000000; aaVt[16][17] = 0.020437; aaVt[16][18] = 0.094617; aaVt[16][19] = 0.740372; + aaVt[17][ 0] = 0.030309; aaVt[17][ 1] = 0.046417; aaVt[17][ 2] = 0.010459; aaVt[17][ 3] = 0.011393; aaVt[17][ 4] = 0.007732; + aaVt[17][ 5] = 0.021248; aaVt[17][ 6] = 0.018844; aaVt[17][ 7] = 0.023990; aaVt[17][ 8] = 0.020009; aaVt[17][ 9] = 0.034954; + aaVt[17][10] = 0.083439; aaVt[17][11] = 0.023321; aaVt[17][12] = 0.022019; aaVt[17][13] = 0.128050; aaVt[17][14] = 0.014584; + aaVt[17][15] = 0.035933; aaVt[17][16] = 0.020437; aaVt[17][17] = 0.000000; aaVt[17][18] = 0.124746; aaVt[17][19] = 0.022134; + aaVt[18][ 0] = 0.087061; aaVt[18][ 1] = 0.097010; aaVt[18][ 2] = 0.093268; aaVt[18][ 3] = 0.051664; aaVt[18][ 4] = 0.042823; + aaVt[18][ 5] = 0.062544; aaVt[18][ 6] = 0.055200; aaVt[18][ 7] = 0.037568; aaVt[18][ 8] = 0.286027; aaVt[18][ 9] = 0.086237; + aaVt[18][10] = 0.189842; aaVt[18][11] = 0.068689; aaVt[18][12] = 0.073223; aaVt[18][13] = 0.898663; aaVt[18][14] = 0.032043; + aaVt[18][15] = 0.121979; aaVt[18][16] = 0.094617; aaVt[18][17] = 0.124746; aaVt[18][18] = 0.000000; aaVt[18][19] = 0.125733; + aaVt[19][ 0] = 1.230985; aaVt[19][ 1] = 0.113146; aaVt[19][ 2] = 0.049824; aaVt[19][ 3] = 0.048769; aaVt[19][ 4] = 0.163831; + aaVt[19][ 5] = 0.112027; aaVt[19][ 6] = 0.205868; aaVt[19][ 7] = 0.082579; aaVt[19][ 8] = 0.068575; aaVt[19][ 9] = 3.654430; + aaVt[19][10] = 1.337571; aaVt[19][11] = 0.144587; aaVt[19][12] = 0.307309; aaVt[19][13] = 0.247329; aaVt[19][14] = 0.129315; + aaVt[19][15] = 0.127700; aaVt[19][16] = 0.740372; aaVt[19][17] = 0.022134; aaVt[19][18] = 0.125733; aaVt[19][19] = 0.000000; + + vtPi[ 0] = 0.078837; + vtPi[ 1] = 0.051238; + vtPi[ 2] = 0.042313; + vtPi[ 3] = 0.053066; + vtPi[ 4] = 0.015175; + vtPi[ 5] = 0.036713; + vtPi[ 6] = 0.061924; + vtPi[ 7] = 0.070852; + vtPi[ 8] = 0.023082; + vtPi[ 9] = 0.062056; + vtPi[10] = 0.096371; + vtPi[11] = 0.057324; + vtPi[12] = 0.023771; + vtPi[13] = 0.043296; + vtPi[14] = 0.043911; + vtPi[15] = 0.063403; + vtPi[16] = 0.055897; + vtPi[17] = 0.013272; + vtPi[18] = 0.034399; + vtPi[19] = 0.073101; + + /* Blosum62 */ + aaBlosum[ 0][ 0] = 0.000000000000; aaBlosum[ 0][ 1] = 0.735790389698; aaBlosum[ 0][ 2] = 0.485391055466; aaBlosum[ 0][ 3] = 0.543161820899; aaBlosum[ 0][ 4] = 1.459995310470; + aaBlosum[ 0][ 5] = 1.199705704602; aaBlosum[ 0][ 6] = 1.170949042800; aaBlosum[ 0][ 7] = 1.955883574960; aaBlosum[ 0][ 8] = 0.716241444998; aaBlosum[ 0][ 9] = 0.605899003687; + aaBlosum[ 0][10] = 0.800016530518; aaBlosum[ 0][11] = 1.295201266783; aaBlosum[ 0][12] = 1.253758266664; aaBlosum[ 0][13] = 0.492964679748; aaBlosum[ 0][14] = 1.173275900924; + aaBlosum[ 0][15] = 4.325092687057; aaBlosum[ 0][16] = 1.729178019485; aaBlosum[ 0][17] = 0.465839367725; aaBlosum[ 0][18] = 0.718206697586; aaBlosum[ 0][19] = 2.187774522005; + aaBlosum[ 1][ 0] = 0.735790389698; aaBlosum[ 1][ 1] = 0.000000000000; aaBlosum[ 1][ 2] = 1.297446705134; aaBlosum[ 1][ 3] = 0.500964408555; aaBlosum[ 1][ 4] = 0.227826574209; + aaBlosum[ 1][ 5] = 3.020833610064; aaBlosum[ 1][ 6] = 1.360574190420; aaBlosum[ 1][ 7] = 0.418763308518; aaBlosum[ 1][ 8] = 1.456141166336; aaBlosum[ 1][ 9] = 0.232036445142; + aaBlosum[ 1][10] = 0.622711669692; aaBlosum[ 1][11] = 5.411115141489; aaBlosum[ 1][12] = 0.983692987457; aaBlosum[ 1][13] = 0.371644693209; aaBlosum[ 1][14] = 0.448133661718; + aaBlosum[ 1][15] = 1.122783104210; aaBlosum[ 1][16] = 0.914665954563; aaBlosum[ 1][17] = 0.426382310122; aaBlosum[ 1][18] = 0.720517441216; aaBlosum[ 1][19] = 0.438388343772; + aaBlosum[ 2][ 0] = 0.485391055466; aaBlosum[ 2][ 1] = 1.297446705134; aaBlosum[ 2][ 2] = 0.000000000000; aaBlosum[ 2][ 3] = 3.180100048216; aaBlosum[ 2][ 4] = 0.397358949897; + aaBlosum[ 2][ 5] = 1.839216146992; aaBlosum[ 2][ 6] = 1.240488508640; aaBlosum[ 2][ 7] = 1.355872344485; aaBlosum[ 2][ 8] = 2.414501434208; aaBlosum[ 2][ 9] = 0.283017326278; + aaBlosum[ 2][10] = 0.211888159615; aaBlosum[ 2][11] = 1.593137043457; aaBlosum[ 2][12] = 0.648441278787; aaBlosum[ 2][13] = 0.354861249223; aaBlosum[ 2][14] = 0.494887043702; + aaBlosum[ 2][15] = 2.904101656456; aaBlosum[ 2][16] = 1.898173634533; aaBlosum[ 2][17] = 0.191482046247; aaBlosum[ 2][18] = 0.538222519037; aaBlosum[ 2][19] = 0.312858797993; + aaBlosum[ 3][ 0] = 0.543161820899; aaBlosum[ 3][ 1] = 0.500964408555; aaBlosum[ 3][ 2] = 3.180100048216; aaBlosum[ 3][ 3] = 0.000000000000; aaBlosum[ 3][ 4] = 0.240836614802; + aaBlosum[ 3][ 5] = 1.190945703396; aaBlosum[ 3][ 6] = 3.761625208368; aaBlosum[ 3][ 7] = 0.798473248968; aaBlosum[ 3][ 8] = 0.778142664022; aaBlosum[ 3][ 9] = 0.418555732462; + aaBlosum[ 3][10] = 0.218131577594; aaBlosum[ 3][11] = 1.032447924952; aaBlosum[ 3][12] = 0.222621897958; aaBlosum[ 3][13] = 0.281730694207; aaBlosum[ 3][14] = 0.730628272998; + aaBlosum[ 3][15] = 1.582754142065; aaBlosum[ 3][16] = 0.934187509431; aaBlosum[ 3][17] = 0.145345046279; aaBlosum[ 3][18] = 0.261422208965; aaBlosum[ 3][19] = 0.258129289418; + aaBlosum[ 4][ 0] = 1.459995310470; aaBlosum[ 4][ 1] = 0.227826574209; aaBlosum[ 4][ 2] = 0.397358949897; aaBlosum[ 4][ 3] = 0.240836614802; aaBlosum[ 4][ 4] = 0.000000000000; + aaBlosum[ 4][ 5] = 0.329801504630; aaBlosum[ 4][ 6] = 0.140748891814; aaBlosum[ 4][ 7] = 0.418203192284; aaBlosum[ 4][ 8] = 0.354058109831; aaBlosum[ 4][ 9] = 0.774894022794; + aaBlosum[ 4][10] = 0.831842640142; aaBlosum[ 4][11] = 0.285078800906; aaBlosum[ 4][12] = 0.767688823480; aaBlosum[ 4][13] = 0.441337471187; aaBlosum[ 4][14] = 0.356008498769; + aaBlosum[ 4][15] = 1.197188415094; aaBlosum[ 4][16] = 1.119831358516; aaBlosum[ 4][17] = 0.527664418872; aaBlosum[ 4][18] = 0.470237733696; aaBlosum[ 4][19] = 1.116352478606; + aaBlosum[ 5][ 0] = 1.199705704602; aaBlosum[ 5][ 1] = 3.020833610064; aaBlosum[ 5][ 2] = 1.839216146992; aaBlosum[ 5][ 3] = 1.190945703396; aaBlosum[ 5][ 4] = 0.329801504630; + aaBlosum[ 5][ 5] = 0.000000000000; aaBlosum[ 5][ 6] = 5.528919177928; aaBlosum[ 5][ 7] = 0.609846305383; aaBlosum[ 5][ 8] = 2.435341131140; aaBlosum[ 5][ 9] = 0.236202451204; + aaBlosum[ 5][10] = 0.580737093181; aaBlosum[ 5][11] = 3.945277674515; aaBlosum[ 5][12] = 2.494896077113; aaBlosum[ 5][13] = 0.144356959750; aaBlosum[ 5][14] = 0.858570575674; + aaBlosum[ 5][15] = 1.934870924596; aaBlosum[ 5][16] = 1.277480294596; aaBlosum[ 5][17] = 0.758653808642; aaBlosum[ 5][18] = 0.958989742850; aaBlosum[ 5][19] = 0.530785790125; + aaBlosum[ 6][ 0] = 1.170949042800; aaBlosum[ 6][ 1] = 1.360574190420; aaBlosum[ 6][ 2] = 1.240488508640; aaBlosum[ 6][ 3] = 3.761625208368; aaBlosum[ 6][ 4] = 0.140748891814; + aaBlosum[ 6][ 5] = 5.528919177928; aaBlosum[ 6][ 6] = 0.000000000000; aaBlosum[ 6][ 7] = 0.423579992176; aaBlosum[ 6][ 8] = 1.626891056982; aaBlosum[ 6][ 9] = 0.186848046932; + aaBlosum[ 6][10] = 0.372625175087; aaBlosum[ 6][11] = 2.802427151679; aaBlosum[ 6][12] = 0.555415397470; aaBlosum[ 6][13] = 0.291409084165; aaBlosum[ 6][14] = 0.926563934846; + aaBlosum[ 6][15] = 1.769893238937; aaBlosum[ 6][16] = 1.071097236007; aaBlosum[ 6][17] = 0.407635648938; aaBlosum[ 6][18] = 0.596719300346; aaBlosum[ 6][19] = 0.524253846338; + aaBlosum[ 7][ 0] = 1.955883574960; aaBlosum[ 7][ 1] = 0.418763308518; aaBlosum[ 7][ 2] = 1.355872344485; aaBlosum[ 7][ 3] = 0.798473248968; aaBlosum[ 7][ 4] = 0.418203192284; + aaBlosum[ 7][ 5] = 0.609846305383; aaBlosum[ 7][ 6] = 0.423579992176; aaBlosum[ 7][ 7] = 0.000000000000; aaBlosum[ 7][ 8] = 0.539859124954; aaBlosum[ 7][ 9] = 0.189296292376; + aaBlosum[ 7][10] = 0.217721159236; aaBlosum[ 7][11] = 0.752042440303; aaBlosum[ 7][12] = 0.459436173579; aaBlosum[ 7][13] = 0.368166464453; aaBlosum[ 7][14] = 0.504086599527; + aaBlosum[ 7][15] = 1.509326253224; aaBlosum[ 7][16] = 0.641436011405; aaBlosum[ 7][17] = 0.508358924638; aaBlosum[ 7][18] = 0.308055737035; aaBlosum[ 7][19] = 0.253340790190; + aaBlosum[ 8][ 0] = 0.716241444998; aaBlosum[ 8][ 1] = 1.456141166336; aaBlosum[ 8][ 2] = 2.414501434208; aaBlosum[ 8][ 3] = 0.778142664022; aaBlosum[ 8][ 4] = 0.354058109831; + aaBlosum[ 8][ 5] = 2.435341131140; aaBlosum[ 8][ 6] = 1.626891056982; aaBlosum[ 8][ 7] = 0.539859124954; aaBlosum[ 8][ 8] = 0.000000000000; aaBlosum[ 8][ 9] = 0.252718447885; + aaBlosum[ 8][10] = 0.348072209797; aaBlosum[ 8][11] = 1.022507035889; aaBlosum[ 8][12] = 0.984311525359; aaBlosum[ 8][13] = 0.714533703928; aaBlosum[ 8][14] = 0.527007339151; + aaBlosum[ 8][15] = 1.117029762910; aaBlosum[ 8][16] = 0.585407090225; aaBlosum[ 8][17] = 0.301248600780; aaBlosum[ 8][18] = 4.218953969389; aaBlosum[ 8][19] = 0.201555971750; + aaBlosum[ 9][ 0] = 0.605899003687; aaBlosum[ 9][ 1] = 0.232036445142; aaBlosum[ 9][ 2] = 0.283017326278; aaBlosum[ 9][ 3] = 0.418555732462; aaBlosum[ 9][ 4] = 0.774894022794; + aaBlosum[ 9][ 5] = 0.236202451204; aaBlosum[ 9][ 6] = 0.186848046932; aaBlosum[ 9][ 7] = 0.189296292376; aaBlosum[ 9][ 8] = 0.252718447885; aaBlosum[ 9][ 9] = 0.000000000000; + aaBlosum[ 9][10] = 3.890963773304; aaBlosum[ 9][11] = 0.406193586642; aaBlosum[ 9][12] = 3.364797763104; aaBlosum[ 9][13] = 1.517359325954; aaBlosum[ 9][14] = 0.388355409206; + aaBlosum[ 9][15] = 0.357544412460; aaBlosum[ 9][16] = 1.179091197260; aaBlosum[ 9][17] = 0.341985787540; aaBlosum[ 9][18] = 0.674617093228; aaBlosum[ 9][19] = 8.311839405458; + aaBlosum[10][ 0] = 0.800016530518; aaBlosum[10][ 1] = 0.622711669692; aaBlosum[10][ 2] = 0.211888159615; aaBlosum[10][ 3] = 0.218131577594; aaBlosum[10][ 4] = 0.831842640142; + aaBlosum[10][ 5] = 0.580737093181; aaBlosum[10][ 6] = 0.372625175087; aaBlosum[10][ 7] = 0.217721159236; aaBlosum[10][ 8] = 0.348072209797; aaBlosum[10][ 9] = 3.890963773304; + aaBlosum[10][10] = 0.000000000000; aaBlosum[10][11] = 0.445570274261; aaBlosum[10][12] = 6.030559379572; aaBlosum[10][13] = 2.064839703237; aaBlosum[10][14] = 0.374555687471; + aaBlosum[10][15] = 0.352969184527; aaBlosum[10][16] = 0.915259857694; aaBlosum[10][17] = 0.691474634600; aaBlosum[10][18] = 0.811245856323; aaBlosum[10][19] = 2.231405688913; + aaBlosum[11][ 0] = 1.295201266783; aaBlosum[11][ 1] = 5.411115141489; aaBlosum[11][ 2] = 1.593137043457; aaBlosum[11][ 3] = 1.032447924952; aaBlosum[11][ 4] = 0.285078800906; + aaBlosum[11][ 5] = 3.945277674515; aaBlosum[11][ 6] = 2.802427151679; aaBlosum[11][ 7] = 0.752042440303; aaBlosum[11][ 8] = 1.022507035889; aaBlosum[11][ 9] = 0.406193586642; + aaBlosum[11][10] = 0.445570274261; aaBlosum[11][11] = 0.000000000000; aaBlosum[11][12] = 1.073061184332; aaBlosum[11][13] = 0.266924750511; aaBlosum[11][14] = 1.047383450722; + aaBlosum[11][15] = 1.752165917819; aaBlosum[11][16] = 1.303875200799; aaBlosum[11][17] = 0.332243040634; aaBlosum[11][18] = 0.717993486900; aaBlosum[11][19] = 0.498138475304; + aaBlosum[12][ 0] = 1.253758266664; aaBlosum[12][ 1] = 0.983692987457; aaBlosum[12][ 2] = 0.648441278787; aaBlosum[12][ 3] = 0.222621897958; aaBlosum[12][ 4] = 0.767688823480; + aaBlosum[12][ 5] = 2.494896077113; aaBlosum[12][ 6] = 0.555415397470; aaBlosum[12][ 7] = 0.459436173579; aaBlosum[12][ 8] = 0.984311525359; aaBlosum[12][ 9] = 3.364797763104; + aaBlosum[12][10] = 6.030559379572; aaBlosum[12][11] = 1.073061184332; aaBlosum[12][12] = 0.000000000000; aaBlosum[12][13] = 1.773855168830; aaBlosum[12][14] = 0.454123625103; + aaBlosum[12][15] = 0.918723415746; aaBlosum[12][16] = 1.488548053722; aaBlosum[12][17] = 0.888101098152; aaBlosum[12][18] = 0.951682162246; aaBlosum[12][19] = 2.575850755315; + aaBlosum[13][ 0] = 0.492964679748; aaBlosum[13][ 1] = 0.371644693209; aaBlosum[13][ 2] = 0.354861249223; aaBlosum[13][ 3] = 0.281730694207; aaBlosum[13][ 4] = 0.441337471187; + aaBlosum[13][ 5] = 0.144356959750; aaBlosum[13][ 6] = 0.291409084165; aaBlosum[13][ 7] = 0.368166464453; aaBlosum[13][ 8] = 0.714533703928; aaBlosum[13][ 9] = 1.517359325954; + aaBlosum[13][10] = 2.064839703237; aaBlosum[13][11] = 0.266924750511; aaBlosum[13][12] = 1.773855168830; aaBlosum[13][13] = 0.000000000000; aaBlosum[13][14] = 0.233597909629; + aaBlosum[13][15] = 0.540027644824; aaBlosum[13][16] = 0.488206118793; aaBlosum[13][17] = 2.074324893497; aaBlosum[13][18] = 6.747260430801; aaBlosum[13][19] = 0.838119610178; + aaBlosum[14][ 0] = 1.173275900924; aaBlosum[14][ 1] = 0.448133661718; aaBlosum[14][ 2] = 0.494887043702; aaBlosum[14][ 3] = 0.730628272998; aaBlosum[14][ 4] = 0.356008498769; + aaBlosum[14][ 5] = 0.858570575674; aaBlosum[14][ 6] = 0.926563934846; aaBlosum[14][ 7] = 0.504086599527; aaBlosum[14][ 8] = 0.527007339151; aaBlosum[14][ 9] = 0.388355409206; + aaBlosum[14][10] = 0.374555687471; aaBlosum[14][11] = 1.047383450722; aaBlosum[14][12] = 0.454123625103; aaBlosum[14][13] = 0.233597909629; aaBlosum[14][14] = 0.000000000000; + aaBlosum[14][15] = 1.169129577716; aaBlosum[14][16] = 1.005451683149; aaBlosum[14][17] = 0.252214830027; aaBlosum[14][18] = 0.369405319355; aaBlosum[14][19] = 0.496908410676; + aaBlosum[15][ 0] = 4.325092687057; aaBlosum[15][ 1] = 1.122783104210; aaBlosum[15][ 2] = 2.904101656456; aaBlosum[15][ 3] = 1.582754142065; aaBlosum[15][ 4] = 1.197188415094; + aaBlosum[15][ 5] = 1.934870924596; aaBlosum[15][ 6] = 1.769893238937; aaBlosum[15][ 7] = 1.509326253224; aaBlosum[15][ 8] = 1.117029762910; aaBlosum[15][ 9] = 0.357544412460; + aaBlosum[15][10] = 0.352969184527; aaBlosum[15][11] = 1.752165917819; aaBlosum[15][12] = 0.918723415746; aaBlosum[15][13] = 0.540027644824; aaBlosum[15][14] = 1.169129577716; + aaBlosum[15][15] = 0.000000000000; aaBlosum[15][16] = 5.151556292270; aaBlosum[15][17] = 0.387925622098; aaBlosum[15][18] = 0.796751520761; aaBlosum[15][19] = 0.561925457442; + aaBlosum[16][ 0] = 1.729178019485; aaBlosum[16][ 1] = 0.914665954563; aaBlosum[16][ 2] = 1.898173634533; aaBlosum[16][ 3] = 0.934187509431; aaBlosum[16][ 4] = 1.119831358516; + aaBlosum[16][ 5] = 1.277480294596; aaBlosum[16][ 6] = 1.071097236007; aaBlosum[16][ 7] = 0.641436011405; aaBlosum[16][ 8] = 0.585407090225; aaBlosum[16][ 9] = 1.179091197260; + aaBlosum[16][10] = 0.915259857694; aaBlosum[16][11] = 1.303875200799; aaBlosum[16][12] = 1.488548053722; aaBlosum[16][13] = 0.488206118793; aaBlosum[16][14] = 1.005451683149; + aaBlosum[16][15] = 5.151556292270; aaBlosum[16][16] = 0.000000000000; aaBlosum[16][17] = 0.513128126891; aaBlosum[16][18] = 0.801010243199; aaBlosum[16][19] = 2.253074051176; + aaBlosum[17][ 0] = 0.465839367725; aaBlosum[17][ 1] = 0.426382310122; aaBlosum[17][ 2] = 0.191482046247; aaBlosum[17][ 3] = 0.145345046279; aaBlosum[17][ 4] = 0.527664418872; + aaBlosum[17][ 5] = 0.758653808642; aaBlosum[17][ 6] = 0.407635648938; aaBlosum[17][ 7] = 0.508358924638; aaBlosum[17][ 8] = 0.301248600780; aaBlosum[17][ 9] = 0.341985787540; + aaBlosum[17][10] = 0.691474634600; aaBlosum[17][11] = 0.332243040634; aaBlosum[17][12] = 0.888101098152; aaBlosum[17][13] = 2.074324893497; aaBlosum[17][14] = 0.252214830027; + aaBlosum[17][15] = 0.387925622098; aaBlosum[17][16] = 0.513128126891; aaBlosum[17][17] = 0.000000000000; aaBlosum[17][18] = 4.054419006558; aaBlosum[17][19] = 0.266508731426; + aaBlosum[18][ 0] = 0.718206697586; aaBlosum[18][ 1] = 0.720517441216; aaBlosum[18][ 2] = 0.538222519037; aaBlosum[18][ 3] = 0.261422208965; aaBlosum[18][ 4] = 0.470237733696; + aaBlosum[18][ 5] = 0.958989742850; aaBlosum[18][ 6] = 0.596719300346; aaBlosum[18][ 7] = 0.308055737035; aaBlosum[18][ 8] = 4.218953969389; aaBlosum[18][ 9] = 0.674617093228; + aaBlosum[18][10] = 0.811245856323; aaBlosum[18][11] = 0.717993486900; aaBlosum[18][12] = 0.951682162246; aaBlosum[18][13] = 6.747260430801; aaBlosum[18][14] = 0.369405319355; + aaBlosum[18][15] = 0.796751520761; aaBlosum[18][16] = 0.801010243199; aaBlosum[18][17] = 4.054419006558; aaBlosum[18][18] = 0.000000000000; aaBlosum[18][19] = 1.000000000000; + aaBlosum[19][ 0] = 2.187774522005; aaBlosum[19][ 1] = 0.438388343772; aaBlosum[19][ 2] = 0.312858797993; aaBlosum[19][ 3] = 0.258129289418; aaBlosum[19][ 4] = 1.116352478606; + aaBlosum[19][ 5] = 0.530785790125; aaBlosum[19][ 6] = 0.524253846338; aaBlosum[19][ 7] = 0.253340790190; aaBlosum[19][ 8] = 0.201555971750; aaBlosum[19][ 9] = 8.311839405458; + aaBlosum[19][10] = 2.231405688913; aaBlosum[19][11] = 0.498138475304; aaBlosum[19][12] = 2.575850755315; aaBlosum[19][13] = 0.838119610178; aaBlosum[19][14] = 0.496908410676; + aaBlosum[19][15] = 0.561925457442; aaBlosum[19][16] = 2.253074051176; aaBlosum[19][17] = 0.266508731426; aaBlosum[19][18] = 1.000000000000; aaBlosum[19][19] = 0.000000000000; + + blosPi[ 0] = 0.074; + blosPi[ 1] = 0.052; + blosPi[ 2] = 0.045; + blosPi[ 3] = 0.054; + blosPi[ 4] = 0.025; + blosPi[ 5] = 0.034; + blosPi[ 6] = 0.054; + blosPi[ 7] = 0.074; + blosPi[ 8] = 0.026; + blosPi[ 9] = 0.068; + blosPi[10] = 0.099; + blosPi[11] = 0.058; + blosPi[12] = 0.025; + blosPi[13] = 0.047; + blosPi[14] = 0.039; + blosPi[15] = 0.057; + blosPi[16] = 0.051; + blosPi[17] = 0.013; + blosPi[18] = 0.032; + blosPi[19] = 0.073; + + /* LG */ + aaLG[ 0][ 0] = 0.000000; aaLG[ 0][ 1] = 0.425093; aaLG[ 0][ 2] = 0.276818; aaLG[ 0][ 3] = 0.395144; aaLG[ 0][ 4] = 2.489084; + aaLG[ 0][ 5] = 0.969894; aaLG[ 0][ 6] = 1.038545; aaLG[ 0][ 7] = 2.066040; aaLG[ 0][ 8] = 0.358858; aaLG[ 0][ 9] = 0.149830; + aaLG[ 0][10] = 0.395337; aaLG[ 0][11] = 0.536518; aaLG[ 0][12] = 1.124035; aaLG[ 0][13] = 0.253701; aaLG[ 0][14] = 1.177651; + aaLG[ 0][15] = 4.727182; aaLG[ 0][16] = 2.139501; aaLG[ 0][17] = 0.180717; aaLG[ 0][18] = 0.218959; aaLG[ 0][19] = 2.547870; + aaLG[ 1][ 0] = 0.425093; aaLG[ 1][ 1] = 0.000000; aaLG[ 1][ 2] = 0.751878; aaLG[ 1][ 3] = 0.123954; aaLG[ 1][ 4] = 0.534551; + aaLG[ 1][ 5] = 2.807908; aaLG[ 1][ 6] = 0.363970; aaLG[ 1][ 7] = 0.390192; aaLG[ 1][ 8] = 2.426601; aaLG[ 1][ 9] = 0.126991; + aaLG[ 1][10] = 0.301848; aaLG[ 1][11] = 6.326067; aaLG[ 1][12] = 0.484133; aaLG[ 1][13] = 0.052722; aaLG[ 1][14] = 0.332533; + aaLG[ 1][15] = 0.858151; aaLG[ 1][16] = 0.578987; aaLG[ 1][17] = 0.593607; aaLG[ 1][18] = 0.314440; aaLG[ 1][19] = 0.170887; + aaLG[ 2][ 0] = 0.276818; aaLG[ 2][ 1] = 0.751878; aaLG[ 2][ 2] = 0.000000; aaLG[ 2][ 3] = 5.076149; aaLG[ 2][ 4] = 0.528768; + aaLG[ 2][ 5] = 1.695752; aaLG[ 2][ 6] = 0.541712; aaLG[ 2][ 7] = 1.437645; aaLG[ 2][ 8] = 4.509238; aaLG[ 2][ 9] = 0.191503; + aaLG[ 2][10] = 0.068427; aaLG[ 2][11] = 2.145078; aaLG[ 2][12] = 0.371004; aaLG[ 2][13] = 0.089525; aaLG[ 2][14] = 0.161787; + aaLG[ 2][15] = 4.008358; aaLG[ 2][16] = 2.000679; aaLG[ 2][17] = 0.045376; aaLG[ 2][18] = 0.612025; aaLG[ 2][19] = 0.083688; + aaLG[ 3][ 0] = 0.395144; aaLG[ 3][ 1] = 0.123954; aaLG[ 3][ 2] = 5.076149; aaLG[ 3][ 3] = 0.000000; aaLG[ 3][ 4] = 0.062556; + aaLG[ 3][ 5] = 0.523386; aaLG[ 3][ 6] = 5.243870; aaLG[ 3][ 7] = 0.844926; aaLG[ 3][ 8] = 0.927114; aaLG[ 3][ 9] = 0.010690; + aaLG[ 3][10] = 0.015076; aaLG[ 3][11] = 0.282959; aaLG[ 3][12] = 0.025548; aaLG[ 3][13] = 0.017416; aaLG[ 3][14] = 0.394456; + aaLG[ 3][15] = 1.240275; aaLG[ 3][16] = 0.425860; aaLG[ 3][17] = 0.029890; aaLG[ 3][18] = 0.135107; aaLG[ 3][19] = 0.037967; + aaLG[ 4][ 0] = 2.489084; aaLG[ 4][ 1] = 0.534551; aaLG[ 4][ 2] = 0.528768; aaLG[ 4][ 3] = 0.062556; aaLG[ 4][ 4] = 0.000000; + aaLG[ 4][ 5] = 0.084808; aaLG[ 4][ 6] = 0.003499; aaLG[ 4][ 7] = 0.569265; aaLG[ 4][ 8] = 0.640543; aaLG[ 4][ 9] = 0.320627; + aaLG[ 4][10] = 0.594007; aaLG[ 4][11] = 0.013266; aaLG[ 4][12] = 0.893680; aaLG[ 4][13] = 1.105251; aaLG[ 4][14] = 0.075382; + aaLG[ 4][15] = 2.784478; aaLG[ 4][16] = 1.143480; aaLG[ 4][17] = 0.670128; aaLG[ 4][18] = 1.165532; aaLG[ 4][19] = 1.959291; + aaLG[ 5][ 0] = 0.969894; aaLG[ 5][ 1] = 2.807908; aaLG[ 5][ 2] = 1.695752; aaLG[ 5][ 3] = 0.523386; aaLG[ 5][ 4] = 0.084808; + aaLG[ 5][ 5] = 0.000000; aaLG[ 5][ 6] = 4.128591; aaLG[ 5][ 7] = 0.267959; aaLG[ 5][ 8] = 4.813505; aaLG[ 5][ 9] = 0.072854; + aaLG[ 5][10] = 0.582457; aaLG[ 5][11] = 3.234294; aaLG[ 5][12] = 1.672569; aaLG[ 5][13] = 0.035855; aaLG[ 5][14] = 0.624294; + aaLG[ 5][15] = 1.223828; aaLG[ 5][16] = 1.080136; aaLG[ 5][17] = 0.236199; aaLG[ 5][18] = 0.257336; aaLG[ 5][19] = 0.210332; + aaLG[ 6][ 0] = 1.038545; aaLG[ 6][ 1] = 0.363970; aaLG[ 6][ 2] = 0.541712; aaLG[ 6][ 3] = 5.243870; aaLG[ 6][ 4] = 0.003499; + aaLG[ 6][ 5] = 4.128591; aaLG[ 6][ 6] = 0.000000; aaLG[ 6][ 7] = 0.348847; aaLG[ 6][ 8] = 0.423881; aaLG[ 6][ 9] = 0.044265; + aaLG[ 6][10] = 0.069673; aaLG[ 6][11] = 1.807177; aaLG[ 6][12] = 0.173735; aaLG[ 6][13] = 0.018811; aaLG[ 6][14] = 0.419409; + aaLG[ 6][15] = 0.611973; aaLG[ 6][16] = 0.604545; aaLG[ 6][17] = 0.077852; aaLG[ 6][18] = 0.120037; aaLG[ 6][19] = 0.245034; + aaLG[ 7][ 0] = 2.066040; aaLG[ 7][ 1] = 0.390192; aaLG[ 7][ 2] = 1.437645; aaLG[ 7][ 3] = 0.844926; aaLG[ 7][ 4] = 0.569265; + aaLG[ 7][ 5] = 0.267959; aaLG[ 7][ 6] = 0.348847; aaLG[ 7][ 7] = 0.000000; aaLG[ 7][ 8] = 0.311484; aaLG[ 7][ 9] = 0.008705; + aaLG[ 7][10] = 0.044261; aaLG[ 7][11] = 0.296636; aaLG[ 7][12] = 0.139538; aaLG[ 7][13] = 0.089586; aaLG[ 7][14] = 0.196961; + aaLG[ 7][15] = 1.739990; aaLG[ 7][16] = 0.129836; aaLG[ 7][17] = 0.268491; aaLG[ 7][18] = 0.054679; aaLG[ 7][19] = 0.076701; + aaLG[ 8][ 0] = 0.358858; aaLG[ 8][ 1] = 2.426601; aaLG[ 8][ 2] = 4.509238; aaLG[ 8][ 3] = 0.927114; aaLG[ 8][ 4] = 0.640543; + aaLG[ 8][ 5] = 4.813505; aaLG[ 8][ 6] = 0.423881; aaLG[ 8][ 7] = 0.311484; aaLG[ 8][ 8] = 0.000000; aaLG[ 8][ 9] = 0.108882; + aaLG[ 8][10] = 0.366317; aaLG[ 8][11] = 0.697264; aaLG[ 8][12] = 0.442472; aaLG[ 8][13] = 0.682139; aaLG[ 8][14] = 0.508851; + aaLG[ 8][15] = 0.990012; aaLG[ 8][16] = 0.584262; aaLG[ 8][17] = 0.597054; aaLG[ 8][18] = 5.306834; aaLG[ 8][19] = 0.119013; + aaLG[ 9][ 0] = 0.149830; aaLG[ 9][ 1] = 0.126991; aaLG[ 9][ 2] = 0.191503; aaLG[ 9][ 3] = 0.010690; aaLG[ 9][ 4] = 0.320627; + aaLG[ 9][ 5] = 0.072854; aaLG[ 9][ 6] = 0.044265; aaLG[ 9][ 7] = 0.008705; aaLG[ 9][ 8] = 0.108882; aaLG[ 9][ 9] = 0.000000; + aaLG[ 9][10] = 4.145067; aaLG[ 9][11] = 0.159069; aaLG[ 9][12] = 4.273607; aaLG[ 9][13] = 1.112727; aaLG[ 9][14] = 0.078281; + aaLG[ 9][15] = 0.064105; aaLG[ 9][16] = 1.033739; aaLG[ 9][17] = 0.111660; aaLG[ 9][18] = 0.232523; aaLG[ 9][19] = 10.649107; + aaLG[10][ 0] = 0.395337; aaLG[10][ 1] = 0.301848; aaLG[10][ 2] = 0.068427; aaLG[10][ 3] = 0.015076; aaLG[10][ 4] = 0.594007; + aaLG[10][ 5] = 0.582457; aaLG[10][ 6] = 0.069673; aaLG[10][ 7] = 0.044261; aaLG[10][ 8] = 0.366317; aaLG[10][ 9] = 4.145067; + aaLG[10][10] = 0.000000; aaLG[10][11] = 0.137500; aaLG[10][12] = 6.312358; aaLG[10][13] = 2.592692; aaLG[10][14] = 0.249060; + aaLG[10][15] = 0.182287; aaLG[10][16] = 0.302936; aaLG[10][17] = 0.619632; aaLG[10][18] = 0.299648; aaLG[10][19] = 1.702745; + aaLG[11][ 0] = 0.536518; aaLG[11][ 1] = 6.326067; aaLG[11][ 2] = 2.145078; aaLG[11][ 3] = 0.282959; aaLG[11][ 4] = 0.013266; + aaLG[11][ 5] = 3.234294; aaLG[11][ 6] = 1.807177; aaLG[11][ 7] = 0.296636; aaLG[11][ 8] = 0.697264; aaLG[11][ 9] = 0.159069; + aaLG[11][10] = 0.137500; aaLG[11][11] = 0.000000; aaLG[11][12] = 0.656604; aaLG[11][13] = 0.023918; aaLG[11][14] = 0.390322; + aaLG[11][15] = 0.748683; aaLG[11][16] = 1.136863; aaLG[11][17] = 0.049906; aaLG[11][18] = 0.131932; aaLG[11][19] = 0.185202; + aaLG[12][ 0] = 1.124035; aaLG[12][ 1] = 0.484133; aaLG[12][ 2] = 0.371004; aaLG[12][ 3] = 0.025548; aaLG[12][ 4] = 0.893680; + aaLG[12][ 5] = 1.672569; aaLG[12][ 6] = 0.173735; aaLG[12][ 7] = 0.139538; aaLG[12][ 8] = 0.442472; aaLG[12][ 9] = 4.273607; + aaLG[12][10] = 6.312358; aaLG[12][11] = 0.656604; aaLG[12][12] = 0.000000; aaLG[12][13] = 1.798853; aaLG[12][14] = 0.099849; + aaLG[12][15] = 0.346960; aaLG[12][16] = 2.020366; aaLG[12][17] = 0.696175; aaLG[12][18] = 0.481306; aaLG[12][19] = 1.898718; + aaLG[13][ 0] = 0.253701; aaLG[13][ 1] = 0.052722; aaLG[13][ 2] = 0.089525; aaLG[13][ 3] = 0.017416; aaLG[13][ 4] = 1.105251; + aaLG[13][ 5] = 0.035855; aaLG[13][ 6] = 0.018811; aaLG[13][ 7] = 0.089586; aaLG[13][ 8] = 0.682139; aaLG[13][ 9] = 1.112727; + aaLG[13][10] = 2.592692; aaLG[13][11] = 0.023918; aaLG[13][12] = 1.798853; aaLG[13][13] = 0.000000; aaLG[13][14] = 0.094464; + aaLG[13][15] = 0.361819; aaLG[13][16] = 0.165001; aaLG[13][17] = 2.457121; aaLG[13][18] = 7.803902; aaLG[13][19] = 0.654683; + aaLG[14][ 0] = 1.177651; aaLG[14][ 1] = 0.332533; aaLG[14][ 2] = 0.161787; aaLG[14][ 3] = 0.394456; aaLG[14][ 4] = 0.075382; + aaLG[14][ 5] = 0.624294; aaLG[14][ 6] = 0.419409; aaLG[14][ 7] = 0.196961; aaLG[14][ 8] = 0.508851; aaLG[14][ 9] = 0.078281; + aaLG[14][10] = 0.249060; aaLG[14][11] = 0.390322; aaLG[14][12] = 0.099849; aaLG[14][13] = 0.094464; aaLG[14][14] = 0.000000; + aaLG[14][15] = 1.338132; aaLG[14][16] = 0.571468; aaLG[14][17] = 0.095131; aaLG[14][18] = 0.089613; aaLG[14][19] = 0.296501; + aaLG[15][ 0] = 4.727182; aaLG[15][ 1] = 0.858151; aaLG[15][ 2] = 4.008358; aaLG[15][ 3] = 1.240275; aaLG[15][ 4] = 2.784478; + aaLG[15][ 5] = 1.223828; aaLG[15][ 6] = 0.611973; aaLG[15][ 7] = 1.739990; aaLG[15][ 8] = 0.990012; aaLG[15][ 9] = 0.064105; + aaLG[15][10] = 0.182287; aaLG[15][11] = 0.748683; aaLG[15][12] = 0.346960; aaLG[15][13] = 0.361819; aaLG[15][14] = 1.338132; + aaLG[15][15] = 0.000000; aaLG[15][16] = 6.472279; aaLG[15][17] = 0.248862; aaLG[15][18] = 0.400547; aaLG[15][19] = 0.098369; + aaLG[16][ 0] = 2.139501; aaLG[16][ 1] = 0.578987; aaLG[16][ 2] = 2.000679; aaLG[16][ 3] = 0.425860; aaLG[16][ 4] = 1.143480; + aaLG[16][ 5] = 1.080136; aaLG[16][ 6] = 0.604545; aaLG[16][ 7] = 0.129836; aaLG[16][ 8] = 0.584262; aaLG[16][ 9] = 1.033739; + aaLG[16][10] = 0.302936; aaLG[16][11] = 1.136863; aaLG[16][12] = 2.020366; aaLG[16][13] = 0.165001; aaLG[16][14] = 0.571468; + aaLG[16][15] = 6.472279; aaLG[16][16] = 0.000000; aaLG[16][17] = 0.140825; aaLG[16][18] = 0.245841; aaLG[16][19] = 2.188158; + aaLG[17][ 0] = 0.180717; aaLG[17][ 1] = 0.593607; aaLG[17][ 2] = 0.045376; aaLG[17][ 3] = 0.029890; aaLG[17][ 4] = 0.670128; + aaLG[17][ 5] = 0.236199; aaLG[17][ 6] = 0.077852; aaLG[17][ 7] = 0.268491; aaLG[17][ 8] = 0.597054; aaLG[17][ 9] = 0.111660; + aaLG[17][10] = 0.619632; aaLG[17][11] = 0.049906; aaLG[17][12] = 0.696175; aaLG[17][13] = 2.457121; aaLG[17][14] = 0.095131; + aaLG[17][15] = 0.248862; aaLG[17][16] = 0.140825; aaLG[17][17] = 0.000000; aaLG[17][18] = 3.151815; aaLG[17][19] = 0.189510; + aaLG[18][ 0] = 0.218959; aaLG[18][ 1] = 0.314440; aaLG[18][ 2] = 0.612025; aaLG[18][ 3] = 0.135107; aaLG[18][ 4] = 1.165532; + aaLG[18][ 5] = 0.257336; aaLG[18][ 6] = 0.120037; aaLG[18][ 7] = 0.054679; aaLG[18][ 8] = 5.306834; aaLG[18][ 9] = 0.232523; + aaLG[18][10] = 0.299648; aaLG[18][11] = 0.131932; aaLG[18][12] = 0.481306; aaLG[18][13] = 7.803902; aaLG[18][14] = 0.089613; + aaLG[18][15] = 0.400547; aaLG[18][16] = 0.245841; aaLG[18][17] = 3.151815; aaLG[18][18] = 0.000000; aaLG[18][19] = 0.249313; + aaLG[19][ 0] = 2.547870; aaLG[19][ 1] = 0.170887; aaLG[19][ 2] = 0.083688; aaLG[19][ 3] = 0.037967; aaLG[19][ 4] = 1.959291; + aaLG[19][ 5] = 0.210332; aaLG[19][ 6] = 0.245034; aaLG[19][ 7] = 0.076701; aaLG[19][ 8] = 0.119013; aaLG[19][ 9] = 10.649107; + aaLG[19][10] = 1.702745; aaLG[19][11] = 0.185202; aaLG[19][12] = 1.898718; aaLG[19][13] = 0.654683; aaLG[19][14] = 0.296501; + aaLG[19][15] = 0.098369; aaLG[19][16] = 2.188158; aaLG[19][17] = 0.189510; aaLG[19][18] = 0.249313; aaLG[19][19] = 0.000000; + + lgPi[0] = 0.079066; lgPi[1] = 0.055941; lgPi[2] = 0.041977; lgPi[3] = 0.053052; + lgPi[4] = 0.012937; lgPi[5] = 0.040767; lgPi[6] = 0.071586; lgPi[7] = 0.057337; + lgPi[8] = 0.022355; lgPi[9] = 0.062157; lgPi[10] = 0.099081; lgPi[11] = 0.064600; + lgPi[12] = 0.022951; lgPi[13] = 0.042302; lgPi[14] = 0.044040; lgPi[15] = 0.061197; + lgPi[16] = 0.053287; lgPi[17] = 0.012066; lgPi[18] = 0.034155; lgPi[19] = 0.069147; + + /* now, check that the matrices are symmetrical */ + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + diff = aaJones[i][j] - aaJones[j][i]; + if (diff < 0.0) + diff = -diff; + if (diff > 0.001) + { + MrBayesPrint ("%s ERROR: Jones model is not symmetrical.\n"); + return (ERROR); + } + } + } + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + diff = aaDayhoff[i][j] - aaDayhoff[j][i]; + if (diff < 0.0) + diff = -diff; + if (diff > 0.001) + { + MrBayesPrint ("%s ERROR: Dayhoff model is not symmetrical.\n"); + return (ERROR); + } + } + } + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + diff = aaMtrev24[i][j] - aaMtrev24[j][i]; + if (diff < 0.0) + diff = -diff; + if (diff > 0.001) + { + MrBayesPrint ("%s ERROR: mtrev24 model is not symmetrical.\n"); + return (ERROR); + } + } + } + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + diff = aaMtmam[i][j] - aaMtmam[j][i]; + if (diff < 0.0) + diff = -diff; + if (diff > 0.001) + { + MrBayesPrint ("%s ERROR: mtmam model is not symmetrical.\n"); + return (ERROR); + } + } + } + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + diff = aartREV[i][j] - aartREV[j][i]; + if (diff < 0.0) + diff = -diff; + if (diff > 0.001) + { + MrBayesPrint ("%s ERROR: aartREV model is not symmetrical.\n"); + return (ERROR); + } + } + } + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + diff = aaWAG[i][j] - aaWAG[j][i]; + if (diff < 0.0) + diff = -diff; + if (diff > 0.001) + { + MrBayesPrint ("%s ERROR: aaWAG model is not symmetrical.\n"); + return (ERROR); + } + } + } + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + diff = aacpREV[i][j] - aacpREV[j][i]; + if (diff < 0.0) + diff = -diff; + if (diff > 0.001) + { + MrBayesPrint ("%s ERROR: cpREV model is not symmetrical.\n"); + return (ERROR); + } + } + } + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + diff = aaVt[i][j] - aaVt[j][i]; + if (diff < 0.0) + diff = -diff; + if (diff > 0.001) + { + MrBayesPrint ("%s ERROR: Vt model is not symmetrical.\n"); + return (ERROR); + } + } + } + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + diff = aaBlosum[i][j] - aaBlosum[j][i]; + if (diff < 0.0) + diff = -diff; + if (diff > 0.001) + { + MrBayesPrint ("%s ERROR: Blosum model is not symmetrical.\n"); + return (ERROR); + } + } + } + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + diff = aaLG[i][j] - aaLG[j][i]; + if (diff < 0.0) + diff = -diff; + if (diff > 0.001) + { + MrBayesPrint ("%s ERROR: LG model is not symmetrical.\n"); + return (ERROR); + } + } + } + + /* rescale stationary frequencies, to make certain they sum to 1.0 */ + sum = 0.0; + for (i=0; i<20; i++) + sum += jonesPi[i]; + for (i=0; i<20; i++) + jonesPi[i] /= sum; + sum = 0.0; + for (i=0; i<20; i++) + sum += dayhoffPi[i]; + for (i=0; i<20; i++) + dayhoffPi[i] /= sum; + sum = 0.0; + for (i=0; i<20; i++) + sum += mtrev24Pi[i]; + for (i=0; i<20; i++) + mtrev24Pi[i] /= sum; + sum = 0.0; + for (i=0; i<20; i++) + sum += mtmamPi[i]; + for (i=0; i<20; i++) + mtmamPi[i] /= sum; + sum = 0.0; + for (i=0; i<20; i++) + sum += rtrevPi[i]; + for (i=0; i<20; i++) + rtrevPi[i] /= sum; + sum = 0.0; + for (i=0; i<20; i++) + sum += wagPi[i]; + for (i=0; i<20; i++) + wagPi[i] /= sum; + sum = 0.0; + for (i=0; i<20; i++) + sum += cprevPi[i]; + for (i=0; i<20; i++) + cprevPi[i] /= sum; + sum = 0.0; + for (i=0; i<20; i++) + sum += vtPi[i]; + for (i=0; i<20; i++) + vtPi[i] /= sum; + sum = 0.0; + for (i=0; i<20; i++) + sum += blosPi[i]; + for (i=0; i<20; i++) + blosPi[i] /= sum; + sum = 0.0; + for (i=0; i<20; i++) + sum += lgPi[i]; + for (i=0; i<20; i++) + lgPi[i] /= sum; + + /* multiply entries by amino acid frequencies */ + for (i=0; i<20; i++) + { + for (j=0; j<20; j++) + { + aaJones[i][j] *= jonesPi[j]; + aaDayhoff[i][j] *= dayhoffPi[j]; + aaMtrev24[i][j] *= mtrev24Pi[j]; + aaMtmam[i][j] *= mtmamPi[j]; + aartREV[i][j] *= rtrevPi[j]; + aaWAG[i][j] *= wagPi[j]; + aacpREV[i][j] *= cprevPi[j]; + aaVt[i][j] *= vtPi[j]; + aaBlosum[i][j] *= blosPi[j]; + aaLG[i][j] *= lgPi[j]; + } + } + + /* rescale, so branch lengths are in terms of expected number of + amino acid substitutions per site */ + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + scaler += jonesPi[i] * aaJones[i][j]; + scaler += jonesPi[j] * aaJones[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + aaJones[i][j] *= scaler; + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + scaler += dayhoffPi[i] * aaDayhoff[i][j]; + scaler += dayhoffPi[j] * aaDayhoff[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + aaDayhoff[i][j] *= scaler; + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + scaler += mtrev24Pi[i] * aaMtrev24[i][j]; + scaler += mtrev24Pi[j] * aaMtrev24[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + aaMtrev24[i][j] *= scaler; + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + scaler += mtmamPi[i] * aaMtmam[i][j]; + scaler += mtmamPi[j] * aaMtmam[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + aaMtmam[i][j] *= scaler; + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + scaler += rtrevPi[i] * aartREV[i][j]; + scaler += rtrevPi[j] * aartREV[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + aartREV[i][j] *= scaler; + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + scaler += wagPi[i] * aaWAG[i][j]; + scaler += wagPi[j] * aaWAG[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + aaWAG[i][j] *= scaler; + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + scaler += cprevPi[i] * aacpREV[i][j]; + scaler += cprevPi[j] * aacpREV[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + aacpREV[i][j] *= scaler; + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + scaler += vtPi[i] * aaVt[i][j]; + scaler += vtPi[j] * aaVt[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + aaVt[i][j] *= scaler; + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + scaler += blosPi[i] * aaBlosum[i][j]; + scaler += blosPi[j] * aaBlosum[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + aaBlosum[i][j] *= scaler; + scaler = 0.0; + for (i=0; i<20; i++) + { + for (j=i+1; j<20; j++) + { + scaler += lgPi[i] * aaLG[i][j]; + scaler += lgPi[j] * aaLG[j][i]; + } + } + scaler = 1.0 / scaler; + for (i=0; i<20; i++) + for (j=0; j<20; j++) + aaLG[i][j] *= scaler; + + /* set diagonal of matrix */ + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += aaJones[i][j]; + } + aaJones[i][i] = -sum; + } + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += aaDayhoff[i][j]; + } + aaDayhoff[i][i] = -sum; + } + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += aaMtrev24[i][j]; + } + aaMtrev24[i][i] = -sum; + } + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += aaMtmam[i][j]; + } + aaMtmam[i][i] = -sum; + } + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += aartREV[i][j]; + } + aartREV[i][i] = -sum; + } + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += aaWAG[i][j]; + } + aaWAG[i][i] = -sum; + } + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += aacpREV[i][j]; + } + aacpREV[i][i] = -sum; + } + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += aaVt[i][j]; + } + aaVt[i][i] = -sum; + } + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += aaBlosum[i][j]; + } + aaBlosum[i][i] = -sum; + } + for (i=0; i<20; i++) + { + sum = 0.0; + for (j=0; j<20; j++) + { + if (i != j) + sum += aaLG[i][j]; + } + aaLG[i][i] = -sum; + } + +# if 0 + for (i=0; i<20; i++) + { + MrBayesPrint ("%s ", spacer); + for (j=0; j<20; j++) + { + if (aaLG[i][j] < 0.0) + MrBayesPrint ("%1.3lf ", aaLG[i][j]); + else + MrBayesPrint (" %1.3lf ", aaLG[i][j]); + } + MrBayesPrint ("\n"); + } +# endif + + return (NO_ERROR); +} + + +void SetCode (int part) +{ + int i, s, s1, s2, s3, ns; + + modelParams[part].codon[ 0] = 12; /* AAA Lys */ + modelParams[part].codon[ 1] = 3; /* AAC Asn */ + modelParams[part].codon[ 2] = 12; /* AAG Lys */ + modelParams[part].codon[ 3] = 3; /* AAT Asn */ + modelParams[part].codon[ 4] = 17; /* ACA Thr */ + modelParams[part].codon[ 5] = 17; /* ACC Thr */ + modelParams[part].codon[ 6] = 17; /* ACG Thr */ + modelParams[part].codon[ 7] = 17; /* ACT Thr */ + modelParams[part].codon[ 8] = 2; /* AGA Arg */ + modelParams[part].codon[ 9] = 16; /* AGC Ser */ + modelParams[part].codon[10] = 2; /* AGG Arg */ + modelParams[part].codon[11] = 16; /* AGT Ser */ + modelParams[part].codon[12] = 10; /* ATA Ile */ + modelParams[part].codon[13] = 10; /* ATC Ile */ + modelParams[part].codon[14] = 13; /* ATG Met */ + modelParams[part].codon[15] = 10; /* ATT Ile */ + modelParams[part].codon[16] = 6; /* CAA Gln */ + modelParams[part].codon[17] = 9; /* CAC His */ + modelParams[part].codon[18] = 6; /* CAG Gln */ + modelParams[part].codon[19] = 9; /* CAT His */ + modelParams[part].codon[20] = 15; /* CCA Pro */ + modelParams[part].codon[21] = 15; /* CCC Pro */ + modelParams[part].codon[22] = 15; /* CCG Pro */ + modelParams[part].codon[23] = 15; /* CCT Pro */ + modelParams[part].codon[24] = 2; /* CGA Arg */ + modelParams[part].codon[25] = 2; /* CGC Arg */ + modelParams[part].codon[26] = 2; /* CGG Arg */ + modelParams[part].codon[27] = 2; /* CGT Arg */ + modelParams[part].codon[28] = 11; /* CTA Leu */ + modelParams[part].codon[29] = 11; /* CTC Leu */ + modelParams[part].codon[30] = 11; /* CTG Leu */ + modelParams[part].codon[31] = 11; /* CTT Leu */ + modelParams[part].codon[32] = 7; /* GAA Glu */ + modelParams[part].codon[33] = 4; /* GAC Asp */ + modelParams[part].codon[34] = 7; /* GAG Glu */ + modelParams[part].codon[35] = 4; /* GAT Asp */ + modelParams[part].codon[36] = 1; /* GCA Ala */ + modelParams[part].codon[37] = 1; /* GCC Ala */ + modelParams[part].codon[38] = 1; /* GCG Ala */ + modelParams[part].codon[39] = 1; /* GCT Ala */ + modelParams[part].codon[40] = 8; /* GGA Gly */ + modelParams[part].codon[41] = 8; /* GGC Gly */ + modelParams[part].codon[42] = 8; /* GGG Gly */ + modelParams[part].codon[43] = 8; /* GGT Gly */ + modelParams[part].codon[44] = 20; /* GTA Val */ + modelParams[part].codon[45] = 20; /* GTC Val */ + modelParams[part].codon[46] = 20; /* GTG Val */ + modelParams[part].codon[47] = 20; /* GTT Val */ + modelParams[part].codon[48] = 21; /* TAA Stop*/ + modelParams[part].codon[49] = 19; /* TAC Tyr */ + modelParams[part].codon[50] = 21; /* TAG Stop*/ + modelParams[part].codon[51] = 19; /* TAT Tyr */ + modelParams[part].codon[52] = 16; /* TCA Ser */ + modelParams[part].codon[53] = 16; /* TCC Ser */ + modelParams[part].codon[54] = 16; /* TCG Ser */ + modelParams[part].codon[55] = 16; /* TCT Ser */ + modelParams[part].codon[56] = 21; /* TGA Stop*/ + modelParams[part].codon[57] = 5; /* TGC Cys */ + modelParams[part].codon[58] = 18; /* TGG Trp */ + modelParams[part].codon[59] = 5; /* TGT Cys */ + modelParams[part].codon[60] = 11; /* TTA Leu */ + modelParams[part].codon[61] = 14; /* TTC Phe */ + modelParams[part].codon[62] = 11; /* TTG Leu */ + modelParams[part].codon[63] = 14; /* TTT Phe */ + + if (!strcmp(modelParams[part].geneticCode, "Vertmt")) + { + /* UGA: Ter -> Trp + AUA: Ile -> Met + AGA: Arg -> Ter + AGG: Arg -> Ter */ + modelParams[part].codon[ 8] = 21; /* AGA Stop */ + modelParams[part].codon[10] = 21; /* AGG Stop */ + modelParams[part].codon[12] = 13; /* ATA Met */ + modelParams[part].codon[56] = 18; /* TGA Trp */ + } + if (!strcmp(modelParams[part].geneticCode, "Invermt")) + { + /* UGA: Ter -> Trp + AUA: Ile -> Met + AGA: Arg -> Ser + AGG: Arg -> Ser */ + modelParams[part].codon[ 8] = 16; /* AGA Ser */ + modelParams[part].codon[10] = 16; /* AGG Ser */ + modelParams[part].codon[12] = 13; /* ATA Met */ + modelParams[part].codon[56] = 18; /* TGA Trp */ + } + else if (!strcmp(modelParams[part].geneticCode, "Mycoplasma")) + { + /* UGA: Ter -> Trp */ + modelParams[part].codon[56] = 18; /* TGA Trp */ + } + else if (!strcmp(modelParams[part].geneticCode, "Yeast")) + { + /* UGA: Ter -> Trp + AUA: Ile -> Met + CUA: Leu -> Thr + CUC: Leu -> Thr + CUG: Leu -> Thr + CUU: Leu -> Thr */ + modelParams[part].codon[12] = 13; /* ATA Met */ + modelParams[part].codon[28] = 17; /* CTA Thr */ + modelParams[part].codon[29] = 17; /* CTC Thr */ + modelParams[part].codon[30] = 17; /* CTG Thr */ + modelParams[part].codon[31] = 17; /* CTT Thr */ + modelParams[part].codon[56] = 18; /* TGA Trp */ + } + else if (!strcmp(modelParams[part].geneticCode, "Ciliate")) + { + /* UAA: Ter -> Gln + UAG: Ter -> Gln */ + modelParams[part].codon[48] = 6; /* TAA Gln */ + modelParams[part].codon[50] = 6; /* TAG Gln */ + } + else if (!strcmp(modelParams[part].geneticCode, "Echinoderm")) + { + /* AAA: Lys -> Asn + AGA: Arg -> Ser + AGG: Arg -> Ser + UGA: Ter -> Trp */ + modelParams[part].codon[ 0] = 3; /* AAA Asn */ + modelParams[part].codon[ 8] = 16; /* AGA Ser */ + modelParams[part].codon[10] = 16; /* AGG Ser */ + modelParams[part].codon[56] = 18; /* TGA Trp */ + } + else if (!strcmp(modelParams[part].geneticCode, "Euplotid")) + { + /* UGA: Ter -> Cys */ + modelParams[part].codon[56] = 5; /* TGA Cys */ + } + else if (!strcmp(modelParams[part].geneticCode, "Metmt")) + { + /* UGA: Ter -> Trp + AUA: Ile -> Met + AGA: Arg -> Ser + AGG: Arg -> Ser */ + modelParams[part].codon[ 8] = 16; /* AGA Ser */ + modelParams[part].codon[10] = 16; /* AGG Ser */ + modelParams[part].codon[12] = 13; /* ATA Met */ + modelParams[part].codon[56] = 18; /* TGA Trp */ + } + else + { + } + + ns = 0; + for (i=0; i<64; i++) + { + if (modelParams[part].codon[i] != 21) + ns++; + } + /* printf ("ns = %d\n", ns); */ + + s = 0; + for (s1=0; s1<4; s1++) + for (s2=0; s2<4; s2++) + for (s3=0; s3<4; s3++) + if (modelParams[part].codon[s1*16 + s2*4 + s3] != 21) + { + modelParams[part].codonNucs[s][0] = s1; + modelParams[part].codonNucs[s][1] = s2; + modelParams[part].codonNucs[s][2] = s3; + modelParams[part].codonAAs[s] = modelParams[part].codon[s1*16 + s2*4 + s3]; + s++; + } +} + + +int SetLocalTaxa (void) +{ + int i, j; + + /* free memory if allocated */ + if (memAllocs[ALLOC_LOCTAXANAMES] == YES) + { + free (localTaxonNames); + localTaxonNames = NULL; + memAllocs[ALLOC_LOCTAXANAMES] = NO; + } + if (memAllocs[ALLOC_LOCALTAXONCALIBRATION] == YES) + { + free (localTaxonCalibration); + localTaxonCalibration = NULL; + memAllocs[ALLOC_LOCALTAXONCALIBRATION] = NO; + } + + /* count number of non-excluded taxa */ + numLocalTaxa = 0; + for (i=0; iupDateCijk = YES; + m->upDateCl = YES; + m->upDateAll = YES; + + /* make certain that we start with a parsimony branch length of zero */ + for (j=0; jparsTreeLength[j*2] = m->parsTreeLength[j*2+1] = 0.0; + + m->tRatio = NULL; + m->revMat = NULL; + m->omega = NULL; + m->stateFreq = NULL; + m->shape = NULL; + m->pInvar = NULL; + m->correlation = NULL; + m->switchRates = NULL; + m->rateMult = NULL; + m->topology = NULL; + m->brlens = NULL; + m->speciationRates = NULL; + m->extinctionRates = NULL; + m->fossilizationRates = NULL; + m->popSize = NULL; + m->aaModel = NULL; + m->cppRate = NULL; + m->cppEvents = NULL; + m->cppMultDev = NULL; + m->tk02var = NULL; + m->tk02BranchRates = NULL; + m->igrvar = NULL; + m->igrBranchRates = NULL; + m->mixedvar = NULL; + m->mixedBrchRates = NULL; + m->clockRate = NULL; + + m->CondLikeDown = NULL; + m->CondLikeRoot = NULL; + m->CondLikeScaler = NULL; + m->Likelihood = NULL; + m->TiProbs = NULL; + + m->CondLikeUp = NULL; + m->StateCode = NULL; + m->PrintAncStates = NULL; + m->PrintSiteRates = NULL; + + m->printPosSel = NO; + m->printAncStates = NO; + m->printSiteRates = NO; + + m->nStates = NULL; + m->bsIndex = NULL; + m->cType = NULL; + m->tiIndex = NULL; + + m->gibbsGamma = NO; + m->gibbsFreq = 0; + + m->parsimonyBasedMove = NO; + +# if defined (BEAGLE_ENABLED) + m->beagleInstance = -1; /* beagle instance */ + m->logLikelihoods = NULL; /* array of log likelihoods from Beagle */ + m->inRates = NULL; /* array of category rates for Beagle */ + m->branchLengths = NULL; /* array of branch lengths for Beagle */ + m->tiProbIndices = NULL; /* array of trans prob indices for Beagle */ + m->inWeights = NULL; /* array of weights for Beagle root likelihood */ + m->bufferIndices = NULL; /* array of partial indices for root likelihood */ + m->childBufferIndices = NULL; /* array of child partial indices (unrooted) */ + m->childTiProbIndices = NULL; /* array of child ti prob indices (unrooted) */ + m->cumulativeScaleIndices = NULL; /* array of cumulative scale indices */ +# endif + + /* likelihood calculator flags */ + m->useSSE = NO; /* use SSE code for this partition? */ + m->useBeagle = NO; /* use Beagle for this partition? */ + + /* set all memory pointers to NULL */ + m->parsSets = NULL; + m->numParsSets = 0; + m->parsNodeLens = NULL; + m->numParsNodeLens = 0; + + m->condLikes = NULL; + m->tiProbs = NULL; + m->scalers = NULL; + m->numCondLikes = 0; + m->numTiProbs = 0; + m->numScalers = 0; + + m->condLikeIndex = NULL; + m->condLikeScratchIndex = NULL; + m->tiProbsIndex = NULL; + m->tiProbsScratchIndex = NULL; + m->nodeScalerIndex = NULL; + m->nodeScalerScratchIndex = NULL; + m->siteScalerIndex = NULL; + m->siteScalerScratchIndex = -1; + + m->cijks = NULL; + m->nCijkParts = 0; + m->cijkIndex = NULL; + m->cijkScratchIndex = -1; + } + + /* set state of all chains to zero */ + for (chn=0; chnnucModel,"Protein") && (mp->dataType == DNA || mp->dataType == RNA)) + m->dataType = PROTEIN; + else + m->dataType = mp->dataType; + + /* nuc model structure */ + if (!strcmp(mp->nucModel, "4by4")) + m->nucModelId = NUCMODEL_4BY4; + else if (!strcmp(mp->nucModel, "Doublet")) + m->nucModelId = NUCMODEL_DOUBLET; + else if (!strcmp(mp->nucModel, "Protein")) + m->nucModelId = NUCMODEL_AA; + else /* if (!strcmp(mp->nucModelId, "Codon")) */ + m->nucModelId = NUCMODEL_CODON; + + /* model nst */ + if (!strcmp(mp->nst, "1")) + m->nst = 1; + else if (!strcmp(mp->nst, "2")) + m->nst = 2; + else if (!strcmp(mp->nst, "6")) + m->nst = 6; + else + m->nst = NST_MIXED; + + /* We set the aa model here. We have two options. First, the model + could be fixed, in which case mp->aaModel has been set. We then + go ahead and also set the model settings. Second, the model + could be mixed. In this case, the amino acid matrix is considered + a parameter, and we will deal with it below. It doesn't hurt + to set it here anyway (it will be overwritten later). */ + if (!strcmp(mp->aaModelPr, "Fixed")) + { + if (!strcmp(mp->aaModel, "Poisson")) + m->aaModelId = AAMODEL_POISSON; + else if (!strcmp(mp->aaModel, "Equalin")) + m->aaModelId = AAMODEL_EQ; + else if (!strcmp(mp->aaModel, "Jones")) + m->aaModelId = AAMODEL_JONES; + else if (!strcmp(mp->aaModel, "Dayhoff")) + m->aaModelId = AAMODEL_DAY; + else if (!strcmp(mp->aaModel, "Mtrev")) + m->aaModelId = AAMODEL_MTREV; + else if (!strcmp(mp->aaModel, "Mtmam")) + m->aaModelId = AAMODEL_MTMAM; + else if (!strcmp(mp->aaModel, "Wag")) + m->aaModelId = AAMODEL_WAG; + else if (!strcmp(mp->aaModel, "Rtrev")) + m->aaModelId = AAMODEL_RTREV; + else if (!strcmp(mp->aaModel, "Cprev")) + m->aaModelId = AAMODEL_CPREV; + else if (!strcmp(mp->aaModel, "Vt")) + m->aaModelId = AAMODEL_VT; + else if (!strcmp(mp->aaModel, "Blosum")) + m->aaModelId = AAMODEL_BLOSUM; + else if (!strcmp(mp->aaModel, "LG")) + m->aaModelId = AAMODEL_LG; + else if (!strcmp(mp->aaModel, "Gtr")) + m->aaModelId = AAMODEL_GTR; + else + { + MrBayesPrint ("%s Uncertain amino acid model\n", spacer); + return (ERROR); + } + } + else + m->aaModelId = -1; + + /* parsimony model? */ + if (!strcmp(mp->parsModel, "Yes")) + m->parsModelId = YES; + else + m->parsModelId = NO; + + /* number of gamma categories */ + if (activeParams[P_SHAPE][i] > 0) + m->numGammaCats = mp->numGammaCats; + else + m->numGammaCats = 1; + + /* number of beta categories */ + if (mp->dataType == STANDARD && !(AreDoublesEqual(mp->symBetaFix, -1.0, 0.00001) == YES && !strcmp(mp->symPiPr,"Fixed"))) + m->numBetaCats = mp->numBetaCats; + else + m->numBetaCats = 1; + + /* number of omega categories */ + if ((mp->dataType == DNA || mp->dataType == RNA) && (!strcmp(mp->omegaVar, "Ny98") || !strcmp(mp->omegaVar, "M3")) && !strcmp(mp->nucModel, "Codon")) + { + m->numOmegaCats = 3; + m->numGammaCats = 1; /* if we are here, then we cannot have gamma or beta variation */ + m->numBetaCats = 1; + } + else if ((mp->dataType == DNA || mp->dataType == RNA) && !strcmp(mp->omegaVar, "M10") && !strcmp(mp->nucModel, "Codon")) + { + m->numOmegaCats = mp->numM10BetaCats + mp->numM10GammaCats; + m->numGammaCats = 1; /* if we are here, then we cannot have gamma or beta variation */ + m->numBetaCats = 1; + } + else + m->numOmegaCats = 1; + + /* number of transition matrices depends on numGammaCats, numBetaCats, and numOmegaCats */ + m->numTiCats = m->numGammaCats * m->numBetaCats * m->numOmegaCats; + + /* TODO: check that numStates and numModelStates are set + appropriately for codon and doublet models */ + + /* number of observable states */ + if (m->dataType == STANDARD) + m->numStates = 0; /* zero, meaining variable */ + else if (!strcmp(mp->nucModel,"Protein") && (mp->dataType == DNA || mp->dataType == RNA)) + m->numStates = 20; + else + m->numStates = mp->nStates; + + /* number of model states including hidden ones */ + if ((mp->dataType == DNA || mp->dataType == RNA) && !strcmp (mp->covarionModel, "Yes") && !strcmp(mp->nucModel, "4by4")) + m->numModelStates = mp->nStates * 2; + else if (m->dataType == PROTEIN && !strcmp (mp->covarionModel, "Yes")) + m->numModelStates = mp->nStates * 2; + else if ((mp->dataType == DNA || mp->dataType == RNA) && !strcmp(mp->nucModel,"Protein") && !strcmp (mp->covarionModel, "Yes")) + m->numModelStates = 20 * 2; + else if (mp->dataType == CONTINUOUS) + m->numModelStates = 0; + else if (mp->dataType == STANDARD) + { + /* use max possible for now; we don't know what chars will be included */ + m->numModelStates = 10; + } + else + m->numModelStates = m->numStates; + + /* Fill in some information for calculating cijk. We will use m->cijkLength to + figure out if we need to diagonalize Q to calculate transition probabilities. + If cijkLength = 0, then we won't bother. We use cijkLength later in this function. */ + m->cijkLength = 0; + m->nCijkParts = 1; + if (m->dataType == PROTEIN) + { + ts = m->numModelStates; + m->cijkLength = (ts * ts * ts) + (2 * ts); + if (!strcmp (mp->covarionModel, "Yes")) + { + m->cijkLength *= m->numGammaCats; + m->nCijkParts = m->numGammaCats; + } + } + else if (m->dataType == STANDARD) + { + /* set to 0 for now, update in ProcessStdChars */ + m->nCijkParts = 0; + } + else if (m->dataType == DNA || m->dataType == RNA) + { + if (m->nucModelId == NUCMODEL_4BY4) + { + if (!strcmp (mp->covarionModel, "No") && m->nst != 6 && m->nst != 203) + m->cijkLength = 0; + else + { + ts = m->numModelStates; + m->cijkLength = (ts * ts * ts) + (2 * ts); + } + if (!strcmp (mp->covarionModel, "Yes")) + { + m->cijkLength *= m->numGammaCats; + m->nCijkParts = m->numGammaCats; + } + } + else if (m->nucModelId == NUCMODEL_DOUBLET) + { + ts = m->numModelStates; + m->cijkLength = (ts * ts * ts) + (2 * ts); + } + else if (m->nucModelId == NUCMODEL_CODON) + { + ts = m->numModelStates; + m->cijkLength = (ts * ts * ts) + (2 * ts); + m->cijkLength *= m->numOmegaCats; + m->nCijkParts = m->numOmegaCats; + } + else + { + MrBayesPrint ("%s BUG: Inconsistent model. Please report this as a bug.\n"); + return ERROR; + } + } + + /* check if we should calculate ancestral states */ + if (!strcmp(mp->inferAncStates,"Yes")) + { + if (m->dataType == PROTEIN && !strcmp(mp->covarionModel, "No")) + m->printAncStates = YES; + else if (m->dataType == DNA || m->dataType == RNA) + { + if (!strcmp(mp->nucModel,"4by4") && !strcmp(mp->covarionModel, "No")) + m->printAncStates = YES; + if (!strcmp(mp->nucModel,"Doublet")) + m->printAncStates = YES; + if (!strcmp(mp->nucModel,"Codon") && !strcmp(mp->omegaVar,"Equal")) + m->printAncStates = YES; + } + else if (m->dataType == STANDARD || m->dataType == RESTRICTION) + m->printAncStates = YES; + if (m->printAncStates == YES) + inferAncStates = YES; + else + MrBayesPrint ("%s Print out of ancestral states is not applicable for devision %d.\n",spacer,i); + } + + /* check if we should calculate site rates */ + if (!strcmp(mp->inferSiteRates,"Yes")) + { + if (m->numGammaCats > 1) + { + m->printSiteRates = YES; + inferSiteRates = YES; + } + } + + /* check if we should calculate positive selection */ + if (!strcmp(mp->inferPosSel, "Yes")) + { + if (m->numOmegaCats > 1) + { + m->printPosSel = YES; + inferPosSel = YES; + } + } + + /* check if we should calculate site omegas */ + if (!strcmp(mp->inferSiteOmegas, "Yes")) + { + if (m->numOmegaCats > 1) + { + m->printSiteOmegas = YES; + inferSiteOmegas = YES; + } + } + /* check if we should use gibbs sampling of gamma (don't use it with pinvar or invgamma) */ + if (!strcmp(mp->useGibbs,"Yes") && (m->numGammaCats > 1)) + { + if (m->dataType == DNA || m->dataType == RNA || m->dataType == PROTEIN) + { + if (activeParams[P_CORREL][i] <= 0 && m->printSiteRates == NO && activeParams[P_PINVAR][i] <= 0) + { + m->gibbsGamma = YES; + m->gibbsFreq = mp->gibbsFreq; + } + } + } + } + + return (NO_ERROR); +} + + +/*----------------------------------------------------------------- +| +| SetModelParams: Set up parameter structs for all model +| parameters, including trees +| +|----------------------------------------------------------------*/ +int SetModelParams (void) +{ + int c, i, j, k, n, n1, n2, *isPartTouched, numRelParts, nRelParts, areAllPartsParsimony, + nClockBrlens, nRelaxedBrlens, nCalibratedBrlens; + char tempCodon[15], tempMult[15], *tempStr,temp[30]; + char static *partString=NULL; /* mad static to avoid posible memory leak on return ERROR if it would be introduced later */ + Param *p; + ModelParams *mp; + ModelInfo *m; + int tempStrSize = 300; + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + isPartTouched = (int *) SafeMalloc ((size_t)numCurrentDivisions * sizeof (int)); + if (!tempStr || !isPartTouched) + { + MrBayesPrint ("%s Problem allocating tempString (%d) or isPartTouched (%d)\n", spacer, + tempStrSize * sizeof(char), numCurrentDivisions * sizeof(int)); + return (ERROR); + } + +# if defined DEBUG_SETCHAINPARAMS + /* only for debugging */ + MrBFlt lnPriorRatio = 0.0, lnProposalRatio = 0.0; +# endif + + /* allocate space for parameters */ + if (memAllocs[ALLOC_PARAMS] == YES) + { + for (i=0; i numParams) + numParams = activeParams[j][i]; + if (activeParams[j][i] > 0) + nRelParts++; + } + } + + params = (Param *) SafeMalloc (numParams * sizeof(Param)); + relevantParts = (int *) SafeMalloc (nRelParts * sizeof(int)); + if (!params || !relevantParts) + { + MrBayesPrint ("%s Problem allocating params and relevantParts\n", spacer); + if (params) + free (params); + if (relevantParts) + free (relevantParts); + free (tempStr); + return ERROR; + } + else + memAllocs[ALLOC_PARAMS] = YES; + + /* fill in info on each parameter */ + nRelParts = 0; /* now cumulative number of relevant partitions */ + for (k=0; k 0) + break; + } + + /* find pointer to modelParams and modelSettings of first relevant partition */ + /* this will be handy later on */ + for (i=0; imin = p->max = NEG_INFINITY; + + /* Parameter nValues and nSubValues, which are needed for memory allocation + are calculated for each case in the code below. nSympi, however, is + only used for one special type of parameter and it therefore makes + sense to initialize it to 0 here. The same applies to hasBinaryStd + and nIntValues. To be safe, we set all to 0 here. */ + p->nValues = 0; + p->nSubValues = 0; + p->nIntValues = 0; + p->nSympi = 0; + p->hasBinaryStd = NO; + + /* should this parameter be printed to a file? */ + p->printParam = NO; + + /* set print subparams to 0 */ + p->nPrintSubParams = 0; + + /* check constraints for tree parameter ? */ + p->checkConstraints = NO; + + /* set index number of parameter */ + p->index = k; + + /* set prior function to NULL */ + p->LnPriorRatio = NULL; + + /* set prior paramters to NULL */ + p->priorParams = NULL; + + /* set affectsLikelihood to NO */ + p->affectsLikelihood = NO; + + /* set cpp event pointers to NULL */ + p->nEvents = NULL; + p->position = NULL; + p->rateMult = NULL; + + /* set header and name to NULL */ + p->paramHeader = NULL; + p->name = NULL; + + /* set up relevant partitions */ + p->nRelParts = numRelParts; + p->relParts = relevantParts + nRelParts; + nRelParts += numRelParts; + for (i=n=0; irelParts[n++] = i; + + /* get partition descriptor */ + SafeStrcat(&partString,""); + FillRelPartsString (p, &partString); + + /* set up information for parameter */ + if (j == P_TRATIO) + { + /* Set up tratio ****************************************************************************************/ + p->paramType = P_TRATIO; + p->nValues = 1; /* we store only the ratio */ + p->nSubValues = 0; + p->min = 0.0; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Transition and transversion rates"; + SafeStrcat(&p->name, "Tratio"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->tRatioPr,"Beta")) + { + p->paramId = TRATIO_DIR; + } + else + p->paramId = TRATIO_FIX; + + if (p->paramId != TRATIO_FIX) + p->printParam = YES; + if (!strcmp(mp->tratioFormat,"Ratio")) + { + /* report ti/tv ratio */ + SafeStrcat (&p->paramHeader,"kappa"); + SafeStrcat (&p->paramHeader, partString); + } + else + { + /* report prop. of ratesum (Dirichlet) */ + SafeStrcat (&p->paramHeader,"ti"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\ttv"); + SafeStrcat (&p->paramHeader, partString); + } + } + else if (j == P_REVMAT) + { + /* Set up revMat ****************************************************************************************/ + p->paramType = P_REVMAT; + if (m->dataType == PROTEIN) + p->nValues = 190; + else + p->nValues = 6; + p->nSubValues = 0; + if (!strcmp(mp->nst, "Mixed")) + p->nIntValues = 6; + else + p->nIntValues = 0; + p->min = 0.0; + p->max = 1.0; /* adjust later for REVMAT_MIX, see a few lines below */ + for (i=0; iparamTypeName = "Rates of reversible rate matrix"; + SafeStrcat(&p->name, "Revmat"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (m->dataType == PROTEIN) + { + if (!strcmp(mp->aaRevMatPr,"Dirichlet")) + p->paramId = REVMAT_DIR; + else + p->paramId = REVMAT_FIX; + if (p->paramId != REVMAT_FIX) + p->printParam = YES; + + for (n1=0; n1<20; n1++) + { + for (n2=n1+1; n2<20; n2++) + { + if (n1==0 && n2==1) + { + sprintf (temp, "r(%c<->%c)", StateCode_AA(n1), StateCode_AA(n2)); + SafeStrcat (&p->paramHeader, temp); + SafeStrcat (&p->paramHeader, partString); + } + else + { + sprintf (temp, "\tr(%c<->%c)", StateCode_AA(n1), StateCode_AA(n2)); + SafeStrcat (&p->paramHeader, temp); + SafeStrcat (&p->paramHeader, partString); + } + } + } + } + else + { + if (!strcmp(mp->nst, "Mixed")) + { + p->paramId = REVMAT_MIX; + p->max = 1E6; /* some large value */ + } + else if (!strcmp(mp->revMatPr,"Dirichlet")) + p->paramId = REVMAT_DIR; + else + p->paramId = REVMAT_FIX; + if (p->paramId != REVMAT_FIX) + p->printParam = YES; + + for (n1=0; n1<4; n1++) + { + for (n2=n1+1; n2<4; n2++) + { + if (n1==0 && n2==1) + { + sprintf (temp, "r(%c<->%c)", StateCode_NUC4(n1), StateCode_NUC4(n2)); + SafeStrcat (&p->paramHeader, temp); + SafeStrcat (&p->paramHeader, partString); + } + else + { + sprintf (temp, "\tr(%c<->%c)", StateCode_NUC4(n1), StateCode_NUC4(n2)); + SafeStrcat (&p->paramHeader, temp); + SafeStrcat (&p->paramHeader, partString); + } + } + } + if (p->paramId == REVMAT_MIX) + { + sprintf (temp, "\tgtrsubmodel"); + SafeStrcat (&p->paramHeader, temp); + SafeStrcat (&p->paramHeader, partString); + sprintf (temp, "\tk_revmat"); + SafeStrcat (&p->paramHeader, temp); + SafeStrcat (&p->paramHeader, partString); + } + } + } + else if (j == P_OMEGA) + { + /* Set up omega *****************************************************************************************/ + p->paramType = P_OMEGA; + p->min = 0.0; + p->max = POS_INFINITY; + if (!strcmp(mp->omegaVar, "M3")) + { + p->nValues = 3; /* omega values */ + p->nSubValues = 6; /* category frequencies plus cache */ + for (i=0; im3omegapr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_EF; + else if (!strcmp(mp->m3omegapr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_ED; + else if (!strcmp(mp->m3omegapr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_FF; + else if (!strcmp(mp->m3omegapr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_FD; + + if (p->paramId != OMEGA_FF) + p->printParam = YES; + + SafeStrcat (&p->paramHeader, "omega(1)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tomega(2)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tomega(3)"); + SafeStrcat (&p->paramHeader, partString); + + SafeStrcat (&p->paramHeader, "\tpi(1)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tpi(2)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tpi(3)"); + SafeStrcat (&p->paramHeader, partString); + } + else if (!strcmp(mp->omegaVar, "M10")) + { + p->nValues = mp->numM10BetaCats + mp->numM10GammaCats; + p->nSubValues = mp->numM10BetaCats + mp->numM10GammaCats + 8; + for (i=0; im10betapr, "Uniform") && !strcmp(mp->m10gammapr, "Uniform") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_10UUB; + else if (!strcmp(mp->m10betapr, "Uniform") && !strcmp(mp->m10gammapr, "Uniform") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_10UUF; + else if (!strcmp(mp->m10betapr, "Uniform") && !strcmp(mp->m10gammapr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_10UEB; + else if (!strcmp(mp->m10betapr, "Uniform") && !strcmp(mp->m10gammapr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_10UEF; + else if (!strcmp(mp->m10betapr, "Uniform") && !strcmp(mp->m10gammapr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_10UFB; + else if (!strcmp(mp->m10betapr, "Uniform") && !strcmp(mp->m10gammapr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_10UFF; + else if (!strcmp(mp->m10betapr, "Exponential") && !strcmp(mp->m10gammapr, "Uniform") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_10EUB; + else if (!strcmp(mp->m10betapr, "Exponential") && !strcmp(mp->m10gammapr, "Uniform") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_10EUF; + else if (!strcmp(mp->m10betapr, "Exponential") && !strcmp(mp->m10gammapr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_10EEB; + else if (!strcmp(mp->m10betapr, "Exponential") && !strcmp(mp->m10gammapr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_10EEF; + else if (!strcmp(mp->m10betapr, "Exponential") && !strcmp(mp->m10gammapr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_10EFB; + else if (!strcmp(mp->m10betapr, "Exponential") && !strcmp(mp->m10gammapr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_10EFF; + else if (!strcmp(mp->m10betapr, "Fixed") && !strcmp(mp->m10gammapr, "Uniform") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_10FUB; + else if (!strcmp(mp->m10betapr, "Fixed") && !strcmp(mp->m10gammapr, "Uniform") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_10FUF; + else if (!strcmp(mp->m10betapr, "Fixed") && !strcmp(mp->m10gammapr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_10FEB; + else if (!strcmp(mp->m10betapr, "Fixed") && !strcmp(mp->m10gammapr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_10FEF; + else if (!strcmp(mp->m10betapr, "Fixed") && !strcmp(mp->m10gammapr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_10FFB; + else if (!strcmp(mp->m10betapr, "Fixed") && !strcmp(mp->m10gammapr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_10FFF; + + if (p->paramId != OMEGA_10FFF) + p->printParam = YES; + for (i=0; inValues; i++) + { + if (i==0) + sprintf (temp, "omega(%d)", i+1); + else + sprintf (temp, "\tomega(%d)", i+1); + SafeStrcat (&p->paramHeader, temp); + SafeStrcat (&p->paramHeader, partString); + } + SafeStrcat (&p->paramHeader, "\tbeta(alpha)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tbeta(beta)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tgamma(alpha)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tgamma(beta)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tpi(1)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tpi(2)"); + SafeStrcat (&p->paramHeader, partString); + } + else if (!strcmp(mp->omegaVar, "Ny98")) + { + p->nValues = 3; /* omega values */ + p->nSubValues = 6; /* omega category frequencies plus cache */ + for (i=0; iny98omega1pr, "Beta") && !strcmp(mp->ny98omega3pr, "Uniform") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_BUD; + else if (!strcmp(mp->ny98omega1pr, "Beta") && !strcmp(mp->ny98omega3pr, "Uniform") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_BUF; + else if (!strcmp(mp->ny98omega1pr, "Beta") && !strcmp(mp->ny98omega3pr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_BED; + else if (!strcmp(mp->ny98omega1pr, "Beta") && !strcmp(mp->ny98omega3pr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_BEF; + else if (!strcmp(mp->ny98omega1pr, "Beta") && !strcmp(mp->ny98omega3pr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_BFD; + else if (!strcmp(mp->ny98omega1pr, "Beta") && !strcmp(mp->ny98omega3pr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_BFF; + else if (!strcmp(mp->ny98omega1pr, "Fixed") && !strcmp(mp->ny98omega3pr, "Uniform") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_FUD; + else if (!strcmp(mp->ny98omega1pr, "Fixed") && !strcmp(mp->ny98omega3pr, "Uniform") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_FUF; + else if (!strcmp(mp->ny98omega1pr, "Fixed") && !strcmp(mp->ny98omega3pr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_FED; + else if (!strcmp(mp->ny98omega1pr, "Fixed") && !strcmp(mp->ny98omega3pr, "Exponential") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_FEF; + else if (!strcmp(mp->ny98omega1pr, "Fixed") && !strcmp(mp->ny98omega3pr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Dirichlet")) + p->paramId = OMEGA_FFD; + else if (!strcmp(mp->ny98omega1pr, "Fixed") && !strcmp(mp->ny98omega3pr, "Fixed") && !strcmp(mp->codonCatFreqPr, "Fixed")) + p->paramId = OMEGA_FFF; + + if (p->paramId != OMEGA_FFF) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "omega(-)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tomega(N)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tomega(+)"); + SafeStrcat (&p->paramHeader, partString); + + SafeStrcat (&p->paramHeader, "\tpi(-)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tpi(N)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\tpi(+)"); + SafeStrcat (&p->paramHeader, partString); + } + else + { + p->nValues = 1; + p->nSubValues = 0; + for (i=0; iomegaPr,"Dirichlet")) + p->paramId = OMEGA_DIR; + else + p->paramId = OMEGA_FIX; + + if (p->paramId != OMEGA_FIX) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "omega"); + SafeStrcat (&p->paramHeader, partString); + } + p->paramTypeName = "Positive selection (omega) model"; + SafeStrcat(&p->name, "Omega"); + SafeStrcat(&p->name, partString); + } + else if (j == P_PI) + { + /* Set up state frequencies *****************************************************************************/ + p->paramType = P_PI; + p->min = 0.0; + p->max = 1.0; + for (i=0; idataType == STANDARD) + { + p->paramTypeName = "Symmetric diricihlet/beta distribution alpha_i parameter"; + SafeStrcat(&p->name, "Alpha_symdir"); + /* boundaries for alpha_i */ + p->min = ETA; + p->max = POS_INFINITY; + } + else + { + p->paramTypeName = "Stationary state frequencies"; + SafeStrcat(&p->name, "Pi"); + } + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + /* and the number of values and subvalues needed */ + if (mp->dataType == STANDARD) + { + /* find number of model states */ + m->numModelStates = 2; + for (c=0; cnRelParts; i++) + { + if (partitionId[c][partitionNum] == p->relParts[i] + 1 && charInfo[c].numStates > m->numModelStates) + m->numModelStates = charInfo[c].numStates; + } + } + for (i=0; inRelParts; i++) + modelSettings[p->relParts[i]].numModelStates = m->numModelStates; + + /* symmetric hyperprior with only one variable (0 if equal) */ + p->nValues = 1; /* set to 0 below for the SYMPI_EQUAL model */ + if (!strcmp(mp->symPiPr,"Uniform")) + { + if (m->numModelStates > 2) + p->paramId = SYMPI_UNI_MS; + else + p->paramId = SYMPI_UNI; + } + else if (!strcmp(mp->symPiPr,"Exponential")) + { + if (m->numModelStates > 2) + p->paramId = SYMPI_EXP_MS; + else + p->paramId = SYMPI_EXP; + } + else if (!strcmp(mp->symPiPr,"Fixed")) + { + if (AreDoublesEqual(mp->symBetaFix, -1.0, 0.00001) == YES) + { + p->paramId = SYMPI_EQUAL; + p->nValues = 0; + } + else + { + if (m->numModelStates > 2) + p->paramId = SYMPI_FIX_MS; + else + p->paramId = SYMPI_FIX; + } + } + p->nSubValues = 0; /* store state frequencies in p->stdStateFreqs */ + if (p->paramId == SYMPI_EXP || p->paramId == SYMPI_EXP_MS || p->paramId == SYMPI_UNI || p->paramId == SYMPI_UNI_MS) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "alpha_symdir"); + SafeStrcat (&p->paramHeader, partString); + /* further processing done in ProcessStdChars */ + } + else + { + /* deal with all models except standard */ + /* no hyperprior or fixed to one value, set default to 0 */ + p->nValues = 0; + /* one subvalue for each state */ + p->nSubValues = mp->nStates; /* mp->nStates is set to 20 if DNA || RNA && nucmodel==PROTEIN */ + if (!strcmp(mp->stateFreqPr, "Dirichlet")) + { + p->paramId = PI_DIR; + p->nValues = mp->nStates; + } + else if (!strcmp(mp->stateFreqPr, "Fixed") && !strcmp(mp->stateFreqsFixType,"User")) + p->paramId = PI_USER; + else if (!strcmp(mp->stateFreqPr, "Fixed") && !strcmp(mp->stateFreqsFixType,"Empirical")) + p->paramId = PI_EMPIRICAL; + else if (!strcmp(mp->stateFreqPr, "Fixed") && !strcmp(mp->stateFreqsFixType,"Equal")) + { + p->paramId = PI_EQUAL; + } + + if (m->dataType == PROTEIN) + { + if (!strcmp(mp->aaModelPr, "Fixed")) + { + if (!strcmp(mp->aaModel, "Poisson")) + p->paramId = PI_EQUAL; + else if (!strcmp(mp->aaModel, "Equalin") || !strcmp(mp->aaModel, "Gtr")) + { + /* p->paramId stays to what it was set to above */ + } + else + p->paramId = PI_FIXED; + } + else + p->paramId = PI_FIXED; + } + + if (p->paramId == PI_DIR) + p->printParam = YES; + if (m->dataType == DNA || m->dataType == RNA) + { + if (!strcmp(mp->nucModel, "4by4")) + { + sprintf (temp, "pi(%c)", StateCode_NUC4(0)); + SafeStrcat (&p->paramHeader,temp); + SafeStrcat (&p->paramHeader,partString); + for (n1=1; n1<4; n1++) + { + sprintf (temp, "\tpi(%c)", StateCode_NUC4(n1)); + SafeStrcat (&p->paramHeader,temp); + SafeStrcat (&p->paramHeader,partString); + } + } + else if (!strcmp(mp->nucModel, "Doublet")) + { + State_DOUBLET(tempCodon,0); + sprintf (temp, "pi(%s)", tempCodon); + SafeStrcat (&p->paramHeader,temp); + SafeStrcat (&p->paramHeader,partString); + for (n1=1; n1<16; n1++) + { + State_DOUBLET(tempCodon,n1); + sprintf (temp, "\tpi(%s)", tempCodon); + SafeStrcat (&p->paramHeader,temp); + SafeStrcat (&p->paramHeader,partString); + } + } + else if (!strcmp(mp->nucModel, "Codon")) + { + for (c=0; cnSubValues; c++) + { + if (mp->codonNucs[c][0] == 0) + strcpy (tempCodon, "pi(A"); + else if (mp->codonNucs[c][0] == 1) + strcpy (tempCodon, "pi(C"); + else if (mp->codonNucs[c][0] == 2) + strcpy (tempCodon, "pi(G"); + else + strcpy (tempCodon, "pi(T"); + if (mp->codonNucs[c][1] == 0) + strcat (tempCodon, "A"); + else if (mp->codonNucs[c][1] == 1) + strcat (tempCodon, "C"); + else if (mp->codonNucs[c][1] == 2) + strcat (tempCodon, "G"); + else + strcat (tempCodon, "T"); + if (mp->codonNucs[c][2] == 0) + strcat (tempCodon, "A)"); + else if (mp->codonNucs[c][2] == 1) + strcat (tempCodon, "C)"); + else if (mp->codonNucs[c][2] == 2) + strcat (tempCodon, "G)"); + else + strcat (tempCodon, "T)"); + if (c == 0) + { + SafeStrcat (&p->paramHeader, tempCodon); + SafeStrcat (&p->paramHeader, partString); + } + else + { + SafeStrcat (&p->paramHeader, "\t"); + SafeStrcat (&p->paramHeader, tempCodon); + SafeStrcat (&p->paramHeader, partString); + } + } + } + } + else if (m->dataType == PROTEIN) + { + if (FillRelPartsString (p, &partString) == YES) + { + SafeSprintf (&tempStr, &tempStrSize, "pi(Ala)%s\tpi(Arg)%s\tpi(Asn)%s\tpi(Asp)%s\tpi(Cys)%s\tpi(Gln)%s\tpi(Glu)%s\tpi(Gly)%s\tpi(His)%s\tpi(Ile)%s\tpi(Leu)%s\tpi(Lys)%s\tpi(Met)%s\tpi(Phe)%s\tpi(Pro)%s\tpi(Ser)%s\tpi(Thr)%s\tpi(Trp)%s\tpi(Tyr)%s\tpi(Val)%s", + partString, partString, partString, partString, partString, partString, partString, partString, partString, partString, + partString, partString, partString, partString, partString, partString, partString, partString, partString, partString); + SafeStrcat (&p->paramHeader, tempStr); + } + else + SafeStrcat (&p->paramHeader, "pi(Ala)\tpi(Arg)\tpi(Asn)\tpi(Asp)\tpi(Cys)\tpi(Gln)\tpi(Glu)\tpi(Gly)\tpi(His)\tpi(Ile)\tpi(Leu)\tpi(Lys)\tpi(Met)\tpi(Phe)\tpi(Pro)\tpi(Ser)\tpi(Thr)\tpi(Trp)\tpi(Tyr)\tpi(Val)"); + } + else if (mp->dataType == RESTRICTION) + { + if (FillRelPartsString (p, &partString) == YES) + { + SafeSprintf (&tempStr, &tempStrSize, "pi(0)%s\tpi(1)%s", partString, partString); + SafeStrcat (&p->paramHeader, tempStr); + } + else + SafeStrcat (&p->paramHeader, "pi(0)\tpi(1)"); + } + else + { + MrBayesPrint ("%s Unknown data type in SetModelParams\n", spacer); + } + } + } + else if (j == P_SHAPE) + { + /* Set up shape parameter of gamma/lnorm *****************************************************************/ + p->paramType = P_SHAPE; + p->nValues = 1; + p->nSubValues = mp->numGammaCats; + p->min = 1E-5; + p->max = 100; + for (i=0; iratesModel, "LNorm")) + { + p->paramTypeName = "SD of scaled lognormal distribution of site rates"; + SafeStrcat(&p->name, "Sigma"); + SafeStrcat (&p->paramHeader, "sigma"); + } + else + { + p->paramTypeName = "Shape of scaled gamma distribution of site rates"; + SafeStrcat(&p->name, "Alpha"); + SafeStrcat (&p->paramHeader, "alpha"); + } + SafeStrcat(&p->name, partString); + SafeStrcat (&p->paramHeader, partString); + + /* find the parameter x prior type */ + mp = &modelParams[p->relParts[0]]; + if (!strcmp(mp->shapePr,"Uniform")) + p->paramId = SHAPE_UNI; + else if (!strcmp(mp->shapePr,"Exponential")) + p->paramId = SHAPE_EXP; + else + p->paramId = SHAPE_FIX; + + if (p->paramId != SHAPE_FIX) + p->printParam = YES; + } + else if (j == P_PINVAR) + { + /* Set up proportion of invariable sites ****************************************************************/ + p->paramType = P_PINVAR; + p->nValues = 1; + p->nSubValues = 0; + p->min = 0.0; + p->max = 1.0; + for (i=0; iparamTypeName = "Proportion of invariable sites"; + SafeStrcat(&p->name, "Pinvar"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->pInvarPr,"Uniform")) + p->paramId = PINVAR_UNI; + else + p->paramId = PINVAR_FIX; + + if (p->paramId != PINVAR_FIX) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "pinvar"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_CORREL) + { + /* Set up correlation parameter of adgamma model ********************************************************/ + p->paramType = P_CORREL; + p->nValues = 1; + p->nSubValues = mp->numGammaCats * mp->numGammaCats; + p->min = -1.0; + p->max = 1.0; + for (i=0; iparamTypeName = "Autocorrelation of gamma distribution of site rates"; + SafeStrcat(&p->name, "Rho"); + SafeStrcat(&p->name, partString); + chainHasAdgamma = YES; + + /* find the parameter x prior type */ + if (!strcmp(mp->adGammaCorPr,"Uniform")) + p->paramId = CORREL_UNI; + else + p->paramId = CORREL_FIX; + + if (p->paramId != CORREL_FIX) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "rho"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_SWITCH) + { + /* Set up switchRates for covarion model ****************************************************************/ + p->paramType = P_SWITCH; + p->nValues = 2; + p->nSubValues = mp->numGammaCats * mp->numGammaCats; + p->min = 0.0; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Switch rates of covarion model"; + SafeStrcat(&p->name, "s_cov"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->covSwitchPr,"Uniform")) + p->paramId = SWITCH_UNI; + else if (!strcmp(mp->covSwitchPr,"Exponential")) + p->paramId = SWITCH_EXP; + else + p->paramId = SWITCH_FIX; + + if (p->paramId != SWITCH_FIX) + p->printParam = YES; + + SafeStrcat (&p->paramHeader, "s(off->on)"); + SafeStrcat (&p->paramHeader, partString); + SafeStrcat (&p->paramHeader, "\ts(on->off)"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_RATEMULT) + { + /* Set up rateMult for partition specific rates ***********************************************************/ + p->paramType = P_RATEMULT; + if (!strcmp(mp->ratePr,"Fixed")) + { + p->nValues = 1; + p->nSubValues = 0; + } + else + { + p->nValues = p->nRelParts = numRelParts; /* keep scaled division rates in value */ + p->nSubValues = p->nValues * 2; /* keep number of uncompressed chars for scaling in subValue */ + } /* also keep Dirichlet prior parameters here */ + p->min = POS_MIN; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Partition-specific rate multiplier"; + SafeStrcat(&p->name, "Ratemultiplier"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (p->nSubValues == 0) + p->paramId = RATEMULT_FIX; + else + p->paramId = RATEMULT_DIR; + + if (p->paramId != RATEMULT_FIX) + p->printParam = YES; + for (i=0; iparamHeader, tempMult); + else + { + SafeStrcat (&p->paramHeader, "\t"); + SafeStrcat (&p->paramHeader, tempMult); + } + } + } + } + else if (j == P_GENETREERATE) + { + /* Set up rateMult for gene specific rates ****************************************************************/ + p->paramType = P_GENETREERATE; + p->nValues = p->nRelParts = numRelParts; /* keep scaled division rates in value */ + p->nSubValues = p->nValues * 2; /* keep number of uncompressed chars for scaling in subValue */ + /* also keep Dirichlet prior parameters here */ + p->min = POS_MIN; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Gene-specific rate multiplier"; + SafeStrcat(&p->name, "Generatemult"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (strcmp(mp->generatePr,"Fixed") == 0) + p->paramId = GENETREERATEMULT_FIX; + else + p->paramId = GENETREERATEMULT_DIR; + + if (p->paramId == GENETREERATEMULT_FIX) + p->printParam = NO; + else + p->printParam = YES; + + for (i=0; iparamHeader, tempMult); + else + { + SafeStrcat (&p->paramHeader, "\t"); + SafeStrcat (&p->paramHeader, tempMult); + } + } + } + } + else if (j == P_TOPOLOGY) + { + /* Set up topology **************************************************************************************/ + p->paramType = P_TOPOLOGY; + p->nValues = 0; + p->nSubValues = 0; + p->min = NEG_INFINITY; /* NA */ + p->max = NEG_INFINITY; /* NA */ + for (i=0; iparamTypeName = "Topology"; + SafeStrcat(&p->name, "Tau"); + SafeStrcat(&p->name, partString); + + /* check that the model is not parsimony for all of the relevant partitions */ + areAllPartsParsimony = YES; + for (i=0; inRelParts; i++) + { + if (modelSettings[p->relParts[i]].parsModelId == NO) + areAllPartsParsimony = NO; + } + + /* check if topology is clock or nonclock */ + nClockBrlens = 0; + nCalibratedBrlens = 0; + nRelaxedBrlens = 0; + if (areAllPartsParsimony == NO) + { + for (i=0; inRelParts; i++) + { + if (!strcmp(modelParams[p->relParts[i]].brlensPr, "Clock")) + { + nClockBrlens++; + if (strcmp(modelParams[p->relParts[i]].clockVarPr,"Strict") != 0) /* not strict */ + nRelaxedBrlens++; + if (!strcmp(modelParams[p->relParts[i]].nodeAgePr,"Calibrated")) + nCalibratedBrlens++; + } + } + } + + /* now find the parameter x prior type */ + if (areAllPartsParsimony == YES) + { + if (!strcmp(mp->topologyPr, "Uniform")) + p->paramId = TOPOLOGY_PARSIMONY_UNIFORM; + else if (!strcmp(mp->topologyPr,"Constraints")) + p->paramId = TOPOLOGY_PARSIMONY_CONSTRAINED; + else + p->paramId = TOPOLOGY_PARSIMONY_FIXED; + /* For this case, we also need to set the brlens ptr of the relevant partitions + so that it points to the topology parameter, since the rest of the + program will try to access the tree through this pointer. In FillTreeParams, + we will make sure that a pure parsimony topology parameter contains a pointer + to the relevant tree (like a brlens parameter would normally) */ + for (i=0; inRelParts; i++) + modelSettings[p->relParts[i]].brlens = p; + } + else + { + /* we assume for now that there is only one branch length; we will correct this + later in AllocateTreeParams if there are more than one set of branch lengths, + which is only possible for non-clock trees */ + if (!strcmp(mp->topologyPr, "Speciestree")) + p->paramId = TOPOLOGY_SPECIESTREE; + else if (!strcmp(mp->topologyPr, "Uniform") && nClockBrlens == 0) + p->paramId = TOPOLOGY_NCL_UNIFORM_HOMO; + else if (!strcmp(mp->topologyPr,"Constraints") && nClockBrlens == 0) + p->paramId = TOPOLOGY_NCL_CONSTRAINED_HOMO; + else if (!strcmp(mp->topologyPr,"Fixed") && nClockBrlens == 0) + p->paramId = TOPOLOGY_NCL_FIXED_HOMO; + /* all below have clock branch lengths */ + else if (!strcmp(mp->topologyPr, "Uniform") && nRelaxedBrlens == 0) + { + if (nCalibratedBrlens >= 1) + p->paramId = TOPOLOGY_CCL_UNIFORM; + else + p->paramId = TOPOLOGY_CL_UNIFORM; + } + else if (!strcmp(mp->topologyPr,"Constraints") && nRelaxedBrlens == 0) + { + if (nCalibratedBrlens >= 1) + p->paramId = TOPOLOGY_CCL_CONSTRAINED; + else + p->paramId = TOPOLOGY_CL_CONSTRAINED; + } + else if (!strcmp(mp->topologyPr,"Fixed") && nRelaxedBrlens == 0) + { + if (nCalibratedBrlens >= 1) + p->paramId = TOPOLOGY_CCL_FIXED; + else + p->paramId = TOPOLOGY_CL_FIXED; + } + /* all below have relaxed clock branch lengths */ + else if (!strcmp(mp->topologyPr, "Uniform")) + { + if (nCalibratedBrlens >= 1) + p->paramId = TOPOLOGY_RCCL_UNIFORM; + else + p->paramId = TOPOLOGY_RCL_UNIFORM; + } + else if (!strcmp(mp->topologyPr,"Constraints")) + { + if (nCalibratedBrlens >= 1) + p->paramId = TOPOLOGY_RCCL_CONSTRAINED; + else + p->paramId = TOPOLOGY_RCL_CONSTRAINED; + } + else if (!strcmp(mp->topologyPr,"Fixed")) + { + if (nCalibratedBrlens >= 1) + p->paramId = TOPOLOGY_RCCL_FIXED; + else + p->paramId = TOPOLOGY_RCL_FIXED; + } + } + + /* should we print the topology? */ + for (i=0; inRelParts; i++) + if (strcmp(modelParams[p->relParts[i]].treeFormat,"Topology") != 0) + break; + if (i == p->nRelParts) + p->printParam = YES; + else + p->printParam = NO; + /* but always print parsimony topology */ + if (areAllPartsParsimony == YES) + p->printParam = YES; + /* and never print fixed topologies */ + if (p->paramId == TOPOLOGY_RCL_FIXED || + p->paramId == TOPOLOGY_RCCL_FIXED || + p->paramId == TOPOLOGY_CL_FIXED || + p->paramId == TOPOLOGY_CCL_FIXED || + p->paramId == TOPOLOGY_NCL_FIXED || + p->paramId == TOPOLOGY_PARSIMONY_FIXED) + p->printParam = NO; + } + else if (j == P_BRLENS) + { + /* Set up branch lengths ********************************************************************************/ + p->paramType = P_BRLENS; + p->nValues = 0; + p->nSubValues = 0; + p->min = 0.0; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Branch lengths"; + SafeStrcat(&p->name, "V"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (modelSettings[p->relParts[0]].parsModelId == YES) + p->paramId = BRLENS_PARSIMONY; + else + { + if (!strcmp(mp->brlensPr, "Clock")) + { + if (!strcmp(mp->clockPr,"Uniform")) + p->paramId = BRLENS_CLOCK_UNI; + else if (!strcmp(mp->clockPr,"Coalescence")) + p->paramId = BRLENS_CLOCK_COAL; + else if (!strcmp(mp->clockPr,"Birthdeath")) + p->paramId = BRLENS_CLOCK_BD; + else if (!strcmp(mp->clockPr,"Speciestreecoalescence")) + p->paramId = BRLENS_CLOCK_SPCOAL; + else if (!strcmp(mp->clockPr,"Fossilization")) + p->paramId = BRLENS_CLOCK_FOSSIL; + else if (!strcmp(mp->clockPr,"Fixed")) + p->paramId = BRLENS_CLOCK_FIXED; + } + else if (!strcmp(mp->brlensPr, "Unconstrained")) + { + if (!strcmp(mp->unconstrainedPr,"Uniform")) + p->paramId = BRLENS_UNI; + else if (!strcmp(mp->unconstrainedPr,"Exponential")) + p->paramId = BRLENS_EXP; + else if (!strcmp(mp->unconstrainedPr,"GammaDir")) + p->paramId = BRLENS_GamDir; + else if (!strcmp(mp->unconstrainedPr,"invGamDir")) + p->paramId = BRLENS_iGmDir; + else if (!strcmp(mp->unconstrainedPr,"twoExp")) + p->paramId = BRLENS_twoExp; + } + else if (!strcmp(mp->brlensPr,"Fixed")) + { + p->paramId = BRLENS_FIXED; + } + } + + /* should we print the branch lengths? */ + for (i=0; inRelParts; i++) + if (strcmp(modelParams[p->relParts[i]].treeFormat,"Topology") != 0) + break; + if (i < p->nRelParts) + p->printParam = YES; + else + p->printParam = NO; + } + else if (j == P_SPECIESTREE) + { + /* Set up species tree **************************************************************************************/ + p->paramType = P_SPECIESTREE; + p->nValues = 0; + p->nSubValues = 0; + p->min = NEG_INFINITY; /* NA */ + p->max = NEG_INFINITY; /* NA */ + for (i=0; iparamTypeName = "Species tree"; + SafeStrcat(&p->name, "Spt"); + SafeStrcat(&p->name, partString); + + /* check that the model is not parsimony for all of the relevant partitions */ + areAllPartsParsimony = YES; + for (i=0; inRelParts; i++) + { + if (modelSettings[p->relParts[i]].parsModelId == NO) + areAllPartsParsimony = NO; + } + + /* find the parameter x prior type */ + p->paramId = SPECIESTREE_UNIFORM; + + /* should we print the tree? */ + p->printParam = YES; + } + else if (j == P_SPECRATE) + { + /* Set up speciation rate ******************************************************************************/ + p->paramType = P_SPECRATE; + if (!strcmp(mp->clockPr,"Fossilization")) + p->nValues = mp->sampleFSNum +1; // rate in each time interval + else + p->nValues = 1; + p->nSubValues = 0; + p->min = POS_MIN; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Speciation rate"; + SafeStrcat(&p->name, "Net_speciation"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->speciationPr,"Uniform")) + p->paramId = SPECRATE_UNI; + else if (!strcmp(mp->speciationPr,"Exponential")) + p->paramId = SPECRATE_EXP; + else + p->paramId = SPECRATE_FIX; + + if (p->paramId != SPECRATE_FIX) + p->printParam = YES; + + if (p->nValues == 1) + { + SafeStrcat (&p->paramHeader, "net_speciation"); + SafeStrcat (&p->paramHeader, partString); + } + else for (i = 0; i < p->nValues; i++) + { + sprintf (tempStr, "\tnet_speciation_%d", i+1); + SafeStrcat (&p->paramHeader, tempStr); + SafeStrcat (&p->paramHeader, partString); + } + } + else if (j == P_EXTRATE) + { + /* Set up extinction rates ******************************************************************************/ + p->paramType = P_EXTRATE; + if (!strcmp(mp->clockPr,"Fossilization")) + p->nValues = mp->sampleFSNum +1; // rate in each time interval + else + p->nValues = 1; + p->nSubValues = 0; + p->min = 0.0; + p->max = 1.0; + for (i=0; iparamTypeName = "Extinction rate"; + SafeStrcat(&p->name, "Relative_extinction"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->extinctionPr,"Beta")) + p->paramId = EXTRATE_BETA; + else + p->paramId = EXTRATE_FIX; + + if (p->paramId != EXTRATE_FIX) + p->printParam = YES; + + if (p->nValues == 1) + { + SafeStrcat (&p->paramHeader, "relative_extinction"); + SafeStrcat (&p->paramHeader, partString); + } + else for (i = 0; i < p->nValues; i++) + { + sprintf (tempStr, "\trelative_extinction_%d", i+1); + SafeStrcat (&p->paramHeader, tempStr); + SafeStrcat (&p->paramHeader, partString); + } + } + else if (j == P_FOSLRATE) + { + /* Set up fossilization rates */ + p->paramType = P_FOSLRATE; + p->nValues = mp->sampleFSNum +1; // rate in each time interval + p->nSubValues = 0; + p->min = 0.0; + p->max = 1.0; + for (i=0; iparamTypeName = "Fossilization rate"; + SafeStrcat(&p->name, "Relative_fossilization"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->fossilizationPr,"Beta")) + p->paramId = FOSLRATE_BETA; + else + p->paramId = FOSLRATE_FIX; + + if (p->paramId != FOSLRATE_FIX) + p->printParam = YES; + + if (p->nValues == 1) + { + SafeStrcat (&p->paramHeader, "relative_fossilization"); + SafeStrcat (&p->paramHeader, partString); + } + else for (i = 0; i < p->nValues; i++) + { + sprintf (tempStr, "\trelative_fossilization_%d", i+1); + SafeStrcat (&p->paramHeader, tempStr); + SafeStrcat (&p->paramHeader, partString); + } + } + else if (j == P_POPSIZE) + { + /* Set up population size *****************************************************************************************/ + p->paramType = P_POPSIZE; + if (!strcmp(mp->topologyPr,"Speciestree") && !strcmp(mp->popVarPr, "Variable")) + p->nValues = 2 * numSpecies; + else + p->nValues = 1; + p->nSubValues = 0; + p->min = POS_MIN; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Coalescent process population size parameter"; + SafeStrcat(&p->name, "Popsize"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->popSizePr,"Uniform")) + { + p->paramId = POPSIZE_UNI; + p->LnPriorRatio = &LnProbRatioUniform; + p->priorParams = mp->popSizeUni; + p->LnPriorProb = &LnPriorProbUniform; + } + else if (!strcmp(mp->popSizePr,"Normal")) + { + p->paramId = POPSIZE_NORMAL; + p->LnPriorRatio = &LnProbRatioTruncatedNormal; + p->priorParams = mp->popSizeNormal; + p->LnPriorProb = &LnPriorProbTruncatedNormal; + } + else if (!strcmp(mp->popSizePr,"Lognormal")) + { + p->paramId = POPSIZE_LOGNORMAL; + p->LnPriorRatio = &LnProbRatioLognormal; + p->priorParams = mp->popSizeLognormal; + p->LnPriorProb = &LnPriorProbLognormal; + } + else if (!strcmp(mp->popSizePr,"Gamma")) + { + p->paramId = POPSIZE_GAMMA; + p->LnPriorRatio = &LnProbRatioGamma; + p->priorParams = mp->popSizeGamma; + p->LnPriorProb = &LnPriorProbGamma; + } + else + { + p->paramId = POPSIZE_FIX; + p->LnPriorRatio = NULL; + p->priorParams = &mp->popSizeFix; + p->LnPriorProb = &LnPriorProbFix; + } + + if (p->paramId != POPSIZE_FIX && p->nValues == 1) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "popsize"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_GROWTH) + { + /* Set up growth rate ************************************************************************************/ + p->paramType = P_GROWTH; + p->nValues = 1; + p->nSubValues = 0; + p->min = 0.0; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Population growth rate"; + SafeStrcat(&p->name, "R_pop"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->growthPr,"Uniform")) + { + p->paramId = GROWTH_UNI; + p->priorParams = mp->growthUni; + p->min = mp->growthUni[0]; + p->max = mp->growthUni[1]; + p->LnPriorRatio = &LnProbRatioUniform; + p->LnPriorProb = &LnPriorProbUniform; + } + else if (!strcmp(mp->growthPr,"Exponential")) + { + p->paramId = GROWTH_EXP; + p->priorParams = &mp->growthExp; + p->min = GROWTH_MIN; + p->max = GROWTH_MAX; + p->LnPriorRatio = &LnProbRatioExponential; + p->LnPriorProb = &LnPriorProbExponential; + } + else if (!strcmp(mp->growthPr,"Normal")) + { + p->paramId = GROWTH_NORMAL; + p->priorParams = mp->growthNorm; + p->min = GROWTH_MIN; + p->max = GROWTH_MAX; + p->LnPriorRatio = &LnProbRatioTruncatedNormal; + p->LnPriorProb = &LnPriorProbTruncatedNormal; + } + else + p->paramId = GROWTH_FIX; + { + p->paramId = GROWTH_FIX; + p->priorParams = &mp->growthFix; + p->min = p->max = mp->growthFix; + p->LnPriorRatio = &LnProbRatioFix; + p->LnPriorProb = &LnPriorProbFix; + } + + if (p->paramId != GROWTH_FIX) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "growthRate"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_AAMODEL) + { + /* Set up aamodel *****************************************************************************************/ + p->paramType = P_AAMODEL; + p->nValues = 1; + p->nSubValues = 10; + p->min = 0; + p->max = 9; + for (i=0; iparamTypeName = "Aminoacid model"; + SafeStrcat(&p->name, "Aamodel"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->aaModelPr,"Mixed")) + p->paramId = AAMODEL_MIX; + else + p->paramId = AAMODEL_FIX; + + if (p->paramId != AAMODEL_FIX) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "aamodel"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_CPPRATE) + { + /* Set up cpprate *****************************************************************************************/ + p->paramType = P_CPPRATE; + p->nValues = 1; + p->nSubValues = 0; + p->min = 0.0; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Rate of rate-multiplying compound Poisson process"; + SafeStrcat(&p->name, "Lambda_cpp"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->cppRatePr,"Exponential")) + p->paramId = CPPRATE_EXP; + else + p->paramId = CPPRATE_FIX; + + if (p->paramId != CPPRATE_FIX) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "cppRate"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_CPPMULTDEV) + { + /* Set up sigma of cpp rate multipliers *****************************************************************************************/ + p->paramType = P_CPPMULTDEV; + p->nValues = 1; + p->nSubValues = 0; + p->min = 0.0; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Standard deviation (log) of CPP rate multipliers"; + SafeStrcat(&p->name, "Sigma_cpp"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->cppMultDevPr,"Fixed")) + p->paramId = CPPMULTDEV_FIX; + + if (p->paramId != CPPMULTDEV_FIX) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "sigma_cpp"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_CPPEVENTS) + { + /* Set up cpp events parameter *****************************************************************************************/ + p->paramType = P_CPPEVENTS; + p->nValues = 0; + p->nSubValues = 2*numLocalTaxa; /* keep effective branch lengths here (for all nodes to be on the safe side) */ + p->min = 1E-6; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Events of rate-multiplying compound Poisson process"; + SafeStrcat(&p->name, "CppEvents"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + p->paramId = CPPEVENTS; + + /* should we print values to .p file? */ + p->printParam = NO; + + SafeStrcat (&p->paramHeader, "cppEvents"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_TK02VAR) + { + /* Set up tk02 relaxed clock variance parameter *****************************************************************************************/ + p->paramType = P_TK02VAR; + p->nValues = 1; + p->nSubValues = 0; + p->min = 1E-6; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Variance of lognormal distribution of branch rates"; + SafeStrcat(&p->name, "TK02var"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->tk02varPr,"Uniform")) + p->paramId = TK02VAR_UNI; + else if (!strcmp(mp->tk02varPr,"Exponential")) + p->paramId = TK02VAR_EXP; + else + p->paramId = TK02VAR_FIX; + + if (p->paramId != TK02VAR_FIX) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "tk02var"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_TK02BRANCHRATES) + { + /* Set up tk02 relaxed clock rates parameter *****************************************************************************************/ + p->paramType = P_TK02BRANCHRATES; + p->nValues = 2*numLocalTaxa; /* use to hold the branch rates; we need one rate for the root */ + p->nSubValues = 2*numLocalTaxa; /* use to hold the effective branch lengths */ + p->min = RATE_MIN; + p->max = RATE_MAX; + for (i=0; iparamTypeName = "Branch rates of TK02 relaxed clock"; + SafeStrcat(&p->name, "TK02Brlens"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + p->paramId = TK02BRANCHRATES; + + /* should we print values to .p file? */ + p->printParam = NO; + + SafeStrcat (&p->paramHeader, "tk02_brlens"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_IGRVAR) + { + /* Set up igr relaxed clock variance parameter *****************************************************************************************/ + p->paramType = P_IGRVAR; + p->nValues = 1; + p->nSubValues = 0; + p->min = 1E-6; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Variance increase of igr model branch lenths"; + SafeStrcat(&p->name, "Igrvar"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->igrvarPr,"Uniform")) + p->paramId = IGRVAR_UNI; + else if (!strcmp(mp->igrvarPr,"Exponential")) + p->paramId = IGRVAR_EXP; + else + p->paramId = IGRVAR_FIX; + + if (p->paramId != IGRVAR_FIX) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "igrvar"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_IGRBRANCHRATES) + { + /* Set up igr relaxed clock rates parameter *****************************************************************************************/ + p->paramType = P_IGRBRANCHRATES; + p->nValues = 2*numLocalTaxa; /* use to hold the branch rates; we need one rate for the root */ + p->nSubValues = 2*numLocalTaxa; /* use to hold the effective branch lengths */ + p->min = RATE_MIN; + p->max = RATE_MAX; + for (i=0; iparamTypeName = "Branch lengths of IGR relaxed clock"; + SafeStrcat(&p->name, "IgrBrlens"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + p->paramId = IGRBRANCHRATES; + + /* should we print values to .p file? */ + p->printParam = NO; + + SafeStrcat (&p->paramHeader, "igr_brlens"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_MIXEDVAR) + { + /* Set up mixed relaxed clock variance parameter *****************************************************************************************/ + p->paramType = P_MIXEDVAR; + p->nValues = 1; + p->nSubValues = 0; + p->min = 1E-6; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Variance shared for mixed relaxed clock moodel"; + SafeStrcat(&p->name, "Mixedvar"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + if (!strcmp(mp->mixedvarPr,"Uniform")) + p->paramId = MIXEDVAR_UNI; + else if (!strcmp(mp->mixedvarPr,"Exponential")) + p->paramId = MIXEDVAR_EXP; + else + p->paramId = MIXEDVAR_FIX; + + if (p->paramId != MIXEDVAR_FIX) + p->printParam = YES; + SafeStrcat (&p->paramHeader, "mixedvar"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_MIXEDBRCHRATES) + { + /* Set up mixed relaxed clock rates parameter *****************************************************************************************/ + p->paramType = P_MIXEDBRCHRATES; + p->nValues = 2*numLocalTaxa; /* use to hold the branch rates; we need one rate for the root */ + p->nSubValues = 2*numLocalTaxa; /* use to hold the effective branch lengths */ + p->nIntValues = 1; /* use to hold the model indicator: TK02 or IGR */ + p->min = RATE_MIN; + p->max = RATE_MAX; + for (i=0; iparamTypeName = "Branch rates of mixed relaxed clock"; + SafeStrcat(&p->name, "MixedBrlens"); + SafeStrcat(&p->name, partString); + + /* find the parameter x prior type */ + p->paramId = MIXEDBRCHRATES; + + /* how to print model indicator (0 or 1) to .p file? */ + p->printParam = NO; + + SafeStrcat (&p->paramHeader, "mixed_brlens"); + SafeStrcat (&p->paramHeader, partString); + } + else if (j == P_CLOCKRATE) + { + /* Set up clockRate ****************************************************************************************/ + p->paramType = P_CLOCKRATE; + p->nValues = 1; + p->nSubValues = 0; + p->min = POS_MIN; + p->max = POS_INFINITY; + for (i=0; iparamTypeName = "Base rate of clock"; + SafeStrcat(&p->name, "Clockrate"); + SafeStrcat(&p->name, partString); + + /* parameter does affect likelihoods */ + p->affectsLikelihood = YES; + + /* find the parameter x prior type */ + if (!strcmp(mp->clockRatePr,"Normal")) + { + p->paramId = CLOCKRATE_NORMAL; + p->LnPriorRatio = &LnProbRatioTruncatedNormal; + p->priorParams = mp->clockRateNormal; + p->LnPriorProb = &LnPriorProbTruncatedNormal; + } + else if (!strcmp(mp->clockRatePr,"Lognormal")) + { + p->paramId = CLOCKRATE_LOGNORMAL; + p->LnPriorRatio = &LnProbRatioLognormal; + p->priorParams = mp->clockRateLognormal; + p->LnPriorProb = &LnPriorProbLognormal; + } + else if (!strcmp(mp->clockRatePr,"Exponential")) + { + p->paramId = CLOCKRATE_EXP; + p->LnPriorRatio = &LnProbRatioExponential; + p->priorParams = &mp->clockRateExp; + p->LnPriorProb = &LnPriorProbExponential; + } + else if (!strcmp(mp->clockRatePr,"Gamma")) + { + p->paramId = CLOCKRATE_GAMMA; + p->LnPriorRatio = &LnProbRatioGamma; + p->priorParams = mp->clockRateGamma; + p->LnPriorProb = &LnPriorProbGamma; + } + else + { + p->paramId = CLOCKRATE_FIX; + p->LnPriorRatio = NULL; + p->priorParams = &mp->clockRateFix; + p->LnPriorProb = &LnPriorProbFix; + } + + SafeStrcat (&p->paramHeader, "clockrate"); + SafeStrcat (&p->paramHeader, partString); + if (p->paramId != CLOCKRATE_FIX) + p->printParam = YES; + } + } + free (tempStr); + free (isPartTouched); + SafeFree ((void **)&partString); + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------------------- +| +| SetMoves: This function will set up the applicable moves that could +| potentially be used in updating the model parameters +| +-----------------------------------------------------------------------------*/ +int SetMoves (void) +{ + int i, j, k, moveIndex; + Param *param; + + /* free up previous moves if any */ + if (memAllocs[ALLOC_MOVES] == YES) + { + for (i=0; i userLevel) + continue; + if (moveTypes[i].isApplicable(param) == NO) + continue; + for (j=0; jparamId) + { + numApplicableMoves++; + break; + } + } + } + + /* then allocate space for move pointers */ + moves = (MCMCMove **) SafeMalloc (numApplicableMoves * sizeof (MCMCMove *)); + if (!moves) + { + MrBayesPrint ("%s Problem allocating moves\n", spacer); + return (ERROR); + } + memAllocs[ALLOC_MOVES] = YES; + + /* finally allocate space for and set move defaults */ + moveIndex = 0; + for (k=0; k userLevel) + continue; + if (moveTypes[i].isApplicable(param) == NO) + continue; + for (j=0; jparamId) + { + if ((moves[moveIndex] = AllocateMove (&moveTypes[i], param)) == NULL) + break; + else + { + moves[moveIndex]->parm = param; + moveIndex++; + break; + } + } + } + } + } + + if (moveIndex < numApplicableMoves) + { + for (i=0; inNodes - pt->nIntNodes - 1) / nBitsInALong; + + /* Get pointer to values to be set */ + values = GetParamVals (param, chn, state); + + /* Get species tree */ + speciesTree = GetTree (modelSettings[param->relParts[0]].speciesTree, chn, state); + + /* Set them based on index of matching partitions */ + AllocatePolyTreePartitions(pt); + AllocateTreePartitions(speciesTree); + for (i=0; inNodes; i++) + { + pp = pt->allDownPass[i]; + for (j=0; jnNodes-1; j++) + { + p = speciesTree->allDownPass[j]; + for (k=0; kpartition[k] != p->partition[k]) + break; + } + if (k == nLongsNeeded) + break; + } + if (j == speciesTree->nNodes - 1) + { + MrBayesPrint ("%s Non-matching partitions when setting population size parameter", spacer); + FreePolyTreePartitions(pt); + FreeTreePartitions(speciesTree); + return (ERROR); + } + values[p->index] = pt->popSize[pp->index]; + } + + FreePolyTreePartitions(pt); + FreeTreePartitions(speciesTree); + + return (NO_ERROR); +} + + +/* SetRelaxedClockParam: set values for a relaxed clock param from an input tree */ +int SetRelaxedClockParam (Param *param, int chn, int state, PolyTree *pt) +{ + int i, j, k, *nEvents=NULL, *nEventsP=NULL, nLongsNeeded, isEventSet; + MrBFlt *effectiveBranchLengthP=NULL, *branchRate=NULL, + **position=NULL, **rateMult=NULL, **positionP=NULL, **rateMultP=NULL, + baseRate; + Tree *t; + PolyNode *pp; + TreeNode *p=NULL, *q; + + nLongsNeeded = 1 + (numLocalTaxa - 1) / nBitsInALong; + + /* set pointers to the right set of values */ + isEventSet = NO; + if (param->paramType == P_CPPEVENTS) + { + /* find the right event set */ + for (i=0; inESets; i++) + { + if (!strcmp(param->name,pt->eSetName[i])) + break; + } + if (i == pt->nESets) + { + for (i=0; inBSets; i++) + if (!strcmp(param->name,pt->bSetName[i])) + break; + + if (i == pt->nBSets) + return (NO_ERROR); + else + isEventSet = NO; + } + else + isEventSet = YES; + + if (isEventSet == YES) + { + nEventsP = pt->nEvents[i]; + positionP = pt->position[i]; + rateMultP = pt->rateMult[i]; + } + else + effectiveBranchLengthP = pt->effectiveBrLen[i]; + + nEvents = param->nEvents[2*chn+state]; + position = param->position[2*chn+state]; + rateMult = param->rateMult[2*chn+state]; + } + else if (param->paramType == P_TK02BRANCHRATES || param->paramType == P_IGRBRANCHRATES || param->paramType == P_MIXEDBRCHRATES) + { + /* find the right effective branch length set */ + for (i=0; inBSets; i++) + if (!strcmp(param->name,pt->bSetName[i])) + break; + if (i == pt->nBSets) + return (NO_ERROR); + + effectiveBranchLengthP = pt->effectiveBrLen[i]; + branchRate = GetParamVals (param, chn, state); + } + + t = GetTree (param, chn, state); + AllocatePolyTreePartitions (pt); + AllocateTreePartitions (t); + + for (i=pt->nNodes-1; i>=0; i--) + { + pp = pt->allDownPass[i]; + for (j=0; jnNodes; j++) + { + p = t->allDownPass[j]; + for (k=0; kpartition[k] != pp->partition[k]) + break; + if (k == nLongsNeeded) + break; /* match */ + } + if (param->paramType == P_CPPEVENTS) + { + if (isEventSet == NO) + { + if (nEvents[p->index] != 1) + { + position[p->index] = (MrBFlt *) SafeRealloc ((void *) position[p->index], 1*sizeof(MrBFlt)); + rateMult[p->index] = (MrBFlt *) SafeRealloc ((void *) rateMult[p->index], 1*sizeof(MrBFlt)); + nEvents [p->index] = 1; + } + position[p->index][0] = 0.5; + if (p->anc->anc == NULL) + rateMult[p->index][0] = 1.0; + else + { + baseRate = 1.0; + q = p->anc; + while (q->anc != NULL) + { + baseRate *= rateMult[q->index][0]; + q = q->anc; + } + rateMult[p->index][0] = 2.0 * effectiveBranchLengthP[pp->index] / (p->length * baseRate) - 1.0; + } + } + else + { + if (nEvents[p->index] != nEventsP[pp->index]) + { + if (nEventsP[pp->index] == 0) + { + free (position[p->index]); + free (rateMult[p->index]); + } + else + { + position[p->index] = (MrBFlt *) SafeRealloc ((void *) position[p->index], nEventsP[pp->index]*sizeof(MrBFlt)); + rateMult[p->index] = (MrBFlt *) SafeRealloc ((void *) rateMult[p->index], nEventsP[pp->index]*sizeof(MrBFlt)); + } + nEvents[p->index] = nEventsP[pp->index]; + } + for (j=0; jindex]; j++) + { + position[p->index][j] = positionP[pp->index][j]; + rateMult[p->index][j] = rateMultP[pp->index][j]; + } + } + } + else if (param->paramType == P_TK02BRANCHRATES || + (param->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(param, chn, state) == RCL_TK02)) + { + if (p->anc->anc == NULL) + branchRate[p->index] = 1.0; + else if (p->length > 0.0) + branchRate[p->index] = 2.0 * effectiveBranchLengthP[pp->index] / p->length - branchRate[p->anc->index]; + else + branchRate[p->index] = branchRate[p->anc->index]; + } + else if (param->paramType == P_IGRBRANCHRATES || + (param->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(param, chn, state) == RCL_IGR)) + { + if (p->length > 0.0) + branchRate[p->index] = effectiveBranchLengthP[pp->index] / p->length; + else + branchRate[p->index] = branchRate[p->anc->index]; + } // we are now reading effective branch length for TK02 and IGR + } + + if (param->paramType == P_CPPEVENTS) + { + if (UpdateCppEvolLengths (param, t->root->left, chn) == ERROR) + return (ERROR); + } + else if (param->paramType == P_TK02BRANCHRATES || + (param->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(param, chn, state) == RCL_TK02)) + { + if (UpdateTK02EvolLengths (param, t, chn) == ERROR) + return (ERROR); + } + else if (param->paramType == P_IGRBRANCHRATES || + (param->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(param, chn, state) == RCL_IGR)) + { + if (UpdateIgrBrachLengths (param, t, chn) == ERROR) + return (ERROR); + } + + FreePolyTreePartitions (pt); + FreeTreePartitions (t); + + return (NO_ERROR); +} + + +/*------------------------------------------------------------------------ +| +| SetUpAnalysis: Set parameters and moves +| +------------------------------------------------------------------------*/ +int SetUpAnalysis (RandLong *seed) +{ + setUpAnalysisSuccess=NO; + + /* calculate number of characters and taxa */ + numLocalChar = NumNonExcludedChar (); + + /* we are checking later to make sure no partition is without characters */ + SetLocalTaxa (); + if (numLocalTaxa <= 2) + { + MrBayesPrint ("%s There must be at least two included taxa, now there is %s\n", spacer, + numLocalTaxa == 0 ? "none" : "only one"); + return (ERROR); + } + + /* calculate number of global chains */ + numGlobalChains = chainParams.numRuns * chainParams.numChains; + + /* Set up link table */ + if (SetUpLinkTable () == ERROR) + return (ERROR); + + /* Check that the settings for doublet or codon models are correct. */ + if (CheckExpandedModels() == ERROR) + return (ERROR); + + /* Set up model info */ + if (SetModelInfo() == ERROR) + return (ERROR); + + /* Calculate number of (uncompressed) characters for each division */ + if (GetNumDivisionChars() == ERROR) + return (ERROR); + + /* Compress data and calculate some things needed for setting up params. */ + if (CompressData() == ERROR) + return (ERROR); + + /* Add dummy characters, if needed. */ + if (AddDummyChars() == ERROR) + return (ERROR); + + /* Set up parameters for the chain. */ + if (SetModelParams () == ERROR) + return (ERROR); + + /* Allocate normal params */ + if (AllocateNormalParams () == ERROR) + return (ERROR); + + /* Allocate tree params */ + if (AllocateTreeParams () == ERROR) + return (ERROR); + + /* Set default number of trees for sumt to appropriate number */ + sumtParams.numTrees = numTrees; + + /* Fill in normal parameters */ + if (FillNormalParams (seed, 0, numGlobalChains) == ERROR) + return (ERROR); + + /* Process standard characters (calculates bsIndex, tiIndex, and more). */ + if (ProcessStdChars(seed) == ERROR) + return (ERROR); + + /* Fill in trees */ + if (FillTreeParams (seed, 0, numGlobalChains) == ERROR) + return (ERROR); + + /* Set the applicable moves that could be used by the chain. */ + if (SetMoves () == ERROR) + return (ERROR); + + setUpAnalysisSuccess=YES; + + return (NO_ERROR); +} + + +int SetUpLinkTable (void) +{ + int i, j, k, m, paramCount, isApplicable1, isApplicable2, + isFirst, isSame; + int *check, *modelId; + + check = (int *) SafeMalloc (2 * (size_t)numCurrentDivisions * sizeof (int)); + if (!check) + { + MrBayesPrint ("%s Problem allocating check (%d)\n", spacer, 2 * numCurrentDivisions * sizeof(int)); + return (ERROR); + } + modelId = check + numCurrentDivisions; + + for (j=0; j 1) + { + paramCount = 0; + for (j=0; j 0) + { + m = activeParams[j][i]; + paramCount++; + for (k=i; klevel = DEVELOPER; + mt->numTuningParams = 0; + mt->minimum[0] = mt->minimum[1] = -1000000000.0; + mt->maximum[0] = mt->maximum[1] = 1000000000.0; + mt->tuningParam[0] = mt->tuningParam[1] = 0.0; + mt->nApplicable = 0; + mt->name = mt->tuningName[0] = mt->tuningName[1] = ""; + mt->paramName = ""; + mt->subParams = NO; + mt->relProposalProb = 0.0; + mt->parsimonyBased = NO; + mt->isApplicable = &IsApplicable; + mt->Autotune = NULL; + mt->targetRate = -1.0; + } + + /* Moves are in alphabetic order after parameter name, which matches the name of a move function if + there is a separate move function for the parameter. See proposal.h for declaration of move functions. + Since 2010-10-04, some parameters use generalized move functions and do not have their own. */ + + i = 0; + + /* Move_Aamodel */ + mt = &moveTypes[i++]; + mt->name = "Uniform random pick"; + mt->shortName = "Uniform"; + mt->applicableTo[0] = AAMODEL_MIX; + mt->nApplicable = 1; + mt->moveFxn = &Move_Aamodel; + mt->relProposalProb = 1.0; + mt->numTuningParams = 0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + + /* Move_Adgamma */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = CORREL_UNI; + mt->nApplicable = 1; + mt->moveFxn = &Move_Adgamma; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.5; /* window size */ + mt->minimum[0] = 0.001; + mt->maximum[0] = 1.999; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_Beta */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = SYMPI_UNI; + mt->applicableTo[1] = SYMPI_EXP; + mt->applicableTo[2] = SYMPI_UNI_MS; + mt->applicableTo[3] = SYMPI_EXP_MS; + mt->nApplicable = 4; + mt->moveFxn = &Move_Beta; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.5); /* so-called lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_BrLen */ + mt = &moveTypes[i++]; + mt->name = "Random brlen hit with multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = BRLENS_UNI; + mt->applicableTo[1] = BRLENS_EXP; + mt->applicableTo[2] = BRLENS_GamDir; + mt->applicableTo[3] = BRLENS_iGmDir; + mt->applicableTo[4] = BRLENS_twoExp; + mt->nApplicable = 5; // was 2 + mt->moveFxn = &Move_BrLen; + mt->relProposalProb = 20.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (2.0); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* change it smaller to avoid overflow in the exp function, same for following "smaller" */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_ClockRate_M */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = CLOCKRATE_NORMAL; + mt->applicableTo[1] = CLOCKRATE_LOGNORMAL; + mt->applicableTo[2] = CLOCKRATE_GAMMA; + mt->applicableTo[3] = CLOCKRATE_EXP; + mt->nApplicable = 4; + mt->moveFxn = &Move_ClockRate_M; + mt->relProposalProb = 2.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.5); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_Extinction */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = EXTRATE_BETA; + mt->nApplicable = 1; + mt->moveFxn = &Move_Extinction; + mt->relProposalProb = 3.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.1; /* window size */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 20.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_Fossilization */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = FOSLRATE_BETA; + mt->nApplicable = 1; + mt->moveFxn = &Move_Fossilization; + mt->relProposalProb = 3.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.1; /* window size */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 20.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_AddBranch, for fossilization prior */ + mt = &moveTypes[i++]; + mt->name = "Add branch for FossilizedBD"; + mt->shortName = "AddBranch"; + // mt->subParams = YES; + mt->applicableTo[0] = BRLENS_CLOCK_FOSSIL; + mt->nApplicable = 1; + mt->moveFxn = &Move_AddBranch; + mt->relProposalProb = 10.0; + mt->numTuningParams = 0; + mt->parsimonyBased = NO; + mt->level =STANDARD_USER; + mt->isApplicable = &IsApplicable_AncestralFossil; + + /* Move_DelBranch, for fossilization prior */ + mt = &moveTypes[i++]; + mt->name = "Delete branch for FossilizedBD"; + mt->shortName = "DelBranch"; + // mt->subParams = YES; + mt->applicableTo[0] = BRLENS_CLOCK_FOSSIL; + mt->nApplicable = 1; + mt->moveFxn = &Move_DelBranch; + mt->relProposalProb = 10.0; + mt->numTuningParams = 0; + mt->parsimonyBased = NO; + mt->level =STANDARD_USER; + mt->isApplicable = &IsApplicable_AncestralFossil; + + /* Move_ExtSPR */ + mt = &moveTypes[i++]; + mt->name = "Extending SPR"; + mt->shortName = "ExtSPR"; + mt->subParams = YES; + mt->tuningName[0] = "Extension probability"; + mt->shortTuningName[0] = "p_ext"; + mt->tuningName[1] = "Multiplier tuning parameter"; + mt->shortTuningName[1] = "lambda"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_ExtSPR; + mt->relProposalProb = 5.0; + mt->numTuningParams = 2; + mt->tuningParam[0] = 0.5; /* extension probability */ + mt->tuningParam[1] = 2.0 * log (1.05); /* lambda */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 0.99999; + mt->minimum[1] = 0.00001; + mt->maximum[1] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_FourTaxaOrMore; + + /* Move_ExtSPR1 */ + mt = &moveTypes[i++]; + mt->name = "Extending SPR variant 1"; + mt->shortName = "ExtSPR1"; + mt->subParams = YES; + mt->tuningName[0] = "Extension probability"; + mt->shortTuningName[0] = "p_ext"; + mt->tuningName[1] = "Multiplier tuning parameter"; + mt->shortTuningName[1] = "lambda"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_ExtSPR1; + mt->relProposalProb = 0.0; + mt->numTuningParams = 2; + mt->tuningParam[0] = 0.5; /* extension probability */ + mt->tuningParam[1] = 2.0 * log (1.05); /* lambda */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 0.99999; + mt->minimum[1] = 0.00001; + mt->maximum[1] = 100.0; + mt->parsimonyBased = NO; + mt->level = DEVELOPER; + mt->isApplicable = &IsApplicable_FiveTaxaOrMore; + + /* Move_ExtSPRClock */ + mt = &moveTypes[i++]; + mt->name = "Extending SPR for clock trees"; + mt->shortName = "ExtSprClock"; + mt->subParams = YES; + mt->tuningName[0] = "Extension probability"; + mt->shortTuningName[0] = "p_ext"; + mt->applicableTo[0] = TOPOLOGY_CL_UNIFORM; + mt->applicableTo[1] = TOPOLOGY_CCL_UNIFORM; + mt->applicableTo[2] = TOPOLOGY_CL_CONSTRAINED; + mt->applicableTo[3] = TOPOLOGY_CCL_CONSTRAINED; + mt->applicableTo[4] = TOPOLOGY_RCL_UNIFORM; + mt->applicableTo[5] = TOPOLOGY_RCL_CONSTRAINED; + mt->applicableTo[6] = TOPOLOGY_RCCL_UNIFORM; + mt->applicableTo[7] = TOPOLOGY_RCCL_CONSTRAINED; + mt->nApplicable = 8; + mt->moveFxn = &Move_ExtSPRClock; + mt->relProposalProb = 10.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.5; /* extension probability */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 0.99999; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_ThreeTaxaOrMore; + + /* Move_ExtSS */ + mt = &moveTypes[i++]; + mt->name = "Extending subtree swapper"; + mt->shortName = "ExtSS"; + mt->subParams = YES; + mt->tuningName[0] = "Extension probability"; + mt->shortTuningName[0] = "p_ext"; + mt->tuningName[1] = "Multiplier tuning parameter"; + mt->shortTuningName[1] = "lambda"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_ExtSS; + mt->relProposalProb = 0.0; + mt->numTuningParams = 2; + mt->tuningParam[0] = 0.5; /* extension probability */ + mt->tuningParam[1] = 2.0 * log (1.05); /* lambda */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 0.99999; + mt->minimum[1] = 0.00001; + mt->maximum[1] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_FourTaxaOrMore; + + /* Move_ExtSSClock */ + mt = &moveTypes[i++]; + mt->name = "Extending subtree swapper"; + mt->shortName = "ExtSsClock"; + mt->subParams = YES; + mt->tuningName[0] = "Extension probability"; + mt->shortTuningName[0] = "p_ext"; + mt->applicableTo[0] = TOPOLOGY_CL_UNIFORM; + mt->applicableTo[1] = TOPOLOGY_CCL_UNIFORM; + mt->applicableTo[2] = TOPOLOGY_CL_CONSTRAINED; + mt->applicableTo[3] = TOPOLOGY_CCL_CONSTRAINED; + mt->applicableTo[4] = TOPOLOGY_RCL_UNIFORM; + mt->applicableTo[5] = TOPOLOGY_RCL_CONSTRAINED; + mt->applicableTo[6] = TOPOLOGY_RCCL_UNIFORM; + mt->applicableTo[7] = TOPOLOGY_RCCL_CONSTRAINED; + mt->nApplicable = 8; + mt->moveFxn = &Move_ExtSSClock; + mt->relProposalProb = 0.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.5; /* extension probability */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 0.99999; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_ThreeTaxaOrMore; + + /* Move_ExtTBR */ + mt = &moveTypes[i++]; + mt->name = "Extending TBR"; + mt->shortName = "ExtTBR"; + mt->subParams = YES; + mt->tuningName[0] = "Extension probability"; + mt->shortTuningName[0] = "p_ext"; + mt->tuningName[1] = "Multiplier tuning parameter"; + mt->shortTuningName[1] = "lambda"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_ExtTBR; + mt->relProposalProb = 5.0; + mt->numTuningParams = 2; + mt->tuningParam[0] = 0.5; /* extension probability */ + mt->tuningParam[1] = 2.0 * log (1.05); /* lambda */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 0.99999; + mt->minimum[1] = 0.00001; + mt->maximum[1] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_FiveTaxaOrMore; + + /* Move_RateShape_M */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = SHAPE_UNI; + mt->applicableTo[1] = SHAPE_EXP; + mt->nApplicable = 2; + mt->moveFxn = &Move_RateShape_M; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.5); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 10.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_GeneRate_Dir */ + mt = &moveTypes[i++]; + mt->name = "Dirichlet proposal"; + mt->shortName = "Dirichlet"; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->applicableTo[0] = GENETREERATEMULT_DIR; + mt->nApplicable = 1; + mt->moveFxn = &Move_GeneRate_Dir; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 1000.0; /* alphaPi */ + mt->minimum[0] = 0.001; + mt->maximum[0] = 1000000.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneDirichlet; + mt->targetRate = 0.25; + + /* Move_GeneTree1 */ + mt = &moveTypes[i++]; + mt->name = "Extending SPR move for gene trees in species trees"; + mt->shortName = "ExtSPRClockGS"; + mt->tuningName[0] = "Extension probability"; + mt->shortTuningName[0] = "prob"; + mt->applicableTo[0] = TOPOLOGY_SPECIESTREE; + mt->nApplicable = 1; + mt->moveFxn = &Move_GeneTree1; + mt->relProposalProb = 10.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.5; /* Tuning parameter value */ + mt->minimum[0] = 0.00001; /* Minimum value of tuning param */ + mt->maximum[0] = 0.99999; /* Maximum value of tuning param */ + mt->parsimonyBased = NO; /* It does not use parsimony scores */ + mt->level = STANDARD_USER; + + /* Move_GeneTree2 */ + mt = &moveTypes[i++]; + mt->name = "NNI move for gene trees in species trees"; + mt->shortName = "NNIClockGS"; + mt->applicableTo[0] = TOPOLOGY_SPECIESTREE; + mt->nApplicable = 1; + mt->moveFxn = &Move_GeneTree2; + mt->relProposalProb = 10.0; + mt->numTuningParams = 0; /* No tuning parameters */ + mt->parsimonyBased = NO; /* It does not use parsimony scores */ + mt->level = STANDARD_USER; + + /* Move_GeneTree3 */ + mt = &moveTypes[i++]; + mt->name = "Parsimony-biased SPR for gene trees in species trees"; + mt->shortName = "ParsSPRClockGS"; + mt->subParams = YES; + mt->tuningName[0] = "parsimony warp factor"; + mt->shortTuningName[0] = "warp"; + mt->tuningName[1] = "reweighting probability"; + mt->shortTuningName[1] = "r"; + mt->tuningName[2] = "typical branch length"; + mt->shortTuningName[2] = "v_t"; + mt->applicableTo[0] = TOPOLOGY_SPECIESTREE; + mt->nApplicable = 1; + mt->moveFxn = &Move_GeneTree3; + mt->relProposalProb = 5.0; + mt->numTuningParams = 3; + mt->tuningParam[0] = 0.1; /* warp */ + mt->tuningParam[1] = 0.05; /* upweight and downweight probability */ + mt->tuningParam[2] = 0.05; /* typical branch length */ + mt->minimum[0] = 0.0; + mt->maximum[0] = 1.0; + mt->minimum[1] = 0.0; + mt->maximum[1] = 0.3; + mt->minimum[2] = 0.0001; + mt->maximum[2] = 0.5; + mt->parsimonyBased = YES; + mt->level = STANDARD_USER; + + /* Move_Growth_M */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = GROWTH_UNI; + mt->applicableTo[1] = GROWTH_EXP; + mt->applicableTo[2] = GROWTH_NORMAL; + mt->nApplicable = 3; + mt->moveFxn = &Move_Growth_M; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log(1.5); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_Local */ + mt = &moveTypes[i++]; + mt->name = "BAMBE's LOCAL"; + mt->shortName = "Local"; + mt->subParams = YES; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_Local; + mt->relProposalProb = 0.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_FourTaxaOrMore; + + /* Move_LocalClock */ + mt = &moveTypes[i++]; + mt->name = "Modified LOCAL for clock trees"; + mt->shortName = "LocalClock"; + mt->subParams = YES; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = TOPOLOGY_CL_UNIFORM; + mt->applicableTo[1] = TOPOLOGY_CCL_UNIFORM; + mt->applicableTo[2] = TOPOLOGY_CL_CONSTRAINED; + mt->applicableTo[3] = TOPOLOGY_CCL_CONSTRAINED; + mt->nApplicable = 4; + mt->moveFxn = &Move_LocalClock; + mt->relProposalProb = 0.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (2.0); /* lambda */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_ThreeTaxaOrMore; + + /* Move_NNI */ + mt = &moveTypes[i++]; + mt->name = "NNI move for parsimony trees"; + mt->shortName = "ParsNNI"; + mt->applicableTo[0] = TOPOLOGY_PARSIMONY_UNIFORM; + mt->applicableTo[1] = TOPOLOGY_PARSIMONY_CONSTRAINED; + mt->nApplicable = 2; + mt->moveFxn = &Move_NNI; + mt->relProposalProb = 10.0; + mt->numTuningParams = 0; + mt->parsimonyBased = NO; /* no extra parsimony scores are needed */ + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_FourTaxaOrMore; + + /* Move_NNIClock */ + mt = &moveTypes[i++]; + mt->name = "NNI move for clock trees"; + mt->shortName = "NNIClock"; + mt->subParams = YES; + mt->applicableTo[0] = TOPOLOGY_CL_UNIFORM; + mt->applicableTo[1] = TOPOLOGY_CCL_UNIFORM; + mt->applicableTo[2] = TOPOLOGY_CL_CONSTRAINED; + mt->applicableTo[3] = TOPOLOGY_CCL_CONSTRAINED; + mt->applicableTo[4] = TOPOLOGY_RCL_UNIFORM; + mt->applicableTo[5] = TOPOLOGY_RCL_CONSTRAINED; + mt->applicableTo[6] = TOPOLOGY_RCCL_UNIFORM; + mt->applicableTo[7] = TOPOLOGY_RCCL_CONSTRAINED; + mt->nApplicable = 8; + mt->moveFxn = &Move_NNIClock; + mt->relProposalProb = 12.0; + mt->numTuningParams = 0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_ThreeTaxaOrMore; + + /* Move_NNI */ + mt = &moveTypes[i++]; + mt->name = "NNI move"; + mt->shortName = "NNI"; + mt->subParams = YES; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_NNI; + mt->relProposalProb = 5.0; + mt->numTuningParams = 0; + mt->minimum[0] = 0.00001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_FourTaxaOrMore; + + /* Move_NNI_Hetero */ + mt = &moveTypes[i++]; + mt->name = "NNI move for trees with independent brlens"; + mt->shortName = "MultNNI"; + mt->subParams = YES; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HETERO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HETERO; + mt->nApplicable = 2; /* 3; */ + mt->moveFxn = &Move_NNI_Hetero; + mt->relProposalProb = 15.0; + mt->numTuningParams = 0; + mt->minimum[0] = 0.00001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_FourTaxaOrMore; + + /* Move_NodeSlider */ + mt = &moveTypes[i++]; + mt->name = "Node slider (uniform on possible positions)"; + mt->shortName = "Nodeslider"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = BRLENS_UNI; + mt->applicableTo[1] = BRLENS_EXP; + mt->applicableTo[2] = BRLENS_GamDir; + mt->applicableTo[3] = BRLENS_iGmDir; + mt->applicableTo[4] = BRLENS_twoExp; + mt->nApplicable = 5; // was 2 + mt->moveFxn = &Move_NodeSlider; + mt->relProposalProb = 7.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + + /* Move_NodeSliderClock */ + mt = &moveTypes[i++]; + mt->name = "Node depth window slider (clock-constrained)"; + mt->shortName = "NodesliderClock"; + mt->tuningName[0] = "Window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = BRLENS_CLOCK_UNI; + mt->applicableTo[1] = BRLENS_CLOCK_COAL; + mt->applicableTo[2] = BRLENS_CLOCK_BD; + mt->applicableTo[3] = BRLENS_CLOCK_FOSSIL; + mt->nApplicable = 4; + mt->moveFxn = &Move_NodeSliderClock; + mt->relProposalProb = 20.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.05; /* window size */ + mt->minimum[0] = 0.000001; + mt->maximum[0] = 1.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_NodeSliderGeneTree */ + mt = &moveTypes[i++]; + mt->name = "Node depth slider for gene trees"; + mt->shortName = "NodesliderGenetree"; + mt->tuningName[0] = "Window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = BRLENS_CLOCK_SPCOAL; + mt->nApplicable = 1; + mt->moveFxn = &Move_NodeSliderGeneTree; + mt->relProposalProb = 20.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.05; /* window size */ + mt->minimum[0] = 0.000001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_Omega */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = OMEGA_DIR; + mt->nApplicable = 1; + mt->moveFxn = &Move_Omega; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 1.0; /* sliding window size */ + mt->minimum[0] = 0.000001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_Omega_M */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = OMEGA_DIR; + mt->nApplicable = 1; + mt->moveFxn = &Move_Omega_M; + mt->relProposalProb = 0.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.5); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_OmegaBeta_M */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->paramName = "Omega_beta_M10"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = OMEGA_10UUB; + mt->applicableTo[1] = OMEGA_10UUF; + mt->applicableTo[2] = OMEGA_10UEB; + mt->applicableTo[3] = OMEGA_10UEF; + mt->applicableTo[4] = OMEGA_10UFB; + mt->applicableTo[5] = OMEGA_10UFF; + mt->applicableTo[6] = OMEGA_10EUB; + mt->applicableTo[7] = OMEGA_10EUF; + mt->applicableTo[8] = OMEGA_10EEB; + mt->applicableTo[9] = OMEGA_10EEF; + mt->applicableTo[10] = OMEGA_10EFB; + mt->applicableTo[11] = OMEGA_10EFF; + mt->nApplicable = 12; + mt->moveFxn = &Move_OmegaBeta_M; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_OmegaCat */ + mt = &moveTypes[i++]; + mt->name = "Dirichlet proposal"; + mt->shortName = "Dirichlet"; + mt->paramName = "Omega_pi"; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->applicableTo[0] = OMEGA_BUD; + mt->applicableTo[1] = OMEGA_BED; + mt->applicableTo[2] = OMEGA_BFD; + mt->applicableTo[3] = OMEGA_FUD; + mt->applicableTo[4] = OMEGA_FED; + mt->applicableTo[5] = OMEGA_FFD; + mt->applicableTo[6] = OMEGA_ED; + mt->applicableTo[7] = OMEGA_FD; + mt->applicableTo[8] = OMEGA_10UUB; + mt->applicableTo[9] = OMEGA_10UEB; + mt->applicableTo[10] = OMEGA_10UFB; + mt->applicableTo[11] = OMEGA_10EUB; + mt->applicableTo[12] = OMEGA_10EEB; + mt->applicableTo[13] = OMEGA_10EFB; + mt->applicableTo[14] = OMEGA_10FUB; + mt->applicableTo[15] = OMEGA_10FEB; + mt->applicableTo[16] = OMEGA_10FFB; + mt->nApplicable = 17; + mt->moveFxn = &Move_OmegaCat; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 300.0; /* alpha-pi */ + mt->minimum[0] = 0.001; + mt->maximum[0] = 10000.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneDirichlet; + mt->targetRate = 0.25; + + /* Move_OmegaGamma_M */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->paramName = "Omega_shape_M10"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = OMEGA_10UUB; + mt->applicableTo[1] = OMEGA_10UUF; + mt->applicableTo[2] = OMEGA_10UEB; + mt->applicableTo[3] = OMEGA_10UEF; + mt->applicableTo[4] = OMEGA_10EUB; + mt->applicableTo[5] = OMEGA_10EUF; + mt->applicableTo[6] = OMEGA_10EEB; + mt->applicableTo[7] = OMEGA_10EEF; + mt->applicableTo[8] = OMEGA_10FUB; + mt->applicableTo[9] = OMEGA_10FUF; + mt->applicableTo[10] = OMEGA_10FEB; + mt->applicableTo[11] = OMEGA_10FEF; + mt->nApplicable = 12; + mt->moveFxn = &Move_OmegaGamma_M; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_OmegaM3 */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = OMEGA_ED; + mt->applicableTo[1] = OMEGA_EF; + mt->nApplicable = 2; + mt->moveFxn = &Move_OmegaM3; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.1; /* window size */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 1.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_OmegaPur : Let it be here so that omega moves are listed in logical order! */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->paramName = "Omega_pur"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = OMEGA_BUD; + mt->applicableTo[1] = OMEGA_BUF; + mt->applicableTo[2] = OMEGA_BED; + mt->applicableTo[3] = OMEGA_BEF; + mt->applicableTo[4] = OMEGA_BFD; + mt->applicableTo[5] = OMEGA_BFF; + mt->nApplicable = 6; + mt->moveFxn = &Move_OmegaPur; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.1; /* window size */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 1.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_OmegaPos */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->paramName = "Omega_pos"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = OMEGA_BUD; + mt->applicableTo[1] = OMEGA_BUF; + mt->applicableTo[2] = OMEGA_BED; + mt->applicableTo[3] = OMEGA_BEF; + mt->applicableTo[4] = OMEGA_FUD; + mt->applicableTo[5] = OMEGA_FUF; + mt->applicableTo[6] = OMEGA_FED; + mt->applicableTo[7] = OMEGA_FEF; + mt->nApplicable = 8; + mt->moveFxn = &Move_OmegaPos; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 1.0; /* window size */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_ParsEraser1 */ + mt = &moveTypes[i++]; + mt->name = "Parsimony-biased eraser version 1"; + mt->shortName = "pEraser1"; + mt->subParams = YES; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->tuningName[1] = "parsimony warp factor"; + mt->shortTuningName[1] = "warp"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->nApplicable = 1; + mt->moveFxn = &Move_ParsEraser1; + mt->relProposalProb = 0.0; + mt->numTuningParams = 2; + mt->tuningParam[0] = 0.5; /* alphaPi */ + mt->tuningParam[1] = 0.1; /* warp */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 10000.0; + mt->minimum[1] = 0.00001; + mt->maximum[1] = 0.99999; + mt->parsimonyBased = YES; + mt->level = DEVELOPER; + mt->isApplicable = &IsApplicable_FiveTaxaOrMore; + + /* Move_ParsSPR asym */ + mt = &moveTypes[i++]; + mt->name = "Parsimony-biased SPR"; + mt->shortName = "ParsSPR"; + mt->subParams = YES; + mt->tuningName[0] = "parsimony warp factor"; + mt->shortTuningName[0] = "warp"; + mt->tuningName[1] = "reweighting probability"; + mt->shortTuningName[1] = "r"; + mt->tuningName[2] = "typical branch length"; + mt->shortTuningName[2] = "v_t"; + mt->tuningName[3] = "multiplier tuning parameter"; + mt->shortTuningName[3] = "lambda"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_ParsSPR; + mt->relProposalProb = 5.0; + mt->numTuningParams = 4; + mt->tuningParam[0] = 0.1; /* warp */ + mt->tuningParam[1] = 0.05; /* upweight and downweight probability */ + mt->tuningParam[2] = 0.03; /* typical branch length */ + mt->tuningParam[3] = 2.0 * log (1.05); /* multiplier tuning parameter lambda */ + mt->minimum[0] = 0.0; + mt->maximum[0] = 1.0; + mt->minimum[1] = 0.0; + mt->maximum[1] = 0.3; + mt->minimum[2] = 0.0001; + mt->maximum[2] = 0.5; + mt->minimum[3] = 2.0 * log (0.001); + mt->maximum[3] = 2.0 * log (1000.); + mt->parsimonyBased = YES; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_FourTaxaOrMore; + + /* Move_ParsSPR1 e^{-S} */ + mt = &moveTypes[i++]; + mt->name = "Parsimony-biased SPR variant 1"; + mt->shortName = "ParsSPR1"; + mt->subParams = YES; + mt->tuningName[0] = "parsimony warp factor"; + mt->shortTuningName[0] = "warp"; + mt->tuningName[1] = "reweighting probability"; + mt->shortTuningName[1] = "r"; + mt->tuningName[2] = "typical branch length"; + mt->shortTuningName[2] = "v_t"; + mt->tuningName[3] = "multiplier tuning parameter"; + mt->shortTuningName[3] = "lambda"; + mt->tuningName[4] = "moving distance"; + mt->shortTuningName[4] = "d"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_ParsSPR1; + mt->relProposalProb = 0.0; + mt->numTuningParams = 5; + mt->tuningParam[0] = 0.5; /* warp */ + mt->tuningParam[1] = 0.05; /* upweight and downweight probability */ + mt->tuningParam[2] = 0.03; /* typical branch length */ + mt->tuningParam[3] = 2.0 * log (1.05); /* multiplier tuning parameter lambda */ + mt->tuningParam[4] = 10.0; /* distance to move picked branch */ + mt->minimum[0] = 0.0; + mt->maximum[0] = 5.0; + mt->minimum[1] = 0.0; + mt->maximum[1] = 0.3; + mt->minimum[2] = 0.0001; + mt->maximum[2] = 0.5; + mt->minimum[3] = 2.0 * log (0.001); + mt->maximum[3] = 2.0 * log (1000.); + mt->minimum[4] = 2.0; + mt->maximum[4] = 1000.0; + mt->parsimonyBased = YES; + mt->level = DEVELOPER; + mt->isApplicable = &IsApplicable_FourTaxaOrMore; + + /* Move_ParsSPR2 S/N */ + mt = &moveTypes[i++]; + mt->name = "Parsimony-biased SPR variant 2"; + mt->shortName = "ParsSPR2"; + mt->subParams = YES; + mt->tuningName[0] = "parsimony warp factor"; + mt->shortTuningName[0] = "warp"; + mt->tuningName[1] = "reweighting probability"; + mt->shortTuningName[1] = "r"; + mt->tuningName[2] = "typical branch length"; + mt->shortTuningName[2] = "v_t"; + mt->tuningName[3] = "multiplier tuning parameter"; + mt->shortTuningName[3] = "lambda"; + mt->tuningName[4] = "moving distance"; + mt->shortTuningName[4] = "d"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_ParsSPR2; + mt->relProposalProb = 0.0; + mt->numTuningParams = 5; + mt->tuningParam[0] = 0.1; /* warp */ + mt->tuningParam[1] = 0.05; /* upweight and downweight probability */ + mt->tuningParam[2] = 0.03; /* typical branch length */ + mt->tuningParam[3] = 2.0 * log (1.05); /* multiplier tuning parameter lambda */ + mt->tuningParam[4] = 10.0; /* distance to move picked branch */ + mt->minimum[0] = 0.0; + mt->maximum[0] = 1.0; + mt->minimum[1] = 0.0; + mt->maximum[1] = 0.3; + mt->minimum[2] = 0.0001; + mt->maximum[2] = 0.5; + mt->minimum[3] = 2.0 * log (0.001); + mt->maximum[3] = 2.0 * log (1000.); + mt->minimum[4] = 2.0; + mt->maximum[4] = 1000.0; + mt->parsimonyBased = YES; + mt->level = DEVELOPER; + mt->isApplicable = &IsApplicable_FourTaxaOrMore; + + /* Move_ParsSPRClock */ + mt = &moveTypes[i++]; + mt->name = "Parsimony-biased SPR for clock trees"; + mt->shortName = "ParsSPRClock"; + mt->subParams = YES; + mt->tuningName[0] = "parsimony warp factor"; + mt->shortTuningName[0] = "warp"; + mt->tuningName[1] = "reweighting probability"; + mt->shortTuningName[1] = "r"; + mt->tuningName[2] = "typical branch length"; + mt->shortTuningName[2] = "v_t"; + mt->applicableTo[0] = TOPOLOGY_CL_UNIFORM; + mt->applicableTo[1] = TOPOLOGY_CCL_UNIFORM; + mt->applicableTo[2] = TOPOLOGY_CL_CONSTRAINED; + mt->applicableTo[3] = TOPOLOGY_CCL_CONSTRAINED; + mt->applicableTo[4] = TOPOLOGY_RCL_UNIFORM; + mt->applicableTo[5] = TOPOLOGY_RCL_CONSTRAINED; + mt->applicableTo[6] = TOPOLOGY_RCCL_UNIFORM; + mt->applicableTo[7] = TOPOLOGY_RCCL_CONSTRAINED; + mt->nApplicable = 8; + mt->moveFxn = &Move_ParsSPRClock; + mt->relProposalProb = 8.0; + mt->numTuningParams = 3; + mt->tuningParam[0] = 0.1; /* warp */ + mt->tuningParam[1] = 0.05; /* upweight and downweight probability */ + mt->tuningParam[2] = 0.03; /* typical branch length */ + mt->minimum[0] = 0.0; + mt->maximum[0] = 1.0; + mt->minimum[1] = 0.0; + mt->maximum[1] = 0.3; + mt->minimum[2] = 0.0001; + mt->maximum[2] = 0.5; + mt->parsimonyBased = YES; + mt->level = STANDARD_USER; + mt->isApplicable = &IsApplicable_ThreeTaxaOrMore; + + /* Move_ParsTBR1 e^{-S} */ + mt = &moveTypes[i++]; + mt->name = "Parsimony-biased TBR variant 1"; + mt->shortName = "ParsTBR1"; + mt->subParams = YES; + mt->tuningName[0] = "parsimony warp factor"; + mt->shortTuningName[0] = "warp"; + mt->tuningName[1] = "reweighting probability"; + mt->shortTuningName[1] = "r"; + mt->tuningName[2] = "typical branch length"; + mt->shortTuningName[2] = "v_t"; + mt->tuningName[3] = "multiplier tuning parameter"; + mt->shortTuningName[3] = "lambda"; + mt->tuningName[4] = "moving distance"; + mt->shortTuningName[4] = "d"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_ParsTBR1; + mt->relProposalProb = 0.0; + mt->numTuningParams = 5; + mt->tuningParam[0] = 0.5; /* warp */ + mt->tuningParam[1] = 0.05; /* upweight and downweight probability */ + mt->tuningParam[2] = 0.05; /* typical branch length */ + mt->tuningParam[3] = 2.0 * log (1.05); /* multiplier tuning parameter lambda */ + mt->tuningParam[4] = 5.0; /* distance to move picked branch */ + mt->minimum[0] = 0.0; + mt->maximum[0] = 5.0; + mt->minimum[1] = 0.0; + mt->maximum[1] = 0.3; + mt->minimum[2] = 0.0001; + mt->maximum[2] = 0.5; + mt->minimum[3] = 2.0 * log (0.001); + mt->maximum[3] = 2.0 * log (1000.); + mt->minimum[4] = 2.0; + mt->maximum[4] = 1000.0; + mt->parsimonyBased = YES; + mt->level = DEVELOPER; + mt->isApplicable = &IsApplicable_FiveTaxaOrMore; + + /* Move_ParsTBR2 S/N */ + mt = &moveTypes[i++]; + mt->name = "Parsimony-biased TBR variant 2"; + mt->shortName = "ParsTBR2"; + mt->subParams = YES; + mt->tuningName[0] = "parsimony warp factor"; + mt->shortTuningName[0] = "warp"; + mt->tuningName[1] = "reweighting probability"; + mt->shortTuningName[1] = "r"; + mt->tuningName[2] = "typical branch length"; + mt->shortTuningName[2] = "v_t"; + mt->tuningName[3] = "multiplier tuning parameter"; + mt->shortTuningName[3] = "lambda"; + mt->tuningName[4] = "moving distance"; + mt->shortTuningName[4] = "d"; + mt->applicableTo[0] = TOPOLOGY_NCL_UNIFORM_HOMO; + mt->applicableTo[1] = TOPOLOGY_NCL_CONSTRAINED_HOMO; + mt->nApplicable = 2; + mt->moveFxn = &Move_ParsTBR2; + mt->relProposalProb = 0.0; + mt->numTuningParams = 5; + mt->tuningParam[0] = 0.1; /* warp */ + mt->tuningParam[1] = 0.05; /* upweight and downweight probability */ + mt->tuningParam[2] = 0.05; /* typical branch length */ + mt->tuningParam[3] = 2.0 * log (1.05); /* multiplier tuning parameter lambda */ + mt->tuningParam[4] = 5.0; /* distance to move picked branch */ + mt->minimum[0] = 0.0; + mt->maximum[0] = 1.0; + mt->minimum[1] = 0.0; + mt->maximum[1] = 0.3; + mt->minimum[2] = 0.0001; + mt->maximum[2] = 0.5; + mt->minimum[3] = 2.0 * log (0.001); + mt->maximum[3] = 2.0 * log (1000.); + mt->minimum[4] = 2.0; + mt->maximum[4] = 1000.0; + mt->parsimonyBased = YES; + mt->level = DEVELOPER; + mt->isApplicable = &IsApplicable_FiveTaxaOrMore; + + /* Move_Pinvar */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = PINVAR_UNI; + mt->nApplicable = 1; + mt->moveFxn = &Move_Pinvar; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.1; /* window size */ + mt->minimum[0] = 0.001; + mt->maximum[0] = 0.999; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_Popsize_M */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = POPSIZE_UNI; + mt->applicableTo[1] = POPSIZE_LOGNORMAL; + mt->applicableTo[2] = POPSIZE_NORMAL; + mt->applicableTo[3] = POPSIZE_GAMMA; + mt->nApplicable = 4; + mt->moveFxn = &Move_PopSize_M; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log(1.5); /* lambda */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_RateMult_Dir */ + mt = &moveTypes[i++]; + mt->name = "Dirichlet proposal"; + mt->shortName = "Dirichlet"; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->applicableTo[0] = RATEMULT_DIR; + mt->nApplicable = 1; + mt->moveFxn = &Move_RateMult_Dir; + mt->relProposalProb = 0.75; + mt->numTuningParams = 1; + mt->tuningParam[0] = 50.0; /* alphaPi per site */ + mt->minimum[0] = 0.001; + mt->maximum[0] = 10000.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneDirichlet; + mt->targetRate = 0.25; + + /* Move_RateMult_Slider */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = RATEMULT_DIR; + mt->nApplicable = 1; + mt->moveFxn = &Move_RateMult_Slider; + mt->relProposalProb = 0.75; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.05; /* window size */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 1.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_Revmat_Dir */ + mt = &moveTypes[i++]; + mt->name = "Dirichlet proposal"; + mt->shortName = "Dirichlet"; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->applicableTo[0] = REVMAT_DIR; + mt->nApplicable = 1; + mt->moveFxn = &Move_Revmat_Dir; + mt->relProposalProb = 0.5; + mt->numTuningParams = 1; + mt->tuningParam[0] = 100.0; /* alphaPi per rate */ + mt->minimum[0] = 0.001; + mt->maximum[0] = 10000.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneDirichlet; + mt->targetRate = 0.25; + + /* Move_Revmat_Slider */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = REVMAT_DIR; + mt->nApplicable = 1; + mt->moveFxn = &Move_Revmat_Slider; + mt->relProposalProb = 0.5; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.15; /* window size */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 1.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_Revmat_DirMix */ + mt = &moveTypes[i++]; + mt->name = "Dirichlet proposal"; + mt->shortName = "Dirichlet"; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->applicableTo[0] = REVMAT_MIX; + mt->nApplicable = 1; + mt->moveFxn = &Move_Revmat_DirMix; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 100.0; /* alphaPi per rate */ + mt->minimum[0] = 0.01; + mt->maximum[0] = 10000.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneDirichlet; + mt->targetRate = 0.25; + + /* Move_Revmat_SplitMerge1 */ + mt = &moveTypes[i++]; + mt->name = "Split-merge move 1"; + mt->shortName = "Splitmerge1"; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->applicableTo[0] = REVMAT_MIX; + mt->nApplicable = 1; + mt->moveFxn = &Move_Revmat_SplitMerge1; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 10.0; /* alphaPi per rate */ + mt->minimum[0] = 0.5; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneDirichlet; + mt->targetRate = 0.25; + + /* Move_Revmat_SplitMerge2 */ + mt = &moveTypes[i++]; + mt->name = "Split-merge move 2"; + mt->shortName = "Splitmerge2"; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->applicableTo[0] = REVMAT_MIX; + mt->nApplicable = 1; + mt->moveFxn = &Move_Revmat_SplitMerge2; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 10.0; /* alphaPi per rate */ + mt->minimum[0] = 0.5; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneDirichlet; + mt->targetRate = 0.25; + + /* Move_Speciation */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = SPECRATE_UNI; + mt->applicableTo[1] = SPECRATE_EXP; + mt->nApplicable = 2; + mt->moveFxn = &Move_Speciation; + mt->relProposalProb = 0.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 1.0; /* window size */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_Speciation_M */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = SPECRATE_UNI; + mt->applicableTo[1] = SPECRATE_EXP; + mt->nApplicable = 2; + mt->moveFxn = &Move_Speciation_M; + mt->relProposalProb = 3.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_SpeciesTree */ + mt = &moveTypes[i++]; + mt->name = "Species tree move"; + mt->shortName = "Distmatrixmove"; + mt->tuningName[0] = "Divider of rate of truncated exponential"; + mt->shortTuningName[0] = "lambdadiv"; + mt->applicableTo[0] = SPECIESTREE_UNIFORM; + mt->nApplicable = 1; + mt->moveFxn = &Move_SpeciesTree; + mt->relProposalProb = 10.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 1.2; /* Default tuning parameter value */ + mt->minimum[0] = 0.00001; /* Minimum value of tuning param */ + mt->maximum[0] = 1000.0; /* Maximum value of tuning param */ + mt->parsimonyBased = NO; /* It does not use parsimony scores */ + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; /* Autotune this move as a mutliplier move (larger is more bold) */ + mt->targetRate = 0.25; /* Target acceptance rate */ + + /* Move_Statefreqs */ + mt = &moveTypes[i++]; + mt->name = "Dirichlet proposal"; + mt->shortName = "Dirichlet"; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->applicableTo[0] = PI_DIR; + mt->nApplicable = 1; + mt->moveFxn = &Move_Statefreqs; + mt->relProposalProb = 0.5; + mt->numTuningParams = 1; + mt->tuningParam[0] = 100.0; /* alphaPi per state */ + mt->minimum[0] = 0.001; + mt->maximum[0] = 10000.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneDirichlet; + mt->targetRate = 0.25; + + /* Move_Statefreqs_Slider */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = PI_DIR; + mt->nApplicable = 1; + mt->moveFxn = &Move_Statefreqs_Slider; + mt->relProposalProb = 0.5; + mt->numTuningParams = 1; + mt->tuningParam[0] = 0.20; /* window size (change in proportions) */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 1.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_StatefreqsSymDirMultistate */ + mt = &moveTypes[i++]; + mt->name = "Dirichlet proposal"; + mt->shortName = "Dirichlet"; + mt->paramName = "Pi_symdir"; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->applicableTo[0] = SYMPI_FIX_MS; + mt->applicableTo[1] = SYMPI_UNI_MS; + mt->applicableTo[2] = SYMPI_EXP_MS; + mt->nApplicable = 3; + mt->moveFxn = &Move_StatefreqsSymDirMultistate; + mt->relProposalProb = 5.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 50.0; /* alphaPi */ + mt->minimum[0] = 0.001; + mt->maximum[0] = 10000.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneDirichlet; + mt->targetRate = 0.25; + + /* Move_SwitchRate */ + mt = &moveTypes[i++]; + mt->name = "Sliding window"; + mt->shortName = "Slider"; + mt->tuningName[0] = "Sliding window size"; + mt->shortTuningName[0] = "delta"; + mt->applicableTo[0] = SWITCH_UNI; + mt->applicableTo[1] = SWITCH_EXP; + mt->nApplicable = 2; + mt->moveFxn = &Move_SwitchRate; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 1.0; /* window size */ + mt->minimum[0] = 0.00001; + mt->maximum[0] = 100.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneSlider; + mt->targetRate = 0.25; + + /* Move_SwitchRate_M */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = SWITCH_UNI; + mt->applicableTo[1] = SWITCH_EXP; + mt->nApplicable = 2; + mt->moveFxn = &Move_SwitchRate_M; + mt->relProposalProb = 0.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.5); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_Tratio_Dir */ + mt = &moveTypes[i++]; + mt->name = "Dirichlet proposal"; + mt->shortName = "Dirichlet"; + mt->tuningName[0] = "Dirichlet parameter"; + mt->shortTuningName[0] = "alpha"; + mt->applicableTo[0] = TRATIO_DIR; + mt->nApplicable = 1; + mt->moveFxn = &Move_Tratio_Dir; + mt->relProposalProb = 1.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 50.0; /* alphaPi */ + mt->minimum[0] = 0.001; + mt->maximum[0] = 10000.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneDirichlet; + mt->targetRate = 0.25; + + /* Move_TreeStretch */ + mt = &moveTypes[i++]; + mt->name = "Tree stretch"; + mt->shortName = "TreeStretch"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = BRLENS_CLOCK_UNI; + mt->applicableTo[1] = BRLENS_CLOCK_BD; + mt->applicableTo[2] = BRLENS_CLOCK_COAL; + mt->applicableTo[3] = BRLENS_CLOCK_FOSSIL; + mt->nApplicable = 4; + mt->moveFxn = &Move_TreeStretch; + mt->relProposalProb = 3.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log(1.01); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 2.0 * log(2.0); + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_TreeLen, by Jeremy Brown */ + mt = &moveTypes[i++]; + mt->name = "Whole treelength hit with multiplier"; + mt->shortName = "TLMultiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = BRLENS_UNI; + mt->applicableTo[1] = BRLENS_EXP; + mt->applicableTo[2] = BRLENS_GamDir; + mt->applicableTo[3] = BRLENS_iGmDir; + mt->applicableTo[4] = BRLENS_twoExp; + mt->nApplicable = 5; // was 2 + mt->moveFxn = &Move_TreeLen; + mt->relProposalProb = 3.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (2.0); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 100.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_AddDeleteCPPEvent */ + mt = &moveTypes[i++]; + mt->name = "Random addition/deletion of CPP event"; + mt->shortName = "Add_delete"; + mt->applicableTo[0] = CPPEVENTS; + mt->nApplicable = 1; + mt->moveFxn = &Move_AddDeleteCPPEvent; + mt->relProposalProb = 1.0; + mt->numTuningParams = 0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + + /* Move_CPPEventPosition */ + mt = &moveTypes[i++]; + mt->name = "Random draw of CPP event position from prior"; + mt->shortName = "Prior_draw_pos"; + mt->applicableTo[0] = CPPEVENTS; + mt->nApplicable = 1; + mt->moveFxn = &Move_CPPEventPosition; + mt->relProposalProb = 2.0; + mt->numTuningParams = 0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + + /* Move_CPPRate */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = CPPRATE_EXP; + mt->nApplicable = 1; + mt->moveFxn = &Move_CPPRate; + mt->relProposalProb = 2.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_CPPRateMultiplier_M */ + mt = &moveTypes[i++]; + mt->name = "Random CPP rate multiplier hit with multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = CPPEVENTS; + mt->nApplicable = 1; + mt->moveFxn = &Move_CPPRateMultiplier_M; + mt->relProposalProb = 0.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_CPPRateMultiplierRnd */ + mt = &moveTypes[i++]; + mt->name = "Random draw of CPP rate multiplier from prior"; + mt->shortName = "Prior_draw_mult"; + mt->applicableTo[0] = CPPEVENTS; + mt->nApplicable = 1; + mt->moveFxn = &Move_CPPRateMultiplierRnd; + mt->relProposalProb = 2.0; + mt->numTuningParams = 0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + + /* Move_Nu */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = TK02VAR_EXP; + mt->applicableTo[1] = TK02VAR_UNI; + mt->nApplicable = 2; + mt->moveFxn = &Move_Nu; + mt->relProposalProb = 2.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_TK02BranchRate */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = TK02BRANCHRATES; + mt->nApplicable = 1; + mt->moveFxn = &Move_TK02BranchRate; + mt->relProposalProb = 10.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_IgrVar */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = IGRVAR_EXP; + mt->applicableTo[1] = IGRVAR_UNI; + mt->nApplicable = 2; + mt->moveFxn = &Move_IgrVar; + mt->relProposalProb = 2.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_IgrBranchRate */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = IGRBRANCHRATES; + mt->nApplicable = 1; + mt->moveFxn = &Move_IgrBranchRate; + mt->relProposalProb = 10.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_MixedVar */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = MIXEDVAR_EXP; + mt->applicableTo[1] = MIXEDVAR_UNI; + mt->nApplicable = 2; + mt->moveFxn = &Move_MixedVar; + mt->relProposalProb = 2.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; /* smaller */ + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_MixedBranchRate */ + mt = &moveTypes[i++]; + mt->name = "Multiplier"; + mt->shortName = "Multiplier"; + mt->tuningName[0] = "Multiplier tuning parameter"; + mt->shortTuningName[0] = "lambda"; + mt->applicableTo[0] = MIXEDBRCHRATES; + mt->nApplicable = 1; + mt->moveFxn = &Move_MixedBranchRate; + mt->relProposalProb = 10.0; + mt->numTuningParams = 1; + mt->tuningParam[0] = 2.0 * log (1.1); /* lambda */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 20.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + mt->Autotune = &AutotuneMultiplier; + mt->targetRate = 0.25; + + /* Move_RelaxedClockModel */ + mt = &moveTypes[i++]; + mt->name = "rjMCMC among Relaxed Clock Models"; + mt->shortName = "rjMCMC_RCL"; + mt->tuningName[0] = "sigma_TK over sigma_IGR"; + mt->shortTuningName[0] = "ratio"; + mt->tuningName[1] = "Sliding window size"; + mt->shortTuningName[1] = "delta"; + mt->applicableTo[0] = MIXEDBRCHRATES; + mt->nApplicable = 1; + mt->moveFxn = &Move_RelaxedClockModel; + mt->relProposalProb = 5.0; + mt->numTuningParams = 2; + mt->tuningParam[0] = 100.0; /* TK/IGR var ratio */ + mt->tuningParam[1] = 10.0; /* window size */ + mt->minimum[0] = 0.0001; + mt->maximum[0] = 10000.0; + mt->minimum[1] = 0.0001; + mt->maximum[1] = 1000.0; + mt->parsimonyBased = NO; + mt->level = STANDARD_USER; + + numMoveTypes = i; +} + + +/* ShowModel: Display model on screen */ +int ShowModel (void) +{ + int i, j, ns; + + MrBayesPrint ("%s Model settings:\n\n", spacer); + for (i=0; i 1) + MrBayesPrint ("%s Settings for partition %d --\n", spacer, i+1); + else + MrBayesPrint ("%s Data not partitioned --\n", spacer); + + if (modelParams[i].dataType == DNA) + { + MrBayesPrint ("%s Datatype = DNA\n", spacer); + ns = 4; + } + else if (modelParams[i].dataType == RNA) + { + MrBayesPrint ("%s Datatype = RNA\n", spacer); + ns = 4; + } + else if (modelParams[i].dataType == PROTEIN) + { + MrBayesPrint ("%s Datatype = Protein\n", spacer); + ns = 20; + } + else if (modelParams[i].dataType == RESTRICTION) + { + MrBayesPrint ("%s Datatype = Restriction\n", spacer); + ns = 2; + } + else if (modelParams[i].dataType == STANDARD) + { + MrBayesPrint ("%s Datatype = Standard\n", spacer); + ns = 10; + } + else if (modelParams[i].dataType == CONTINUOUS) + { + MrBayesPrint ("%s Datatype = Continuous\n", spacer); + } + + if (modelSettings[i].dataType == CONTINUOUS) + { + /* begin description of continuous models */ + if (!strcmp(modelParams[i].brownCorPr, "Fixed") && AreDoublesEqual(modelParams[i].brownCorrFix, 0.0, ETA)==YES) + MrBayesPrint ("%s Model = Independent Brownian motion\n", spacer); + else + MrBayesPrint ("%s Model = Correlated Brownian motion\n", spacer); + /* end description of continuous models */ + } + else + { + /* begin description of discrete models */ + if (!strcmp(modelParams[i].parsModel, "Yes")) + { + MrBayesPrint ("%s Parsmodel = %s\n", spacer, modelParams[i].parsModel); + } + else + { + /* dna characters in this partition */ + if (modelSettings[i].dataType == DNA || modelSettings[i].dataType == RNA) + { + /* general form of the rate matrix */ + MrBayesPrint ("%s Nucmodel = %s\n", spacer, modelParams[i].nucModel); + + /* constraints on rates of substitution */ + MrBayesPrint ("%s Nst = %s\n", spacer, modelParams[i].nst); + if (!strcmp(modelParams[i].nst, "2")) + { + if (!strcmp(modelParams[i].tRatioPr,"Beta")) + { + MrBayesPrint ("%s Transition and transversion rates, expressed\n", spacer); + MrBayesPrint ("%s as proportions of the rate sum, have a\n", spacer); + MrBayesPrint ("%s Beta(%1.2lf,%1.2lf) prior\n", spacer, modelParams[i].tRatioDir[0], modelParams[i].tRatioDir[1]); + } + else + { + MrBayesPrint ("%s Transition/transversion rate ratio is fixed to %1.2lf.\n", spacer, modelParams[i].tRatioFix); + } + } + else if (!strcmp(modelParams[i].nst, "6")) + { + if (!strcmp(modelParams[i].revMatPr,"Dirichlet")) + { + MrBayesPrint ("%s Substitution rates, expressed as proportions\n", spacer); + MrBayesPrint ("%s of the rate sum, have a Dirichlet prior\n", spacer); + MrBayesPrint ("%s (%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf)\n", spacer, + modelParams[i].revMatDir[0], modelParams[i].revMatDir[1], modelParams[i].revMatDir[2], + modelParams[i].revMatDir[3], modelParams[i].revMatDir[4], modelParams[i].revMatDir[5]); + } + else + { + MrBayesPrint ("%s Substitution rates are fixed to be \n", spacer); + MrBayesPrint ("%s (%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf).\n", spacer, + modelParams[i].revMatFix[0], modelParams[i].revMatFix[1], modelParams[i].revMatFix[2], + modelParams[i].revMatFix[3], modelParams[i].revMatFix[4], modelParams[i].revMatFix[5]); + } + } + else if (!strcmp(modelParams[i].nst, "Mixed")) + { + if (!strcmp(modelParams[i].revMatPr,"Dirichlet")) + { + MrBayesPrint ("%s Substitution rates, expressed as proportions\n", spacer); + MrBayesPrint ("%s of the rate sum, have a Dirichlet prior\n", spacer); + MrBayesPrint ("%s (%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf)\n", spacer, + modelParams[i].revMatDir[0], modelParams[i].revMatDir[1], modelParams[i].revMatDir[2], + modelParams[i].revMatDir[3], modelParams[i].revMatDir[4], modelParams[i].revMatDir[5]); + } + else + { + MrBayesPrint ("%s Substitution rates are fixed to be \n", spacer); + MrBayesPrint ("%s (%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf).\n", spacer, + modelParams[i].revMatFix[0], modelParams[i].revMatFix[1], modelParams[i].revMatFix[2], + modelParams[i].revMatFix[3], modelParams[i].revMatFix[4], modelParams[i].revMatFix[5]); + } + } + + if (!strcmp(modelParams[i].nucModel,"Codon")) + { + /* what is the distribution on the nonsyn./syn. rate ratio */ + if (!strcmp(modelParams[i].omegaVar, "Equal")) + { + if (!strcmp(modelParams[i].omegaPr,"Dirichlet")) + { + MrBayesPrint ("%s Nonsynonymous and synonymous rates, expressed\n", spacer); + MrBayesPrint ("%s as proportions of the rate sum, have a\n", spacer); + MrBayesPrint ("%s Dirichlet(%1.2lf,%1.2lf) prior\n", spacer, modelParams[i].omegaDir[0], modelParams[i].omegaDir[1]); + } + else + { + MrBayesPrint ("%s Nonsynonymous/synonymous rate ratio is fixed to %1.2lf.\n", spacer, modelParams[i].omegaFix); + } + } + else if (!strcmp(modelParams[i].omegaVar, "Ny98")) + { + if (!strcmp(modelParams[i].ny98omega1pr, "Beta")) + { + MrBayesPrint ("%s Nonsynonymous/synonymous rate ratio for purifying selection\n", spacer); + MrBayesPrint ("%s (class 1) has a Beta(%1.2lf,%1.2lf) on the interval (0,1).\n", spacer, modelParams[i].ny98omega1Beta[0], modelParams[i].ny98omega1Beta[1]); + } + else + { + MrBayesPrint ("%s Nonsynonymous/synonymous rate ratio for purifying selection\n", spacer); + MrBayesPrint ("%s (class 1) is fixed to %1.2lf.\n", spacer, modelParams[i].ny98omega1Fixed); + } + MrBayesPrint ("%s Nonsynonymous/synonymous rate ratio for neutral selection\n", spacer); + MrBayesPrint ("%s (class 2) is fixed to 1.0.\n", spacer); + if (!strcmp(modelParams[i].ny98omega3pr, "Uniform")) + { + MrBayesPrint ("%s Nonsynonymous/synonymous rate ratio for positive selection\n", spacer); + MrBayesPrint ("%s is uniformly distributed on the interval (%1.2lf,%1.2lf).\n", spacer, modelParams[i].ny98omega3Uni[0], modelParams[i].ny98omega3Uni[1]); + } + else if (!strcmp(modelParams[i].ny98omega3pr, "Exponential")) + { + MrBayesPrint ("%s Nonsynonymous/synonymous rate ratio for positive selection\n", spacer); + MrBayesPrint ("%s is exponentially distributed with parameter (%1.2lf).\n", spacer, modelParams[i].ny98omega3Exp); + } + else + { + MrBayesPrint ("%s Nonsynonymous/synonymous rate ratio for positive \n", spacer); + MrBayesPrint ("%s selection is fixed to %1.2lf.\n", spacer, modelParams[i].ny98omega3Fixed); + } + } + else if (!strcmp(modelParams[i].omegaVar, "M3")) + { + if (!strcmp(modelParams[i].m3omegapr, "Exponential")) + { + MrBayesPrint ("%s Nonsynonymous and synonymous rates for the tree classes of\n", spacer); + MrBayesPrint ("%s omega are exponentially distributed random variables.\n", spacer); + } + else if (!strcmp(modelParams[i].m3omegapr, "Fixed")) + { + MrBayesPrint ("%s Nonsynonymous/synonymous rate ratio for the three omega\n", spacer); + MrBayesPrint ("%s are fixed to %1.2lf, %1.2lf, and %1.2lf.\n", spacer, modelParams[i].m3omegaFixed[0], modelParams[i].m3omegaFixed[1], modelParams[i].m3omegaFixed[2]); + } + } + else if (!strcmp(modelParams[i].omegaVar, "M10")) + { + MrBayesPrint ("%s Nonsynonymous/synonymous rate ratio for purifying \n", spacer); + MrBayesPrint ("%s selection (class 1) has a Beta(alpha1,beta1) on the \n", spacer); + MrBayesPrint ("%s interval (0,1). Nonsynonymous/synonymous rate ratio \n", spacer); + MrBayesPrint ("%s for positive selection (class 2) has an offset \n", spacer); + MrBayesPrint ("%s Gamma(alpha2,beta2) on the interval (1,Infinity).\n", spacer); + } + + /* genetic code that is used (if nucmodel=codon) */ + MrBayesPrint ("%s Code = %s\n", spacer, modelParams[i].geneticCode); + } + } + /* amino acid characters in this partition */ + else if (modelSettings[i].dataType == PROTEIN) + { + if (modelParams[i].dataType == DNA || modelParams[i].dataType == RNA) + MrBayesPrint ("%s Nucmodel = %s\n", spacer, modelParams[i].nucModel); + /* constraints on rates of substitution in 20 X 20 matrix */ + if (!strcmp(modelParams[i].aaModelPr, "Mixed")) + MrBayesPrint ("%s Aamodel = Mixture of models with fixed rate matrices\n", spacer); + else + MrBayesPrint ("%s Aamodel = %s\n", spacer, modelParams[i].aaModel); + /* revmat rates */ + if (!strcmp(modelParams[i].aaModelPr, "Mixed")) + MrBayesPrint ("%s Substitution rates come from the mixture of models\n", spacer); + else if (!strcmp(modelParams[i].aaModelPr, "Fixed") && (!strcmp(modelParams[i].aaModel, "Poisson") || + !strcmp(modelParams[i].aaModel, "Equalin"))) + MrBayesPrint ("%s Substitution rates are fixed to be equal\n", spacer); + else if (!strcmp(modelParams[i].aaModelPr, "Fixed") && strcmp(modelParams[i].aaModel, "Gtr")!=0) + MrBayesPrint ("%s Substitution rates are fixed to the %s rates\n", spacer, modelParams[i].aaModel); + else if (!strcmp(modelParams[i].aaModelPr, "Fixed") && !strcmp(modelParams[i].aaModel, "Gtr")) + { + if (!strcmp(modelParams[i].aaRevMatPr,"Dirichlet")) + { + for (j=0; j<190; j++) + if (AreDoublesEqual(modelParams[i].aaRevMatDir[0], modelParams[i].aaRevMatDir[j], 0.00001) == NO) + break; + if (j == 190) + { + MrBayesPrint ("%s Substitution rates have a Dirichlet(%1.2lf,%1.2lf,...) prior\n", + spacer, modelParams[i].aaRevMatDir[0], modelParams[i].aaRevMatDir[0]); + } + else + { + MrBayesPrint ("%s Substitution rates have a Dirichlet(\n", spacer); + for (j=0; j<190; j++) + { + if (j % 10 == 0) + MrBayesPrint ("%s ", spacer); + MrBayesPrint ("%1.2lf", modelParams[i].aaRevMatDir[j]); + if (j == 189) + MrBayesPrint (") prior\n"); + else if ((j+1) % 10 == 0) + MrBayesPrint (",\n"); + else + MrBayesPrint (","); + } + } + } + else /* if (!strcmp(modelParams[i].aaRevMatPr,"Fixed")) */ + { + for (j=0; j<190; j++) + if (AreDoublesEqual(modelParams[i].aaRevMatFix[0], modelParams[i].aaRevMatFix[j], 0.00001) == NO) + break; + if (j == 190) + { + MrBayesPrint ("%s Substitution rates are fixed to (%1.1lf,%1.1lf,...)\n", + spacer, modelParams[i].aaRevMatFix[0], modelParams[i].aaRevMatFix[0]); + } + else + { + MrBayesPrint ("%s Substitution rates are fixed to (\n", spacer); + for (j=0; j<190; j++) + { + if (j % 10 == 0) + MrBayesPrint ("%s ", spacer); + MrBayesPrint ("%1.1lf", modelParams[i].aaRevMatFix[j]); + if (j == 189) + MrBayesPrint (") prior\n"); + else if ((j+1) % 10 == 0) + MrBayesPrint (",\n"); + else + MrBayesPrint (","); + } + } + } + } + } + /* restriction site or morphological characters in this partition */ + else if (modelSettings[i].dataType == RESTRICTION || modelSettings[i].dataType == STANDARD) + { + /* what type of characters are sampled? */ + MrBayesPrint ("%s Coding = %s\n", spacer, modelParams[i].codingString); + } + + /* is there rate variation in a single site across the tree? */ + if (((modelSettings[i].dataType == DNA || modelSettings[i].dataType == RNA) && !strcmp(modelParams[i].nucModel, "4by4")) || modelSettings[i].dataType == PROTEIN) + { + /* do rates change on tree accoding to covarion model? */ + MrBayesPrint ("%s Covarion = %s\n", spacer, modelParams[i].covarionModel); + if (!strcmp(modelParams[i].covarionModel, "Yes")) + { + /* distribution on switching parameters, if appropriate */ + if (!strcmp(modelParams[i].covSwitchPr,"Uniform")) + { + MrBayesPrint ("%s Switching rates have independent uniform dist-\n", spacer); + MrBayesPrint ("%s ributions on the interval (%1.2lf,%1.2lf).\n", spacer, modelParams[i].covswitchUni[0], modelParams[i].covswitchUni[1]); + } + else if (!strcmp(modelParams[i].covSwitchPr,"Exponential")) + { + MrBayesPrint ("%s Switching rates have independent exponential\n", spacer); + MrBayesPrint ("%s distributions with parameters (%1.2lf).\n", spacer, modelParams[i].covswitchExp); + } + else + { + MrBayesPrint ("%s Switching rates are fixed to %1.2lf and %1.2lf.\n", spacer, modelParams[i].covswitchFix[0], modelParams[i].covswitchFix[0]); + } + ns *= 2; + } + } + + /* now, let's deal with variation in omega */ + if ((modelParams[i].dataType == DNA || modelParams[i].dataType == RNA) && !strcmp(modelParams[i].nucModel,"Codon")) + { + MrBayesPrint ("%s Omegavar = %s\n", spacer, modelParams[i].omegaVar); + if (!strcmp(modelParams[i].geneticCode, "Universal")) + ns = 61; + else if (!strcmp(modelParams[i].geneticCode, "Vertmt")) + ns = 60; + else if (!strcmp(modelParams[i].geneticCode, "Invermt")) + ns = 62; + else if (!strcmp(modelParams[i].geneticCode, "Mycoplasma")) + ns = 62; + else if (!strcmp(modelParams[i].geneticCode, "Yeast")) + ns = 62; + else if (!strcmp(modelParams[i].geneticCode, "Ciliate")) + ns = 63; + else if (!strcmp(modelParams[i].geneticCode, "Echinoderm")) + ns = 62; + else if (!strcmp(modelParams[i].geneticCode, "Euplotid")) + ns = 62; + else if (!strcmp(modelParams[i].geneticCode, "Metmt")) + ns = 62; + } + + /* what assumptions are made about the state frequencies? */ + if (modelParams[i].dataType != CONTINUOUS) + { + if (modelParams[i].dataType == STANDARD) + MrBayesPrint ("%s # States = Variable, up to 10\n", spacer); + else if (modelSettings[i].numStates != modelSettings[i].numModelStates) + MrBayesPrint ("%s # States = %d (in the model)\n", spacer, modelSettings[i].numModelStates); + else + MrBayesPrint ("%s # States = %d\n", spacer, ns); + if (modelSettings[i].dataType == STANDARD) + { + if (!strcmp(modelParams[i].symPiPr,"Fixed")) + { + if (AreDoublesEqual(modelParams[i].symBetaFix, -1.0, ETA)==YES) + MrBayesPrint ("%s State frequencies are fixed to be equal\n", spacer); + else + MrBayesPrint ("%s Symmetric Dirichlet alpha is fixed to %1.2lf\n", spacer, modelParams[i].symBetaFix); + } + else if (!strcmp(modelParams[i].symPiPr,"Uniform")) + { + MrBayesPrint ("%s Symmetric Dirichlet alpha has a Uniform(%1.2lf,%1.2lf) prior\n", spacer, modelParams[i].symBetaUni[0], modelParams[i].symBetaUni[1]); + } + else + { + MrBayesPrint ("%s Symmetric Dirichlet alpha has a Exponential(%1.2lf) prior\n", spacer, modelParams[i].symBetaExp); + } + } + else if (modelSettings[i].dataType == RESTRICTION) + { + /* distribution on state frequencies for restriction site model */ + if (!strcmp(modelParams[i].stateFreqPr,"Dirichlet")) + { + MrBayesPrint ("%s State frequencies have a Dirichlet (%1.2lf,%1.2lf) prior\n", spacer, + modelParams[i].stateFreqsDir[0], modelParams[i].stateFreqsDir[1]); + } + else if (!strcmp(modelParams[i].stateFreqPr,"Fixed") && !strcmp(modelParams[i].stateFreqsFixType,"Equal")) + { + MrBayesPrint ("%s State frequencies are fixed to be equal\n", spacer); + } + else if (!strcmp(modelParams[i].stateFreqPr,"Fixed") && !strcmp(modelParams[i].stateFreqsFixType,"User")) + { + MrBayesPrint ("%s State frequencies have been fixed by the user\n", spacer); + } + else if (!strcmp(modelParams[i].stateFreqPr,"Fixed") && !strcmp(modelParams[i].stateFreqsFixType,"Empirical")) + { + MrBayesPrint ("%s State frequencies have been fixed to the empirical frequencies in the data\n", spacer); + } + } + else if (modelSettings[i].dataType == PROTEIN) + { + /* distribution on state frequencies for aminoacid model */ + if (!strcmp(modelParams[i].aaModelPr, "Fixed") && (strcmp(modelParams[i].aaModel, "Equalin")==0 || + strcmp(modelParams[i].aaModel, "Gtr")==0)) + { + if (!strcmp(modelParams[i].stateFreqPr,"Dirichlet")) + { + MrBayesPrint ("%s State frequencies have a Dirichlet prior\n", spacer); + MrBayesPrint ("%s (%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf,", spacer, + modelParams[i].stateFreqsDir[0], modelParams[i].stateFreqsDir[1], modelParams[i].stateFreqsDir[2], + modelParams[i].stateFreqsDir[3], modelParams[i].stateFreqsDir[4]); + MrBayesPrint ("%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf,\n", + modelParams[i].stateFreqsDir[5], modelParams[i].stateFreqsDir[6], modelParams[i].stateFreqsDir[7], + modelParams[i].stateFreqsDir[8], modelParams[i].stateFreqsDir[9]); + MrBayesPrint ("%s %1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf,", spacer, + modelParams[i].stateFreqsDir[10], modelParams[i].stateFreqsDir[11], modelParams[i].stateFreqsDir[12], + modelParams[i].stateFreqsDir[13], modelParams[i].stateFreqsDir[14]); + MrBayesPrint ("%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf)\n", + modelParams[i].stateFreqsDir[15], modelParams[i].stateFreqsDir[16], modelParams[i].stateFreqsDir[17], + modelParams[i].stateFreqsDir[18], modelParams[i].stateFreqsDir[19]); + } + else if (!strcmp(modelParams[i].stateFreqPr,"Fixed") && !strcmp(modelParams[i].stateFreqsFixType,"Equal")) + { + MrBayesPrint ("%s State frequencies are fixed to be equal\n", spacer); + } + else if (!strcmp(modelParams[i].stateFreqPr,"Fixed") && !strcmp(modelParams[i].stateFreqsFixType,"User")) + { + MrBayesPrint ("%s State frequencies have been fixed by the user\n", spacer); + } + else if (!strcmp(modelParams[i].stateFreqPr,"Fixed") && !strcmp(modelParams[i].stateFreqsFixType,"Empirical")) + { + MrBayesPrint ("%s State frequencies have been fixed to the empirical frequencies in the data\n", spacer); + } + } + else if (!strcmp(modelParams[i].aaModelPr, "Fixed") && !strcmp(modelParams[i].aaModel, "Poisson")) + { + MrBayesPrint ("%s State frequencies are fixed to be equal\n", spacer); + } + else if (!strcmp(modelParams[i].aaModelPr, "Fixed") && strcmp(modelParams[i].aaModel, "Equalin") && strcmp(modelParams[i].aaModel, "Poisson")) + { + MrBayesPrint ("%s State frequencies are fixed to the %s frequencies\n", spacer, modelParams[i].aaModel); + } + else + { + MrBayesPrint ("%s State frequencies come from the mixture of models\n", spacer); + } + } + else + { + /* distribution on state frequencies for all other models */ + if (!strcmp(modelParams[i].stateFreqPr,"Dirichlet")) + { + MrBayesPrint ("%s State frequencies have a Dirichlet prior\n", spacer); + if (!strcmp(modelParams[i].nucModel, "Doublet")) + { + MrBayesPrint ("%s (%1.2lf,%1.2lf,%1.2lf,%1.2lf,\n", spacer, + modelParams[i].stateFreqsDir[0], modelParams[i].stateFreqsDir[1], modelParams[i].stateFreqsDir[2], + modelParams[i].stateFreqsDir[3]); + MrBayesPrint ("%s %1.2lf,%1.2lf,%1.2lf,%1.2lf,\n", spacer, + modelParams[i].stateFreqsDir[4], modelParams[i].stateFreqsDir[5], modelParams[i].stateFreqsDir[6], + modelParams[i].stateFreqsDir[7]); + MrBayesPrint ("%s %1.2lf,%1.2lf,%1.2lf,%1.2lf,\n", spacer, + modelParams[i].stateFreqsDir[8], modelParams[i].stateFreqsDir[9], modelParams[i].stateFreqsDir[10], + modelParams[i].stateFreqsDir[11]); + MrBayesPrint ("%s %1.2lf,%1.2lf,%1.2lf,%1.2lf)\n", spacer, + modelParams[i].stateFreqsDir[12], modelParams[i].stateFreqsDir[13], modelParams[i].stateFreqsDir[14], + modelParams[i].stateFreqsDir[15]); + } + else if (!strcmp(modelParams[i].nucModel, "4by4")) + { + MrBayesPrint ("%s (%1.2lf,%1.2lf,%1.2lf,%1.2lf)\n", spacer, + modelParams[i].stateFreqsDir[0], modelParams[i].stateFreqsDir[1], modelParams[i].stateFreqsDir[2], + modelParams[i].stateFreqsDir[3]); + } + } + else if (!strcmp(modelParams[i].stateFreqPr,"Fixed") && !strcmp(modelParams[i].stateFreqsFixType,"Equal")) + { + MrBayesPrint ("%s State frequencies are fixed to be equal\n", spacer); + } + else if (!strcmp(modelParams[i].stateFreqPr,"Fixed") && !strcmp(modelParams[i].stateFreqsFixType,"User")) + { + MrBayesPrint ("%s State frequencies have been fixed by the user\n", spacer); + } + else if (!strcmp(modelParams[i].stateFreqPr,"Fixed") && !strcmp(modelParams[i].stateFreqsFixType,"Empirical")) + { + MrBayesPrint ("%s State frequencies have been fixed to the empirical frequencies in the data\n", spacer); + } + } + } + else + MrBayesPrint ("%s # States = Infinity\n", spacer); + + /* now, let's deal with rate variation across sites */ + if (modelSettings[i].dataType != CONTINUOUS) + { + if (((modelSettings[i].dataType == DNA || modelSettings[i].dataType == RNA) && strcmp(modelParams[i].nucModel,"Codon")) || + modelSettings[i].dataType == PROTEIN || modelSettings[i].dataType == RESTRICTION || modelSettings[i].dataType == STANDARD) + { + if (!strcmp(modelParams[i].covarionModel, "No")) + MrBayesPrint ("%s Rates = %s\n", spacer, modelParams[i].ratesModel); + else + { + if (!strcmp(modelParams[i].ratesModel, "Propinv")) + MrBayesPrint ("%s Rates = Equal ", spacer); + else if (!strcmp(modelParams[i].ratesModel, "Invgamma")) + MrBayesPrint ("%s Rates = Gamma ", spacer); + else + MrBayesPrint ("%s Rates = %s ", spacer, modelParams[i].ratesModel); + MrBayesPrint ("(+ Propinv induced by covarion model)\n"); + } + + if ((modelParams[i].dataType == RESTRICTION || modelParams[i].dataType == STANDARD) && !strcmp(modelParams[i].ratesModel, "Adgamma")) + { + + } + else + { + if (!strcmp(modelParams[i].ratesModel, "Gamma") || !strcmp(modelParams[i].ratesModel, "Invgamma") || + !strcmp(modelParams[i].ratesModel, "LNorm") || !strcmp(modelParams[i].ratesModel, "Adgamma")) + { + /* how many categories is the continuous gamma approximated by? */ + MrBayesPrint ("%s The distribution is approximated using %d categories.\n", spacer, modelParams[i].numGammaCats); + if (!strcmp(modelParams[i].useGibbs,"Yes")) + MrBayesPrint ("%s Rate categories sampled using Gibbs sampling.\n", spacer, modelParams[i].numGammaCats); + else + MrBayesPrint ("%s Likelihood summarized over all rate categories in each generation.\n", spacer, modelParams[i].numGammaCats); + /* distribution on shape parameter, if appropriate */ + if (!strcmp(modelParams[i].shapePr,"Uniform")) + { + MrBayesPrint ("%s Shape parameter is uniformly distributed\n", spacer); + MrBayesPrint ("%s on the interval (%1.2lf,%1.2lf).\n", spacer, modelParams[i].shapeUni[0], modelParams[i].shapeUni[1]); + } + else if (!strcmp(modelParams[i].shapePr,"Exponential")) + { + MrBayesPrint ("%s Shape parameter is exponentially\n", spacer); + MrBayesPrint ("%s distributed with parameter (%1.2lf).\n", spacer, modelParams[i].shapeExp); + } + else + { + MrBayesPrint ("%s Shape parameter is fixed to %1.2lf.\n", spacer, modelParams[i].shapeFix); + } + } + if ((!strcmp(modelParams[i].ratesModel, "Propinv") || !strcmp(modelParams[i].ratesModel, "Invgamma")) && !strcmp(modelParams[i].covarionModel, "No")) + { + /* distribution on pInvar parameter, if appropriate */ + if (!strcmp(modelParams[i].pInvarPr,"Uniform")) + { + MrBayesPrint ("%s Proportion of invariable sites is uniformly dist-\n", spacer); + MrBayesPrint ("%s ributed on the interval (%1.2lf,%1.2lf).\n", spacer, modelParams[i].pInvarUni[0], modelParams[i].pInvarUni[1]); + } + else + { + MrBayesPrint ("%s Proportion of invariable sites is fixed to %1.2lf.\n", spacer, modelParams[i].pInvarFix); + } + } + if (!strcmp(modelParams[i].ratesModel, "Adgamma")) + { + /* distribution on correlation parameter, if appropriate */ + if (!strcmp(modelParams[i].adGammaCorPr,"Uniform")) + { + MrBayesPrint ("%s Rate correlation parameter is uniformly dist-\n", spacer); + MrBayesPrint ("%s ributed on the interval (%1.2lf,%1.2lf).\n", spacer, modelParams[i].corrUni[0], modelParams[i].corrUni[1]); + } + else + { + MrBayesPrint ("%s Rate correlation parameter is fixed to %1.2lf.\n", spacer, modelParams[i].corrFix); + } + } + } + } + } + } + /* end description of discrete models */ + } + + if (i != numCurrentDivisions - 1) + MrBayesPrint ("\n"); + + } + + MrBayesPrint ("\n"); + ShowParameters (NO, NO, NO); + + return (NO_ERROR); +} + + +/*------------------------------------------------------------------------------ +| +| ShowMoves: Show applicable moves +| +------------------------------------------------------------------------------*/ +int ShowMoves (int used) +{ + int i, k, run, chain, chainIndex, areRunsSame, areChainsSame, numPrintedMoves; + MCMCMove *mv; + + chainIndex = 0; + numPrintedMoves = 0; + for (i=0; irelProposalProb[k] > 0.000001) + break; + } + + if (k == numGlobalChains && used == YES) + continue; + + if (k < numGlobalChains && used == NO) + continue; + + numPrintedMoves++; + + /* print move number and name */ + MrBayesPrint ("%s %4d -- Move = %s\n", spacer, numPrintedMoves, mv->name); + + /* print move type */ + MrBayesPrint ("%s Type = %s\n", spacer, mv->moveType->name); + + /* print parameter */ + if (mv->parm->nSubParams > 0) + MrBayesPrint ("%s Parameters = %s [param. %d] (%s)\n", spacer, mv->parm->name, + mv->parm->index+1, mv->parm->paramTypeName); + else + MrBayesPrint ("%s Parameter = %s [param. %d] (%s)\n", spacer, mv->parm->name, + mv->parm->index+1, mv->parm->paramTypeName); + for (k=0; kparm->nSubParams; k++) + MrBayesPrint ("%s %s [param. %d] (%s)\n", spacer, mv->parm->subParams[k]->name, + mv->parm->subParams[k]->index+1, mv->parm->subParams[k]->paramTypeName); + + /* print tuning parameters */ + for (k=0; kmoveType->numTuningParams; k++) + { + if (k==0) + MrBayesPrint ("%s Tuningparam = %s (%s)\n", spacer, mv->moveType->shortTuningName[k], mv->moveType->tuningName[k]); + else + MrBayesPrint ("%s %s (%s)\n", spacer, mv->moveType->shortTuningName[k], mv->moveType->tuningName[k]); + } + + /* loop over tuning parameters */ + for (k=0; kmoveType->numTuningParams; k++) + { + /* find if tuning parameters are different for different runs */ + areRunsSame = YES; + for (run=1; runtuningParam[chainIndex][k], mv->tuningParam[chain][k], 0.000001) == NO) + { + areRunsSame = NO; + break; + } + } + if (areRunsSame == NO) + break; + } + + /* now print values */ + for (run=0; run= 1) + break; + + /* find out if chains are different within this run */ + areChainsSame = YES; + for (chain=1; chaintuningParam[chainIndex][k], mv->tuningParam[chainIndex-chain][k],0.000001) == NO) + { + areChainsSame = NO; + break; + } + } + /* now we can print the values */ + for (chain=0; chain= 1) + break; + + if (run == 0 && chain == 0) + MrBayesPrint ("%s%22s = %1.3lf", spacer, mv->moveType->shortTuningName[k], mv->tuningParam[chainIndex][k]); + else + MrBayesPrint ("%s %1.3lf", spacer, mv->tuningParam[chainIndex][k]); + + if (areChainsSame == NO && areRunsSame == YES) + MrBayesPrint (" [chain %d]\n", chain+1); + else if (areChainsSame == YES && areRunsSame == NO) + MrBayesPrint (" [run %d]\n", run+1); + else if (areChainsSame == NO && areRunsSame == NO) + MrBayesPrint (" [run %d, chain %d]\n", run+1, chain+1); + else + MrBayesPrint ("\n"); + } + } + } /* next tuning parameter */ + + /* print target acceptance rate for autotuning */ + if (mv->moveType->targetRate > 0.0 && mv->moveType->targetRate < 1.0) + { + + /* first find out if the targets are different in different runs */ + areRunsSame = YES; + for (run=1; runtargetRate[chainIndex], mv->targetRate[chain], 0.000001) == NO) + { + areRunsSame = NO; + break; + } + } + if (areRunsSame == NO) + break; + } + + /* now print values */ + for (run=0; run= 1) + break; + + /* find out if chains are different within this run */ + areChainsSame = YES; + for (chain=1; chaintargetRate[chainIndex], mv->targetRate[chainIndex-chain], 0.000001) == NO) + { + areChainsSame = NO; + break; + } + } + /* now we can print the values */ + for (chain=0; chain= 1) + break; + + if (run == 0 && chain == 0) + MrBayesPrint ("%s Targetrate = %1.3lf", spacer, mv->targetRate[chainIndex]); + else + MrBayesPrint ("%s %1.3lf", spacer, mv->targetRate[chainIndex]); + + if (areChainsSame == NO && areRunsSame == YES) + MrBayesPrint (" [chain %d]\n", chain+1); + else if (areChainsSame == YES && areRunsSame == NO) + MrBayesPrint (" [run %d]\n", run+1); + else if (areChainsSame == NO && areRunsSame == NO) + MrBayesPrint (" [run %d, chain %d]\n", run+1, chain+1); + else + MrBayesPrint ("\n"); + } + } + } + + + /* finally print the relative proposal probability */ + + /* first find out if the probabilities are different in different runs */ + areRunsSame = YES; + for (run=1; runrelProposalProb[chainIndex], mv->relProposalProb[chain], 0.000001) == NO) + { + areRunsSame = NO; + break; + } + } + if (areRunsSame == NO) + break; + } + + /* now print values */ + for (run=0; run= 1) + break; + + /* find out if chains are different within this run */ + areChainsSame = YES; + for (chain=1; chainrelProposalProb[chainIndex], mv->relProposalProb[chainIndex-chain], 0.000001) == NO) + { + areChainsSame = NO; + break; + } + } + /* now we can print the values */ + for (chain=0; chain= 1) + break; + + if (run == 0 && chain == 0) + MrBayesPrint ("%s Rel. prob. = %1.1lf", spacer, mv->relProposalProb[chainIndex]); + else + MrBayesPrint ("%s %1.1lf", spacer, mv->relProposalProb[chainIndex]); + + if (areChainsSame == NO && areRunsSame == YES) + MrBayesPrint (" [chain %d]\n", chain+1); + else if (areChainsSame == YES && areRunsSame == NO) + MrBayesPrint (" [run %d]\n", run+1); + else if (areChainsSame == NO && areRunsSame == NO) + MrBayesPrint (" [run %d, chain %d]\n", run+1, chain+1); + else + MrBayesPrint ("\n"); + } + } + MrBayesPrint ("\n"); + } /* next move */ + + if (numPrintedMoves == 0) + { + if (used == YES) + { + MrBayesPrint ("%s No moves currently used for this analysis. All parameters\n", spacer); + MrBayesPrint ("%s will be fixed to their starting values.\n\n", spacer); + } + else + { + MrBayesPrint ("%s No additional moves available for this model.\n\n", spacer); + } + } + + return (NO_ERROR); +} + + +/*------------------------------------------------------------------------------ +| +| ShowParameters: Show parameter table and parameter info +| +------------------------------------------------------------------------------*/ +int ShowParameters (int showStartVals, int showMoves, int showAllAvailable) +{ + int a, b, d, i, j, k, m, n, run, chain, shouldPrint, isSame, areRunsSame, areChainsSame, nValues, + chainIndex, refIndex, numPrinted, numMovedChains, printedCol, screenWidth=100; + Param *p; + Model *mp; + ModelInfo *ms; + MrBFlt *value, *refValue, *subValue; + MCMCMove *mv; + + MrBayesPrint ("%s Active parameters: \n\n", spacer); + if (numCurrentDivisions > 1) + { + MrBayesPrint ("%s Partition(s)\n", spacer); + MrBayesPrint ("%s Parameters ", spacer); + for (i=0; i 1) + { + MrBayesPrint ("%s ------------------", spacer); + for (i=0; i 1) + MrBayesPrint ("%s Parameters can be linked or unlinked across partitions using 'link' and 'unlink'\n\n", spacer); + + for (i=0; iparamType; + + mp = &modelParams[p->relParts[0]]; + ms = &modelSettings[p->relParts[0]]; + + /* print parameter number and name */ + MrBayesPrint ("%s %4d -- Parameter = %s\n", spacer, i+1, p->name); + MrBayesPrint ("%s Type = %s\n", spacer, p->paramTypeName); + /* print prior */ + if (j == P_TRATIO) + { + if (!strcmp(mp->tRatioPr,"Beta")) + MrBayesPrint ("%s Prior = Beta(%1.2lf,%1.2lf)\n", spacer, mp->tRatioDir[0], modelParams[i].tRatioDir[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->tRatioFix); + } + else if (j == P_REVMAT) + { + if (ms->numModelStates != 20) + { + if (!strcmp(mp->nst,"Mixed")) + { + MrBayesPrint ("%s Prior = All GTR submodels have equal probability\n", spacer); + MrBayesPrint ("%s All revmat rates have a Symmetric Dirichlet(%1.2lf) prior\n", spacer, mp->revMatSymDir); + } + else if (!strcmp(mp->revMatPr,"Dirichlet")) + { + MrBayesPrint ("%s Prior = Dirichlet(%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf)\n", spacer, + mp->revMatDir[0], mp->revMatDir[1], mp->revMatDir[2], + mp->revMatDir[3], mp->revMatDir[4], mp->revMatDir[5]); + } + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf,%1.2lf)\n", spacer, + mp->revMatFix[0], mp->revMatFix[1], mp->revMatFix[2], + mp->revMatFix[3], mp->revMatFix[4], mp->revMatFix[5]); + } + else if (ms->numModelStates == 20) + { + if (!strcmp(mp->aaRevMatPr,"Dirichlet")) + MrBayesPrint ("%s Prior = Dirichlet\n", spacer); + else + MrBayesPrint ("%s Prior = Fixed(user-specified)\n", spacer); + } + } + else if (j == P_OMEGA) + { + if (!strcmp(mp->omegaVar,"Equal")) + { + if (!strcmp(mp->omegaPr,"Dirichlet")) + MrBayesPrint ("%s Prior = Dirichlet(%1.2lf,%1.2lf)\n", spacer, mp->omegaDir[0], mp->omegaDir[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->omegaFix); + } + else if (!strcmp(mp->omegaVar,"Ny98")) + { + if (!strcmp(mp->ny98omega1pr,"Beta")) + MrBayesPrint ("%s Prior = Beta(%1.2lf,%1.2lf) on omega(1)\n", spacer, mp->ny98omega1Beta[0], mp->ny98omega1Beta[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf) on omega(1)\n", spacer, mp->ny98omega1Fixed); + MrBayesPrint ("%s Fixed(1.00) on omega(2)\n", spacer); + if (!strcmp(mp->ny98omega3pr,"Uniform")) + MrBayesPrint ("%s Uniform(%1.2lf,%1.2lf) on omega(3)\n", spacer, mp->ny98omega3Uni[0], mp->ny98omega3Uni[1]); + else if (!strcmp(mp->ny98omega3pr,"Exponential")) + MrBayesPrint ("%s Exponential(%1.2lf) on omega(3)\n", spacer, mp->ny98omega3Exp); + else + MrBayesPrint ("%s Fixed(%1.2lf) on omega(3)\n", spacer, mp->ny98omega3Fixed); + if (!strcmp(mp->codonCatFreqPr,"Dirichlet")) + MrBayesPrint ("%s Dirichlet(%1.2lf,%1.2lf,%1.2lf) on pi(-), pi(N), and pi(+)\n", spacer, mp->codonCatDir[0], mp->codonCatDir[1], mp->codonCatDir[2]); + else + MrBayesPrint ("%s Fixed(%1.2lf,%1.2lf,%1.2lf) on pi(-), pi(N), and pi(+)\n", spacer, mp->codonCatFreqFix[0], mp->codonCatFreqFix[1], mp->codonCatFreqFix[2]); + } + else if (!strcmp(mp->omegaVar,"M3")) + { + if (!strcmp(mp->m3omegapr,"Exponential")) + MrBayesPrint ("%s dN1, dN2, dN3, and dS are all exponential random variables\n", spacer); + else + MrBayesPrint ("%s Fixed(%1.2lf,%1.2lf,%1.2lf) for the three selection categories\n", spacer, mp->m3omegaFixed[0], mp->m3omegaFixed[1], mp->m3omegaFixed[2]); + if (!strcmp(mp->codonCatFreqPr,"Dirichlet")) + MrBayesPrint ("%s Dirichlet(%1.2lf,%1.2lf,%1.2lf) on pi(1), pi(2), and pi(3)\n", spacer, mp->codonCatDir[0], mp->codonCatDir[1], mp->codonCatDir[2]); + else + MrBayesPrint ("%s Fixed(%1.2lf,%1.2lf,%1.2lf) on pi(1), pi(2), and pi(3)\n", spacer, mp->codonCatFreqFix[0], mp->codonCatFreqFix[1], mp->codonCatFreqFix[2]); + } + else if (!strcmp(mp->omegaVar,"M10")) + { + MrBayesPrint ("%s With probability pi(1), omega is drawn from a Beta(alpha1,beta1) \n", spacer); + MrBayesPrint ("%s distribution and with probability pi(2), omega is drawn from\n", spacer); + MrBayesPrint ("%s a Gamma(alpha2,beta2) distribution.\n", spacer); + if (!strcmp(mp->m10betapr,"Uniform")) + { + MrBayesPrint ("%s The parameters of the beta distribution each follow \n", spacer); + MrBayesPrint ("%s independent Uniform(%1.2lf,%1.2lf) priors\n", spacer, mp->m10betaUni[0], mp->m10betaUni[1]); + } + else if (!strcmp(mp->m10betapr,"Exponential")) + { + MrBayesPrint ("%s The parameters of the beta distribution each follow \n", spacer); + MrBayesPrint ("%s independent Exponential(%1.2lf) priors\n", spacer, mp->m10betaExp); + } + else + { + MrBayesPrint ("%s The parameters of the beta distribution are fixed to \n", spacer); + MrBayesPrint ("%s %1.2lf and %1.2lf\n", spacer, mp->m10betaFix[0], mp->m10betaFix[0]); + } + + if (!strcmp(mp->m10gammapr,"Uniform")) + { + MrBayesPrint ("%s The parameters of the gamma distribution each follow \n", spacer); + MrBayesPrint ("%s independent Uniform(%1.2lf,%1.2lf) priors\n", spacer, mp->m10gammaUni[0], mp->m10gammaUni[1]); + } + else if (!strcmp(mp->m10gammapr,"Exponential")) + { + MrBayesPrint ("%s The parameters of the gamma distribution each follow \n", spacer); + MrBayesPrint ("%s independent Exponential(%1.2lf) priors\n", spacer, mp->m10gammaExp); + } + else + { + MrBayesPrint ("%s The parameters of the gamma distribution are fixed to \n", spacer); + MrBayesPrint ("%s %1.2lf and %1.2lf\n", spacer, mp->m10gammaFix[0], mp->m10gammaFix[0]); + } + + if (!strcmp(mp->codonCatFreqPr,"Dirichlet")) + MrBayesPrint ("%s Dirichlet(%1.2lf,%1.2lf) on pi(1) and pi(2)\n", spacer, mp->codonCatDir[0], mp->codonCatDir[1]); + else + MrBayesPrint ("%s Fixed(%1.2lf,%1.2lf) on pi(1) and pi(2)\n", spacer, mp->codonCatFreqFix[0], mp->codonCatFreqFix[1]); + } + } + else if (j == P_PI) + { + if (ms->dataType == STANDARD) + { + if (!strcmp(mp->symPiPr, "Uniform")) + MrBayesPrint ("%s Prior = Symmetric dirichlet with uniform(%1.2lf,%1.2lf) variance parameter\n", spacer, mp->symBetaUni[0], mp->symBetaUni[1]); + else if (!strcmp(mp->symPiPr, "Exponential")) + MrBayesPrint ("%s Prior = Symmetric dirichlet with exponential(%1.2lf) variance parameter\n", spacer, mp->symBetaExp); + else + { /* mp->symBetaFix == -1 */ + if (AreDoublesEqual(mp->symBetaFix, -1.0, ETA)==YES) + MrBayesPrint ("%s Prior = Symmetric dirichlet with all parameters equal to infinity\n", spacer); + else + MrBayesPrint ("%s Prior = Symmetric dirichlet with all parameters equal to %1.2lf\n", spacer, mp->symBetaFix); + } + } + else if (ms->dataType == PROTEIN) + { + if (!strcmp(mp->aaModelPr, "Fixed") && (!strcmp(mp->aaModel, "Equalin") || !strcmp(mp->aaModel, "Gtr"))) + { + if (!strcmp(mp->stateFreqPr,"Dirichlet")) + { + MrBayesPrint ("%s Prior = Dirichlet\n", spacer); + } + else if (!strcmp(mp->stateFreqPr,"Fixed") && !strcmp(mp->stateFreqsFixType,"Equal")) + { + MrBayesPrint ("%s Prior = Fixed (equal frequencies)\n", spacer); + } + else if (!strcmp(mp->stateFreqPr,"Fixed") && !strcmp(mp->stateFreqsFixType,"User")) + { + MrBayesPrint ("%s Prior = Fixed (user-specified)\n", spacer); + } + else if (!strcmp(mp->stateFreqPr,"Fixed") && !strcmp(mp->stateFreqsFixType,"Empirical")) + { + MrBayesPrint ("%s Prior = Fixed (empirical frequencies)\n", spacer); + } + } + else if (!strcmp(mp->aaModelPr, "Fixed") && !strcmp(mp->aaModel, "Poisson")) + { + MrBayesPrint ("%s Prior = Fixed (equal frequencies)\n", spacer); + } + else if (!strcmp(mp->aaModelPr, "Fixed") && strcmp(mp->aaModel, "Equalin") && strcmp(mp->aaModel, "Poisson")) + { + MrBayesPrint ("%s Prior = Fixed (%s frequencies)\n", spacer, mp->aaModel); + } + else + { + MrBayesPrint ("%s Prior = Fixed (from mixture of models)\n", spacer); + } + } + else + { + if (!strcmp(mp->stateFreqPr,"Dirichlet")) + MrBayesPrint ("%s Prior = Dirichlet\n", spacer); + else + MrBayesPrint ("%s Prior = Fixed\n", spacer); + } + } + else if (j == P_SHAPE) + { + if (!strcmp(mp->shapePr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->shapeUni[0], mp->shapeUni[1]); + else if (!strcmp(mp->shapePr,"Exponential")) + MrBayesPrint ("%s Prior = Exponential(%1.2lf)\n", spacer, mp->shapeExp); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->shapeFix); + } + else if (j == P_PINVAR) + { + if (!strcmp(mp->pInvarPr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->pInvarUni[0], mp->pInvarUni[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->pInvarFix); + } + else if (j == P_CORREL) + { + if (!strcmp(mp->adGammaCorPr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->corrUni[0], mp->corrUni[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->corrFix); + } + else if (j == P_SWITCH) + { + if (!strcmp(mp->covSwitchPr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->covswitchUni[0], mp->covswitchUni[1]); + else if (!strcmp(mp->covSwitchPr,"Exponential")) + MrBayesPrint ("%s Prior = Exponential(%1.2lf)\n", spacer, mp->covswitchExp); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf,%1.2lf)\n", spacer, mp->covswitchFix[0], mp->covswitchFix[1]); + } + else if (j == P_RATEMULT) + { + if (!strcmp(mp->ratePr,"Fixed")) + MrBayesPrint ("%s Prior = Fixed(1.0)\n", spacer); + else + { + MrBayesPrint ("%s Prior = Dirichlet(", spacer); + for (d=n=0; dgeneratePr,"Fixed")) + MrBayesPrint ("%s Prior = Fixed(1.0)\n", spacer); + else + { + MrBayesPrint ("%s Prior = Dirichlet(", spacer); + printedCol = (int)(strlen(spacer)) + 25 + 10; + for (n=0; n screenWidth) + { + MrBayesPrint("\n%s ", spacer); + printedCol = (int)(strlen(spacer)) + 25 + 10; + } + if (n == numTrees-2) + MrBayesPrint ("1.00)\n"); + else + MrBayesPrint ("1.00,"); + printedCol += 5; + } + } + } + else if (j == P_TOPOLOGY) + { + if (!strcmp(mp->topologyPr,"Uniform")) + MrBayesPrint ("%s Prior = All topologies equally probable a priori\n", spacer); + else if (!strcmp(mp->topologyPr,"Speciestree")) + MrBayesPrint ("%s Prior = Topology constrained to fold within species tree\n", spacer); + else if (!strcmp(mp->topologyPr,"Constraints")) + MrBayesPrint ("%s Prior = Prior on topologies obeys constraints\n", spacer); + else + MrBayesPrint ("%s Prior = Prior is fixed to the topology of user tree '%s'\n", spacer, + userTree[mp->topologyFix]->name); + } + else if (j == P_BRLENS) + { + if (!strcmp(mp->parsModel, "Yes")) + MrBayesPrint ("%s Prior = Reconstructed using parsimony\n", spacer); + else + { + if (!strcmp(mp->brlensPr,"Unconstrained")) + { + MrBayesPrint ("%s Prior = Unconstrained:%s", spacer, mp->unconstrainedPr); + if (!strcmp(mp->unconstrainedPr, "Uniform")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->brlensUni[0], mp->brlensUni[1]); + else if (!strcmp(mp->unconstrainedPr, "Exponential")) + MrBayesPrint ("(%1.1lf)\n", mp->brlensExp); + else if (!strcmp(mp->unconstrainedPr, "twoExp")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->brlens2Exp[0], mp->brlens2Exp[1]); + else + MrBayesPrint ("(%1.1lf,%1.4lf,%1.1lf,%1.1lf)\n", mp->brlensDir[0], mp->brlensDir[1], mp->brlensDir[2], mp->brlensDir[3]); + } + else if (!strcmp(mp->brlensPr, "Clock")) + { + MrBayesPrint ("%s Prior = Clock:%s\n", spacer, mp->clockPr); + if ((!strcmp(mp->clockPr,"Uniform") || !strcmp(mp->clockPr,"Fossilization")) && !strcmp(mp->nodeAgePr,"Unconstrained")) + { + MrBayesPrint ("%s Tree age has a %s distribution\n", spacer, mp->treeAgePr.name); + } + else if (!strcmp(mp->clockPr, "Birthdeath") && !strcmp(mp->nodeAgePr,"Unconstrained")) + { + MrBayesPrint ("%s Tree age has a Uniform(0,infinity) distribution\n", spacer); + } + if (!strcmp(mp->nodeAgePr,"Calibrated")) + { + b = 0; + for (a=0; aactiveConstraints[a] == YES && nodeCalibration[a].prior != unconstrained) + b++; + } + if (b > 1) + MrBayesPrint ("%s Node depths are constrained by the following age constraints:\n", spacer); + else + MrBayesPrint ("%s Node depths are calibrated by the following age constraint:\n", spacer); + for (a=0; aactiveConstraints[a] == YES && nodeCalibration[a].prior != unconstrained) + { + MrBayesPrint ("%s -- The age of node '%s' is %s\n", spacer, + constraintNames[a], nodeCalibration[a].name); + for (k=0; kclockPr,"Uniform") || !strcmp(mp->clockPr,"Fossilization")) + { + MrBayesPrint ("%s -- Tree age has a %s distribution\n", spacer, mp->treeAgePr.name); + } + else if (!strcmp(mp->clockPr,"Birthdeath")) + { + MrBayesPrint ("%s -- Tree age has a Uniform(0,infinity) distribution\n", spacer); + } + } + } + else + MrBayesPrint ("%s Node ages are not constrained\n", spacer); + } + else + { + assert (!strcmp(mp->brlensPr, "Fixed")); + MrBayesPrint ("%s Prior = Fixed, branch lengths are fixed to the ones of the user tree '%s'\n", spacer, + userTree[mp->topologyFix]->name); + } + } + } + else if (j == P_SPECRATE) + { + if (!strcmp(mp->speciationPr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->speciationUni[0], mp->speciationUni[1]); + else if (!strcmp(mp->speciationPr,"Exponential")) + MrBayesPrint ("%s Prior = Exponential(%1.2lf)\n", spacer, mp->speciationExp); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->speciationFix); + } + else if (j == P_EXTRATE) + { + if (!strcmp(mp->extinctionPr,"Beta")) + MrBayesPrint ("%s Prior = Beta(%1.2lf,%1.2lf)\n", spacer, mp->extinctionBeta[0], mp->extinctionBeta[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->extinctionFix); + } + else if (j == P_FOSLRATE) + { + if (!strcmp(mp->fossilizationPr,"Beta")) + MrBayesPrint ("%s Prior = Beta(%1.2lf,%1.2lf)\n", spacer, mp->fossilizationBeta[0], mp->fossilizationBeta[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->fossilizationFix); + } + else if (j == P_POPSIZE) + { + if (!strcmp(mp->popSizePr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->popSizeUni[0], mp->popSizeUni[1]); + else if (!strcmp(mp->popSizePr,"Lognormal")) + MrBayesPrint ("%s Prior = Lognormal(%1.2lf,%1.2lf)\n", spacer, mp->popSizeLognormal[0], mp->popSizeLognormal[1]); + else if (!strcmp(mp->popSizePr,"Normal")) + MrBayesPrint ("%s Prior = Truncated Normal(%1.2lf,%1.2lf)\n", spacer, mp->popSizeNormal[0], mp->popSizeNormal[1]); + else if (!strcmp(mp->popSizePr,"Gamma")) + MrBayesPrint ("%s Prior = Gamma(%1.2lf,%1.2lf)\n", spacer, mp->popSizeGamma[0], mp->popSizeGamma[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.5lf)\n", spacer, mp->popSizeFix); + if (!strcmp(mp->topologyPr,"Speciestree")) + { + if (!strcmp(mp->popVarPr,"Equal") || !strcmp(mp->popSizePr,"Fixed")) + MrBayesPrint ("%s Population size the same across species tree\n", spacer); + else + MrBayesPrint ("%s Population size varies across branches in species tree\n", spacer); + } + } + else if (j == P_GROWTH) + { + if (!strcmp(mp->growthPr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->growthUni[0], mp->growthUni[1]); + else if (!strcmp(mp->growthPr,"Exponential")) + MrBayesPrint ("%s Prior = Exponential(%1.2lf)\n", spacer, mp->growthExp); + else if (!strcmp(mp->growthPr,"Normal")) + MrBayesPrint ("%s Prior = Normal(%1.2lf,%1.2lf)\n", spacer, mp->growthNorm[0], mp->growthNorm[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->growthFix); + } + else if (j == P_AAMODEL) + { + if (!strcmp(mp->aaModelPr,"Mixed")) + { + /* check to see if you have a uniform prior */ + isSame = YES; + for (a=0; a<9; a++) + for (b=a+1; b<10; b++) + /* mp->aaModelPrProbs[a] != mp->aaModelPrProbs[b] */ + if (AreDoublesEqual(mp->aaModelPrProbs[a], mp->aaModelPrProbs[b], ETA)==FALSE) + isSame = NO; + MrBayesPrint ("%s Prior = Poisson, Jones, Dayhoff, Mtrev, Mtmam, Wag, Rtrev,\n", spacer); + if (isSame == YES) + MrBayesPrint ("%s Cprev, Vt, and Blosum models have equal prior probability\n", spacer); + else + MrBayesPrint ("%s Cprev, Vt, and Blosum models have unequal prior probability\n", spacer); + } + else + MrBayesPrint ("%s Prior = Fixed(%s)\n", spacer, mp->aaModel); + } + else if (j == P_BRCORR) + { + if (!strcmp(mp->brownCorPr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->brownCorrUni[0], mp->brownCorrUni[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->brownCorrFix); + } + else if (j == P_BRSIGMA) + { + if (!strcmp(mp->brownScalesPr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->brownScalesUni[0], mp->brownScalesUni[1]); + else if (!strcmp(mp->brownScalesPr,"Gammamean")) + MrBayesPrint ("%s Prior = Gamma Mean= Var=%1.2lf\n", spacer, mp->brownScalesGammaMean); + else if (!strcmp(mp->brownScalesPr,"Gamma")) + MrBayesPrint ("%s Prior = Gamma Mean=%lf Var=%1.2lf\n", spacer, mp->brownScalesGamma[0], mp->brownScalesGamma[1]); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->brownScalesFix); + } + else if (j == P_CPPRATE) + { + if (!strcmp(mp->cppRatePr,"Exponential")) + MrBayesPrint ("%s Prior = Exponential(%1.2lf)\n", spacer, mp->cppRateExp); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->cppRateFix); + } + else if (j == P_CPPMULTDEV) + { + if (!strcmp(mp->cppMultDevPr,"Fixed")) + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->cppMultDevFix); + } + else if (j == P_CPPEVENTS) + { + MrBayesPrint ("%s Prior = Poisson (%s) [Events]\n", spacer, modelSettings[p->relParts[0]].cppRate->name); + MrBayesPrint ("%s Lognormal (0.00,%1.2lf) [Rate multipliers]\n", spacer, mp->cppMultDevFix); + } + else if (j == P_TK02VAR) + { + if (!strcmp(mp->tk02varPr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->tk02varUni[0], mp->tk02varUni[1]); + else if (!strcmp(mp->tk02varPr,"Exponential")) + MrBayesPrint ("%s Prior = Exponential(%1.2lf)\n", spacer, mp->tk02varExp); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->tk02varFix); + } + else if (j == P_TK02BRANCHRATES) + { + MrBayesPrint ("%s Prior = LogNormal (expectation = r_0, variance = %s * v) \n", spacer, modelSettings[p->relParts[0]].tk02var->name); + MrBayesPrint ("%s [r_0 is beginning rate of branch, v is branch length]\n", spacer); + } + else if (j == P_IGRVAR) + { + if (!strcmp(mp->igrvarPr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->igrvarUni[0], mp->igrvarUni[1]); + else if (!strcmp(mp->igrvarPr,"Exponential")) + MrBayesPrint ("%s Prior = Exponential(%1.2lf)\n", spacer, mp->igrvarExp); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->igrvarFix); + } + else if (j == P_IGRBRANCHRATES) + { + MrBayesPrint ("%s Prior = Gamma (expectation = v, variance = %s * v) \n", spacer, modelSettings[p->relParts[0]].igrvar->name); + MrBayesPrint ("%s [where v is branch length]\n", spacer); + } + else if (j == P_MIXEDVAR) + { + if (!strcmp(mp->mixedvarPr,"Uniform")) + MrBayesPrint ("%s Prior = Uniform(%1.2lf,%1.2lf)\n", spacer, mp->mixedvarUni[0], mp->mixedvarUni[1]); + else if (!strcmp(mp->mixedvarPr,"Exponential")) + MrBayesPrint ("%s Prior = Exponential(%1.2lf)\n", spacer, mp->mixedvarExp); + else + MrBayesPrint ("%s Prior = Fixed(%1.2lf)\n", spacer, mp->mixedvarFix); + } + else if (j == P_MIXEDBRCHRATES) + { + MrBayesPrint ("%s Prior = Mixed TK02 and IGR (variance = %s * v)\n", spacer, modelSettings[p->relParts[0]].mixedvar->name); + MrBayesPrint ("%s [where v is branch length]\n", spacer); + MrBayesPrint ("%s Uniform prior on relaxed clock models [Pr(TK02)=Pr(IGR)=1/2]\n", spacer); + } + else if (j == P_CLOCKRATE) + { + if (!strcmp(mp->clockRatePr,"Normal")) + MrBayesPrint ("%s Prior = Normal(%1.6lf,%1.6lf)\n", spacer, mp->clockRateNormal[0], mp->clockRateNormal[1]); + else if (!strcmp(mp->clockRatePr,"Lognormal")) + MrBayesPrint ("%s Prior = Lognormal(%1.2lf,%1.2lf)\n", spacer, mp->clockRateLognormal[0], mp->clockRateLognormal[1]); + else if (!strcmp(mp->clockRatePr,"Gamma")) + MrBayesPrint ("%s Prior = Gamma(%1.2lf,%1.2lf)\n", spacer, mp->clockRateGamma[0], mp->clockRateGamma[1]); + else if (!strcmp(mp->clockRatePr,"Exponential")) + MrBayesPrint ("%s Prior = Exponential(%1.2lf)\n", spacer, mp->clockRateExp); + else + MrBayesPrint ("%s Prior = Fixed(%1.6lf)\n", spacer, mp->clockRateFix); + if (!strcmp(mp->clockVarPr,"Strict")) + MrBayesPrint ("%s The clock rate is constant (strict clock)\n", spacer); + else if (!strcmp(mp->clockVarPr,"Cpp")) + MrBayesPrint ("%s The clock rate varies according to a CPP model\n", spacer); + else if (!strcmp(mp->clockVarPr,"TK02")) + MrBayesPrint ("%s The clock rate varies according to a Brownian motion model\n", spacer); + else if (!strcmp(mp->clockVarPr,"Igr")) + MrBayesPrint ("%s The clock rate varies according to an independent gamma (white noise) model\n", spacer); + else /* if (!strcmp(mp->clockVarPr,"Mixed")) */ + MrBayesPrint ("%s The clock rate varies according to mixed TK02 and IGR models\n", spacer); + } + else if (j == P_SPECIESTREE) + { + MrBayesPrint ("%s Prior = Uniform on topologies and branch lengths\n", spacer); + } + + /* print partitions */ + if (numCurrentDivisions > 1) + { + if (p->nRelParts == 1) + MrBayesPrint ("%s Partition = %d\n", spacer, p->relParts[0]+1); + else if (p->nRelParts == 2) + { + MrBayesPrint ("%s Partitions = %d and %d\n", spacer, p->relParts[0]+1, p->relParts[1]+1); + } + else if (p->nRelParts == numCurrentDivisions) + { + MrBayesPrint ("%s Partitions = All\n", spacer); + } + else /* if (p->nRelParts > 2) */ + { + MrBayesPrint ("%s Partitions = ", spacer); + for (j=0; jnRelParts; j++) + { + if (j == p->nRelParts - 2) + MrBayesPrint ("%d, and ", p->relParts[j]+1); + else if (j == p->nRelParts - 1) + MrBayesPrint ("%d\n", p->relParts[j]+1); + else + MrBayesPrint ("%d, ", p->relParts[j]+1); + } + } + } + + /* show subparams */ + if (p->nSubParams > 0) + { + if (p->nSubParams == 1) + MrBayesPrint ("%s Subparam. = %s\n", spacer, p->subParams[0]->name); + else + { + printedCol = 0; + for (k=0; knSubParams; k++) + { + if (k == 0) + { + MrBayesPrint ("%s Subparams = %s", spacer, p->subParams[k]->name); + printedCol = (int)(strlen(spacer)) + 25 + (int)(strlen(p->subParams[k]->name)); + } + else if (k == p->nSubParams - 1) + { + if (printedCol + 5 > screenWidth) + MrBayesPrint ("\n%s and ", spacer); + else if (printedCol + (int)(strlen(p->subParams[k]->name)) + 5 > screenWidth) + MrBayesPrint (" and \n%s ", spacer); + else + MrBayesPrint (" and "); + MrBayesPrint ("%s\n", p->subParams[k]->name); + } + else + { + if (printedCol + (int)(strlen(p->subParams[k]->name)) + 2 > screenWidth) + { + MrBayesPrint (", \n%s ", spacer); + printedCol = (int)(strlen(spacer)) + 25; + } + else + { + MrBayesPrint(", "); + printedCol += 2; + } + MrBayesPrint ("%s", p->subParams[k]->name); + printedCol += (int)strlen(p->subParams[k]->name); + } + } + } + } + + /* show used moves */ + if (showMoves == YES && (p->printParam == YES || p->paramType == P_TOPOLOGY || p->paramType == P_BRLENS)) + { + /* check if runs are same */ + areRunsSame = YES; + for (run=1; runparm != p) + continue; + chainIndex = run*chainParams.numChains + chain; + refIndex = chain; + if (AreDoublesEqual (mv->relProposalProb[chainIndex], mv->relProposalProb[refIndex], 0.000001) == NO) + areRunsSame = NO; + } + } + } + + for (run=0; run 0 && areRunsSame == YES) + continue; + + /* check if chains are same */ + areChainsSame = YES; + for (chain=1; chainparm != p) + continue; + chainIndex = run*chainParams.numChains + chain; + refIndex = run*chainParams.numChains; + if (AreDoublesEqual (mv->relProposalProb[chainIndex], mv->relProposalProb[refIndex], 0.000001) == NO) + areChainsSame = NO; + } + } + + /* now print moves */ + for (chain=0; chain 0 && areChainsSame == YES) + continue; + if (run==0 && chain==0) + MrBayesPrint ("%s Moves = ", spacer); + else + MrBayesPrint ("%s ", spacer); + numPrinted = 0; + printedCol = (int)(strlen(spacer)) + 25; + for (k=0; kparm != p) + continue; + chainIndex = run*chainParams.numChains + chain; + if (mv->relProposalProb[chainIndex] <= 0.000001) + continue; + if (numPrinted == 0) + { + MrBayesPrint ("%s ", mv->name, mv->relProposalProb[chainIndex]); + printedCol += 9 + (int)strlen(mv->name) + (int)(log10(mv->relProposalProb[chainIndex])) + 3; + } + else + { + if (printedCol + 11 + (int)(strlen(mv->name)) + (int)(log10(mv->relProposalProb[chainIndex])) + 3 > screenWidth) + { + MrBayesPrint(", \n%s ", spacer); + printedCol = 25 + (int)(strlen(spacer)); + } + else + { + MrBayesPrint(", "); + printedCol += 2; + } + MrBayesPrint ("%s ", mv->name, mv->relProposalProb[chainIndex]); + printedCol += (9 + (int)(strlen(mv->name)) + (int)(log10(mv->relProposalProb[chainIndex])) + 3); + } + numPrinted++; + } + + if (numPrinted == 0 && p->paramType == P_BRLENS) + { + for (k=0; ktree) + break; + MrBayesPrint ("For moves, see param. '%s'", params[k].name); + } + else if (numPrinted == 0) + MrBayesPrint ("WARNING! No moves -- param. fixed to startvals"); + + if (areRunsSame == YES && areChainsSame == YES) + MrBayesPrint ("\n"); + else if (areRunsSame == YES && areChainsSame == NO) + MrBayesPrint (" [chain %d]\n", chain+1); + else if (areRunsSame == NO && areChainsSame == YES) + MrBayesPrint (" [run %d]\n", run+1); + else /* if (areRunsSame == NO && areChainsSame == NO) */ + MrBayesPrint (" [run %d, chain %d]\n", run+1, chain+1); + } + } + } + + /* show available moves */ + if (showAllAvailable == YES && (p->printParam == YES || p->paramType == P_TOPOLOGY || p->paramType == P_BRLENS)) + { + /* loop over moves */ + numPrinted = 0; + printedCol = 0; + for (k=0; kparm != p) + continue; + numMovedChains = 0; + for (run=0; runrelProposalProb[chainIndex] > 0.000001) + numMovedChains++; + } + } + if (numMovedChains == 0) + { + if (numPrinted == 0) + { + MrBayesPrint ("%s Not used = ", spacer); + printedCol = (int)(strlen(spacer)) + 25; + } + else if (printedCol + 2 + (int)(strlen(mv->moveType->shortName)) > screenWidth) + { + MrBayesPrint (", \n%s ", spacer); + printedCol = (int)(strlen(spacer)) + 25; + } + else + { + MrBayesPrint (", "); + printedCol += 2; + } + MrBayesPrint("%s", mv->moveType->shortName); + printedCol += (int)strlen(mv->moveType->shortName); + numPrinted++; + } + } + if (numPrinted > 0) + MrBayesPrint ("\n"); + } + + /* show startvals */ + if (showStartVals == YES && (p->printParam == YES || p->paramType == P_TOPOLOGY || p->paramType == P_BRLENS || p->paramType == P_SPECIESTREE || p->paramType == P_POPSIZE)) + { + if (p->paramType == P_TOPOLOGY || p->paramType == P_BRLENS || p->paramType == P_SPECIESTREE) + { + /* check if they are the same */ + areRunsSame = YES; + if (p->paramType == P_TOPOLOGY) + { + for (run=1; runparamType == P_BRLENS) + { + for (run=1; runparamType == P_SPECIESTREE) + { + for (run=1; run 0 && areRunsSame == YES) + break; + for (chain=0; chainname); + else + MrBayesPrint ("%s tree '%s'", spacer, GetTree (p, run*chainParams.numChains+chain, 0)->name); + if (chainParams.numChains > 1 && areRunsSame == YES) + MrBayesPrint (" [chain %d]", chain+1); + else if (chainParams.numChains == 1 && areRunsSame == NO) + MrBayesPrint (" [run %d]", run+1); + else if (areRunsSame == NO) + MrBayesPrint (" [run %d, chain %d]", run+1, chain+1); + MrBayesPrint ("\n"); + } + } + } /* end topology and brlens parameters */ + + else if (p->paramType == P_OMEGA && p->paramId != OMEGA_DIR && p->paramId != OMEGA_FIX && + p->paramId != OMEGA_FFF && p->paramId != OMEGA_FF && p->paramId != OMEGA_10FFF) + { + /* we need to print values and subvalues for the category frequencies in a NY98-like model. */ + areRunsSame = YES; + for (run=1; runnValues; + for (k=0; krelParts[0]].omegaVar, "M10")) + { + value += (mp->numM10BetaCats + mp->numM10GammaCats); + refValue += (mp->numM10BetaCats + mp->numM10GammaCats); + for (k=0; k<4; k++) + { + if (AreDoublesEqual (value[k + 4], refValue[k + 4], 0.000001) == NO) + { + areRunsSame = NO; + break; + } + } + for (k=0; k<2; k++) + { + if (AreDoublesEqual (value[k], refValue[k], 0.000001) == NO) + { + areRunsSame = NO; + break; + } + } + } + else + { + for (k=0; k<3; k++) + { + if (AreDoublesEqual (value[k], refValue[k], 0.000001) == NO) + { + areRunsSame = NO; + break; + } + } + } + if (areRunsSame == NO) + break; + } + if (areRunsSame == NO) + break; + } + + /* now print values */ + for (run=0; runnValues; + if (run == 0 && chain == 0) + MrBayesPrint ("%s Startvals = (%1.3lf", spacer, value[0]); + else + MrBayesPrint ("%s (%1.3lf", spacer, value[0]); + for (k=1; krelParts[0]].omegaVar, "M10")) + { + for (k=0; k<4; k++) + { + MrBayesPrint (",%1.3lf", subValue[k + mp->numM10BetaCats+mp->numM10GammaCats+4]); + } + for (k=0; k<2; k++) + { + MrBayesPrint (",%1.3lf", subValue[k + mp->numM10BetaCats+mp->numM10GammaCats]); + } + } + else + { + for (k=0; k<3; k++) + { + MrBayesPrint (",%1.3lf", subValue[k]); + } + } + MrBayesPrint (")"); + if (chainParams.numChains > 1 && areRunsSame == YES) + MrBayesPrint (" [chain %d]\n", chain+1); + else if (chainParams.numChains == 1 && areRunsSame == NO) + MrBayesPrint (" [run %d]\n", run+1); + else if (areRunsSame == NO) + MrBayesPrint (" [run %d, chain %d]\n", run+1, chain+1); + } + } + } + else + { + /* run of the mill parameter */ + if (p->paramType == P_CLOCKRATE) + { + for (j=0; jparamType == P_PI && modelParams[p->relParts[0]].dataType != STANDARD)) + { + nValues = p->nSubValues; + value = GetParamSubVals (p, run*chainParams.numChains+chain, 0); + refValue = GetParamSubVals (p, chain, 0); + } + else + { + nValues = p->nValues; + value = GetParamVals (p, run*chainParams.numChains+chain, 0); + refValue = GetParamVals (p, chain, 0); + } + for (k=0; k 0 && areRunsSame == YES) + break; + areChainsSame = YES; + for (chain=1; chainparamType == P_PI && modelParams[p->relParts[0]].dataType != STANDARD)) + { + nValues = p->nSubValues; + value = GetParamSubVals (p, run*chainParams.numChains+chain, 0); + refValue = GetParamSubVals (p, run*chainParams.numChains, 0); + } + else + { + nValues = p->nValues; + value = GetParamVals (p, run*chainParams.numChains+chain, 0); + refValue = GetParamVals (p, run*chainParams.numChains, 0); + } + for (k=0; k 0) + continue; + + if ((p->paramType == P_PI && modelParams[p->relParts[0]].dataType != STANDARD)) + { + nValues = p->nSubValues; + value = GetParamSubVals (p, run*chainParams.numChains+chain, 0); + } + else + { + nValues = p->nValues; + value = GetParamVals (p, run*chainParams.numChains+chain, 0); + } + + if (run == 0 && chain == 0) + MrBayesPrint ("%s Startvals = (%1.3lf", spacer, value[0]); + else + MrBayesPrint ("%s (%1.3lf", spacer, value[0]); + + for (k=1; kisCalibrated == NO) + continue; + + if (clockRatep == NULL) + { + clockRatep = GetParamVals(modelSettings[t->relParts[0]].clockRate, chain, 0); + t_calibrated = t; + assert (clockRatep); + } + + findAllowedClockrate (t, &mintmp, &maxtmp); + + if (minClockRate < mintmp) + minClockRate = mintmp; + + if (maxClockRate > maxtmp) + maxClockRate = maxtmp; + + } + /* clock rate is the same for all trees of a given chain */ + if (clockRatep != NULL) + { + if (minClockRate > maxClockRate) + { + MrBayesPrint ("%s ERROR: Calibrated trees require compatible clockrates but they are incompatible for run %d, chain %d.\n", + spacer, chain/chainParams.numChains + 1, chain%chainParams.numChains + 1); + *clockRatep=0; + return (ERROR); + } + + if (!strcmp(modelParams[t_calibrated->relParts[0]].clockRatePr, "Fixed")) + { + if (clockRate < 0.0 && AreDoublesEqual (*clockRatep, modelParams[t_calibrated->relParts[0]].clockRateFix, 0.0001) == YES) + { + updateTrees = NO; + } + else + { + updateTrees = YES; + } + *clockRatep = modelParams[t_calibrated->relParts[0]].clockRateFix; + if ((*clockRatep < minClockRate && AreDoublesEqual (*clockRatep, minClockRate, 0.0001) == NO) || + (*clockRatep > maxClockRate && AreDoublesEqual (*clockRatep, maxClockRate, 0.0001) == NO)) + { + MrBayesPrint ("%s ERROR: Calibrated trees require clockrate in range from %f to %f, while clockrate prior is fixed to %f for run %d chain %d.\n", + spacer, minClockRate, maxClockRate, *clockRatep, chain/chainParams.numChains + 1, chain%chainParams.numChains + 1); + *clockRatep=0; + return (ERROR); + } + if (clockRate > 0.0) + { + if (AreDoublesEqual (*clockRatep, clockRate, 0.0001) == NO) + { + MrBayesPrint ("%s ERROR: Requested clockrate:%f does not match fixed clockrate prior:%f.\n", spacer, clockRate, *clockRatep); + *clockRatep=0; + return (ERROR); + } + } + } + else { + /* clock prior is not fixed */ + updateTrees = YES; + if (clockRate > 0.0) + { + *clockRatep = clockRate; + if ((*clockRatep < minClockRate && AreDoublesEqual (*clockRatep, minClockRate, 0.0001) == NO) || + (*clockRatep > maxClockRate && AreDoublesEqual (*clockRatep, maxClockRate, 0.0001) == NO)) + { + MrBayesPrint ("%s ERROR: Calibrated trees require clockrate in range from %f to %f, while requested clockrate is %f for run %d chain %d.\n", + spacer, minClockRate, maxClockRate, clockRate, chain/chainParams.numChains + 1, chain%chainParams.numChains + 1); + *clockRatep=0; + return (ERROR); + } + } + else if (clockRate == 0.0) + { + if ((*clockRatep < minClockRate && AreDoublesEqual (*clockRatep, minClockRate, 0.0001) == NO) || + (*clockRatep > maxClockRate && AreDoublesEqual (*clockRatep, maxClockRate, 0.0001) == NO)) + { + *clockRatep = minClockRate; + } + } + else // if (clockRate < 0.0) + { + if ((*clockRatep < minClockRate && AreDoublesEqual (*clockRatep, minClockRate, 0.0001) == NO) || + (*clockRatep > maxClockRate && AreDoublesEqual (*clockRatep, maxClockRate, 0.0001) == NO)) + { + *clockRatep = minClockRate; + } + else + { + updateTrees = NO; + } + } + } + + + if (updateTrees == YES) + { + for (i=0; iisCalibrated == NO) + continue; + UpdateTreeWithClockrate (t,*clockRatep); + } + } + } + + return (NO_ERROR); +} + + +/*---------------------------------------------- +| +| UpdateCppEvolLength: Recursive function to +| update evolLength of one node for Cpp +| relaxed clock model +| +-----------------------------------------------*/ +int UpdateCppEvolLength (int *nEvents, MrBFlt **pos, MrBFlt **rateMult, MrBFlt *evolLength, TreeNode *p, MrBFlt baseRate) +{ + int i; + MrBFlt endRate; + + if (p != NULL) + { +# ifdef DEBUG_CPP + if (baseRate < POS_MIN || baseRate > POS_INFINITY) + { + printf ("baseRate out of bounds (%.15e for node %d\n", baseRate, p->index); + return (ERROR); + } +# endif + p->upDateTi = YES; + p->upDateCl = YES; + if (nEvents[p->index] == 0) + { + evolLength[p->index] = p->length * baseRate; + } + else + { + /* note that event positions are from the top of the branch (more recent) + to the bottom of the branch (older) */ + /* The algorithm below successively multiplies in the more basal rate multipliers, + starting from the top of the branch. The length of the branch is first assumed + to be 1.0; at the end we multiply the result with the true length of the branch. */ + evolLength[p->index] = pos[p->index][0] * rateMult[p->index][0]; + for (i=1; iindex]; i++) + { + evolLength[p->index] += (pos[p->index][i] - pos[p->index][i-1]); + evolLength[p->index] *= rateMult[p->index][i]; + } + evolLength[p->index] += (1.0 - pos[p->index][nEvents[p->index]-1]); + evolLength[p->index] *= baseRate; + evolLength[p->index] *= p->length; + } + + /* calculate end rate; we can do this in any order */ + endRate = baseRate; + for (i=0; iindex]; i++) + endRate *= rateMult[p->index][i]; + +# ifdef DEBUG_CPP + if (endRate < POS_MIN || endRate > POS_INFINITY) + { + printf ("endRate out of bounds (%.15e for node %d)\n", endRate, p->index); + return (ERROR); + } + if (p->anc != NULL && p->anc->anc != NULL && (evolLength[p->index] < POS_MIN || evolLength[p->index] > POS_INFINITY)) + { + printf ("Effective branch length out of bounds (%.15e for node %d)\n", evolLength[p->index], p->index); + return (ERROR); + } +# endif + /* call left and right descendants */ + if (UpdateCppEvolLength (nEvents, pos, rateMult, evolLength, p->left, endRate)==ERROR) + return (ERROR); + if (UpdateCppEvolLength (nEvents, pos, rateMult, evolLength, p->right, endRate)==ERROR) + return (ERROR); + } + + return (NO_ERROR); +} + + +/*------------------------------------------------- + | + | UpdateCppEvolLengths: Recalculate effective + | evolutionary lengths and set update flags + | for Cpp relaxed clock model + | + --------------------------------------------------*/ +int UpdateCppEvolLengths (Param *param, TreeNode *p, int chain) +{ + int i, *nEvents; + TreeNode *q; + MrBFlt baseRate = 1.0, **pos, **rateMult, *evolLength; + + i = 2*chain + state[chain]; + nEvents = param->nEvents[i]; + pos = param->position[i]; + rateMult = param->rateMult[i]; + evolLength = GetParamSubVals (param, chain, state[chain]); + + q = p->anc; + while (q->anc != NULL) + { + for (i=0; iindex]; i++) + baseRate *= rateMult[q->index][i]; + q = q->anc; + } + + if (UpdateCppEvolLength (nEvents, pos, rateMult, evolLength, p, baseRate)==ERROR) + return (ERROR); + + return(NO_ERROR); +} + + +/* UpdateTK02EvolLengths: update branch lengths for tk02 model */ +int UpdateTK02EvolLengths (Param *param, Tree *t, int chain) +{ + int i; + MrBFlt *tk02Rate, *brlens; + TreeNode *p; + + tk02Rate = GetParamVals (param, chain, state[chain]); + brlens = GetParamSubVals (param, chain, state[chain]); + for (i=0; inNodes-2; i++) + { + p = t->allDownPass[i]; + brlens[p->index] = p->length * (tk02Rate[p->index] + tk02Rate[p->anc->index]) / 2.0; + } + + return (NO_ERROR); +} + + +/* UpdateIgrBranchLengths: update branch lengths for igr model */ +int UpdateIgrBrachLengths (Param *param, Tree *t, int chain) +{ + int i; + MrBFlt *igrRate, *brlens; + TreeNode *p; + + igrRate = GetParamVals (param, chain, state[chain]); + brlens = GetParamSubVals (param, chain, state[chain]); + for (i=0; inNodes-2; i++) + { + p = t->allDownPass[i]; + brlens[p->index] = p->length * igrRate[p->index]; + } + + return (NO_ERROR); +} + diff --git a/src/model.h b/src/model.h new file mode 100644 index 0000000..934e634 --- /dev/null +++ b/src/model.h @@ -0,0 +1,60 @@ +#ifndef __MODEL_H__ +#define __MODEL_H__ + +int AreDoublesEqual (MrBFlt x, MrBFlt y, MrBFlt tol); +int ChangeNumRuns (int from, int to); +int ChangeNumChains (int from, int to); +int CheckModel (void); +int DoesTreeSatisfyConstraints (Tree *t); +int DoLink (void); +int DoLinkParm (char *parmName, char *tkn); +int DoLset (void); +int DoLsetParm (char *parmName, char *tkn); +int DoPlot (void); +int DoPlotParm (char *parmName, char *tkn); +int DoPropset (void); +int DoPropsetParm (char *parmName, char *tkn); +int DoPrset (void); +int DoPrsetParm (char *parmName, char *tkn); +int DoQuit (void); +int DoReport (void); +int DoReportParm (char *parmName, char *tkn); +int DoShowMcmcTrees (void); +int DoShowModel (void); +int DoShowMoves (void); +int DoShowmovesParm (char *parmName, char *tkn); +int DoShowParams (void); +int DoStartvals (void); +int DoStartvalsParm (char *parmName, char *tkn); +int DoUnlink (void); +int FillNormalParams (RandLong *seed, int fromChain, int toChain); +int FillRelPartsString (Param *p, char **relPartString); +void FillStdStateFreqs (int chfrom, int chto, RandLong *seed); +int FillTopologySubParams (Param *param, int chn, int state, RandLong *seed); +int FillTreeParams (RandLong *seed, int fromChain, int toChain); +int FreeModel (void); +int GetEmpiricalFreqs (int *relParts, int nRelParts); +int GetNumDivisionChars (void); +int *GetParamIntVals (Param *parm, int chain, int state); +MrBFlt *GetParamStdStateFreqs (Param *parm, int chain, int state); +MrBFlt *GetParamSubVals (Param *parm, int chain, int state); +MrBFlt *GetParamVals (Param *parm, int chain, int state); +Tree *GetTree (Param *parm, int chain, int state); +Tree *GetTreeFromIndex (int index, int chain, int state); +int InitializeLinks (void); +int InitializeTreeCalibrations (Tree *t); +int Link (void); +int SetAARates (void); +int SetLocalTaxa (void); +int SetModelDefaults (void); +int SetMoves (void); +int SetUpAnalysis (RandLong *seed); +void SetUpMoveTypes (void); +int ShowModel (void); +int Unlink (void); +int UpdateClockRate (MrBFlt clockRate, int chain); +int UpdateCppEvolLengths (Param *param, TreeNode *p, int chain); +int UpdateTK02EvolLengths (Param *param, Tree *t, int chain); +int UpdateIgrBrachLengths (Param *param, Tree *t, int chain); + +#endif /* __MODEL_H__ */ diff --git a/src/proposal.c b/src/proposal.c new file mode 100644 index 0000000..ac1218c --- /dev/null +++ b/src/proposal.c @@ -0,0 +1,15022 @@ +/* + * MrBayes 3 + * + * (c) 2002-2013 + * + * John P. Huelsenbeck + * Dept. Integrative Biology + * University of California, Berkeley + * Berkeley, CA 94720-3140 + * johnh@berkeley.edu + * + * Fredrik Ronquist + * Swedish Museum of Natural History + * Box 50007 + * SE-10405 Stockholm, SWEDEN + * fredrik.ronquist@nrm.se + * + * With important contributions by + * + * Paul van der Mark (paulvdm@sc.fsu.edu) + * Maxim Teslenko (maxim.teslenko@nrm.se) + * + * and by many users (run 'acknowledgments' to see more info) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details (www.gnu.org). + * + */ + +#include "bayes.h" +#include "best.h" +#include "command.h" +#include "mcmc.h" +#include "model.h" +#include "proposal.h" +#include "utils.h" + +const char* const svnRevisionProposalC = "$Rev: 1069 $"; /* Revision keyword which is expanded/updated by svn on each commit/update */ + +/* debugging compiler statements */ +#undef DEBUG_LOCAL +#undef DEBUG_UNROOTED_SLIDER +#undef DEBUG_ParsSPR +#undef DEBUG_ExtSS +#undef DEBUG_CSLIDER +#undef DEBUG_ExtSPRClock +#undef DEBUG_ParsSPRClock +#undef DEBUG_ExtTBR +#undef DEBUG_NNIClock +#undef DEBUG_SPLITMERGE +#undef DEBUG_FBDPR + + +extern int *chainId; + +void TouchAllTreeNodes (ModelInfo *m, int chain); + + +int Move_Aamodel (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change amino acid model for model mixing + amino acid model ID's + AAMODEL_POISSON 0 + AAMODEL_JONES 1 + AAMODEL_DAY 2 + AAMODEL_MTREV 3 + AAMODEL_MTMAM 4 + AAMODEL_WAG 5 + AAMODEL_RTREV 6 + AAMODEL_CPREV 7 + AAMODEL_VT 8 + AAMODEL_BLOSUM 9 */ + + int i, oldM, newM; + MrBFlt *bs, *subValue; + ModelParams *mp; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + subValue = GetParamSubVals(param, chain, state[chain]); + + /* get old value of model */ + newM = oldM = (int)*GetParamVals(param, chain, state[chain]); + + /* get a new model ID */ + do + { + newM = (int)(RandomNumber(seed) * 10); + } while (newM == oldM); + + /* set proposal ratio */ + *lnProposalRatio = 0.0; + + /* set prior ratio */ + *lnPriorRatio = subValue[newM] - subValue[oldM]; + + /* copy new amino acid model ID back */ + *GetParamVals(param, chain, state[chain]) = (MrBFlt)newM; + + /* set amino acid frequencies */ + bs = GetParamSubVals (modelSettings[param->relParts[0]].stateFreq, chain, state[chain]); + if (newM == AAMODEL_POISSON) + { + for (i=0; inStates; i++) + bs[i] = 1.0 / 20.0; + } + else if (newM == AAMODEL_JONES) + { + for (i=0; inStates; i++) + bs[i] = jonesPi[i]; + } + else if (newM == AAMODEL_DAY) + { + for (i=0; inStates; i++) + bs[i] = dayhoffPi[i]; + } + else if (newM == AAMODEL_MTREV) + { + for (i=0; inStates; i++) + bs[i] = mtrev24Pi[i]; + } + else if (newM == AAMODEL_MTMAM) + { + for (i=0; inStates; i++) + bs[i] = mtmamPi[i]; + } + else if (newM == AAMODEL_WAG) + { + for (i=0; inStates; i++) + bs[i] = wagPi[i]; + } + else if (newM == AAMODEL_RTREV) + { + for (i=0; inStates; i++) + bs[i] = rtrevPi[i]; + } + else if (newM == AAMODEL_CPREV) + { + for (i=0; inStates; i++) + bs[i] = cprevPi[i]; + } + else if (newM == AAMODEL_VT) + { + for (i=0; inStates; i++) + bs[i] = vtPi[i]; + } + else if (newM == AAMODEL_BLOSUM) + { + for (i=0; inStates; i++) + bs[i] = blosPi[i]; + } + + /* Set update flags for all partitions that share this amino acid model. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); + MrBayesPrint ("%lf", *mvp); /* just because I am tired of seeing the unused parameter error msg */ +} + + +int Move_AddDeleteCPPEvent (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* add or delete one Poisson process event */ + + int i, k, addEvent, *nEvents, numEvents; + MrBFlt sigma, m, lognormalLnProb, **position, **rateMultiplier, length, pos, rate; + TreeNode *p, *q; + ModelInfo *model; + Tree *t; + + /* get the model settings */ + model = &modelSettings[param->relParts[0]]; + + /* get cpp rate */ + rate = *GetParamVals (model->cppRate, chain, state[chain]); + + /* get sigma of lognormal of rate multipliers */ + sigma = *GetParamVals (model->cppMultDev, chain, state[chain]); + + /* get the cpp event data */ + nEvents = param->nEvents[2*chain+state[chain]]; + position = param->position[2*chain+state[chain]]; + rateMultiplier = param->rateMult[2*chain+state[chain]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* pick a branch */ + do + { + p = t->allDownPass[(int)(RandomNumber(seed) * (t->nNodes -2))]; + } while (p->anc == NULL || (p->anc->anc == NULL)); + + /* get number of events for convenience */ + numEvents = nEvents[p->index]; + + /* add or delete ? */ + addEvent = NO; + if (numEvents == 0) + addEvent = YES; + else if (RandomNumber(seed) < 0.5) + addEvent = YES; + + if (addEvent == NO) + { + /* delete event */ + + /* choose random event */ + k = (int) (RandomNumber(seed) * numEvents); + + /* save multiplier to be deleted */ + m = rateMultiplier[p->index][k]; + + /* rearrange and reduce */ + for (i=k; iindex][i] = position[p->index][i+1]; + rateMultiplier[p->index][i] = rateMultiplier[p->index][i+1]; + } + if (numEvents-1 > 0) + { + position[p->index] = (MrBFlt *) SafeRealloc ((void *) position[p->index], (numEvents-1)*sizeof(MrBFlt)); + rateMultiplier[p->index] = (MrBFlt *) SafeRealloc ((void *) rateMultiplier[p->index], (numEvents-1)*sizeof(MrBFlt)); + assert (position[p->index] != NULL && rateMultiplier[p->index] != NULL); + } + else + { + free (position[p->index]); + free (rateMultiplier[p->index]); + position[p->index] = rateMultiplier[p->index] = NULL; + } + /* update number of events */ + nEvents[p->index]--; + } + else /* if (addEvent == YES) */ + { + /* add event */ + + /* generate new multiplier */ + m = LogNormalRandomVariable (0.0, sigma, seed); + + /* generate new position */ + pos = RandomNumber(seed); + + /* find place in current array */ + for (k=0; kindex][k] > pos) + break; + } + + /* rearrange and insert */ + position[p->index] = (MrBFlt *) SafeRealloc ((void *)position[p->index], (numEvents+1)*sizeof(MrBFlt)); + rateMultiplier[p->index] = (MrBFlt *) SafeRealloc ((void *)rateMultiplier[p->index], (numEvents+1)*sizeof(MrBFlt)); + assert (position[p->index] != NULL && rateMultiplier[p->index] != NULL); + for (i=numEvents; i>k; i--) + { + position[p->index][i] = position[p->index][i-1]; + rateMultiplier[p->index][i] = rateMultiplier[p->index][i-1]; + } + position[p->index][k] = pos; + rateMultiplier[p->index][k] = m; + + /* update number of events */ + nEvents[p->index]++; + } + + /* the CPP process is relative to expected substitutions */ + length = p->length; + + lognormalLnProb = LnProbLogNormal(0.0, sigma, m); + if (addEvent == YES) + (*lnPriorRatio) = lognormalLnProb + log (rate); + else + (*lnPriorRatio) = -(lognormalLnProb + log(rate)); + + if (addEvent == YES) + /* note that nEvents[p->index] now contains k+1 after addition */ + (*lnProposalRatio) = log (length / ((double) nEvents[p->index])) - lognormalLnProb; + else + /* note that nEvents[p->index] contains k after deletion */ + (*lnProposalRatio) = log ((double)(nEvents[p->index]+1) / length) + lognormalLnProb; + + /* take care of asymmetric add and delete probabilities around 0 and 1 events */ + if (addEvent == YES && nEvents[p->index] == 1) + (*lnProposalRatio) += log (0.5); + else if (addEvent == NO && nEvents[p->index] == 0) + (*lnProposalRatio) += log (2.0); + + /* update evolLengths in subtree above new event */ + if (UpdateCppEvolLengths (param, p, chain)==ERROR) + { + abortMove=YES; + return (NO_ERROR); + } + + /* set update of cond likes down to root */ + /* crown tree update flags set in UpdateCppEvolLengths */ + q = p->anc; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + + return (NO_ERROR); + MrBayesPrint ("%lf", *mvp); /* just because I am tired of seeing the unused parameter error msg */ +} + + +int Move_Adgamma (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change correlation parameter (-1, 1) of adgamma model */ + + int i, isValidP; + MrBFlt oldP, newP, window, minP, maxP, ran, *markovTiValues; + ModelParams *mp; + + /* get size of window, centered on current rho */ + window = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get minimum and maximum values for rho */ + minP = mp->corrUni[0]; + maxP = mp->corrUni[1]; + + /* get address of markovTi */ + markovTiValues = GetParamSubVals (param, chain, state[chain]); + + /* get old value of rho */ + newP = oldP = *GetParamVals(param, chain, state[chain]); + + /* change value for rho */ + ran = RandomNumber(seed); + if (maxP-minP < window) + { + window = maxP-minP; + } + newP = oldP + window * (ran - 0.5); + + /* check that new value is valid */ + isValidP = NO; + do + { + if (newP < minP) + newP = 2* minP - newP; + else if (newP > maxP) + newP = 2 * maxP - newP; + else + isValidP = YES; + } while (isValidP == NO); + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* get prior ratio */ + *lnPriorRatio = 0.0; + + /* copy new rho value back */ + *GetParamVals(param, chain, state[chain]) = newP; + + /* fill in new Markov trans probs */ + AutodGamma (markovTiValues, newP, mp->numGammaCats); + + /* Set update flags for all partitions that share this rho. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Update flags for divisions already set */ + + return (NO_ERROR); +} + + +int Move_Beta (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change symmetric Dirichlet variance using multiplier */ + + int i, j, k, isValidB, isPriorExp, nStates; + MrBFlt oldB, newB, minB, maxB, priorExp=0.0, *bs, ran, factor, tuning, + x, y; + ModelParams *mp; + + /* get tuning parameter */ + tuning = mvp[0]; /* multiplier tuning parameter lambda */ + + /* get model paramaters */ + mp = &modelParams[param->relParts[0]]; + + /* get prior, minimum and maximum values for rate */ + if (!strcmp(mp->symPiPr,"Uniform")) + { + isPriorExp = NO; + minB = mp->symBetaUni[0]; + maxB = mp->symBetaUni[1]; + } + else + { + isPriorExp = YES; + priorExp = mp->symBetaExp; + minB = SYMPI_MIN; + maxB = SYMPI_MAX; + } + + /* get old value of symDir */ + oldB = *GetParamVals(param, chain, state[chain]); + + /* change value */ + ran = RandomNumber(seed); + factor = exp(tuning * (ran - 0.5)); + newB = oldB * factor; + + /* check validity */ + isValidB = NO; + do + { + if (newB < minB) + newB = minB * minB / newB; + else if (newB > maxB) + newB = maxB * maxB / newB; + else + isValidB = YES; + } while (isValidB == NO); + + /* set new value of symDir */ + *GetParamVals(param, chain, state[chain]) = newB; + + /* get proposal ratio */ + *lnProposalRatio = log (newB / oldB); + + /* get prior ratio */ + if (isPriorExp == YES) + { + *lnPriorRatio = priorExp * (oldB - newB); + } + else + *lnPriorRatio = 0.0; + + /* fill in the new betacat frequencies */ + bs = GetParamStdStateFreqs(param, chain, state[chain]); + k = mp->numBetaCats; + BetaBreaks (newB, newB, bs, k); + k *= 2; + for (i=k-2; i>0; i-=2) + { + bs[i] = bs[i/2]; + } + for (i=1; inumBetaCats; + for (i=0; inSympi; i++) + { + /* get number of states */ + nStates = param->sympinStates[i]; + + /* get prior ratio update */ + x = LnGamma(newB*nStates) - nStates*LnGamma(newB); + y = LnGamma(oldB*nStates) - nStates*LnGamma(oldB); + for (j=0; jnRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* may need to hit update flag for cijks if we have multistate characters */ + for (i=0; inRelParts; i++) + { + if (modelSettings[param->relParts[i]].nCijkParts > 0) + modelSettings[param->relParts[i]].upDateCijk = YES; + } + + return (NO_ERROR); +} + + +int Move_BrLen (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change one branch length */ + + MrBFlt tuning, maxV, minV, m, newM, brlensPrExp=0.0; + TreeNode *p; + ModelParams *mp; + Tree *t; + int isVPriorExp; + + tuning = mvp[0]; /* Larget & Simon's tuning parameter lambda */ + + mp = &modelParams[param->relParts[0]]; + + /* max and min brlen */ + if (param->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0]; + maxV = mp->brlensUni[1]; + isVPriorExp = NO; + } + else if (param->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensPrExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + /* pick a branch */ + do { + p = t->allDownPass[(int)(RandomNumber(seed) * t->nNodes)]; + } + while (p->anc == NULL || (t->isRooted == YES && p->anc->anc == NULL)); + + /* determine new length */ + m = p->length; + newM = m * exp(tuning * (RandomNumber(seed) - 0.5)); + + /* reflect new length if necessary */ + while (newM < minV || newM > maxV) + { + if (newM < minV) + newM = minV * minV / newM; + else if (newM > maxV) + newM = maxV * maxV / newM; + } + p->length = newM; + + /* calculate proposal ratio */ + /* must be based on new length after reflection */ + (*lnProposalRatio) = log(newM / m); + + /* set flags for update of transition probabilities at p */ + p->upDateTi = YES; + + /* set the update flag for cond likes if p is connected to root in unrooted */ + /* tree, if this is not done, cond likes are not updated in this case */ + if (t->isRooted == NO && p->anc->anc == NULL) + p->upDateCl = YES; + + /* set flags for update of cond likes from p->anc and down to root */ + while (p->anc->anc != NULL) + { + p = p->anc; + p->upDateCl = YES; + } + + /* update prior if exponential prior on branch lengths */ + if (param->paramId == BRLENS_EXP) + (*lnPriorRatio) = brlensPrExp * (m - newM); + /* Dirichlet or twoExp prior */ + else if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + + return (NO_ERROR); +} + + +int Move_ClockRate_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change clock rate using multiplier */ + + int i, j, k, *nEvents; + MrBFlt oldRate, newRate, factor, lambda, nu, igrvar, *brlens, *igrRate, *tk02Rate, + N, newTheta, oldTheta, growth, newLnPrior, oldLnPrior; + Tree *t, *oldT; + TreeNode *p, *q; + Param *treeParam, *subParm; + ModelParams *mp; + ModelInfo *m; + + /* get old value of clock rate */ + oldRate = *GetParamVals(param, chain, state[chain]); + + /* Rely on general algorithm to change the value */ + Move_PosRealMultiplier(param, chain, seed, lnPriorRatio, lnProposalRatio, mvp); + if (abortMove == YES) + return NO_ERROR; + + /* get new value of clock rate */ + newRate = *GetParamVals(param, chain, state[chain]); + + /* calculate factor */ + factor = newRate / oldRate; + + /* clock rate applies to all clock trees */ + for (i = 0; i < numTrees; i++) + { + t = GetTreeFromIndex(i, chain, state[chain]); + if (t->isClock == NO) + continue; + if (!strcmp(modelParams[t->relParts[0]].clockPr, "Fixed")) + continue; + + oldT = GetTreeFromIndex(i, chain, 1^state[chain]); + treeParam = modelSettings[t->relParts[0]].brlens; + + /* adjust the node depths and lengths */ + for (j = 0; j < t->nNodes-1; j++) + { + p = t->allDownPass[j]; + q = oldT->allDownPass[j]; + p->nodeDepth *= factor; /* no harm done if nodeDepth==0.0 (undated tips) */ + p->length *= factor; /* no harm done if length==0.0 (root or fossil ancestors)*/ + if (p->length < 0.0 || p->length > BRLENS_MAX || + (q->length > BRLENS_MIN && p->length < BRLENS_MIN) || + (q->length < TIME_MIN && p->length > TIME_MIN)) + { /* consider ancestral fossil (brl=0) in fossilized bd tree */ + abortMove = YES; + return (NO_ERROR); + } + } + + /* prior ratio for coalecent tree, as theta is changed */ + mp = &modelParams[t->relParts[0]]; + if (!strcmp(mp->clockPr,"Coalescence")) + { + m = &modelSettings[t->relParts[0]]; + N = *GetParamVals(m->popSize, chain, state[chain]); + if (!strcmp(mp->ploidy, "Diploid")) + N *= 4.0; + else if (!strcmp(mp->ploidy, "Zlinked")) + N *= 3.0; + else + N *= 2.0; + oldTheta = N * oldRate; + newTheta = N * newRate; + if (!strcmp(mp->growthPr, "Fixed")) + growth = mp->growthFix; + else + growth = *GetParamVals(m->growthRate, chain, state[chain]); + + if (LnCoalescencePriorPr (oldT, &oldLnPrior, oldTheta, growth) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for coalescent process\n", spacer); + return (ERROR); + } + if (LnCoalescencePriorPr (t, &newLnPrior, newTheta, growth) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for coalescent process\n", spacer); + return (ERROR); + } + (*lnPriorRatio) += newLnPrior - oldLnPrior; + } + + /* adjust proposal and prior ratio for relaxed clock models */ + for (k = 0; k < treeParam->nSubParams; k++) + { + subParm = treeParam->subParams[k]; + if (subParm->paramType == P_CPPEVENTS) + { + nEvents = subParm->nEvents[2*chain+state[chain]]; + lambda = *GetParamVals (modelSettings[subParm->relParts[0]].cppRate, chain, state[chain]); + /* proposal ratio */ + for (j=0; jnNodes-2; j++) + { + p = t->allDownPass[j]; + q = oldT->allDownPass[j]; + (*lnProposalRatio) += nEvents[p->index ] * log (p->length / q->length); + } + /* prior ratio */ + (*lnPriorRatio) += lambda * (TreeLen(oldT) - TreeLen(t)); + /* update effective evolutionary lengths */ + if (UpdateCppEvolLengths (subParm, t->root->left, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + } + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* no proposal ratio effect */ + + /* prior ratio and update of brlens */ + for (j = 0; j < t->nNodes-2; j++) + { + p = t->allDownPass[j]; + q = oldT->allDownPass[j]; + if (p->length > 0.0) // not ancestral fossil + { + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[q->anc->index], nu*q->length, tk02Rate[q->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[p->anc->index], nu*p->length, tk02Rate[p->index]); + + brlens[p->index] = p->length * (tk02Rate[p->anc->index]+tk02Rate[p->index])/2.0; + } + } + } + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* prior ratio and update of brlens */ + for (j = 0; j < t->nNodes-2; j++) + { + p = t->allDownPass[j]; + q = oldT->allDownPass[j]; + if (p->length > 0.0) // not ancestral fossil + { + (*lnPriorRatio) -= LnProbGamma (q->length/igrvar, q->length/igrvar, igrRate[q->index]); + (*lnPriorRatio) += LnProbGamma (p->length/igrvar, p->length/igrvar, igrRate[p->index]); + + brlens[p->index] = igrRate[p->index] * p->length; + } + } + } + } + } + + return (NO_ERROR); +} + + +int Move_CPPEventPosition (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move the position of one CPP event */ + + int i, j, k, *nEvents; + MrBFlt pos, temp, **position, **rateMultiplier; + TreeNode *p=NULL, *q; + Tree *t; + + /* get the cpp event data */ + nEvents = param->nEvents[2*chain+state[chain]]; + position = param->position[2*chain+state[chain]]; + rateMultiplier = param->rateMult[2*chain+state[chain]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* pick a branch and an event */ + for (i=j=0; inNodes - 2; i++) + { + p = t->allDownPass[i]; + j += nEvents[p->index]; + } + if (j == 0) + { + abortMove = YES; + return (NO_ERROR); + } + k = (int) (RandomNumber(seed) * j); + for (i=j=0; inNodes - 2; i++) + { + p = t->allDownPass[i]; + j += nEvents[p->index]; + if (j > k) + break; + } + if (position[p->index] == NULL) + getchar(); + + /* find local index */ + k = k - (j - nEvents[p->index]); + + /* find new position */ + pos = RandomNumber(seed); + if (pos < POS_MIN || 1.0 - pos < POS_MIN) + { + abortMove = YES; + return (NO_ERROR); + } + position[p->index][k] = pos; + + /* sort events; bubble sort for now */ + for (i=0; iindex]; i++) + { + for (j=i+1; jindex]; j++) + { + if (position[p->index][j] < position[p->index][i]) + { + temp = position[p->index][i]; + position[p->index][i] = position[p->index][j]; + position[p->index][j] = temp; + temp = rateMultiplier[p->index][i]; + rateMultiplier[p->index][i] = rateMultiplier[p->index][j]; + rateMultiplier[p->index][j] = temp; + } + } + } + + /* calculate prior and proposal ratio */ + (*lnPriorRatio) = (*lnProposalRatio) = 0.0; + + /* update branch evolution lengths */ + if (UpdateCppEvolLengths (param, p, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + + /* set update of cond likes down to root */ + /* update of crowntree set in UpdateCppEvolLengths */ + q = p->anc; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + + return (NO_ERROR); + MrBayesPrint ("%lf", *mvp); /* just because I am tired of seeing the unused parameter error msg */ +} + + +int Move_CPPRate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move the CPP rate (lambda) using multiplier */ + + int i, j, *nEvents, sumEvents; + MrBFlt oldLambda, newLambda, treeLength, tuning; + Model *mp; + TreeNode *p; + Tree *t; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get the CPP rate */ + oldLambda = *GetParamVals (param, chain, state[chain]); + + /* set new value */ + newLambda = oldLambda * exp ((0.5 - RandomNumber(seed))*tuning); + + /* reflect if necessary */ + while (newLambda < CPPLAMBDA_MIN || newLambda > CPPLAMBDA_MAX) + { + if (newLambda < CPPLAMBDA_MIN) + newLambda = CPPLAMBDA_MIN * CPPLAMBDA_MIN / newLambda; + if (newLambda > CPPLAMBDA_MAX) + newLambda = CPPLAMBDA_MAX * CPPLAMBDA_MAX / newLambda; + } + + /* store new value */ + (*GetParamVals (param, chain, state[chain])) = newLambda; + + /* calculate prior ratio */ + (*lnPriorRatio) = 0.0; + for (i=0; inSubParams; i++) + { + nEvents = param->subParams[i]->nEvents[2*chain+state[chain]]; + sumEvents = 0; + t = GetTree (param->subParams[i], chain, state[chain]); + treeLength = 0.0; + for (j=0; jnNodes-2; j++) + { + p = t->allDownPass[j]; + sumEvents += nEvents[p->index]; + treeLength += p->length; + } + (*lnPriorRatio) += (oldLambda - newLambda) * treeLength; + (*lnPriorRatio) += sumEvents * log (newLambda / oldLambda); + } + + /* adjust for prior on cppRate */ + if (!strcmp(mp->cppRatePr,"Exponential")) + (*lnPriorRatio) += mp->cppRateExp * (oldLambda - newLambda); + + /* calculate proposal ratio */ + (*lnProposalRatio) = log (newLambda / oldLambda); + + /* we do not need to update likelihoods */ + for (i=0; inRelParts; i++) + { + modelSettings[param->relParts[i]].upDateCl = NO; + } + + return (NO_ERROR); +} + + +int Move_CPPRateMultiplier_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move one CPP rate multiplier using multiplier */ + + int i, j, k, *nEvents; + MrBFlt newRateMultiplier, oldRateMultiplier, tuning, minM, maxM, sigma, **rateMultiplier; + TreeNode *p = NULL; + ModelInfo *m; + Tree *t; + TreeNode *q; + + /* get the tuning parameter */ + tuning = mvp[0]; + + /* get the model settings */ + m = &modelSettings[param->relParts[0]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get CPP event data */ + nEvents = param->nEvents[2*chain+state[chain]]; + rateMultiplier = param->rateMult[2*chain+state[chain]]; + + /* get minimum and maximum of CPP rate multiplier */ + minM = param->min; + maxM = param->max; + + /* pick a branch and a rateMultiplier */ + for (i=j=0; inNodes - 2; i++) + { + p = t->allDownPass[i]; + j += nEvents[p->index]; + } + if (j == 0) + { + abortMove = YES; + return (NO_ERROR); + } + k = (int) (RandomNumber(seed) * j); + for (i=j=0; inNodes - 2; i++) + { + p = t->allDownPass[i]; + j += nEvents[p->index]; + if (j > k) + break; + } + + /* find local index */ + k = nEvents[p->index] - (j - k); + + /* find new rateMultiplier */ + oldRateMultiplier = rateMultiplier[p->index][k]; + newRateMultiplier = oldRateMultiplier * (exp (0.5 - RandomNumber(seed) * tuning)); + + /* reflect if necessary */ + while (newRateMultiplier < minM || newRateMultiplier > maxM) + { + if (newRateMultiplier < minM) + newRateMultiplier = minM * minM / newRateMultiplier; + if (newRateMultiplier > maxM) + newRateMultiplier = maxM * maxM / newRateMultiplier; + } + + rateMultiplier[p->index][k] = newRateMultiplier; + + /* calculate prior ratio */ + sigma = *GetParamVals (m->cppMultDev, chain, state[chain]); + (*lnPriorRatio) = LnRatioLogNormal (0.0, sigma, newRateMultiplier, oldRateMultiplier); + + /* calculate proposal ratio */ + (*lnProposalRatio) = log (newRateMultiplier / oldRateMultiplier); + + /* update branch evolution lengths */ + if (UpdateCppEvolLengths (param, p, chain)==ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + + /* set update of cond likes down to root */ + /* update of crowntree set in UpdateCppEvolLengths */ + q = p->anc; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + + return (NO_ERROR); +} + + +int Move_CPPRateMultiplierRnd (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move one CPP rate multiplier by redrawing from prior */ + + int i, j, k, *nEvents; + MrBFlt sigma, newRateMultiplier, oldRateMultiplier, **rateMultiplier; + TreeNode *p=NULL, *q; + ModelInfo *m; + Tree *t; + + /* get the model settings */ + m = &modelSettings[param->relParts[0]]; + + /* get the CPP event data */ + nEvents = param->nEvents[2*chain+state[chain]]; + rateMultiplier = param->rateMult[2*chain+state[chain]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* pick a branch and a rateMultiplier */ + for (i=j=0; inNodes - 2; i++) + { + p = t->allDownPass[i]; + j += nEvents[p->index]; + } + if (j == 0) + { + abortMove = YES; + return (NO_ERROR); + } + k = (int) (RandomNumber(seed) * j); + for (i=j=0; inNodes - 2; i++) + { + p = t->allDownPass[i]; + j += nEvents[p->index]; + if (j > k) + break; + } + + /* find local index */ + k = nEvents[p->index] - (j - k); + + /* record old rate multiplier */ + oldRateMultiplier = rateMultiplier[p->index][k]; + + /* find stdev of lognormal */ + sigma = *GetParamVals (m->cppMultDev, chain, state[chain]); + + /* set new value */ + do { + newRateMultiplier = LogNormalRandomVariable (0.0, sigma, seed); + } while (newRateMultiplier < param->min || newRateMultiplier > param->max); + rateMultiplier[p->index][k] = newRateMultiplier; + + /* calculate prior ratio */ + (*lnPriorRatio) = LnRatioLogNormal(0.0, sigma, newRateMultiplier, oldRateMultiplier); + + /* calculate proposal ratio */ + (*lnProposalRatio) += LnRatioLogNormal (0.0, sigma, oldRateMultiplier, newRateMultiplier); + + /* update branch evolution lengths */ + if (UpdateCppEvolLengths (param, p, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + + /* set update of cond likes down to root */ + /* update of crowntree set in UpdateCppEvolLengths */ + q = p->anc; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + + return (NO_ERROR); + MrBayesPrint ("%lf", *mvp); /* just because I am tired of seeing the unused parameter error msg */ +} + + +int Move_AddBranch (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Move an ancestral fossil (brl = 0) to fossil tip (brl > 0) + + __|__ __|__ + | | | | + | --> q|___ + | --> | | + q|___p | |p + r| r| + + 1. Pich a fossil among those with brl = 0 (prob = 1/k) + 2. Propose brl from a uniform(0, ?) distribution + */ + + int i, j, k, mFossil, kFossil; + MrBFlt minDepth, maxDepth, newLength, clockRate, x, oldQLength, oldRLength, + *brlens=NULL, nu=0.0, *tk02Rate=NULL, igrvar=0.0, *igrRate=NULL; + TreeNode *p=NULL, *q=NULL, *r; + Tree *t; + ModelParams *mp; + ModelInfo *m; + Param *subParm; + Calibration *calibrationPtr = NULL; + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get number of ancestral and tip fossils */ + kFossil = mFossil = 0; + for (i = 0; i < t->nNodes -1; i++) + { + p = t->allDownPass[i]; + p->marked = NO; // reset marked node + if (p->left == NULL && p->right == NULL && p->nodeDepth > 0.0) + { + if (p->length > 0.0) + { + mFossil++; // count tip fossil + } + else + { + p->marked = YES; // mark anc fossil + kFossil++; // count anc fossil + } + } + } + if (kFossil == 0) // no ancestral fossil, nothing to do + { + abortMove = YES; + return (NO_ERROR); + } + + /* get model params and model info */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get clock rate */ + clockRate = *(GetParamVals(m->clockRate, chain, state[chain])); + + /* pick an ancestral fossil randomly */ + j = (int) (RandomNumber(seed) * kFossil); + for (i = k = 0; i < t->nNodes -1; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES) + k++; + if (k > j) + break; + } + /* now p is pointing to the ancestral fossil + whose brl needs to be changed to >0. let's do it! */ + q = p->anc; + if (q->left == p) + r = q->right; + else + r = q->left; + + /* determine lower and upper bound of forward move, abort if impossible */ + minDepth = p->nodeDepth + BRLENS_MIN; + if (q->anc->anc == NULL) + maxDepth = TREEHEIGHT_MAX; + else + maxDepth = q->anc->nodeDepth - BRLENS_MIN; + + if (q->isDated == YES) + calibrationPtr = q->calibration; + else if (q->anc->anc == NULL) // q is root but not dated + calibrationPtr = &mp->treeAgePr; + + if (calibrationPtr != NULL) + { + if (calibrationPtr->prior == fixed || calibrationPtr->min * clockRate > minDepth) + { + abortMove = YES; + return (NO_ERROR); + } + if (calibrationPtr->max * clockRate < maxDepth) + maxDepth = calibrationPtr->max * clockRate; + } + if (minDepth >= maxDepth) + { + abortMove = YES; + return (NO_ERROR); + } + + /* record old lengths and depths */ + oldQLength = q->length; + oldRLength = r->length; + // oldDepth = q->nodeDepth; + + /* propose the branch length leading to the fossil */ + newLength = (RandomNumber(seed)) * (maxDepth - minDepth); + + /* adjust brls and depths, set flags for update of trans probs */ + p->length = newLength; + p->upDateTi = YES; + q->nodeDepth += newLength; + if (q->anc->anc != NULL) + { + q->length -= newLength; + q->upDateTi = YES; + } + r->length += newLength; + r->upDateTi = YES; + // newDepth = q->nodeDepth; + + /* adjust age of q if dated */ + if (calibrationPtr != NULL) + { + q->age = q->nodeDepth / clockRate; + } + + /* set flags for update of cond likes from p/r to root */ + r->upDateCl = YES; + q = p; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + q = p->anc; + + /* calculate prior ratio */ + if (LogClockTreePriorRatio(param, chain, &x) == ERROR) + return (ERROR); + (*lnPriorRatio) += x; + + /* calculate proposal ratio, need to double check !! */ + (*lnProposalRatio) = log(kFossil) - log(mFossil +1); + // if (mFossil == 0) // current tree has no fossil tips + // (*lnProposalRatio) += log(0.5); + // else if (kFossil == 1) // proposed tree has no ancestral fossils + // (*lnProposalRatio) += log(2.0); + + /* add the Jacobian term */ + (*lnProposalRatio) += log((maxDepth - minDepth) / clockRate); + + /* adjust proposal and prior ratio for relaxed clock models */ + for (i=0; inSubParams; i++) + { + subParm = param->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + /* CPP is not compatible with FBD ancestral fossils until we have a good way to implement it !! */ + MrBayesPrint ("%s CPP clock is not compatible with Fossilization prior currently\n", spacer); + return (ERROR); + } + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* prior ratio */ + tk02Rate[p->index] = tk02Rate[q->index]; + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[q->index], nu*oldRLength, tk02Rate[r->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[q->index], nu* p->length, tk02Rate[p->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[q->index], nu* r->length, tk02Rate[r->index]); + if (q->anc->anc != NULL) + { + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[q->anc->index], nu*oldQLength, tk02Rate[q->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[q->anc->index], nu* q->length, tk02Rate[q->index]); + } + + /* update effective evolutionary lengths */ + brlens[p->index] = p->length * (tk02Rate[p->index]+tk02Rate[q->index])/2.0; + brlens[r->index] = r->length * (tk02Rate[r->index]+tk02Rate[q->index])/2.0; + if (q->anc->anc != NULL) + { + brlens[q->index] = q->length * (tk02Rate[q->index]+tk02Rate[q->anc->index])/2.0; + } + } + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* prior ratio */ + igrRate[p->index] = igrRate[q->index]; + (*lnPriorRatio) -= LnProbGamma (oldRLength/igrvar, oldRLength/igrvar, igrRate[r->index]); + (*lnPriorRatio) += LnProbGamma (p->length /igrvar, p->length /igrvar, igrRate[p->index]); + (*lnPriorRatio) += LnProbGamma (r->length /igrvar, r->length /igrvar, igrRate[r->index]); + if (q->anc->anc != NULL) + { + (*lnPriorRatio) -= LnProbGamma (oldQLength/igrvar, oldQLength/igrvar, igrRate[q->index]); + (*lnPriorRatio) += LnProbGamma (q->length /igrvar, q->length /igrvar, igrRate[q->index]); + } + + /* update effective evolutionary lengths */ + brlens[p->index] = igrRate[p->index] * p->length; + brlens[r->index] = igrRate[r->index] * r->length; + if (q->anc->anc != NULL) + { + brlens[q->index] = igrRate[q->index] * q->length; + } + } + } + + return (NO_ERROR); + MrBayesPrint ("%lf", *mvp); /* just because I am tired of seeing the unused parameter error msg */ +} + + +int Move_DelBranch (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Move a fossil tip (brl > 0) to be ancestral (brl =0) + + __|__ __|__ + | | | | + q|___ --> | + | | --> | + | |p q|___p + r| r| + + 1. Pich a fossil among those with brl > 0 (prob = 1/m) + 2. Set brl = 0 + */ + + int i, j, k, mFossil, kFossil; + MrBFlt minDepth, maxDepth, clockRate, x, oldPLength, oldQLength, oldRLength, + *brlens=NULL, nu=0.0, *tk02Rate=NULL, igrvar=0.0, *igrRate=NULL; + TreeNode *p=NULL, *q=NULL, *r; + Tree *t; + ModelParams *mp; + ModelInfo *m; + Param *subParm; + Calibration *calibrationPtr = NULL; + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get number of ancestral and tip fossils */ + kFossil = mFossil = 0; + for (i = 0; i < t->nNodes -1; i++) + { + p = t->allDownPass[i]; + p->marked = NO; // reset marked node + if (p->left == NULL && p->right == NULL && p->nodeDepth > 0.0) + { + if (p->length > 0.0) + { + p->marked = YES; // mark tip fossil + mFossil++; // count tip fossil + } + else + { + kFossil++; // count anc fossil + } + } + } + if (mFossil == 0) // no tip fossil, nothing to do + { + abortMove = YES; + return (NO_ERROR); + } + + /* get model params and model info */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get clock rate */ + clockRate = *(GetParamVals(m->clockRate, chain, state[chain])); + + /* pick a tip fossil randomly */ + j = (int) (RandomNumber(seed) * mFossil); + for (i = k = 0; i < t->nNodes -1; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES) + k++; + if (k > j) + break; + } + /* now p is pointing to the fossil tip + whose brl needs to be changed to 0. let's do it */ + q = p->anc; + if (q->left == p) + r = q->right; + else + r = q->left; + + /* determine lower and upper bound of backward move, abort if impossible */ + minDepth = p->nodeDepth + BRLENS_MIN; + if (q->anc->anc == NULL) + maxDepth = TREEHEIGHT_MAX; + else + maxDepth = q->anc->nodeDepth - BRLENS_MIN; + + if (q->isDated == YES) + calibrationPtr = q->calibration; + else if (q->anc->anc == NULL) // q is root but not dated + calibrationPtr = &mp->treeAgePr; + + if (calibrationPtr != NULL) + { + if (calibrationPtr->prior == fixed || calibrationPtr->min * clockRate > minDepth) + { + abortMove = YES; + return (NO_ERROR); + } + if (calibrationPtr->max * clockRate < maxDepth) + maxDepth = calibrationPtr->max * clockRate; + } + if (r->nodeDepth > p->nodeDepth -BRLENS_MIN || minDepth >= maxDepth) + { /* the sister node (another fossil) is older than the current fossil */ + abortMove = YES; + return (NO_ERROR); + } + + /* record old lengths and depths */ + oldPLength = p->length; + oldQLength = q->length; + oldRLength = r->length; + // oldDepth = q->nodeDepth; + + /* set the brl to 0 for the fossil tip, it becomes an ancestral fossil */ + /* set flags for update of transition probabilities too */ + q->nodeDepth = p->nodeDepth; + if (q->anc->anc != NULL) + { + q->length += p->length; + q->upDateTi = YES; + } + r->length -= p->length; + r->upDateTi = YES; + p->length = 0.0; + p->upDateTi = YES; + // newDepth = q->nodeDepth; + + /* adjust age of q if dated */ + if (calibrationPtr != NULL) + { + q->age = q->nodeDepth / clockRate; + } + + /* set flags for update of cond likes from p/r to root */ + r->upDateCl = YES; + q = p; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + q = p->anc; + + /* calculate prior ratio */ + if (LogClockTreePriorRatio(param, chain, &x) == ERROR) + return (ERROR); + (*lnPriorRatio) += x; + + /* calculate proposal ratio, need to double check !! */ + (*lnProposalRatio) = log(mFossil) - log(kFossil +1); + // if (kFossil == 0) // current tree has no ancestral fossils + // (*lnProposalRatio) += log(2.0); + // else if (mFossil == 1) // proposed tree has no fossil tips + // (*lnProposalRatio) += log(0.5); + + /* add the Jacobian term */ + (*lnProposalRatio) -= log((maxDepth - minDepth) / clockRate); + + /* adjust proposal and prior ratio for relaxed clock models */ + for (i=0; inSubParams; i++) + { + subParm = param->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + /* CPP is not compatible with FBD ancestral fossils until we have a good way to implement it !! */ + MrBayesPrint ("%s CPP clock is not compatible with Fossilization prior currently\n", spacer); + return (ERROR); + } + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* prior ratio */ + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[q->index], nu*oldPLength, tk02Rate[p->index]); + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[q->index], nu*oldRLength, tk02Rate[r->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[q->index], nu* r->length, tk02Rate[r->index]); + if (q->anc->anc != NULL) + { + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[q->anc->index], nu*oldQLength, tk02Rate[q->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[q->anc->index], nu* q->length, tk02Rate[q->index]); + } + + /* update effective evolutionary lengths */ + brlens[p->index] = 0.0; // tk02Rate[p->index] = tk02Rate[q->index]; + brlens[r->index] = r->length * (tk02Rate[r->index]+tk02Rate[q->index])/2.0; + if (q->anc->anc != NULL) + { + brlens[q->index] = q->length * (tk02Rate[q->index]+tk02Rate[q->anc->index])/2.0; + } + } + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + (*lnPriorRatio) -= LnProbGamma (oldPLength/igrvar, oldPLength/igrvar, igrRate[p->index]); + (*lnPriorRatio) -= LnProbGamma (oldRLength/igrvar, oldRLength/igrvar, igrRate[r->index]); + (*lnPriorRatio) += LnProbGamma (r->length /igrvar, r->length /igrvar, igrRate[r->index]); + if (q->anc->anc != NULL) + { + (*lnPriorRatio) -= LnProbGamma (oldQLength/igrvar, oldQLength/igrvar, igrRate[q->index]); + (*lnPriorRatio) += LnProbGamma (q->length /igrvar, q->length /igrvar, igrRate[q->index]); + } + + /* update effective evolutionary lengths */ + brlens[p->index] = 0.0; // igrRate[p->index] = igrRate[q->index]; + brlens[r->index] = igrRate[r->index] * r->length; + if (q->anc->anc != NULL) + { + brlens[q->index] = igrRate[q->index] * q->length; + } + } + } + + return (NO_ERROR); + MrBayesPrint ("%lf", *mvp); /* just because I am tired of seeing the unused parameter error msg */ +} + + +int Move_Extinction (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change relative extinction rate using sliding window */ + + int i, isValidM, valIndex; + MrBFlt *valPtr, oldM, newM, window, minM, maxM, *sR, *eR, sF, *fR, oldLnPrior, newLnPrior, + oldProp[2], newProp[2], x, y, *alphaDir, clockRate; + char *sS; + ModelParams *mp; + ModelInfo *m; + Tree *t; + + /* get size of window, centered on current value */ + window = mvp[0]; + + /* get model params and settings */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get minimum and maximum values */ + minM = 0.0; + maxM = 0.99999; + + /* get pointer to value to be changed */ + valIndex = (int)(RandomNumber(seed) * param->nValues); + valPtr = GetParamVals(param, chain, state[chain]) + valIndex; + + /* get old value */ + oldM = *valPtr; + + /* change value */ + if (window > maxM-minM) + window = maxM-minM; + newM = oldM + window * (RandomNumber(seed) - 0.5); + + /* check that new value is valid */ + isValidM = NO; + do { + if (newM < minM) + newM = 2 * minM - newM; + else if (newM > maxM) + newM = 2 * maxM - newM; + else + isValidM = YES; + } while (isValidM == NO); + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* calculate prior ratio */ + t = GetTree(modelSettings[param->relParts[0]].brlens,chain,state[chain]); + sR = GetParamVals (m->speciationRates, chain, state[chain]); + eR = GetParamVals (param, chain, state[chain]); + sF = mp->sampleProb; + sS = mp->sampleStrat; + clockRate = *GetParamVals (m->clockRate, chain, state[chain]); + + if (!strcmp(mp->clockPr,"Birthdeath")) + { + if (LnBirthDeathPriorPr (t, clockRate, &oldLnPrior, *sR, *eR, sS, sF) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for birth-death process\n", spacer); + return (ERROR); + } + *valPtr = newM; // update with new value + if (LnBirthDeathPriorPr (t, clockRate, &newLnPrior, *sR, *eR, sS, sF) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for birth-death process\n", spacer); + return (ERROR); + } + } + else if (!strcmp(mp->clockPr,"Fossilization")) + { + fR = GetParamVals (m->fossilizationRates, chain, state[chain]); + if (LnFossilizationPriorPr (t, clockRate, &oldLnPrior, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + return (ERROR); + } + *valPtr = newM; // update with new value + // for (i=0; inValues; i++) *(GetParamVals(param, chain, state[chain]) + i) = newM; + if (LnFossilizationPriorPr (t, clockRate, &newLnPrior, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + return (ERROR); + } + } + else { + MrBayesPrint ("%s Move_Extinction not applicable\n", spacer); + return (ERROR); + } + + /* get proportions */ + oldProp[0] = oldM; + oldProp[1] = 1.0 - oldM; + newProp[0] = newM; + newProp[1] = 1.0 - newM; + + /* adjust prior ratio according to beta distribution */ + alphaDir = mp->extinctionBeta; + x = y = 0.0; + for (i=0; i<2; i++) + x += (alphaDir[i]-1.0)*log(newProp[i]); + for (i=0; i<2; i++) + y += (alphaDir[i]-1.0)*log(oldProp[i]); + (*lnPriorRatio) = x - y + newLnPrior - oldLnPrior; + + return (NO_ERROR); +} + + +int Move_Fossilization (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change fossilization rate using sliding window */ + + int i, isValidM, valIndex; + MrBFlt *valPtr, oldM, newM, window, minM, maxM, *sR, *eR, sF, *fR, oldLnPrior, newLnPrior, + oldProp[2], newProp[2], x, y, *alphaDir, clockRate; + char *sS; + ModelParams *mp; + ModelInfo *m; + Tree *t; + + /* get size of window, centered on current value */ + window = mvp[0]; + + /* get model params and settings */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get minimum and maximum values */ + minM = 0.00001; + maxM = 1.0; + + /* get pointer to value to be changed */ + valIndex = (int)(RandomNumber(seed) * param->nValues); + valPtr = GetParamVals(param, chain, state[chain]) + valIndex; + + /* get old value */ + oldM = *valPtr; + + /* change value */ + if (window > maxM-minM) + window = maxM-minM; + newM = oldM + window * (RandomNumber(seed) - 0.5); + + /* check that new value is valid */ + isValidM = NO; + do { + if (newM < minM) + newM = 2 * minM - newM; + else if (newM > maxM) + newM = 2 * maxM - newM; + else + isValidM = YES; + } while (isValidM == NO); + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* calculate prior ratio */ + t = GetTree(modelSettings[param->relParts[0]].brlens,chain,state[chain]); + sR = GetParamVals (m->speciationRates, chain, state[chain]); + eR = GetParamVals (m->extinctionRates, chain, state[chain]); + fR = GetParamVals (param, chain, state[chain]); + sF = mp->sampleProb; + sS = mp->sampleStrat; + clockRate = *GetParamVals(m->clockRate, chain, state[chain]); + + if (LnFossilizationPriorPr (t, clockRate, &oldLnPrior, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + return (ERROR); + } + *valPtr = newM; // update with new value + if (LnFossilizationPriorPr (t, clockRate, &newLnPrior, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + return (ERROR); + } + + /* get proportions */ + oldProp[0] = oldM; + oldProp[1] = 1.0 - oldM; + newProp[0] = newM; + newProp[1] = 1.0 - newM; + + /* adjust prior ratio according to beta distribution */ + alphaDir = mp->fossilizationBeta; + x = y = 0.0; + for (i=0; i<2; i++) + x += (alphaDir[i]-1.0)*log(newProp[i]); + for (i=0; i<2; i++) + y += (alphaDir[i]-1.0)*log(oldProp[i]); + (*lnPriorRatio) = x - y + newLnPrior - oldLnPrior; + + return (NO_ERROR); +} + + +int Move_ExtSPR (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change topology (and branch lengths) using SPR (unrooted) with extension probability. + Pick either external or internal branches instead of just internal branches. */ + + int i, j, topologyHasChanged, nCrownNodes, nRootNodes, directionLeft, directionUp, + isVPriorExp, moveInRoot, isStartConstrained, isStopConstrained; + MrBFlt m, x, y, tuning, maxV, minV, extensionProb, brlensExp=0.0; + TreeNode *p, *q, *a, *b, *c, *d, *u, *v; + Tree *t; + ModelParams *mp; + + /* these parameters should be possible to set by user */ + extensionProb = mvp[0]; /* extension probability */ + tuning = mvp[1]; /* Larget & Simon's tuning parameter lambda */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1] < BRLENS_MAX ? mp->brlensUni[1] : BRLENS_MAX; + isVPriorExp = NO; + } + else if (param->subParams[0]->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->subParams[0]->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->subParams[0]->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else /* (param->subParams[0]->paramId == BRLENS_EXP) */ + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + topologyHasChanged = NO; + +# if defined (DEBUG_ExtSPR) + printf ("Before:\n"); + ShowNodes (t->root, 2, NO); + getchar(); +# endif + + /* pick a random branch */ + do { + p = t->allDownPass[(int)(RandomNumber(seed) * (t->nNodes -1))]; + q = p->anc->right; if (q == p) q = p->anc->left; + i = j = 0; + if (p->left == NULL) + j = 2; + if (p->anc->anc == NULL) + i = 2; + if (p->anc->anc != NULL && (p->anc->isLocked == YES || p->anc->anc->anc == NULL)) + i++; + if (p->anc->anc != NULL && (q->isLocked == YES || q->left == NULL)) + i++; + if (p->left != NULL && (p->left->isLocked == YES || p->left->left == NULL)) + j++; + if (p->left != NULL && (p->right->isLocked == YES || p->right->left == NULL)) + j++; + } while (i == 2 && j == 2); + + /* change in root tree ? */ + if (j == 2) + moveInRoot = YES; + else if (i == 2) + moveInRoot = NO; + else if (RandomNumber(seed) < 0.5) + moveInRoot = YES; + else + moveInRoot = NO; + + /* determine whether start is constrained on backward move */ + isStartConstrained = isStopConstrained = NO; + if (moveInRoot == YES && i == 1) + isStartConstrained = YES; + else if (moveInRoot == NO && j == 1) + isStartConstrained = YES; + + /* set up pointers for nodes around the picked branch */ + /* cut the tree into crown, root and attachment part */ + /* change the relevant lengths in the attachment part */ + v = p; + u = p->anc; + + /* modify length of middle branch */ + m = v->length; + x = m * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + v->length = x; + v->upDateTi = YES; + + /* update proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / m); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (m - x); + + /* move around in root subtree */ + nRootNodes = 0; + if (moveInRoot == YES) + { + /* mark nodes in root part */ + /* also determine direction of move in root part */ + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + if (u->anc->anc == NULL || u->isLocked == YES) + directionUp = YES; + else if (a->left == NULL || a->isLocked == YES) + directionUp = NO; + else if (RandomNumber(seed) < 0.5) + directionUp = YES; + else + directionUp = NO; + /* cut root part*/ + if (directionUp == NO) + { + b = a; /* switch a and b */ + a = u->anc; + b->anc = a; + if (a->left == u) + a->left = b; + else + a->right = b; + } + else // if (directionUp == YES) + { + a->anc = b; + if (b->left == u) + b->left = a; + else + b->right = a; + y = a->length; + a->length = u->length; + u->length = y; + a->upDateTi = YES; + u->upDateTi = YES; + } + + for (nRootNodes=0; RandomNumber(seed)left == NULL || a->isLocked == YES) + break; /* can't go further */ + b = a; + if (RandomNumber(seed) < 0.5) + a = a->left; + else + a = a->right; + if (u->isLocked == YES) + { + b->isLocked = YES; + u->isLocked = NO; + b->lockID = u->lockID; + u->lockID = 0; + } + } + else // directionUp == NO + { /* going down tree */ + if (a->anc == NULL || u->isLocked == YES) + break; /* can't go further */ + if (RandomNumber(seed) < 0.5) + { + directionUp = YES; /* switch direction */ + /* find sister of a */ + if (a->left == b) + { + b = a; + a = a->right; + } + else + { + b = a; + a = a->left; + } + /* as long as we are moving upwards, the cond likes to update + will be flagged by the last pass from u to the root */ + } + else + { /* continue down */ + b = a; + a = a->anc; + b->upDateCl = YES; + if (b->isLocked == YES) + { + u->isLocked = YES; + b->isLocked = NO; + u->lockID = b->lockID; + b->lockID = 0; + } + } + } + } + + topologyHasChanged = YES; + /* check whether stop is constrained */ + if (directionUp == YES && (a->left == NULL || a->isLocked == YES)) + isStopConstrained = YES; + if (directionUp == NO && (a->anc == NULL || u->isLocked == YES)) + isStopConstrained = YES; + + /* modify branch length */ + m = u->length; + x = m * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + u->length = x; + u->upDateTi = YES; + + /* update proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / m); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (m - x); + + /* combine the subtrees */ + if (directionUp == YES) + { + u->anc = b; + if (u->left == v) + u->right = a; + else + u->left = a; + a->anc = u; + if (b->left == a) + b->left = u; + else + b->right = u; + } + else // if (directionUp == NO) + { + u->anc = a; + if (u->left == v) + u->right = b; + else + u->left = b; + b->anc = u; + if (a->left == b) + a->left = u; + else + a->right = u; + /* the modified branch contained in u->length will have to be moved to b->length to enable back move + BUT if we haven't moved, it is better to keep it in place (necessary for rooted trees) */ + y = u->length; + u->length = b->length; + b->length = y; + b->upDateTi = YES; + u->upDateTi = YES; + } + } + + /* move around in crown subtree */ + nCrownNodes = 0; + if (moveInRoot == NO) + { + /* set up pointers for crown part */ + /* also determine direction of move in crown part */ + if (v->right->left == NULL || v->right->isLocked == YES) + directionLeft = YES; + else if (v->left->left == NULL || v->left->isLocked == YES) + directionLeft = NO; + else if (RandomNumber(seed) < 0.5) + directionLeft = YES; + else + directionLeft = NO; + if (directionLeft == YES) + { + c = v->left; + d = v->right; + } + else + { + c = v->right; + d = v->left; + } + + /* store brlen nodes and brlen to move */ + x = c->length; + + /* cut and reconnect crown part */ + c->anc = d; + d->anc = c; + + for (nCrownNodes=0; RandomNumber(seed)left == NULL || c->isLocked == YES) + break; /* can't go further */ + if (RandomNumber(seed) < 0.5) + { + /* rotate c anticlockwise - prepare pointers for move left */ + c->anc = c->left; /* the root will be in the direction we are heading */ + c->left = c->right; + c->right = d; + } + else + { + /* rotate c clockwise - prepare pointers for move right */ + c->anc = c->right; /* the root will be in the direction we are heading */ + c->right = c->left; + c->left = d; + } + /* OK - let's move! c->anc points in the right direction + don't forget to move the branch lengths as well */ + d = c; + c = c->anc; + d->length = c->length; /* also rotate other info ?? */ + d->upDateCl = YES; + d->upDateTi = YES; + } + + topologyHasChanged = YES; + /* check if stop constrained */ + if (c->left == NULL || c->isLocked == YES) + isStopConstrained = YES; + + /* combine the subtrees */ + c->anc = v; + d->anc = v; + if (directionLeft == YES) + { + v->left = c; + v->right = d; + } + else + { + v->left = d; + v->right = c; + } + + /* the dangling branch is inserted in reverted position such that the back move will be possible + if we have moved around in crown subtree otherwise it is left in its original position */ + d->length = x; + + /* modify branch length */ + m = d->length; + x = m * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + d->length = x; + d->upDateTi = YES; + + /* update proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / m); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (m - x); + } + + /* adjust proposal ratio for constraints */ + if (isStartConstrained == NO && isStopConstrained == YES) + (*lnProposalRatio) += log (2.0 * (1.0 - extensionProb)); + else if (isStartConstrained == YES && isStopConstrained == NO) + (*lnProposalRatio) -= log (2.0 * (1.0 - extensionProb)); + + /* set flags for update of cond likes from v and down to root */ + p = v; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + +# if defined (DEBUG_ExtSPR) + printf ("After:\n"); + ShowNodes (t->root, 2, NO); + getchar(); + printf ("Proposal ratio: %f\n",(*lnProposalRatio)); + printf ("v: %d u: %d c: %d d: %d a: %d b: %d\n",v->index, u->index, + c->index, d->index, a->index, b->index); + printf ("No. nodes moved in root subtree: %d\n",nRootNodes); + printf ("No. nodes moved in crown subtree: %d\n",nCrownNodes); + printf ("Has topology changed? %d\n",topologyHasChanged); + getchar(); +# endif + + return (NO_ERROR); +} + + +int Move_ExtSPR1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change topology (and branch lengths) using SPR (unrooted) with extension probability. */ + /* Pick only internal branches. For a description, see Lakner et al. (2008). */ + + int i, j, topologyHasChanged, nCrownNodes, nRootNodes, directionLeft, directionUp, + isVPriorExp, moveInRoot, isStartConstrained, isStopConstrained; + MrBFlt m, x, y, tuning, maxV, minV, extensionProb, brlensExp=0.0; + TreeNode *p, *a, *b, *c, *d, *u, *v, *brlenNode[7]; + Tree *t; + ModelParams *mp; + + /* these parameters should be possible to set by user */ + extensionProb = mvp[0]; /* extension probability */ + tuning = mvp[1]; /* Larget & Simon's tuning parameter lambda */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1] < BRLENS_MAX ? mp->brlensUni[1] : BRLENS_MAX; + isVPriorExp = NO; + } + else if (param->subParams[0]->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->subParams[0]->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->subParams[0]->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + topologyHasChanged = NO; + +# if defined (DEBUG_ExtSPR) + printf ("Before:\n"); + ShowNodes (t->root, 2, NO); + getchar(); +# endif + + /* pick an internal branch that is free to move in either end + (i and j keep track of number of locked directions) */ + do { + p = t->intDownPass[(int)(RandomNumber(seed) * (t->nIntNodes-1))]; + if (p->anc->left == p) + a = p->anc->right; + else + a = p->anc->left; + i = j = 0; + if (a->isLocked == YES || a->left == NULL) + i++; + if (p->anc->isLocked == YES || p->anc->anc->anc == NULL) + i++; + if (p->left->isLocked == YES || p->left->left == NULL) + j++; + if (p->right->isLocked == YES || p->right->left == NULL) + j++; + } while (i == 2 && j == 2); + + /* set up pointers for nodes around the picked branch */ + /* cut the tree into crown, root and attachment part */ + /* change the relevant lengths in the attachment part */ + /* the lengths of a and v are automatically contained in the */ + /* "attachment" part but the length of c has to be stored in x */ + v = p; + u = p->anc; + + /* store brlen node */ + brlenNode[3] = v; + + /* change in root tree ? */ + if (j == 2) + moveInRoot = YES; + else if (i == 2) + moveInRoot = NO; + else if (RandomNumber(seed) < 0.5) + moveInRoot = YES; + else + moveInRoot = NO; + + /* determine whether start is constrained on backward move */ + isStartConstrained = isStopConstrained = NO; + if (moveInRoot == YES && i == 1) + isStartConstrained = YES; + else if (moveInRoot == NO && j == 1) + isStartConstrained = YES; + + /* set up pointers for crown part */ + /* also determine direction of move in crown part */ + if (v->right->left == NULL || v->right->isLocked == YES) + directionLeft = YES; + else if (v->left->left == NULL || v->left->isLocked == YES) + directionLeft = NO; + else if (RandomNumber(seed) < 0.5) + directionLeft = YES; + else + directionLeft = NO; + if (directionLeft == YES) + { + c = v->left; + d = v->right; + } + else + { + c = v->right; + d = v->left; + } + + /* store brlen nodes and brlen to move */ + brlenNode[0] = d; + brlenNode[1] = c; + x = c->length; + + /* cut and reconnect crown part */ + c->anc = d; + d->anc = c; + + /* mark nodes in root part */ + /* also determine direction of move in root part */ + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + if (u->anc->anc == NULL || u->isLocked == YES) + directionUp = YES; + else if (a->left == NULL || a->isLocked == YES) + directionUp = NO; + else if (RandomNumber(seed) < 0.5) + directionUp = YES; + else + directionUp = NO; + if (directionUp == NO) + { + /* switch a and b */ + b = a; + a = u->anc; + } + + /* store brlen nodes */ + if (directionUp == YES) + { + brlenNode[4] = u; + brlenNode[5] = a; + } + else + { + brlenNode[4] = b; + brlenNode[5] = u; + } + + /* cut root part*/ + if (directionUp == NO) + { + b->anc = a; + if (a->left == u) + a->left = b; + else + a->right = b; + } + else + { + a->anc = b; + if (b->left == u) + b->left = a; + else + b->right = a; + y = a->length; + a->length = u->length; + u->length = y; + a->upDateTi = YES; + u->upDateTi = YES; + } + + /* move around in root subtree */ + nRootNodes = 0; + if (moveInRoot == YES) + { + for (nRootNodes=0; RandomNumber(seed)left == NULL || a->isLocked == YES) + break; /* can't go further */ + topologyHasChanged = YES; + b = a; + if (RandomNumber(seed) < 0.5) + a = a->left; + else + a = a->right; + if (u->isLocked == YES) + { + b->isLocked = YES; + u->isLocked = NO; + b->lockID = u->lockID; + u->lockID = 0; + } + } + else + { /* going down tree */ + if (a->anc == NULL || u->isLocked == YES) + break; /* can't go further */ + topologyHasChanged = YES; + if (RandomNumber(seed)<0.5) + { + directionUp = YES; /* switch direction */ + /* find sister of a */ + if (a->left == b) + { + b = a; + a = a->right; + } + else + { + b = a; + a = a->left; + } + /* as long as we are moving upwards + the cond likes to update will be + flagged by the last pass from u to the root */ + } + else + { /* continue down */ + b = a; + a = a->anc; + b->upDateCl = YES; + if (b->isLocked == YES) + { + u->isLocked = YES; + b->isLocked = NO; + u->lockID = b->lockID; + b->lockID = 0; + } + } + } + } + /* check whether stop is constrained */ + if (directionUp == YES) + { + if (a->left == NULL || a->isLocked == YES) + isStopConstrained = YES; + } + else + { + if (a->anc == NULL || u->isLocked == YES) + isStopConstrained = YES; + } + } + + /* store brlen nodes */ + if (nRootNodes > 0) + { + if (directionUp == YES) + { + brlenNode[6] = a; + brlenNode[5] = u; + } + else + { + brlenNode[6] = u; + brlenNode[5] = b; + } + } + + /* move around in crown subtree */ + nCrownNodes = 0; + if (moveInRoot == NO) + { + for (nCrownNodes=0; RandomNumber(seed)left == NULL || c->isLocked == YES) + break; /* can't go further */ + topologyHasChanged = YES; + if (RandomNumber(seed) < 0.5) + { + /* rotate c anticlockwise - prepare pointers for move left */ + c->anc = c->left; /* the root will be in the direction we are heading */ + c->left = c->right; + c->right = d; + } + else + { + /* rotate c clockwise - prepare pointers for move right */ + c->anc = c->right; /* the root will be in the direction we are heading */ + c->right = c->left; + c->left = d; + } + /* OK - let's move!; c->anc points in the right direction + don't forget to move the branch lengths as well */ + d = c; + c = c->anc; + d->length = c->length; + d->upDateCl = YES; + d->upDateTi = YES; + } + /* check if stop constrained */ + if (c->left == NULL || c->isLocked == YES) + isStopConstrained = YES; + } + + /* store brlen nodes */ + if (nCrownNodes > 0) + { + brlenNode[2] = c; + brlenNode[1] = d; + } + + /* adjust proposal ratio for constraints */ + if (isStartConstrained == NO && isStopConstrained == YES) + (*lnProposalRatio) += log (2.0 * (1.0 - extensionProb)); + else if (isStartConstrained == YES && isStopConstrained == NO) + (*lnProposalRatio) -= log (2.0 * (1.0 - extensionProb)); + + /* combine the subtrees */ + c->anc = v; + d->anc = v; + if (directionLeft == YES) + { + v->left = c; + v->right = d; + } + else + { + v->left = d; + v->right = c; + } + + /* the dangling branch is inserted in reverted position + such that the back move will be possible + if we have moved around in crown subtree + otherwise it is left in its original position */ + if (nCrownNodes > 0) + { + d->length = x; + d->upDateTi = YES; + } + else + { + c->length = x; + } + + if (directionUp == YES) + { + u->anc = b; + if (u->left == v) + u->right = a; + else + u->left = a; + a->anc = u; + if (b->left == a) + b->left = u; + else + b->right = u; + /* the dangling branch is contained in u->length + and will automatically be inserted in the right position + to enable the back move regardless of whether it was + initially directed upwards or downwards + BUT if we haven't moved in root subtree, it is advantageous (necessary + for rooted trees) to avoid switching branches, which occurs otherwise + if directionUp == YES */ + if (nRootNodes == 0) + { + x = u->length; + u->length = a->length; + a->length = x; + a->upDateTi = NO; + u->upDateTi = NO; + } + } + else + { + u->anc = a; + if (u->left == v) + u->right = b; + else + u->left = b; + b->anc = u; + if (a->left == b) + a->left = u; + else + a->right = u; + /* the modified branch contained in u->length will have + to be moved to b->length to enable back move + BUT if we haven't moved, it is better to keep it in place + (necessary for rooted trees) */ + if (nRootNodes > 0) + { + x = u->length; + u->length = b->length; + b->length = x; + b->upDateTi = YES; + u->upDateTi = YES; + } + } + + /* modify branch lengths */ + /* first modify length of middle branch */ + m = brlenNode[3]->length; + x = m * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + brlenNode[3]->length = x; + brlenNode[3]->upDateTi = YES; + + /* update proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / m); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (m - x); + + if (moveInRoot == NO) + { + /* if no move in crown, then select randomly, otherwise always the moved branch */ + if (nCrownNodes == 0 && RandomNumber(seed) < 0.5) + p = brlenNode[0]; + else + p = brlenNode[1]; + + /* modify branch length */ + m = p->length; + x = m * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + p->length = x; + p->upDateTi = YES; + + /* update proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / m); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (m - x); + } + + if (moveInRoot == YES) + { + /* if no move in root, then select randomly, otherwise always the moved branch */ + if (nRootNodes == 0 && RandomNumber(seed) < 0.5) + p = brlenNode[4]; + else + p = brlenNode[5]; + + /* modify branch length but not if 'root' branch in rooted tree */ + if (t->isRooted == NO || p->anc->anc != NULL) + { + m = p->length; + x = m * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + p->length = x; + p->upDateTi = YES; + + /* update proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / m); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (m - x); + } + } + + /* set flags for update of cond likes from v and down to root */ + p = v; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + +# if defined (DEBUG_ExtSPR) + printf ("After:\n"); + ShowNodes (t->root, 2, NO); + getchar(); + printf ("Proposal ratio: %f\n",(*lnProposalRatio)); + printf ("v: %d u: %d c: %d d: %d a: %d b: %d\n",v->index, u->index, + c->index, d->index, a->index, b->index); + printf ("No. nodes moved in root subtree: %d\n",nRootNodes); + printf ("No. nodes moved in crown subtree: %d\n",nCrownNodes); + printf ("Has topology changed? %d\n",topologyHasChanged); + getchar(); +# endif + + return (NO_ERROR); +} + + +int Move_ExtSPRClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change branch lengths and topology (potentially) using SPR-type move + with extension probability (rather than window, attachment rate or similar). + The move is Metropolized, which should improve mixing. However, this means + that it must be combined with a node slider move to be efficient. + + The move picks a branch and then moves its lower attachment point + from its original position, one node at a time, with + a probability determined by the extensionProb parameter. This is + done in a way consistent with the clock constraints and any locked + nodes there might be in the tree. The lower attachment point is + minimally moved one node away. + + On the ending branch, the attachment point is reinserted randomly + along the branch (below the minimum age of the node). */ + + int i, j, topologyHasChanged=NO, isStartLocked=NO, isStopLocked=NO, nRootNodes, directionUp, + n1=0, n2=0, n3=0, n4=0, n5=0, *nEvents; + MrBFlt x, y, oldBrlen=0.0, newBrlen=0.0, extensionProb, igrvar, *igrRate=NULL, + v1=0.0, v2=0.0, v3=0.0, v4=0.0, v5=0.0, v3new=0.0, lambda, *tk02Rate=NULL, + **position=NULL, **rateMultiplier=NULL, *brlens, nu, minV, clockRate; + TreeNode *p, *a, *b, *u, *v, *oldA; + Tree *t; + ModelInfo *m; + Param *subParm; + + extensionProb = mvp[0]; /* extension probability */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get model params and model info */ + m = &modelSettings[param->relParts[0]]; + + /* get clock rate */ + clockRate = *GetParamVals (m->clockRate, chain, state[chain]); + + /* get min and max branch lengths in relative time and substitution units */ + minV = BRLENS_MIN; + +# if defined (DEBUG_ExtSPRClock) + printf ("Before:\n"); + ShowNodes (t->root, 2, YES); + getchar(); +# endif + + /* pick a branch */ + do { + p = t->allDownPass[(int)(RandomNumber(seed) * (t->nNodes - 2))]; + a = p->anc->left; + b = p->anc->right; + } + while (p->anc->isLocked == YES || p->anc->anc->anc == NULL + || (p == b && a->length < TIME_MIN) || (p == a && b->length < TIME_MIN) + || (p->length < TIME_MIN && p->calibration->prior == fixed)); + /* skip constraints, siblings of root (and root); and consider ancestral fossils in fbd tree */ + + /* set up pointers for nodes around the picked branch */ + v = p; + u = p->anc; + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + oldA = a; + + /* record branch length for insertion in back move */ + if (v->length > 0.0) /* side branch, not anc fossil */ + { + if (v->nodeDepth > a->nodeDepth) + oldBrlen = b->nodeDepth - v->nodeDepth - 2.0*minV; + else + oldBrlen = b->nodeDepth - a->nodeDepth - 2.0*minV; + } + else /* ancestral fossil */ + { + y = (b->nodeDepth - minV > v->calibration->max * clockRate) ? (v->calibration->max * clockRate) : (b->nodeDepth - minV); + x = (a->nodeDepth + minV < v->calibration->min * clockRate) ? (v->calibration->min * clockRate) : (a->nodeDepth + minV); + oldBrlen = y - x; + } + v1 = a->length; + v2 = u->length; + v3 = v->length; + + /* reassign events for CPP and adjust prior and proposal ratios for relaxed clock models */ + for (i=0; isubParams[0]->nSubParams; i++) + { + subParm = param->subParams[0]->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + /* get pointers to CPP events */ + nEvents = subParm->nEvents[2*chain+state[chain]]; + position = subParm->position[2*chain+state[chain]]; + rateMultiplier = subParm->rateMult[2*chain+state[chain]]; + n1 = nEvents[a->index]; + n2 = nEvents[u->index]; + n3 = nEvents[v->index]; + if (n2 > 0) + { + position[a->index] = (MrBFlt *) SafeRealloc ((void *) position[a->index], (n1+n2) * sizeof (MrBFlt)); + rateMultiplier[a->index] = (MrBFlt *) SafeRealloc ((void *) rateMultiplier[a->index], (n1+n2) * sizeof (MrBFlt)); + } + for (j=0; jindex][j] *= v1 / (v1+v2); + for (j=n1; jindex][j] = (position[u->index][j-n1] * v2 + v1) / (v1+v2); + rateMultiplier[a->index][j] = rateMultiplier[u->index][j-n1]; + } + nEvents[a->index] = n1+n2; + nEvents[u->index] = 0; + if (n2 > 0) + { + free (position[u->index]); + free (rateMultiplier[u->index]); + position[u->index] = rateMultiplier[u->index] = NULL; + } + } /* end CPP events parm */ + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + /* adjust prior ratio */ + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + if (v->length > 0.0) + (*lnPriorRatio) -= LnProbTK02LogNormal(tk02Rate[v->anc->index], nu*v->length, tk02Rate[v->index]); + (*lnPriorRatio) -= LnProbTK02LogNormal(tk02Rate[a->anc->index], nu*a->length, tk02Rate[a->index]); + (*lnPriorRatio) -= LnProbTK02LogNormal(tk02Rate[u->anc->index], nu*u->length, tk02Rate[u->index]); + (*lnPriorRatio) += LnProbTK02LogNormal(tk02Rate[u->anc->index], nu*(a->length+u->length), tk02Rate[a->index]); + + /* adjust effective branch lengths */ + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[a->index] = (tk02Rate[a->index] + tk02Rate[b->index]) / 2.0 * (a->length + u->length); + } /* end tk02 branch rate parameter */ + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + + /* adjust prior ratio for old branches */ + if (v->length > 0.0) + (*lnPriorRatio) -= LnProbGamma(v->length/igrvar, v->length/igrvar, igrRate[v->index]); + (*lnPriorRatio) -= LnProbGamma(a->length/igrvar, a->length/igrvar, igrRate[a->index]); + (*lnPriorRatio) -= LnProbGamma(u->length/igrvar, u->length/igrvar, igrRate[u->index]); + (*lnPriorRatio) += LnProbGamma((a->length+u->length)/igrvar, (a->length+u->length)/igrvar, igrRate[a->index]); + + /* adjust effective branch lengths and rates */ + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[a->index] = igrRate[a->index] * (a->length + u->length); + } + } /* next subparameter */ + + /* cut tree */ + a->anc = b; + if (b->left == u) + b->left = a; + else + b->right = a; + a->length += u->length; + a->upDateTi = YES; + + /* determine initial direction of move and whether the reverse move would be stopped by constraints */ + if (a->left == NULL || a->isLocked == YES || a->nodeDepth < v->nodeDepth + minV) + { + isStartLocked = YES; + directionUp = NO; + } + else + { + isStartLocked = NO; + if (RandomNumber(seed) < 0.5) + directionUp = YES; + else + directionUp = NO; + } + + /* move around in root subtree */ + for (nRootNodes=0; nRootNodes==0 || RandomNumber(seed)left == NULL || a->isLocked == YES || a->nodeDepth < v->nodeDepth + minV) + break; /* can't go farther */ + topologyHasChanged = YES; + b = a; + if (a->left->length < TIME_MIN) + a = a->right; + else if (a->right->length < TIME_MIN) + a = a->left; + else if (RandomNumber(seed) < 0.5) + a = a->left; + else + a = a->right; + } + else + { /* going down tree */ + topologyHasChanged = YES; + if (RandomNumber(seed) < 0.5 || b->anc->anc == NULL || b->isLocked == YES) + { + directionUp = YES; /* switch direction */ + /* find sister of a */ + if (b->left == a) + a = b->right; + else + a = b->left; + /* as long as we are moving upwards + the cond likes to update will be + flagged by the last pass from u to the root */ + } + else + { /* continue down */ + a = b; + b = b->anc; + a->upDateCl = YES; + } + } + } + + /* determine whether the forward move was or would have been stopped by constraints */ + isStopLocked = NO; + if (directionUp == YES) + { + if (a->left == NULL || a->isLocked == YES || a->nodeDepth < v->nodeDepth + minV) + isStopLocked = YES; + } + + /* reattach u */ + if (u->left == v) + u->right = a; + else + u->left = a; + a->anc = u; + u->anc = b; + if (b->left == a) + b->left = u; + else + b->right = u; + + if (v->length > 0.0) /* side branch, not anc fossil */ + { + if (a->nodeDepth > v->nodeDepth) + newBrlen = b->nodeDepth - a->nodeDepth - 2.0*minV; + else + newBrlen = b->nodeDepth - v->nodeDepth - 2.0*minV; + } + else /* ancestral fossil */ + { + y = (b->nodeDepth - minV > v->calibration->max * clockRate) ? (v->calibration->max * clockRate) : (b->nodeDepth - minV); + x = (a->nodeDepth + minV < v->calibration->min * clockRate) ? (v->calibration->min * clockRate) : (a->nodeDepth + minV); + newBrlen = y - x; + } + if (newBrlen <= 0.0) + { + abortMove = YES; + return (NO_ERROR); + } + + /* adjust lengths */ + if (v->length > 0.0) /* side branch, not anc fossil */ + { + u->nodeDepth = b->nodeDepth - minV - RandomNumber(seed) * newBrlen; + v->length = u->nodeDepth - v->nodeDepth; + } + else /* ancestral fossil */ + { + u->nodeDepth = y - RandomNumber(seed) * newBrlen; + v->nodeDepth = u->nodeDepth; + v->age = u->age = u->nodeDepth / clockRate; + } + u->length = b->nodeDepth - u->nodeDepth; + a->length = u->nodeDepth - a->nodeDepth; + + v3new = v->length; + v4 = a->length; + v5 = u->length; + + /* adjust events, prior ratio and proposal ratio for relaxed clock models */ + for (i=0; isubParams[0]->nSubParams; i++) + { + subParm = param->subParams[0]->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + /* reassign events for CPP */ + nEvents = subParm->nEvents[2*chain+state[chain]]; + position = subParm->position[2*chain+state[chain]]; + rateMultiplier = subParm->rateMult[2*chain+state[chain]]; + for (j=0; jindex]; j++) + { + if (position[a->index][j] > v4 / (v4+v5)) + break; + } + n4 = j; + n5 = nEvents[a->index] - j; + nEvents[u->index] = n5; + if (n5 > 0) + { + position[u->index] = (MrBFlt *) SafeRealloc ((void *) position[u->index], n5 * sizeof (MrBFlt)); + rateMultiplier[u->index] = (MrBFlt *) SafeRealloc ((void *) rateMultiplier[u->index], n5 * sizeof (MrBFlt)); + for (j=n4; jindex]; j++) + { + position[u->index][j-n4] = (position[a->index][j] * (v4+v5) - v4) / v5; + rateMultiplier[u->index][j-n4] = rateMultiplier[a->index][j]; + } + if (n4 > 0) + { + position[a->index] = (MrBFlt *) SafeRealloc ((void *) position[a->index], n4 * sizeof (MrBFlt)); + rateMultiplier[a->index] = (MrBFlt *) SafeRealloc ((void *) rateMultiplier[a->index], n4 * sizeof (MrBFlt)); + for (j=0; jindex][j] *= ((v4+v5) / v4); + } + else + { + free (position[a->index]); + free (rateMultiplier[a->index]); + position[a->index] = rateMultiplier[a->index] = NULL; + } + nEvents[a->index] = n4; + } + else + { + for (j=0; jindex]; j++) + position[a->index][j] *= ((v4+v5) / v4); + } + + /* adjust proposal ratio for length change in v branch*/ + (*lnProposalRatio) += n3 * log (v3new / v3); + + /* adjust prior ratio for length change */ + lambda = *GetParamVals (modelSettings[subParm->relParts[0]].cppRate, chain, state[chain]); + (*lnPriorRatio) += lambda * (v3 - v3new); + + /* update effective branch lengths */ + if (UpdateCppEvolLengths (subParm, oldA, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + if (UpdateCppEvolLengths (subParm, u, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + } /* end cpp events parameter */ + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + /* adjust prior ratio */ + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + (*lnPriorRatio) -= LnProbTK02LogNormal(tk02Rate[u->anc->index], nu*(a->length+u->length), tk02Rate[a->index]); + (*lnPriorRatio) += LnProbTK02LogNormal(tk02Rate[a->anc->index], nu*a->length, tk02Rate[a->index]); + (*lnPriorRatio) += LnProbTK02LogNormal(tk02Rate[u->anc->index], nu*u->length, tk02Rate[u->index]); + if (v->length > 0.0) + (*lnPriorRatio) += LnProbTK02LogNormal(tk02Rate[v->anc->index], nu*v->length, tk02Rate[v->index]); + + /* adjust effective branch lengths */ + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[a->index] = a->length * (tk02Rate[a->index] + tk02Rate[a->anc->index]) / 2.0; + brlens[v->index] = v->length * (tk02Rate[v->index] + tk02Rate[v->anc->index]) / 2.0; + brlens[u->index] = u->length * (tk02Rate[u->index] + tk02Rate[u->anc->index]) / 2.0; + } /* end tk02 branch rate parameter */ + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + /* adjust prior ratio */ + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + (*lnPriorRatio) -= LnProbGamma ((a->length+u->length)/igrvar, (a->length+u->length)/igrvar, igrRate[a->index]); + (*lnPriorRatio) += LnProbGamma (a->length/igrvar, a->length/igrvar, igrRate[a->index]); + (*lnPriorRatio) += LnProbGamma (u->length/igrvar, u->length/igrvar, igrRate[u->index]); + if (v->length > 0.0) + (*lnPriorRatio) += LnProbGamma (v->length/igrvar, v->length/igrvar, igrRate[v->index]); + + /* adjust effective branch lengths */ + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[v->index] = igrRate[v->index] * v->length; + brlens[u->index] = igrRate[u->index] * u->length; + brlens[a->index] = igrRate[a->index] * a->length; + } /* end igr branch rate parameter */ + } /* next subparameter */ + + /* set tiprobs update flags */ + a->upDateTi = YES; + u->upDateTi = YES; + v->upDateTi = YES; + + /* set flags for update of cond likes from u and down to root */ + p = u; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* adjust prior ratio for clock tree */ + if (LogClockTreePriorRatio(param, chain, &x) == ERROR) + return (ERROR); + (*lnPriorRatio) += x; + + if (topologyHasChanged == YES) + { + /* get down pass sequence if tree topology has changed */ + GetDownPass (t); + /* calculate proposal ratio for tree change */ + (*lnProposalRatio) += log (newBrlen / oldBrlen); + if (isStartLocked == NO && isStopLocked == YES) + (*lnProposalRatio) += log (2.0 * (1.0 - extensionProb)); + else if (isStartLocked == YES && isStopLocked == NO) + (*lnProposalRatio) -= log (2.0 * (1.0 - extensionProb)); + } + +# if defined (DEBUG_ExtSPRClock) + ShowNodes (t->root, 2, YES); + printf ("After\nProposal ratio: %f\n",(*lnProposalRatio)); + printf ("v: %d u: %d a: %d b: %d\n",v->index, u->index, a->index, b->index); + printf ("No. nodes moved in root subtree: %d\n",nRootNodes); + printf ("Has topology changed? %d\n",topologyHasChanged); +# endif + + return (NO_ERROR); +} + + +int Move_ExtSS (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change branch lengths and topology (potentially) using Subtree Swapping (unrooted) + with extension probability. + + This move type picks two subtrees and swaps their position. Like the SPR and TBR, + it is a superset of the NNI but there are some interesting differences. With the + SPR and TBR, it is not possible to go between all five-tip trees in a single + step. For instance, going from ((1,2),3,(4,5)) to ((1,5),3,(4,2)) requires two + steps. The SS move can go between all pairs of five-tip trees in a single step. + Some six-tip tree pairs will require two steps though. + + Unlike the published version of the move (Lakner et al, Syst Bio), this version + does _not_ multiply all branch lengths between the subtrees. + + */ + + int i, numFree, topologyHasChanged, nCrownNodes, nRootNodes, directionLeft, directionUp, + isVPriorExp, moveInRoot; + MrBFlt m, x, tuning, maxV, minV, extensionProb, brlensExp=0.0; + TreeNode *p, *q, *a, *b, *c, *d, *u, *v; + Tree *t; + ModelParams *mp; + + (*lnPriorRatio) = (*lnProposalRatio) = 0.0; + + /* these parameters should be possible to set by user */ + extensionProb = mvp[0]; /* extension probability */ + tuning = mvp[1]; /* Larget & Simon's tuning parameter lambda */ + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1]; + isVPriorExp = NO; + } + else if (param->subParams[0]->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->subParams[0]->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->subParams[0]->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + topologyHasChanged = NO; + + /* unmark all tree */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->marked = NO; + } + + /* pick a branch */ + do + { + p = t->allDownPass[(int)(RandomNumber(seed) * t->nNodes)]; + } while (p->anc == NULL); + + /* set up pointers for nodes around the picked branch */ + v = p; + u = p->anc; + + /* check the possible move directions */ + numFree = 0; + if (v->left != NULL && v->left->isLocked == NO) + numFree ++; + if (v->right != NULL && v->right->isLocked == NO) + numFree++; + if (u->anc != NULL && u->isLocked == NO) + numFree++; + if (u->left == v) + { + if (u->right != NULL && u->right->isLocked == NO) + numFree++; + } + else + { + if (u->left != NULL && u->left->isLocked == NO) + numFree++; + } + + /* select one of them randomly */ + i = (int) (RandomNumber(seed) * numFree) + 1; + numFree = 0; + a = b = c = d = p; + directionLeft = directionUp = moveInRoot = NO; + if (v->left != NULL && v->left->isLocked == NO) + { + numFree ++; + if (i == numFree) + { + moveInRoot = NO; + directionLeft = YES; + c = v->left; + d = v; + } + } + if (v->right != NULL && v->right->isLocked == NO) + { + numFree ++; + if (i == numFree) + { + moveInRoot = NO; + directionLeft = NO; + c = v->right; + d = v; + } + } + if (u->anc != NULL && u->isLocked == NO) + { + numFree ++; + if (i == numFree) + { + moveInRoot = YES; + directionUp = NO; + a = u->anc; + b = u; + } + } + if (u->left == v) + { + if (u->right != NULL && u->right->isLocked == NO) + { + numFree ++; + if (i == numFree) + { + moveInRoot = YES; + directionUp = YES; + a = u->right; + b = u; + } + } + } + else + { + if (u->left != NULL && u->left->isLocked == NO) + { + numFree ++; + if (i == numFree) + { + moveInRoot = YES; + directionUp = YES; + a = u->left; + b = u; + } + } + } + +# if defined (DEBUG_ExtSS) + printf ("Before:\n"); + ShowNodes (t->root, 2, NO); + printf ("v: %d u: %d c: %d d: %d a: %d b: %d\n",v->index, u->index, + c->index, d->index, a->index, b->index); + printf ("directionUp = %d -- directionLeft = %d -- moveInRoot = %d\n", directionUp, directionLeft, moveInRoot); + getchar(); +# endif + + /* move around and potentially swap in root subtree */ + nRootNodes = 0; + if (moveInRoot == YES) + { + for (nRootNodes=0; nRootNodes==0 || RandomNumber(seed)left == NULL || a->isLocked == YES) + break; /* can't go further */ + topologyHasChanged = YES; + b = a; + if (RandomNumber(seed) < 0.5) + a = a->left; + else + a = a->right; + } + else + { /* going down tree */ + if (a->anc == NULL || a->isLocked == YES) + break; /* can't go further */ + topologyHasChanged = YES; + b->marked = YES; + + if (RandomNumber(seed) < 0.5) + { + directionUp = YES; /* switch direction */ + /* find sister of a */ + if (a->left == b) + { + b = a; + a = a->right; + } + else + { + b = a; + a = a->left; + } + } + else + { /* continue down */ + b = a; + a = a->anc; + } + } + } + /* swap the root subtrees */ + if (nRootNodes > 0) + { + if (directionUp == YES) + { + v->anc = b; + a->anc = u; + if (b->left == a) + b->left = v; + else if (b->right == a) + b->right = v; + if (u->left == v) + u->left = a; + else + u->right = a; + } + else + { + /* rotate the nodes from b to u*/ + p = b; + q = a; + x = b->length; + while (p->left->marked == YES || p->right->marked == YES) + { + if (p->left->marked == YES) + { + /* rotate p anticlockwise - prepare pointers for move left */ + p->anc = p->left; /* the root will be in the direction we are heading */ + p->left = p->right; + p->right = q; + } + else + { + /* rotate p clockwise - prepare pointers for move right */ + p->anc = p->right; /* the root will be in the direction we are heading */ + p->right = p->left; + p->left = q; + } + /* OK - let's move!; p->anc points in the right direction + don't forget to move the branch lengths as well */ + q = p; + p = p->anc; + q->length = p->length; + q->upDateTi = YES; + } + /* rotations finished, take care of u */ + if (u->left == v) + u->left = u->anc; + else + u->right = u->anc; + u->length = x; + /* now swap the subtrees of u and b */ + if (a->left == b) + a->left = u; + else + a->right = u; + u->anc = a; + v->anc = b; + if (b->left == a) + b->left = v; + else + b->right = v; + } + } + } + + /* move around and potentially swap in crown subtree */ + nCrownNodes = 0; + if (moveInRoot == NO) + { + x = v->length; /* save v length in case there is a move */ + for (nCrownNodes=0; nCrownNodes==0 || RandomNumber(seed)left == NULL || c->isLocked == YES) + break; /* can't go further */ + + topologyHasChanged = YES; + + /* prepare d for move */ + d->anc = c; + d->length = c->length; + d->upDateTi = YES; + d->upDateCl = YES; + if (d->isLocked == YES) + { + c->isLocked = YES; + d->isLocked = NO; + c->lockID = d->lockID; + d->lockID = -1; + } + + /* go left or right with equal probability */ + if (RandomNumber(seed) < 0.5) + { + /* rotate c anticlockwise - prepare pointers for move left */ + c->anc = c->left; /* the root will be in the direction we are heading */ + c->left = c->right; + c->right = d; + } + else + { + /* rotate c clockwise - prepare pointers for move right */ + c->anc = c->right; /* the root will be in the direction we are heading */ + c->right = c->left; + c->left = d; + } + /* OK - let's move!; c->anc points in the right direction */ + d = c; + c = c->anc; + } + + /* swap the crown subtrees */ + if (nCrownNodes > 0) + { + d->anc = u; + d->length = x; + if (u->left == v) + u->left = d; + else + u->right = d; + + c->anc = v; + if (directionLeft == YES) + v->left = c; + else + v->right = c; + } + } + + /* modify branch lengths */ + if (nCrownNodes > 0) + { + p = c; + q = d; + } + else if (nRootNodes > 0) + { + if (directionUp == YES) + { + p = v; + q = a; + } + else + { + p = v; + q = u; + } + } + else + { + p = v; + if (RandomNumber(seed) < 0.5) + { + if (RandomNumber(seed) < 0.5) + q = u; + else + { + if (u->left == v) + q = u->right; + else + q = u->left; + } + } + else + { + if (RandomNumber(seed) < 0.5) + q = v->left; + else + q = v->right; + } + } + + if (p != NULL) + { + m = p->length; + x = m * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + p->length = x; + p->upDateTi = YES; + + /* update proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / m); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (m - x); + } + + if (q != NULL && q->anc != NULL) + { + m = q->length; + x = m * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + q->length = x; + q->upDateTi = YES; + + /* update proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / m); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (m - x); + } + + /* set flags for update of cond likes from v and down to root */ + p = v; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + if (topologyHasChanged == YES) + { + /* set flags for update of cond likes from u and down to root */ + p = u; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + } + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + +# if defined (DEBUG_ExtSS) + printf ("After:\n"); + ShowNodes (t->root, 2, NO); + getchar(); + printf ("Proposal ratio: %f\n",exp(*lnProposalRatio)); + printf ("v: %d u: %d c: %d d: %d a: %d b: %d\n",v->index, u->index, + c->index, d->index, a->index, b->index); + printf ("No. nodes moved in root subtree: %d\n",nRootNodes); + printf ("No. nodes moved in crown subtree: %d\n",nCrownNodes); + printf ("Has topology changed? %d\n",topologyHasChanged); + printf ("directionUp = %d -- directionLeft = %d\n", directionUp, directionLeft); + getchar(); +# endif + + return (NO_ERROR); +} + + +int Move_ExtSSClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change branch lengths and topology (potentially) using SS-type move + with extension probability (rather than window, attachment rate or similar). */ + + /* This move picks a branch at random. It then moves away from this branch, one + one node at a time, with a probability determined by the extensionProb parameter. + The process stops when a tip is reached or when a move further upwards would break + the clock assumption. When the extension process stops, the subtrees supported by + the two chosen branches are swapped. Since 2010-11-01, the move is Metropolized for + increased efficiency. */ + /* Note: this move is not compatible with fossilized birth-death model with ancestral fossils */ + + int i, *nEvents, numFreeOld, numFreeNew; + MrBFlt x, oldALength, oldCLength, extensionProb, igrvar, *igrRate, + *tk02Rate, *brlens, nu, ran, cumulativeProb, forwardProb, + backwardProb, minV; + TreeNode *p, *q, *a, *c; + Tree *t; + Param *subParm; + + extensionProb = mvp[0]; /* extension probability */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get min and max brlens in relative time and subst units */ + minV = BRLENS_MIN; + + /* calculate the number of free nodes */ + numFreeOld = t->nNodes-2; + if (t->nConstraints > 1) + { + numFreeOld = 0; + for (i=0; inNodes-2; i++) + { + p = t->allDownPass[i]; + if (p->anc->left == p) + q = p->anc->right; + else + q = p->anc->left; + if (p->anc->isLocked == NO || q->isLocked == NO) + numFreeOld++; + } + } + + /* pick a branch */ + do { + p = t->allDownPass[(int)(RandomNumber(seed) * (t->nNodes -2))]; + if (p->anc->left == p) + q = p->anc->right; + else + q = p->anc->left; + } + while ((p->anc->isLocked == YES && q->isLocked == YES) || p->length < TIME_MIN || q->length < TIME_MIN); + /* choose subtree that can be swapped */ + + /* set up pointers for nodes around the picked branch */ + a = p; + if (p->anc->left == p) + q = p->anc->right; + else + q = p->anc->left; + if (p->anc->anc->left == p->anc) + c = p->anc->anc->right; + else + c = p->anc->anc->left; + + /* record branch length */ + oldALength = a->length; + + /* reset scratch variables */ + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + p->x = -1; + p->y = NO; + } + + /* calculate distance from picked node */ + p = a->anc; + p->x = 0; + while (p->isLocked == NO && p->anc != NULL) + { + p->anc->x = p->x + 1; + p = p->anc; + } + for (i=t->nIntNodes-2; i>=0; i--) + { + p = t->intDownPass[i]; + if (p->x < 0 && p->anc->x >= 0 && p != a && p->isLocked == NO) + p->x = p->anc->x + 1; + } + + /* mark the free nodes and calculate the total score */ + cumulativeProb = 0.0; + for (i=0; inNodes-2; i++) + { + p = t->allDownPass[i]; + if (p != a && p->anc->x > 0 && a->anc->nodeDepth > p->nodeDepth + minV && p->anc->nodeDepth > a->nodeDepth + minV) + { + p->y = YES; + p->d = pow(0.5 * extensionProb, p->anc->x); + cumulativeProb += p->d; + } + else + p->d = 0.0; + } + + /* find the target node */ + ran = RandomNumber(seed) * cumulativeProb; + x = 0.0; + for (i=0; inNodes-2; i++) + { + p = t->allDownPass[i]; + if (p->y == YES) + { + x += p->d; + if (x > ran) + break; + } + } + if (i == t->nNodes - 2) + { + abortMove = YES; + return (NO_ERROR); + } + + /* record first forward prob */ + forwardProb = p->d / cumulativeProb; + + /* record partner swap branch */ + c = p; + oldCLength = c->length; + + /* calculate second forward prob */ + + /* reset scratch variables */ + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + p->x = -1; + p->y = NO; + } + + /* calculate distance from picked node */ + p = c->anc; + p->x = 0; + while (p->isLocked == NO && p->anc != NULL) + { + p->anc->x = p->x + 1; + p = p->anc; + } + for (i=t->nIntNodes-1; i>=0; i--) + { + p = t->intDownPass[i]; + if (p->x < 0 && p != c && p->anc->x >= 0 && p->isLocked == NO) + p->x = p->anc->x + 1; + } + + /* mark the free nodes and calculate the total score */ + cumulativeProb = 0.0; + for (i=0; inNodes-2; i++) + { + p = t->allDownPass[i]; + if (p != c && p->anc->x > 0 && c->anc->nodeDepth > p->nodeDepth + minV && p->anc->nodeDepth > c->nodeDepth + minV) + { + p->y = YES; + p->d = pow(0.5 * extensionProb, p->anc->x); + cumulativeProb += p->d; + } + else + p->d = 0.0; + } + + /* now we can calculate second forward prob */ + forwardProb += a->d / cumulativeProb; + + /* swap subtrees */ + if (a->anc->left == a) + a->anc->left = c; + else + a->anc->right = c; + if (c->anc->left == c) + c->anc->left = a; + else + c->anc->right = a; + p = a->anc; + a->anc = c->anc; + c->anc = p; + a->length = a->anc->nodeDepth - a->nodeDepth; + c->length = c->anc->nodeDepth - c->nodeDepth; + + /* get down pass sequence */ + GetDownPass (t); + + /* set tiprobs update flags */ + a->upDateTi = YES; + c->upDateTi = YES; + + /* set flags for update of cond likes from a->anc and down to root */ + p = a->anc; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* set flags for update of cond likes from c->anc and down to root */ + p = c->anc; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* adjust prior ratio for clock tree */ + if (LogClockTreePriorRatio(param, chain, &x) == ERROR) + return (ERROR); + (*lnPriorRatio) += x; + + /* calculate first backward prob */ + + /* reset scratch variables */ + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + p->x = -1; + p->y = NO; + } + + /* calculate distance from picked node */ + p = a->anc; + p->x = 0; + while (p->isLocked == NO && p->anc != NULL) + { + p->anc->x = p->x + 1; + p = p->anc; + } + for (i=t->nIntNodes-1; i>=0; i--) + { + p = t->intDownPass[i]; + if (p->x < 0 && p != a && p->anc->x >= 0 && p->isLocked == NO) + p->x = p->anc->x + 1; + } + + /* mark the free nodes and calculate the total score */ + cumulativeProb = 0.0; + for (i=0; inNodes-2; i++) + { + p = t->allDownPass[i]; + if (p != a && p->anc->x > 0 && a->anc->nodeDepth > p->nodeDepth + minV && p->anc->nodeDepth > a->nodeDepth + minV) + { + p->y = YES; + p->d = pow(0.5 * extensionProb, p->anc->x); + cumulativeProb += p->d; + } + else + p->d = 0.0; + } + + /* calculate first backward prob */ + backwardProb = c->d / cumulativeProb; + + /* calculate second backward prob */ + + /* reset scratch variables */ + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + p->x = -1; + p->y = NO; + } + + /* calculate distance from picked node */ + p = c->anc; + p->x = 0; + while (p->isLocked == NO && p->anc != NULL) + { + p->anc->x = p->x + 1; + p = p->anc; + } + for (i=t->nIntNodes-1; i>=0; i--) + { + p = t->intDownPass[i]; + if (p->x < 0 && p != c && p->anc->x >= 0 && p->isLocked == NO) + p->x = p->anc->x + 1; + } + + /* mark the free nodes and calculate the total score */ + cumulativeProb = 0.0; + for (i=0; inNodes-2; i++) + { + p = t->allDownPass[i]; + if (p != c && p->anc->x > 0 && c->anc->nodeDepth > p->nodeDepth + minV && p->anc->nodeDepth > c->nodeDepth + minV) + { + p->y = YES; + p->d = pow(0.5 * extensionProb, p->anc->x); + cumulativeProb += p->d; + } + else + p->d = 0.0; + } + + /* calculate second backward prob */ + backwardProb += a->d / cumulativeProb; + + /* now we can calculate proposal ratio */ + (*lnProposalRatio) += log (backwardProb / forwardProb); + + /* adjust for number of free nodes */ + numFreeNew = t->nNodes-2; + if (t->nConstraints > 1) + { + numFreeNew = 0; + for (i=0; inNodes-2; i++) + { + p = t->allDownPass[i]; + if (p->anc->left == p) + q = p->anc->right; + else + q = p->anc->left; + if (p->anc->isLocked == NO || q->isLocked == NO) + numFreeNew++; + } + (*lnProposalRatio) += log(numFreeOld / numFreeNew); + } + + /* adjust proposal and prior ratio for relaxed clock models */ + for (i=0; isubParams[0]->nSubParams; i++) + { + subParm = param->subParams[0]->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + nEvents = subParm->nEvents[2*chain+state[chain]]; + + /* proposal ratio */ + (*lnProposalRatio) += nEvents[a->index] * log (a->length / oldALength); + (*lnProposalRatio) += nEvents[c->index] * log (c->length / oldCLength); + + /* prior ratio: no effect because tree length is the same */ + + /* update effective evolutionary lengths */ + if (UpdateCppEvolLengths (subParm, a, chain) == ERROR || UpdateCppEvolLengths (subParm, c, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + } + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* no proposal ratio effect */ + + /* prior ratio and update of effective evolutionary lengths */ + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[c->anc->index], nu*oldALength, tk02Rate[a->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[a->anc->index], nu* a->length, tk02Rate[a->index]); + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[a->anc->index], nu*oldCLength, tk02Rate[c->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[c->anc->index], nu* c->length, tk02Rate[c->index]); + brlens[a->index] = a->length * (tk02Rate[a->index] + tk02Rate[a->anc->index])/2.0; + brlens[c->index] = c->length * (tk02Rate[c->index] + tk02Rate[c->anc->index])/2.0; + } + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + /* get relevant parameters */ + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* prior ratio and update of effective evolutionary lengths */ + (*lnPriorRatio) -= LnProbGamma (oldALength/igrvar, oldALength/igrvar, igrRate[a->index]); + (*lnPriorRatio) -= LnProbGamma (oldCLength/igrvar, oldCLength/igrvar, igrRate[c->index]); + (*lnPriorRatio) += LnProbGamma (a->length /igrvar, a->length /igrvar, igrRate[a->index]); + (*lnPriorRatio) += LnProbGamma (c->length /igrvar, c->length /igrvar, igrRate[c->index]); + brlens[a->index] = igrRate[a->index] * a->length; + brlens[c->index] = igrRate[c->index] * c->length; + } + } + + assert (*lnPriorRatio == *lnPriorRatio); + + return (NO_ERROR); +} + + +int Move_ExtTBR (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change topology (and branch lengths) using TBR with extension probability. */ + + /* This move picks an internal branch and two "danglies", modifies their lengths + independently according to the method of Larget & Simon (1999: MBE); it then + moves the danglies away from their original position one node at a time with + a probability determined by the extensionProb parameter. When the danglies are moved, + their direction is changed -- "reflection" necessary to enable the back move. + + This move type has been tested on all combinations of rooted and unrooted, + constrained and unconstrained trees */ + + int i, j, topologyHasChanged, nCrownNodes, nRootNodes, directionLeft, directionUp, + isVPriorExp, alwaysMoveRoot, isCrownStartConstrained, isRootStartConstrained, isStopConstrained; + MrBFlt m, x, y, tuning, maxV, minV, extensionProb, brlensExp=0.0; + TreeNode *p, *a, *b, *c, *d, *u, *v; + Tree *t; + ModelParams *mp; + + /* these parameters should be possible to set by user */ + extensionProb = mvp[0]; /* extension probability */ + tuning = mvp[1]; /* Larget & Simon's tuning parameter lambda */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1] < BRLENS_MAX ? mp->brlensUni[1] : BRLENS_MAX; + isVPriorExp = NO; + } + else if (param->subParams[0]->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->subParams[0]->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->subParams[0]->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + topologyHasChanged = NO; + +# if defined (DEBUG_ExtTBR) + printf ("Before:\n"); + ShowNodes (t->root, 2, NO); + getchar(); +# endif + + /* pick an internal branch */ + do { + p = t->intDownPass[(int)(RandomNumber(seed) * (t->nIntNodes-1))]; + if (p->anc->left == p) + a = p->anc->right; + else + a = p->anc->left; + i = j = 0; + if (a->isLocked == YES || a->left == NULL) + i++; + if (p->anc->isLocked == YES || p->anc->anc->anc == NULL) + i++; + if (p->left->isLocked == YES || p->left->left == NULL) + j++; + if (p->right->isLocked == YES || p->right->left == NULL) + j++; + } while (i == 2 && j == 2); + + /* determine whether to move first step unconditionally in root or in crown */ + if (j == 2) + alwaysMoveRoot = YES; + else if (i == 2) + alwaysMoveRoot = NO; + else if (RandomNumber(seed) < 0.5) + alwaysMoveRoot = YES; + else + alwaysMoveRoot = NO; + + /* determine any starting constraints */ + isCrownStartConstrained = isRootStartConstrained = NO; + if (i >= 1) + isRootStartConstrained = YES; + if (j >= 1) + isCrownStartConstrained = YES; + + /* set up pointers for nodes around the picked branch */ + /* cut the tree into crown, root and attachment part */ + /* change the relevant lengths in the attachment part */ + /* the lengths of a and v are automatically contained in the */ + /* "attachment" part but the length of c has to be stored in x */ + v = p; + u = p->anc; + + /* set up pointers for crown part */ + /* also determine direction of move in crown part */ + if (v->right->left == NULL || v->right->isLocked == YES) + directionLeft = YES; + else if (v->left->left == NULL || v->left->isLocked == YES) + directionLeft = NO; + else if (RandomNumber(seed) < 0.5) + directionLeft = YES; + else + directionLeft = NO; + if (directionLeft == YES) + { + c = v->left; + d = v->right; + } + else + { + c = v->right; + d = v->left; + } + + /* cut and reconnect crown part */ + c->anc = d; + d->anc = c; + + /* record c length and adjust with multiplier using reflection */ + m = c->length; + x = c->length * exp(tuning * (RandomNumber(seed) - 0.5)); /* save the modified dangling branch for later use */ + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) = log (x / m); + if (isVPriorExp == YES) + (*lnPriorRatio) = brlensExp * (m - x); + + /* record v length and adjust with multiplier using reflection*/ + m = v->length; + v->length *= exp(tuning * (RandomNumber(seed) - 0.5)); + while (v->length < minV || v->length > maxV) + { + if (v->length < minV) + v->length = minV * minV / v->length; + else if (v->length > maxV) + v->length = maxV * maxV / v->length; + } + v->upDateTi = YES; + + /* adjust proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (v->length / m); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (m - v->length); + + /* mark nodes in root part */ + /* also determine direction of move in root part */ + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + if (u->anc->anc == NULL || u->isLocked == YES) + directionUp = YES; + else if (a->left == NULL || a->isLocked == YES) + directionUp = NO; + else if (RandomNumber(seed) < 0.5) + directionUp = YES; + else + directionUp = NO; + if (directionUp == NO) + { + /* switch a and b */ + b = a; + a = u->anc; + } + + /* cut root part */ + if (directionUp == NO) + { + b->anc = a; + if (a->left == u) + a->left = b; + else + a->right = b; + } + else + { + a->anc = b; + if (b->left == u) + b->left = a; + else + b->right = a; + y = a->length; + a->length = u->length; + u->length = y; + a->upDateTi = YES; + } + + /* adjust length of branch to be modified */ + /* if it is not the root branch of a rooted tree */ + if (t->isRooted == NO || u->anc->anc != NULL) + { + m = u->length; + u->length *= exp(tuning * (RandomNumber(seed) - 0.5)); + while (u->length < minV || u->length > maxV) + { + if (u->length < minV) + u->length = minV * minV / u->length; + else if (u->length > maxV) + u->length = maxV * maxV / u->length; + } + + /* adjust proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (u->length / m); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (m - u->length); + } + u->upDateTi = YES; + + /* move around in root subtree */ + for (nRootNodes=0; (alwaysMoveRoot == YES && nRootNodes == 0) || RandomNumber(seed) < extensionProb; nRootNodes++) + { + if (directionUp == YES) + { /* going up tree */ + if (a->left == NULL || a->isLocked == YES) + break; /* can't go further */ + topologyHasChanged = YES; + b = a; + if (RandomNumber(seed) < 0.5) + a = a->left; + else + a = a->right; + if (u->isLocked == YES) + { + b->isLocked = YES; + u->isLocked = NO; + b->lockID = u->lockID; + u->lockID = 0; + } + } + else + { /* going down tree */ + if (a->anc == NULL || u->isLocked == YES) + break; /* can't go further */ + topologyHasChanged = YES; + if (RandomNumber(seed)<0.5) + { + directionUp = YES; /* switch direction */ + /* find sister of a */ + if (a->left == b) + { + b = a; + a = a->right; + } + else + { + b = a; + a = a->left; + } + /* as long as we are moving upwards + the cond likes to update will be + flagged by the last pass from u to the root */ + } + else + { /* continue down */ + b = a; + a = a->anc; + b->upDateCl = YES; + if (b->isLocked == YES) + { + u->isLocked = YES; + b->isLocked = NO; + u->lockID = b->lockID; + b->lockID = 0; + } + } + } + } + + /* adjust proposal ratio for root move if unbalanced */ + isStopConstrained = NO; + if (directionUp == YES && (a->left == NULL || a->isLocked == YES)) + isStopConstrained = YES; + if (directionUp == NO && (a->anc == NULL || u->isLocked == YES)) + isStopConstrained = YES; + if (nRootNodes > 0) + { + if (isRootStartConstrained == YES && isStopConstrained == NO) + (*lnProposalRatio) -= log (2.0 * (1.0 - extensionProb)); + else if (isRootStartConstrained == NO && isStopConstrained == YES) + (*lnProposalRatio) += log (2.0 * (1.0 - extensionProb)); + } + + /* move around in crown subtree */ + for (nCrownNodes=0; (alwaysMoveRoot == NO && nCrownNodes == 0) || RandomNumber(seed) < extensionProb; nCrownNodes++) + { + if (c->left == NULL || c->isLocked == YES) + break; /* can't go further */ + topologyHasChanged = YES; + if (RandomNumber(seed) < 0.5) + { + /* rotate c anticlockwise - prepare pointers for move left */ + c->anc = c->left; /* the root will be in the direction we are heading */ + c->left = c->right; + c->right = d; + } + else + { + /* rotate c clockwise - prepare pointers for move right */ + c->anc = c->right; /* the root will be in the direction we are heading */ + c->right = c->left; + c->left = d; + } + /* OK - let's move!; c->anc points in the right direction + don't forget to move the branch lengths as well */ + d = c; + c = c->anc; + d->length = c->length; + d->upDateCl = YES; + d->upDateTi = YES; + } + + /* adjust proposal ratio for crown move if unbalanced */ + isStopConstrained = NO; + if (c->left == NULL || c->isLocked == YES) + isStopConstrained = YES; + if (nCrownNodes > 0) + { + if (isCrownStartConstrained == YES && isStopConstrained == NO) + (*lnProposalRatio) -= log (2.0 * (1.0 - extensionProb)); + else if (isCrownStartConstrained == NO && isStopConstrained == YES) + (*lnProposalRatio) += log (2.0 * (1.0 - extensionProb)); + } + + /* combine the subtrees */ + c->anc = v; + d->anc = v; + if (directionLeft == YES) + { + v->left = c; + v->right = d; + } + else + { + v->left = d; + v->right = c; + } + + /* the dangling branch is inserted in reverted position + such that the back move will be possible + if we have moved around in crown subtree + otherwise it is left in its original position */ + if (nCrownNodes > 0) + { + d->length = x; + d->upDateTi = YES; + } + else + { + c->length = x; + c->upDateTi = YES; + } + + if (directionUp == YES) + { + u->anc = b; + if (u->left == v) + u->right = a; + else + u->left = a; + a->anc = u; + if (b->left == a) + b->left = u; + else + b->right = u; + /* the dangling branch is contained in u->length + and will automatically be inserted in the right position + to enable the back move regardless of whether it was + initially directed upwards or downwards + BUT if we haven't moved in root subtree, it is advantageous (necessary + for rooted trees) to avoid switching branches, which occurs otherwise + if directionUp == YES */ + if (nRootNodes == 0) + { + y = u->length; + u->length = a->length; + a->length = y; + a->upDateTi = YES; + u->upDateTi = NO; /* u retains its old length */ + } + } + else + { + u->anc = a; + if (u->left == v) + u->right = b; + else + u->left = b; + b->anc = u; + if (a->left == b) + a->left = u; + else + a->right = u; + /* the modified branch contained in u->length will have + to be moved to b->length to enable back move + BUT if we haven't moved, it is better to keep it in place + (necessary for rooted trees) */ + if (nRootNodes > 0) + { + y = u->length; + u->length = b->length; + b->length = y; + b->upDateTi = YES; + } + } + + /* set flags for update of cond likes from v and down to root */ + p = v; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + +# if defined (DEBUG_ExtTBR) + printf ("After:\n"); + ShowNodes (t->root, 2, NO); + getchar(); + printf ("Proposal ratio: %f\n",(*lnProposalRatio)); + printf ("v: %d u: %d c: %d d: %d a: %d b: %d\n",v->index, u->index, + c->index, d->index, a->index, b->index); + printf ("No. nodes moved in root subtree: %d\n",nRootNodes); + printf ("No. nodes moved in crown subtree: %d\n",nCrownNodes); + printf ("Has topology changed? %d\n",topologyHasChanged); + getchar(); +# endif + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_GeneRate_Dir: Change gene rate multiplier using Dirichlet +| proposal. +| +----------------------------------------------------------------*/ +int Move_GeneRate_Dir (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, nRates, isValid; + MrBFlt alphaPi, *value, *subValue, numSites, *alphaDir, x, y, sum, + rate_pot, *dirParm, *oldRate, *newRate; + + /* allocate memory */ + dirParm = (MrBFlt *) SafeCalloc (3*(numTopologies-1), sizeof(MrBFlt)); + oldRate = dirParm + numCurrentDivisions; + newRate = dirParm + 2*numCurrentDivisions; + + /* get number of rates */ + nRates = param->nValues; + + /* get pointer to rates and number of uncompressed chars */ + value = GetParamVals(param, chain, state[chain]); + subValue = GetParamSubVals(param, chain, state[chain]); + + /* get Dirichlet parameters */ + alphaDir = subValue + nRates; + + /* calculate old ratesum proportions */ + numSites = 0.0; + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* may need to hit update flag for cijks when you have a covarion model */ + for (i=0; inRelParts; i++) + if (modelSettings[param->relParts[i]].nCijkParts > 1) + modelSettings[param->relParts[i]].upDateCijk = YES; + + free (dirParm); + + return (NO_ERROR); +} + + +int Move_RateShape_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change gamma/lnorm shape parameter using multiplier */ + + int i, isAPriorExp, isValidA; + MrBFlt oldA, newA, minA, maxA, alphaExp=0.0, ran, factor, tuning, *rates; + ModelParams *mp; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get minimum and maximum values for alpha */ + if (param->paramId == SHAPE_UNI) + { + minA = mp->shapeUni[0]; + maxA = mp->shapeUni[1]; + if (minA < MIN_SHAPE_PARAM) + minA = MIN_SHAPE_PARAM; + if (maxA > MAX_SHAPE_PARAM) + maxA = MAX_SHAPE_PARAM; + isAPriorExp = NO; + } + else + { + minA = MIN_SHAPE_PARAM; + maxA = MAX_SHAPE_PARAM; + alphaExp = mp->shapeExp; + isAPriorExp = YES; + } + + /* get old value of alpha */ + oldA = *GetParamVals(param, chain, state[chain]); + + /* change value for alpha */ + ran = RandomNumber(seed); + factor = exp(tuning * (ran - 0.5)); + newA = oldA * factor; + + /* check validity */ + isValidA = NO; + do { + if (newA < minA) + newA = minA * minA / newA; + else if (newA > maxA) + newA = maxA * maxA / newA; + else + isValidA = YES; + } while (isValidA == NO); + + /* get proposal ratio */ + *lnProposalRatio = log(newA / oldA); + + /* get prior ratio */ + if (isAPriorExp == NO) + *lnPriorRatio = 0.0; + else + *lnPriorRatio = -alphaExp * (newA - oldA); + + /* copy new alpha value back */ + *GetParamVals(param, chain, state[chain]) = newA; + + /* now, update rate category information */ + rates = GetParamSubVals (param, chain, state[chain]); + + if(!strcmp(mp->ratesModel, "LNorm")) + { + if (DiscreteLogNormal (rates, newA, mp->numGammaCats, 1) == ERROR) + return (ERROR); + } + else /* gamma rate */ + { + if (DiscreteGamma (rates, newA, newA, mp->numGammaCats, 0) == ERROR) + return (ERROR); + } + + /* Set update flags for all partitions that share this alpha. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* We need to update flags when we have a covarion model */ + for (i=0; inRelParts; i++) + if (modelSettings[param->relParts[i]].nCijkParts > 1) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +int Move_Growth_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + MrBFlt oldG, newG, lambda, minG, maxG, ran, oldLnPrior, newLnPrior, curTheta; + ModelParams *mp; + ModelInfo *m; + Tree *t; + + /* get tuning parameter */ + lambda = mvp[0]; + + /* get model params */ + m = &modelSettings[param->relParts[0]]; + mp = &modelParams[param->relParts[0]]; + curTheta = (*GetParamVals(m->popSize, chain, state[chain])) * (*GetParamVals(m->clockRate, chain, state[chain])); + if (!strcmp(mp->ploidy, "Diploid")) + curTheta *= 4.0; + else if (!strcmp(mp->ploidy, "Zlinked")) + curTheta *= 3.0; + else + curTheta *= 2.0; + + /* get minimum and maximum values for growth */ + minG = param->min; + maxG = param->max; + + /* get old value of theta */ + newG = oldG = *GetParamVals(param, chain, state[chain]); + if (newG < minG) + newG = oldG = minG; + + /* change value of growth */ + ran = RandomNumber(seed); + newG = oldG * exp (lambda * (ran - 0.5)); + + /* check that new value is valid */ + while (newG < minG || newG > maxG) + { + if (newG < minG) + newG = minG * minG / newG; + else if (newG > maxG) + newG = maxG * maxG / newG; + } + + /* get proposal ratio */ + (*lnProposalRatio) = log (newG / oldG); + + /* get prior ratio */ + t = GetTree(modelSettings[param->relParts[0]].brlens,chain,state[chain]); + if (LnCoalescencePriorPr (t, &oldLnPrior, curTheta, oldG) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for coalescent process\n", spacer); + return (ERROR); + } + if (LnCoalescencePriorPr (t, &newLnPrior, curTheta, newG) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for coalescent process\n", spacer); + return (ERROR); + } + (*lnPriorRatio) = newLnPrior - oldLnPrior + param->LnPriorRatio(newG, oldG, param->priorParams); + + /* copy new growth value back */ + *GetParamVals(param, chain, state[chain]) = newG; + + return (NO_ERROR); +} + + +int Move_IgrBranchRate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move one IGR relaxed clock branch rate using multiplier */ + + int i; + MrBFlt newRate, oldRate, tuning, minR, maxR, igrvar, *igrRate, *brlens; + TreeNode *p = NULL; + ModelInfo *m; + Tree *t; + TreeNode *q; + + /* get the tuning parameter */ + tuning = mvp[0]; + + /* get the model settings */ + m = &modelSettings[param->relParts[0]]; + + /* get the IGR branch rate and effective branch length data */ + igrRate = GetParamVals (param, chain, state[chain]); + brlens = GetParamSubVals (param, chain, state[chain]); + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get minimum and maximum rate */ + minR = RATE_MIN; + maxR = RATE_MAX; + + /* randomly pick a branch */ + do { + i = (int) (RandomNumber(seed) * (t->nNodes -2)); + p = t->allDownPass[i]; + } + while (p->length < TIME_MIN); // not ancestral fossil + + /* find new rate using multiplier */ + oldRate = igrRate[p->index]; + newRate = oldRate * exp ((0.5 - RandomNumber(seed)) * tuning); + + /* reflect if necessary */ + while (newRate < minR || newRate > maxR) + { + if (newRate < minR) + newRate = minR * minR / newRate; + if (newRate > maxR) + newRate = maxR * maxR / newRate; + } + + igrRate[p->index] = newRate; + + /* calculate prior ratio */ + igrvar = *GetParamVals (m->igrvar, chain, state[chain]); + (*lnPriorRatio) = LnProbGamma (p->length/igrvar, p->length/igrvar, newRate) + - LnProbGamma (p->length/igrvar, p->length/igrvar, oldRate); + + /* calculate proposal ratio */ + (*lnProposalRatio) = log (newRate / oldRate); + + /* update branch evolution lengths */ + brlens[p->index] = newRate * p->length; + + /* set update of transition probability */ + p->upDateTi = YES; + + /* set update of cond likes down to root */ + q = p->anc; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + + return (NO_ERROR); +} + + +int Move_IgrBranchRate2 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move one IGR relaxed clock branch rate using sliding window */ + + int i; + MrBFlt newRate, oldRate, window, minR, maxR, igrvar, *igrRate, *brlens; + TreeNode *p = NULL; + ModelInfo *m; + Tree *t; + TreeNode *q; + + /* get the tuning parameter */ + window = mvp[0]; + + /* get the model settings */ + m = &modelSettings[param->relParts[0]]; + + /* get the IGR branch rate and effective branch length data */ + igrRate = GetParamVals (param, chain, state[chain]); + brlens = GetParamSubVals (param, chain, state[chain]); + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get minimum and maximum rate */ + minR = RATE_MIN; + maxR = RATE_MAX; + + /* randomly pick a branch */ + do { + i = (int) (RandomNumber(seed) * (t->nNodes -2)); + p = t->allDownPass[i]; + } + while (p->length < TIME_MIN); // not ancestral fossil + + /* find new rate using multiplier */ + oldRate = igrRate[p->index]; + newRate = oldRate + window * (RandomNumber(seed) - 0.5); + + /* reflect if necessary */ + while (newRate < minR || newRate > maxR) + { + if (newRate < minR) + newRate = 2 * minR - newRate; + if (newRate > maxR) + newRate = 2 * maxR - newRate; + } + + igrRate[p->index] = newRate; + + /* calculate prior ratio */ + igrvar = *GetParamVals (m->igrvar, chain, state[chain]); + (*lnPriorRatio) = LnProbGamma (p->length/igrvar, p->length/igrvar, newRate) + - LnProbGamma (p->length/igrvar, p->length/igrvar, oldRate); + + /* calculate proposal ratio */ + (*lnProposalRatio) = 0.0; + + /* update branch evolution lengths */ + brlens[p->index] = newRate * p->length; + + /* set update of transition probability */ + p->upDateTi = YES; + + /* set update of cond likes down to root */ + q = p->anc; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + + return (NO_ERROR); +} + + +int Move_IgrVar (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move the variance of the IGR relaxed clock model using multiplier */ + + int i, j; + MrBFlt oldIgrvar, newIgrvar, minIgrvar, maxIgrvar, tuning, *igrRate; + Model *mp; + TreeNode *p; + Tree *t; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get the min and max values */ + minIgrvar = IGRVAR_MIN; + maxIgrvar = IGRVAR_MAX; + if (!strcmp(mp->igrvarPr,"Uniform")) + { + minIgrvar = (mp->igrvarUni[0] < IGRVAR_MIN) ? IGRVAR_MIN : mp->igrvarUni[0]; + maxIgrvar = (mp->igrvarUni[1] > IGRVAR_MAX) ? IGRVAR_MAX : mp->igrvarUni[1]; + } + + /* get the igr variance */ + oldIgrvar = *GetParamVals (param, chain, state[chain]); + + /* set new value */ + newIgrvar = oldIgrvar * exp ((0.5 - RandomNumber(seed))*tuning); + + /* reflect if necessary */ + while (newIgrvar < minIgrvar || newIgrvar > maxIgrvar) + { + if (newIgrvar < minIgrvar) + newIgrvar = minIgrvar * minIgrvar / newIgrvar; + if (newIgrvar > maxIgrvar) + newIgrvar = maxIgrvar * maxIgrvar / newIgrvar; + } + + /* store new value */ + (*GetParamVals (param, chain, state[chain])) = newIgrvar; + + /* calculate prior ratio */ + for (i=0; inSubParams; i++) + { + igrRate = GetParamVals (param->subParams[i], chain, state[chain]); + t = GetTree (param->subParams[i], chain, state[chain]); + for (j=0; jnNodes-2; j++) + { + p = t->allDownPass[j]; + if (p->length > 0.0) // not ancestral fossil + { + (*lnPriorRatio) -= LnProbGamma (p->length/oldIgrvar, p->length/oldIgrvar, igrRate[p->index]); + (*lnPriorRatio) += LnProbGamma (p->length/newIgrvar, p->length/newIgrvar, igrRate[p->index]); + } + } + } + + /* take prior on Igrvar into account */ + if (!strcmp(mp->igrvarPr,"Exponential")) + (*lnPriorRatio) += mp->igrvarExp * (oldIgrvar - newIgrvar); + + /* calculate proposal ratio */ + (*lnProposalRatio) = log (newIgrvar / oldIgrvar); + + /* we do not need to update likelihoods */ + for (i=0; inRelParts; i++) + { + modelSettings[param->relParts[i]].upDateCl = NO; + } + + return (NO_ERROR); +} + + +int Move_MixedBranchRate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move one relaxed clock branch rate using multiplier */ + + int i, *rclModel=NULL; + MrBFlt newRate, oldRate, tuning, minR, maxR, mxvar, *mxRate, *brlens; + TreeNode *p = NULL, *q; + ModelInfo *m; + Tree *t; + + /* get the tuning parameter */ + tuning = mvp[0]; + + /* get the model settings */ + m = &modelSettings[param->relParts[0]]; + + /* get the branch rate and effective branch length data */ + mxRate = GetParamVals (param, chain, state[chain]); + brlens = GetParamSubVals (param, chain, state[chain]); + rclModel = GetParamIntVals(param, chain, state[chain]); + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get minimum and maximum rate */ + minR = RATE_MIN; + maxR = RATE_MAX; + + /* randomly pick a length */ + do { + i = (int) (RandomNumber(seed) * (t->nNodes -2)); + p = t->allDownPass[i]; + } + while (p->length < TIME_MIN); // not ancestral fossil + + /* find new rate using multiplier */ + oldRate = mxRate[p->index]; + newRate = oldRate * exp ((0.5 - RandomNumber(seed)) * tuning); + + /* reflect if necessary */ + while (newRate < minR || newRate > maxR) + { + if (newRate < minR) + newRate = minR * minR / newRate; + if (newRate > maxR) + newRate = maxR * maxR / newRate; + } + + mxRate[p->index] = newRate; + + /* calculate prior ratio */ + mxvar = *GetParamVals (m->mixedvar, chain, state[chain]); + + if (*rclModel == RCL_TK02) + { + (*lnPriorRatio) += LnRatioTK02LogNormal (mxRate[p->anc->index], mxvar*p->length, newRate, oldRate); + if (p->left != NULL) + { + if (p->left->length > 0.0) + { + (*lnPriorRatio) -= LnProbTK02LogNormal (oldRate, mxvar*p->left->length, mxRate[p->left->index ]); + (*lnPriorRatio) += LnProbTK02LogNormal (newRate, mxvar*p->left->length, mxRate[p->left->index ]); + } + if (p->right->length > 0.0) + { + (*lnPriorRatio) -= LnProbTK02LogNormal (oldRate, mxvar*p->right->length, mxRate[p->right->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (newRate, mxvar*p->right->length, mxRate[p->right->index]); + } + } + + /* update branch evolution lengths */ + brlens[p->index] = p->length * (newRate + mxRate[p->anc->index]) / 2.0; + if (p->left != NULL) + { + brlens[p->left->index ] = p->left->length * (mxRate[p->left->index ] + newRate) / 2.0; + brlens[p->right->index] = p->right->length * (mxRate[p->right->index] + newRate) / 2.0; + } + + /* set update of ti probs */ + p->upDateTi = YES; + if (p->left != NULL) + { + p->left ->upDateTi = YES; + p->right->upDateTi = YES; + } + } + else if (*rclModel == RCL_IGR) + { + (*lnPriorRatio) -= LnProbGamma (p->length/mxvar, p->length/mxvar, oldRate); + (*lnPriorRatio) += LnProbGamma (p->length/mxvar, p->length/mxvar, newRate); + + brlens[p->index] = newRate * p->length; + + /* set update of transition probability */ + p->upDateTi = YES; + } + + /* calculate proposal ratio */ + (*lnProposalRatio) = log (newRate / oldRate); + + /* set update of cond likes down to root */ + p->upDateCl = YES; + q = p->anc; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + + return (NO_ERROR); +} + + +int Move_MixedVar (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move the variance of the mixed relaxed clock models using multiplier */ + + int i, j, *rclModel=NULL; + MrBFlt oldVar, newVar, minVar, maxVar, tuning, *igrRate, *tk02Rate; + Model *mp; + TreeNode *p; + Tree *t; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get the min and max values */ + minVar = MIXEDVAR_MIN; + maxVar = MIXEDVAR_MAX; + if (!strcmp(mp->mixedvarPr,"Uniform")) + { + minVar = (mp->mixedvarUni[0] < MIXEDVAR_MIN) ? MIXEDVAR_MIN : mp->mixedvarUni[0]; + maxVar = (mp->mixedvarUni[1] > MIXEDVAR_MAX) ? MIXEDVAR_MAX : mp->mixedvarUni[1]; + } + + /* get the variance */ + oldVar = *GetParamVals (param, chain, state[chain]); + + /* set new value */ + newVar = oldVar * exp ((0.5 - RandomNumber(seed))*tuning); + + /* reflect if necessary */ + while (newVar < minVar || newVar > maxVar) + { + if (newVar < minVar) + newVar = minVar * minVar / newVar; + if (newVar > maxVar) + newVar = maxVar * maxVar / newVar; + } + + /* store new value */ + (*GetParamVals (param, chain, state[chain])) = newVar; + + /* calculate prior ratio */ + for (i=0; inSubParams; i++) + { + rclModel = GetParamIntVals (param->subParams[i], chain, state[chain]); + + if (*rclModel == RCL_TK02) + { + tk02Rate = GetParamVals (param->subParams[i], chain, state[chain]); + t = GetTree (param->subParams[i], chain, state[chain]); + for (j=0; jnNodes-2; j++) + { + p = t->allDownPass[j]; + if (p->length > 0.0) // not ancestral fossil + { + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[p->anc->index], oldVar*p->length, tk02Rate[p->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[p->anc->index], newVar*p->length, tk02Rate[p->index]); + } + } + } + else if (*rclModel == RCL_IGR) + { + igrRate = GetParamVals (param->subParams[i], chain, state[chain]); + t = GetTree (param->subParams[i], chain, state[chain]); + for (j=0; jnNodes-2; j++) + { + p = t->allDownPass[j]; + if (p->length > 0.0) // not ancestral fossil + { + (*lnPriorRatio) -= LnProbGamma (p->length/oldVar, p->length/oldVar, igrRate[p->index]); + (*lnPriorRatio) += LnProbGamma (p->length/newVar, p->length/newVar, igrRate[p->index]); + } + } + } + } + + /* take prior on Mixedvar into account */ + if (!strcmp(mp->mixedvarPr,"Exponential")) + (*lnPriorRatio) += mp->mixedvarExp * (oldVar - newVar); + + /* calculate proposal ratio */ + (*lnProposalRatio) = log (newVar / oldVar); + + /* we do not need to update likelihoods */ + for (i=0; inRelParts; i++) + { + modelSettings[param->relParts[i]].upDateCl = NO; + } + + return (NO_ERROR); +} + + +int Move_RelaxedClockModel (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* rjMCMC move between TK02 (correlated lognormal) and IGR (independent gamma rate) + //chi */ + + int i, *rclModel; + MrBFlt *mxvar, *mxRate, *brlens, ratio, tk02var, igrvar; + Tree *t; + TreeNode *p = NULL; + ModelInfo *m; + Model *mp; + + /* get model settings and parameters */ + m = &modelSettings[param->relParts[0]]; + mp = &modelParams[param->relParts[0]]; + mxvar = GetParamVals (m->mixedvar, chain, state[chain]); + mxRate = GetParamVals (param, chain, state[chain]); + brlens = GetParamSubVals (param, chain, state[chain]); + t = GetTree (param, chain, state[chain]); + + /* get current value of model indicator */ + rclModel = GetParamIntVals(param, chain, state[chain]); + + /* get tk02/igr var ratio */ + ratio = mvp[0]; + + (*lnPriorRatio) = (*lnProposalRatio) = 0.0; + + /* rjMCMC between models: Pr(TK02) = Pr(IGR) = 1/2 */ + /* the current model is TK02, move to IGR */ + if ((*rclModel) == RCL_TK02) + { + /* move the var parameter */ + tk02var = (*mxvar); + // ratio *= RandomNumber(seed); + igrvar = tk02var / ratio; + if (igrvar < IGRVAR_MIN || igrvar > IGRVAR_MAX) + { + abortMove = YES; + return (NO_ERROR); + } + + /* take prior on Mixedvar into account */ + if (!strcmp(mp->mixedvarPr,"Exponential")) + (*lnPriorRatio) += mp->mixedvarExp * (tk02var - igrvar); + + /* match the rates and change the effective branch lengths */ + for (i = 0; i < t->nNodes -2; i++) + { + p = t->allDownPass[i]; + if (p->length > 0.0) // not ancestral fossil + { + (*lnPriorRatio) -= LnProbTK02LogNormal (mxRate[p->anc->index], tk02var*p->length, mxRate[p->index]); + (*lnPriorRatio) += LnProbGamma (p->length/igrvar, p->length/igrvar, mxRate[p->index]); + + brlens[p->index] = mxRate[p->index] * p->length; + } + } + + /* In this move, we simply match the parameters in each model, + the dimension is same, the Jacobian is 1/ratio. */ + (*lnProposalRatio) -= log(ratio); + + /* switch model */ + (*rclModel) = RCL_IGR; + (*mxvar) = igrvar; + } + /* the current model is IGR, move to TK02 */ + else + { + /* move the var parameter */ + igrvar = (*mxvar); + // ratio *= RandomNumber(seed); + tk02var = igrvar * ratio; + if (tk02var < TK02VAR_MIN || tk02var > TK02VAR_MAX) + { + abortMove = YES; + return (NO_ERROR); + } + + /* take prior on Mixedvar into account */ + if (!strcmp(mp->mixedvarPr,"Exponential")) + (*lnPriorRatio) += mp->mixedvarExp * (igrvar - tk02var); + + /* match the rates and change the effective branch lengths */ + for (i = 0; i < t->nNodes -2; i++) + { + p = t->allDownPass[i]; + if (p->length > 0.0) // not ancestral fossil + { + (*lnPriorRatio) -= LnProbGamma (p->length/igrvar, p->length/igrvar, mxRate[p->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (mxRate[p->anc->index], tk02var*p->length, mxRate[p->index]); + + brlens[p->index] = p->length * (mxRate[p->index] + mxRate[p->anc->index]) /2.0; + } + } + + /* In this move, we simply match the parameters in each model, + the dimension is same, the Jacobian is ratio. */ + (*lnProposalRatio) += log(ratio); + + /* switch model */ + (*rclModel) = RCL_TK02; + (*mxvar) = tk02var; + } + + /* since effective branch lengths are updated, we need to update likelihood calculation */ + TouchAllTreeNodes(m, chain); + + return (NO_ERROR); + MrBayesPrint ("%lf", *seed); /* just because I am tired of seeing the unused parameter error msg */ +} + + +/*---------------------------------------------------------------- +| +| Move_Local: This proposal mechanism changes the topology and +| branch lengths of an unrooted tree using the LOCAL mech- +| anism described by Larget & Simon (1999): +| +| Larget, B. L., and D. L. Simon. 1999. Markov chain +| Monte Carlo algorithms for the Bayesian analysis +| of phylogenetic trees. Molecular Biology and +| Evolution 16:750-759. +| +| Programmed by FR 2001-10-14 and partly rewritten 2002-02-21 +| for more elegance and the ability to deal with rooted trees. +| Support for locked nodes added 2004-01-12 based on mb v2.01. +| Calculation of the Hastings ratio corrected 2004-07-01. +| Boundary conditions correctly taken care of 2004-09-29. +| NB! An alternative to reflection is to skip moves, which might +| be better for the LOCAL given the complexity of taking +| the boundary conditions into account +| +----------------------------------------------------------------*/ +int Move_Local (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int topologyHasChanged, isVPriorExp, directionUp, moveX; + MrBFlt oldM, newM, x, y, newX, newY, + tuning, minV, maxV, brlensExp=0.0; + TreeNode *v, *u, *a, *b, *c, *d; + Tree *t; + ModelParams *mp; + + tuning = mvp[0]; /* Larget & Simon's tuning parameter lambda */ + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1]; + isVPriorExp = NO; + } + else if (param->subParams[0]->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->subParams[0]->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->subParams[0]->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + topologyHasChanged = NO; + +# if defined (DEBUG_LOCAL) + printf ("Before:\n"); + ShowNodes (t->root, 2, NO); + getchar(); +# endif + + /* pick an internal branch */ + do + { + v = t->intDownPass[(int)(RandomNumber(seed)*t->nIntNodes)]; + } while (v->anc->anc == NULL); + + /* set up pointers for crown part */ + if (RandomNumber(seed) < 0.5) + { + c = v->left; + d = v->right; + } + else + { + c = v->right; + d = v->left; + } + + /* set up pointers for root part */ + u = v->anc; + if (RandomNumber(seed) < 0.5 || (t->isRooted == YES && u->anc->anc == NULL)) + { + directionUp = YES; + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + } + else + { + directionUp = NO; + if (u->left == v) + b = u->right; + else + b = u->left; + a = u->anc; + } + + /* store old and new path length as well as old x and y */ + oldM = c->length + v->length; + if (directionUp == YES) + { + oldM += a->length; + x = a->length; + } + else + { + oldM += u->length; + x = u->length; + } + + y = x + v->length; + + /* pick dangly to move */ + if (RandomNumber(seed) < 0.5) + moveX = YES; + else + moveX = NO; + + /* find new m value */ + newM = exp(tuning * (RandomNumber(seed) - 0.5)) * oldM; + + /* pick dangly to move and + pick new attachment point */ + if (moveX == YES) + { + /* choose new x */ + + /* first update y */ + newY = y * (newM / oldM); + + /* find reinsertion point */ + if (v->isLocked == YES) + { + newX = RandomNumber(seed) * newY; + } + else + { + newX = RandomNumber(seed) * newM; + } + } + else + { + /* choose new y */ + + /* first update x */ + newX = x * (newM / oldM); + + /* find reinsertion point */ + if (v->isLocked == YES) + { + newY = RandomNumber(seed) * (newM - newX) + newX; + } + else + { + newY = RandomNumber(seed) * newM; + } + } + + /* adjust proposal and prior ratio based on length modification */ + /* and insertion mechanism */ + (*lnProposalRatio) += 3.0 * log (newM / oldM); + if (isVPriorExp == YES) + (*lnPriorRatio) = brlensExp * (oldM - newM); + + /* make topology move if necessary and then set branch lengths */ + if (newX > newY) + { + /* check if we need to abort */ + if (newY < minV || newY > maxV || (newX-newY) < minV || (newX-newY) > maxV || (newM-newX) < minV || (newM-newX) > maxV) + { + abortMove = YES; + return NO_ERROR; + } + + /* topology has changed */ + topologyHasChanged = YES; + /* detach v and d */ + /* this scheme differs from that used by Larget and Simon but is more + convenient because it avoids tree rotations */ + if (u->left == v) + u->left = c; + else + u->right = c; + c->anc = u; + if (directionUp == YES) + { + /* place v and d below a */ + if (v->left == d) + v->right = a; + else + v->left = a; + a->anc = v; + if (u->left == a) + u->left = v; + else + u->right = v; + /* v->anc is already u */ + /* adjust lengths */ + c->length = newM - newX; + v->length = newX - newY; + a->length = newY; + } + else + { + /* place v and d below u */ + if (u->isLocked == YES) + { + v->isLocked = YES; + u->isLocked = NO; + v->lockID = u->lockID; + u->lockID = 0; + } + if (v->left == d) + v->right = u; + else + v->left = u; + u->anc = v; + v->anc = a; + if (a->left == u) + a->left = v; + else + a->right = v; + /* adjust lengths */ + c->length = newM - newX; + u->length = newX - newY; + v->length = newY; + } + } + else + { + /* check if we need to abort */ + if (newX < minV || newX > maxV || (newY-newX) < minV || (newY-newX) > maxV || (newM-newY) < minV || (newM-newY) > maxV) + { + abortMove = YES; + return NO_ERROR; + } + + /* topology has not changed */ + c->length = newM - newY; + v->length = newY - newX; + if (directionUp == YES) + a->length = newX; + else + u->length = newX; + } + + /* set update of transition probs */ + c->upDateTi = YES; + v->upDateTi = YES; + if (directionUp == YES) + a->upDateTi = YES; + else + u->upDateTi = YES; + + /* set flags for update of cond likes from v and u down to root */ + v->upDateCl = YES; + u->upDateCl = YES; + if (directionUp == YES) + v = b; + else + v = a; + while (v->anc != NULL) + { + v->upDateCl = YES; + v = v->anc; + } + + /* get downpass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + +# if defined (DEBUG_LOCAL) + printf ("After:\n"); + ShowNodes (t->root, 2, NO); + getchar(); + printf ("Proposal ratio: %f\n",(*lnProposalRatio)); + printf ("v: %d u: %d c: %d d: %d a: %d b: %d\n",v->index, u->index, + c->index, d->index, a->index, b->index); + printf ("Has topology changed? %d\n",topologyHasChanged); + getchar(); +# endif + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_LocalClock: This proposal mechanism changes the topology and +| branch lengths of a rooted tree using the LOCAL (clock) mech- +| anism described by Larget & Simon (1999): +| +| Larget, B. L., and D. L. Simon. 1999. Markov chain +| Monte Carlo algorithms for the Bayesian analysis +| of phylogenetic trees. Molecular Biology and +| Evolution 16:750-759. +| +| Programmed by JH 2002-07-07 +| Modified by FR 2004-05-22 to handle locked and dated trees +| Modified by FR 2005-11-09 to take care of erroneous +| Hastings ratio. The fix implemented here results in +| a move that does not change tree height. +| +----------------------------------------------------------------*/ +int Move_LocalClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, topologyHasChanged, vIsRoot, aSister, bSister, cSister, *nEvents; + MrBFlt x, y, h1, h2, h3, h[3], tempD, ran, distUv, distCv, + oldALength, oldBLength, oldCLength, oldULength, oldVLength, lambda, nu, + *tk02Rate=NULL, *brlens, oldTreeLength, newTreeLength; + // MrBFlt newDepth, oldDepth, factor, diff; + TreeNode *u, *v, *w=NULL, *a, *b, *c, *deepestChild, *p; + Tree *t; + Param *subParm; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + +#if defined (DEBUG_LOCAL) + /* check branch lengths and node depths */ + for (i=0; inNodes-2; i++) { + p = t->allDownPass[i]; + /* the two checkings don't consider ancestral fossil (brl=0) in fossilized bd tree */ + if (p->length < minV) { + printf ("%s ERROR when entering LocalClock: node %d has length %lf", spacer, p->index, p->length); + return ERROR; + } + if (p->nodeDepth >= p->anc->nodeDepth) { + printf ("%s ERROR when entering LocalClock: node %d has depth %lf larger than its ancestor %d depth %lf", spacer, p->index, p->nodeDepth, p->anc->index, p->anc->nodeDepth); + return ERROR; + } + } +#endif + + topologyHasChanged = NO; + +# if defined (DEBUG_LOCAL) + printf ("Before:\n"); + ShowNodes (t->root, 2, YES); +# endif + + /* set up pointers */ + do + { + u = t->intDownPass[(int)(RandomNumber(seed)*(t->nIntNodes-1))]; + } while (u->anc->anc == NULL); + v = u->anc; + a = u->left; + b = u->right; + if (v->left == u) + c = v->right; + else + c = v->left; + vIsRoot = NO; + if (v->anc->anc != NULL) + w = v->anc; + else + vIsRoot = YES; + + oldALength = a->length; + oldBLength = b->length; + oldCLength = c->length; + oldVLength = v->length; + oldULength = u->length; + oldTreeLength = TreeLength (param, chain); + + /* get distances from root of move (w or v) to nodes a, b, and c */ + if (vIsRoot == NO) + h1 = h2 = h3 = v->length; + else + h1 = h2 = h3 = 0.0; + h1 += u->length + a->length; + h2 += u->length + b->length; + h3 += c->length; + h[0] = h1; + h[1] = h2; + h[2] = h3; + + /* we also need the distances between u <-> v and c <-> v to calculate the hastings' term */ + distUv = u->length; + distCv = c->length; + + /* sort distances (simply make three comparisons and swap values, if necessary) */ + if (h[0] > h[1]) + { + tempD = h[1]; + h[1] = h[0]; + h[0] = tempD; + } + if (h[0] > h[2]) + { + tempD = h[2]; + h[2] = h[0]; + h[0] = tempD; + } + if (h[1] > h[2]) + { + tempD = h[2]; + h[2] = h[1]; + h[1] = tempD; + } + + /* Find the child node (a, b, or c) that is closest to the root (i.e., has smallest h_i; i=1,2,3). This + part deals with the possibility that some of the nodes are at the same nodeDepth and randomly assigns + a node to be deepest in case of ties. */ + if (AreDoublesEqual (h1, h2, 0.00000001) == YES && AreDoublesEqual (h1, h3, 0.00000001) == YES && AreDoublesEqual (h2, h3, 0.00000001) == YES) + { + ran = RandomNumber(seed); + if (ran < 0.33333333) + deepestChild = a; + else if (ran > 0.66666666) + deepestChild = b; + else + deepestChild = c; + } + else if (AreDoublesEqual (h1, h2, 0.00000001) == YES && AreDoublesEqual (h1, h3, 0.00000001) == NO && AreDoublesEqual (h2, h3, 0.00000001) == NO) + { + if (h1 < h3) + { + ran = RandomNumber(seed); + if (ran < 0.5) + deepestChild = a; + else + deepestChild = b; + } + else + deepestChild = c; + } + else if (AreDoublesEqual (h1, h2, 0.00000001) == NO && AreDoublesEqual (h1, h3, 0.00000001) == YES && AreDoublesEqual (h2, h3, 0.00000001) == NO) + { + if (h1 < h2) + { + ran = RandomNumber(seed); + if (ran < 0.5) + deepestChild = a; + else + deepestChild = c; + } + else + deepestChild = b; + } + else if (AreDoublesEqual (h1, h2, 0.00000001) == NO && AreDoublesEqual (h1, h3, 0.00000001) == NO && AreDoublesEqual (h2, h3, 0.00000001) == YES) + { + if (h2 < h1) + { + ran = RandomNumber(seed); + if (ran < 0.5) + deepestChild = b; + else + deepestChild = c; + } + else + deepestChild = a; + } + else + { + if (h1 < h2 && h1 < h3) + deepestChild = a; + else if (h2 < h1 && h2 < h3) + deepestChild = b; + else + deepestChild = c; + } + + /* get x and y */ + /* for most of the branches, the proposal ratio is 0.0 so it makes sense to set this first */ + (*lnProposalRatio) = 0.0; + if (u->isDated == YES && v->isDated == YES) + { + /* this proposal is wasted, change nothing */ + if (vIsRoot == NO) + { + y = v->length; + x = y + u->length; + } + else + { + y = 0.0; + x = u->length; + } + } + else if (u->isDated == YES && v->isDated == NO) + { + /* we can only change the position of v */ + if (vIsRoot == NO) + { + /* the upper limit of v's height is determined either by u-length + v->length or by c->length + v->length (h[0]) */ + x = v->length + u->length; + if (x > h[0]) + x = h[0]; + y = RandomNumber(seed) * x; + } + else + { + /* v is root: we leave tree height unchanged so we cannot change anything */ + x = u->length; + y = 0.0; + } + } + else if (u->isDated == NO && v->isDated == YES) + { + /* we can only change the position of u */ + if (vIsRoot == NO) + y = v->length; + else + y = 0.0; + if (u->isLocked == YES) + { + if (h1 > h2) + { + x = y + RandomNumber(seed) * (h2 - y); + } + else + { + x = y + RandomNumber(seed) * (h1 - y); + } + } + else + { + x = y + RandomNumber(seed) * (h[1] - y); + } + } + /* if we reach the statements down here, neither u nor v is dated */ + else if (u->isLocked == YES) + { + if (h1 > h2) + { + y = RandomNumber(seed) * h[0]; + x = y + RandomNumber(seed) * (h2 - y); + } + else + { + y = RandomNumber(seed) * h[0]; + x = y + RandomNumber(seed) * (h1 - y); + } + } + else if (vIsRoot == NO) + { + /* this is the standard variant for nonroot v */ + x = RandomNumber(seed) * h[1]; + y = RandomNumber(seed) * h[0]; + } + else + { + /* this is the standard variant when v is the root */ + /*oldDepth = t->root->left->nodeDepth; + factor = exp((RandomNumber(seed) - 0.5) * 2.0 * log(1.2)); + t->root->left->nodeDepth = newDepth = factor * h[0] - h[0] + oldDepth; + adjust h[0], h[1], and h[2] + diff = newDepth - oldDepth; + h[0] += diff; + h[1] += diff; + h[2] += diff;*/ + /* set y to 0.0 and select new x */ + y = 0.0; + x = RandomNumber(seed) * h[1]; + /* Adjust proposal ratio. We deal with topology bias below. Note that this + proposal ratio is very different from what appeared in Larget and Simon */ + /*(*lnProposalRatio) += (t->nIntNodes-1) * log(oldDepth / newDepth);*/ + /*(*lnProposalRatio) += 2.0 * log (factor);*/ + } + + /* decide which topology we will construct (cSister is what we started with) */ + aSister = bSister = cSister = NO; + /* if u is locked then we cannot change topology */ + if (u->isLocked == YES) + cSister = YES; + else if (MaximumValue (x, y) < h[0]) + { + ran = RandomNumber(seed); + if (ran < 0.33333333) + aSister = YES; + else if (ran > 0.66666666) + bSister = YES; + else + cSister = YES; + } + else + { + if (deepestChild == a) + aSister = YES; + else if (deepestChild == b) + bSister = YES; + else + cSister = YES; + } + + /* adjust lengths of nodes u and v */ + u->length = MaximumValue (x, y) - MinimumValue (x, y); + v->length = MinimumValue (x, y); + if (vIsRoot == NO) + v->nodeDepth = w->nodeDepth - v->length; + u->nodeDepth = v->nodeDepth - u->length; + + /* adjust pointers and lengths of nodes a, b, and c */ + topologyHasChanged = NO; + if (cSister == YES) + { + if (v->left == u) + v->right = c; + else + v->left = c; + u->left = a; + u->right = b; + a->anc = b->anc = u; + c->anc = v; + a->length = u->nodeDepth - a->nodeDepth; + b->length = u->nodeDepth - b->nodeDepth; + c->length = v->nodeDepth - c->nodeDepth; + } + else if (bSister == YES) + { + if (v->left == u) + v->right = b; + else + v->left = b; + u->left = a; + u->right = c; + a->anc = c->anc = u; + b->anc = v; + a->length = u->nodeDepth - a->nodeDepth; + b->length = v->nodeDepth - b->nodeDepth; + c->length = u->nodeDepth - c->nodeDepth; + topologyHasChanged = YES; + } + else if (aSister == YES) + { + if (v->left == u) + v->right = a; + else + v->left = a; + u->left = b; + u->right = c; + b->anc = c->anc = u; + a->anc = v; + a->length = v->nodeDepth - a->nodeDepth; + b->length = u->nodeDepth - b->nodeDepth; + c->length = u->nodeDepth - c->nodeDepth; + topologyHasChanged = YES; + } + + /* check that all branch lengths are good */ + if (a->length < 0.0 && b->length < 0.0 && c->length < 0.0 && u->length < 0.0 && v->length < 0.0) + { + abortMove = YES; + return NO_ERROR; + } + + /* calculate the proposal ratio due to asymmetric topology changes */ + if (u->isLocked == NO) + { + if (v->isDated == YES || vIsRoot == YES) + { + if (distUv > distCv && MaximumValue (x, y) < h[0]) + (*lnProposalRatio) += log(3.0); + else if (distUv < distCv && MaximumValue (x, y) > h[0]) + (*lnProposalRatio) += log(1.0 / 3.0); + } + else + { + /* note that Larget and Simon did not have the correct Hastings ratio + for this case */ + if (distUv > distCv && MaximumValue (x, y) < h[0]) + (*lnProposalRatio) += log(3.0 / 2.0); + else if (distUv < distCv && MaximumValue (x, y) > h[0]) + (*lnProposalRatio) += log(2.0 / 3.0); + } + } + + /* set update of transition probs */ + a->upDateTi = b->upDateTi = c->upDateTi = u->upDateTi = YES; + if (vIsRoot == NO) + v->upDateTi = YES; + + /* set flags for update of cond likes from u down to root */ + p = u; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* get downpass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + GetDownPass (t); + + /* adjust proposal and prior ratio for relaxed clock models */ + newTreeLength = TreeLength(param, chain); + for (i=0; isubParams[0]->nSubParams; i++) + { + subParm = param->subParams[0]->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + nEvents = subParm->nEvents[2*chain+state[chain]]; + lambda = *GetParamVals (modelSettings[subParm->relParts[0]].cppRate, chain, state[chain]); + /* proposal ratio */ + (*lnProposalRatio) += nEvents[a->index] * log (a->length / oldALength); + (*lnProposalRatio) += nEvents[b->index] * log (b->length / oldBLength); + (*lnProposalRatio) += nEvents[c->index] * log (c->length / oldCLength); + (*lnProposalRatio) += nEvents[u->index] * log (u->length / oldULength); + if (v->anc->anc != NULL && v->isDated == NO) + (*lnProposalRatio) += nEvents[v->index] * log (v->length / oldVLength); + /* prior ratio */ + (*lnPriorRatio) += lambda * ((oldTreeLength - newTreeLength)/t->root->left->nodeDepth); + /* update effective evolutionary lengths */ + if (v->anc->anc == NULL || v->isDated == YES) + { + if (UpdateCppEvolLengths (subParm, v->left, chain) == ERROR || + UpdateCppEvolLengths (subParm, v->right, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + } + else + { + if (UpdateCppEvolLengths (subParm, v, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + } + } + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + nu /= t->root->left->nodeDepth; /* variance increase measured relative to tree height */ + tk02Rate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + /* no proposal ratio effect */ + /* prior ratio and update of effective evolutionary lengths */ + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[u->index], nu*oldALength, tk02Rate[a->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[u->index], nu*u->left->length, tk02Rate[u->left->index]); + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[u->index], nu*oldBLength, tk02Rate[b->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[u->index], nu*u->right->length, tk02Rate[u->right->index]); + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[v->index], nu*oldCLength, tk02Rate[c->index]); + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[v->index], nu*oldULength, tk02Rate[u->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[v->index], nu*v->left->length, tk02Rate[v->left->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[v->index], nu*v->right->length, tk02Rate[v->right->index]); + brlens[a->index] = a->length * (tk02Rate[a->index] + tk02Rate[a->anc->index])/2.0; + brlens[b->index] = a->length * (tk02Rate[a->index] + tk02Rate[a->anc->index])/2.0; + brlens[c->index] = c->length * (tk02Rate[c->index] + tk02Rate[c->anc->index])/2.0; + brlens[u->index] = u->length * (tk02Rate[u->index] + tk02Rate[u->anc->index])/2.0; + if (v->anc->anc != NULL && v->isDated == NO) + { + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[w->index], nu*oldVLength, tk02Rate[v->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[w->index], nu*v->length, tk02Rate[v->index]); + brlens[v->index] = v->length * (tk02Rate[v->index] + tk02Rate[v->anc->index])/2.0; + } + } + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + /* to do */ + } + } + + /* calculate and adjust prior ratio for clock tree */ + if (LogClockTreePriorRatio (param, chain, &x) == ERROR) + return (ERROR); + (*lnPriorRatio) += x; + +# if defined (DEBUG_LOCAL) + printf ("After:\n"); + ShowNodes (t->root, 2, YES); + printf ("Has topology changed? %d\n",topologyHasChanged); + + /* check branch lengths and node depths */ + for (i=0; inNodes-2; i++) { + p = t->allDownPass[i]; + if (p->length < minV) { + printf ("%s ERROR when leaving LocalClock: node %d has length %lf", spacer, p->index, p->length); + return ERROR; + } + if (p->nodeDepth >= p->anc->nodeDepth) { + printf ("%s ERROR when leaving LocalClock: node %d has depth %lf larger than its ancestor %d depth %lf", spacer, p->index, p->nodeDepth, p->anc->index, p->anc->nodeDepth); + return ERROR; + } + } +#endif + + return (NO_ERROR); + MrBayesPrint ("%lf", *mvp); /* just because I am tired of seeing the unused parameter error msg */ +} + + +#if 0 +/*-------------------------------------------------------------------- +| +| Move_LSPR: Change topology using move based on likelihood scores +| +|--------------------------------------------------------------------*/ +int Move_LSPR (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change branch lengths and topology (potentially) using SPR-type move + biased according to likelihood scores. NOT work for constrained trees. */ + + int i, j, n, division, topologyHasChanged, isVPriorExp, nNodes; + BitsLong *pA, *pV, *pP; + MrBFlt x, minV, maxV, brlensExp=0.0, minLength=0.0, curLength=0.0, length=0.0, + cumulativeProb, warpFactor, sum, ran, tuning, increaseProb, decreaseProb, + divFactor, nStates, rateMult, temp; + CLFlt *nSitesOfPat, *globalNSitesOfPat, *tempCondLikes, **tempCondLikePtr; + TreeNode *p, *q, *a, *b, *u, *v, *c=NULL, *d, *candidateNodes[20], *vLeft, *vRight; + Tree *t; + ModelParams *mp; + ModelInfo *m = NULL; + + temp = mvp[0]; /* tuning parameter determining how heavily to weight according to likelihood scores */ + var = mvp[1]; /* variance of lognormal for proposing branch lengths */ + increaseProb = decreaseProb = mvp[2]; /* reweighting probabilities */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get model params and model info */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1]; + isVPriorExp = NO; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + +# if defined (DEBUG_MLSPR) + printf ("Before:\n"); + ShowNodes (t->root, 2, YES); + getchar(); +# endif + + /* set topologyHasChanged to NO */ + topologyHasChanged = NO; + + /* reset node variables that will be used */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->marked = NO; + p->x = 0; + p->d = 0.0; + } + + /* pick a random branch */ + do + { + p = t->allDownPass[(int)(RandomNumber(seed)*(t->nNodes - 1))]; + } while (p->anc->anc == NULL || p->anc->isLocked == YES); + + /* set up pointers for nodes around the picked branch */ + v = p; + u = p->anc; + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + vLeft = v->left; + vRight = vRight; + + /* store the branch lengths */ + aLength = a->length; + uLength = u->length; + vLength = v->length; + if (v->left != NULL) + { + vLeftLength = v->left->length; + vRightLength = v->right->length; + } + else + vLeftLength = vRightLength = 0.0; + + /* get the ML branch lengths */ + /* set initial branch lengths */ + /* cycle through using Newton Raphson and reoptimization a fixed number of iterations */ + for (i=0; i<5; i++) + { + } + + /* get variance of lognormal */ + + /* clip tree */ + a->anc = b; + if (b->left == u) + b->left = a; + else + b->right = a; + + /* count distance to root */ + q = b; + nNodes = 0; + while (q->anc != NULL) + { + nNodes++; + q = q->anc; + } + + /* allocate space for temporary cond likes and condlike pointers */ + tempCondLikes = (CLFlt *) SafeCalloc (nNodes*m->numChars*m->numModelStates, sizeof (CLFlt)); + tempCondLikePtr = (CLFlt **) SafeCalloc (nNodes, sizeof (CLFlt *)); + if (!tempCondLikes || !tempCondLikePtr) + { + free (tempCondLikes); + free (tempCondLikePtr); + return (ERROR); + } + + /* shift pointers over */ + q = b; + j = 0; + while (q->anc != NULL) + { + tempCondLikePtr[j] = m->condLike[chain][q->index][q->clSpace]; + m->condLike[chain][q->index][q->clSpace] = tempCondLikes + j*m->numChars*m->numModelStates; + j++; + q = q->anc; + } + + /* set length to 0.1 for now; test ML brlen later */ + aLength = a->length; + a->length = 0.1; + uLength = u->length; + u->length = 0.1; + vLength = v->length; + v->length = 0.1; + + /* get downpass cond likes for the root part */ + q = b; + while (q->anc != NULL) + m->condLikeDown (q, division, chain); + + /* get final pass cond likes for the root part */ + GetLikeFPRootPath (a); + + /* get downpass parsimony states for the crown part */ + GetParsDP (t, v, chain); + + /* mark all nodes in the root part of the tree */ + t->root->left->marked = YES; + for (i=t->nNodes-3; i>=0; i--) + { + p = t->allDownPass[i]; + if (p->anc->marked == YES && p != u) + p->marked = YES; + } + + /* find number of site patterns and modify randomly */ + globalNSitesOfPat = numSitesOfPat + (chainId[chain] % chainParams.numChains) * numCompressedChars + m->compCharStart; + nSitesOfPat = (CLFlt *) SafeCalloc (numCompressedChars, sizeof(CLFlt)); + if (!nSitesOfPat) + { + MrBayesPrint ("%s Problem allocating nSitesOfPat in Move_LSPR\n", spacer); + free (tempCondLikes); + free (tempCondLikePtr); + return (ERROR); + } + for (i=0; i 1.0 - increaseProb) + nSitesOfPat[i]++; + } + } + + /* cycle through the possibilities and record ln likelihood of each in p->d */ + minLength = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == NO) + continue; + /* find the parsimony length */ + p->d = 0.0; + for (n=0; nnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + nStates = m->numModelStates; + if (m->dataType == STANDARD) + nStates = 2; + rateMult = GetRate(division, chain); + + divFactor = warpFactor + log(nStates-1) - log (3) - log(rateMult); + + /* find downpass parsimony sets for the node and its environment */ + pP = parsPtr[chain][p->index] + m->parsMatrixStart + Bit(division, p->clSpace) * parsMatrixRowSize; + pA = parsPtr[chain][p->anc->index] + m->parsMatrixStart + Bit(division, p->anc->clSpace) * parsMatrixRowSize; + pV = parsPtr[chain][v->index] + m->parsMatrixStart + Bit(division, v->clSpace) * parsMatrixRowSize; + + length = 0.0; + for (j=0; jnumChars; j++) + { + x = (pP[j] | pA[j]) & pV[j]; + if (x == 0) + length += nSitesOfPat[j]; + } + p->d += divFactor * length; + } + if (i == 0) + minLength = p->d; + else if (p->d < minLength) + minLength = p->d; + if (p == a) + curLength = p->d; + } + + /* find the sum given the warp factor */ + sum = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES) + { + p->d = exp (minLength - p->d); + sum += p->d; + } + } + + /* generate a random uniform */ + ran = RandomNumber(seed); + + /* select the appropriate reattachment point */ + cumulativeProb = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES) + { + c = p; + cumulativeProb += p->d / sum; + if (cumulativeProb > ran) + break; + } + } + if (c->marked != YES) + { + printf ("Could not select node\n"); + getchar(); + } + + /* calculate the proposal ratio */ + if (c == a) + (*lnProposalRatio) = 0.0; + else + (*lnProposalRatio) = c->d - curLength; + + /* reattach */ + d = c->anc; + c->anc = u; + if (u->left == v) + u->right = c; + else + u->left = c; + if (d->left == c) + d->left = u; + else + d->right = u; + u->anc = d; + + /* reassign branch lengths */ + if (c != a) + { + topologyHasChanged = YES; + if (RandomNumber(seed) < 0.5) + { + x = u->length; + u->length = a->length; + a->length = x; + } + if (RandomNumber(seed) < 0.5) + { + x = c->length; + c->length = u->length; + u->length = x; + } + /* hit c length with multiplier (a and u dealt with below) */ + x = c->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / c->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (c->length - x); + c->length = x; + } + + /* hit a length with multiplier (even if no topology change was made) */ + x = a->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / a->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (a->length - x); + a->length = x; + + /* hit u length with multiplier (even if no topology change was made) */ + x = u->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / u->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (u->length - x); + u->length = x; + + /* set tiprobs update flags */ + a->upDateTi = YES; + u->upDateTi = YES; + c->upDateTi = YES; /* could be same as a but that does not matter */ + + /* set flags for update of cond likes from u and down to root */ + p = u; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* set flags for update of cond likes from b and down to root */ + p = b; + while (p->anc != NULL && p->upDateCl == NO) + { + p->upDateCl = YES; + p = p->anc; + } + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + free (nSitesOfPat); + +# if defined (DEBUG_MLSPR) + printf ("After:\n"); + ShowNodes (t->root, 2, YES); + getchar(); + printf ("Proposal ratio: %f\n",(*lnProposalRatio)); + printf ("v: %d u: %d a: %d b: %d\n",v->index, u->index, a->index, b->index); + printf ("No. nodes moved in root subtree: %d\n",nRootNodes); + printf ("Has topology changed? %d\n",topologyHasChanged); + getchar(); +# endif + + return (NO_ERROR); +} + + +/*-------------------------------------------------------------------- +| +| Move_LSPR1: Change topology using move based on likelihood scores +| +|--------------------------------------------------------------------*/ +int Move_LSPR1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change branch lengths and topology (potentially) using SPR-type move + biased according to likelihood scores. NOT work for constrained trees. */ + + int i, j, n, division, topologyHasChanged, isVPriorExp, nNodes; + BitsLong *pA, *pV, *pP; + MrBFlt x, minV, maxV, brlensExp=0.0, minLength=0.0, curLength=0.0, length=0.0, + cumulativeProb, warpFactor, sum, ran, tuning, increaseProb, decreaseProb, + divFactor, nStates, rateMult, temp; + CLFlt *nSitesOfPat, *globalNSitesOfPat, *tempCondLikes, **tempCondLikePtr; + TreeNode *p, *q, *a, *b, *u, *v, *c=NULL, *d, *candidateNodes[20], *vLeft, *vRight; + Tree *t; + ModelParams *mp; + ModelInfo *m = NULL; + + temp = mvp[0]; /* tuning parameter determining how heavily to weight according to likelihood scores */ + var = mvp[1]; /* variance of lognormal for proposing branch lengths */ + increaseProb = decreaseProb = mvp[2]; /* reweighting probabilities */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get model params and model info */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1]; + isVPriorExp = NO; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + +# if defined (DEBUG_MLSPR) + printf ("Before:\n"); + ShowNodes (t->root, 2, YES); + getchar(); +# endif + + /* set topologyHasChanged to NO */ + topologyHasChanged = NO; + + /* reset node variables that will be used */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->marked = NO; + p->x = 0; + p->d = 0.0; + } + + /* pick a random branch */ + do + { + p = t->allDownPass[(int)(RandomNumber(seed)*(t->nNodes - 1))]; + } while (p->anc->anc == NULL || p->anc->isLocked == YES); + + /* set up pointers for nodes around the picked branch */ + v = p; + u = p->anc; + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + vLeft = v->left; + vRight = vRight; + + /* store the branch lengths */ + aLength = a->length; + uLength = u->length; + vLength = v->length; + if (v->left != NULL) + { + vLeftLength = v->left->length; + vRightLength = v->right->length; + } + else + vLeftLength = vRightLength = 0.0; + + /* save DP cond likes */ + /* count distance to root */ + q = b; + nNodes = 0; + while (q->anc != NULL) + { + nNodes++; + q = q->anc; + } + + /* allocate space for temporary cond likes and condlike pointers */ + tempCondLikes = (CLFlt *) SafeCalloc (nNodes*m->numChars*m->numModelStates, sizeof (CLFlt)); + tempCondLikePtr = (CLFlt **) SafeCalloc (nNodes, sizeof (CLFlt *)); + if (!tempCondLikes || !tempCondLikePtr) + { + free (tempCondLikes); + free (tempCondLikePtr); + return (ERROR); + } + + /* shift pointers over */ + q = b; + j = 0; + while (q->anc != NULL) + { + tempCondLikePtr[j] = m->condLike[chain][q->index][q->clSpace]; + m->condLike[chain][q->index][q->clSpace] = tempCondLikes + j*m->numChars*m->numModelStates; + j++; + q = q->anc; + } + + /* get cond like uppass up to b */ + getLikeUPRootPath (t, b); + + /* get ML branch lengths */ + NRBrlenOptimizer (t, v, 5, 3); + + /* cycle through using Newton Raphson and reoptimization a fixed number of iterations */ + for (i=0; ileft != NULL) + { + getBaseLikeUpLeft (t, v); /* store instead of DP */ + NewtonRaphsonBrlen (t, v->left, chain); + getBaseLikeUpRight (t, v); + GetNewtonRaphsonBrlen (t, v->right, chain); + m->CondLikeDown (v); + } + if (u->left == v) + getBaseLikeUpLeft (t, u); + else + getBaseLikeUpRight (t, u); + NewtonRaphsonBrlen (t, v, chain); + if (u->left == v) + getBaseLikeUpRight (t, u); + else + getBaseLikeUpLeft (t, u); + NewtonRaphsonBrlen (t, a->length, chain); + m->CondLikeDown (t, u); + if (b->left == u) + getBaseLikeUpLeft (t, b); + else + getBaseLikeUpRight (t, b); + NewtonRaphsonBrlen (t, u->length, chain); + getLikeUp(t, u); + getLikeUp(t, v); + } + + /* get variance of lognormal for forward move */ + f = log (a->length) - log (aLength); + fvar = f*f; + f = log (v->length) - log (vLength); + fvar += f*f; + f = log (u->length) - log (uLength); + fvar += f*f; + if (v->left != NULL) + { + f = log (v->left->length) - log (vLeftLength); + fvar += f*f; + f = log (v->right->length) - log (vRightLength); + fvar += f*f; + fvar /= 5.0; + } + else + fvar /= 3.0; + + /* clip tree */ + a->anc = b; + if (b->left == u) + b->left = a; + else + b->right = a; + + /* get ML branch length for a */ + NewtonRaphsonBrlen (t, a, chain, 3); + + /* propose new length for a */ + f = PointNormal(RandomNumber(seed)); + f *= fvar; + f += log (a->length); + a->length = f; + + /* get downpass cond likes for the root part */ + q = b; + while (q->anc != NULL) + m->condLikeDown (q, division, chain); + + /* get uppass cond likes for the root part */ + GetLikeUp (t, t->root->left); + + /* cycle through the possibilities and record ln likelihood of each in p->d */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == NO) + continue; + /* attach crown tree here */ + pLength = p->length; + /* find ml branch lengths */ + NewtonRaphsonBrlens5 (t, v, chain, 5, 3); + /* find score */ + m->CondLikeDown (t, v); + m->CondLikeRoot (t, u); + m->Likelihood (t, u, &lnL); + p->d = lnL * warp; + if (i == 0) + maxLnL = p->d; + else if (p->d > maxLnL) + maxLnL = p->d; + if (p == a) + curLnL = p->d; + /* detach crown tree */ + /* restore p->length */ + p->length = pLength; + } + + /* find the sum given the warp factor */ + sum = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES) + { + p->d = exp (maxLnL - p->d); + sum += p->d; + } + } + + /* generate a random uniform */ + ran = RandomNumber(seed); + + /* select the appropriate reattachment point */ + cumulativeProb = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES) + { + c = p; + cumulativeProb += p->d / sum; + if (cumulativeProb > ran) + break; + } + } + if (c->marked != YES) + { + printf ("Could not select node\n"); + getchar(); + } + + /* calculate the proposal ratio based on biased reattachment */ + if (c == a) + (*lnProposalRatio) = 0.0; + else + (*lnProposalRatio) = (maxLnL - log(c->d)) - curLnL; + + /* reattach */ + if (c != a) + topologyHasChanged = YES; + d = c->anc; + c->anc = u; + if (u->left == v) + u->right = c; + else + u->left = c; + if (d->left == c) + d->left = u; + else + d->right = u; + u->anc = d; + + /* optimize branch lengths */ + NewtonRaphsonBrlens5 (t, v, chain, 5, 5); + + /* calculate variance of lognormal for back move */ + f = log (a->length) - log (aLength); + fvarNew = f*f; + f = log (v->length) - log (vLength); + fvarNew += f*f; + f = log (u->length) - log (uLength); + fvarNew += f*f; + if (v->left != NULL) + { + f = log (v->left->length) - log (vLeftLength); + fvarNew += f*f; + f = log (v->right->length) - log (vRightLength); + fvarNew += f*f; + fvarNew /= 5.0; + } + else + fvarNew /= 3.0; + + /* draw new branch lengths */ + c->length = fvar * PointNormal(RandomNumber(seed)) + log(c->length); + u->length = fvar * PointNormal(RandomNumber(seed)) + log(u->length); + v->length = fvar * PointNormal(RandomNumber(seed)) + log(v->length); + if (v->left != NULL) + { + v->left->length = fvar * PointNormal(RandomNumber(seed)) + log(v->left->length); + v->right->length = fvar * PointNormal(RandomNumber(seed)) + log(v->right->length); + } + + /* calculate proposal ratio for branch lengths */ + + /* set tiprobs update flags */ + a->upDateTi = YES; + u->upDateTi = YES; + c->upDateTi = YES; /* could be same as a but that does not matter */ + v->upDateTi = YES; + if (v->left != NULL) + { + v->left->upDateTi = YES; + v->right->upDateTi = YES; + } + + /* set flags for update of cond likes from v and down to root */ + q = v; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + + /* set flags for update of cond likes from b and down to root */ + q = b; + while (q->anc != NULL && q->upDateCl == NO) + { + q->upDateCl = YES; + q = q->anc; + } + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* restore old conditional likelihoods */ + +# if defined (DEBUG_MLSPR) + printf ("After:\n"); + ShowNodes (t->root, 2, YES); + getchar(); + printf ("Proposal ratio: %f\n",(*lnProposalRatio)); + printf ("v: %d u: %d a: %d b: %d\n",v->index, u->index, a->index, b->index); + printf ("No. nodes moved in root subtree: %d\n",nRootNodes); + printf ("Has topology changed? %d\n",topologyHasChanged); + getchar(); +# endif + + return (NO_ERROR); +} +#endif + + +/* Move_NNI, change topology using NNI move */ +int Move_NNI (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + TreeNode *p, *u, *v, *a, *b, *c; + Tree *t; + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* pick an internal branch */ + do { + p = t->intDownPass[(int)(RandomNumber(seed) * t->nIntNodes)]; + } + while (p->anc->anc == NULL || p->isLocked == YES); + + /* set up area of rearrangement */ + u = p; + v = u->anc; + a = u->left; + b = u->right; + if (v->left == u) + c = v->right; + else + c = v->left; + + /* change topology */ + if (RandomNumber(seed) < 0.5) + { + if (v->left == u) + v->right = b; + else + v->left = b; + u->left = a; + u->right = c; + a->anc = c->anc = u; + b->anc = v; + } + else + { + if (v->left == u) + v->right = a; + else + v->left = a; + u->left = b; + u->right = c; + b->anc = c->anc = u; + a->anc = v; + } + + /* set update of cond likes */ + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + GetDownPass (t); + + return (NO_ERROR); + MrBayesPrint ("%lf", *mvp); /* just because I am tired of seeing the unused parameter error msg */ +} + + +int Move_NNIClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change clock tree using NNI move */ + + int i, *nEvents, numFreeOld, numFreeNew; + MrBFlt x, *tk02Rate=NULL, *brlens, *igrRate=NULL, igrvar=0.0, nu=0.0, oldALength, oldCLength; + TreeNode *p, *q, *a, *c, *u, *v; + Tree *t; + Param *subParm; + + /* no tuning parameter */ + + /* make absolutely sure the proposal ratio and prior ratio are reset */ + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + +# if defined (DEBUG_NNIClock) + printf ("Before:\n"); + ShowNodes (t->root, 2, YES); + getchar(); +# endif + + /* count number of free interior branches */ + numFreeOld = 0; + for (i=0; inIntNodes-1; i++) + { + p = t->intDownPass[i]; + if (p->anc->left == p) + q = p->anc->right; + else + q = p->anc->left; + if (p->isLocked == NO && p->nodeDepth >= q->nodeDepth + BRLENS_MIN) + numFreeOld++; + } + + /* In extremely constrained trees, it might be impossible to change the tree before nodes have changed in position */ + if (numFreeOld == 0) + { + abortMove = YES; + return (NO_ERROR); + } + + /* pick an interior branch, around which it is possible to make an NNI */ + do { + p = t->intDownPass[(int)(RandomNumber(seed) * (t->nIntNodes-1))]; + if (p->anc->left == p) + q = p->anc->right; + else + q = p->anc->left; + } + while (p->isLocked == YES || p->nodeDepth < q->nodeDepth + BRLENS_MIN); + + /* set up pointers for nodes around the picked branch */ + /* consider ancestral fossil (brl=0) in fossilized bd tree */ + if (p->left->length < TIME_MIN) + a = p->right; + else if (p->right->length < TIME_MIN) + a = p->left; + else if (RandomNumber(seed) < 0.5) + a = p->left; + else + a = p->right; + v = p; + u = p->anc; + if (u->left == v) + c = u->right; + else + c = u->left; + + /* record branch lengths */ + oldALength = a->length; + oldCLength = c->length; + + /* make topology change */ + a->anc = u; + c->anc = v; + if (v->left == a) + v->left = c; + else + v->right = c; + if (u->left == c) + u->left = a; + else + u->right = a; + + /* adjust branch lengths */ + a->length = u->nodeDepth - a->nodeDepth; + c->length = v->nodeDepth - c->nodeDepth; + assert (a->length > BRLENS_MIN); + assert (c->length > BRLENS_MIN); + + /* no reassignment of CPP events or branch rates necessary */ + + /* set tiprobs update flags */ + a->upDateTi = YES; + c->upDateTi = YES; + + /* set flags for update of cond likes from v and down to root */ + p = v; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* get down pass sequence */ + GetDownPass (t); + + /* count number of free interior branches after the move */ + numFreeNew = 0; + for (i=0; inIntNodes-1; i++) + { + p = t->intDownPass[i]; + if (p->anc->left == p) + q = p->anc->right; + else + q = p->anc->left; + if (p->isLocked == NO && p->nodeDepth >= q->nodeDepth + BRLENS_MIN) + numFreeNew++; + } + + /* get proposal ratio if number of free branches has changed */ + if (numFreeNew != numFreeOld) + (*lnProposalRatio) = log((MrBFlt)numFreeOld / (MrBFlt)numFreeNew); + + /* calculate and adjust prior ratio for clock trees */ + if (LogClockTreePriorRatio(param, chain, &x) == ERROR) + return (ERROR); + (*lnPriorRatio) += x; + + /* adjust proposal and prior ratio for relaxed clock models */ + for (i=0; isubParams[0]->nSubParams; i++) + { + subParm = param->subParams[0]->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + nEvents = subParm->nEvents[2*chain+state[chain]]; + /* proposal ratio */ + (*lnProposalRatio) += nEvents[a->index] * log (a->length / oldALength); + (*lnProposalRatio) += nEvents[c->index] * log (c->length / oldCLength); + /* prior ratio: no effect because tree length is the same */ + /* update effective evolutionary lengths */ + if (UpdateCppEvolLengths (subParm, a, chain) == ERROR || UpdateCppEvolLengths (subParm, c, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + } + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + /* prior ratio and update of effective evolutionary lengths */ + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[v->index], nu*oldALength, tk02Rate[a->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[u->index], nu* a->length, tk02Rate[a->index]); + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[u->index], nu*oldCLength, tk02Rate[c->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[v->index], nu* c->length, tk02Rate[c->index]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[a->index] = a->length * (tk02Rate[a->index] + tk02Rate[a->anc->index])/2.0; + brlens[c->index] = c->length * (tk02Rate[c->index] + tk02Rate[c->anc->index])/2.0; + } + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + /* prior ratio and update of effective evolutionary lengths */ + (*lnPriorRatio) -= LnProbGamma (oldALength/igrvar, oldALength/igrvar, igrRate[a->index]); + (*lnPriorRatio) -= LnProbGamma (oldCLength/igrvar, oldCLength/igrvar, igrRate[c->index]); + (*lnPriorRatio) += LnProbGamma (a->length /igrvar, a->length /igrvar, igrRate[a->index]); + (*lnPriorRatio) += LnProbGamma (c->length /igrvar, c->length /igrvar, igrRate[c->index]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[a->index] = igrRate[a->index] * a->length; + brlens[c->index] = igrRate[c->index] * c->length; + } + } + +# if defined (DEBUG_NNIClock) + printf ("After:\n"); + ShowNodes (t->root, 2, YES); + getchar(); + printf ("Proposal ratio: %f\n",(*lnProposalRatio)); + printf ("v: %d u: %d a: %d b: %d\n",v->index, u->index, a->index, b->index); + printf ("Has topology changed? %d\n",topologyHasChanged); + getchar(); +# endif + + return (NO_ERROR); + MrBayesPrint ("%lf", *mvp); /* just because I am tired of seeing the unused parameter error msg */ +} + + +/* Move_NNI_Hetero, change topology with unlinked brlens using NNI */ +int Move_NNI_Hetero (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, brIndex, moveType; + TreeNode *p, *u, *v, *a, *b, *c; + Tree *t; + + (*lnPriorRatio) = (*lnProposalRatio) = 0.0; + + /* get first tree */ + t = GetTree (param, chain, state[chain]); + + /* pick an internal branch */ + do + { + brIndex = (int) (RandomNumber(seed) * t->nIntNodes); + p = t->intDownPass[brIndex]; + } while (p->anc->anc == NULL || p->isLocked == YES); + + /* decide on how to change the tree */ + if (RandomNumber(seed) < 0.5) + moveType = 0; + else + moveType = 1; + + /* cycle through trees */ + for (i=0; inSubParams; i++) + { + /* get tree */ + t = GetTree (param->subParams[i], chain, state[chain]); + + /* find p */ + p = t->intDownPass[brIndex]; + + /* set up area of rearrangement */ + u = p; + v = u->anc; + a = u->left; + b = u->right; + if (v->left == u) + c = v->right; + else + c = v->left; + + /* change topology */ + if (moveType == 0) + { + if (v->left == u) + v->right = b; + else + v->left = b; + u->left = a; + u->right = c; + a->anc = c->anc = u; + b->anc = v; + } + else if (moveType == 1) + { + if (v->left == u) + v->right = a; + else + v->left = a; + u->left = b; + u->right = c; + b->anc = c->anc = u; + a->anc = v; + } + + /* set update of ti probs */ + a->upDateTi = YES; + b->upDateTi = YES; + c->upDateTi = YES; + u->upDateTi = YES; + v->upDateTi = YES; + + /* set update of conditional likelihoods */ + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* reset tree downpass sequences */ + GetDownPass (t); + + } + + return (NO_ERROR); + MrBayesPrint ("%lf", *mvp); /* just because I am tired of seeing the unused parameter error msg */ +} + + +/*----------------------------------------------------------------------------------- +| +| Move_NodeSlider: move the position of one node without changing topology +| +-------------------------------------------------------------------------------------*/ +int Move_NodeSlider (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + MrBFlt tuning, maxV, minV, oldM, newM, brlensPrExp=0.0, newMin, newMax, oldMin, oldMax; + TreeNode *p, *q; + ModelParams *mp; + Tree *t; + int isVPriorExp; + + tuning = mvp[0]; /* Larget & Simon's tuning parameter lambda */ + + mp = &modelParams[param->relParts[0]]; + + /* max and min brlen (time) */ + if (param->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1]; + isVPriorExp = NO; + } + else if (param->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensPrExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + /* pick an interior branch */ + do { + p = t->intDownPass[(int)(RandomNumber(seed) * t->nIntNodes)]; + } + while (p->anc == NULL || (t->isRooted == YES && p->anc->anc == NULL)); + + /* pick one descendant branch */ + if (RandomNumber(seed) < 0.5) + q = p->left; + else + q = p->right; + + /* determine new length */ + oldM = (q->length + p->length); + newM = oldM * exp(tuning * (RandomNumber(seed) - 0.5)); + while (newM < 2.0 * minV || newM > 2.0 * maxV) + { + if (newM < 2.0 * minV) + newM = 4.0 * minV * minV / newM; + else if (newM > 2.0 * maxV) + newM = 4.0 * maxV * maxV / newM; + } + + /* determine new lengths of p and q */ + newMin = minV > newM - maxV ? minV : newM - maxV; + newMax = maxV < newM - minV ? maxV : newM - minV; + oldMin = minV > oldM - maxV ? minV : oldM - maxV; + oldMax = maxV < oldM - minV ? maxV : oldM - minV; + + q->length = newMin + RandomNumber(seed) * (newMax - newMin); + p->length = newM - q->length; + + /* the proposal ratio for two sliding windows */ + (*lnProposalRatio) = log ((newMax - newMin) / (oldMax - oldMin)); + + /* The proposal ratio for shrinking/expanding two variables (x1 = p->length, x2 = q->length) + by the same factor c = newM/oldM is c^2. This can be derived by variable transformation: + y1 = x1, y2 = x2/x1. The proposal ratio in the transformed variables is c, the Jacobian is y1, + so the proposal ratio in the original variables is c*c = c^2. + (see Move_TreeLen for m variables and Yang 2006 CME P171 S5.4.4 for details) */ + (*lnProposalRatio) += 2.0 * log(newM / oldM); + + /* set flags for update of transition probabilities at p and q */ + p->upDateTi = YES; + q->upDateTi = YES; + p->upDateCl = YES; + + /* set flags for update of cond likes from p->anc and down to root */ + while (p->anc->anc != NULL) + { + p = p->anc; + p->upDateCl = YES; + } + + /* update prior if exponential prior on branch lengths */ + if (param->paramId == BRLENS_EXP) + (*lnPriorRatio) = brlensPrExp * (oldM - newM); + /* Dirichlet or twoExp prior */ + else if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + + return (NO_ERROR); + +} + + +/*----------------------------------------------------------------------------------- +| +| Move_NodeSliderClock: Move the position of one (root or nonroot) node in clock tree. +| In calibrated trees, we need to move also calibrated terminal nodes. +| +-------------------------------------------------------------------------------------*/ +int Move_NodeSliderClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, *nEvents; + MrBFlt window, minDepth, maxDepth, oldDepth, newDepth, minL, minR, + oldLeftLength=0.0, oldRightLength=0.0, oldPLength=0.0, x, clockRate, + lambda=0.0, nu=0.0, igrvar=0.0, *brlens=NULL, *tk02Rate=NULL, *igrRate=NULL; + TreeNode *p, *q; + ModelParams *mp; + ModelInfo *m; + Tree *t; + Param *subParm; + Calibration *calibrationPtr; + + window = mvp[0]; /* window size */ + + m = &modelSettings[param->relParts[0]]; + mp = &modelParams[param->relParts[0]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get clock rate */ + if (m->clockRate == NULL) + clockRate = 1.0; + else + clockRate = *GetParamVals (m->clockRate, chain, state[chain]); + + /* check whether or not we can change root */ + if ((t->root->left->isDated == YES && t->root->left->calibration->prior == fixed) || + ((!strcmp(mp->clockPr, "Uniform") || !strcmp(mp->clockPr, "Fossilization")) && mp->treeAgePr.prior == fixed)) + i = t->nNodes - 2; + else + i = t->nNodes - 1; + + /* pick a node that can be changed in position */ + do { + p = t->allDownPass[(int)(RandomNumber(seed) * i)]; + } + while ((p->left == NULL && p->isDated == NO) || + (p->left == NULL && p->length < TIME_MIN) || + (p->isDated == YES && p->calibration->prior == fixed)); + +#if defined (DEBUG_CSLIDER) + printf ("Before node slider (clock):\n"); + printf ("Picked branch with index %d and depth %f\n", p->index, p->nodeDepth); + if (p->anc->anc == NULL) + printf ("Old clock rate: %f\n", clockRate); + ShowNodes (t->root, 0, t->isRooted); + getchar(); +#endif + + /* store values needed later for prior calculation (relaxed clocks) */ + oldPLength = p->length; + if (p->left != NULL) + { + oldLeftLength = p->left->length; + oldRightLength = p->right->length; + } + else + oldLeftLength = oldRightLength = 0.0; + + /* determine lower and upper bound */ + if (p->left == NULL) + minDepth = 0.0; + else // internal node + { + if (p->left->length > 0.0) + minL = p->left->nodeDepth + BRLENS_MIN; + else // ancestral fossil + { + assert (p->left->calibration != NULL); + minL = p->left->calibration->min * clockRate; + } + if (p->right->length > 0.0) + minR = p->right->nodeDepth + BRLENS_MIN; + else // ancestral fossil + { + assert (p->right->calibration != NULL); + minR = p->right->calibration->min * clockRate; + } + if (minL > minR) + minDepth = minL; + else + minDepth = minR; + } + + if (p->anc->anc == NULL) + maxDepth = TREEHEIGHT_MAX; + else + maxDepth = p->anc->nodeDepth - BRLENS_MIN; + if (p->left != NULL && p->left->length < TIME_MIN) + { + assert (p->left->calibration != NULL); + if (maxDepth > p->left->calibration->max * clockRate) + maxDepth = p->left->calibration->max * clockRate; + } + if (p->right != NULL && p->right->length < TIME_MIN) + { + assert (p->right->calibration != NULL); + if (maxDepth > p->right->calibration->max * clockRate) + maxDepth = p->right->calibration->max * clockRate; + } + + if (p->isDated == YES) + calibrationPtr = p->calibration; + else if (p->anc->anc == NULL && (!strcmp(mp->clockPr,"Uniform") || !strcmp(mp->clockPr, "Fossilization"))) + calibrationPtr = &mp->treeAgePr; + else + calibrationPtr = NULL; + if (calibrationPtr != NULL) + { + if (maxDepth > calibrationPtr->max * clockRate) + maxDepth = calibrationPtr->max * clockRate; + if (minDepth < calibrationPtr->min * clockRate) + minDepth = calibrationPtr->min * clockRate; + } + + /* abort if impossible */ + if (minDepth > maxDepth -BRLENS_MIN) + { + abortMove = YES; + return (NO_ERROR); + } + + /* save some reflection time */ + if (maxDepth-minDepth < window) + { + window = maxDepth-minDepth; + } + + /* pick the new node depth */ + oldDepth = p->nodeDepth; + newDepth = oldDepth + (RandomNumber(seed) - 0.5) * window; + + /* reflect the new node depth */ + while (newDepth < minDepth || newDepth > maxDepth) + { + if (newDepth < minDepth) + newDepth = 2.0 * minDepth - newDepth; + if (newDepth > maxDepth) + newDepth = 2.0 * maxDepth - newDepth; + } + + p->nodeDepth = newDepth; + + /* determine new branch lengths around p and set update of transition probabilities */ + if (p->left != NULL) + { + if (p->left->length > 0.0) { + p->left->length = p->nodeDepth - p->left->nodeDepth; + p->left->upDateTi = YES; + } + else + p->left->nodeDepth = p->nodeDepth; + if (p->right->length > 0.0) { + p->right->length = p->nodeDepth - p->right->nodeDepth; + p->right->upDateTi = YES; + } + else + p->right->nodeDepth = p->nodeDepth; + } + if (p->anc->anc != NULL) + { + p->length = p->anc->nodeDepth - p->nodeDepth; + p->upDateTi = YES; + } + + /* adjust age of p if dated */ + if (calibrationPtr != NULL) + p->age = p->nodeDepth / clockRate; + if ((p->left != NULL) && (p->left->length < TIME_MIN)) + p->left->age = p->nodeDepth / clockRate; + if ((p->right != NULL) && (p->right->length < TIME_MIN)) + p->right->age = p->nodeDepth / clockRate; + + /* set flags for update of cond likes from p and down to root */ + q = p; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + + /* calculate proposal ratio */ + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* calculate and adjust prior ratio for clock tree */ + if (LogClockTreePriorRatio (param, chain, &x) == ERROR) + return (ERROR); + (*lnPriorRatio) += x; + + /* adjust proposal and prior ratio for relaxed clock models */ + for (i=0; inSubParams; i++) + { + subParm = param->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + nEvents = subParm->nEvents[2*chain+state[chain]]; + lambda = *GetParamVals (modelSettings[subParm->relParts[0]].cppRate, chain, state[chain]); + /* proposal ratio */ + if (p->left != NULL) + { + (*lnProposalRatio) += nEvents[p->left->index ] * log (p->left->length / oldLeftLength); + (*lnProposalRatio) += nEvents[p->right->index] * log (p->right->length / oldRightLength); + } + if (p->anc->anc != NULL) + (*lnProposalRatio) += nEvents[p->index] * log (p->length / oldPLength); + + /* prior ratio */ + if (p->anc->anc == NULL) // two branches changed in same direction + (*lnPriorRatio) += lambda * (2.0 * (oldDepth - newDepth)); + else if (p->left != NULL) // two branches changed in one direction, one branch in the other direction + (*lnPriorRatio) += lambda * (oldDepth - newDepth); + else /* if (p->left == NULL) */ // one branch changed + (*lnPriorRatio) += lambda * (newDepth - oldDepth); + + /* update effective evolutionary lengths */ + if (UpdateCppEvolLengths (subParm, p, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + } + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* prior ratio & update effective evolutionary lengths */ + if (p->left != NULL) + { + if (p->left->length > 0.0) + { + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[p->index], nu*oldLeftLength, tk02Rate[p->left->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[p->index], nu*p->left->length, tk02Rate[p->left->index]); + brlens[p->left->index] = p->left->length * (tk02Rate[p->left->index]+tk02Rate[p->index])/2.0; + } + if (p->right->length > 0.0) + { + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[p->index], nu*oldRightLength, tk02Rate[p->right->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[p->index], nu*p->right->length, tk02Rate[p->right->index]); + brlens[p->right->index] = p->right->length * (tk02Rate[p->right->index]+tk02Rate[p->index])/2.0; + } + } + if (p->anc->anc != NULL) + { + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[p->anc->index], nu*oldPLength, tk02Rate[p->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[p->anc->index], nu*p->length, tk02Rate[p->index]); + brlens[p->index] = p->length * (tk02Rate[p->index]+tk02Rate[p->anc->index])/2.0; + } + } + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* prior ratio & update effective evolutionary lengths */ + if (p->left != NULL) + { + if (p->left->length > 0.0) + { + (*lnPriorRatio) -= LnProbGamma (oldLeftLength/igrvar, oldLeftLength/igrvar, igrRate[p->left->index ]); + (*lnPriorRatio) += LnProbGamma (p->left->length/igrvar, p->left->length/igrvar, igrRate[p->left->index ]); + brlens[p->left->index ] = igrRate[p->left->index ] * p->left->length; + } + if (p->right->length > 0.0) + { + (*lnPriorRatio) -= LnProbGamma (oldRightLength/igrvar, oldRightLength/igrvar, igrRate[p->right->index]); + (*lnPriorRatio) += LnProbGamma (p->right->length/igrvar, p->right->length/igrvar, igrRate[p->right->index]); + brlens[p->right->index] = igrRate[p->right->index] * p->right->length; + } + } + if (p->anc->anc != NULL) + { + (*lnPriorRatio) -= LnProbGamma (oldPLength/igrvar, oldPLength/igrvar, igrRate[p->index]); + (*lnPriorRatio) += LnProbGamma (p->length /igrvar, p->length /igrvar, igrRate[p->index]); + brlens[p->index] = igrRate[p->index] * p->length; + } + } + } + +#if defined (DEBUG_CSLIDER) + printf ("After node slider (clock):\n"); + printf ("Old depth: %f -- New depth: %f -- LnPriorRatio %f -- LnProposalRatio %f\n", + oldDepth, newDepth, (*lnPriorRatio), (*lnProposalRatio)); + ShowNodes (t->root, 0, t->isRooted); + getchar(); +#endif + + return (NO_ERROR); +} + + +int Move_Nu (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move the variance of the TK02 relaxed clock lognormal using multiplier */ + + int i, j; + MrBFlt oldNu, newNu, minNu, maxNu, tuning, *tk02Rate; + Model *mp; + TreeNode *p; + Tree *t; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get the min and max values */ + minNu = TK02VAR_MIN; + maxNu = TK02VAR_MAX; + if (!strcmp(mp->tk02varPr,"Uniform")) + { + minNu = (mp->tk02varUni[0] < TK02VAR_MIN) ? TK02VAR_MIN : mp->tk02varUni[0]; + maxNu = (mp->tk02varUni[1] > TK02VAR_MAX) ? TK02VAR_MAX : mp->tk02varUni[1]; + } + + /* get the TK02 lognormal variance */ + oldNu = *GetParamVals (param, chain, state[chain]); + + /* set new value */ + newNu = oldNu * exp ((0.5 - RandomNumber(seed))*tuning); + + /* reflect if necessary */ + while (newNu < minNu || newNu > maxNu) + { + if (newNu < minNu) + newNu = minNu * minNu / newNu; + if (newNu > maxNu) + newNu = maxNu * maxNu / newNu; + } + + /* store new value */ + (*GetParamVals (param, chain, state[chain])) = newNu; + + /* calculate prior ratio */ + for (i=0; inSubParams; i++) + { + tk02Rate = GetParamVals (param->subParams[i], chain, state[chain]); + t = GetTree (param->subParams[i], chain, state[chain]); + for (j=0; jnNodes-2; j++) + { + p = t->allDownPass[j]; + if (p->length > 0.0) // not ancestral fossil + { + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[p->anc->index], oldNu*p->length, tk02Rate[p->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[p->anc->index], newNu*p->length, tk02Rate[p->index]); + } + } + } + + /* take prior on nu into account */ + if (!strcmp(mp->tk02varPr,"Exponential")) + (*lnPriorRatio) += mp->tk02varExp * (oldNu - newNu); + + /* calculate proposal ratio */ + (*lnProposalRatio) = log (newNu / oldNu); + + /* we do not need to update likelihoods */ + for (i=0; inRelParts; i++) + { + modelSettings[param->relParts[i]].upDateCl = NO; + } + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_Omega: Change the nonysnonymous/synonymous rate ratio +| Note that this is appropriate when omegavar=equal +| +----------------------------------------------------------------*/ +int Move_Omega (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change omega using sliding window */ + + int i, isValidO; + MrBFlt oldO, newO, window, minO, maxO, ran, *alphaDir, oldPropRatio, newPropRatio, x, y; + ModelParams *mp; + + /* get size of window, centered on current omega value */ + window = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get minimum and maximum values for omega */ + minO = OMEGA_MIN; + maxO = OMEGA_MAX; + + /* get old value of omega */ + oldO = *GetParamVals(param, chain, state[chain]); + + /* get Dirichlet parameters */ + alphaDir = mp->tRatioDir; + + /* change value for omega */ + ran = RandomNumber(seed); + if (maxO-minO < window) + { + window = maxO-minO; + } + newO = oldO + window * (ran - 0.5); + + /* check that new value is valid */ + isValidO = NO; + do { + if (newO < minO) + newO = 2.0 * minO - newO; + else if (newO > maxO) + newO = 2.0 * maxO - newO; + else + isValidO = YES; + } + while (isValidO == NO); + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* get prior ratio from Dirichlet */ + oldPropRatio = oldO / (oldO + 1.0); + newPropRatio = newO / (newO + 1.0); + x = ((alphaDir[0] - 1.0) * log(newPropRatio)) + ((alphaDir[1] - 1.0) * log (1.0 - newPropRatio)); + y = ((alphaDir[0] - 1.0) * log(oldPropRatio)) + ((alphaDir[1] - 1.0) * log (1.0 - oldPropRatio)); + (*lnPriorRatio) = x - y; + + /* copy new omega value back */ + *GetParamVals(param, chain, state[chain]) = newO; + + /* Set update flags for all partitions that share this kappa. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. If this is a simple 4 X 4 model, + we don't take any hit, because we will never go into a general transition probability + calculator. However, for covarion, doublet, and codon models, we do want to update + the cijk flag. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_Omega_M: Change the nonysnonymous/synonymous rate ratio +| using multiplier. Note that this is appropriate when +| omegavar=equal +| +----------------------------------------------------------------*/ +int Move_Omega_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change omega using multiplier */ + + int i, isValidO; + MrBFlt oldO, newO, minO, maxO, tuning, ran, factor, *alphaDir, oldPropRatio, newPropRatio, x, y; + ModelParams *mp; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get minimum and maximum values for omega */ + minO = OMEGA_MIN; + maxO = OMEGA_MAX; + + /* get old value of omega */ + oldO = *GetParamVals(param, chain, state[chain]); + + /* get Dirichlet parameters */ + alphaDir = mp->omegaDir; + + /* change value for omega */ + ran = RandomNumber(seed); + factor = exp(tuning * (ran - 0.5)); + newO = oldO * factor; + + /* check that new value is valid */ + isValidO = NO; + do + { + if (newO < minO) + newO = minO * minO / newO; + else if (newO > maxO) + newO = maxO * maxO / newO; + else + isValidO = YES; + } while (isValidO == NO); + + /* get proposal ratio */ + *lnProposalRatio = log(newO / oldO); + + /* get prior ratio from Dirichlet */ + oldPropRatio = oldO / (oldO + 1.0); + newPropRatio = newO / (newO + 1.0); + x = ((alphaDir[0] - 1.0) * log(newPropRatio)) + ((alphaDir[1] - 1.0) * log (1.0 - newPropRatio)); + y = ((alphaDir[0] - 1.0) * log(oldPropRatio)) + ((alphaDir[1] - 1.0) * log (1.0 - oldPropRatio)); + (*lnPriorRatio) = x - y; + + /* copy new omega value back */ + *GetParamVals(param, chain, state[chain]) = newO; + + /* Set update flags for all partitions that share this omega. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. If this is a simple 4 X 4 model, + we don't take any hit, because we will never go into a general transition probability + calculator. However, for covarion, doublet, and codon models, we do want to update + the cijk flag. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_OmegaBeta_M: Change parameters of the beta distribution +| using multiplier for the M10 model. Note that this is +| appropriate when omegavar=M10 +| +----------------------------------------------------------------*/ +int Move_OmegaBeta_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, isValidVal, whichParam; + MrBFlt oldVal, newVal, minVal, maxVal, *vals, *subVals, tuning, ran, factor; + ModelParams *mp; + + /* do we pick alpha or beta of the Beta distribution to change */ + if (RandomNumber(seed) < 0.5) + whichParam = 0; + else + whichParam = 1; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get minimum and maximum values for omega */ + minVal = 0.05; + maxVal = 100.0; + + /* get old value of omega */ + vals = GetParamVals(param, chain, state[chain]); + subVals = GetParamSubVals(param, chain, state[chain]); + oldVal = subVals[mp->numM10BetaCats + mp->numM10GammaCats + 4 + whichParam]; + + /* change value for alpha/beta */ + ran = RandomNumber(seed); + factor = exp(tuning * (ran - 0.5)); + newVal = oldVal * factor; + + /* check that new value is valid */ + isValidVal = NO; + do + { + if (newVal < minVal) + newVal = minVal * minVal / newVal; + else if (newVal > maxVal) + newVal = maxVal * maxVal / newVal; + else + isValidVal = YES; + } while (isValidVal == NO); + + /* get proposal ratio */ + *lnProposalRatio = log(newVal / oldVal); + + /* get prior ratio */ + if (!strcmp(mp->m10betapr, "Exponential")) + (*lnPriorRatio) = (log(mp->m10betaExp) - newVal * mp->m10betaExp) - (log(mp->m10betaExp) - oldVal * mp->m10betaExp); + else + (*lnPriorRatio) = 0.0; + + /* copy new omega value back */ + subVals[mp->numM10BetaCats + mp->numM10GammaCats + 4 + whichParam] = newVal; + + /* update the omega values */ + BetaBreaks (subVals[mp->numM10BetaCats + mp->numM10GammaCats + 4], subVals[mp->numM10BetaCats + mp->numM10GammaCats + 5], &vals[0], mp->numM10BetaCats); + + /* Set update flags for all partitions that share this kappa. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. If this is a simple 4 X 4 model, + we don't take any hit, because we will never go into a general transition probability + calculator. However, for covarion, doublet, and codon models, we do want to update + the cijk flag. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_OmegaGamma_M: Change parameters of the gamma distribution +| using multiplier for the M10 model. Note that this is +| appropriate whenomegavar=M10 +| +----------------------------------------------------------------*/ +int Move_OmegaGamma_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, isValidVal, whichParam; + MrBFlt oldVal, newVal, minVal, maxVal, *vals, *subVals, tuning, ran, factor, quantile95; + ModelParams *mp; + + /* do we pick alpha or beta of the Gamma distribution to change */ + if (RandomNumber(seed) < 0.5) + whichParam = 0; + else + whichParam = 1; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get minimum and maximum values for omega */ + minVal = 0.05; + maxVal = 100.0; + + /* get values */ + vals = GetParamVals(param, chain, state[chain]); + subVals = GetParamSubVals(param, chain, state[chain]); + oldVal = subVals[mp->numM10BetaCats + mp->numM10GammaCats + 6 + whichParam]; + + /* change value for alpha/beta */ + do + { + ran = RandomNumber(seed); + factor = exp(tuning * (ran - 0.5)); + newVal = oldVal * factor; + + /* check that new value is valid */ + isValidVal = NO; + do + { + if (newVal < minVal) + newVal = minVal * minVal / newVal; + else if (newVal > maxVal) + newVal = maxVal * maxVal / newVal; + else + isValidVal = YES; + } while (isValidVal == NO); + + /* check that the distribution does not go too far to the right */ + if (whichParam == 0) + quantile95 = QuantileGamma (0.95, newVal, subVals[mp->numM10BetaCats + mp->numM10GammaCats + 7]); + else + quantile95 = QuantileGamma (0.95, subVals[mp->numM10BetaCats + mp->numM10GammaCats + 6], newVal); + + } while (quantile95 > 100.0); + + /* get proposal ratio */ + *lnProposalRatio = log(newVal / oldVal); + + /* get prior ratio */ + if (!strcmp(mp->m10gammapr, "Exponential")) + (*lnPriorRatio) = (log(mp->m10gammaExp) - newVal * mp->m10gammaExp) - (log(mp->m10gammaExp) - oldVal * mp->m10gammaExp); + else + (*lnPriorRatio) = 0.0; + + /* copy new value back */ + subVals[mp->numM10BetaCats + mp->numM10GammaCats + 6 + whichParam] = newVal; + + /* update the omega values */ + if (DiscreteGamma (&vals[mp->numM10BetaCats], subVals[mp->numM10BetaCats + mp->numM10GammaCats + 6], + subVals[mp->numM10BetaCats + mp->numM10GammaCats + 7], mp->numM10GammaCats, 0) == ERROR) + return (ERROR); + for (i=0; inumM10GammaCats; i++) + vals[mp->numM10BetaCats + i] += 1.0; + + /* Set update flags for all partitions that share this kappa. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. If this is a simple 4 X 4 model, + we don't take any hit, because we will never go into a general transition probability + calculator. However, for covarion, doublet, and codon models, we do want to update + the cijk flag. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +int Move_OmegaCat (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, localNumCats, numBetaAndGammaCats; + MrBFlt dirichletParameters[3], *newSubVals, *oldSubVals, *newFreqs, *oldFreqs, *priorParams, sum, alpha, x, y; + ModelParams *mp; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* how many categories are there */ + localNumCats = 3; + numBetaAndGammaCats = 0; + if (!strcmp(mp->omegaVar, "M10")) + { + localNumCats = 2; + numBetaAndGammaCats = mp->numM10BetaCats + mp->numM10GammaCats; + } + + /* get the values we need */ + newSubVals = GetParamSubVals (param, chain, state[chain]); + oldSubVals = GetParamSubVals (param, chain, state[chain] ^ 1); + if (!strcmp(mp->omegaVar, "M10")) + { + newFreqs = newSubVals + numBetaAndGammaCats; + oldFreqs = oldSubVals + numBetaAndGammaCats; + priorParams = newSubVals + (numBetaAndGammaCats + 2); + } + else + { + newFreqs = newSubVals + 0; + oldFreqs = oldSubVals + 0; + priorParams = newFreqs + 3; + } + + /* get parameter of proposal mechanism */ + alpha = mvp[0]; + + /* multiply old values with some large number to get new values close to the old ones */ + for (i=0; iomegaVar, "M10")) + { + for (i=0; inumM10BetaCats; i++) + newSubVals[i] = newFreqs[0] / mp->numM10BetaCats; + for (i=mp->numM10BetaCats; inumM10BetaCats+mp->numM10GammaCats; i++) + newSubVals[i] = newFreqs[1] / mp->numM10GammaCats; + } + + /* get proposal ratio */ + sum = 0.0; + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_OmegaM3: Change the nonysnonymous/synonymous rate ratio +| of one class of the M3 model +| +----------------------------------------------------------------*/ +int Move_OmegaM3 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, isValidO, whichOmega; + MrBFlt newO, window, minO, maxO, ran, *value, *oldValue, x, y; + + /* get size of window, centered on current omega value */ + window = mvp[0]; + + /* get old value of omega */ + value = GetParamVals(param, chain, state[chain]); + oldValue = GetParamVals(param, chain, state[chain] ^ 1); + whichOmega = (int) (RandomNumber(seed)*3.0); + + /* get minimum and maximum values for omega */ + if (whichOmega == 0) + minO = 0.0; + else + minO = value[whichOmega-1]; + if (whichOmega == 2) + maxO = OMEGA_MAX; + else + maxO = value[whichOmega+1]; + + /* change value for omega */ + ran = RandomNumber(seed); + if (maxO-minO < window) + { + window = maxO-minO; + } + newO = oldValue[whichOmega] + window * (ran - 0.5); + + /* check that new value is valid */ + isValidO = NO; + do + { + if (newO < minO) + newO = 2* minO - newO; + else if (newO > maxO) + newO = 2 * maxO - newO; + else + isValidO = YES; + } while (isValidO == NO); + + /* copy new omega value back */ + value[whichOmega] = newO; + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* get prior ratio */ + x = LogOmegaPrior (value[0], value[1], value[2]); + y = LogOmegaPrior (oldValue[0], oldValue[1], oldValue[2]); + *lnPriorRatio = x - y; + + /* Set update flags for all partitions that share this omega. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_OmegaNeu: Change the nonysnonymous/synonymous rate ratio +| for neutral sites +| +----------------------------------------------------------------*/ +int Move_OmegaNeu (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, isOPriorExp, isValidO; + MrBFlt oldO, newO, window, minO, maxO, ran, *value, x, y; + + /* get size of window, centered on current omega value */ + window = mvp[0]; + + /* get old value of omega */ + value = GetParamVals(param, chain, state[chain]); + newO = oldO = value[1]; + + /* get minimum and maximum values for omega */ + minO = value[0]; + maxO = value[2]; + + /* the only way we would be updating the middle category (omega2) is + if we have an exponential prior on all three omegas */ + isOPriorExp = YES; + + /* change value for omega */ + ran = RandomNumber(seed); + if (maxO-minO < window) + { + window = maxO-minO; + } + newO = oldO + window * (ran - 0.5); + + /* check that new value is valid */ + isValidO = NO; + do + { + if (newO < minO) + newO = 2 * minO - newO; + else if (newO > maxO) + newO = 2 * maxO - newO; + else + isValidO = YES; + } while (isValidO == NO); + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* copy new omega value back */ + value[1] = newO; + + /* get prior ratio */ + if (isOPriorExp == NO) + { + *lnPriorRatio = 0.0; + } + else + { + x = LogOmegaPrior (value[0], newO, value[2]); + y = LogOmegaPrior (value[0], oldO, value[2]); + *lnPriorRatio = x - y; + } + + /* Set update flags for all partitions that share this omega. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_OmegaPos: Change the nonysnonymous/synonymous rate ratio +| for positively selected sites +| +----------------------------------------------------------------*/ +int Move_OmegaPos (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, isValidO, omegaUni, omegaExp1, omegaExp2; + MrBFlt oldO, newO, window, minO=0.0, maxO=0.0, ran, *value, x, y; + ModelParams *mp; + + /* get size of window, centered on current omega value */ + window = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get old value of omega */ + value = GetParamVals(param, chain, state[chain]); + newO = oldO = value[2]; + + /* determine prior for omega */ + omegaUni = omegaExp1 = omegaExp2 = NO; + if (param->paramId == OMEGA_BUD || param->paramId == OMEGA_BUF || param->paramId == OMEGA_FUD || param->paramId == OMEGA_FUF) + omegaUni = YES; + else if (param->paramId == OMEGA_BED || param->paramId == OMEGA_BEF || param->paramId == OMEGA_FED || param->paramId == OMEGA_FEF) + omegaExp1 = YES; + else if (param->paramId == OMEGA_ED || param->paramId == OMEGA_EF) + omegaExp2 = YES; + + /* get minimum and maximum values for omega */ + if (omegaUni == YES) + { + minO = mp->ny98omega3Uni[0]; + if (minO < value[1]) + minO = value[1]; + maxO = mp->ny98omega3Uni[1]; + if (maxO > KAPPA_MAX) + maxO = KAPPA_MAX; + } + else if (omegaExp1 == YES || omegaExp2 == YES) + { + minO = value[1]; + maxO = KAPPA_MAX; + } + + /* change value for omega */ + ran = RandomNumber(seed); + if (maxO-minO < window) + { + window = maxO-minO; + } + newO = oldO + window * (ran - 0.5); + + /* check that new value is valid */ + isValidO = NO; + do + { + if (newO < minO) + newO = 2* minO - newO; + else if (newO > maxO) + newO = 2 * maxO - newO; + else + isValidO = YES; + } while (isValidO == NO); + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* copy new omega value back */ + value[2] = newO; + + /* get prior ratio (part 2) */ + if (omegaUni == YES) + { + *lnPriorRatio = 0.0; + } + else if (omegaExp1 == YES) + { + *lnPriorRatio = mp->ny98omega3Exp * (oldO - newO); + } + else if (omegaExp2 == YES) + { + x = LogOmegaPrior (value[0], value[1], newO); + y = LogOmegaPrior (value[0], value[1], oldO); + *lnPriorRatio = x - y; + } + + /* Set update flags for all partitions that share this omega. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_OmegaPur: Change the nonysnonymous/synonymous rate ratio +| for purifying selection sites +| +----------------------------------------------------------------*/ +int Move_OmegaPur (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, isOPriorExp, isValidO; + MrBFlt oldO, newO, window, minO, maxO, ran, *value, x, y; + + /* get size of window, centered on current omega value */ + window = mvp[0]; + + /* get old value of omega */ + value = GetParamVals(param, chain, state[chain]); + newO = oldO = value[0]; + + /* get minimum and maximum values for omega */ + minO = 0.0; + maxO = value[1]; + + /* get prior for omega */ + if (param->paramId == OMEGA_BUD || param->paramId == OMEGA_BUF || param->paramId == OMEGA_BED || + param->paramId == OMEGA_BEF || param->paramId == OMEGA_BFD || param->paramId == OMEGA_BFF) + isOPriorExp = NO; + else + isOPriorExp = YES; + + /* change value for omega */ + ran = RandomNumber(seed); + if (maxO-minO < window) + { + window = maxO-minO; + } + newO = oldO + window * (ran - 0.5); + + /* check that new value is valid */ + isValidO = NO; + do + { + if (newO < minO) + newO = 2* minO - newO; + else if (newO > maxO) + newO = 2 * maxO - newO; + else + isValidO = YES; + } while (isValidO == NO); + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* copy new omega value back */ + value[0] = newO; + + /* get prior ratio (part 2) */ + if (isOPriorExp == NO) + { + *lnPriorRatio = 0.0; + } + else + { + x = LogOmegaPrior (newO, value[1], value[2]); + y = LogOmegaPrior (oldO, value[1], value[2]); + *lnPriorRatio = x - y; + } + + /* Set update flags for all partitions that share this omega. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_ParsEraser1: This proposal mechanism changes the topology and +| branch lengths of an unrooted tree. A randomly chosen region of +| the tree is erased. Parsimony is used to guide the selection of +| a new topology for the erased part of the tree. The parsimony +| branch lengths are used to guide the proposal of new branch +| lengths. This variant (1) uses exhaustive enumeration. +| +| Programmed by FR 2004-10-23-- +| +----------------------------------------------------------------*/ +int Move_ParsEraser1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, j, isVPriorExp, nSubTerminals, nEmbeddedTrees; + MrBFlt alphaPi, warp, minV, maxV, minP, maxP, brlensExp=0.0, newM, oldM, maxLen, + *brlensCur, *brlensNew, *parslensCur, *parslensNew, + curLength, newLength, lnJacobian, lnRandomRatio, alpha[2], prob[2], + minLenCur, minLenNew, f; + TreeNode *p=NULL; + Tree *t, *subtree, *subtree1, memTree[2]; + ModelParams *mp; + ModelInfo *m; + TreeInfo tInfo; + + /* set pointers to NULL */ + subtree = subtree1 = NULL; + brlensCur = NULL; + for (i=0; i<2; i++) + { + memTree[i].allDownPass = NULL; + memTree[i].intDownPass = NULL; + memTree[i].nodes = NULL; + } + tInfo.leaf = NULL; + + /* Set alpha Pi for Dirichlet p generator */ + alphaPi = mvp[0]; + alphaPi = 0.05; + + /* Set the parsimony warp factor */ + warp = mvp[1]; + warp = 0.2; + + /* Set the number of terminals (nSubTerminals, column 3) in erased tree */ + /* Erased Nodes => Leaves => Terminals => Embedded trees => Embedded histories => New trees + 2 => 3 => 4 => 2 => 2 = 2! => 3 = 1*3 + 3 => 4 => 5 => 5 => 6 = 3! => 15 = 1*3*5 + 4 => 5 => 6 => 14 => 24 = 4! => 105 = 1*3*5*7 + 5 => 6 => 7 => 42 => 120 = 5! => 945 = 1*3*5*7*9 + etc */ + nSubTerminals = (int) (RandomNumber(seed) * 4) + 4; + nSubTerminals = 7; + + /* initialize log prior and log proposal probabilities */ + *lnPriorRatio = *lnProposalRatio = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1]; + isVPriorExp = NO; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + minP = 3.0 * ((1.0 / 4.0) - ((1.0 / 4.0) * exp (-4.0 * minV / 3.0))); + maxP = 3.0 * ((1.0 / 4.0) - ((1.0 / 4.0) * exp (-4.0 * maxV / 3.0))); + + /* allocate some memory for this move */ + brlensCur = (MrBFlt *) SafeMalloc (8 * nSubTerminals * sizeof (MrBFlt)); + if (!brlensCur) + { + MrBayesPrint ("%s ERROR: Could not allocate brlensCur\n", spacer); + goto errorExit; + } + brlensNew = brlensCur + 2*nSubTerminals; + parslensCur = brlensCur + 4 * nSubTerminals; + parslensNew = brlensCur + 6 * nSubTerminals; + + subtree = &memTree[0]; + subtree->nNodes = 2 * nSubTerminals - 2; + subtree->nIntNodes = nSubTerminals - 2; + subtree->nodes = (TreeNode *) SafeCalloc (subtree->nNodes, sizeof (TreeNode)); + subtree->allDownPass = (TreeNode **) SafeCalloc (subtree->nNodes, sizeof (TreeNode *)); + subtree->intDownPass = (TreeNode **) SafeCalloc (subtree->nIntNodes, sizeof (TreeNode *)); + if (!subtree->nodes || !subtree->intDownPass || !subtree->allDownPass) + { + MrBayesPrint ("%s ERROR: Could not allocate subtree\n", spacer); + goto errorExit; + } + + subtree1 = &memTree[1]; + subtree1->nNodes = 2 * nSubTerminals - 2; + subtree1->nIntNodes = nSubTerminals - 2; + subtree1->nodes = (TreeNode *) SafeCalloc (subtree1->nNodes, sizeof (TreeNode)); + subtree1->allDownPass = (TreeNode **) SafeCalloc (subtree1->nNodes, sizeof (TreeNode *)); + subtree1->intDownPass = (TreeNode **) SafeCalloc (subtree1->nIntNodes, sizeof (TreeNode *)); + if (!subtree1->nodes || !subtree1->intDownPass || !subtree1->allDownPass) + { + MrBayesPrint ("%s ERROR: Could not allocate subtree1\n", spacer); + goto errorExit; + } + + tInfo.leaf = (TreeNode **) SafeCalloc (t->nNodes, sizeof(TreeNode *)); + if (!tInfo.leaf) + { + MrBayesPrint ("%s ERROR: Could not allocate tInfo.leaf\n", spacer); + goto errorExit; + } + tInfo.vertex = tInfo.leaf + t->nNodes - t->nIntNodes; + + /* Select a random embedded subtree with nSubTerminals terminals */ + if (GetRandomEmbeddedSubtree (t, nSubTerminals, seed, &nEmbeddedTrees) == ERROR) + { + MrBayesPrint ("%s ERROR: Could not get subtree\n", spacer); + goto errorExit; + } + + /* Set update flags (We'd better do it before the marked nodes disappear) */ + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + if (p->marked == YES) + { + p->upDateCl = YES; + p->upDateTi = YES; + } + else if (p->left->upDateCl == YES || p->right->upDateCl == YES) + p->upDateCl = YES; + } + + /* Fill in subtrees */ + CopyTreeToSubtree (t, subtree); + CopyTreeToSubtree (t, subtree1); + + /* Calculate downstates and upstate of root node of subtree */ + GetParsDP (t, t->root->left, chain); + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + if (p->marked == YES && p->anc->marked == NO) + break; + } + GetParsimonySubtreeRootstate (t, p->anc, chain); + + /* Get parsimony length of current tree */ + curLength = GetParsimonyLength (subtree, chain); + + /* Get the Markov and parsimony branch lengths of the current subtree */ + GetParsimonyBrlens (subtree, chain, parslensCur); + for (i=0; inNodes-1; i++) + brlensCur[i] = subtree->allDownPass[i]->length; + + /* Calculate parsimony score of all trees relative to shortest tree (1.0) */ + tInfo.totalScore = 0.0; + tInfo.stopScore = -1.0; + tInfo.minScore = curLength; + tInfo.warp = warp; + ExhaustiveParsimonySearch (subtree, chain, &tInfo); + + /* Choose one of these trees randomly based on its score */ + tInfo.stopScore = RandomNumber(seed) * tInfo.totalScore; + tInfo.totalScore = 0.0; + ExhaustiveParsimonySearch (subtree1, chain, &tInfo); + /* ShowNodes (subtree1->root, 0 , NO); */ + /* getchar(); */ + + /* Get length of that tree */ + + newLength = GetParsimonyLength (subtree1, chain); + + /* Get the parsimony branch lengths of the new subtree */ + GetParsimonyBrlens (subtree1, chain, parslensNew); + + /* Find the maximum length of a branch */ + maxLen = 0.0; + for (i=0; inRelParts; i++) + { + j = t->relParts[i]; + m = &modelSettings[j]; + maxLen += m->numUncompressedChars; + } + + /* Find the Markov branch lengths of the new subtree */ + /* Calculate Jacobian and prob ratio for the Dirichlet random number generator */ + lnJacobian = lnRandomRatio = 0.0; + minLenCur = minLenNew = 0.0; + for (i=0; inNodes-1; i++) + { + minLenCur += parslensCur[i]; + minLenNew += parslensNew[i]; + } + for (i=0; inNodes-1; i++) + { + p = subtree1->allDownPass[i]; + f = newLength / minLenNew; + alpha[0] = parslensNew[i] * f * alphaPi + 1.0; + alpha[1] = (maxLen - parslensNew[i] * f) * alphaPi + 1.0; + DirichletRandomVariable (alpha, prob, 2, seed); + if (prob[0] >= maxP || prob[0] <= minP) + { + abortMove = YES; + return NO_ERROR; + } + + p->length = (-3.0 / 4.0) * log (1.0 - 4.0 * prob[0] / 3.0); + lnJacobian += (-4.0 * brlensCur[i] / 3.0) - log (1.0 - 4.0 * prob[0] / 3.0); + lnRandomRatio -= log (pow (prob[0], alpha[0] - 1.0) * pow (prob[1], alpha[1] - 1.0)); + f = curLength / minLenNew; + alpha[0] = parslensCur[i] * f * alphaPi + 1.0; + alpha[1] = (maxLen - parslensCur[i] * f) * alphaPi + 1.0; + prob[0] = 3.0 * ((1.0 / 4.0) - ((1.0 / 4.0) * exp (-4.0 * brlensCur[i] / 3.0))); + prob[1] = 1.0 - prob[0]; + lnRandomRatio += log (pow (prob[0], alpha[0] - 1.0) * pow (prob[1], alpha[1] - 1.0)); + } + + /* Store the new Markov branch lengths */ + for (i=0; inNodes-1; i++) + brlensNew[i] = subtree1->allDownPass[i]->length; + + /* Calculate the proposal ratio */ + (*lnProposalRatio) = lnJacobian + lnRandomRatio + log (warp/3.0) * (curLength - newLength) + log (1.0-warp) * (newLength - curLength); + + /* Calculate the prior ratio */ + if (isVPriorExp == YES) + { + newM = oldM = 0.0; + for (i=0; inNodes-1; i++) + { + oldM += brlensCur[i]; + newM += brlensNew[i]; + } + (*lnPriorRatio) += brlensExp * (oldM - newM); + } + + /* Copy subtree into tree */ + CopySubtreeToTree (subtree1, t); + /* ShowNodes (subtree1->root, 0, NO); */ + /* ShowNodes (t->root, 0, NO); */ + + /* Update node sequences */ + GetDownPass (t); + + /* correct for difference in number of embedded subtrees */ + if (GetRandomEmbeddedSubtree (t, nSubTerminals, seed, &i) == ERROR) + { + MrBayesPrint ("%s Could not count number of subtrees in Move_ParsEraser1\n", spacer); + goto errorExit; + } + if (i != nEmbeddedTrees) + (*lnProposalRatio) += log ((MrBFlt) nEmbeddedTrees / (MrBFlt) i); + + /* Free memory allocated for this move */ + free (subtree->allDownPass); + free (subtree->intDownPass); + free (subtree->nodes); + free (subtree1->allDownPass); + free (subtree1->intDownPass); + free (subtree1->nodes); + free (brlensCur); + free (tInfo.leaf); + + return (NO_ERROR); + +errorExit: + + free (subtree->allDownPass); + free (subtree->intDownPass); + free (subtree->nodes); + free (subtree1->allDownPass); + free (subtree1->intDownPass); + free (subtree1->nodes); + free (brlensCur); + free (tInfo.leaf); + + return (ERROR); +} + + +int Move_ParsSPR (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change topology (and branch lengths) using SPR (asymmetric) biased according to parsimony scores. */ + + int i, j, n, division, topologyHasChanged, isVPriorExp; + BitsLong *pA, *pV, *pP, y[2]; + MrBFlt x, minV, maxV, brlensExp=0.0, minLength=0.0, length=0.0, + cumulativeProb, warpFactor, ran, tuning, increaseProb, decreaseProb, + divFactor, nStates, rateMult, v_typical, sum1, sum2, tempsum, tempc, tempy; + CLFlt *nSitesOfPat, *nSites, *globalNSitesOfPat; + TreeNode *p, *q, *a, *b, *u, *v, *c=NULL, *d; + Tree *t; + ModelParams *mp; + ModelInfo *m = NULL; + + warpFactor = mvp[0]; /* tuning parameter determining how heavily to weight according to parsimony scores */ + increaseProb = decreaseProb = mvp[1]; /* reweighting probabilities */ + v_typical = mvp[2]; /* typical branch length for conversion of parsimony score to log prob ratio */ + tuning = mvp[3]; /* multiplier tuning parameter */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get model params and model info */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1] < BRLENS_MAX ? mp->brlensUni[1] : BRLENS_MAX; + isVPriorExp = NO; + } + else if (param->subParams[0]->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->subParams[0]->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->subParams[0]->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + +# if defined (DEBUG_ParsSPR) + // WriteTopologyToFile (stdout, t->root->left, t->isRooted); fprintf (stdout, ";\t"); + printf ("Before:\n"); + ShowNodes (t->root, 2, YES); + getchar(); +# endif + + /* set topologyHasChanged to NO */ + topologyHasChanged = NO; + + /* reset node variables that will be used */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->marked = NO; + p->d = 0; + } + + /* pick a random branch */ + p = t->allDownPass[(int)(RandomNumber(seed) * (t->nNodes -2))]; + q = p->anc->right; + if (q == p) + q = p->anc->left; + if ((p->anc->anc->anc == NULL || p->anc->isLocked == YES) && (q->left == NULL || q->isLocked == YES)) + { + abortMove = YES; + return (NO_ERROR); + } + + /* set up pointers for nodes around the picked branch */ + v = p; + u = p->anc; + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + + /* clip tree */ + a->anc = b; + if (b->left == u) + b->left = a; + else + b->right = a; + + /* get final parsimony states for the root part */ + GetParsDP (t, t->root->left, chain); + GetParsFP (t, t->root->left, chain); + + /* get downpass parsimony states for the crown part */ + GetParsDP (t, v, chain); + + /* mark all nodes in the root part of the tree, taking constraints into account */ + /* first mark a */ + a->marked = YES; + /* then move down towards root */ + if (u->isLocked == NO) + { + p = a->anc; + while (p->anc != NULL) + { + p->marked = YES; + if (p->isLocked == YES) + break; + p = p->anc; + } + } + + /* finally move up */ + for (i=t->nNodes-2; i>=0; i--) + { + p = t->allDownPass[i]; + if (p->marked == NO && p->anc->marked == YES && p->anc->isLocked == NO && p != u) + p->marked = YES; + } + + /* find number of site patterns and modify randomly */ + globalNSitesOfPat = numSitesOfPat + (chainId[chain] % chainParams.numChains) * numCompressedChars + m->compCharStart; + nSitesOfPat = (CLFlt *) SafeCalloc (numCompressedChars, sizeof(CLFlt)); + if (!nSitesOfPat) + { + MrBayesPrint ("%s Problem allocating nSitesOfPat in Move_ParsSPR\n", spacer); + return (ERROR); + } + for (i=0; i 1.0 - increaseProb) + nSitesOfPat[i]++; + } + } + + /* cycle through the possibilities and record the parsimony length */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == NO) + continue; + /* find the parsimony length */ + p->d = 0.0; + for (n=0; nnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + /* find nSitesOfPat */ + nSites = nSitesOfPat + m->compCharStart; + + /* find downpass parsimony sets for the node and its environment */ + pP = m->parsSets[p->index]; + pA = m->parsSets[p->anc->index]; + pV = m->parsSets[v->index]; + + length = 0.0; + if (m->nParsIntsPerSite == 1) + { + for (j=0; jnumChars; j++) + { + y[0] = (pP[j] | pA[j]) & pV[j]; + if (y[0] == 0) + length += nSites[j]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (j=0; j<2*m->numChars; j+=2) + { + y[0] = (pP[j] | pA[j]) & pV[j]; + y[1] = (pP[j+1] | pA[j+1]) & pV[j+1]; + if ((y[0] | y[1]) == 0) + length += nSites[j/2]; + } + } + + /* find nStates and ratemult */ + nStates = m->numModelStates; + if (m->dataType == STANDARD) + nStates = 2; + rateMult = GetRate(division, chain); + + /* get division warp factor */ + divFactor = - warpFactor * log((1.0/nStates) - exp(-nStates/(nStates-1)*v_typical*rateMult)/nStates); + + p->d += divFactor * length; + } + } + + /* find the min length and the sum for the forward move */ + minLength = -1.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == NO || p == a) + continue; + if (minLength < 0.0 || p->d < minLength) + minLength = p->d; + } + sum1 = 0.0; tempc = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES && p != a) + { + /* Kahan summation to reduce numerical error */ + tempy = exp (minLength - p->d) - tempc; + tempsum = sum1 + tempy; + tempc = (tempsum - sum1) - tempy; + sum1 = tempsum; + } + } + + /* generate a random uniform */ + ran = RandomNumber(seed) * sum1; + + /* select the appropriate reattachment point */ + cumulativeProb = 0.0; tempc = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES && p != a) + { + c = p; + /* Kahan summation to reduce numerical error */ + tempy = exp (minLength - p->d) - tempc; + tempsum = cumulativeProb + tempy; + tempc = (tempsum - cumulativeProb) - tempy; + cumulativeProb = tempsum; + if (cumulativeProb > ran) + break; + } + } + + /* calculate the proposal ratio */ + (*lnProposalRatio) = c->d - minLength + log(sum1); + + /* find the min length and the sum for the backward move */ + minLength = -1.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == NO || p == c) + continue; + if (minLength < 0.0 || p->d < minLength) + minLength = p->d; + } + sum2 = 0.0; tempc = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES && p != c) + { + /* Kahan summation to reduce numerical error */ + tempy = exp (minLength - p->d) - tempc; + tempsum = sum2 + tempy; + tempc = (tempsum - sum2) - tempy; + sum2 = tempsum; + } + } + + /* calculate the proposal ratio */ + (*lnProposalRatio) += minLength - a->d - log(sum2); + + /* reattach */ + d = c->anc; + c->anc = u; + if (u->left == v) + u->right = c; + else + u->left = c; + if (d->left == c) + d->left = u; + else + d->right = u; + u->anc = d; + + /* c cannot be a, as a is skiped in the selection for reattachment point */ + assert (c != a); + /* transfer lock if necessary */ + /* if u is locked, then we have moved upwards and need to leave the u lock behind */ + if (u->isLocked == YES) + { + u->isLocked = NO; + a->isLocked = YES; + a->lockID = u->lockID; + u->lockID = -1; + } + /* if c is on root path and locked, we need to transfer lock to u */ + p = b; + while (p != NULL) + { + if (p == c) + break; + p = p->anc; + } + if (p == c && c->isLocked == YES) + { + u->isLocked = YES; + u->lockID = c->lockID; + c->isLocked = NO; + c->lockID = -1; + } + + /* reassign branch lengths */ + p = c; + while (p->anc->anc != NULL) + { + if (p == a) + break; + p = p->anc; + } + if (p == a) + { + /* c is descendant to a so move a->length and not u->length */ + x = u->length; + u->length = a->length; + a->length = x; + } + p = a; + while (p->anc->anc != NULL) + { + if (p == c) + break; + p = p->anc; + } + if (p == c) + { + /* c is ancestor to a so insert above instead of below */ + x = c->length; + c->length = u->length; + u->length = x; + } + + topologyHasChanged = YES; + + /* hit c length with multiplier (a and u dealt with below) */ + x = c->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / c->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (c->length - x); + c->length = x; + + /* hit a length with multiplier */ + x = a->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / a->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (a->length - x); + a->length = x; + + /* hit u length with multiplier */ + x = u->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) + x = minV * minV / x; + else if (x > maxV) + x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / u->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (u->length - x); + u->length = x; + + /* set tiprobs update flags */ + a->upDateTi = YES; + u->upDateTi = YES; + c->upDateTi = YES; /* could be same as a but that does not matter */ + + /* set flags for update of cond likes from u and down to root */ + p = u; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* set flags for update of cond likes from b and down to root */ + p = b; + while (p->anc != NULL && p->upDateCl == NO) + { + p->upDateCl = YES; + p = p->anc; + } + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + +# if defined (DEBUG_ParsSPR) + // WriteTopologyToFile (stdout, t->root->left, t->isRooted); + // fprintf (stdout, ";\t"); fprintf (stdout, "%lf\n", *lnProposalRatio); + printf ("After:\n"); + ShowNodes (t->root, 2, YES); + getchar(); + printf ("Proposal ratio: %f\n",(*lnProposalRatio)); + printf ("v: %d u: %d a: %d b: %d\n",v->index, u->index, a->index, b->index); + printf ("Has topology changed? %d\n",topologyHasChanged); + getchar(); +# endif + + free (nSitesOfPat); + + return (NO_ERROR); +} + + +int Move_ParsSPR1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change topology (and branch lengths) using SPR (symmetric) biased according to parsimony scores, + controlled by a window defined by a certain node distance radius. Note: w = e^{-S} */ + + int i, j, k, n, division, topologyHasChanged, moveInRoot, nNeighbor, nRoot, nCrown, iA, jC, isVPriorExp; + BitsLong *pA, *pB, *pP, *pC, *pD, y[2]; + MrBFlt x, minV, maxV, brlensExp=0.0, minLength=0.0, length=0.0, *parLength=NULL, prob, ran, tuning, warpFactor, + sum1, sum2, tempsum, tempc, tempy; + CLFlt *nSites, *nSitesOfPat=NULL, *globalNSitesOfPat; + TreeNode *p, *q, *r, *a, *b, *u, *v, *c, *d, *newB, *newA, *newC, **pRoot=NULL, **pCrown=NULL; + Tree *t; + ModelParams *mp; + ModelInfo *m=NULL; + + warpFactor = mvp[0]; /* tuning parameter determining how heavily to weight according to parsimony scores */ +// increaseProb = decreaseProb = mvp[1]; /* reweighting probabilities */ +// v_typical = mvp[2]; /* typical branch length for conversion of parsimony score to log prob ratio */ + tuning = mvp[3]; /* multiplier tuning parameter */ + nNeighbor = (int)mvp[4]; /* distance to move picked branch in root and crown part */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get model params and model info */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1] < BRLENS_MAX ? mp->brlensUni[1] : BRLENS_MAX; + isVPriorExp = NO; + } + else if (param->subParams[0]->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->subParams[0]->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->subParams[0]->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + /* set topologyHasChanged to NO */ + topologyHasChanged = NO; + + /* pick a random branch */ + do { + p = t->allDownPass[(int)(RandomNumber(seed) * (t->nNodes -1))]; + q = p->anc->right; if (q == p) q = p->anc->left; + i = j = 0; + if (p->left == NULL) + j = 2; + if (p->anc->anc == NULL) + i = 2; + if (p->anc->anc != NULL && (p->anc->isLocked == YES || p->anc->anc->anc == NULL)) + i++; + if (p->anc->anc != NULL && (q->isLocked == YES || q->left == NULL)) + i++; + if (p->left != NULL && (p->left->isLocked == YES || p->left->left == NULL)) + j++; + if (p->left != NULL && (p->right->isLocked == YES || p->right->left == NULL)) + j++; + } while (i == 2 && j == 2); + + /* determine moving direction */ + if (j == 2) + moveInRoot = YES; + else if (i == 2) + moveInRoot = NO; + else if (RandomNumber(seed) < 0.5) + moveInRoot = YES; + else + moveInRoot = NO; + + /* set up pointers for nodes around the picked branch */ + /* should never change u, v, a, b, c, d pointers */ + v = p; + u = p->anc; + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + c = v->left; + d = v->right; + + /* reset node variables that will be used */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->x = 0; + p->marked = NO; + } + + /* mark nodes nNeighbor away in root (negative) or crown (positive) respecting constraints */ + nRoot = nCrown = 1; + if (moveInRoot == YES) + { + /* clip root part of tree */ + a->anc = b; + if (b->left == u) + b->left = a; + else + b->right = a; + + /* mark the root part */ + if (u->isLocked == NO ) + { + p = a; q = b; n = 0; + while (q->anc != NULL) + { + q->marked = YES; + q->x = n; // temporary, for MarkDistance below + if (q->left == p) + MarkDistance(q->right, YES, nNeighbor, &nRoot); + else + MarkDistance(q->left, YES, nNeighbor, &nRoot); + q->x = --n; // final + nRoot++; + if (q->isLocked == YES || abs(q->x) >= nNeighbor) + break; + p = q; q = q->anc; + } + } + if (a->isLocked == NO) + { + MarkDistance(a->left, YES, nNeighbor, &nRoot); + MarkDistance(a->right, YES, nNeighbor, &nRoot); + } + + /* get final parsimony states for the root part */ + GetParsDP (t, t->root->left, chain); + GetParsFP (t, t->root->left, chain); + /* get final parsimony states for the crown part */ + GetParsDP (t, v, chain); + GetParsFP (t, v, chain); + } + else /* moveInRoot == NO */ + { + /* clip crown part of tree */ + c->anc = d; + d->anc = c; + + /* mark the crown part */ + if (c->isLocked == NO) + { + MarkDistance(c->left, NO, nNeighbor, &nCrown); + MarkDistance(c->right, NO, nNeighbor, &nCrown); + } + if (d->isLocked == NO) + { + MarkDistance(d->left, NO, nNeighbor, &nCrown); + MarkDistance(d->right, NO, nNeighbor, &nCrown); + } + + /* get final parsimony states for the root part */ + if (u->anc != NULL) { + a->anc = b; /* clip */ + if (b->left == u) b->left = a; + else b->right = a; + GetParsDP (t, t->root->left, chain); + GetParsFP (t, t->root->left, chain); + a->anc = u; /* change back */ + if (b->left == a) b->left = u; + else b->right = u; + } + /* get final parsimony states for the crown part */ + GetParsDP (t, c, chain); + GetParsDP (t, d, chain); + GetParsFP (t, c, chain); + GetParsFP (t, d, chain); + } + + /* find number of site patterns and modify randomly */ + globalNSitesOfPat = numSitesOfPat + (chainId[chain] % chainParams.numChains) * numCompressedChars + m->compCharStart; + nSitesOfPat = (CLFlt *) SafeCalloc (numCompressedChars, sizeof(CLFlt)); + if (!nSitesOfPat) goto errorExit; + for (i=0; i 1.0 - increaseProb) + nSitesOfPat[i]++; + } // this is slow at the moment */ + } + + /* need to alloc a matrix for parsimony lengths, an array of pointers to crown part, + and an array of pointers to root part. */ + parLength = (MrBFlt *) SafeCalloc ((size_t)nRoot * (size_t)nCrown, sizeof(MrBFlt)); + pRoot = (TreeNode **) SafeCalloc(nRoot, sizeof(TreeNode *)); + pCrown = (TreeNode **) SafeCalloc(nCrown, sizeof(TreeNode *)); + if (!parLength || !pRoot || !pCrown) goto errorExit; + + /* starting position */ + pRoot[0] = a; pCrown[0] = c; + for (i=j=1, n=t->nNodes-2; n>=0; n--) + { /* and the rest */ + p = t->allDownPass[n]; + if (p->marked == YES && p->x < 0) + pRoot[i++] = p; + if (p->marked == YES && p->x > 0) + pCrown[j++] = p; + } + assert (i==nRoot && j==nCrown); + + /* cycle through the possibilities and record the parsimony length */ + for (j=0; jnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + /* find nSitesOfPat */ + nSites = nSitesOfPat + m->compCharStart; + + /* find parsimony length for each candidate position */ + length = 0.0; + if (moveInRoot == YES) + { + pA = m->parsSets[pRoot[i]->index]; + pB = m->parsSets[pRoot[i]->anc->index]; + pP = m->parsSets[v->index]; + + if (m->nParsIntsPerSite == 1) + { + for (k=0; knumChars; k++) + { + y[0] = (pA[k] | pB[k]) & pP[k]; + if (y[0] == 0) + length += nSites[k]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (k=0; k<2*m->numChars; k+=2) + { + y[0] = (pA[k] | pB[k]) & pP[k]; + y[1] = (pA[k+1] | pB[k+1]) & pP[k+1]; + if ((y[0] | y[1]) == 0) + length += nSites[k/2]; + } + } + } + else if (u->anc == NULL) + { + pP = m->parsSets[u->index]; + pC = m->parsSets[pCrown[j]->index]; + pD = m->parsSets[pCrown[j]->anc->index]; + + if (m->nParsIntsPerSite == 1) + { + for (k=0; knumChars; k++) + { + y[0] = pP[k] & (pC[k] | pD[k]); + if (y[0] == 0) + length += nSites[k]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (k=0; k<2*m->numChars; k+=2) + { + y[0] = pP[k] & (pC[k] | pD[k]); + y[1] = pP[k+1] & (pC[k+1] | pD[k+1]); + if ((y[0] | y[1]) == 0) + length += nSites[k/2]; + } + } + } + else + { + pA = m->parsSets[a->index]; + pB = m->parsSets[b->index]; + pC = m->parsSets[pCrown[j]->index]; + pD = m->parsSets[pCrown[j]->anc->index]; + + if (m->nParsIntsPerSite == 1) + { + for (k=0; knumChars; k++) + { + y[0] = (pA[k] | pB[k]) & (pC[k] | pD[k]); + if (y[0] == 0) + length += nSites[k]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (k=0; k<2*m->numChars; k+=2) + { + y[0] = (pA[k] | pB[k]) & (pC[k] | pD[k]); + y[1] = (pA[k+1] | pB[k+1]) & (pC[k+1] | pD[k+1]); + if ((y[0] | y[1]) == 0) + length += nSites[k/2]; + } + } + } + + /* get division warp factor */ + parLength[i+j*nRoot] += warpFactor * length; + } + } + } + + /* find the min length and the sum for the forward move */ + minLength = -1.0; + for (j=0; j parLength[i+j*nRoot] || minLength < 0.0) + minLength = parLength[i+j*nRoot]; + } + sum1 = 0.0; tempc = 0.0; + for (j=0; j ran) { + /* proposed new attaching position */ + newA = pRoot[i]; + newC = pCrown[j]; + goto outLoop; + } + } +outLoop:; + iA = i; jC = j; + + /* calculate the proposal ratio */ + (*lnProposalRatio) = parLength[i+j*nRoot] - minLength + log(sum1); + + /* find the min length and the sum for the backward move */ + minLength = -1.0; + for (j=0; j parLength[i+j*nRoot] || minLength < 0.0) + minLength = parLength[i+j*nRoot]; + } + sum2 = 0.0; tempc = 0.0; + for (j=0; janc; + newA->anc = u; + if (u->left == v) + u->right = newA; + else + u->left = newA; + u->anc = newB; + if (newB->left == newA) + newB->left = u; + else + newB->right = u; + + /* if u is locked, then we have moved upwards and need to leave the u lock behind */ + if (u->isLocked == YES) + { + u->isLocked = NO; + a->isLocked = YES; + a->lockID = u->lockID; + u->lockID = -1; + } + + p = newA; + while (p->anc != NULL) + { + if (p == a) break; + p = p->anc; + } + if (p == a) + { + /* newA is descendant to a so move a->length not u->length */ + x = u->length; + u->length = a->length; + a->length = x; + } + + p = b; + while (p->anc != NULL) + { + if (p == newA) break; + p = p->anc; + } + if (p == newA) + { + /* newA is ancestor to a so insert above instead of below */ + x = newA->length; + newA->length = u->length; + u->length = x; + /* newA is on root path and locked, we need to transfer lock to u */ + if (newA->isLocked == YES) { + u->isLocked = YES; + u->lockID = newA->lockID; + newA->isLocked = NO; + newA->lockID = -1; + } + } + + /* hit a length with multiplier */ + x = a->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / a->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (a->length - x); + a->length = x; + + /* hit u length with multiplier */ + x = u->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / u->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (u->length - x); + u->length = x; + + /* hit newA length with multiplier */ + x = newA->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / newA->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (newA->length - x); + newA->length = x; + + /* set tiprobs update flags */ + newA->upDateTi = YES; + a->upDateTi = YES; + u->upDateTi = YES; + + /* set flags for update of cond likes */ + p = u; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = b; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + } + + if (moveInRoot == NO) /* crown part has changed */ + { + r = newC; + q = newB = newC->anc; + /* rotate nodes from newC to c or d (whichever is closest) */ + tempc = r->length; + while (r != c && r != d) + { + p = q->anc; + /* rotate pointers of q */ + if (q->left == r) + q->left = p; + else + q->right = p; + q->anc = r; + /* swap q and old */ + tempy = q->length; + q->length = tempc; + q->upDateTi = YES; + tempc = tempy; + /* make sure we get q and r initialized for next round */ + r = q; + q = p; + } + newB->length = tempc; + + /* hit q length with multiplier while we are at it */ + x = q->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / q->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (q->length - x); + q->length = x; + q->upDateTi = YES; + + /* hit newB length with multiplier */ + x = newB->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / newB->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (newB->length - x); + newB->length = x; + newB->upDateTi = YES; + + /* hit newC length with multiplier */ + x = newC->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / newC->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (newC->length - x); + newC->length = x; + newC->upDateTi = YES; + + /* reattach the crown part */ + v->left = newC; + v->right = newB; + newC->anc = newB->anc = v; + + /* set flags for update of cond likes */ + p = newC; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = r; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + } + + topologyHasChanged = YES; + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + + /* free up local memory */ + free (parLength); free (pRoot); free (pCrown); free (nSitesOfPat); + + return (NO_ERROR); + +errorExit: + MrBayesPrint ("%s Problem allocating memory in Move_ParsSPR\n", spacer); + free (parLength); free (pRoot); free (pCrown); free (nSitesOfPat); + + return (ERROR); +} + + +int Move_ParsSPR2 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change topology (and branch lengths) using SPR (symmetric) biased according to parsimony scores, + controlled by a window defined by a certain node distance radius. Note: S/N */ + + int i, j, k, n, division, topologyHasChanged, moveInRoot, nNeighbor, nRoot, nCrown, iA, jC, isVPriorExp; + BitsLong *pA, *pB, *pP, *pC, *pD, y[2]; + MrBFlt x, minV, maxV, brlensExp=0.0, minLength=0.0, length=0.0, *parLength=NULL, prob, ran, tuning, warpFactor, + v_typical, divFactor, nStates, sum1, sum2, tempsum, tempc, tempy; + CLFlt *nSites, *nSitesOfPat=NULL, *globalNSitesOfPat; + TreeNode *p, *q, *r, *a, *b, *u, *v, *c, *d, *newB, *newA, *newC, **pRoot=NULL, **pCrown=NULL; + Tree *t; + ModelParams *mp; + ModelInfo *m=NULL; + + warpFactor = mvp[0]; /* tuning parameter determining how heavily to weight according to parsimony scores */ +// increaseProb = decreaseProb = mvp[1]; /* reweighting probabilities */ + v_typical = mvp[2]; /* typical branch length for conversion of parsimony score to log prob ratio */ + tuning = mvp[3]; /* multiplier tuning parameter */ + nNeighbor = (int)mvp[4]; /* distance to move picked branch in root and crown part */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get model params and model info */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1] < BRLENS_MAX ? mp->brlensUni[1] : BRLENS_MAX; + isVPriorExp = NO; + } + else if (param->subParams[0]->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->subParams[0]->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->subParams[0]->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + /* set topologyHasChanged to NO */ + topologyHasChanged = NO; + + /* pick a random branch */ + do { + p = t->allDownPass[(int)(RandomNumber(seed) * (t->nNodes -1))]; + q = p->anc->right; if (q == p) q = p->anc->left; + i = j = 0; + if (p->left == NULL) + j = 2; + if (p->anc->anc == NULL) + i = 2; + if (p->anc->anc != NULL && (p->anc->isLocked == YES || p->anc->anc->anc == NULL)) + i++; + if (p->anc->anc != NULL && (q->isLocked == YES || q->left == NULL)) + i++; + if (p->left != NULL && (p->left->isLocked == YES || p->left->left == NULL)) + j++; + if (p->left != NULL && (p->right->isLocked == YES || p->right->left == NULL)) + j++; + } while (i == 2 && j == 2); + + /* pick an internal branch + do { + p = t->intDownPass[(int)(RandomNumber(seed)*(t->nIntNodes-1))]; + q = p->anc->left; if (q == p) q = p->anc->right; + i = j = 0; + if (q->isLocked == YES || q->left == NULL) + i++; + if (p->anc->isLocked == YES || p->anc->anc->anc == NULL) + i++; + if (p->left->isLocked == YES || p->left->left == NULL) + j++; + if (p->right->isLocked == YES || p->right->left == NULL) + j++; + } while (i == 2 && j == 2); + */ + + /* determine moving direction */ + if (j == 2) + moveInRoot = YES; + else if (i == 2) + moveInRoot = NO; + else if (RandomNumber(seed) < 0.5) + moveInRoot = YES; + else + moveInRoot = NO; + + /* set up pointers for nodes around the picked branch */ + /* should never change u, v, a, b, c, d pointers */ + v = p; + u = p->anc; + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + c = v->left; + d = v->right; + + /* reset node variables that will be used */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->x = 0; + p->marked = NO; + } + + /* mark nodes nNeighbor away in root (negative) or crown (positive) respecting constraints */ + nRoot = nCrown = 1; + if (moveInRoot == YES) + { + /* clip root part of tree */ + a->anc = b; + if (b->left == u) + b->left = a; + else + b->right = a; + + /* mark the root part */ + if (u->isLocked == NO ) + { + p = a; q = b; n = 0; + while (q->anc != NULL) + { + q->marked = YES; + q->x = n; // temporary, for MarkDistance below + if (q->left == p) + MarkDistance(q->right, YES, nNeighbor, &nRoot); + else + MarkDistance(q->left, YES, nNeighbor, &nRoot); + q->x = --n; // final + nRoot++; + if (q->isLocked == YES || abs(q->x) >= nNeighbor) + break; + p = q; q = q->anc; + } + } + if (a->isLocked == NO) + { + MarkDistance(a->left, YES, nNeighbor, &nRoot); + MarkDistance(a->right, YES, nNeighbor, &nRoot); + } + + /* get final parsimony states for the root part */ + GetParsDP (t, t->root->left, chain); + GetParsFP (t, t->root->left, chain); + /* get final parsimony states for the crown part */ + GetParsDP (t, v, chain); + GetParsFP (t, v, chain); + } + else /* moveInRoot == NO */ + { + /* clip crown part of tree */ + c->anc = d; + d->anc = c; + + /* mark the crown part */ + if (c->isLocked == NO) + { + MarkDistance(c->left, NO, nNeighbor, &nCrown); + MarkDistance(c->right, NO, nNeighbor, &nCrown); + } + if (d->isLocked == NO) + { + MarkDistance(d->left, NO, nNeighbor, &nCrown); + MarkDistance(d->right, NO, nNeighbor, &nCrown); + } + + /* get final parsimony states for the root part */ + if (u->anc != NULL) { + a->anc = b; /* clip */ + if (b->left == u) b->left = a; + else b->right = a; + GetParsDP (t, t->root->left, chain); + GetParsFP (t, t->root->left, chain); + a->anc = u; /* change back */ + if (b->left == a) b->left = u; + else b->right = u; + } + /* get final parsimony states for the crown part */ + GetParsDP (t, c, chain); + GetParsDP (t, d, chain); + GetParsFP (t, c, chain); + GetParsFP (t, d, chain); + } + + /* find number of site patterns and modify randomly */ + globalNSitesOfPat = numSitesOfPat + (chainId[chain] % chainParams.numChains) * numCompressedChars + m->compCharStart; + nSitesOfPat = (CLFlt *) SafeCalloc (numCompressedChars, sizeof(CLFlt)); + if (!nSitesOfPat) goto errorExit; + for (i=0; i 1.0 - increaseProb) + nSitesOfPat[i]++; + } // this is slow at the moment */ + } + + /* need to alloc a matrix for parsimony lengths, an array of pointers to crown part, + and an array of pointers to root part. */ + parLength = (MrBFlt *) SafeCalloc ((size_t)nRoot * (size_t)nCrown, sizeof(MrBFlt)); + pRoot = (TreeNode **) SafeCalloc(nRoot, sizeof(TreeNode *)); + pCrown = (TreeNode **) SafeCalloc(nCrown, sizeof(TreeNode *)); + if (!parLength || !pRoot || !pCrown) goto errorExit; + + /* starting position */ + pRoot[0] = a; pCrown[0] = c; + for (i=j=1, n=t->nNodes-2; n>=0; n--) + { /* and the rest */ + p = t->allDownPass[n]; + if (p->marked == YES && p->x < 0) + pRoot[i++] = p; + if (p->marked == YES && p->x > 0) + pCrown[j++] = p; + } + assert (i==nRoot && j==nCrown); + + /* cycle through the possibilities and record the parsimony length */ + for (j=0; jnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + /* find nSitesOfPat */ + nSites = nSitesOfPat + m->compCharStart; + + /* find parsimony length for each candidate position */ + length = 0.0; + if (moveInRoot == YES) + { + pA = m->parsSets[pRoot[i]->index]; + pB = m->parsSets[pRoot[i]->anc->index]; + pP = m->parsSets[v->index]; + + if (m->nParsIntsPerSite == 1) + { + for (k=0; knumChars; k++) + { + y[0] = (pA[k] | pB[k]) & pP[k]; + if (y[0] == 0) + length += nSites[k]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (k=0; k<2*m->numChars; k+=2) + { + y[0] = (pA[k] | pB[k]) & pP[k]; + y[1] = (pA[k+1] | pB[k+1]) & pP[k+1]; + if ((y[0] | y[1]) == 0) + length += nSites[k/2]; + } + } + } + else if (u->anc == NULL) + { + pP = m->parsSets[u->index]; + pC = m->parsSets[pCrown[j]->index]; + pD = m->parsSets[pCrown[j]->anc->index]; + + if (m->nParsIntsPerSite == 1) + { + for (k=0; knumChars; k++) + { + y[0] = pP[k] & (pC[k] | pD[k]); + if (y[0] == 0) + length += nSites[k]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (k=0; k<2*m->numChars; k+=2) + { + y[0] = pP[k] & (pC[k] | pD[k]); + y[1] = pP[k+1] & (pC[k+1] | pD[k+1]); + if ((y[0] | y[1]) == 0) + length += nSites[k/2]; + } + } + } + else + { + pA = m->parsSets[a->index]; + pB = m->parsSets[b->index]; + pC = m->parsSets[pCrown[j]->index]; + pD = m->parsSets[pCrown[j]->anc->index]; + + if (m->nParsIntsPerSite == 1) + { + for (k=0; knumChars; k++) + { + y[0] = (pA[k] | pB[k]) & (pC[k] | pD[k]); + if (y[0] == 0) + length += nSites[k]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (k=0; k<2*m->numChars; k+=2) + { + y[0] = (pA[k] | pB[k]) & (pC[k] | pD[k]); + y[1] = (pA[k+1] | pB[k+1]) & (pC[k+1] | pD[k+1]); + if ((y[0] | y[1]) == 0) + length += nSites[k/2]; + } + } + } + + /* find nStates and ratemult */ + nStates = m->numModelStates; + if (m->dataType == STANDARD) + nStates = 2; + v_typical = length/m->numUncompressedChars + 0.0001; + + /* get division warp factor (prop. to prob. of change) */ + divFactor = - warpFactor * log(1.0/nStates - exp(-nStates/(nStates-1)*v_typical)/nStates); + parLength[i+j*nRoot] += divFactor * length; + } + } + } + + /* find the min length and the sum for the forward move */ + minLength = -1.0; + for (j=0; j parLength[i+j*nRoot] || minLength < 0.0) + minLength = parLength[i+j*nRoot]; + } + sum1 = 0.0; tempc = 0.0; + for (j=0; j ran) { + /* proposed new attaching position */ + newA = pRoot[i]; + newC = pCrown[j]; + goto outLoop; + } + } +outLoop:; + iA = i; jC = j; + + /* calculate the proposal ratio */ + (*lnProposalRatio) = parLength[i+j*nRoot] - minLength + log(sum1); + + /* find the min length and the sum for the backward move */ + minLength = -1.0; + for (j=0; j parLength[i+j*nRoot] || minLength < 0.0) + minLength = parLength[i+j*nRoot]; + } + sum2 = 0.0; tempc = 0.0; + for (j=0; janc; + newA->anc = u; + if (u->left == v) + u->right = newA; + else + u->left = newA; + u->anc = newB; + if (newB->left == newA) + newB->left = u; + else + newB->right = u; + + /* if u is locked, then we have moved upwards and need to leave the u lock behind */ + if (u->isLocked == YES) + { + u->isLocked = NO; + a->isLocked = YES; + a->lockID = u->lockID; + u->lockID = -1; + } + + p = newA; + while (p->anc != NULL) + { + if (p == a) break; + p = p->anc; + } + if (p == a) + { + /* newA is descendant to a so move a->length not u->length */ + x = u->length; + u->length = a->length; + a->length = x; + } + + p = b; + while (p->anc != NULL) + { + if (p == newA) break; + p = p->anc; + } + if (p == newA) + { + /* newA is ancestor to a so insert above instead of below */ + x = newA->length; + newA->length = u->length; + u->length = x; + /* newA is on root path and locked, we need to transfer lock to u */ + if (newA->isLocked == YES) { + u->isLocked = YES; + u->lockID = newA->lockID; + newA->isLocked = NO; + newA->lockID = -1; + } + } + + /* hit a length with multiplier */ + x = a->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / a->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (a->length - x); + a->length = x; + + /* hit u length with multiplier */ + x = u->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / u->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (u->length - x); + u->length = x; + + /* hit newA length with multiplier */ + x = newA->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / newA->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (newA->length - x); + newA->length = x; + + /* set tiprobs update flags */ + newA->upDateTi = YES; + a->upDateTi = YES; + u->upDateTi = YES; + + /* set flags for update of cond likes */ + p = u; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = b; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + } + + if (moveInRoot == NO) /* crown part has changed */ + { + r = newC; + q = newB = newC->anc; + /* rotate nodes from newC to c or d (whichever is closest) */ + tempc = r->length; + while (r != c && r != d) + { + p = q->anc; + /* rotate pointers of q */ + if (q->left == r) + q->left = p; + else + q->right = p; + q->anc = r; + /* swap q and old */ + tempy = q->length; + q->length = tempc; + q->upDateTi = YES; + tempc = tempy; + /* make sure we get q and r initialized for next round */ + r = q; + q = p; + } + newB->length = tempc; + + /* hit q length with multiplier while we are at it */ + x = q->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / q->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (q->length - x); + q->length = x; + q->upDateTi = YES; + + /* hit newB length with multiplier */ + x = newB->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / newB->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (newB->length - x); + newB->length = x; + newB->upDateTi = YES; + + /* hit newC length with multiplier */ + x = newC->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / newC->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (newC->length - x); + newC->length = x; + newC->upDateTi = YES; + + /* reattach the crown part */ + v->left = newC; + v->right = newB; + newC->anc = newB->anc = v; + + /* set flags for update of cond likes */ + p = newC; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = r; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + } + + topologyHasChanged = YES; + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + + /* free up local memory */ + free (parLength); free (pRoot); free (pCrown); free (nSitesOfPat); + + return (NO_ERROR); + +errorExit: + MrBayesPrint ("%s Problem allocating memory in Move_ParsSPR\n", spacer); + free (parLength); free (pRoot); free (pCrown); free (nSitesOfPat); + + return (ERROR); +} + + +int Move_ParsSPRClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change branch lengths and topology (potentially) using SPR-type move, parsimony-biased */ + + /* This move picks a branch and then chooses a reattachment point based on + the parsimony score. On the ending branch, the attachment point is reinserted + randomly along the branch (below the minimum age of the node). Since 2010-11-02 + the move is Metropolized to improve efficiency. */ + + int i, j, n, division, n1=0, n2=0, n3=0, n4=0, n5=0, *nEvents; + BitsLong *pA, *pV, *pP, y[2]; + MrBFlt x, oldBrlen=0.0, newBrlen=0.0, v1=0.0, v2=0.0, v3=0.0, v4=0.0, v5=0.0, + v3new=0.0, lambda, **position=NULL, **rateMultiplier=NULL, *brlens, + igrvar, *igrRate=NULL, nu, *tk02Rate=NULL, minLength=0.0, length=0.0, + cumulativeProb, warpFactor, sum1, sum2, ran, increaseProb, decreaseProb, + divFactor, nStates, rateMult, v_typical, minV; + CLFlt *nSitesOfPat, *nSites, *globalNSitesOfPat; + TreeNode *p, *a, *b, *u, *v, *c=NULL, *d; + Tree *t; + ModelInfo *m=NULL; + Param *subParm; + + warpFactor = mvp[0]; /* tuning parameter determining how heavily to weight according to parsimony scores */ + increaseProb = decreaseProb = mvp[1]; /* reweighting probabilities */ + v_typical = mvp[2]; /* typical branch length for converting parsimony scores to log prob ratios */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get model params and model info */ + m = &modelSettings[param->relParts[0]]; + + /* get min and max brlen in relative time and subst units */ + minV = BRLENS_MIN; + +# if defined (DEBUG_ParsSPRClock) + printf ("Before:\n"); + ShowNodes (t->root, 2, YES); + getchar(); +# endif + + /* pick a branch */ + do { + p = t->allDownPass[(int)(RandomNumber(seed) * (t->nNodes - 2))]; + a = p->anc->left; + b = p->anc->right; + } + while (p->anc->isLocked == YES || p->anc->anc->anc == NULL + || (p == b && a->length < TIME_MIN) || (p == a && b->length < TIME_MIN)); + /* skip constraints, siblings of root (and root); and consider ancestral fossils in fbd tree */ + + /* set up pointers for nodes around the picked branch */ + v = p; + u = p->anc; + if (u->left == v) + a = u->right; + else + a = u->left; + b = u->anc; + + /* record branch length for insertion in back move */ + if (v->length > 0.0) /* side branch, not anc fossil */ + { + if (v->nodeDepth > a->nodeDepth) + oldBrlen = b->nodeDepth - v->nodeDepth - 2.0*minV; + else + oldBrlen = b->nodeDepth - a->nodeDepth - 2.0*minV; + } + v1 = a->length; + v2 = u->length; + v3 = v->length; + + /* reassign events for CPP and adjust prior and proposal ratios for relaxed clock models */ + for (i=0; isubParams[0]->nSubParams; i++) + { + subParm = param->subParams[0]->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + nEvents = subParm->nEvents[2*chain+state[chain]]; + position = subParm->position[2*chain+state[chain]]; + rateMultiplier = subParm->rateMult[2*chain+state[chain]]; + n1 = nEvents[a->index]; + n2 = nEvents[u->index]; + n3 = nEvents[v->index]; + if (n2 > 0) + { + position[a->index] = (MrBFlt *) SafeRealloc ((void *) position[a->index], (n1+n2) * sizeof (MrBFlt)); + rateMultiplier[a->index] = (MrBFlt *) SafeRealloc ((void *) rateMultiplier[a->index], (n1+n2) * sizeof (MrBFlt)); + } + for (j=0; jindex][j] *= v1 / (v1+v2); + for (j=n1; jindex][j] = (position[u->index][j-n1] * v2 + v1) / (v1+v2); + rateMultiplier[a->index][j] = rateMultiplier[u->index][j-n1]; + } + nEvents[a->index] = n1+n2; + nEvents[u->index] = 0; + if (n2 > 0) + { + free (position[u->index]); + free (rateMultiplier[u->index]); + position[u->index] = rateMultiplier[u->index] = NULL; + } + /* adjust effective branch lengths */ + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[a->index] += brlens[u->index]; /* only change in effective branch lengths so far */ + } /* end CPP events parm */ + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + /* adjust prior ratio */ + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + if (v->length > 0.0) + (*lnPriorRatio) -= LnProbTK02LogNormal(tk02Rate[v->anc->index], nu*v->length, tk02Rate[v->index]); + (*lnPriorRatio) -= LnProbTK02LogNormal(tk02Rate[a->anc->index], nu*a->length, tk02Rate[a->index]); + (*lnPriorRatio) -= LnProbTK02LogNormal(tk02Rate[u->anc->index], nu*u->length, tk02Rate[u->index]); + (*lnPriorRatio) += LnProbTK02LogNormal(tk02Rate[u->anc->index], nu*(a->length+u->length), tk02Rate[a->index]); + + /* adjust effective branch lengths */ + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[a->index] = (tk02Rate[a->index] + tk02Rate[b->index]) / 2.0 * (a->length + u->length); + } /* end tk02 branch rate parameter */ + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + + /* adjust prior ratio for old branches */ + if (v->length > 0.0) + (*lnPriorRatio) -= LnProbGamma(v->length/igrvar, v->length/igrvar, igrRate[v->index]); + (*lnPriorRatio) -= LnProbGamma(a->length/igrvar, a->length/igrvar, igrRate[a->index]); + (*lnPriorRatio) -= LnProbGamma(u->length/igrvar, u->length/igrvar, igrRate[u->index]); + (*lnPriorRatio) += LnProbGamma((a->length+u->length)/igrvar, (a->length+u->length)/igrvar, igrRate[a->index]); + + /* adjust effective branch lengths */ + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[a->index] = igrRate[a->index] * (a->length + u->length); + } + } /* next subparameter */ + + /* cut tree */ + a->anc = b; + if (b->left == u) + b->left = a; + else + b->right = a; + a->length += u->length; + a->upDateTi = YES; + + /* get final parsimony states for the root part */ + GetParsDP (t, t->root->left, chain); + GetParsFP (t, t->root->left->left, chain); + GetParsFP (t, t->root->left->right, chain); + + /* get downpass parsimony states for the crown part */ + GetParsDP (t, v, chain); + + /* reset node variables that will be used */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->marked = NO; + p->d = 0.0; + } + + /* mark nodes in the root part of the tree, first mark a */ + a->marked = YES; + /* then move down towards root taking constraints into account */ + p = b; + while (p->isLocked == NO && p->anc->anc != NULL) + { + p->marked = YES; + p = p->anc; + } + /* make sure sisters of last node are marked otherwise it will not be marked in the uppass */ + p->left->marked = YES; + p->right->marked = YES; + /* finally move up, skip constraints and ancestral fossil */ + for (i=t->nNodes-2; i>=0; i--) + { + p = t->allDownPass[i]; + if (p != u && p->marked == NO && p->anc->marked == YES && p->anc->isLocked == NO + && p->anc->nodeDepth > v->nodeDepth + minV && p->length > 0.0) + p->marked = YES; + } + + /* unmark nodes if the picked branch is 0 (ancestral fossil) */ + if (v->length < TIME_MIN) + { + n = 0; + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + if (p->nodeDepth > v->nodeDepth - minV || p->anc->nodeDepth < v->nodeDepth + minV) + p->marked = NO; + if (p->marked == YES) + n++; + } + if (n < 2) /* no new position to move */ + { + abortMove = YES; + return (NO_ERROR); + } + } + + /* find number of site patterns and modify randomly */ + globalNSitesOfPat = numSitesOfPat + (chainId[chain] % chainParams.numChains) * numCompressedChars + m->compCharStart; + nSitesOfPat = (CLFlt *) SafeCalloc (numCompressedChars, sizeof(CLFlt)); + if (!nSitesOfPat) + { + MrBayesPrint ("%s Problem allocating nSitesOfPat in Move_ParsSPRClock\n", spacer); + return (ERROR); + } + for (i=0; i 1.0 - increaseProb) + nSitesOfPat[i]++; + } + } + + /* cycle through the possibilities and record the parsimony length */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == NO) + continue; + /* find the parsimony length */ + p->d = 0.0; + for (n=0; nnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + /* find nStates and ratemult */ + nStates = m->numModelStates; + if (m->dataType == STANDARD) + nStates = 2; + rateMult = GetRate(division, chain); + + /* find nSitesOfPat */ + nSites = nSitesOfPat + m->compCharStart; + + /* get division warp factor */ + divFactor = - warpFactor * log((1.0/nStates) - exp(-nStates/(nStates-1)*v_typical*rateMult)/nStates); + + /* find downpass parsimony sets for the node and its environment */ + pP = m->parsSets[p->index ]; + pA = m->parsSets[p->anc->index]; + pV = m->parsSets[v->index ]; + + length = 0.0; + if (m->nParsIntsPerSite == 1) + { + for (j=0; jnumChars; j++) + { + y[0] = (pP[j] | pA[j]) & pV[j]; + if (y[0] == 0) + length += nSites[j]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (j=0; j<2*m->numChars; j+=2) + { + y[0] = (pP[j] | pA[j]) & pV[j]; + y[1] = (pP[j+1] | pA[j+1]) & pV[j+1]; + if ((y[0] | y[1]) == 0) + length += nSites[j/2]; + } + } + p->d += divFactor * length; + } + } + + /* find the min length and the sum for the forward move */ + minLength = -1.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == NO || p == a) + continue; + if (minLength < 0.0 || p->d < minLength) + minLength = p->d; + } + sum1 = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES && p != a) + sum1 += exp (minLength - p->d); + } + + /* generate a random uniform */ + ran = RandomNumber(seed) * sum1; + + /* select the appropriate reattachment point (not a!) */ + cumulativeProb = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES && p != a) + { + c = p; + cumulativeProb += exp (minLength - p->d); + if (cumulativeProb > ran) + break; + } + } + + /* calculate the proposal ratio */ + (*lnProposalRatio) = c->d - minLength + log(sum1); + + /* find the min length and the sum for the backward move */ + minLength = -1.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == NO || p == c) + continue; + if (minLength < 0.0 || p->d < minLength) + minLength = p->d; + } + sum2 = 0.0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == YES && p != c) + sum2 += exp (minLength - p->d); + } + + /* calculate the proposal ratio */ + (*lnProposalRatio) += minLength - a->d - log(sum2); + + /* reattach u */ + d = c->anc; + c->anc = u; + if (u->left == v) + u->right = c; + else + u->left = c; + u->anc = d; + if (d->left == c) + d->left = u; + else + d->right = u; + + if (v->length > 0.0) /* side branch, not anc fossil */ + { + if (c->nodeDepth > v->nodeDepth) + newBrlen = d->nodeDepth - c->nodeDepth - 2.0*minV; + else + newBrlen = d->nodeDepth - v->nodeDepth - 2.0*minV; + if (newBrlen <= 0.0) + { + abortMove = YES; + free (nSitesOfPat); + return (NO_ERROR); + } + + /* adjust lengths */ + u->nodeDepth = d->nodeDepth - minV - RandomNumber(seed) * newBrlen; + v->length = u->nodeDepth - v->nodeDepth; + + /* calculate proposal ratio for tree change */ + (*lnProposalRatio) += log (newBrlen / oldBrlen); + } + u->length = d->nodeDepth - u->nodeDepth; + c->length = u->nodeDepth - c->nodeDepth; + + v3new = v->length; + v4 = c->length; + v5 = u->length; + + /* reassign events for CPP and adjust prior and proposal ratios for relaxed clock models */ + for (i=0; isubParams[0]->nSubParams; i++) + { + subParm = param->subParams[0]->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + nEvents = subParm->nEvents[2*chain+state[chain]]; + position = subParm->position[2*chain+state[chain]]; + rateMultiplier = subParm->rateMult[2*chain+state[chain]]; + for (j=0; jindex]; j++) + { + if (position[c->index][j] > v4 / (v4+v5)) + break; + } + n4 = j; + n5 = nEvents[c->index] - j; + nEvents[u->index] = n5; + if (n5 > 0) + { + position[u->index] = (MrBFlt *) SafeRealloc ((void *) position[u->index], n5 * sizeof (MrBFlt)); + rateMultiplier[u->index] = (MrBFlt *) SafeRealloc ((void *) rateMultiplier[u->index], n5 * sizeof (MrBFlt)); + for (j=n4; jindex]; j++) + { + position[u->index][j-n4] = (position[c->index][j] * (v4+v5) - v4) / v5; + rateMultiplier[u->index][j-n4] = rateMultiplier[c->index][j]; + } + if (n4 > 0) + { + position[c->index] = (MrBFlt *) SafeRealloc ((void *) position[c->index], n4 * sizeof (MrBFlt)); + rateMultiplier[c->index] = (MrBFlt *) SafeRealloc ((void *) rateMultiplier[c->index], n4 * sizeof (MrBFlt)); + for (j=0; jindex][j] *= ((v4+v5) / v4); + } + else + { + free (position[c->index]); + free (rateMultiplier[c->index]); + position[c->index] = rateMultiplier[c->index] = NULL; + } + nEvents[c->index] = n4; + } + else + { + for (j=0; jindex]; j++) + position[c->index][j] *= ((v4+v5) / v4); + } + + /* adjust proposal ratio */ + (*lnProposalRatio) += n3 * log (v3new / v3); + + /* adjust prior ratio */ + lambda = *GetParamVals (modelSettings[subParm->relParts[0]].cppRate, chain, state[chain]); + (*lnPriorRatio) += lambda * (v3 - v3new); + + /* update effective branch lengths */ + if (UpdateCppEvolLengths (subParm, a, chain) == ERROR) + { + abortMove = YES; + free (nSitesOfPat); + return (NO_ERROR); + } + + if (UpdateCppEvolLengths (subParm, u, chain) == ERROR) + { + abortMove = YES; + free (nSitesOfPat); + return (NO_ERROR); + } + } /* end cpp events parameter */ + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + /* adjust prior ratio */ + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + (*lnPriorRatio) -= LnProbTK02LogNormal(tk02Rate[u->anc->index], nu*(c->length+u->length), tk02Rate[c->index]); + (*lnPriorRatio) += LnProbTK02LogNormal(tk02Rate[c->anc->index], nu*c->length, tk02Rate[c->index]); + (*lnPriorRatio) += LnProbTK02LogNormal(tk02Rate[u->anc->index], nu*u->length, tk02Rate[u->index]); + if (v->length > 0.0) + (*lnPriorRatio) += LnProbTK02LogNormal(tk02Rate[v->anc->index], nu*v->length, tk02Rate[v->index]); + + /* adjust effective branch lengths */ + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[c->index] = c->length * (tk02Rate[c->index] + tk02Rate[c->anc->index]) / 2.0; + brlens[v->index] = v->length * (tk02Rate[v->index] + tk02Rate[v->anc->index]) / 2.0; + brlens[u->index] = u->length * (tk02Rate[u->index] + tk02Rate[u->anc->index]) / 2.0; + } /* end tk02 branch rate parameter */ + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + /* adjust prior ratio */ + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + (*lnPriorRatio) -= LnProbGamma ((c->length+u->length)/igrvar, (c->length+u->length)/igrvar, igrRate[c->index]); + (*lnPriorRatio) += LnProbGamma (c->length/igrvar, c->length/igrvar, igrRate[c->index]); + (*lnPriorRatio) += LnProbGamma (u->length/igrvar, u->length/igrvar, igrRate[u->index]); + if (v->length > 0.0) + (*lnPriorRatio) += LnProbGamma (v->length/igrvar, v->length/igrvar, igrRate[v->index]); + + /* adjust effective branch lengths */ + brlens = GetParamSubVals (subParm, chain, state[chain]); + brlens[v->index] = igrRate[v->index] * v->length; + brlens[u->index] = igrRate[u->index] * u->length; + brlens[c->index] = igrRate[c->index] * c->length; + } /* end igr branch rate parameter */ + } /* next subparameter */ + + /* set tiprobs update flags */ + c->upDateTi = YES; + u->upDateTi = YES; + v->upDateTi = YES; + + /* set flags for update of cond likes down to root */ + p = u; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = b; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* get down pass sequence */ + GetDownPass (t); + + /* adjust prior ratio for clock tree */ + if (LogClockTreePriorRatio (param, chain, &x) == ERROR) + { + free (nSitesOfPat); + return (ERROR); + } + (*lnPriorRatio) += x; + +# if defined (DEBUG_ParsSPRClock) + ShowNodes (t->root, 2, YES); + printf ("After\nProposal ratio: %f\n",(*lnProposalRatio)); + printf ("v: %d u: %d a: %d b: %d c: %d\n",v->index, u->index, a->index, b->index, c->index); + getchar(); +# endif + + free (nSitesOfPat); + return (NO_ERROR); +} + + +int Move_ParsTBR1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change topology and map branch lengths using TBR-type move biased according to parsimony scores, + controlled by a window defined by a certain node distance radius. */ + + int i, j, k, n, division, topologyHasChanged, nNeighbor, nRoot, nCrown, iA, jC, isVPriorExp; + BitsLong *pA, *pB, *pC, *pD, y[2]; + MrBFlt x, minV, maxV, brlensExp=0.0, minLength=0.0, length=0.0, *parLength=NULL, prob, ran, tuning, warpFactor, + sum1, sum2, tempsum, tempc, tempy; + CLFlt *nSites, *nSitesOfPat=NULL, *globalNSitesOfPat; + TreeNode *p, *q, *r, *a, *b, *u, *v, *c, *d, *newB, *newA, *newC, **pRoot=NULL, **pCrown=NULL; + Tree *t; + ModelParams *mp; + ModelInfo *m=NULL; + + warpFactor = mvp[0]; /* tuning parameter determining how heavily to weight according to parsimony scores */ +// increaseProb = decreaseProb = mvp[1]; /* reweighting probabilities */ +// v_typical = mvp[2]; /* typical branch length for conversion of parsimony score to log prob ratio */ + tuning = mvp[3]; /* multiplier tuning parameter */ + nNeighbor = (int)mvp[4]; /* distance to move picked branch in root and crown part */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get model params and model info */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1] < BRLENS_MAX ? mp->brlensUni[1] : BRLENS_MAX; + isVPriorExp = NO; + } + else if (param->subParams[0]->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->subParams[0]->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->subParams[0]->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + /* set topologyHasChanged to NO */ + topologyHasChanged = NO; + + /* reset node variables that will be used */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->x = 0; + p->marked = NO; + } + + /* pick an internal branch */ + do { + p = t->intDownPass[(int)(RandomNumber(seed)*(t->nIntNodes-1))]; + q = p->anc->left; + if (q == p) q = p->anc->right; + i = j = 0; + if (q->isLocked == YES || q->left == NULL) + i++; + if (p->anc->isLocked == YES || p->anc->anc->anc == NULL) + i++; + if (p->left->isLocked == YES || p->left->left == NULL) + j++; + if (p->right->isLocked == YES || p->right->left == NULL) + j++; + } + while (i == 2 && j == 2); + + /* set up pointers for nodes around the picked branch */ + v = p; u = p->anc; + c = p->left; d = p->right; + if (u->left == v) a = u->right; + else a = u->left; + b = u->anc; + /* clip root part of tree */ + a->anc = b; + if (b->left == u) b->left = a; + else b->right = a; + /* clip crown part of tree */ + c->anc = d; + d->anc = c; + /* should never change u, v, a, b, c, d pointers */ + + /* mark nodes nNeighbor away in root (negative) and crown (positive) respecting constraints */ + /* first move down towards root */ + nRoot = nCrown = 0; + if (u->isLocked == NO) + { + p = a; q = b; n = 0; + while (q->anc != NULL) + { + q->marked = YES; + q->x = n; // temporary, for MarkDistance below + if (q->left == p) + MarkDistance(q->right, YES, nNeighbor, &nRoot); + else + MarkDistance(q->left, YES, nNeighbor, &nRoot); + q->x = --n; // final + nRoot++; + if (q->isLocked == YES || abs(q->x) >= nNeighbor) + break; + p = q; q = q->anc; + } + } + /* then move up in root part */ + a->marked = YES; nRoot++; + if (a->isLocked == NO) + { + MarkDistance(a->left, YES, nNeighbor, &nRoot); + MarkDistance(a->right, YES, nNeighbor, &nRoot); + } + /* finally in crown part */ + c->marked = YES; nCrown++; + if (c->isLocked == NO) + { + MarkDistance(c->left, NO, nNeighbor, &nCrown); + MarkDistance(c->right, NO, nNeighbor, &nCrown); + } + if (d->isLocked == NO) + { + MarkDistance(d->left, NO, nNeighbor, &nCrown); + MarkDistance(d->right, NO, nNeighbor, &nCrown); + } + + /* need to alloc a matrix for parsimony lengths, an array of pointers to crown part, + and an array of pointers to root part. */ + parLength = (MrBFlt *) SafeCalloc ((size_t)nRoot * (size_t)nCrown, sizeof(MrBFlt)); + pRoot = (TreeNode **) SafeCalloc(nRoot, sizeof(TreeNode *)); + pCrown = (TreeNode **) SafeCalloc(nCrown, sizeof(TreeNode *)); + if (!parLength || !pRoot || !pCrown) goto errorExit; + /* starting position */ + pRoot[0] = a; pCrown[0] = c; + for (i=j=1, n=t->nNodes-2; n>=0; n--) + { /* and the rest */ + p = t->allDownPass[n]; + if (p->marked == YES && p->x < 0) + pRoot[i++] = p; + if (p->marked == YES && p->x > 0) + pCrown[j++] = p; + } + assert (i==nRoot && j==nCrown); + + /* get final parsimony state sets for the root part */ + GetParsDP (t, t->root->left, chain); + GetParsFP (t, t->root->left, chain); + /* get final parsimony state sets for the crown part */ + GetParsDP (t, c, chain); + GetParsDP (t, d, chain); + GetParsFP (t, c, chain); + GetParsFP (t, d, chain); + + /* find number of site patterns and modify randomly */ + globalNSitesOfPat = numSitesOfPat + (chainId[chain] % chainParams.numChains) * numCompressedChars + m->compCharStart; + nSitesOfPat = (CLFlt *) SafeCalloc (numCompressedChars, sizeof(CLFlt)); + if (!nSitesOfPat) goto errorExit; + for (i=0; i 1.0 - increaseProb) + nSitesOfPat[i]++; + } // this is not used at the moment */ + } + + /* cycle through the possibilities and record the parsimony length */ + for (j=0; jnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + /* find nSitesOfPat */ + nSites = nSitesOfPat + m->compCharStart; + + /* find downpass parsimony sets for the potential new connection nodes and their environment */ + pA = m->parsSets[pRoot[i]->index]; + pB = m->parsSets[pRoot[i]->anc->index]; + pC = m->parsSets[pCrown[j]->index]; + pD = m->parsSets[pCrown[j]->anc->index]; + + length = 0.0; + if (m->nParsIntsPerSite == 1) + { + for (k=0; knumChars; k++) + { + y[0] = (pC[k] | pD[k]) & (pA[k] | pB[k]); + if (y[0] == 0) + length += nSites[k]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (k=0; k<2*m->numChars; k+=2) + { + y[0] = (pC[k] | pD[k]) & (pA[k] | pB[k]); + y[1] = (pC[k+1] | pD[k+1]) & (pA[k+1] | pB[k+1]);; + if ((y[0] | y[1]) == 0) + length += nSites[k/2]; + } + } + parLength[i+j*nRoot] += warpFactor * length; + } + } + } + + /* find the min length and the sum for the forward move */ + minLength = -1.0; + for (j=0; j parLength[i+j*nRoot] || minLength < 0.0) + minLength = parLength[i+j*nRoot]; + } + sum1 = 0.0; tempc = 0.0; + for (j=0; j ran) { + /* proposed new attaching position */ + newA = pRoot[i]; + newC = pCrown[j]; + goto outLoop; + } + } +outLoop:; + iA = i; jC = j; + + /* calculate the proposal ratio */ + (*lnProposalRatio) = parLength[i+j*nRoot] - minLength + log(sum1); + + /* find the min length and the sum for the backward move */ + minLength = -1.0; + for (j=0; j parLength[i+j*nRoot] || minLength < 0.0) + minLength = parLength[i+j*nRoot]; + } + sum2 = 0.0; tempc = 0.0; + for (j=0; janc; + newA->anc = u; + if (u->left == v) + u->right = newA; + else + u->left = newA; + u->anc = newB; + if (newB->left == newA) + newB->left = u; + else + newB->right = u; + + /* transfer lock and reassign branch lengths, if necessary */ + if (newA != a) + { + /* if u is locked, then we have moved upwards and need to leave the u lock behind */ + if (u->isLocked == YES) + { + u->isLocked = NO; + a->isLocked = YES; + a->lockID = u->lockID; + u->lockID = -1; + } + + p = newA; + while (p->anc != NULL) + { + if (p == a) break; + p = p->anc; + } + if (p == a) + { + /* newA is descendant to a so move a->length not u->length */ + x = u->length; + u->length = a->length; + a->length = x; + } + + p = b; + while (p->anc != NULL) + { + if (p == newA) break; + p = p->anc; + } + if (p == newA) + { + /* newA is ancestor to a so insert above instead of below */ + x = newA->length; + newA->length = u->length; + u->length = x; + /* newA is on root path and locked, we need to transfer lock to u */ + if (newA->isLocked == YES) { + u->isLocked = YES; + u->lockID = newA->lockID; + newA->isLocked = NO; + newA->lockID = -1; + } + } + + /* hit u length with multiplier */ + x = u->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / u->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (u->length - x); + u->length = x; + + /* set tiprobs update flags */ + u->upDateTi = YES; + newA->upDateTi = YES; + a->upDateTi = YES; + } + + r = newC; + q = newB = newC->anc; + if (newC != c) // crown part has changed + { + /* rotate nodes from newC to c or d (whichever is closest) */ + tempc = r->length; + while (r != c && r != d) + { + p = q->anc; + /* rotate pointers of q */ + if (q->left == r) + q->left = p; + else + q->right = p; + q->anc = r; + /* swap q and old */ + tempy = q->length; + q->length = tempc; + q->upDateTi = YES; + tempc = tempy; + /* make sure we get q and r initialized for next round */ + r = q; + q = p; + } + newB->length = tempc; + + /* hit newB length with multiplier */ + x = newB->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / newB->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (newB->length - x); + newB->length = x; + newB->upDateTi = YES; + } + + /* reattach the crown part */ + v->left = newC; + v->right = newB; + newC->anc = newB->anc = v; + + topologyHasChanged = YES; + + /* hit v length with multiplier */ + x = v->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / v->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (v->length - x); + v->length = x; + v->upDateTi = YES; + + /* set flags for update of cond likes */ + p = u; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = b; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = newC; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = r; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + + /* free up local memory */ + free (parLength); free (pRoot); free (pCrown); free (nSitesOfPat); + + return (NO_ERROR); + +errorExit: + MrBayesPrint ("%s Problem allocating memory in Move_ParsTBR\n", spacer); + free (parLength); free (pRoot); free (pCrown); free (nSitesOfPat); + + return (ERROR); +} + + +int Move_ParsTBR2 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* Change topology and map branch lengths using TBR-type move biased according to parsimony scores, + controlled by a window defined by a certain node distance radius. */ + + int i, j, k, n, division, topologyHasChanged, nNeighbor, nRoot, nCrown, iA, jC, isVPriorExp; + BitsLong *pA, *pB, *pC, *pD, y[2]; + MrBFlt x, minV, maxV, brlensExp=0.0, minLength=0.0, length=0.0, *parLength=NULL, prob, ran, tuning, warpFactor, + v_typical, divFactor, nStates, sum1, sum2, tempsum, tempc, tempy; + CLFlt *nSites, *nSitesOfPat=NULL, *globalNSitesOfPat; + TreeNode *p, *q, *r, *a, *b, *u, *v, *c, *d, *newB, *newA, *newC, **pRoot=NULL, **pCrown=NULL; + Tree *t; + ModelParams *mp; + ModelInfo *m=NULL; + + warpFactor = mvp[0]; /* tuning parameter determining how heavily to weight according to parsimony scores */ +// increaseProb = decreaseProb = mvp[1]; /* reweighting probabilities */ + v_typical = mvp[2]; /* typical branch length for conversion of parsimony score to log prob ratio */ + tuning = mvp[3]; /* multiplier tuning parameter */ + nNeighbor = (int)mvp[4]; /* distance to move picked branch in root and crown part */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + /* get model params and model info */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* max and min brlen */ + if (param->subParams[0]->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0] > BRLENS_MIN ? mp->brlensUni[0] : BRLENS_MIN; + maxV = mp->brlensUni[1] < BRLENS_MAX ? mp->brlensUni[1] : BRLENS_MAX; + isVPriorExp = NO; + } + else if (param->subParams[0]->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->subParams[0]->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->subParams[0]->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + /* set topologyHasChanged to NO */ + topologyHasChanged = NO; + + /* reset node variables that will be used */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->x = 0; + p->marked = NO; + } + + /* pick an internal branch */ + do { + p = t->intDownPass[(int)(RandomNumber(seed)*(t->nIntNodes-1))]; + q = p->anc->left; + if (q == p) q = p->anc->right; + i = j = 0; + if (q->isLocked == YES || q->left == NULL) + i++; + if (p->anc->isLocked == YES || p->anc->anc->anc == NULL) + i++; + if (p->left->isLocked == YES || p->left->left == NULL) + j++; + if (p->right->isLocked == YES || p->right->left == NULL) + j++; + } + while (i == 2 && j == 2); + + /* set up pointers for nodes around the picked branch */ + v = p; u = p->anc; + c = p->left; d = p->right; + if (u->left == v) a = u->right; + else a = u->left; + b = u->anc; + /* clip root part of tree */ + a->anc = b; + if (b->left == u) b->left = a; + else b->right = a; + /* clip crown part of tree */ + c->anc = d; + d->anc = c; + /* should never change u, v, a, b, c, d pointers */ + + /* mark nodes nNeighbor away in root (negative) and crown (positive) respecting constraints */ + /* first move down towards root */ + nRoot = nCrown = 0; + if (u->isLocked == NO) + { + p = a; q = b; n = 0; + while (q->anc != NULL) + { + q->marked = YES; + q->x = n; // temporary, for MarkDistance below + if (q->left == p) + MarkDistance(q->right, YES, nNeighbor, &nRoot); + else + MarkDistance(q->left, YES, nNeighbor, &nRoot); + q->x = --n; // final + nRoot++; + if (q->isLocked == YES || abs(q->x) >= nNeighbor) + break; + p = q; q = q->anc; + } + } + /* then move up in root part */ + a->marked = YES; nRoot++; + if (a->isLocked == NO) + { + MarkDistance(a->left, YES, nNeighbor, &nRoot); + MarkDistance(a->right, YES, nNeighbor, &nRoot); + } + /* finally in crown part */ + c->marked = YES; nCrown++; + if (c->isLocked == NO) + { + MarkDistance(c->left, NO, nNeighbor, &nCrown); + MarkDistance(c->right, NO, nNeighbor, &nCrown); + } + if (d->isLocked == NO) + { + MarkDistance(d->left, NO, nNeighbor, &nCrown); + MarkDistance(d->right, NO, nNeighbor, &nCrown); + } + + /* need to alloc a matrix for parsimony lengths, an array of pointers to crown part, + and an array of pointers to root part. */ + parLength = (MrBFlt *) SafeCalloc ((size_t)nRoot * (size_t)nCrown, sizeof(MrBFlt)); + pRoot = (TreeNode **) SafeCalloc(nRoot, sizeof(TreeNode *)); + pCrown = (TreeNode **) SafeCalloc(nCrown, sizeof(TreeNode *)); + if (!parLength || !pRoot || !pCrown) goto errorExit; + /* starting position */ + pRoot[0] = a; pCrown[0] = c; + for (i=j=1, n=t->nNodes-2; n>=0; n--) + { /* and the rest */ + p = t->allDownPass[n]; + if (p->marked == YES && p->x < 0) + pRoot[i++] = p; + if (p->marked == YES && p->x > 0) + pCrown[j++] = p; + } + assert (i==nRoot && j==nCrown); + + /* get final parsimony state sets for the root part */ + GetParsDP (t, t->root->left, chain); + GetParsFP (t, t->root->left, chain); + /* get final parsimony state sets for the crown part */ + GetParsDP (t, c, chain); + GetParsDP (t, d, chain); + GetParsFP (t, c, chain); + GetParsFP (t, d, chain); + + /* find number of site patterns and modify randomly */ + globalNSitesOfPat = numSitesOfPat + (chainId[chain] % chainParams.numChains) * numCompressedChars + m->compCharStart; + nSitesOfPat = (CLFlt *) SafeCalloc (numCompressedChars, sizeof(CLFlt)); + if (!nSitesOfPat) goto errorExit; + for (i=0; i 1.0 - increaseProb) + nSitesOfPat[i]++; + } // this is not used at the moment */ + } + + /* cycle through the possibilities and record the parsimony length */ + for (j=0; jnRelParts; n++) + { + division = t->relParts[n]; + + /* Find model settings */ + m = &modelSettings[division]; + + /* find nSitesOfPat */ + nSites = nSitesOfPat + m->compCharStart; + + /* find downpass parsimony sets for the potential new connection nodes and their environment */ + pA = m->parsSets[pRoot[i]->index]; + pB = m->parsSets[pRoot[i]->anc->index]; + pC = m->parsSets[pCrown[j]->index]; + pD = m->parsSets[pCrown[j]->anc->index]; + + length = 0.0; + if (m->nParsIntsPerSite == 1) + { + for (k=0; knumChars; k++) + { + y[0] = (pC[k] | pD[k]) & (pA[k] | pB[k]); + if (y[0] == 0) + length += nSites[k]; + } + } + else /* if (m->nParsIntsPerSite == 2) */ + { + for (k=0; k<2*m->numChars; k+=2) + { + y[0] = (pC[k] | pD[k]) & (pA[k] | pB[k]); + y[1] = (pC[k+1] | pD[k+1]) & (pA[k+1] | pB[k+1]);; + if ((y[0] | y[1]) == 0) + length += nSites[k/2]; + } + } + + /* find nStates and ratemult */ + nStates = m->numModelStates; + if (m->dataType == STANDARD) + nStates = 2; + v_typical = length/m->numUncompressedChars + 0.0001; + + /* get division warp factor (prop. to prob. of change) */ + divFactor = - warpFactor * log(1.0/nStates - exp(-nStates/(nStates-1)*v_typical)/nStates); + parLength[i+j*nRoot] += divFactor * length; + } + } + } + + /* find the min length and the sum for the forward move */ + minLength = -1.0; + for (j=0; j parLength[i+j*nRoot] || minLength < 0.0) + minLength = parLength[i+j*nRoot]; + } + sum1 = 0.0; tempc = 0.0; + for (j=0; j ran) { + /* proposed new attaching position */ + newA = pRoot[i]; + newC = pCrown[j]; + goto outLoop; + } + } +outLoop:; + iA = i; jC = j; + + /* calculate the proposal ratio */ + (*lnProposalRatio) = parLength[i+j*nRoot] - minLength + log(sum1); + + /* find the min length and the sum for the backward move */ + minLength = -1.0; + for (j=0; j parLength[i+j*nRoot] || minLength < 0.0) + minLength = parLength[i+j*nRoot]; + } + sum2 = 0.0; tempc = 0.0; + for (j=0; janc; + newA->anc = u; + if (u->left == v) + u->right = newA; + else + u->left = newA; + u->anc = newB; + if (newB->left == newA) + newB->left = u; + else + newB->right = u; + + /* transfer lock and reassign branch lengths, if necessary */ + if (newA != a) + { + /* if u is locked, then we have moved upwards and need to leave the u lock behind */ + if (u->isLocked == YES) + { + u->isLocked = NO; + a->isLocked = YES; + a->lockID = u->lockID; + u->lockID = -1; + } + + p = newA; + while (p->anc != NULL) + { + if (p == a) break; + p = p->anc; + } + if (p == a) + { + /* newA is descendant to a so move a->length not u->length */ + x = u->length; + u->length = a->length; + a->length = x; + } + + p = b; + while (p->anc != NULL) + { + if (p == newA) break; + p = p->anc; + } + if (p == newA) + { + /* newA is ancestor to a so insert above instead of below */ + x = newA->length; + newA->length = u->length; + u->length = x; + /* newA is on root path and locked, we need to transfer lock to u */ + if (newA->isLocked == YES) { + u->isLocked = YES; + u->lockID = newA->lockID; + newA->isLocked = NO; + newA->lockID = -1; + } + } + + /* hit u length with multiplier */ + x = u->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / u->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (u->length - x); + u->length = x; + + /* set tiprobs update flags */ + u->upDateTi = YES; + newA->upDateTi = YES; + a->upDateTi = YES; + } + + r = newC; + q = newB = newC->anc; + if (newC != c) // crown part has changed + { + /* rotate nodes from newC to c or d (whichever is closest) */ + tempc = r->length; + while (r != c && r != d) + { + p = q->anc; + /* rotate pointers of q */ + if (q->left == r) + q->left = p; + else + q->right = p; + q->anc = r; + /* swap q and old */ + tempy = q->length; + q->length = tempc; + q->upDateTi = YES; + tempc = tempy; + /* make sure we get q and r initialized for next round */ + r = q; + q = p; + } + newB->length = tempc; + + /* hit newB length with multiplier */ + x = newB->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / newB->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (newB->length - x); + newB->length = x; + newB->upDateTi = YES; + } + + /* reattach the crown part */ + v->left = newC; + v->right = newB; + newC->anc = newB->anc = v; + + topologyHasChanged = YES; + + /* hit v length with multiplier */ + x = v->length * exp(tuning * (RandomNumber(seed) - 0.5)); + while (x < minV || x > maxV) + { + if (x < minV) x = minV * minV / x; + if (x > maxV) x = maxV * maxV / x; + } + /* calculate proposal and prior ratio based on length modification */ + (*lnProposalRatio) += log (x / v->length); + if (isVPriorExp == YES) + (*lnPriorRatio) += brlensExp * (v->length - x); + v->length = x; + v->upDateTi = YES; + + /* set flags for update of cond likes */ + p = u; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = b; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = newC; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + p = r; + while (p->anc != NULL) + { + p->upDateCl = YES; + p = p->anc; + } + + /* get down pass sequence if tree topology has changed */ + if (topologyHasChanged == YES) + { + GetDownPass (t); + } + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + + /* free up local memory */ + free (parLength); free (pRoot); free (pCrown); free (nSitesOfPat); + + return (NO_ERROR); + +errorExit: + MrBayesPrint ("%s Problem allocating memory in Move_ParsTBR\n", spacer); + free (parLength); free (pRoot); free (pCrown); free (nSitesOfPat); + + return (ERROR); +} + + +int Move_Pinvar (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change proportion of invariable sites (pInvar) */ + + int i, c, isValidP, *rateCat, nGammaCats; + MrBFlt oldP, newP, window, minP, maxP, ran, lnInvarRatio, lnVarRatio; + CLFlt *nSitesOfPat; + ModelParams *mp; + ModelInfo *m; + + /* get size of window, centered on current pInvar value */ + window = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get minimum and maximum values for pInvar */ + minP = mp->pInvarUni[0]; + maxP = mp->pInvarUni[1]; + + /* get old value of pInvar */ + newP = oldP = *GetParamVals(param, chain, state[chain]); + + /* change value for pInvar */ + ran = RandomNumber(seed); + if (maxP-minP < window) + { + window = maxP-minP; + } + + newP = oldP + window * (ran - 0.5); + + /* check validity */ + isValidP = NO; + do + { + if (newP < minP) + newP = 2* minP - newP; + else if (newP > maxP) + newP = 2 * maxP - newP; + else + isValidP = YES; + } while (isValidP == NO); + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* get prior ratio */ + *lnPriorRatio = 0.0; + lnInvarRatio = log(newP) - log(oldP); + lnVarRatio = log(1.0-newP) - log(1.0-oldP); + for (i=0; inRelParts; i++) + { + m = &modelSettings[param->relParts[i]]; + if (m->gibbsGamma == YES) + { + /* find rate category index and number of gamma categories */ + rateCat = m->tiIndex + chain * m->numChars; + nGammaCats = m->numGammaCats; + + /* find nSitesOfPat */ + nSitesOfPat = numSitesOfPat + (chainId[chain] % chainParams.numChains)*numCompressedChars + m->compCharStart; + + /* loop over characters */ + for (c=0; cnumChars; c++) + { + if (rateCat[c] < nGammaCats) + *lnPriorRatio += lnVarRatio * nSitesOfPat[c]; + else + *lnPriorRatio += lnInvarRatio * nSitesOfPat[c]; + } + } + } + + /* copy new pInvar value back */ + *GetParamVals(param, chain, state[chain]) = newP; + + /* Set update flags for all partitions that share this pInvar. Note that the conditional + likelihood update flags for divisions have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* However, you do need to update cijk flags if this is a covarion model */ + /* TO DO */ + + return (NO_ERROR); +} + + +int Move_PopSize_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int isValidN, valIndex; + MrBFlt *valPtr, oldN, newN, tuning, minN, maxN, ran, oldLnPrior, newLnPrior, growth, + oldT, newT, clockRate; + ModelParams *mp; + ModelInfo *m; + Tree *t; + + /* get multiplier tuning parameter */ + tuning = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get model settings */ + m = &modelSettings[param->relParts[0]]; + + /* get minimum and maximum values for population size */ + if (param->paramId == POPSIZE_UNI) + { + minN = mp->popSizeUni[0]; + maxN = mp->popSizeUni[1]; + } + else + { + minN = 0.00001; + maxN = 10000000; + } + + /* get pointer to value to be changed */ + valIndex = (int)(RandomNumber(seed) * param->nValues); + valPtr = GetParamVals(param, chain, state[chain]) + valIndex; + + /* get old value of population size */ + oldN = *valPtr; + + /* get old prior for species tree coalescence */ + if (m->brlens->paramId == BRLENS_CLOCK_SPCOAL) + { + oldLnPrior = LnSpeciesTreeProb(chain); + } + + /* change value for theta */ + ran = RandomNumber(seed); + newN = oldN * exp(tuning * (ran - 0.5)); + + /* check that new value is valid */ + isValidN = NO; + do { + if (newN < minN) + newN = 2* minN - newN; + else if (newN > maxN) + newN = 2 * maxN - newN; + else + isValidN = YES; + } + while (isValidN == NO); + + /* copy new population size value back */ + (*valPtr) = newN; + + /* get proposal ratio */ + *lnProposalRatio = log (newN / oldN); + + /* get prior ratio */ + if (m->brlens->paramId == BRLENS_CLOCK_SPCOAL) + { + newLnPrior = LnSpeciesTreeProb(chain); + } + else + { + t = GetTree(modelSettings[param->relParts[0]].brlens,chain,state[chain]); + m = &modelSettings[param->relParts[0]]; + clockRate = *GetParamVals(m->clockRate, chain, state[chain]); + if (!strcmp(mp->ploidy, "Diploid")) + clockRate *= 4.0; + else if (!strcmp(mp->ploidy, "Zlinked")) + clockRate *= 3.0; + else + clockRate *= 2.0; + newT = oldN * clockRate; + oldT = newN * clockRate; + if (!strcmp(mp->growthPr, "Fixed")) + growth = mp->growthFix; + else + growth = *(GetParamVals (m->growthRate, chain, state[chain])); + if (LnCoalescencePriorPr (t, &oldLnPrior, oldT, growth) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for coalescent process\n", spacer); + return (ERROR); + } + if (LnCoalescencePriorPr (t, &newLnPrior, newT, growth) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for coalescent process\n", spacer); + return (ERROR); + } + } + + (*lnPriorRatio) = param->LnPriorRatio(newN, oldN, param->priorParams); + (*lnPriorRatio) += newLnPrior - oldLnPrior; + + return (NO_ERROR); +} + + +/* Generalized lognormal move for positive real random variables */ +int Move_PosRealLognormal (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i; + MrBFlt oldX, newX, minX, maxX, tuning, u, z; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get minimum and maximum values for X */ + minX = param->min; + maxX = param->max; + + /* get old value of X */ + newX = oldX = *GetParamVals(param, chain, state[chain]); + + /* change value of X */ + u = RandomNumber(seed); + z = PointNormal(u); + + newX = exp (log(oldX) + z * tuning); + + /* check that new value is valid */ + if (newX < minX || newX > maxX) { + abortMove = YES; + return (NO_ERROR); + } + + /* get proposal ratio */ + (*lnProposalRatio) = log (newX / oldX); + + /* get prior ratio */ + (*lnPriorRatio) = param->LnPriorRatio(newX, oldX, param->priorParams); + + /* copy new value back */ + (*GetParamVals(param, chain, state[chain])) = newX; + + /* Set update flags for tree nodes if relevant */ + if (param->affectsLikelihood == YES) + { + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + } + + return (NO_ERROR); +} + + +/* Generalized multiplier move for positive real random variables */ +int Move_PosRealMultiplier (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, isValid; + MrBFlt oldX, newX, minX, maxX, tuning, ran, factor; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get minimum and maximum values for X */ + minX = param->min; + maxX = param->max; + + /* get old value of X */ + newX = oldX = *GetParamVals(param, chain, state[chain]); + + /* change value of X */ + ran = RandomNumber(seed); + factor = exp(tuning * (ran - 0.5)); + newX = oldX * factor; + + /* check that new value is valid */ + isValid = NO; + do + { + if (newX < minX) + newX = minX * minX / newX; + else if (newX > maxX) + newX = maxX * maxX / newX; + else + isValid = YES; + } while (isValid == NO); + + /* get proposal ratio */ + (*lnProposalRatio) = log (newX / oldX); + + /* get prior ratio */ + (*lnPriorRatio) = param->LnPriorRatio(newX, oldX, param->priorParams); + + /* copy new value back */ + *(GetParamVals(param, chain, state[chain])) = newX; + + /* Set update flags for tree nodes if relevant */ + if (param->affectsLikelihood == YES) + { + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + } + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_RateMult_Dir: Change rate multiplier using Dirichlet +| proposal. +| +----------------------------------------------------------------*/ +int Move_RateMult_Dir (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, nRates, isValid; + MrBFlt alphaPi, *value, *subValue, numSites, *alphaDir, x, y, sum, + rate_pot, *dirParm, *oldRate, *newRate; + + /* allocate memory */ + dirParm = (MrBFlt *) SafeCalloc (3*numCurrentDivisions, sizeof(MrBFlt)); + oldRate = dirParm + numCurrentDivisions; + newRate = dirParm + 2*numCurrentDivisions; + + /* get number of rates */ + nRates = param->nValues; + + /* get pointer to rates and number of uncompressed chars */ + value = GetParamVals(param, chain, state[chain]); + subValue = GetParamSubVals(param, chain, state[chain]); + + /* get Dirichlet parameters */ + alphaDir = subValue + nRates; + + /* calculate old ratesum proportions */ + numSites = 0.0; + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* may need to hit update flag for cijks when you have a covarion model */ + for (i=0; inRelParts; i++) + if (modelSettings[param->relParts[i]].nCijkParts > 1) + modelSettings[param->relParts[i]].upDateCijk = YES; + + free (dirParm); + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_RateMult_Slider: Change rate multiplier using slider +| proposal. +| +----------------------------------------------------------------*/ +int Move_RateMult_Slider (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, indexI, indexJ, nRates; + MrBFlt delta, *value, *subValue, sum, numSites, *alphaDir, x, y, + oldRate[2], newRate[2], min, max; + + /* get number of rates */ + nRates = param->nValues; + + /* get pointer to rates and number of uncompressed chars */ + value = GetParamVals(param, chain, state[chain]); + subValue = GetParamSubVals(param, chain, state[chain]); + + /* get Dirichlet prior parameters */ + alphaDir = subValue + nRates; + + /* randomly select two rates */ + indexI = (int) (RandomNumber(seed) * nRates); + indexJ = (int) (RandomNumber(seed) * (nRates - 1)); + if (indexJ == indexI) + indexJ = nRates - 1; + + /* calculate old ratesum proportions */ + numSites = 0.0; + for (i=0; i max-min) /* we do it to avoid following long while loop in case if delta is high */ + delta = max-min; + + x = oldRate[0] / sum; + y = x + delta * (RandomNumber(seed) - 0.5); + while (y < min || y > max) + { + if (y < min) + y = 2.0 * min - y; + if (y > max) + y = 2.0 * max - y; + } + + /* set the new values */ + newRate[0] = y * sum; + newRate[1] = sum - newRate[0]; + value[indexI] = newRate[0] * numSites / subValue[indexI]; + value[indexJ] = newRate[1] * numSites / subValue[indexJ]; + + /* get proposal ratio */ + (*lnProposalRatio) = 0.0; + + /* get prior ratio */ + (*lnPriorRatio) = (alphaDir[indexI]-1.0) * (log(newRate[0]) - log(oldRate[0])); + (*lnPriorRatio) += (alphaDir[indexJ]-1.0) * (log(newRate[1]) - log(oldRate[1])); + + /* Set update flags for all partitions that share the rate multiplier. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* may need to hit update flag for cijks when you have a covarion model */ + for (i=0; inRelParts; i++) + if (modelSettings[param->relParts[i]].nCijkParts > 1) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_Revmat_Dir: Change rate matrix using Dirichlet proposal +| mechanism. +| +----------------------------------------------------------------*/ +int Move_Revmat_Dir (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change revMat using Dirichlet proposal */ + + int i, nRates,isValid; + MrBFlt oldRate[200], newRate[200], dirParm[200], *value, sum, x, y, rate_pot, *alphaDir, alphaPi; + ModelParams *mp; + ModelInfo *m; + + /* get model params and settings */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get rates and nRates */ + value = GetParamVals(param, chain, state[chain]); + nRates = param->nValues; + + /* get so called alpha_pi parameter and adjust for number of components */ + alphaPi = mvp[0] * nRates; + + /* get Dirichlet parameters */ + if (m->dataType == PROTEIN) + alphaDir = mp->aaRevMatDir; + else + alphaDir = mp->revMatDir; + + /* copy old rates */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_Revmat_DirMix: Dirichlet proposal for REVMAT_MIX. From +| Huelsenbeck et al. (2004), but note that the prior density +| is different in that paper because they set the rate sum +| to 6, not to 1. +| +----------------------------------------------------------------*/ +int Move_Revmat_DirMix (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, j, k, isValid, *growthFxn, nRates, groupSize[6]; + MrBFlt *value, dirParm[6], newRate[6], oldRate[6], alphaPi, symDir, sum, rate_pot, x, y; + ModelParams *mp; + + /* get model params and settings */ + mp = &modelParams[param->relParts[0]]; + + /* get growthFunction and nRates */ + value = GetParamVals (param, chain, state[chain]); + growthFxn = GetParamIntVals (param, chain, state[chain]); + nRates = GetKFromGrowthFxn(growthFxn); + + /* we can't do anything if there is only one rate */ + if (nRates == 1) + { + abortMove = YES; + return (NO_ERROR); + } + + /* extract unique rates from value vector */ + for (i=0; irevMatSymDir; + + /* multiply old ratesum props with some large number to get new values close to the old ones */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_Revmat_Slider: Change rate matrix using sliding window +| move. Choose a pair of rates (e.g. r(A<>C), and r(A<>G)) at +| random and denote them rA, and rB. Let oldProp = rA/(rA + rB) +| and newProp = oldProp + delta(U - 0.5), where U is a uniform +| random variable on the interval (0, 1] and delta is a tuning +| parameter. Values that fall outside the boundaries are reflected +| back in. Then set new_rA = newProp*(rA+rB) and new_rB = +| (1-newProp)*(piA+piB). The Hastings ratio of this move is 1.0. +| +----------------------------------------------------------------*/ +int Move_Revmat_Slider (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, j, nRates; + MrBFlt delta, *newRate, *oldRate, *priorAlpha, x, y, sum, min, max; + ModelParams *mp; + ModelInfo *m; + + /* get model params and settings */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get Dirichlet parameters */ + if (m->dataType == PROTEIN) + priorAlpha = mp->aaRevMatDir; + else + priorAlpha = mp->revMatDir; + + /* get the values we need */ + nRates = param->nValues; + newRate = GetParamVals (param, chain, state[chain]); + oldRate = GetParamVals (param, chain, state[chain] ^ 1); + + /* choose a pair to change */ + i = (int) (RandomNumber(seed) * nRates); + j = (int) (RandomNumber(seed) * (nRates-1)); + if (i == j) + j = nRates-1; + + /* find new proportion */ + sum = oldRate[i] + oldRate[j]; + + /* get window size */ + delta = mvp[0]; + + /* reflect */ + min = RATE_MIN / sum; + max = 1.0 - min; + if (delta > max-min) /* we do it to avoid following long while loop in case if delta is high */ + delta = max-min; + + x = oldRate[i] / sum; + y = x + delta * (RandomNumber(seed) - 0.5); + while (y < min || y > max) + { + if (y < min) + y = 2.0 * min - y; + if (y > max) + y = 2.0 * max - y; + } + + /* set the new values */ + newRate[i] = y * sum; + newRate[j] = sum - newRate[i]; + + /* get proposal ratio */ + (*lnProposalRatio) = 0.0; + + /* get prior ratio */ + (*lnPriorRatio) = (priorAlpha[i]-1.0) * (log(newRate[i]) - log(oldRate[i])); + (*lnPriorRatio) += (priorAlpha[j]-1.0) * (log(newRate[j]) - log(oldRate[j])); + + /* Set update for entire tree */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. If this is a simple 4 X 4 model, + we don't take any hit, because we will never go into a general transition probability + calculator. However, for many models we do want to update the cijk flag, as the transition + probability matrices require diagonalizing the rate matrix. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_Revmat_SplitMerge1: Split or merge rates of rate matrix. +| See Huelsenbeck et al. (2004). Note that the prior used +| here is different from theirs. Also, a Beta proposal is +| used instead of a uniform to propose new rate proportions. +| +----------------------------------------------------------------*/ +int Move_Revmat_SplitMerge1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, j, k, index_i, index_j, n_i, n_j, foundFirstI, foundFirstJ, + *newGrowthFxn, *oldGrowthFxn, nOldRates, nNewRates, merge, + groupSize[6], nCompositeRates; + MrBFlt R, R_i, R_j, *newValue, *oldValue, newRate[6], oldRate[6], symDir, + prob_split, prob_merge, dirParm[2], rateProps[2], x, alphaPi; + ModelParams *mp; + + /* get model params and settings */ + mp = &modelParams[param->relParts[0]]; + + /* get the values we need */ + oldValue = GetParamVals(param, chain, state[chain] ^ 1); + newValue = GetParamVals(param, chain, state[chain]); + oldGrowthFxn = GetParamIntVals(param, chain, state[chain] ^ 1); + newGrowthFxn = GetParamIntVals (param, chain, state[chain]); + nOldRates = GetKFromGrowthFxn(oldGrowthFxn); + symDir = mp->revMatSymDir; + alphaPi = mvp[0]; /* tuning parameter alpha */ + + /* get the old rates */ + for (i=0; i index_j) + { + i = index_i; + index_i = index_j; + index_j = i; + } + + /* find group sizes */ + n_i = n_j = 0; + for (i=0; i<6; i++) + { + if (oldGrowthFxn[i] == index_i) + n_i++; + else if (oldGrowthFxn[i] == index_j) + n_j++; + } + + /* adjust growth function */ + for (i=0; i<6; i++) + { + if (oldGrowthFxn[i] == index_j) + newGrowthFxn[i] = index_i; + else if (oldGrowthFxn[i] > index_j) + newGrowthFxn[i] = oldGrowthFxn[i] - 1; + else + newGrowthFxn[i] = oldGrowthFxn[i]; + } + + /* find the new rates */ + for (i=0; i= index_j) + newRate[i] = oldRate[i+1]; + } + + /* copy new unique rate values back into the value array */ + for (i=0; i 1) + nCompositeRates++; + } + + /* calculate prior ratio (different in the paper) */ + (*lnPriorRatio) = LnGamma(n_i * symDir) + LnGamma(n_j * symDir) - LnGamma ((n_i + n_j) * symDir); + (*lnPriorRatio) += ((n_i + n_j) * symDir - 1.0) * log(R) - (n_i * symDir - 1.0) * log(R_i) - (n_j * symDir - 1.0) * log(R_j); + + /* calculate proposal ratio */ + (*lnProposalRatio) = log ((prob_split / prob_merge) * ((nOldRates * (nOldRates - 1)) / (2.0 * nCompositeRates)) * (1.0 / ((pow(2, n_i + n_j - 1) - 1)))); + + /* adjust for Beta proposal in back move */ + dirParm[0] = alphaPi * n_i; + dirParm[1] = alphaPi * n_j; + rateProps[0] = R_i / R; + rateProps[1] = R_j / R; + x = LnGamma(dirParm[0] + dirParm[1]); + x -= LnGamma(dirParm[0]); + x -= LnGamma(dirParm[1]); + x += (dirParm[0] - 1.0) * log(rateProps[0]); + x += (dirParm[1] - 1.0) * log(rateProps[1]); + (*lnProposalRatio) += x; + + /* Jacobian for the rate proportion */ + (*lnProposalRatio) -= log(R); + } + else + { + /* split two rates */ + nNewRates = nOldRates + 1; + + /* determine split and merge probs */ + if (nNewRates == 6) + prob_merge = 1.0; + else + prob_merge = 0.5; + if (nOldRates == 1) + prob_split = 1.0; + else + prob_split = 0.5; + + /* check group sizes before split */ + for (i=0; i 1) + nCompositeRates++; + } + + /* randomly select a rate with two or more components to split */ + k = (int) (RandomNumber(seed) * nCompositeRates); + + for (i=j=0; i 1) + { + if (k == j) + break; + j++; + } + } + assert (i < nOldRates && groupSize[i] > 1); + index_i = i; + + /* adjust growth function */ + do { + foundFirstI = foundFirstJ = NO; + k = 0; + index_j = -1; + for (i=0; i<6; i++) + { + if (oldGrowthFxn[i] == index_i) + { + if (foundFirstI == NO) + { + newGrowthFxn[i] = index_i; + foundFirstI = YES; + } + else + { + if (RandomNumber(seed) < 0.5) + { + if (foundFirstJ == NO) + { + foundFirstJ = YES; + index_j = k + 1; /* one more than previous max */ + newGrowthFxn[i] = index_j; + } + else + { + newGrowthFxn[i] = index_j; + } + } + else + newGrowthFxn[i] = index_i; + } + } + else if (foundFirstJ == YES && oldGrowthFxn[i] >= index_j) + newGrowthFxn[i] = oldGrowthFxn[i] + 1; + else + newGrowthFxn[i] = oldGrowthFxn[i]; + if (foundFirstJ == NO && oldGrowthFxn[i] > k) + k = oldGrowthFxn[i]; + } + } while (foundFirstJ == NO); + + /* find group sizes */ + n_i = n_j = 0; + for (i=0; i<6; i++) + { + if (newGrowthFxn[i] == index_i) + n_i++; + else if (newGrowthFxn[i] == index_j) + n_j++; + } + + /* find old rate */ + R = oldRate[index_i]; + + /* propose new rates */ + dirParm[0] = alphaPi * n_i; + dirParm[1] = alphaPi * n_j; + + DirichletRandomVariable(dirParm, rateProps, 2, seed); + R_i = rateProps[0] * R; + R_j = rateProps[1] * R; + + if (R_i/n_i < RATE_MIN) + { + R_i = RATE_MIN*n_i; + rateProps[0] = R_i/R; + rateProps[1] = 1-rateProps[0]; + R_j = rateProps[1] * R; + assert (R_j/n_j < RATE_MIN); + } + else if (R_j/n_j < RATE_MIN) + { + R_j = RATE_MIN*n_j; + rateProps[1] = R_j/R; + rateProps[0] = 1-rateProps[1]; + R_i = rateProps[0] * R; + assert (R_i/n_i < RATE_MIN); + } + + /* set the new rates */ + for (i=0; i index_j) + newRate[i] = oldRate[i-1]; + else + newRate[i] = oldRate[i]; + } + + /* copy new unique rate values back into the value array */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_Revmat_SplitMerge2: Componentwise split or merge move. +| +----------------------------------------------------------------*/ +int Move_Revmat_SplitMerge2 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, k, n_i, n_j, index_i, index_j, groupIndex_i, groupIndex_j, + *newGrowthFxn, *oldGrowthFxn; + MrBFlt R_i, R_j, r_j, alphaPi, *newValue, *oldValue, symDir, + dirParm[2], rateProps[2], x; + ModelParams *mp; + + /* get model params and settings */ + mp = &modelParams[param->relParts[0]]; + + /* get the values we need */ + oldValue = GetParamVals(param, chain, state[chain] ^ 1); + newValue = GetParamVals(param, chain, state[chain]); + oldGrowthFxn = GetParamIntVals(param, chain, state[chain] ^ 1); + newGrowthFxn = GetParamIntVals (param, chain, state[chain]); + symDir = mp->revMatSymDir; + alphaPi = mvp[0]; /* tuning parameter */ + + /* pick two component rates at random without replacement */ + index_i = (int) (RandomNumber(seed) * 6); + index_j = (int) (RandomNumber(seed) * 5); + if (index_j == index_i) + index_j = 5; + groupIndex_i = oldGrowthFxn[index_i]; + groupIndex_j = oldGrowthFxn[index_j]; + + if (oldGrowthFxn[index_i] != oldGrowthFxn[index_j]) + { + /* the rates are different, so merge them */ + + /* calculate n_i, n_j, R_i and R_j before merge */ + n_i = n_j = 0; + R_i = R_j = 0.0; + for (i=0; i<6; i++) + { + if (oldGrowthFxn[i] == groupIndex_i) + { + n_i++; + R_i += oldValue[i]; + } + if (oldGrowthFxn[i] == groupIndex_j) + { + n_j++; + R_j += oldValue[i]; + } + } + + /* merge component rates by adding j to i */ + newGrowthFxn[index_j] = oldGrowthFxn[index_i]; + + /* select a new rate for r_j */ + if (n_j == 1) + r_j = oldValue[index_j]; + else + { + dirParm[0] = alphaPi * 1; + dirParm[1] = alphaPi * (n_j - 1); + + DirichletRandomVariable(dirParm, rateProps, 2, seed); + r_j = rateProps[0] * R_j; + + if (R_j - r_j < RATE_MIN) + { + r_j = R_j - RATE_MIN; + rateProps[0] = r_j/R_j; + rateProps[1] = 1 - rateProps[0]; + } + } + + /* update new growth function */ + UpdateGrowthFxn(newGrowthFxn); + + /* we divide R_i + r_j equally among components of merged group, + and R_j - r_j equally among split group */ + for (i=0; i<6; i++) + { + if (oldGrowthFxn[i] == oldGrowthFxn[index_i] || i == index_j) + newValue[i] = (R_i + r_j) / (MrBFlt)(n_i + 1); + else if (oldGrowthFxn[i] == oldGrowthFxn[index_j]) + newValue[i] = (R_j - r_j) / (MrBFlt)(n_j - 1); + else + newValue[i] = oldValue[i]; + } + + /* calculate prior ratio */ + if (n_j > 1) + { + /* no category disappeared */ + (*lnPriorRatio) += LnGamma (n_i * symDir) + LnGamma(n_j * symDir); + (*lnPriorRatio) -= LnGamma((n_i +1)* symDir) + LnGamma((n_j-1) * symDir); + (*lnPriorRatio) += ((n_i + 1) * symDir - 1.0) * log(R_i + r_j) + ((n_j - 1) * symDir - 1.0) * log(R_j - r_j); + (*lnPriorRatio) -= (n_i * symDir - 1.0) * log(R_i) + (n_j * symDir - 1.0) * log(R_j); + } + else + { + /* j category disappeared */ + (*lnPriorRatio) += LnGamma (n_i * symDir) + LnGamma(n_j * symDir); + (*lnPriorRatio) -= LnGamma((n_i +1)* symDir); + (*lnPriorRatio) += ((n_i + 1) * symDir - 1.0) * log(R_i + r_j); + (*lnPriorRatio) -= (n_i * symDir - 1.0) * log(R_i) + (n_j * symDir - 1.0) * log(R_j); + } + + /* calculate proposal ratio; this is the probability of choosing the right category for rate j when splitting */ + k = GetKFromGrowthFxn(newGrowthFxn); + (*lnProposalRatio) = log (1.0 / k); + + /* adjust for Beta proposal in back move */ + dirParm[0] = alphaPi * 1; + dirParm[1] = alphaPi * n_i; + rateProps[0] = r_j / (R_i + r_j); + rateProps[1] = 1.0 - rateProps[0]; + x = LnGamma(dirParm[0] + dirParm[1]); + x -= LnGamma(dirParm[0]); + x -= LnGamma(dirParm[1]); + x += (dirParm[0] - 1.0) * log(rateProps[0]); + x += (dirParm[1] - 1.0) * log(rateProps[1]); + (*lnProposalRatio) += x; + + /* adjust for Beta proposal in forward move */ + if (n_j > 1) + { + dirParm[0] = alphaPi * 1; + dirParm[1] = alphaPi * n_j; + rateProps[0] = r_j / R_j; + rateProps[1] = 1.0 - rateProps[0]; + x = LnGamma(dirParm[0] + dirParm[1]); + x -= LnGamma(dirParm[0]); + x -= LnGamma(dirParm[1]); + x += (dirParm[0] - 1.0) * log(rateProps[0]); + x += (dirParm[1] - 1.0) * log(rateProps[1]); + (*lnProposalRatio) -= x; + } + + /* Jacobian */ + (*lnProposalRatio) -= log (R_i + r_j); + if (n_j > 1) + (*lnProposalRatio) += log (R_j); + } + else + { + /* split component rates because they are the same */ + + /* split component rates by selecting new group for j from (0,K), with j starting a new group if index becomes the same */ + k = GetKFromGrowthFxn(oldGrowthFxn); + newGrowthFxn[index_j] = (int) (RandomNumber(seed) * k); + if (newGrowthFxn[index_j] == oldGrowthFxn[index_j]) + newGrowthFxn[index_j] = k + 1; + + /* update growth function and group indices */ + UpdateGrowthFxn(newGrowthFxn); + groupIndex_i = newGrowthFxn[index_i]; + groupIndex_j = newGrowthFxn[index_j]; + + /* calculate n_i, n_j, R_i and R_j after split */ + n_i = n_j = 0; + R_i = R_j = 0.0; + for (i=0; i<6; i++) + { + if (i == index_j) + { + R_i += oldValue[i]; + n_i++; + } + else if (newGrowthFxn[i] == groupIndex_i) + { + n_i++; + R_i += oldValue[i]; + } + else if (newGrowthFxn[i] == groupIndex_j) + { + n_j++; + R_j += oldValue[i]; + } + } + + /* select a new rate for r_j */ + dirParm[0] = alphaPi * 1; + dirParm[1] = alphaPi * (n_i - 1); + + DirichletRandomVariable(dirParm, rateProps, 2, seed); + r_j = rateProps[0] * R_i; + + if (R_i-r_j < RATE_MIN) + { + r_j = R_i - RATE_MIN; + rateProps[0] = r_j/R_i; + rateProps[1] = 1 - rateProps[0]; + } + + /* update n_i, n_j, R_i and R_j after split */ + n_i -= 1; + n_j += 1; + R_i -= r_j; + R_j += r_j; + + /* we divide R_i equally among remaining components of split group, + and R_j equally among new or expanded group */ + for (i=0; i<6; i++) + { + if (newGrowthFxn[i] == groupIndex_i) + newValue[i] = R_i / (MrBFlt)(n_i); + else if (newGrowthFxn[i] == groupIndex_j) + newValue[i] = R_j / (MrBFlt)(n_j); + else + newValue[i] = oldValue[i]; + } + + /* calculate prior ratio */ + if (n_j > 1) + { + /* no new category created by split */ + (*lnPriorRatio) += LnGamma((n_i +1)* symDir) + LnGamma((n_j-1) * symDir); + (*lnPriorRatio) -= LnGamma (n_i * symDir) + LnGamma(n_j * symDir); + (*lnPriorRatio) += (n_i * symDir - 1.0) * log(R_i) + (n_j * symDir - 1.0) * log(R_j); + (*lnPriorRatio) -= ((n_i + 1) * symDir - 1.0) * log(R_i + r_j) + ((n_j - 1) * symDir - 1.0) * log(R_j - r_j); + } + else + { + /* new category created by split */ + (*lnPriorRatio) += LnGamma((n_i +1)* symDir); + (*lnPriorRatio) -= LnGamma (n_i * symDir) + LnGamma(n_j * symDir); + (*lnPriorRatio) += (n_i * symDir - 1.0) * log(R_i) + (n_j * symDir - 1.0) * log(R_j); + (*lnPriorRatio) -= ((n_i + 1) * symDir - 1.0) * log(R_i + r_j); + } + + /* calculate proposal ratio; this is one over the probability of choosing the right category for rate j when splitting */ + k = GetKFromGrowthFxn(oldGrowthFxn); + (*lnProposalRatio) = log (k); + + /* adjust for Beta proposal in back move */ + if (n_j > 1) + { + dirParm[0] = alphaPi * 1; + dirParm[1] = alphaPi * (n_j - 1); + rateProps[0] = r_j / R_j; + rateProps[1] = 1.0 - rateProps[0]; + x = LnGamma(dirParm[0] + dirParm[1]); + x -= LnGamma(dirParm[0]); + x -= LnGamma(dirParm[1]); + x += (dirParm[0] - 1.0) * log(rateProps[0]); + x += (dirParm[1] - 1.0) * log(rateProps[1]); + (*lnProposalRatio) += x; + } + + /* adjust for Beta proposal in forward move */ + dirParm[0] = alphaPi * 1; + dirParm[1] = alphaPi * n_i; + rateProps[0] = r_j / (R_i + r_j); + rateProps[1] = 1.0 - rateProps[0]; + x = LnGamma(dirParm[0] + dirParm[1]); + x -= LnGamma(dirParm[0]); + x -= LnGamma(dirParm[1]); + x += (dirParm[0] - 1.0) * log(rateProps[0]); + x += (dirParm[1] - 1.0) * log(rateProps[1]); + (*lnProposalRatio) -= x; + + /* Jacobian */ + (*lnProposalRatio) += log (R_i + r_j); + if (n_j > 1) + (*lnProposalRatio) -= log (R_j); + } + + /* Set update flags for all partitions that share this revmat. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +int Move_Speciation (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change speciation rate using sliding window */ + + int isLPriorExp, isValidL, valIndex; + MrBFlt *valPtr, oldL, newL, minL, maxL, lambdaExp=0.0, *sR, *eR, sF, *fR, oldLnPrior, newLnPrior, + window, clockRate; + char *sS; + ModelParams *mp; + ModelInfo *m; + Tree *t; + + /* get size of window, centered on current value */ + window = mvp[0]; + + /* get model params and settings */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get minimum and maximum values */ + if (param->paramId == SPECRATE_UNI) + { + minL = mp->speciationUni[0]; + maxL = mp->speciationUni[1]; + isLPriorExp = NO; + } + else + { + minL = 0.000001; + maxL = 1000.0; + lambdaExp = mp->speciationExp; + isLPriorExp = YES; + } + + /* get pointer to value to be changed */ + valIndex = (int)(RandomNumber(seed) * param->nValues); + valPtr = GetParamVals(param, chain, state[chain]) + valIndex; + + /* get old value */ + oldL = *valPtr; + + /* change value */ + if (maxL-minL < window) + window = maxL-minL; + newL = oldL + window * (RandomNumber(seed) - 0.5); + + /* check that new value is valid */ + isValidL = NO; + do { + if (newL < minL) + newL = 2 * minL - newL; + else if (newL > maxL) + newL = 2 * maxL - newL; + else + isValidL = YES; + } while (isValidL == NO); + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* calculate prior ratio */ + t = GetTree(modelSettings[param->relParts[0]].brlens,chain,state[chain]); + sR = GetParamVals (param, chain, state[chain]); + eR = GetParamVals (m->extinctionRates, chain, state[chain]); + sF = mp->sampleProb; + sS = mp->sampleStrat; + clockRate = *GetParamVals (m->clockRate, chain, state[chain]); + + if (!strcmp(mp->clockPr,"Birthdeath")) + { + if (LnBirthDeathPriorPr (t, clockRate, &oldLnPrior, *sR, *eR, sS, sF) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for birth-death process\n", spacer); + return (ERROR); + } + *valPtr = newL; // update with new value + if (LnBirthDeathPriorPr (t, clockRate, &newLnPrior, *sR, *eR, sS, sF) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for birth-death process\n", spacer); + return (ERROR); + } + } + else if (!strcmp(mp->clockPr,"Fossilization")) + { + fR = GetParamVals (m->fossilizationRates, chain, state[chain]); + if (LnFossilizationPriorPr (t, clockRate, &oldLnPrior, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + return (ERROR); + } + *valPtr = newL; // update with new value + // for (i=0; inValues; i++) *(GetParamVals(param, chain, state[chain]) + i) = newL; + if (LnFossilizationPriorPr (t, clockRate, &newLnPrior, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + return (ERROR); + } + } + else { + MrBayesPrint ("%s Move_Speciation not applicable\n", spacer); + return (ERROR); + } + + if (isLPriorExp == NO) + *lnPriorRatio = newLnPrior - oldLnPrior; + else + *lnPriorRatio = -lambdaExp * (newL - oldL) + (newLnPrior - oldLnPrior); + + return (NO_ERROR); +} + + +int Move_Speciation_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change speciation rate using multiplier */ + + int isLPriorExp, isValidL, valIndex; + MrBFlt *valPtr, oldL, newL, minL, maxL, lambdaExp=0.0, *sR, *eR, sF, *fR, oldLnPrior, newLnPrior, + tuning, clockRate; + char *sS; + ModelParams *mp; + ModelInfo *m; + Tree *t; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get model params and settings */ + mp = &modelParams[param->relParts[0]]; + m = &modelSettings[param->relParts[0]]; + + /* get minimum and maximum values */ + if (param->paramId == SPECRATE_UNI) + { + minL = mp->speciationUni[0]; + maxL = mp->speciationUni[1]; + isLPriorExp = NO; + } + else + { + minL = 0.000001; + maxL = 1000.0; + lambdaExp = mp->speciationExp; + isLPriorExp = YES; + } + + /* get pointer to value to be changed */ + valIndex = (int)(RandomNumber(seed) * param->nValues); + valPtr = GetParamVals(param, chain, state[chain]) + valIndex; + + /* get old value */ + oldL = *valPtr; + + /* change value */ + newL = oldL * exp(tuning * (RandomNumber(seed) - 0.5)); + + /* check that new value is valid */ + isValidL = NO; + do { + if (newL < minL) + newL = minL * minL / newL; + else if (newL > maxL) + newL = maxL * maxL / newL; + else + isValidL = YES; + } while (isValidL == NO); + + /* get proposal ratio */ + *lnProposalRatio = log (newL / oldL); + + /* calculate prior ratio */ + t = GetTree(modelSettings[param->relParts[0]].brlens,chain,state[chain]); + sR = GetParamVals (param, chain, state[chain]); + eR = GetParamVals (m->extinctionRates, chain, state[chain]); + sF = mp->sampleProb; + sS = mp->sampleStrat; + clockRate = *GetParamVals(m->clockRate, chain, state[chain]); + + if (!strcmp(mp->clockPr,"Birthdeath")) + { + if (LnBirthDeathPriorPr (t, clockRate, &oldLnPrior, *sR, *eR, sS, sF) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for birth-death process\n", spacer); + return (ERROR); + } + *valPtr = newL; // update with new value + if (LnBirthDeathPriorPr (t, clockRate, &newLnPrior, *sR, *eR, sS, sF) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for birth-death process\n", spacer); + return (ERROR); + } + } + else if (!strcmp(mp->clockPr,"Fossilization")) + { + fR = GetParamVals (m->fossilizationRates, chain, state[chain]); + if (LnFossilizationPriorPr (t, clockRate, &oldLnPrior, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + return (ERROR); + } + *valPtr = newL; // update with new value + // for (i=0; inValues; i++) *(GetParamVals(param, chain, state[chain]) + i) = newL; + if (LnFossilizationPriorPr (t, clockRate, &newLnPrior, sR, eR, sF, fR, sS) == ERROR) + { + MrBayesPrint ("%s Problem calculating prior for fossilized birth-death process\n", spacer); + return (ERROR); + } + } + else { + MrBayesPrint ("%s Move_Speciation_M not applicable\n", spacer); + return (ERROR); + } + + if (isLPriorExp == NO) + *lnPriorRatio = newLnPrior - oldLnPrior; + else + *lnPriorRatio = -lambdaExp * (newL - oldL) + (newLnPrior - oldLnPrior); + + return (NO_ERROR); +} + + +int Move_Statefreqs (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change pi */ + int i, nStates, isValid; + MrBFlt dirichletParameters[64], *newPi, *oldPi, *priorAlpha, sum, alphaPi, x, y; + + /* get the values we need */ + nStates = param->nSubValues; + priorAlpha = GetParamVals(param, chain, state[chain]); + newPi = GetParamSubVals (param, chain, state[chain]); + oldPi = GetParamSubVals (param, chain, state[chain] ^ 1); + + /* tuning parameter */ + alphaPi = mvp[0]*nStates; + + /* multiply old values with some large number to get new values close to the old ones */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. If this is a simple 4 X 4 model, + we don't take any hit, because we will never go into a general transition probability + calculator. However, for many models we do want to update the cijk flag, as the transition + probability matrices require diagonalizing the rate matrix. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| Move_Statefreqs_Slider: Change state frequencies using Slider proposal +| mechanism. +| Choose pairs of the parameter values (e.g. pi(A), and pi(G)) at +| random and denote them piA, and piB. Let oldProp = piA/(piA + piB) +| and newProp = oldProp + delta(U - 0.5), where U is a uniform random variable +| on the interval (0, 1] and delta is a tuning parameter. Values +| that fall outside the boundaries are reflected back in. Then +| set newPiA = newProp*(piA+piB) and newPiB = (1-newProp)*(piA+piB). +| The Hastings ratio of this move is 1.0. +| +----------------------------------------------------------------*/ +int Move_Statefreqs_Slider (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, j, nStates, isValid; + MrBFlt delta, *newPi, *oldPi, *priorAlpha, x, y, sum, min, max; + + /* get the values we need */ + nStates = param->nSubValues; + priorAlpha = GetParamVals(param, chain, state[chain]); + newPi = GetParamSubVals (param, chain, state[chain]); + oldPi = GetParamSubVals (param, chain, state[chain] ^ 1); + + /* get window size */ + delta = mvp[0]; + + /* choose a pair to change */ + i = (int) (RandomNumber(seed) * nStates); + j = (int) (RandomNumber(seed) * (nStates-1)); + if (i == j) + j = nStates-1; + + /* find new proportion */ + sum = oldPi[i] + oldPi[j]; + + /* reflect */ + isValid = NO; + min = PI_MIN / sum; + max = 1.0 - min; + + x = oldPi[i] / sum; + if (delta > max-min) /* we do it to avoid following long while loop in case if delta is high */ + { + delta = max-min; + } + y = x + delta * (RandomNumber(seed) - 0.5); + + do { + if (y < min) + y = 2.0 * min - y; + else if (y > max) + y = 2.0 * max - y; + else + isValid = YES; + } while (isValid == NO); + + /* set the new values */ + newPi[i] = y * sum; + newPi[j] = sum - newPi[i]; + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* get prior ratio */ + /* (the Gamma part of the prior is the same) */ + x = (priorAlpha[i]-1.0)*log(newPi[i]); + x += (priorAlpha[j]-1.0)*log(newPi[j]); + y = (priorAlpha[i]-1.0)*log(oldPi[i]); + y += (priorAlpha[j]-1.0)*log(oldPi[j]); + (*lnPriorRatio) = x - y; + + /* Set update for entire tree */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. If this is a simple 4 X 4 model, + we don't take any hit, because we will never go into a general transition probability + calculator. However, for many models we do want to update the cijk flag, as the transition + probability matrices require diagonalizing the rate matrix. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +int Move_StatefreqsSymDirMultistate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change state freqs of multistate characters */ + /* ideally, we would let the likelihood calculator deal with only the affected character + but we do not have the mechanism for doing that in the current version of mrbayes, so + take the hit of updating all chars of the morph partition(s). */ + int i, nStates, charIndex; + MrBFlt dirichletParameters[10], symDirAlphai, *newPi, *oldPi, sum, alphaPi, x, y; + Model *mp; + + /* tuning parameters */ + alphaPi = mvp[0]; + + /* get model paramaters */ + mp = &modelParams[param->relParts[0]]; + + /* select one character at random */ + charIndex = (int) (RandomNumber(seed) * param->nSympi); + + /* get the values we need */ + symDirAlphai = *GetParamVals(param, chain, state[chain]); + newPi = GetParamStdStateFreqs (param, chain, state[chain]); + oldPi = GetParamStdStateFreqs (param, chain, state[chain] ^ 1); + newPi += 2 * mp->numBetaCats; + oldPi += 2 * mp->numBetaCats; + for (i=0; isympinStates[i]; + newPi += param->sympinStates[i]; + } + nStates = param->sympinStates[charIndex]; + + /* multiply old values with some large number to get new values close to the old ones */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. Only cijks for the changed character + actually need to be updated but we can't do that in the current version of the program. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +int Move_SwitchRate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change switch rate of covarion model using sliding window */ + + int i, isSPriorExp, isValidS, whichRate; + MrBFlt oldS, newS, window, minS, maxS, sExp=0.0, ran, *value; + ModelParams *mp; + + /* decide which switching rate to change */ + if (RandomNumber(seed) < 0.5) + whichRate = 0; + else + whichRate = 1; + + /* get size of window, centered on current switching rates value */ + window = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get minimum and maximum values for switching rate */ + if (param->paramId == SWITCH_UNI) + { + minS = mp->covswitchUni[0]; + maxS = mp->covswitchUni[1]; + isSPriorExp = NO; + } + else + { + minS = 0.01; + maxS = KAPPA_MAX; + sExp = mp->covswitchExp; + isSPriorExp = YES; + } + + /* get old value of switching rate */ + value = GetParamVals(param, chain, state[chain]); + newS = oldS = value[whichRate]; + + /* change value for switching rate */ + ran = RandomNumber(seed); + if (maxS-minS < window) + { + window = maxS-minS; + } + newS = oldS + window * (ran - 0.5); + + /* check that new value is valid */ + isValidS = NO; + do + { + if (newS < minS) + newS = 2* minS - newS; + else if (newS > maxS) + newS = 2 * maxS - newS; + else + isValidS = YES; + } while (isValidS == NO); + + /* get proposal ratio */ + *lnProposalRatio = 0.0; + + /* get prior ratio */ + if (isSPriorExp == NO) + *lnPriorRatio = 0.0; + else + *lnPriorRatio = -sExp * (newS - oldS); + + /* copy new switching rate value back */ + value[whichRate] = newS; + + /* Set update flags for all partitions that share this switching rate. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. If this is a simple 4 X 4 model, + we don't take any hit, because we will never go into a general transition probability + calculator. However, for covarion, doublet, and codon models, we do want to update + the cijk flag. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +int Move_SwitchRate_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change switch rate of covarion model using multiplier */ + + int i, isSPriorExp, isValidS, whichRate; + MrBFlt oldS, newS, minS, maxS, sExp=0.0, tuning, ran, factor, *value; + ModelParams *mp; + + /* decide which switching rate to change */ + if (RandomNumber(seed) < 0.5) + whichRate = 0; + else + whichRate = 1; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get minimum and maximum values for switching rate */ + if (param->paramId == SWITCH_UNI) + { + minS = mp->covswitchUni[0]; + maxS = mp->covswitchUni[1]; + isSPriorExp = NO; + } + else + { + minS = 0.01; + maxS = KAPPA_MAX; + sExp = mp->covswitchExp; + isSPriorExp = YES; + } + + /* get old value of switching rate */ + value = GetParamVals(param, chain, state[chain]); + newS = oldS = value[whichRate]; + + /* change value for switching rate */ + ran = RandomNumber(seed); + factor = exp(tuning * (ran - 0.5)); + newS = oldS * factor; + + /* check that new value is valid */ + isValidS = NO; + do + { + if (newS < minS) + newS = minS * minS / newS; + else if (newS > maxS) + newS = maxS * maxS / newS; + else + isValidS = YES; + } while (isValidS == NO); + + /* get proposal ratio */ + *lnProposalRatio = log (newS / oldS); + + /* get prior ratio */ + if (isSPriorExp == NO) + *lnPriorRatio = 0.0; + else + *lnPriorRatio = -sExp * (newS - oldS); + + /* copy new switching rate value back */ + value[whichRate] = newS; + + /* Set update flags for all partitions that share this switching rate. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. If this is a simple 4 X 4 model, + we don't take any hit, because we will never go into a general transition probability + calculator. However, for covarion, doublet, and codon models, we do want to update + the cijk flag. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +int Move_TK02BranchRate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* move one TK02 relaxed clock branch rate using multiplier */ + + int i; + MrBFlt newRate, oldRate, tuning, minR, maxR, nu, *tk02Rate, *brlens; + TreeNode *p = NULL; + ModelInfo *m; + Tree *t; + TreeNode *q; + + /* get model settings */ + m = &modelSettings[param->relParts[0]]; + + /* get the tuning parameter */ + tuning = mvp[0]; + + /* get the TK02 branch rate and effective branch length data */ + tk02Rate = GetParamVals (param, chain, state[chain]); + brlens = GetParamSubVals (param, chain, state[chain]); + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + /* get minimum and maximum rate */ + minR = RATE_MIN; + maxR = RATE_MAX; + + /* randomly pick a rate */ + do { + i = (int) (RandomNumber(seed) * (t->nNodes -2)); + p = t->allDownPass[i]; + } + while (p->length < TIME_MIN); // not ancestral fossil + + /* find new rate */ + oldRate = tk02Rate[p->index]; + newRate = oldRate * exp ((0.5 - RandomNumber(seed)) * tuning); + + /* reflect if necessary */ + while (newRate < minR || newRate > maxR) + { + if (newRate < minR) + newRate = minR * minR / newRate; + if (newRate > maxR) + newRate = maxR * maxR / newRate; + } + + tk02Rate[p->index] = newRate; + + /* calculate prior ratio */ + nu = *GetParamVals (m->tk02var, chain, state[chain]); + (*lnPriorRatio) = LnRatioTK02LogNormal (tk02Rate[p->anc->index], nu*p->length, newRate, oldRate); + if (p->left != NULL) + { + if (p->left->length > 0.0) + { + (*lnPriorRatio) -= LnProbTK02LogNormal (oldRate, nu*p->left->length, tk02Rate[p->left->index ]); + (*lnPriorRatio) += LnProbTK02LogNormal (newRate, nu*p->left->length, tk02Rate[p->left->index ]); + } + if (p->right->length > 0.0) + { + (*lnPriorRatio) -= LnProbTK02LogNormal (oldRate, nu*p->right->length, tk02Rate[p->right->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (newRate, nu*p->right->length, tk02Rate[p->right->index]); + } + } + + /* calculate proposal ratio */ + (*lnProposalRatio) = log (newRate / oldRate); + + /* update branch evolution lengths */ + brlens[p->index] = p->length * (newRate + tk02Rate[p->anc->index]) / 2.0; + if (p->left != NULL) + { + if (p->left->length > 0.0) + { + brlens[p->left->index] = p->left->length * (tk02Rate[p->left->index] + newRate) / 2.0; + } + if (p->right->length > 0.0) + { + brlens[p->right->index] = p->right->length * (tk02Rate[p->right->index] + newRate) / 2.0; + } + } + + /* set update of ti probs */ + p->upDateTi = YES; + if (p->left != NULL) + { + p->left ->upDateTi = YES; + p->right->upDateTi = YES; + } + + /* set update of cond likes down to root */ + /* update of crowntree set in UpdateCppEvolLengths */ + p->upDateCl = YES; + q = p->anc; + while (q->anc != NULL) + { + q->upDateCl = YES; + q = q->anc; + } + + return (NO_ERROR); +} + + +int Move_Tratio_Dir (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change tratio using Dirichlet proposal */ + + int i; + MrBFlt oldK, alphaPi, *alphaDir, oldProp[2], newProp[2], dirParm[2], sum, x, y; + ModelParams *mp; + + /* get model params */ + mp = &modelParams[param->relParts[0]]; + + /* get so called alphaPi parameter */ + alphaPi = mvp[0]; + + /* get old value of kappa */ + oldK = *GetParamVals(param, chain, state[chain]); + + /* get Dirichlet parameters */ + alphaDir = mp->tRatioDir; + + /* calculate old ratesum proportions */ + oldProp[0] = oldK / (oldK + 1.0); + oldProp[1] = 1.0 - oldProp[0]; + + /* multiply old ratesum props with some large number to get new values close to the old ones */ + dirParm[0] = oldProp[0] * alphaPi; + dirParm[1] = oldProp[1] * alphaPi; + + /* get new values */ + DirichletRandomVariable (dirParm, newProp, 2, seed); + + if (newProp[0] < DIR_MIN) + { + newProp[0] = DIR_MIN; + newProp[1] = 1.0-DIR_MIN; + } + else if (newProp[1] < DIR_MIN) + { + newProp[1] = DIR_MIN; + newProp[0] = 1.0-DIR_MIN; + } + + /* calculate and copy new kappa value back */ + *GetParamVals(param, chain, state[chain]) = newProp[0] / newProp[1]; + + /* get proposal ratio */ + sum = 0.0; + for (i=0; i<2; i++) + sum += newProp[i]*alphaPi; + x = LnGamma(sum); + for (i=0; i<2; i++) + x -= LnGamma(newProp[i]*alphaPi); + for (i=0; i<2; i++) + x += (newProp[i]*alphaPi-1.0)*log(oldProp[i]); + sum = 0.0; + for (i=0; i<2; i++) + sum += oldProp[i]*alphaPi; + y = LnGamma(sum); + for (i=0; i<2; i++) + y -= LnGamma(oldProp[i]*alphaPi); + for (i=0; i<2; i++) + y += (oldProp[i]*alphaPi-1.0)*log(newProp[i]); + (*lnProposalRatio) = x - y; + + /* get prior ratio */ + x = y = 0.0; + for (i=0; i<2; i++) + x += (alphaDir[i]-1.0)*log(newProp[i]); + for (i=0; i<2; i++) + y += (alphaDir[i]-1.0)*log(oldProp[i]); + (*lnPriorRatio) = x - y; + + /* Set update flags for all partitions that share this kappa. Note that the conditional + likelihood update flags have been set before we even call this function. */ + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + + /* Set update flags for cijks for all affected partitions. If this is a simple 4 X 4 model, + we don't take any hit, because we will never go into a general transition probability + calculator. However, for covarion, doublet, and codon models, we do want to update + the cijk flag. */ + for (i=0; inRelParts; i++) + modelSettings[param->relParts[i]].upDateCijk = YES; + + return (NO_ERROR); +} + + +/* Code added by Jeremy Brown and modified by Maxim Teslenko */ +int Move_TreeLen (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + /* change all branch lengths */ + + MrBFlt begin_tl, treescaler, tuning, maxV, minV, brlensPrExp=0.0; + TreeNode *p; + ModelParams *mp; + Tree *t; + int i,branch_counter, isVPriorExp; + + tuning = mvp[0]; /* Larget & Simon's tuning parameter lambda */ + + mp = &modelParams[param->relParts[0]]; + + /* max and min brlen */ + if (param->paramId == BRLENS_UNI) + { + minV = mp->brlensUni[0]; + maxV = mp->brlensUni[1]; + isVPriorExp = NO; + } + else if (param->paramId == BRLENS_GamDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 2; + } + else if (param->paramId == BRLENS_iGmDir) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 3; + } + else if (param->paramId == BRLENS_twoExp) + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + isVPriorExp = 4; + } + else + { + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + brlensPrExp = mp->brlensExp; + isVPriorExp = YES; + } + + /* get tree */ + t = GetTree (param, chain, state[chain]); + + assert (t->isRooted == NO); + + /* Dirichlet or twoExp prior */ + if (isVPriorExp > 1) + (*lnPriorRatio) = -LogDirPrior(t, mp, isVPriorExp); + + treescaler = exp(tuning * (RandomNumber(seed) - 0.5)); + + begin_tl = 0.0; + branch_counter=0; + + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + if (p->length*treescaler < minV || p->length*treescaler > maxV) + { + abortMove = YES; + return NO_ERROR; + } + begin_tl += p->length; + branch_counter++; + } + } + assert (branch_counter==t->nNodes-1); + + /* iterate scaling over all branches */ + for (i=0; i < t->nNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + /* set new length */ + p->length *= treescaler; + + /* set flags for update of transition probabilities at p */ + p->upDateTi = YES; + p->anc->upDateCl = YES; + } + } + + /* calculate proposal ratio */ + (*lnProposalRatio) = branch_counter * log(treescaler); + + /* update prior if exponential prior on branch lengths */ + if (param->paramId == BRLENS_EXP) + (*lnPriorRatio) = brlensPrExp * (begin_tl* (1 - treescaler)); + /* Dirichlet or twoExp prior */ + else if (isVPriorExp > 1) + (*lnPriorRatio) += LogDirPrior(t, mp, isVPriorExp); + + return (NO_ERROR); +} + + +/*----------------------------------------------------------------------------------- +| +| Move_TreeStretch: Shrink or grow a clock tree +| +-------------------------------------------------------------------------------------*/ +int Move_TreeStretch (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, j, *nEvents, numChangedNodes; + MrBFlt minV, maxV, tuning, factor, lambda=0.0, x, + *brlens=NULL, nu=0.0, igrvar=0.0, *tk02Rate=NULL, *igrRate=NULL; + TreeNode *p, *q; + ModelParams *mp; + ModelInfo *m; + Tree *t, *oldT; + Param *subParm; + Calibration *calibrationPtr; + + tuning = mvp[0]; /* Larget & Simon tuning parameter lambda */ + + (*lnProposalRatio) = (*lnPriorRatio) = 0.0; + + m = &modelSettings[param->relParts[0]]; + mp = &modelParams[param->relParts[0]]; + + /* get trees */ + t = GetTree (param, chain, state[chain]); + oldT = GetTree (param, chain, 1^state[chain]); + + /* min and max branch lengths in relative time and substitution units */ + minV = BRLENS_MIN; + maxV = BRLENS_MAX; + + /* determine multiplication factor */ + factor = exp(tuning * (RandomNumber(seed) - 0.5)); + + /* multiply all changeable ages and node depths by this factor */ + numChangedNodes = 0; + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + + /* skip extant tip and fixed calibration */ + if (p->left == NULL && p->isDated == NO) + continue; + if (p->isDated == YES) + calibrationPtr = p->calibration; + else if (p->anc->anc == NULL && (!strcmp(mp->clockPr,"Uniform") || !strcmp(mp->clockPr,"Fossilization"))) + calibrationPtr = &mp->treeAgePr; + else + calibrationPtr = NULL; + if (calibrationPtr != NULL && calibrationPtr->prior == fixed) + continue; + + /* now stretch the node */ + if (calibrationPtr != NULL) + { + p->age *= factor; + if (p->age < calibrationPtr->min || p->age > calibrationPtr->max) + { + abortMove = YES; + return (NO_ERROR); + } + } + p->nodeDepth *= factor; + numChangedNodes++; + + /* deal with ancestral fossils */ + if (p->left != NULL) + { + if (p->left->length < TIME_MIN) + { + p->left->length = 0.0; + p->nodeDepth = p->left->nodeDepth; + if (calibrationPtr != NULL) + { + assert (p->left->calibration != NULL); + p->age = p->left->age; + if (p->age < calibrationPtr->min || p->age > calibrationPtr->max) + { + abortMove = YES; + return (NO_ERROR); + } + } + numChangedNodes--; + } + if (p->right->length < TIME_MIN) + { + p->right->length = 0.0; + p->nodeDepth = p->right->nodeDepth; + if (calibrationPtr != NULL) + { + assert (p->right->calibration != NULL); + p->age = p->right->age; + if (p->age < calibrationPtr->min || p->age > calibrationPtr->max) + { + abortMove = YES; + return (NO_ERROR); + } + } + numChangedNodes--; + } + assert (!(p->left->length == 0.0 && p->right->length == 0.0)); + } + } + + /* update brls */ + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + if (p->left != NULL) + { + if (p->left->length > 0.0) + p->left->length = p->nodeDepth - p->left->nodeDepth; + if (p->right->length > 0.0) + p->right->length = p->nodeDepth - p->right->nodeDepth; + } + } + + /* check that all branch lengths are proper, which need not be the case */ + for (i = 0; i < t->nNodes -2; i++) + { + p = t->allDownPass[i]; + q = oldT->allDownPass[i]; + if (p->length < 0.0 || p->length > maxV || (q->length > minV && p->length < minV) || (q->length < TIME_MIN && p->length > TIME_MIN)) + { /* consider ancestral fossil (brl=0) in fossilized bd tree */ + abortMove = YES; + return NO_ERROR; + } + } + + /* calculate proposal ratio */ + (*lnProposalRatio) = numChangedNodes * log(factor); + + /* calculate prior ratio */ + if (LogClockTreePriorRatio(param, chain, &x) == ERROR) + return ERROR; + (*lnPriorRatio) += x; + + /* adjust proposal and prior ratio for relaxed clock models */ + for (i=0; inSubParams; i++) + { + subParm = param->subParams[i]; + if (subParm->paramType == P_CPPEVENTS) + { + nEvents = subParm->nEvents[2*chain+state[chain]]; + lambda = *GetParamVals (modelSettings[subParm->relParts[0]].cppRate, chain, state[chain]); + /* proposal ratio */ + for (j=0; jnNodes-2; j++) + { + p = t->allDownPass[j]; + q = oldT->allDownPass[j]; + (*lnProposalRatio) += nEvents[p->index ] * log (p->length / q->length); + } + /* prior ratio */ + (*lnPriorRatio) += lambda * (TreeLen(oldT) - TreeLen(t)); + /* update effective evolutionary lengths */ + if (UpdateCppEvolLengths (subParm, t->root->left, chain) == ERROR) + { + abortMove = YES; + return (NO_ERROR); + } + } + else if ( subParm->paramType == P_TK02BRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_TK02)) + { + if (subParm->paramType == P_TK02BRANCHRATES) + nu = *GetParamVals (modelSettings[subParm->relParts[0]].tk02var, chain, state[chain]); + else + nu = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + tk02Rate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* prior ratio and update of brlens */ + for (j=0; jnNodes-2; j++) + { + p = t->allDownPass[j]; + q = oldT->allDownPass[j]; + if (p->length > 0.0) // not ancestral fossil + { + (*lnPriorRatio) -= LnProbTK02LogNormal (tk02Rate[q->anc->index], nu*q->length, tk02Rate[q->index]); + (*lnPriorRatio) += LnProbTK02LogNormal (tk02Rate[p->anc->index], nu*p->length, tk02Rate[p->index]); + brlens[p->index] = p->length * (tk02Rate[p->anc->index]+tk02Rate[p->index])/2.0; + if (brlens[p->index] < RELBRLENS_MIN || brlens[p->index] > RELBRLENS_MAX) + { + abortMove = YES; + return (NO_ERROR); + } + } + } + } + else if ( subParm->paramType == P_IGRBRANCHRATES || + (subParm->paramType == P_MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state[chain]) == RCL_IGR)) + { + if (subParm->paramType == P_IGRBRANCHRATES) + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].igrvar, chain, state[chain]); + else + igrvar = *GetParamVals (modelSettings[subParm->relParts[0]].mixedvar, chain, state[chain]); + igrRate = GetParamVals (subParm, chain, state[chain]); + brlens = GetParamSubVals (subParm, chain, state[chain]); + + /* prior ratio and update of igr branch lengths and rates (stretched in the same way as tree) */ + for (j=0; jnNodes-2; j++) + { + p = t->allDownPass[j]; + q = oldT->allDownPass[j]; + if (p->length > 0.0) // not ancestral fossil + { + (*lnPriorRatio) -= LnProbGamma (q->length/igrvar, q->length/igrvar, igrRate[q->index]); + (*lnPriorRatio) += LnProbGamma (p->length/igrvar, p->length/igrvar, igrRate[p->index]); + brlens[p->index] = p->length * igrRate[p->index]; + if (brlens[p->index] < RELBRLENS_MIN || brlens[p->index] > RELBRLENS_MAX) + { + abortMove = YES; + return (NO_ERROR); + } + } + } + } + } + + TouchAllTreeNodes(m, chain); + +#if defined (DEBUG_TREESTRETCH) + printf ("After treestretch:\n"); + printf ("Old tree height: %f -- New tree height: %f -- lnPriorRatio = %f -- lnProposalRatio = %f\n", + oldT->root->left->nodeDepth, t->root->left->nodeDepth, (*lnPriorRatio), (*lnProposalRatio)); +#endif + + return (NO_ERROR); +} + + +/* Generalized normal move for real random variables */ +int Move_RealNormal (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i; + MrBFlt oldX, newX, tuning, minX, maxX, u, z; + + /* get tuning parameter */ + tuning = mvp[0]; + + /* get minimum and maximum values for X */ + minX = param->min; + maxX = param->max; + + /* get old value of X */ + newX = oldX = *GetParamVals(param, chain, state[chain]); + + /* change value */ + u = RandomNumber(seed); + z = PointNormal(u); + newX = oldX + z * tuning; + + /* check that new value is valid */ + if (newX < minX || newX > maxX) + { + abortMove = YES; + return (NO_ERROR); + } + + /* get proposal ratio */ + (*lnProposalRatio) = 0.0; + + /* get prior ratio */ + (*lnPriorRatio) = param->LnPriorRatio(newX, oldX, param->priorParams); + + /* copy new value back */ + *GetParamVals(param, chain, state[chain]) = newX; + + /* Set update flags for tree nodes if relevant */ + if (param->affectsLikelihood == YES) + { + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + } + + return (NO_ERROR); +} + + +/* Generalized slider move for real random variables */ +int Move_RealSlider (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp) +{ + int i, isValid; + MrBFlt oldX, newX, window, minX, maxX, u; + + /* get size of window, centered on current value */ + window = mvp[0]; + + /* get minimum and maximum values for X */ + minX = param->min; + maxX = param->max; + + /* get old value of X */ + newX = oldX = *GetParamVals(param, chain, state[chain]); + + /* change value */ + u = RandomNumber(seed); + newX = oldX + window * (u - 0.5); + + /* check that new value is valid */ + isValid = NO; + do + { + if (newX < minX) + newX = 2* minX - newX; + else if (newX > maxX) + newX = 2 * maxX - newX; + else + isValid = YES; + } while (isValid == NO); + + /* get proposal ratio */ + (*lnProposalRatio) = 0.0; + + /* get prior ratio */ + (*lnPriorRatio) = param->LnPriorRatio(newX, oldX, param->priorParams); + + /* copy new value back */ + *GetParamVals(param, chain, state[chain]) = newX; + + /* Set update flags for tree nodes if relevant */ + if (param->affectsLikelihood == YES) + { + for (i=0; inRelParts; i++) + TouchAllTreeNodes(&modelSettings[param->relParts[i]],chain); + } + + return (NO_ERROR); +} + + +void TouchAllTreeNodes (ModelInfo *m, int chain) +{ + int i; + Tree *t; + TreeNode *p; + + t = GetTree(m->brlens, chain, state[chain]); + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->upDateCl = YES; + p->upDateTi = YES; + } + m->upDateAll = YES; +} + diff --git a/src/proposal.h b/src/proposal.h new file mode 100644 index 0000000..f598523 --- /dev/null +++ b/src/proposal.h @@ -0,0 +1,83 @@ +#ifndef __PROPOSAL_H__ +#define __PROPOSAL_H__ + +int Move_Aamodel (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_AddBranch (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Adgamma (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_AddDeleteCPPEvent (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Beta (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Beta_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_BrLen (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ClockRate_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_CPPEventPosition (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_CPPRate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_CPPRateMultiplier_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_CPPRateMultiplierRnd (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_DelBranch (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Extinction (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Fossilization (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ExtSPR (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ExtSPR1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ExtSPRClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ExtSS (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ExtSSClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ExtTBR (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_GeneRate_Dir (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Growth_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_IgrVar (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_IgrBranchRate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Local (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_LocalClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_MixedVar (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_MixedBranchRate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_NNI (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_NNIClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_NNI_Hetero (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_NodeSlider (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_NodeSliderClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Nu (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Omega (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Omega_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_OmegaBeta_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_OmegaCat (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_OmegaGamma_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_OmegaM3 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_OmegaNeu (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_OmegaPos (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_OmegaPur (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ParsEraser1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ParsSPR (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ParsSPR1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ParsSPR2 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ParsSPRClock (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ParsTBR1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_ParsTBR2 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_PopSize (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_PosRealLognormal (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_PosRealMultiplier (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_PopSize_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Pinvar (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_RateMult_Dir (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_RateMult_Slider (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_RateShape_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_RealNormal (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_RealSlider (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_RelaxedClockModel (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Revmat_Dir (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Revmat_DirMix (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Revmat_Slider (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Revmat_SplitMerge1 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Revmat_SplitMerge2 (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Speciation (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Speciation_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Statefreqs (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Statefreqs_Slider (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_StatefreqsSymDirMultistate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_SwitchRate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_SwitchRate_M (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_TK02BranchRate (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_Tratio_Dir (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_TreeStretch (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); +int Move_TreeLen (Param *param, int chain, RandLong *seed, MrBFlt *lnPriorRatio, MrBFlt *lnProposalRatio, MrBFlt *mvp); + +#endif /* __PROPOSAL_H__ */ diff --git a/src/sumpt.c b/src/sumpt.c new file mode 100644 index 0000000..4f9618b --- /dev/null +++ b/src/sumpt.c @@ -0,0 +1,8525 @@ +/* + * MrBayes 3 + * + * (c) 2002-2013 + * + * John P. Huelsenbeck + * Dept. Integrative Biology + * University of California, Berkeley + * Berkeley, CA 94720-3140 + * johnh@berkeley.edu + * + * Fredrik Ronquist + * Swedish Museum of Natural History + * Box 50007 + * SE-10405 Stockholm, SWEDEN + * fredrik.ronquist@nrm.se + * + * With important contributions by + * + * Paul van der Mark (paulvdm@sc.fsu.edu) + * Maxim Teslenko (maxim.teslenko@nrm.se) + * + * and by many users (run 'acknowledgments' to see more info) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details (www.gnu.org). + * + */ + +#include "bayes.h" +#include "command.h" +#include "mcmc.h" +#include "sumpt.h" +#include "utils.h" +#if defined(__MWERKS__) +#include "SIOUX.h" +#endif + +const char* const svnRevisionSumptC = "$Rev: 1072 $"; /* Revision keyword which is expended/updated by svn on each commit/update */ + +typedef struct partctr + { + struct partctr *left, *right; + BitsLong *partition; + int totCount; + int *count; + MrBFlt **length; + MrBFlt **height; + MrBFlt **age; + int ***nEvents; /* nEvents[0,nESets][0,numRuns][0,count[RunID]] */ + MrBFlt ***bRate; /* bRate [0,nBSets][0,numRuns][0,count[RunID]] */ + MrBFlt ***bLen; /* bLen [0,nBSets][0,numRuns][0,count[RunID]] */ + MrBFlt **popSize; /* popSize[0,numRuns][0,count[RunID]] */ + } + PartCtr; + +typedef struct treectr + { + struct treectr *left, *right; + int count; + int *order; + } + TreeCtr; + +typedef struct + { + int longestLineLength; + int numTreeBlocks; + int lastTreeBlockBegin; + int lastTreeBlockEnd; + int numTreesInLastBlock; + } + SumtFileInfo; + +#define ALLOC_LEN 100 /* number of values to allocate each time in partition counter nodes */ + +#if defined (PRINT_RATEMUL_CPP) +FILE *rateMultfp=NULL; +#endif + +#undef DEBUG_CONTREE + +extern int inSumtCommand; +extern int inComparetreeCommand; +extern int DoUserTree (void); +extern int DoUserTreeParm (char *parmName, char *tkn); +extern int SafeFclose(FILE **); + +extern int SetUpPartitionCounters (void); +extern int AddTreeToPartitionCounters (Tree *tree, int treeId, int runId); +extern void CalcTopoConvDiagn2 (int *nTrees); +extern void FreeChainMemory (void); + +/* local prototypes */ +int CompareModelProbs (const void *x, const void *y); +int PrintModelStats (char *fileName, char **headerNames, int nHeaders, ParameterSample *parameterSamples, int nRuns, int nSamples); +int PrintOverlayPlot (MrBFlt **xVals, MrBFlt **yVals, int nRows, int startingFrom, int nSamples); +int PrintParamStats (char *fileName, char **headerNames, int nHeaders, ParameterSample *parameterSamples, int nRuns, int nSamples); +void PrintPlotHeader (void); + +PartCtr *AddSumtPartition (PartCtr *r, PolyTree *t, PolyNode *p, int runId); +TreeCtr *AddSumtTree (TreeCtr *r, int *order); +PartCtr *AllocPartCtr (void); +TreeCtr *AllocTreeCtr (void); +void CalculateTreeToTreeDistance (Tree *tree1, Tree *tree2, MrBFlt *d1, MrBFlt *d2, MrBFlt *d3); +int ConTree (PartCtr **treeParts, int numTreeParts); +MrBFlt CppEvolRate (PolyTree *t, PolyNode *p, int eSet); +int ExamineSumtFile (char *fileName, SumtFileInfo *sumtFileInfo, char *treeName, int *brlensDef); +void FreePartCtr (PartCtr *r); +void FreeSumtParams (void); +void FreeTreeCtr (TreeCtr *r); +int Label (PolyNode *p, int addIndex, char *label, int maxLength); +int OpenBrlensFile (int treeNo); +int OpenComptFiles (void); +int OpenSumtFiles (int treeNo); +void PartCtrUppass (PartCtr *r, PartCtr **uppass, int *index); +int PrintBrlensToFile (PartCtr **treeParts, int numTreeParts, int treeNo); +void PrintConTree (FILE *fp, PolyTree *t); +void PrintFigTreeConTree (FILE *fp, PolyTree *t, PartCtr **treeParts); +void PrintFigTreeNodeInfo (FILE *fp, PartCtr *x, MrBFlt length); +void PrintSumtTableLine (int numRuns, int *rowCount, Stat *theStats, MrBFlt *numPSRFSamples, MrBFlt *maxPSRF, MrBFlt *sumPSRF); +void PrintSumtTaxaInfo (void); +void Range (MrBFlt *vals, int nVals, MrBFlt *min, MrBFlt *max); +void ResetTaxonSet (void); +int ShowConPhylogram (FILE *fp, PolyTree *t, int screenWidth); +void ShowSomeParts (FILE *fp, BitsLong *p, int offset, int nTaxaToShow); +void SortPartCtr (PartCtr **item, int left, int right); +void SortTerminalPartCtr (PartCtr **item, int len); +void SortTreeCtr (TreeCtr **item, int left, int right); +int StoreSumtTree (PackedTree *treeList, int index, PolyTree *t); +void TreeCtrUppass (TreeCtr *r, TreeCtr **uppass, int *index); +int TreeProb (void); +void WriteConTree (PolyNode *p, FILE *fp, int showSupport); +void WriteFigTreeConTree (PolyNode *p, FILE *fp, PartCtr **treeParts); + +/* local (to this file) */ +static int numUniqueSplitsFound, numUniqueTreesFound, numPackedTrees[2], numAsterices; /* length of local to this file variables */ +static FILE *fpParts=NULL, *fpTstat=NULL, *fpVstat, *fpCon=NULL, *fpTrees=NULL, *fpDists=NULL; /* file pointers */ +static PartCtr *partCtrRoot = NULL; /* binary tree for holding splits info */ +static TreeCtr *treeCtrRoot = NULL; /* binary tree for holding unique tree info */ +static PackedTree *packedTreeList[2]; /* list of trees in packed format */ + + +/* AllocateParameterSamples: Allocate space for parameter samples */ +int AllocateParameterSamples (ParameterSample **parameterSamples, int numRuns, int numRows, int numColumns) +{ + int i, j; + + (*parameterSamples) = (ParameterSample *) SafeCalloc (numColumns, sizeof(ParameterSample)); + if (!(*parameterSamples)) + return ERROR; + (*parameterSamples)[0].values = (MrBFlt **) SafeCalloc (numColumns * numRuns, sizeof (MrBFlt *)); + if (!((*parameterSamples)[0].values)) + { + FreeParameterSamples(*parameterSamples); + return ERROR; + } + (*parameterSamples)[0].values[0] = (MrBFlt *) SafeCalloc (numColumns * numRuns * numRows, sizeof (MrBFlt)); + for (i=1; i (*((ModelProb *)(y))).prob) + return -1; + else if ((*((ModelProb *)(x))).prob < (*((ModelProb *)(y))).prob) + return 1; + else + return 0; +} + + +int DoSump (void) +{ + int i, n, nHeaders=0, numRows, numColumns, numRuns, whichIsX, whichIsY, + unreliable, oneUnreliable, burnin, longestHeader, len; + MrBFlt mean, harm_mean; + char **headerNames=NULL, temp[120]; + SumpFileInfo fileInfo, firstFileInfo; + ParameterSample *parameterSamples=NULL; + FILE *fpLstat=NULL; + +# if defined (MPI_ENABLED) + if (proc_id != 0) + return NO_ERROR; +# endif + + /* tell user we are ready to go */ + if (sumpParams.numRuns == 1) + MrBayesPrint ("%s Summarizing parameters in file %s.p\n", spacer, sumpParams.sumpFileName); + else if (sumpParams.numRuns == 2) + MrBayesPrint ("%s Summarizing parameters in files %s.run1.p and %s.run2.p\n", spacer, sumpParams.sumpFileName, sumpParams.sumpFileName); + else /* if (sumpParams.numRuns > 2) */ + { + MrBayesPrint ("%s Summarizing parameters in %d files (%s.run1.p,\n", spacer, sumpParams.numRuns, sumpParams.sumpFileName); + MrBayesPrint ("%s %s.run2.p, etc)\n", spacer, sumpParams.sumpFileName); + } + MrBayesPrint ("%s Writing summary statistics to file %s.pstat\n", spacer, sumpParams.sumpFileName); + + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using relative burnin ('relburnin=yes'), discarding the first %.0f %% of samples\n", + spacer, chainParams.burninFraction*100.0, chainParams.burninFraction); + else + MrBayesPrint ("%s Using absolute burnin ('relburnin=no'), discarding the first %d samples\n", + spacer, chainParams.chainBurnIn, chainParams.chainBurnIn); + + /* Initialize to silence warning. */ + firstFileInfo.numRows = 0; + firstFileInfo.numColumns = 0; + + /* examine input file(s) */ + for (i=0; i longestHeader) + longestHeader = len; + } + + /* Print header */ + PrintPlotHeader (); + + /* Print trace plots */ + if (FindHeader("Gen", headerNames, nHeaders, &whichIsX) == ERROR) + { + MrBayesPrint ("%s Could not find the 'Gen' column\n", spacer); + return ERROR; + } + if (FindHeader("LnL", headerNames, nHeaders, &whichIsY) == ERROR) + { + MrBayesPrint ("%s Could not find the 'LnL' column\n", spacer); + return ERROR; + } + + if (sumpParams.numRuns > 1) + { + if (sumpParams.allRuns == YES) + { + for (i=0; i 1) + MrBayesPrintf (fpLstat, "[ID: %s]\n", stamp); + + /* print header */ + if (sumpParams.numRuns == 1) + MrBayesPrintf (fpLstat, "arithmetic_mean\tharmonic_mean\tvalues_discarded\n"); + else + MrBayesPrintf (fpLstat, "run\tarithmetic_mean\tharmonic_mean\tvalues_discarded\n"); + + oneUnreliable = NO; + for (n=0; n 2) + MrBayesPrint ("%s \"%s.run1.p\", \"%s.run2.p\", etc:\n", spacer, sumpParams.sumpFileName, sumpParams.sumpFileName); + else /* if (sumpParams.numRuns == 2) */ + MrBayesPrint ("%s \"%s.run1.p\" and \"%s.run2.p\":\n", spacer, sumpParams.sumpFileName, sumpParams.sumpFileName); + MrBayesPrint ("%s (Use the harmonic mean for Bayes factor comparisons of models)\n\n", spacer, sumpParams.sumpFileName); + MrBayesPrint ("%s (Values are saved to the file %s.lstat)\n\n", spacer, sumpParams.sumpOutfile); + MrBayesPrint ("%s Run Arithmetic mean Harmonic mean\n", spacer); + MrBayesPrint ("%s --------------------------------------\n", spacer); + } + if (unreliable == NO) + MrBayesPrint ("%s %3d %9.2lf %9.2lf\n", spacer, n+1, mean, harm_mean); + else + MrBayesPrint ("%s %3d %9.2lf * %9.2lf *\n", spacer, n+1, mean, harm_mean); + + /* print to file */ + MrBayesPrintf (fpLstat, "%d\t", n+1); + MrBayesPrintf (fpLstat, "%s\t", MbPrintNum(mean)); + MrBayesPrintf (fpLstat, "%s\t", MbPrintNum(harm_mean)); + if (unreliable == YES) + MrBayesPrintf (fpLstat, "yes\n"); + else + MrBayesPrintf (fpLstat, "no\n"); + } + } /* next run */ + if (sumpParams.numRuns == 1) + { + MrBayesPrint ("%s --------------------------------\n", spacer); + } + else + { + if (HarmonicArithmeticMeanOnLogs (parameterSamples[whichIsY].values[0], sumpParams.numRuns*numRows, &mean, &harm_mean) == ERROR) + { + unreliable = YES; + oneUnreliable = YES; + } + else + unreliable = NO; + MrBayesPrint ("%s --------------------------------------\n", spacer); + if (unreliable == YES) + MrBayesPrint ("%s TOTAL %9.2lf * %9.2lf *\n", spacer, mean, harm_mean); + else + MrBayesPrint ("%s TOTAL %9.2lf %9.2lf\n", spacer, mean, harm_mean); + MrBayesPrint ("%s --------------------------------------\n", spacer); + + /* print total to file */ + MrBayesPrintf (fpLstat, "all\t"); + MrBayesPrintf (fpLstat, "%s\t", MbPrintNum(mean)); + MrBayesPrintf (fpLstat, "%s\t", MbPrintNum(harm_mean)); + if (unreliable == YES) + MrBayesPrintf (fpLstat, "yes\n"); + else + MrBayesPrintf (fpLstat, "no\n"); + } + if (oneUnreliable == YES) + { + MrBayesPrint ("%s * These estimates may be unreliable because \n", spacer); + MrBayesPrint ("%s some extreme values were excluded\n\n", spacer); + } + else + { + MrBayesPrint ("\n"); + } + SafeFclose(&fpLstat); + + /* Calculate burnin */ + burnin = fileInfo.firstParamLine - fileInfo.headerLine; + + /* Print parameter information to screen and to file. */ + if (sumpParams.numRuns > 1 && sumpParams.allRuns == YES) + { + for (i=0; i 2) */ + { + MrBayesPrint ("%s Summarizing parameters in %d files (%s.run1.p,\n", spacer, sumssParams.numRuns, sumpParams.sumpFileName); + MrBayesPrint ("%s %s.run2.p, etc)\n", spacer, sumpParams.sumpFileName); + } + //MrBayesPrint ("%s Writing summary statistics to file %s.pstat\n", spacer, sumpParams.sumpFileName); + + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using relative burnin ('relburnin=yes'), discarding the first %.0f %% of samples within each step.\n", + spacer, chainParams.burninFraction*100.0, chainParams.burninFraction); + else + MrBayesPrint ("%s Using absolute burnin ('relburnin=no'), discarding the first %d samples within each step.\n", + spacer, chainParams.chainBurnIn, chainParams.chainBurnIn); + + /* Initialize to silence warning. */ + firstFileInfo.numRows = 0; + firstFileInfo.numColumns = 0; + + /* examine input file(s) */ + for (i=0; i longestHeader) + longestHeader = len; + } + + /* Print trace plots */ + if (FindHeader("Gen", headerNames, nHeaders, &whichIsX) == ERROR) + { + MrBayesPrint ("%s Could not find the 'Gen' column\n", spacer); + goto errorExit; + } + if (FindHeader("LnL", headerNames, nHeaders, &whichIsY) == ERROR) + { + MrBayesPrint ("%s Could not find the 'LnL' column\n", spacer); + goto errorExit; + } + + if (chainParams.burninSS > 0) + { + stepBeginSS = chainParams.burninSS + 1; + } + else + { + numSamplesInStepSS = (numRows-1)/(chainParams.numStepsSS-chainParams.burninSS); + stepBeginSS = numSamplesInStepSS + 1; + } + + numSamplesInStepSS = (numRows - stepBeginSS)/chainParams.numStepsSS; + if ((numRows - stepBeginSS)%chainParams.numStepsSS!=0) + { + MrBayesPrint ("%s Error: Number of samples could not be evenly devided among steps (%d samples among %d steps). \n", spacer,(numRows - stepBeginSS),chainParams.numStepsSS); + goto errorExit; + } + + if (chainParams.relativeBurnin == YES) + { + stepBurnin = (int)(numSamplesInStepSS*chainParams.burninFraction); + } + else + { + stepBurnin = chainParams.chainBurnIn; + if (stepBurnin >= numSamplesInStepSS) + { + MrBayesPrint ("%s Error: Burnin in each step(%d) is longer then the step itself(%d). \n", spacer,stepBurnin, numSamplesInStepSS); + goto errorExit; + } + } + + marginalLnLSS = (MrBFlt *) SafeCalloc (sumssParams.numRuns, sizeof(MrBFlt)); + /*Preparing and printing joined plot.*/ + plotArrayY = (MrBFlt **) SafeCalloc (sumssParams.numRuns+1, sizeof(MrBFlt*)); + for (i=0; i=0; stepIndexSS--) + { + if (chainParams.startFromPriorSS==YES) + { + stepLengthSS = BetaQuantile(chainParams.alphaSS, 1.0, (MrBFlt)(chainParams.numStepsSS-stepIndexSS)/(MrBFlt)chainParams.numStepsSS) - BetaQuantile(chainParams.alphaSS, 1.0, (MrBFlt)(chainParams.numStepsSS-1-stepIndexSS)/(MrBFlt)chainParams.numStepsSS); + } + else + { + stepLengthSS = BetaQuantile(chainParams.alphaSS, 1.0, (MrBFlt)(stepIndexSS+1)/(MrBFlt)chainParams.numStepsSS) - BetaQuantile(chainParams.alphaSS, 1.0, (MrBFlt)stepIndexSS/(MrBFlt)chainParams.numStepsSS); + } + MrBayesPrint (" %3d ", chainParams.numStepsSS-stepIndexSS); + for (i=0; i stepScalerSS + 200.0) + { + // adjust scaler; + stepAcumulatorSS /= exp(*lnlp*stepLengthSS - 100.0 - stepScalerSS); + stepScalerSS= *lnlp*stepLengthSS - 100.0; + } + stepAcumulatorSS += exp(*lnlp*stepLengthSS - stepScalerSS); + lnlp++; + } + tmpMfl = (log(stepAcumulatorSS/(numSamplesInStepSS-stepBurnin)) + stepScalerSS); + MrBayesPrint (" %10.3lf", tmpMfl); + marginalLnLSS[i] += tmpMfl; + } + MrBayesPrint ("\n"); + //MrBayesPrint ("%s %3d %9.2f \n", spacer, i+1, marginalLnLSS); + } + MrBayesPrint (" "); + for (j=0; j 1) + { + MrBayesPrint ("%s Below are rough plots of the generations (x-axis) during burn in \n", spacer); + MrBayesPrint ("%s phase versus the log probability of observing the data (y-axis). \n", spacer); + MrBayesPrint ("%s You can use these graphs to determine if the burn in for your SS \n", spacer); + MrBayesPrint ("%s analysis was sufficiant. The log probability suppose to plateau \n", spacer); + MrBayesPrint ("%s indicating that you may be at stationarity by the time you finish \n", spacer); + MrBayesPrint ("%s burn in phase. This burn in, unlike burn in within each step, is \n", spacer); + MrBayesPrint ("%s fixed and can not be changed. \n", spacer); + } + else + { + MrBayesPrint ("%s Below is a rough plot of the generations (x-axis) during burn in \n", spacer); + MrBayesPrint ("%s phase versus the log probability of observing the data (y-axis). \n", spacer); + MrBayesPrint ("%s You can use these graph to determine if the burn in for your SS \n", spacer); + MrBayesPrint ("%s analysis was sufficiant. The log probability suppose to plateau \n", spacer); + MrBayesPrint ("%s indicating that you may be at stationarity by the time you finish \n", spacer); + MrBayesPrint ("%s burn in phase. This burn in, unlike burn in within each step, is \n", spacer); + MrBayesPrint ("%s fixed and can not be changed. \n", spacer); + } + */ + + if (firstPass == NO) + goto sumssExitOptions; + + sumssStepPlot: + + MrBayesPrint ("\n\n%s Step plot(s).\n",spacer); + while (1) + { + MrBayesPrint ("\n"); + if (sumssParams.stepToPlot == 0) + { + beginPrint=(int)(sumssParams.discardFraction*stepBeginSS); + countPrint=stepBeginSS-beginPrint; + MrBayesPrint ("%s Ploting step 0, i.e initial burn-in phase consisting of %d samples.\n", spacer,stepBeginSS); + MrBayesPrint ("%s According to 'Discardfrac=%.2f', first %d samples are not ploted.\n", spacer,sumssParams.discardFraction,beginPrint); + } + else + { + if (sumssParams.stepToPlot > chainParams.numStepsSS) + { + MrBayesPrint ("%s Chosen index of step to print %d is out of range of step indices[0,...,%d].\n", spacer,sumssParams.stepToPlot,chainParams.numStepsSS); + goto errorExit; + } + beginPrint=stepBeginSS+(sumssParams.stepToPlot-1)*numSamplesInStepSS + (int)(sumssParams.discardFraction*numSamplesInStepSS); + countPrint=numSamplesInStepSS-(int)(sumssParams.discardFraction*numSamplesInStepSS); + MrBayesPrint ("%s Ploting step %d consisting of %d samples.\n", spacer,sumssParams.stepToPlot,numSamplesInStepSS); + MrBayesPrint ("%s According to 'Discardfrac=%.2f', first %d samples are not ploted.\n", spacer,sumssParams.discardFraction,(int)(sumssParams.discardFraction*numSamplesInStepSS)); + } + + if (sumssParams.numRuns > 1) + { + if (sumpParams.allRuns == YES) + { + for (i=0; i chainParams.numStepsSS) + { + do + { + MrBayesPrint (" Enter new value for 'Discardfrac', should be in range 0.0 to 1.0:"); + k = scanf("%f",&tmpf); + sumssParams.discardFraction = (MrBFlt)tmpf; + } + while (sumssParams.discardFraction < 0.0 || sumssParams.discardFraction > 1.0); + } + else + sumssParams.stepToPlot=j; + } + + if (firstPass == NO) + goto sumssExitOptions; + + sumssJoinedPlot: + + MrBayesPrint ("\n\n%s Joined plot(s).\n",spacer); + while (1) + { + MrBayesPrint ("\n"); + MrBayesPrint ("%s Joined plot of %d samples of all steps together. 'smoothing' is set to:%d\n", spacer,numSamplesInStepSS,sumssParams.smoothing); + MrBayesPrint ("%s According to step burn-in, first %d samples are not ploted.\n", spacer,stepBurnin); + + for (i=0; i0; stepIndexSS--) + { + firstlnlp=plotArrayY[sumssParams.numRuns] + stepBurnin; + lnlp+=stepBurnin; + nextSteplnlp += numSamplesInStepSS; + while (lnlp < nextSteplnlp) + { + *firstlnlp+=*lnlp; + firstlnlp++; + lnlp++; + } + } + for (j=stepBurnin;j=stepBurnin && k 1) + { + if (sumpParams.allRuns == YES) + { + for (i=0; i= numSamplesInStepSS) + { + MrBayesPrint (" Enter new value for 'Smoothing':"); + k = scanf("%d",&j); + sumssParams.smoothing = abs(j); + } + else + stepBurnin=j; + } + + firstPass = NO; + +sumssExitOptions: + + if (sumssParams.askForMorePlots == YES) + { + MrBayesPrint ("\n"); + MrBayesPrint (" Sumss is interactive, because of parameter 'Askmore=YES' setting. \n"); + MrBayesPrint (" What would you like to do next?\n"); + MrBayesPrint (" 1) Print updated table according to new step burn-in.\n"); + MrBayesPrint (" 2) Print Step plot(s).\n"); + MrBayesPrint (" 3) Print Joined plot(s).\n"); + MrBayesPrint (" 4) Exit 'sumss'.\n"); + MrBayesPrint (" Enter a number that corresponds to one of the options:"); + do + { + k = scanf("%d",&j); + }while (j<1 || j>4); + + if (j == 1) + { + MrBayesPrint (" Allowed range of step burn-in values are from 0 to %d\n", numSamplesInStepSS-1); + MrBayesPrint (" Current step burn-in value is:%d\n", stepBurnin); + MrBayesPrint (" Enter new step burn-in:"); + do + { + k = scanf("%d",&stepBurnin); + } + while (stepBurnin < 0 || stepBurnin > numSamplesInStepSS-1); + MrBayesPrint ("\n"); + goto sumssTable; + } + else if (j == 2) + { + goto sumssStepPlot; + } + else if (j == 3) + goto sumssJoinedPlot; + } + + /* free memory */ + FreeParameterSamples(parameterSamples); + for (i=0; i99 && (strchr(tkn,' ')-tkn) > 99) + { + MrBayesPrint ("%s Maximum allowed length of file name is 99 characters. The given name:\n", spacer); + MrBayesPrint ("%s '%s'\n", spacer,tkn); + return (ERROR); + } + sscanf (tkn, "%s", tempStr); + strcpy (sumpParams.sumpFileName, tempStr); + strcpy (sumpParams.sumpOutfile, tempStr); + MrBayesPrint ("%s Setting sump filename and output file name to %s\n", spacer, sumpParams.sumpFileName); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Outputname (sumpParams.sumpOutfile) *******************************************************/ + else if (!strcmp(parmName, "Outputname")) + { + if (expecting == Expecting(EQUALSIGN)) + { + expecting = Expecting(ALPHA); + readWord = YES; + } + else if (expecting == Expecting(ALPHA)) + { + if (strlen(tkn)>99 && (strchr(tkn,' ')-tkn) > 99) + { + MrBayesPrint ("%s Maximum allowed length of file name is 99 characters. The given name:\n", spacer); + MrBayesPrint ("%s '%s'\n", spacer,tkn); + return (ERROR); + } + sscanf (tkn, "%s", tempStr); + strcpy (sumpParams.sumpOutfile, tempStr); + MrBayesPrint ("%s Setting sump output file name to \"%s\"\n", spacer, sumpParams.sumpOutfile); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Relburnin (chainParams.relativeBurnin) ********************************************************/ + else if (!strcmp(parmName, "Relburnin")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.relativeBurnin = YES; + else + chainParams.relativeBurnin = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Relburnin\n", spacer); + return (ERROR); + } + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using relative burnin (a fraction of samples discarded).\n", spacer); + else + MrBayesPrint ("%s Using absolute burnin (a fixed number of samples discarded).\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Burnin (chainParams.chainBurnIn) ***********************************************************/ + else if (!strcmp(parmName, "Burnin")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + chainParams.chainBurnIn = tempI; + MrBayesPrint ("%s Setting burn-in to %d\n", spacer, chainParams.chainBurnIn); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Burninfrac (chainParams.burninFraction) ************************************************************/ + else if (!strcmp(parmName, "Burninfrac")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%lf", &tempD); + if (tempD < 0.01) + { + MrBayesPrint ("%s Burnin fraction too low (< 0.01)\n", spacer); + return (ERROR); + } + if (tempD > 0.50) + { + MrBayesPrint ("%s Burnin fraction too high (> 0.50)\n", spacer); + return (ERROR); + } + chainParams.burninFraction = tempD; + MrBayesPrint ("%s Setting burnin fraction to %.2f\n", spacer, chainParams.burninFraction); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Minprob (sumpParams.minProb) ************************************************************/ + else if (!strcmp(parmName, "Minprob")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%lf", &tempD); + if (tempD > 0.50) + { + MrBayesPrint ("%s Minprob too high (it should be smaller than 0.50)\n", spacer); + return (ERROR); + } + sumpParams.minProb = tempD; + MrBayesPrint ("%s Setting minprob to %1.3f\n", spacer, sumpParams.minProb); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Nruns (sumpParams.numRuns) *******************************************************/ + else if (!strcmp(parmName, "Nruns")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + if (tempI < 1) + { + MrBayesPrint ("%s Nruns must be at least 1\n", spacer); + return (ERROR); + } + else + { + sumpParams.numRuns = tempI; + MrBayesPrint ("%s Setting sump nruns to %d\n", spacer, sumpParams.numRuns); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + } + else + return (ERROR); + } + /* set Hpd (sumpParams.HPD) ********************************************************/ + else if (!strcmp(parmName, "Hpd")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumpParams.HPD = YES; + else + sumpParams.HPD = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Hpd\n", spacer); + return (ERROR); + } + if (sumpParams.HPD == YES) + MrBayesPrint ("%s Reporting 95 %% region of Highest Posterior Density (HPD).\n", spacer); + else + MrBayesPrint ("%s Reporting median interval containing 95 %% of values.\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Allruns (sumpParams.allRuns) ********************************************************/ + else if (!strcmp(parmName, "Allruns")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumpParams.allRuns = YES; + else + sumpParams.allRuns = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for allruns (valid arguments are 'yes' and 'no')\n", spacer); + return (ERROR); + } + if (sumpParams.allRuns == YES) + MrBayesPrint ("%s Setting sump to print information for each run\n", spacer); + else + MrBayesPrint ("%s Setting sump to print only summary information for all runs\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + else + return (ERROR); + } + + return (NO_ERROR); +} + + +int DoSumSsParm (char *parmName, char *tkn) +{ + int tempI; + MrBFlt tempD; + char tempStr[100]; + + if (expecting == Expecting(PARAMETER)) + { + expecting = Expecting(EQUALSIGN); + } + else + { + if (!strcmp(parmName, "Xxxxxxxxxx")) + { + expecting = Expecting(PARAMETER); + expecting |= Expecting(SEMICOLON); + } + /* set Filename (sumpParams.sumpFileName) ***************************************************/ + else if (!strcmp(parmName, "Filename")) + { + if (expecting == Expecting(EQUALSIGN)) + { + expecting = Expecting(ALPHA); + readWord = YES; + } + else if (expecting == Expecting(ALPHA)) + { + if (strlen(tkn)>99 && (strchr(tkn,' ')-tkn) > 99) + { + MrBayesPrint ("%s Maximum allowed length of file name is 99 characters. The given name:\n", spacer); + MrBayesPrint ("%s '%s'\n", spacer,tkn); + return (ERROR); + } + sscanf (tkn, "%s", tempStr); + strcpy (sumpParams.sumpFileName, tempStr); + strcpy (sumpParams.sumpOutfile, tempStr); + MrBayesPrint ("%s Setting sump filename and output file name to %s\n", spacer, sumpParams.sumpFileName); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Outputname (sumpParams.sumpOutfile) *******************************************************/ + /*else if (!strcmp(parmName, "Outputname")) + { + if (expecting == Expecting(EQUALSIGN)) + { + expecting = Expecting(ALPHA); + readWord = YES; + } + else if (expecting == Expecting(ALPHA)) + { + if (strlen(tkn)>99 && (strchr(tkn,' ')-tkn) > 99) + { + MrBayesPrint ("%s Maximum allowed length of file name is 99 characters. The given name:\n", spacer); + MrBayesPrint ("%s '%s'\n", spacer,tkn); + return (ERROR); + } + sscanf (tkn, "%s", tempStr); + strcpy (sumpParams.sumpOutfile, tempStr); + MrBayesPrint ("%s Setting sump output file name to \"%s\"\n", spacer, sumpParams.sumpOutfile); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + }*/ + /* set Relburnin (chainParams.relativeBurnin) ********************************************************/ + else if (!strcmp(parmName, "Relburnin")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.relativeBurnin = YES; + else + chainParams.relativeBurnin = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Relburnin\n", spacer); + return (ERROR); + } + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using relative burnin (a fraction of samples discarded).\n", spacer); + else + MrBayesPrint ("%s Using absolute burnin (a fixed number of samples discarded).\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Burnin (chainParams.chainBurnIn) ***********************************************************/ + else if (!strcmp(parmName, "Burnin")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + chainParams.chainBurnIn = tempI; + MrBayesPrint ("%s Setting burn-in to %d\n", spacer, chainParams.chainBurnIn); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Burninfrac (chainParams.burninFraction) ************************************************************/ + else if (!strcmp(parmName, "Burninfrac")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%lf", &tempD); + if (tempD < 0.01) + { + MrBayesPrint ("%s Burnin fraction too low (< 0.01)\n", spacer); + return (ERROR); + } + if (tempD > 0.50) + { + MrBayesPrint ("%s Burnin fraction too high (> 0.50)\n", spacer); + return (ERROR); + } + chainParams.burninFraction = tempD; + MrBayesPrint ("%s Setting burnin fraction to %.2f\n", spacer, chainParams.burninFraction); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Nruns (sumssParams.numRuns) *******************************************************/ + else if (!strcmp(parmName, "Nruns")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + if (tempI < 1) + { + MrBayesPrint ("%s Nruns must be at least 1\n", spacer); + return (ERROR); + } + else + { + sumssParams.numRuns = tempI; + MrBayesPrint ("%s Setting sumss nruns to %d\n", spacer, sumssParams.numRuns); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + } + else + return (ERROR); + } + /* set Allruns (sumssParams.allRuns) ********************************************************/ + else if (!strcmp(parmName, "Allruns")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumssParams.allRuns = YES; + else + sumssParams.allRuns = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for allruns (valid arguments are 'yes' and 'no')\n", spacer); + return (ERROR); + } + if (sumssParams.allRuns == YES) + MrBayesPrint ("%s Setting sump to print information for each run\n", spacer); + else + MrBayesPrint ("%s Setting sump to print only summary information for all runs\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Steptoplot (sumssParams.stepToPlot) *******************************************************/ + else if (!strcmp(parmName, "Steptoplot")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + if (tempI < 0) + { + MrBayesPrint ("%s Steptoplot must be at least 0\n", spacer); + return (ERROR); + } + else + { + sumssParams.stepToPlot = tempI; + MrBayesPrint ("%s Setting sumss steptoplot to %d\n", spacer, sumssParams.stepToPlot); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + } + else + return (ERROR); + } + /* set Smoothing (sumssParams.smoothing) *******************************************************/ + else if (!strcmp(parmName, "Smoothing")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + if (tempI < 0) + { + MrBayesPrint ("%s Smoothing must be at least 0\n", spacer); + return (ERROR); + } + else + { + sumssParams.smoothing = tempI; + MrBayesPrint ("%s Setting sumss smoothing to %d\n", spacer, sumssParams.smoothing); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + } + else + return (ERROR); + } + /* set Allruns (sumssParams.askForMorePlots) ********************************************************/ + else if (!strcmp(parmName, "Askmore")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumssParams.askForMorePlots = YES; + else + sumssParams.askForMorePlots = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for askmore (valid arguments are 'yes' and 'no')\n", spacer); + return (ERROR); + } + if (sumssParams.askForMorePlots == YES) + MrBayesPrint ("%s Setting sumss to be interactiva by asking for more plots of burn-in or individual steps.\n", spacer); + else + MrBayesPrint ("%s Setting sumss not to be interactive. It will not ask to print more plots.\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Discardfrac (sumssParams.discardFraction) ************************************************************/ + else if (!strcmp(parmName, "Discardfrac")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%lf", &tempD); + if (tempD < 0.00) + { + MrBayesPrint ("%s Discard fraction too low (< 0.00)\n", spacer); + return (ERROR); + } + if (tempD > 1.00) + { + MrBayesPrint ("%s Discard fraction too high (> 1.00)\n", spacer); + return (ERROR); + } + sumssParams.discardFraction = tempD; + MrBayesPrint ("%s Setting discard fraction to %.2f\n", spacer, sumssParams.discardFraction); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + else + return (ERROR); + } + + return (NO_ERROR); +} + + +/* ExamineSumpFile: Collect info on the parameter samples in the file */ +int ExamineSumpFile (char *fileName, SumpFileInfo *fileInfo, char ***headerNames, int *nHeaders) +{ + char *sumpTokenP, sumpToken[CMD_STRING_LENGTH], *s=NULL, *headerLine, *t; + int i, lineTerm, inSumpComment, lineNum, lastNonDigitLine, numParamLines, allDigitLine, + lastTokenWasDash, nNumbersOnThisLine, tokenType, burnin, nLines, firstNumCols; + MrBFlt tempD; + FILE *fp = NULL; + + /* open binary file */ + if ((fp = OpenBinaryFileR(fileName)) == NULL) + { + /* test for some simple errors */ + if (strlen(sumpParams.sumpFileName) > 2) + { + s = sumpParams.sumpFileName + (int) strlen(sumpParams.sumpFileName) - 2; + if (strcmp(s, ".p") == 0) + { + MrBayesPrint ("%s It appears that you need to remove '.p' from the 'Filename' parameter\n", spacer); + MrBayesPrint ("%s Also make sure that 'Nruns' is set correctly\n", spacer); + return ERROR; + } + } + MrBayesPrint ("%s Make sure that 'Nruns' is set correctly\n", spacer); + return ERROR; + } + + /* find out what type of line termination is used */ + lineTerm = LineTermType (fp); + if (lineTerm != LINETERM_MAC && lineTerm != LINETERM_DOS && lineTerm != LINETERM_UNIX) + { + MrBayesPrint ("%s Unknown line termination\n", spacer); + goto errorExit; + } + + /* find length of longest line */ + fileInfo->longestLineLength = LongestLine (fp); + fileInfo->longestLineLength += 10; /* better safe than sorry; if you fgets with raw longestLineLength, you run into problems */ + + /* allocate string long enough to hold a line */ + s = (char *)SafeMalloc(2 * ((size_t)(fileInfo->longestLineLength) +10) * sizeof(char)); + if (!s) + { + MrBayesPrint ("%s Problem allocating string for reading sump file\n", spacer); + goto errorExit; + } + headerLine = s + fileInfo->longestLineLength + 10; + + /* close binary file */ + SafeFclose (&fp); + + /* open text file */ + if ((fp = OpenTextFileR(fileName)) == NULL) + goto errorExit; + + /* Check file for appropriate blocks. We want to find the last block + in the file and start from there. */ + inSumpComment = NO; + lineNum = lastNonDigitLine = numParamLines = 0; + while (fgets (s, fileInfo->longestLineLength + 2, fp) != NULL) + { + sumpTokenP = &s[0]; + allDigitLine = YES; + lastTokenWasDash = NO; + nNumbersOnThisLine = 0; + do { + if (GetToken (sumpToken, &tokenType, &sumpTokenP)) + goto errorExit; + /* printf ("%s (%d)\n", sumpToken, tokenType); */ + if (IsSame("[", sumpToken) == SAME) + inSumpComment = YES; + if (IsSame("]", sumpToken) == SAME) + inSumpComment = NO; + + if (inSumpComment == NO) + { + if (tokenType == NUMBER) + { + sscanf (sumpToken, "%lf", &tempD); + if (lastTokenWasDash == YES) + tempD *= -1.0; + nNumbersOnThisLine++; + lastTokenWasDash = NO; + } + else if (tokenType == DASH) + { + lastTokenWasDash = YES; + } + else if (tokenType != UNKNOWN_TOKEN_TYPE) + { + allDigitLine = NO; + lastTokenWasDash = NO; + } + } + } while (*sumpToken); + lineNum++; + + if (allDigitLine == NO) + { + lastNonDigitLine = lineNum; + numParamLines = 0; + } + else + { + if (nNumbersOnThisLine > 0) + numParamLines++; + } + } + + /* Now, check some aspects of the .p file. */ + if (inSumpComment == YES) + { + MrBayesPrint ("%s Unterminated comment in file \"%s\"\n", spacer, fileName); + goto errorExit; + } + if (numParamLines <= 0) + { + MrBayesPrint ("%s No parameters were found in file or there characters not representing a number in last string of the file.\"%s\"\n", spacer, fileName); + goto errorExit; + } + + /* calculate burnin */ + if (chainParams.isSS == YES) + { + burnin = 0; + } + else + { + if (chainParams.relativeBurnin == YES) + burnin = (int) (chainParams.burninFraction * numParamLines); + else + burnin = chainParams.chainBurnIn; + } + + /* check against burnin */ + if (burnin > numParamLines) + { + MrBayesPrint ("%s No parameters can be sampled from file %s as the burnin (%d) exceeds the number of lines in last block (%d)\n", + spacer, fileName, burnin, numParamLines); + MrBayesPrint ("%s Try setting burnin to a number less than %d\n", spacer, numParamLines); + goto errorExit; + } + + /* Set some info in fileInfo */ + fileInfo->firstParamLine = lastNonDigitLine + burnin; + fileInfo->headerLine = lastNonDigitLine; + + /* Calculate and check the number of columns and rows for the file; get header line at the same time */ + (void)fseek(fp, 0L, 0); + for (lineNum=0; lineNumlongestLineLength + 2, fp)==NULL) + goto errorExit; + strcpy(headerLine, s); + for (; lineNum < lastNonDigitLine+burnin; lineNum++) + if (fgets (s, fileInfo->longestLineLength + 2, fp)==NULL) + goto errorExit; + + inSumpComment = NO; + nLines = 0; + firstNumCols = 0; + while (fgets (s, fileInfo->longestLineLength + 2, fp) != NULL) + { + sumpTokenP = &s[0]; + allDigitLine = YES; + lastTokenWasDash = NO; + nNumbersOnThisLine = 0; + do { + if (GetToken (sumpToken, &tokenType, &sumpTokenP)) + goto errorExit; + if (IsSame("[", sumpToken) == SAME) + inSumpComment = YES; + if (IsSame("]", sumpToken) == SAME) + inSumpComment = NO; + if (inSumpComment == NO) + { + if (tokenType == NUMBER) + { + nNumbersOnThisLine++; + lastTokenWasDash = NO; + } + else if (tokenType == DASH) + { + lastTokenWasDash = YES; + } + else if (tokenType != UNKNOWN_TOKEN_TYPE) + { + allDigitLine = NO; + lastTokenWasDash = NO; + } + } + } while (*sumpToken); + lineNum++; + if (allDigitLine == NO) + { + MrBayesPrint ("%s Found a line with non-digit characters (line %d) in file %s\n", spacer, lineNum, fileName); + goto errorExit; + } + else + { + if (nNumbersOnThisLine > 0) + { + nLines++; + if (nLines == 1) + firstNumCols = nNumbersOnThisLine; + else + { + if (nNumbersOnThisLine != firstNumCols) + { + MrBayesPrint ("%s Number of columns is not even (%d in first line and %d in line %d of file %s)\n", spacer, firstNumCols, nNumbersOnThisLine, lineNum, fileName); + goto errorExit; + } + } + } + } + } + fileInfo->numRows = nLines; + fileInfo->numColumns = firstNumCols; + + /* set or check headers */ + if ((*headerNames) == NULL) + { + GetHeaders (headerNames, headerLine, nHeaders); + if (*nHeaders != fileInfo->numColumns) + { + MrBayesPrint ("%s Expected %d headers but found %d headers\n", spacer, fileInfo->numColumns, *nHeaders); + for (i=0; i<*nHeaders; i++) + SafeFree ((void **) &((*headerNames)[i])); + SafeFree ((void **) &(*headerNames)); + *nHeaders=0; + goto errorExit; + } + } + else + { + if (*nHeaders != fileInfo->numColumns) + { + MrBayesPrint ("%s Expected %d columns but found %d columns\n", spacer, *nHeaders, fileInfo->numColumns); + goto errorExit; + } + for (i=0, t=strtok(headerLine,"\t\n\r"); t!=NULL; t=strtok(NULL,"\t\n\r"), i++) + { + if (i == *nHeaders) + { + MrBayesPrint ("%s Expected %d headers but found more headers.\n", + spacer, fileInfo->numColumns); + goto errorExit; + } + if (strcmp(t,(*headerNames)[i])!=0) + { + MrBayesPrint ("%s Expected header '%s' for column %d but the header for this column was '%s' in file '%s'\n", spacer, (*headerNames)[i], i+1, t, fileName); + MrBayesPrint ("%s It could be that some parameter values are not numbers and the whole string containing \n",spacer); + MrBayesPrint ("%s this wrongly formated parameter is treated as a header.\n",spacer); + goto errorExit; + } + } + if (t != NULL) + { + MrBayesPrint ("%s Expected %d headers but found more headers.\n",spacer, fileInfo->numColumns); + goto errorExit; + } + if (i < *nHeaders) + { + MrBayesPrint ("%s Expected header '%s' for column %d but the header for this column was '%s' in file '%s'\n", + spacer, (*headerNames)[i], i+1, t, fileName); + goto errorExit; + } + } + + free (s); + fclose(fp); + return (NO_ERROR); + +errorExit: + + free(s); + fclose(fp); + return (ERROR); +} + + +/*************************************************** +| +| FindHeader: Find token in list +| +----------------------------------------------------*/ +int FindHeader (char *token, char **headerNames, int nHeaders, int *index) +{ + int i, match=0, nMatches; + + *index = -1; + nMatches = 0; + for (i=0; i longestHeader) + longestHeader = len; + } + + /* open output file */ + strncpy (temp, fileName, 90); + strcat (temp, ".pstat"); + fp = OpenNewMBPrintFile (temp); + if (!fp) + return ERROR; + + /* print unique identifier to the output file */ + if (strlen(stamp) > 1) + MrBayesPrintf (fp, "[ID: %s]\n", stamp); + + /* allocate and set nSamples */ + sampleCounts = (int *) SafeCalloc (nRuns, sizeof(int)); + if (!sampleCounts) + { + fclose(fp); + return ERROR; + } + for (i=0; i 1) + MrBayesPrint (" PSRF+ "); + MrBayesPrint ("\n"); + + MrBayesPrint ("%s ", spacer); + for (j=0; j 1) + MrBayesPrint ("----------"); + MrBayesPrint ("\n"); + if (nRuns > 1) + MrBayesPrintf (fp, "Parameter\tMean\tVariance\tLower\tUpper\tMedian\tPSRF\n"); + else + MrBayesPrintf (fp, "Parameter\tMean\tVariance\tLower\tUpper\tMedian\n"); + + /* print table values */ + for (i=0; i 1) + { + if (theStats.PSRF < 0.0) + { + MrBayesPrint (" NA "); + MrBayesPrintf (fp, "NA"); + } + else + { + MrBayesPrint (" %7.3lf", theStats.PSRF); + MrBayesPrintf (fp, "\t%s", MbPrintNum(theStats.PSRF)); + } + } + MrBayesPrint ("\n"); + MrBayesPrintf (fp, "\n"); + } + MrBayesPrint ("%s ", spacer); + for (j=0; j 1) + MrBayesPrint ("----------"); + MrBayesPrint ("\n"); + if (nRuns > 1) + { + MrBayesPrint ("%s + Convergence diagnostic (PSRF = Potential Scale Reduction Factor; Gelman\n", spacer); + MrBayesPrint ("%s and Rubin, 1992) should approach 1.0 as runs converge.\n", spacer); + } + + fclose (fp); + free (sampleCounts); + + return (NO_ERROR); +} + + +/* PrintModelStats: Print model stats to screen and to .mstat file */ +int PrintModelStats (char *fileName, char **headerNames, int nHeaders, ParameterSample *parameterSamples, int nRuns, int nSamples) +{ + int i, j, j1, j2, k, longestName, nElements, *modelCounts=NULL; + MrBFlt f, *prob=NULL, *sum=NULL, *ssq=NULL, *min=NULL, *max=NULL, *stddev=NULL; + char temp[100]; + FILE *fp; + ModelProb *elem = NULL; + + /* nHeaders - is a convenient synonym for number of column headers */ + + /* check if we have any model indicator variables and also check for longest header */ + k = 0; + longestName = 0; + for (i=0; i longestName) + longestName = j2; + } + break; + } + } + } + + /* return if nothing to do */ + if (k==0) + return NO_ERROR; + + /* open output file */ + MrBayesPrint ("%s Model probabilities above %1.3lf\n", spacer, sumpParams.minProb); + MrBayesPrint ("%s Estimates saved to file \"%s.mstat\".\n", spacer, sumpParams.sumpOutfile); + strncpy (temp,fileName,90); + strcat (temp, ".mstat"); + fp = OpenNewMBPrintFile(temp); + if (!fp) + return ERROR; + MrBayesPrint ("\n"); + + /* print unique identifier to the output file */ + if (strlen(stamp) > 1) + MrBayesPrintf (fp, "[ID: %s]\n", stamp); + + /* print header */ + MrBayesPrintf (fp, "\n\n"); + if (nRuns == 1) + { + MrBayesPrint ("%s %*c Posterior\n", spacer, longestName-5, ' '); + MrBayesPrint ("%s Model%*c Probability\n", spacer, longestName-5, ' '); + MrBayesPrint ("%s -----", spacer); + for (i=0; i max[j2]) + max[j2] = f; + } + } + + for (j1=0; j1 1) */ + { + sprintf (temp, "%s[%s]", headerNames[i], modelElementNames[j][elem[j1].index]); + MrBayesPrint ("%s %-*s %1.3lf %1.3lf %1.3lf %1.3lf\n", + spacer, longestName, temp, prob[elem[j1].index], stddev[elem[j1].index], min[elem[j1].index], max[elem[j1].index]); + MrBayesPrintf (fp, "%s", temp); + MrBayesPrintf (fp, "\t%s", MbPrintNum(prob[elem[j1].index])); + MrBayesPrintf (fp, "\t%s", MbPrintNum(stddev[elem[j1].index])); + MrBayesPrintf (fp, "\t%s", MbPrintNum(min[elem[j1].index])); + MrBayesPrintf (fp, "\t%s", MbPrintNum(max[elem[j1].index])); + MrBayesPrintf (fp, "\n"); + } + } + free(elem); + elem = NULL; + free(modelCounts); + modelCounts = NULL; + free (prob); + prob = NULL; + } + + /* print footer */ + if (nRuns == 1) + { + MrBayesPrint ("%s -----", spacer); + for (i=0; i 9) + MrBayesPrint ("%s (1 = Run number 1; 2 = Run number 2 etc.; x = Run number 10 or above; * = Several runs)\n", spacer); + else if (nRuns > 2) + MrBayesPrint ("%s (1 = Run number 1; 2 = Run number 2 etc.; * = Several runs)\n", spacer); + else + MrBayesPrint ("%s (1 = Run number 1; 2 = Run number 2; * = Both runs)\n", spacer); + + /* print overlay x-y plot of log likelihood vs. generation for all runs */ + screenWidth = 60; /* don't change this without changing numY, meanY, and plotSymbol declared above */ + screenHeight = 15; + + /* find minX, minY, maxX, and maxY over all runs */ + minX = minY = 1000000000.0; + maxX = maxY = -1000000000.0; + for (n=0; n maxX) + maxX = x; + } + } + for (n=0; n= screenWidth) + k = screenWidth - 1; + if (k == j) + { + y += yVals[n][i]; + k2 ++; + } + else + { + y /= k2; + if (y < minY) + minY = y; + if (y > maxY) + maxY = y; + k2 = 1; + y = yVals[n][i]; + j++; + } + } + if (k2 > 0) + { + y /= k2; + if (y < minY) + minY = y; + if (y > maxY) + maxY = y; + } + } + + /* initialize the plot symbols */ + for (i=0; i= screenWidth) + k = screenWidth - 1; + if (k <= 0) + k = 0; + meanY[k] += y; + numY[k]++; + } + + /* transfer these points to the overlay */ + for (i=0; i 0) + { + k = (int) ((((meanY[i] / numY[i]) - minY)/ (maxY - minY)) * screenHeight); + if (k < 0) + k = 0; + else if (k >= screenHeight) + k = screenHeight - 1; + if (plotSymbol[k][i] == ' ') + { + if (n <= 8) + plotSymbol[k][i] = '1' + n; + else + plotSymbol[k][i] = 'x'; + } + else + plotSymbol[k][i] = '*'; + } + } + } /* next run */ + + /* now print the overlay plot */ + MrBayesPrint ("\n%s +", spacer); + for (i=0; i=0; i--) + { + MrBayesPrint ("%s |", spacer); + for (j=0; j0) + width=(int)(log10(minX)); + else if ((int)minX==0) + width=1; + else + width=(int)(log10(-minX))+1; + for (i=0; i longestHeader) + longestHeader = len; + } + + /* open output file */ + strncpy (tempf, fileName, 90); + strcat (tempf, ".pstat"); + fp = OpenNewMBPrintFile (tempf); + if (!fp) + return ERROR; + + /* print unique identifier to the output file */ + if (strlen(stamp) > 1) + MrBayesPrintf (fp, "[ID: %s]\n", stamp); + + /* allocate and set nSamples */ + sampleCounts = (int *) SafeCalloc (nRuns, sizeof(int)); + if (!sampleCounts) + { + fclose(fp); + return ERROR; + } + for (i=0; i 1) + MrBayesPrint ("%s Parameter%*c Mean Variance Lower Upper Median min ESS* avg ESS PSRF+ ", spacer, longestHeader-9, ' '); + else + MrBayesPrint ("%s Parameter%*c Mean Variance Lower Upper Median ESS*", spacer, longestHeader-9, ' '); + MrBayesPrint ("\n"); + + MrBayesPrint ("%s ", spacer); + for (j=0; j 1) + MrBayesPrint ("-------------------"); + MrBayesPrint ("\n"); + if (nRuns > 1) + MrBayesPrintf (fp, "Parameter\tMean\tVariance\tLower\tUpper\tMedian\tminESS\tavgESS\tPSRF\n"); + else + MrBayesPrintf (fp, "Parameter\tMean\tVariance\tLower\tUpper\tMedian\tESS\n"); + + /* print table values */ + for (i=0; i 1) + { + if (theStats.minESS == theStats.minESS) + { + MrBayesPrint (" %8.2lf", theStats.avrESS); + MrBayesPrintf (fp, "\t%s", MbPrintNum(theStats.avrESS)); + } + else + { + MrBayesPrint (" NA "); + MrBayesPrintf (fp, "NA"); + } + if (theStats.PSRF < 0.0) + { + MrBayesPrint (" NA "); + MrBayesPrintf (fp, "NA"); + } + else + { + MrBayesPrint (" %7.3lf", theStats.PSRF); + MrBayesPrintf (fp, "\t%s", MbPrintNum(theStats.PSRF)); + } + } + MrBayesPrint ("\n"); + MrBayesPrintf (fp, "\n"); + } + MrBayesPrint ("%s ", spacer); + for (j=0; j 1) + MrBayesPrint ("-------------------"); + MrBayesPrint ("\n"); + if (nRuns > 1) + { + MrBayesPrint ("%s * Convergence diagnostic (ESS = Estimated Sample Size); min and avg values\n", spacer); + MrBayesPrint ("%s correspond to minimal and average ESS among runs. \n", spacer); + MrBayesPrint ("%s ESS value below 100 may indicate that the parameter is undersampled. \n", spacer); + MrBayesPrint ("%s + Convergence diagnostic (PSRF = Potential Scale Reduction Factor; Gelman\n", spacer); + MrBayesPrint ("%s and Rubin, 1992) should approach 1.0 as runs converge.\n", spacer); + } + else + { + MrBayesPrint ("%s * Convergence diagnostic (ESS = Estimated Sample Size); ESS value \n", spacer); + MrBayesPrint ("%s below 100 may indicate that the parameter is undersampled. \n", spacer); + } + MrBayesPrint ("\n\n"); + + fclose (fp); + free (sampleCounts); + SafeFree ((void **)&temp); + + return (NO_ERROR); +} + + +/* PrintPlot: Print x-y plot of log likelihood vs. generation */ +int PrintPlot (MrBFlt *xVals, MrBFlt *yVals, int numVals) +{ + int i, j, k, numY[60], screenWidth, screenHeight; + MrBFlt x, y, minX, maxX, minY, maxY, meanY[60], diff; + + /* print x-y plot of log likelihood vs. generation */ + screenWidth = 60; /* don't change this without changing numY and meanY, declared above */ + screenHeight = 15; + + /* find minX and maxX */ + minX = xVals[0]; + maxX = xVals[0]; + for (i=0; i maxX) + maxX = x; + } + + /* collect Y data */ + for (i=0; i= screenWidth) + k = screenWidth - 1; + if (k < 0) + k = 0; + meanY[k] += y; + numY[k]++; + } + + /* find minY and maxY */ + minY = maxY = meanY[0] / numY[0]; + for (i=0; i maxY) + maxY = meanY[i]; + } + + /* find difference */ + diff = maxY - minY; + + /* print plot */ + MrBayesPrint ("\n +"); + for (i=0; i=0; j--) + { + MrBayesPrint (" |"); + for (i=0; i 0) + { + if ((meanY[i] > ((diff/screenHeight)*j)+minY && meanY[i] <= ((diff/screenHeight)*(j+1))+minY) || + (j == 0 && meanY[i] <= minY)) + MrBayesPrint ("*"); + else + MrBayesPrint (" "); + } + else + { + MrBayesPrint (" "); + } + } + MrBayesPrint ("|\n"); + } + MrBayesPrint (" +"); + for (i=0; i 1) + { + MrBayesPrint ("%s Below are rough plots of the generation (x-axis) versus the log \n", spacer); + MrBayesPrint ("%s probability of observing the data (y-axis). You can use these \n", spacer); + MrBayesPrint ("%s graphs to determine what the burn in for your analysis should be. \n", spacer); + MrBayesPrint ("%s When the log probability starts to plateau you may be at station- \n", spacer); + MrBayesPrint ("%s arity. Sample trees and parameters after the log probability \n", spacer); + MrBayesPrint ("%s plateaus. Of course, this is not a guarantee that you are at sta- \n", spacer); + MrBayesPrint ("%s tionarity. Also examine the convergence diagnostics provided by \n", spacer); + MrBayesPrint ("%s the 'sump' and 'sumt' commands for all the parameters in your \n", spacer); + MrBayesPrint ("%s model. Remember that the burn in is the number of samples to dis- \n", spacer); + MrBayesPrint ("%s card. There are a total of ngen / samplefreq samples taken during \n", spacer); + MrBayesPrint ("%s a MCMC analysis. \n", spacer); + } + else + { + MrBayesPrint ("%s Below is a rough plot of the generation (x-axis) versus the log \n", spacer); + MrBayesPrint ("%s probability of observing the data (y-axis). You can use this \n", spacer); + MrBayesPrint ("%s graph to determine what the burn in for your analysis should be. \n", spacer); + MrBayesPrint ("%s When the log probability starts to plateau you may be at station- \n", spacer); + MrBayesPrint ("%s arity. Sample trees and parameters after the log probability \n", spacer); + MrBayesPrint ("%s plateaus. Of course, this is not a guarantee that you are at sta- \n", spacer); + MrBayesPrint ("%s analysis should be. When the log probability starts to plateau \n", spacer); + MrBayesPrint ("%s tionarity. When possible, run multiple analyses starting from dif-\n", spacer); + MrBayesPrint ("%s ferent random trees; if the inferences you make for independent \n", spacer); + MrBayesPrint ("%s analyses are the same, this is reasonable evidence that the chains\n", spacer); + MrBayesPrint ("%s have converged. You can use MrBayes to run several independent \n", spacer); + MrBayesPrint ("%s analyses simultaneously. During such a run, MrBayes will monitor \n", spacer); + MrBayesPrint ("%s the convergence of topologies. After the run has been completed, \n", spacer); + MrBayesPrint ("%s the 'sumt' and 'sump' functions will provide additional conver- \n", spacer); + MrBayesPrint ("%s gence diagnostics for all the parameters in your model. Remember \n", spacer); + MrBayesPrint ("%s that the burn in is the number of samples to discard. There are \n", spacer); + MrBayesPrint ("%s a total of ngen / samplefreq samples taken during a MCMC analysis.\n", spacer); + } +} + + +/* ReadParamSamples: Read parameter samples from .p file */ +int ReadParamSamples (char *fileName, SumpFileInfo *fileInfo, ParameterSample *parameterSamples, int runNo) +{ + char sumpToken[CMD_STRING_LENGTH], *s=NULL, *p; + int inSumpComment, lineNum, numLinesRead, numLinesToRead, column, lastTokenWasDash, + tokenType; + MrBFlt tempD; + FILE *fp; + + /* open file */ + if ((fp = OpenTextFileR (fileName)) == NULL) + return ERROR; + + /* allocate space for reading lines */ + s = (char *) SafeCalloc (fileInfo->longestLineLength + 10, sizeof(char)); + + /* fast forward to beginning of last unburned parameter line. */ + for (lineNum=0; lineNumfirstParamLine; lineNum++) + if (fgets (s, fileInfo->longestLineLength + 5, fp) == 0) + goto errorExit; + + /* parse file, line-by-line. We are only parsing lines that have digits that should be read. */ + inSumpComment = NO; + numLinesToRead = fileInfo->numRows; + numLinesRead = 0; + while (fgets (s, fileInfo->longestLineLength + 1, fp) != NULL) + { + lastTokenWasDash = NO; + column = 0; + p = s; + do { + if (GetToken (sumpToken, &tokenType, &p)) + goto errorExit; + if (IsSame("[", sumpToken) == SAME) + inSumpComment = YES; + if (IsSame("]", sumpToken) == SAME) + inSumpComment = NO; + if (inSumpComment == NO) + { + if (tokenType == NUMBER) + { + /* read the number */ + if (column >= fileInfo->numColumns) + { + MrBayesPrint ("%s Too many values read on line %d of file %s\n", spacer, lineNum, fileName); + goto errorExit; + } + sscanf (sumpToken, "%lf", &tempD); + if (lastTokenWasDash == YES) + tempD *= -1.0; + parameterSamples[column].values[runNo][numLinesRead] = tempD; + column++; + lastTokenWasDash = NO; + } + else if (tokenType == DASH) + { + lastTokenWasDash = YES; + } + else if (tokenType != UNKNOWN_TOKEN_TYPE) + { + /* we have a problem */ + MrBayesPrint ("%s Line %d of file %s has non-digit characters\n", spacer, lineNum, fileName); + goto errorExit; + } + } + } while (*sumpToken); + + lineNum++; + if (column == fileInfo->numColumns) + numLinesRead++; + else if (column != 0) + { + MrBayesPrint ("%s Too few values on line %d of file %s\n", spacer, lineNum, fileName); + goto errorExit; + } + } + + + /* Check how many parameter line was read in. */ + if (numLinesRead != numLinesToRead) + { + MrBayesPrint ("%s Unable to read all lines that should contain parameter samples\n", spacer); + goto errorExit; + } + + fclose (fp); + free (s); + + return (NO_ERROR); + +errorExit: + + fclose (fp); + free (s); + + return ERROR; +} + + +/* the following are moved from sumt.c to combine with sump.c */ +PartCtr *AddSumtPartition (PartCtr *r, PolyTree *t, PolyNode *p, int runId) +{ + int i, n, comp, nLongsNeeded = sumtParams.BitsLongsNeeded; + + if (r == NULL) + { + /* new partition */ + /* create a new node */ + r = AllocPartCtr (); + if (r == NULL) + return NULL; + numUniqueSplitsFound++; + for (i=0; ipartition[i] = p->partition[i]; + for (i=0; icount[i] = 0; + r->left = r->right = NULL; + /* record values */ + if (sumtParams.brlensDef == YES) + r->length[runId][0]= p->length; + if (sumtParams.isClock == YES) + r->height[runId][0]= p->depth; + if (sumtParams.isCalibrated == YES) + r->age[runId][0]= p->age; + for (i=0; inEvents[i][runId][0] = t->nEvents[i][p->index]; + for (i=0; ibLen [i][runId][0] = t->effectiveBrLen[i][p->index]; + r->bRate[i][runId][0] = t->effectiveBrLen[i][p->index] / p->length; + } + if (t->popSizeSet == YES) + r->popSize[runId][0] = t->popSize[p->index]; + r->count[runId] ++; + r->totCount++; + } + else + { + for (i=0; ipartition[i] != p->partition[i]) + break; + } + + if (i == nLongsNeeded) + comp = 0; + else if (r->partition[i] < p->partition[i]) + comp = -1; + else + comp = 1; + + if (comp == 0) /* repeated partition */ + { + n = r->count[runId]; + /* check if we need to allocate more space */ + if (n % ALLOC_LEN == 0) + { + /* allocate more space */ + if (sumtParams.brlensDef == YES) + r->length[runId] = (MrBFlt *) SafeRealloc ((void *)r->length[runId], ((size_t)n+ALLOC_LEN)*sizeof(MrBFlt)); + if (sumtParams.isClock == YES) + r->height[runId] = (MrBFlt *) SafeRealloc ((void *)r->height[runId], ((size_t)n+ALLOC_LEN)*sizeof(MrBFlt)); + if (sumtParams.isCalibrated == YES) + r->age[runId] = (MrBFlt *) SafeRealloc ((void *)r->age[runId], ((size_t)n+ALLOC_LEN)*sizeof(MrBFlt)); + if (sumtParams.nESets > 0) + { + for (i=0; inEvents[i][runId] = (int *) SafeRealloc ((void *)r->nEvents[i][runId], ((size_t)n+ALLOC_LEN)*sizeof(int)); + } + if (sumtParams.nBSets > 0) + { + for (i=0; ibRate[i][runId] = (MrBFlt *) SafeRealloc ((void *)r->bRate[i][runId], ((size_t)n+ALLOC_LEN)*sizeof(MrBFlt)); + r->bLen [i][runId] = (MrBFlt *) SafeRealloc ((void *)r->bLen [i][runId], ((size_t)n+ALLOC_LEN)*sizeof(MrBFlt)); + } + } + if (sumtParams.popSizeSet == YES) + r->popSize[runId] = (MrBFlt *) SafeRealloc ((void *)r->popSize[runId], ((size_t)n+ALLOC_LEN)*sizeof(MrBFlt)); + } + /* record values */ + r->count[runId]++; + r->totCount++; + if (sumtParams.brlensDef == YES) + r->length[runId][n]= p->length; + if (sumtParams.isClock == YES) + r->height[runId][n]= p->depth; + if (sumtParams.isCalibrated == YES) + r->age[runId][n]= p->age; + if (sumtParams.nESets > 0) + { + for (i=0; inEvents[i][runId][n] = t->nEvents[i][p->index]; + } + if (sumtParams.nBSets > 0) + { + for (i=0; ibLen [i][runId][n] = t->effectiveBrLen[i][p->index]; + r->bRate[i][runId][n] = t->effectiveBrLen[i][p->index] / p->length; + } + } + if (sumtParams.popSizeSet == YES) + r->popSize[runId][n] = t->popSize[p->index]; + } + else if (comp < 0) /* greater than -> into left subtree */ + { + if ((r->left = AddSumtPartition (r->left, t, p, runId)) == NULL) + { + FreePartCtr (r); + return NULL; + } + } + else + { + /* smaller than -> into right subtree */ + if ((r->right = AddSumtPartition (r->right, t, p, runId)) == NULL) + { + FreePartCtr (r); + return NULL; + } + } + } + + return r; +} + + +TreeCtr *AddSumtTree (TreeCtr *r, int *order) +{ + int i, comp; + + if (r == NULL) + { + /* new tree */ + /* create a new node */ + r = AllocTreeCtr(); + if (!r) + return NULL; + numUniqueTreesFound++; + for (i=0; iorder[i] = order[i]; + r->count = 1; + } + else + { + for (i=0; iorder[i] != order[i]) + break; + + if (i==sumtParams.orderLen) + comp = 0; + else if (order[i] < r->order[i]) + comp = 1; + else + comp = -1; + + if (comp == 0) /* repeated partition */ + r->count++; + else if (comp < 0) /* greater than -> into left subtree */ + { + if ((r->left = AddSumtTree (r->left, order)) == NULL) + { + FreeTreeCtr (r); + return NULL; + } + } + else + { + /* smaller than -> into right subtree */ + if ((r->right = AddSumtTree (r->right, order)) == NULL) + { + FreeTreeCtr (r); + return NULL; + } + } + } + + return r; +} + + +/* AllocPartCtr: Allocate space for one partition counter node using info in sumtParams */ +PartCtr *AllocPartCtr () +{ + int i, j; + PartCtr *r; + + /* allocate basic stuff */ + r = (PartCtr *) SafeCalloc (1, sizeof(PartCtr)); + r->left = r->right = NULL; + r->partition = (BitsLong *) SafeCalloc ((size_t)(sumtParams.BitsLongsNeeded), sizeof(BitsLong)); + r->count = (int *) SafeCalloc ((size_t)(sumtParams.numRuns), sizeof (int)); + if (sumtParams.brlensDef) + { + r->length = (MrBFlt **) SafeCalloc ((size_t)(sumtParams.numRuns), sizeof (MrBFlt *)); + for (i=0; ilength[i] = (MrBFlt *) SafeCalloc ((size_t)ALLOC_LEN, sizeof(MrBFlt)); + } + if (sumtParams.isClock) + { + r->height = (MrBFlt **) SafeCalloc ((size_t)(sumtParams.numRuns), sizeof (MrBFlt *)); + for (i=0; iheight[i] = (MrBFlt *) SafeCalloc ((size_t)ALLOC_LEN, sizeof(MrBFlt)); + r->age = (MrBFlt **) SafeCalloc ((size_t)(sumtParams.numRuns), sizeof (MrBFlt *)); + for (i=0; iage[i] = (MrBFlt *) SafeCalloc ((size_t)ALLOC_LEN, sizeof(MrBFlt)); + } + + /* allocate relaxed clock parameters: eRate, nEvents, bRate */ + if (sumtParams.nESets > 0) + r->nEvents = (int ***) SafeCalloc ((size_t)(sumtParams.nESets), sizeof(int **)); + for (i=0; inEvents[i] = (int **) SafeCalloc ((size_t)(sumtParams.numRuns), sizeof(int *)); + for (j=0; jnEvents[i][j] = (int *) SafeCalloc ((size_t) ALLOC_LEN, sizeof(int)); + } + if (sumtParams.nBSets > 0) + { + r->bLen = (MrBFlt ***) SafeCalloc ((size_t)(sumtParams.nBSets), sizeof(MrBFlt **)); + r->bRate = (MrBFlt ***) SafeCalloc ((size_t)(sumtParams.nBSets), sizeof(MrBFlt **)); + } + for (i=0; ibLen[i] = (MrBFlt **) SafeCalloc ((size_t)(sumtParams.numRuns), sizeof(MrBFlt *)); + r->bRate[i] = (MrBFlt **) SafeCalloc ((size_t)(sumtParams.numRuns), sizeof(MrBFlt *)); + for (j=0; jbLen[i][j] = (MrBFlt *) SafeCalloc ((size_t)ALLOC_LEN, sizeof(MrBFlt)); + r->bRate[i][j] = (MrBFlt *) SafeCalloc ((size_t)ALLOC_LEN, sizeof(MrBFlt)); + } + } + if (sumtParams.popSizeSet == YES) + { + r->popSize = (MrBFlt **) SafeCalloc ((size_t)(sumtParams.numRuns), sizeof (MrBFlt *)); + for (i=0; ipopSize[i] = (MrBFlt *) SafeCalloc ((size_t)ALLOC_LEN, sizeof(MrBFlt)); + } + + return r; +} + + +/* AllocTreeCtr: Allocate space for a tree counter node using info in sumtParams struct*/ +TreeCtr *AllocTreeCtr () +{ + TreeCtr *r; + + r = (TreeCtr *) SafeCalloc (1, sizeof(TreeCtr)); + + r->left = r->right = NULL; + + r->order = (int *) SafeCalloc ((size_t)(sumtParams.orderLen), sizeof(int)); + + return r; +} + + +void CalculateTreeToTreeDistance (Tree *tree1, Tree *tree2, MrBFlt *d1, MrBFlt *d2, MrBFlt *d3) +{ + int i, j, k; + MrBFlt treeLen1=0.0, treeLen2=0.0; + TreeNode *p, *q=NULL; + + (*d1) = (*d2) = (*d3) = 0.0; + + /* set distance-based measures to max value */ + if (sumtParams.brlensDef == YES) + { + treeLen1 = TreeLen(tree1); + treeLen2 = TreeLen(tree2); + (*d2) = treeLen1 + treeLen2; + (*d3) = 2.0; + } + + /* now we can get distances in a single pass */ + for (i=0; inNodes; i++) + { + p = tree1->allDownPass[i]; + for (j=0; jnNodes; j++) + { + q = tree2->allDownPass[j]; + for (k=0; kpartition[k] != q->partition[k]) + break; + if (k == sumtParams.BitsLongsNeeded) + break; + } + if (j < tree2->nNodes) + { + /* match */ + if (sumtParams.brlensDef == YES) + { + (*d2) -= (p->length + q->length - fabs(p->length - q->length)); + (*d3) -= (p->length/treeLen1 + q->length/treeLen2 - fabs(p->length/treeLen1 - q->length/treeLen2)); + } + } + else /* if (k < sumtParams.BitsLongsNeeded) */ + { + /* no match */ + (*d1) += 2.0; + } + } + +# if 0 + printf ("DISTANCES: %lf %lf %lf (%lf %lf)\n", *d1, *d2, *d3, tl1, tl2); + for (i=0; iisRooted = sumtParams.isRooted; + t->isClock = sumtParams.isClock; + t->isRelaxed = sumtParams.isRelaxed; + + /* initialize consensus tree nodes */ + for (i=0; inodes[i].left = NULL; + t->nodes[i].sib = NULL; + t->nodes[i].index = i; + t->nodes[i].partitionIndex = -1; /* partition ID */ + t->nodes[i].age = 0.0; /* temporally set to minimum value to allow any insertion in front of the terminal before actual + values of age and depth are available */ + strcpy(t->nodes[i].label, sumtParams.taxaNames[i]); + t->nodes[i].depth = 0.0; + } + for (; imemNodes; i++) + { + t->nodes[i].left = NULL; + t->nodes[i].sib = NULL; + t->nodes[i].index = i; + t->nodes[i].partitionIndex = -1; /* partition ID */ + strcpy (t->nodes[i].label, ""); + } + + /* create bush + ->x counts number of subtended terminals + make sure t->root->left is in outgroup */ + p = t->root = &t->nodes[sumtParams.numTaxa]; + p->anc = p->sib = NULL; + p->x = sumtParams.numTaxa; + p->age = MRBFLT_MAX; /* temporarily set to maximum value to allow any insertion in front of the root before actual values of age and depth are available */ + p->depth = MRBFLT_MAX; + j = localOutGroup; + q = &t->nodes[j]; + p->left = q; + q->anc = p; + q->x = 1; + for (i=0; isib = &t->nodes[i]; + q = q->sib; + q->anc = p; + q->x = 1; + } + } + q->sib = NULL; + + /* Resolve bush according to partitions. + Partitions may include incompatible ones. + Partitions must be sorted from most frequent to least frequent + for quit test to work when a 50% majority rule tree is requested + and in general for consensus tree to be correct. */ + t->nNodes = sumtParams.numTaxa + 1; + t->nIntNodes = 1; + if (sumtParams.isRooted == YES) + targetNode = 2 * sumtParams.numTaxa - 2; + else + targetNode = 2 * sumtParams.numTaxa - 3; + + numTerminalsEncountered = 0; + for (i=0; inNodes > targetNode && numTerminalsEncountered == sumtParams.numTaxa) + break; + freq = (MrBFlt)(part->totCount) / (MrBFlt)(sumtParams.numTreesSampled); + if (freq < 0.50 && !strcmp(sumtParams.sumtConType, "Halfcompat")) + break; + + /* get partition */ + partition = part->partition; + + /* count bits in this partition */ + for (j=nBits=0; jroot; + q->partitionIndex = i; + if (sumtParams.isClock == YES) + { + GetSummary(part->height, sumtParams.numRuns, part->count, &theStats, sumtParams.HPD); + q->depth = theStats.median; + for (p = q->left; p!=NULL; p = p->sib) + { + if (q->depth <= p->depth) + break; + } + assert (p==NULL); /* Root always has 100% freq and it should be older than any other node that has 100% freq. */ + } + if (sumtParams.isCalibrated == YES) + { + GetSummary(part->age, sumtParams.numRuns, part->count, &theStats, sumtParams.HPD); + q->age = theStats.median; + for (p = q->left; p!=NULL; p = p->sib) + { + if (q->age <= p->age) + break; + } + assert (p==NULL); /* Root always has 100% freq and it should be older than any other node that has 100% freq. */ + } + } + else if (nBits > 1 && !(nBits == sumtParams.numTaxa - 1 && sumtParams.isRooted == NO)) + { + /* this is an informative partition */ + /* find anc of partition */ + j = FirstTaxonInPartition (partition, sumtParams.BitsLongsNeeded); + for (p = &t->nodes[j]; p!=NULL; p = p->anc) + if (p->x > nBits) + break; + + /* do not include if incompatible with ancestor or any of descendants + do not check terminals or root because it is + redundant and partitions have not necessarily been set for those */ + isCompat = YES; + if (p->anc != NULL && IsPartNested(partition, p->partition, sumtParams.BitsLongsNeeded)==NO) + isCompat = NO; + else + { + for (q=p->left; q!=NULL; q=q->sib) + { + if (q->x > 1 && IsPartCompatible(q->partition, partition, sumtParams.BitsLongsNeeded)==NO) + break; + } + if (q!=NULL) + isCompat = NO; + } + + if (isCompat == NO) + continue; + + /* set new node */ + q = &t->nodes[t->nNodes]; + q->partitionIndex = i; + q->x = nBits; + q->partition = partition; + GetSummary(part->length, sumtParams.numRuns, part->count, &theStats, sumtParams.HPD); + q->support = freq; + q->length = theStats.median; + r=NULL; + if (sumtParams.isClock == YES) + { + GetSummary(part->height, sumtParams.numRuns, part->count, &theStats, sumtParams.HPD); + q->depth = theStats.median; + if (freq < 1.00) + { + for (r = p->left; r!=NULL; r = r->sib) + { + if (IsPartNested(r->partition, partition, sumtParams.BitsLongsNeeded) && r->depth >= q->depth) + break; /* child is older then the node we try to add. Not good.*/ + } + if (p->depth <= q->depth) + { /* New node older than the parent. Not good.*/ + r = p; /* Just to make r!=NULL*/ + } + } + } + if (sumtParams.isCalibrated == YES) + { + GetSummary(part->age, sumtParams.numRuns, part->count, &theStats, sumtParams.HPD); + q->age = theStats.median; + if (freq < 1.00) + { + for (r = p->left; r!=NULL; r = r->sib) + { + if (freq < 1.00 && IsPartNested(r->partition, partition, sumtParams.BitsLongsNeeded) && r->age >= q->age) + break; /* child is older then the node we try to add. Not good.*/ + } + if (p->age <= q->age) + { /* New node older than the parent. Not good.*/ + r = p; /* Just to make r!=NULL*/ + } + } + } + + if (r!=NULL && isFirstLoop) + { + /* cancel the addition of the new node*/ + isInterapted =1; + freqInterapted=freq; + break; /* Finish creating the polytree */ + } + t->nNodes++; + t->nIntNodes++; + + /* go through descendants of anc */ + ql = pl = NULL; + for (r=p->left; r!=NULL; r=r ->sib) + { + /* test if r is in the new partition or not */ + if ((r->x > 1 && IsPartNested(r->partition, partition, sumtParams.BitsLongsNeeded)) || (r->x == 1 && (partition[r->index / nBitsInALong] & (bitsLongOne << (r->index % nBitsInALong))) != 0)) + { + /* r is in the partition */ + if (ql == NULL) + q->left = r; + else + ql->sib = r; + ql = r; + r->anc = q; + } + else + { + /* r is not in the partition */ + if (pl == NULL) + p->left = r; + else + pl->sib = r; + pl = r; + } + } + /* terminate new sib-node chain */ + ql->sib = NULL; + /* new node is last in old sib-node chain */ + pl->sib = q; + q->sib = NULL; + q->anc = p; + } + else + /* singleton partition */ + { + if (nBits == sumtParams.numTaxa - 1) + j = localOutGroup; + else + j = FirstTaxonInPartition(partition, sumtParams.BitsLongsNeeded); /* nbits == 1 */ + q = &t->nodes[j]; + q->partitionIndex = i; + q->partition = partition; + numTerminalsEncountered++; + GetSummary(part->length, sumtParams.numRuns, part->count, &theStats, sumtParams.HPD); + q->length = theStats.median; + if (sumtParams.isClock == YES) + { + GetSummary(part->height, sumtParams.numRuns, part->count, &theStats, sumtParams.HPD); + q->depth = theStats.median; + if (q->anc->depth < q->depth) + { + /* We never should get here because terminals always have 100% freq and they are younger than any other node that has 100% freq. */ + /* We should be careful with the trees with 0-brl generated under the fossilized birth-death prior! (<= is changed to <) */ + assert (0); + } + } + if (sumtParams.isCalibrated == YES) + { + GetSummary(part->age, sumtParams.numRuns, part->count, &theStats, sumtParams.HPD); + q->age = theStats.median; + if (q->anc->age < q->age) + { + /* We never should get here because terminals always have 100% freq and they are younger than any other node that has 100% freq. */ + /* We should be careful with the trees with 0-brl generated under the fossilized birth-death prior! (<= is changed to <) */ + assert (0); + } + } + } + } + + if (isFirstLoop) + { + t2 = t; + if (isInterapted) + { + isFirstLoop = 0; + goto treeConstruction; + } + } + + /* get downpass arrays */ + GetPolyDownPass(t); + + /* order tips */ + if (sumtParams.orderTaxa == YES) + OrderTips (t); + + if (t!=t2) + { + /* get downpass arrays */ + GetPolyDownPass(t2); + + /* order tips */ + if (sumtParams.orderTaxa == YES) + OrderTips (t2); + } + + /* draw tree to stdout and fp */ + MrBayesPrint ("\n%s Clade credibility values:\n\n", spacer); + ShowConTree (stdout, t, 80, YES); + if (logToFile == YES) + ShowConTree (logFileFp, t, 80, YES); + if (sumtParams.brlensDef == YES) + { + MrBayesPrint ("\n"); + if (sumtParams.isClock == YES) + MrBayesPrint ("%s Phylogram (based on median node depths):\n", spacer); + else + MrBayesPrint ("%s Phylogram (based on average branch lengths):\n", spacer); + if (isInterapted) + { + MrBayesPrint ("%s Warning. Phylogram containing all nodes with credibility values exceeding\n",spacer); + MrBayesPrint ("%s the level set by Contype could not be constructed.\n",spacer); + MrBayesPrint ("%s Only nodes with credibility values exceeding %.2f%% (percentage of trees\n", spacer, freqInterapted*100); + MrBayesPrint ("%s where the node is present) were included in the phylogram.\n", spacer); + } + MrBayesPrint ("\n"); + ShowConPhylogram (stdout, t2, 80); + if (logToFile == YES) + ShowConPhylogram (logFileFp, t2, 80); + } + + /* print taxa block */ + MrBayesPrintf (fpCon, "begin taxa;\n"); + MrBayesPrintf (fpCon, "\tdimensions ntax=%d;\n", sumtParams.numTaxa); + MrBayesPrintf (fpCon, "\ttaxlabels\n", sumtParams.numTaxa); + for (i=0; inNodes; j++) + if (t2->nodes[j].index == i) + break; + MrBayesPrintf (fpCon, "\t\t%s\n", t2->nodes[j].label); + } + MrBayesPrintf (fpCon, "\t\t;\nend;\n"); + + MrBayesPrintf (fpCon, "begin trees;\n"); + MrBayesPrintf (fpCon, "\ttranslate\n"); + for (i=0; inNodes; j++) + if (t2->nodes[j].index == i) + break; + if (i == sumtParams.numTaxa-1) + MrBayesPrintf (fpCon, "\t\t%d\t%s\n", t2->nodes[i].index+1, t2->nodes[i].label); + else + MrBayesPrintf (fpCon, "\t\t%d\t%s,\n", t2->nodes[i].index+1, t2->nodes[i].label); + } + MrBayesPrintf (fpCon, "\t\t;\n"); + if (sumtParams.consensusFormat == SIMPLE) + PrintConTree(fpCon, t2); + else if (sumtParams.consensusFormat == FIGTREE) + PrintFigTreeConTree(fpCon, t2, treeParts); + MrBayesPrintf (fpCon, "end;\n"); + + if (t!=t2) + { + FreePolyTree (t2); + } + /* free memory */ + FreePolyTree (t); + + return (NO_ERROR); + MrBayesPrint ("%d", numTreeParts); /* just because I am tired of seeing the unused parameter error msg */ +} + + +MrBFlt CppEvolRate (PolyTree *t, PolyNode *p, int eSet) +{ + int i, nEvents; + MrBFlt ancRate, branchRate, *rate, *pos; + PolyNode *q; + + nEvents = t->nEvents[eSet][p->index]; + pos = t->position[eSet][p->index]; + rate = t->rateMult[eSet][p->index]; + + /* note that event positions are from top of branch (more recent, descendant tip) */ + ancRate = 1.0; +// if (t->eType[eSet] == CPPm) +// { + for (q=p; q->anc != NULL; q=q->anc) + { + for (i=0; inEvents[eSet][p->index]; i++) + ancRate *= t->rateMult[eSet][p->index][i]; + } + if (nEvents > 0) + { + branchRate = rate[0] * pos[0]; + for (i=1; ieType[eSet] == CPPi) + { + for (q=p; q->anc != NULL; q=q->anc) + { + if (t->nEvents[eSet][p->index]>0) + { + ancRate = t->rateMult[eSet][p->index][0]; + break; + } + } + if (nEvents > 0) + { + branchRate = ancRate * (1.0 - pos[nEvents-1]); + for (i=nEvents-2; i>=0; i--) + { + branchRate += (rate[i+1] * (pos[i+1] - pos[i])); + } + branchRate += (rate[0] * pos[0]); + } + else + branchRate = ancRate; + } +*/ + + return branchRate; +} + + +int DoCompareTree (void) +{ + int i, j, k, n, longestLineLength, brlensDef[2], numTreesInLastBlock[2], + lastTreeBlockBegin[2], lastTreeBlockEnd[2], xaxis, yaxis, starHolder[80], + minNumTrees, screenWidth, screenHeigth, numY[60], nSamples; + RandLong temporarySeed; + BitsLong *mask; + PartCtr *x; + MrBFlt xProb, yProb, xInc, yInc, xUpper, xLower, yUpper, yLower, *dT1=NULL, *dT2=NULL, *dT3=NULL, d1, d2, d3, + meanY[60], xVal, yVal, minX, minY, maxX, maxY, sums[3]; + char *s=NULL, prCh, treeName[2][100]; + FILE *fp; + time_t curTime; + PartCtr **treeParts=NULL; + Tree *tree1=NULL, *tree2=NULL; + SumtFileInfo sumtFileInfo; + +# if defined (MPI_ENABLED) + if (proc_id == 0) + { +# endif + + /* Make sure we read trees using DoSumtTree() code instead of with the user tree code */ + inComparetreeCommand = YES; + + /* set file pointer to NULL */ + fp = NULL; + + strcpy(treeName[0],"tree"); //in case if parameter is not specified in a .t file + strcpy(treeName[1],"tree"); + + /* Check that a data set has been read in. We check taxon names against + those read in. */ + if (isTaxsetDef == NO) + { + MrBayesPrint ("%s A matrix or set of taxon labels must be specified before comparetree can be used\n", spacer); + goto errorExit; + } + + /* open output files for summary information (two files); check if we want to overwrite previous results */ + if (OpenComptFiles () == ERROR) + goto errorExit; + + MrBayesPrint ("%s Examining files ...\n", spacer); + + /* Examine first file */ + if (ExamineSumtFile(comptreeParams.comptFileName1, &sumtFileInfo, treeName[0], &(brlensDef[0])) == ERROR) + return ERROR; + + /* Capture info */ + longestLineLength = sumtFileInfo.longestLineLength; + numTreesInLastBlock[0] = sumtFileInfo.numTreesInLastBlock; + lastTreeBlockBegin[0] = sumtFileInfo.lastTreeBlockBegin; + lastTreeBlockEnd[0] = sumtFileInfo.lastTreeBlockEnd; + + /* Examine second file */ + if (ExamineSumtFile(comptreeParams.comptFileName2, &sumtFileInfo, treeName[1], &brlensDef[1]) == ERROR) + return ERROR; + + /* Capture info */ + if (longestLineLength < sumtFileInfo.longestLineLength) + longestLineLength = sumtFileInfo.longestLineLength; + numTreesInLastBlock[1] = sumtFileInfo.numTreesInLastBlock; + lastTreeBlockBegin[1] = sumtFileInfo.lastTreeBlockBegin; + lastTreeBlockEnd[1] = sumtFileInfo.lastTreeBlockEnd; + + /* Check whether we should work with brlens */ + if (brlensDef[0] == YES && brlensDef[1] == YES) + sumtParams.brlensDef = YES; + else + sumtParams.brlensDef = NO; + + /* Allocate space for command string */ + longestLineLength += 10; + s = (char *)SafeMalloc((size_t)longestLineLength * sizeof(char)); + if (!s) + { + MrBayesPrint ("%s Problem allocating string for reading tree file\n", spacer); + goto errorExit; + } + + /* Allocate space for packed trees */ + if (chainParams.relativeBurnin == YES) + { + numPackedTrees[0] = numTreesInLastBlock[0] - (int)(chainParams.burninFraction * numTreesInLastBlock[0]); + numPackedTrees[1] = numTreesInLastBlock[1] - (int)(chainParams.burninFraction * numTreesInLastBlock[1]); + } + else + { + numPackedTrees[0] = numTreesInLastBlock[0] - chainParams.chainBurnIn; + numPackedTrees[1] = numTreesInLastBlock[1] - chainParams.chainBurnIn; + } + if (memAllocs[ALLOC_PACKEDTREES] == YES) + { + MrBayesPrint ("%s packedTreeList is already allocated\n", spacer); + goto errorExit; + } + packedTreeList[0] = (PackedTree *) SafeCalloc(numPackedTrees[0]+numPackedTrees[1], sizeof(PackedTree)); + packedTreeList[1] = packedTreeList[0] + numPackedTrees[0]; + if (!packedTreeList[0]) + { + MrBayesPrint ("%s Problem allocating packed tree list\n", spacer); + goto errorExit; + } + memAllocs[ALLOC_PACKEDTREES] = YES; + + /* Tell user we are ready to go */ + MrBayesPrint ("%s Summarizing trees in files \"%s\" and \"%s\"\n", spacer, + comptreeParams.comptFileName1, + comptreeParams.comptFileName2); + + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using relative burnin ('relburnin=yes'), discarding the first %.0f %% ('burninfrac=%1.2f') of sampled trees\n", + spacer, chainParams.burninFraction*100.0, chainParams.burninFraction); + else + MrBayesPrint ("%s Using absolute burnin ('relburnin=no'), discarding the first %d ('burnin=%d') sampled trees\n", + spacer, chainParams.chainBurnIn, chainParams.chainBurnIn); + + MrBayesPrint ("%s Writing statistics to file %s.\n", spacer, comptreeParams.comptOutfile); + + /* Set up cheap status bar. */ + MrBayesPrint ("\n%s Tree reading status:\n\n", spacer); + MrBayesPrint ("%s 0 10 20 30 40 50 60 70 80 90 100\n", spacer); + MrBayesPrint ("%s v-------v-------v-------v-------v-------v-------v-------v-------v-------v-------v\n", spacer); + MrBayesPrint ("%s *", spacer); + numAsterices = 0; + + /* Read file 1 for real */ + if ((fp = OpenTextFileR(comptreeParams.comptFileName1)) == NULL) + goto errorExit; + + /* ...and fast forward to beginning of last tree block (skipping begin trees). */ + for (i=0; ipartition) == YES && sumtParams.isRooted == NO) + FlipBits(x->partition, sumtParams.BitsLongsNeeded, mask); + if ((MrBFlt)x->totCount/(MrBFlt)sumtParams.numTreesSampled >= comptreeParams.minPartFreq) + { + MrBayesPrint ("%s %4d -- ", spacer, i+1); + ShowParts (stdout, x->partition, sumtParams.numTaxa); + + j = (int)(log10(sumtParams.numTreesSampled)) + 1; + if (j < 3) + j = 3; + MrBayesPrint (" %*d %*d %1.3lf %1.3lf\n", + j, x->count[0], j, x->count[1], + (MrBFlt)x->count[0]/(MrBFlt)sumtParams.numFileTreesSampled[0], + (MrBFlt)x->count[1]/(MrBFlt)sumtParams.numFileTreesSampled[1]); + + MrBayesPrintf (fpParts, "%d\t%d\t%d\t%1.3lf\t%1.3lf\n", + i+1, x->count[0], x->count[1], + (MrBFlt)x->count[0]/(MrBFlt)sumtParams.numFileTreesSampled[0], + (MrBFlt)x->count[1]/(MrBFlt)sumtParams.numFileTreesSampled[1]); + } + } + free (mask); + + /* make a nifty graph plotting frequencies of clades found in the two tree files */ + MrBayesPrint (" \n"); + MrBayesPrint ("%s Bivariate plot of clade probabilities: \n", spacer); + MrBayesPrint (" \n"); + MrBayesPrint ("%s This graph plots the probabilities of clades found in file 1 (the x-axis) \n", spacer); + MrBayesPrint ("%s against the probabilities of the same clades found in file 2 (the y-axis). \n", spacer); + MrBayesPrint (" \n"); + xInc = (MrBFlt) (1.0 / 80.0); + yInc = (MrBFlt) (1.0 / 40.0); + yUpper = 1.0; + yLower = yUpper - yInc; + for (yaxis=39; yaxis>=0; yaxis--) + { + xLower = 0.0; + xUpper = xLower + xInc; + for (xaxis=0; xaxis<80; xaxis++) + { + starHolder[xaxis] = 0; + for (i=0; icount[0]/(MrBFlt)sumtParams.numFileTreesSampled[0]; + yProb = (MrBFlt)x->count[1]/(MrBFlt)sumtParams.numFileTreesSampled[1]; + if ((xProb > xLower || (xProb == 0.0 && xaxis == 0)) && (xProb <= xUpper || (xProb == 1.0 && xaxis == 79)) + && (yProb > yLower || (yProb == 0.0 && yaxis == 0)) && (yProb <= yUpper || (yProb == 1.0 && yaxis == 39))) + starHolder[xaxis] = 1; + } + xLower += xInc; + xUpper = xLower + xInc; + } + + MrBayesPrint ("%s ", spacer); + for (xaxis=0; xaxis<80; xaxis++) + { + prCh = ' '; + if ((xaxis == 0 && yaxis == 0) || (xaxis == 79 && yaxis == 39)) + prCh = '+'; + else if ((xaxis == 0 && yaxis == 39) || (xaxis == 79 && yaxis == 0)) + prCh = '+'; + else if ((yaxis == 0 || yaxis == 39) && xaxis > 0 && xaxis < 79) + prCh = '-'; + else if ((xaxis == 0 || xaxis == 79) && yaxis > 0 && yaxis < 39) + prCh = '|'; + if (starHolder[xaxis] == 1) + prCh = '*'; + MrBayesPrint ("%c", prCh); + } + if (yaxis == 39) + MrBayesPrint (" 1.00\n"); + else if (yaxis == 0) + MrBayesPrint (" 0.00\n"); + else + MrBayesPrint ("\n"); + + yUpper -= yInc; + yLower = yUpper - yInc; + } + + MrBayesPrint ("%s ^ ^\n", spacer); + MrBayesPrint ("%s 0.00 1.00\n", spacer); + + /* get tree-to-tree distances: first allocate some space */ + minNumTrees = sumtParams.numFileTreesSampled[0]; + if (sumtParams.numFileTreesSampled[1] < minNumTrees) + minNumTrees = sumtParams.numFileTreesSampled[1]; + dT1 = (MrBFlt *) SafeMalloc (3 * (size_t)minNumTrees * sizeof(MrBFlt)); + tree1 = AllocateFixedTree (sumtParams.numTaxa, sumtParams.isRooted); + tree2 = AllocateFixedTree (sumtParams.numTaxa, sumtParams.isRooted); + if (!dT1 || !tree1 || !tree2) + { + MrBayesPrint ("%s Problem allocating topological distances\n", spacer); + goto errorExit; + } + dT2 = dT1 + minNumTrees; + dT3 = dT2 + minNumTrees; + + for (i=0; i maxX) + maxX = xVal; + if (yVal > maxY) + maxY = yVal; + } + for (i=0; i= screenWidth) + k = screenWidth - 1; + meanY[k] += yVal; + numY[k]++; + } + MrBayesPrint ("\n%s +", spacer); + for (i=0; i=0; j--) + { + MrBayesPrint ("%s |", spacer); + for (i=0; i 0) + { + if (meanY[i] / numY[i] > (((maxY - minY)/screenHeigth)*j)+minY && meanY[i] / numY[i] <= (((maxY - minY)/screenHeigth)*(j+1))+minY) + MrBayesPrint ("*"); + else + MrBayesPrint (" "); + } + else + { + MrBayesPrint (" "); + } + } + MrBayesPrint ("|\n"); + } + MrBayesPrint ("%s +", spacer); + for (i=0; i 0 && meanY[i] / numY[i] <= minY) + MrBayesPrint ("*"); + else if (i % (screenWidth/10) == 0 && i != 0) + MrBayesPrint ("+"); + else + MrBayesPrint ("-"); + } + MrBayesPrint ("+ %1.2lf\n", minY); + MrBayesPrint ("%s ^", spacer); + for (i=0; i maxX) + maxX = xVal; + if (yVal > maxY) + maxY = yVal; + } + for (i=0; i= screenWidth) + k = screenWidth - 1; + meanY[k] += yVal; + numY[k]++; + } + MrBayesPrint ("\n%s +", spacer); + for (i=0; i=0; j--) + { + MrBayesPrint ("%s |", spacer); + for (i=0; i 0) + { + if (meanY[i] / numY[i] > (((maxY - minY)/screenHeigth)*j)+minY && meanY[i] / numY[i] <= (((maxY - minY)/screenHeigth)*(j+1))+minY) + MrBayesPrint ("*"); + else + MrBayesPrint (" "); + } + else + { + MrBayesPrint (" "); + } + } + MrBayesPrint ("|\n"); + } + MrBayesPrint ("%s +", spacer); + for (i=0; i 0 && meanY[i] / numY[i] <= minY) + MrBayesPrint ("*"); + else if (i % (screenWidth/10) == 0 && i != 0) + MrBayesPrint ("+"); + else + MrBayesPrint ("-"); + } + MrBayesPrint ("+ %1.2lf\n", minY); + MrBayesPrint ("%s ^", spacer); + for (i=0; i 0.50) + { + MrBayesPrint ("%s Burnin fraction too high (> 0.50)\n", spacer); + return (ERROR); + } + chainParams.burninFraction = tempD; + MrBayesPrint ("%s Setting burnin fraction to %.2f\n", spacer, chainParams.burninFraction); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Minpartfreq (comptreeParams.minPartFreq) *******************************************************/ + else if (!strcmp(parmName, "Minpartfreq")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%lf", &tempD); + comptreeParams.minPartFreq = tempD; + MrBayesPrint ("%s Including partitions with probability greater than or equal to %lf in summary statistics\n", spacer, comptreeParams.minPartFreq); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + else + return (ERROR); + } + + return (NO_ERROR); +} + + +int DoCompRefTree (void) +{ + /* Compare a tree file with the reference tree files to generate the SDSFs. + Use parameters in CompareTree and MCMCP (lazy option) */ + + char outName[130], inName[130], inRefName[130], treeName[100], *lineBuf=NULL, *s; + FILE *fpTre=NULL, *fpOut=NULL; + int i, n, longestL=0, burnin, gen, nRefRun, nTre[100]={0}; + SumtFileInfo tFileInfo; + Tree *t; + +# if defined (MPI_ENABLED) + if (proc_id != 0) + return NO_ERROR; +# endif + + /* Check that a data set has been read in. We check taxon names against those read in. */ + if (isTaxsetDef == NO) + { + MrBayesPrint ("%s A matrix or set of taxon labels must be specified before compareref can be used\n", spacer); + return (ERROR); + } + + /* this is a hack to account for the additional comparing tree sample + chainParams.numRuns is used in AddTreeToPartitionCounters to alloc mem correctly */ + nRefRun = chainParams.numRuns; + chainParams.numRuns += 1; + + /* initialize */ + if ((t = AllocateTree (numLocalTaxa)) == NULL) + { + MrBayesPrint ("%s Problem allocating diagn tree\n", spacer); + goto errorExit; + } + if (SetUpPartitionCounters () == ERROR) + goto errorExit; + if ((chainParams.stat = (STATS *) SafeCalloc (numTopologies, sizeof (STATS))) == NULL) + goto errorExit; + else + memAllocs[ALLOC_STATS] = YES; + + /* deal with the reference tree files */ + // for (k=0; k= tFileInfo.numTreesInLastBlock) + { + MrBayesPrint ("%s Burnin should be smaller than the total number of trees\n", spacer); + goto errorExit; + } + + /* open the ref tree file */ + if ((fpTre = OpenTextFileR (inRefName)) == NULL) + goto errorExit; + /* ...and fast forward to beginning in last tree block */ + for (i=0; i <= tFileInfo.lastTreeBlockBegin; i++) + { + if (fgets(lineBuf, longestL-2, fpTre) == NULL) + goto errorExit; + } + + /* process each ref tree */ + for (i=1; i <= tFileInfo.numTreesInLastBlock; i++) + { + do { + if (fgets (lineBuf, longestL-2, fpTre) == NULL) + goto errorExit; + s = strtok (lineBuf, " "); + } + while (strcmp (s, "tree") != 0); + + /* add reference trees to partition counters, discarding burnin */ + if (i > burnin) + { + s = strtok (NULL, ";"); + while (*s != '(') + s++; + StripComments(s); + + if (ResetTopology (t, s) == ERROR) + goto errorExit; + if (AddTreeToPartitionCounters (t, 0, n) == ERROR) + goto errorExit; + nTre[n]++; + } + } + + /* close the tree file */ + SafeFclose (&fpTre); + } + /* end reference tree files */ + + /* open output file */ + strcpy (outName, comptreeParams.comptOutfile); + strcat (outName, ".sdsf"); + if ((fpOut = OpenNewMBPrintFile (outName)) == NULL) + goto errorExit; + /* print stamp and header */ + if ((int)strlen(stamp) > 1) + MrBayesPrintf (fpOut, "[ID: %s]\n", stamp); + if (chainParams.diagnStat == AVGSTDDEV) + MrBayesPrintf (fpOut, "Gen\tASDSF\n"); + else // MAXSTDDEV + MrBayesPrintf (fpOut, "Gen\tMSDSF\n"); + + /* Examine the tree file to be compared, save info to tFileInfo */ + strcpy(inName, comptreeParams.comptFileName1); + if (ExamineSumtFile(inName, &tFileInfo, treeName, &sumtParams.brlensDef) == ERROR) + goto errorExit; + if (longestL < tFileInfo.longestLineLength) + { + longestL = tFileInfo.longestLineLength; + lineBuf = (char *) SafeRealloc (lineBuf, (size_t)longestL * sizeof(char)); + if (!lineBuf) + { + MrBayesPrint ("%s Problem allocating string for reading tree file\n", spacer); + goto errorExit; + } + } + + /* open the tree file to be compared */ + if ((fpTre = OpenTextFileR (inName)) == NULL) + goto errorExit; + /* ...and fast forward to beginning in last tree block */ + for (i=0; i <= tFileInfo.lastTreeBlockBegin; i++) + { + if (fgets(lineBuf, longestL-2, fpTre) == NULL) + goto errorExit; + } + + /* process each tree to be compared and print SDSF to file */ + for (i=1; i <= tFileInfo.numTreesInLastBlock; i++) + { + do { + if (fgets (lineBuf, longestL-2, fpTre) == NULL) + goto errorExit; + s = strtok (lineBuf, " "); + } + while (strcmp (s, "tree") != 0); + + s = strtok (NULL, ";"); + gen = atoi(s+4); // 4 is offset to get rid of "rep." in tree name + while (*s != '(') + s++; + StripComments(s); + + /* add the tree to partition counters */ + if (ResetTopology (t, s) == ERROR) + goto errorExit; + if (AddTreeToPartitionCounters (t, 0, nRefRun) == ERROR) + goto errorExit; + nTre[nRefRun]++; + + /* calculate and write stdev of split freq */ + CalcTopoConvDiagn2 (nTre); + if (chainParams.stat[0].numPartitions == 0) + { + MrBayesPrintf (fpOut, "%d\tNA\n", gen); + } + else if (chainParams.diagnStat == AVGSTDDEV) + { + MrBayesPrintf (fpOut, "%d\t%lf\n", gen, chainParams.stat[0].avgStdDev); + } + else // MAXSTDDEV + { + MrBayesPrintf (fpOut, "%d\t%lf\n", gen, chainParams.stat[0].max); + } + } + + /* change back to the actual numRuns, end of hack */ + chainParams.numRuns -= 1; + + /* close tree file */ + SafeFclose (&fpTre); + /* close output file */ + SafeFclose (&fpOut); + /* free memory */ + free(lineBuf); + FreeTree (t); + FreeChainMemory(); + + return (NO_ERROR); + + /* error exit */ +errorExit: + MrBayesPrint ("%s Error in DoCompRefTree\n", spacer); + + chainParams.numRuns -= 1; + SafeFclose (&fpTre); + SafeFclose (&fpOut); + + FreeTree (t); + FreeChainMemory(); + free(lineBuf); + + return (ERROR); +} + + +#if defined (PRINT_RATEMUL_CPP) +int DELETE_ME_count_taxa(PolyNode *p) +{ + int sum=0; + + if (p->left==NULL) { + if (p->depth > 0.1) + return 1; + else + return 0; + } + + p=p->left; + while (p != NULL) { + sum+=DELETE_ME_count_taxa(p); + p=p->sib; + } + return sum; +} + + +void DELETE_ME_dump_depth(PolyNode *p) +{ + /*print depth of two taxa clade*/ + /* + if (p->left != NULL && p->left->left == NULL && p->left->sib != NULL && p->left->sib->left == NULL){ + fprintf (rateMultfp,"%f\n",p->depth); + } + if (p->left != NULL && p->left->left == NULL && p->left->sib != NULL && p->left->sib->left == NULL){ + if (p->left->depth > 0.1 && p->left->sib->depth > 0.1) + fprintf (rateMultfp,"%f\n",p->depth); + } + */ + /* print depth of three taxa clade */ + if (((p->left != NULL && p->left->left == NULL) && p->left->sib != NULL && p->left->sib->left != NULL && p->left->sib->left->left == NULL && p->left->sib->left->sib->left == NULL) || + (p->left != NULL && p->left->left != NULL && p->left->left->left == NULL && p->left->left->sib->left == NULL && (p->left->sib->left == NULL))) { + if (DELETE_ME_count_taxa(p)==2) + fprintf (rateMultfp,"%f\n",p->depth); + } + + p=p->left; + while (p != NULL) { + DELETE_ME_dump_depth(p); + p=p->sib; + } +} +#endif + + +int DoSumt (void) +{ + int i, j=0, k, n, len, longestName, treeNo, numTreePartsToPrint, + maxWidthID, maxWidthNumberPartitions, maxNumTaxa, tableWidth=0, unreliable, oneUnreliable, + longestHeader; + MrBFlt f, var_s, sum_s, stddev_s=0.0, sumsq_s, sumStdDev=0.0, maxStdDev=0.0, sumPSRF=0.0, + maxPSRF=0.0, avgStdDev=0.0, avgPSRF=0.0, min_s=0.0, max_s=0.0, numPSRFSamples=0, min; + PartCtr *x; + char *s=NULL, tempName[120], fileName[120], treeName[100], divString[100]; + char *tempStr=NULL; /*not static because error ext is handeled*/ + int tempStrLength; + FILE *fp=NULL; + PartCtr **treeParts=NULL,*tmp; + SumtFileInfo sumtFileInfo; + Stat theStats; + BitsLong *mask; + +#define SCREEN_WIDTH 80 + +# if defined (MPI_ENABLED) + if (proc_id == 0) + { +# endif + + /* Ensure that we read trees with sumt code and not user tree code */ + inSumtCommand = YES; + + /* set file pointers to NULL */ + fp = fpParts = fpTstat = fpVstat = fpCon = fpTrees = NULL; + + strcpy(treeName,"tree"); //in case if parameter is not specified in a .t file + + /* Check if there is anything to do */ + if (sumtParams.table == NO && sumtParams.summary == NO && sumtParams.showConsensus == NO) + { + MrBayesPrint ("%s Nothing to do, all output parameters (Table, Summary, Consensus) set to 'NO'\n", spacer); + goto errorExit; + } + + SafeStrcpy(&tempStr, " "); + + /* Initialize sumtParams struct */ + sumtParams.numTaxa = 0; + sumtParams.taxaNames = NULL; + sumtParams.BitsLongsNeeded = 0; + sumtParams.tree = AllocatePolyTree (numTaxa); + sumtParams.nESets = 0; + sumtParams.nBSets = 0; + sumtParams.eSetName = NULL; + sumtParams.bSetName = NULL; + sumtParams.popSizeSet = NO; + sumtParams.popSizeSetName = NULL; + AllocatePolyTreePartitions (sumtParams.tree); + sumtParams.numFileTrees = (int *) SafeCalloc (2*sumtParams.numRuns+2*numTaxa, sizeof(int)); + sumtParams.numFileTreesSampled = sumtParams.numFileTrees + sumtParams.numRuns; + sumtParams.order = sumtParams.numFileTrees + 2*sumtParams.numRuns; + sumtParams.absentTaxa = sumtParams.numFileTrees + 2*sumtParams.numRuns + numTaxa; + if (!sumtParams.numFileTrees) + { + MrBayesPrint ("%s Problems allocating sumtParams.numFileTrees in DoSumt()\n", spacer); + goto errorExit; + } + else + memAllocs[ALLOC_SUMTPARAMS] = YES; + + /* Make sure outgroup is set correctly */ + + for (treeNo = 0; treeNo < sumtParams.numTrees; treeNo++) + { + /* initialize across-file tree and partition counters */ + sumtParams.numTreesSampled = sumtParams.numTreesEncountered = 0; + numUniqueSplitsFound = numUniqueTreesFound = 0; + + /* initialize oneUnreliable && unreliable */ + oneUnreliable = unreliable = NO; + + /* initialize summary statistics */ + sumStdDev = 0.0; + sumPSRF = 0.0; + numPSRFSamples = 0; + maxStdDev = 0.0; + maxPSRF = 0.0; + + /* tell user we are ready to go */ + if (sumtParams.numTrees > 1) + sprintf (fileName,"%s.tree%d", sumtParams.sumtFileName, treeNo+1); + else + strcpy (fileName, sumtParams.sumtFileName); + + if (sumtParams.numRuns == 1) + MrBayesPrint ("%s Summarizing trees in file \"%s.t\"\n", spacer, fileName); + else if (sumtParams.numRuns == 2) + MrBayesPrint ("%s Summarizing trees in files \"%s.run1.t\" and \"%s.run2.t\"\n", spacer, fileName, fileName); + else if (sumtParams.numRuns > 2) + MrBayesPrint ("%s Summarizing trees in files \"%s.run1.t\", \"%s.run2.t\",...,\"%s.run%d.t\"\n", spacer, fileName, fileName,fileName,sumtParams.numRuns); + + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using relative burnin ('relburnin=yes'), discarding the first %.0f %% of sampled trees\n", + spacer, chainParams.burninFraction*100.0, chainParams.burninFraction); + else + MrBayesPrint ("%s Using absolute burnin ('relburnin=no'), discarding the first %d sampled trees\n", + spacer, chainParams.chainBurnIn, chainParams.chainBurnIn); + + MrBayesPrint ("%s Writing statistics to files %s.\n", spacer, sumtParams.sumtOutfile); + + for (sumtParams.runId=0; sumtParams.runId < sumtParams.numRuns; sumtParams.runId++) + { + /* initialize tree counters */ + sumtParams.numFileTrees[sumtParams.runId] = sumtParams.numFileTreesSampled[sumtParams.runId] = 0; + + /* open binary file */ + if (sumtParams.numRuns == 1) + sprintf (tempName, "%s.t", fileName); + else + sprintf (tempName, "%s.run%d.t", fileName, sumtParams.runId+1); + strcpy(sumtParams.curFileName, tempName); + + /* tell user we are examining files if for the first run */ + if (sumtParams.runId == 0) + { + if (sumtParams.numRuns > 1 && sumtParams.numTrees > 1) + MrBayesPrint ("%s Examining first file for tree %d ...\n", spacer, treeNo); + else if (sumtParams.numRuns > 1 && sumtParams.numTrees == 1) + MrBayesPrint ("%s Examining first file ...\n", spacer); + else if (sumtParams.numRuns == 1 && sumtParams.numTrees > 1) + MrBayesPrint ("%s Examining file for tree %d ...\n", spacer, treeNo); + else + MrBayesPrint ("%s Examining file ...\n", spacer); + } + + /* examine file */ + if (ExamineSumtFile(tempName, &sumtFileInfo, treeName, &sumtParams.brlensDef) == ERROR) + goto errorExit; + + /* capture values */ + if (sumtParams.runId == 0) + + /* catch lack of sampled trees */ + if (chainParams.relativeBurnin == NO && chainParams.chainBurnIn > sumtFileInfo.numTreesInLastBlock) + { + MrBayesPrint ("%s No trees are sampled as the burnin exceeds the number of trees in last block\n", spacer); + MrBayesPrint ("%s Try setting burnin to a number less than %d\n", spacer, sumtFileInfo.numTreesInLastBlock); + goto errorExit; + } + + /* tell the user that everything is fine */ + if (sumtParams.runId == 0) + { + if (sumtFileInfo.numTreeBlocks == 1) + MrBayesPrint ("%s Found one tree block in file \"%s\" with %d trees in last block\n", + spacer, tempName, sumtFileInfo.numTreesInLastBlock); + else + { + MrBayesPrint ("%s Found %d tree blocks in file \"%s\" with %d trees in last block\n", + spacer, sumtFileInfo.numTreeBlocks, tempName, sumtFileInfo.numTreesInLastBlock); + MrBayesPrint ("%s Only the %d trees in last tree block will be summarized\n", spacer, sumtFileInfo.numTreesInLastBlock); + } + sumtParams.numTreesInLastBlock = sumtFileInfo.numTreesInLastBlock; + if (sumtParams.numRuns > 1) + MrBayesPrint ("%s Expecting the same number of trees in the last tree block of all files\n", spacer); + if (chainParams.relativeBurnin == NO) + sumtParams.burnin = chainParams.chainBurnIn; + else + sumtParams.burnin = (int) (sumtFileInfo.numTreesInLastBlock * chainParams.burninFraction); + } + else + { + if (sumtFileInfo.numTreesInLastBlock != sumtParams.numFileTrees[0]) + { + MrBayesPrint ("%s Found %d trees in first file but %d trees in file \"%s\"\n", spacer, + sumtParams.numFileTrees[0], + sumtFileInfo.numTreesInLastBlock, + tempName); + goto errorExit; + } + } + + /* Now we read the file for real. First, allocate a string for reading the file... */ + if (sumtParams.runId == 0 && treeNo == 0) + { + s = (char *) SafeMalloc ((size_t)(sumtFileInfo.longestLineLength) * sizeof(char)); + if (!s) + { + MrBayesPrint ("%s Problem allocating string for reading sumt file\n", spacer); + goto errorExit; + } + } + else + { + free (s); + s = (char *) SafeMalloc ((size_t)(sumtFileInfo.longestLineLength) * sizeof (char)); + if (!s) + { + MrBayesPrint ("%s Problem reallocating string for reading sumt file\n", spacer); + goto errorExit; + } + } + + /* ... open the file ... */ + if ((fp = OpenTextFileR(tempName)) == NULL) + goto errorExit; + + /* ...and fast forward to beginning of last tree block. */ + for (i=0; i 1) + MrBayesPrint ("\n%s Tree reading status for tree %d:\n\n", spacer, treeNo+1); + else + MrBayesPrint ("\n%s Tree reading status:\n\n", spacer); + MrBayesPrint ("%s 0 10 20 30 40 50 60 70 80 90 100\n", spacer); + MrBayesPrint ("%s v-------v-------v-------v-------v-------v-------v-------v-------v-------v-------v\n", spacer); + MrBayesPrint ("%s *", spacer); + numAsterices = 0; + } + + /* ...and parse file, tree-by-tree. We are only parsing lines between the "begin trees" and "end" statements. + We don't actually get those lines, however, but rather the lines between those statements. */ + expecting = Expecting(COMMAND); + /* We skip the begin trees statement so we need to set up some variables here */ + inTreesBlock = YES; + ResetTranslateTable(); + for (i=0; i 1) + { + if (sumtParams.runId != 0 && sumtParams.numFileTreesSampled[sumtParams.runId]!=sumtParams.numFileTreesSampled[0]) + { + if (sumtParams.runId == sumtParams.numRuns - 1) + MrBayesPrint ("\n\n"); + MrBayesPrint ("%s Found %d post-burnin trees in the first file but %d post-burnin trees in file %d\n", + spacer, + sumtParams.numFileTreesSampled[0], + sumtParams.numFileTreesSampled[sumtParams.runId], + sumtParams.runId+1); + goto errorExit; + } + if (sumtParams.runId == sumtParams.numRuns - 1) + { + MrBayesPrint ("%s Read a total of %d trees in %d files (sampling %d of them)\n", spacer, + sumtParams.numTreesEncountered, + sumtParams.numRuns, sumtParams.numTreesSampled); + MrBayesPrint ("%s (Each file contained %d trees of which %d were sampled)\n", spacer, + sumtParams.numFileTrees[0], + sumtParams.numFileTreesSampled[0]); + } + } + + /* Check that at least one tree was read in. */ + if (sumtParams.numTreesSampled <= 0) + { + MrBayesPrint ("%s No trees read in\n", spacer); + goto errorExit; + } + + SafeFclose (&fp); + } /* next run for this tree */ + + /* Extract partition counter pointers */ + treeParts = (PartCtr **) SafeCalloc ((size_t)numUniqueSplitsFound, sizeof(PartCtr *)); + i = 0; + PartCtrUppass(partCtrRoot, treeParts, &i); + + min = (sumtParams.minPartFreq * (sumtParams.numTreesSampled/sumtParams.numRuns)); + numTreePartsToPrint=numUniqueSplitsFound; + for (i=0; icount[j]>=min) + break; + } + if (j==sumtParams.numRuns) + { + numTreePartsToPrint--; + tmp=treeParts[numTreePartsToPrint]; + treeParts[numTreePartsToPrint]=treeParts[i]; + treeParts[i]=tmp; + } + else + { + i++; + } + } + + /* Sort taxon partitions (clades, splits) ... */ + SortPartCtr (treeParts, 0, numTreePartsToPrint-1); + + /* Sort root and tips among those splits always present */ + SortTerminalPartCtr (treeParts, numUniqueSplitsFound); + + /* open output files for summary information (three files) */ + if (OpenSumtFiles (treeNo) == ERROR) + goto errorExit; + + /* Print partitions to screen. */ + if (treeNo == 0) + { + longestName = 0; + for (k=0; k longestName) + longestName = len; + } + if (sumtParams.table == YES) + { + MrBayesPrint (" \n"); + MrBayesPrint ("%s General explanation: \n", spacer); + MrBayesPrint (" \n"); + MrBayesPrint ("%s In an unrooted tree, a taxon bipartition (split) is specified by removing a \n", spacer); + MrBayesPrint ("%s branch, thereby dividing the species into those to the left and those to the \n", spacer); + MrBayesPrint ("%s right of the branch. Here, taxa to one side of the removed branch are denoted \n", spacer); + MrBayesPrint ("%s '.' and those to the other side are denoted '*'. Specifically, the '.' symbol \n", spacer); + MrBayesPrint ("%s is used for the taxa on the same side as the outgroup. \n", spacer); + MrBayesPrint (" \n"); + MrBayesPrint ("%s In a rooted or clock tree, the tree is rooted using the model and not by \n", spacer); + MrBayesPrint ("%s reference to an outgroup. Each bipartition therefore corresponds to a clade, \n", spacer); + MrBayesPrint ("%s that is, a group that includes all the descendants of a particular branch in \n", spacer); + MrBayesPrint ("%s the tree. Taxa that are included in each clade are denoted using '*', and \n", spacer); + MrBayesPrint ("%s taxa that are not included are denoted using the '.' symbol. \n", spacer); + MrBayesPrint (" \n"); + MrBayesPrint ("%s The output first includes a key to all the bipartitions with frequency larger \n", spacer); + MrBayesPrint ("%s or equual to (Minpartfreq) in at least one run. Minpartfreq is a parameter to \n", spacer); + MrBayesPrint ("%s sumt command and currently it is set to %1.2lf. This is followed by a table \n", spacer, sumtParams.minPartFreq); + MrBayesPrint ("%s with statistics for the informative bipartitions (those including at least \n", spacer); + MrBayesPrint ("%s two taxa), sorted from highest to lowest probability. For each bipartition, \n", spacer); + MrBayesPrint ("%s the table gives the number of times the partition or split was observed in all\n", spacer); + MrBayesPrint ("%s runs (#obs) and the posterior probability of the bipartition (Probab.), which \n", spacer); + MrBayesPrint ("%s is the same as the split frequency. If several runs are summarized, this is \n", spacer); + MrBayesPrint ("%s followed by the minimum split frequency (Min(s)), the maximum frequency \n", spacer); + MrBayesPrint ("%s (Max(s)), and the standard deviation of frequencies (Stddev(s)) across runs. \n", spacer); + MrBayesPrint ("%s The latter value should approach 0 for all bipartitions as MCMC runs converge.\n", spacer); + MrBayesPrint (" \n"); + MrBayesPrint ("%s This is followed by a table summarizing branch lengths, node heights (if a \n", spacer); + MrBayesPrint ("%s clock model was used) and relaxed clock parameters (if a relaxed clock model \n", spacer); + MrBayesPrint ("%s was used). The mean, variance, and 95 %% credible interval are given for each \n", spacer); + MrBayesPrint ("%s of these parameters. If several runs are summarized, the potential scale \n", spacer); + MrBayesPrint ("%s reduction factor (PSRF) is also given; it should approach 1 as runs converge. \n", spacer); + MrBayesPrint ("%s Node heights will take calibration points into account, if such points were \n", spacer); + MrBayesPrint ("%s used in the analysis. \n", spacer); + MrBayesPrint ("%s \n", spacer); + MrBayesPrint ("%s Note that Stddev may be unreliable if the partition is not present in all \n", spacer); + MrBayesPrint ("%s runs (the last column indicates the number of runs that sampled the partition \n", spacer); + MrBayesPrint ("%s if more than one run is summarized). The PSRF is not calculated at all if \n", spacer); + MrBayesPrint ("%s the partition is not present in all runs.The PSRF is also sensitive to small \n", spacer); + MrBayesPrint ("%s sample sizes and it should only be considered a rough guide to convergence \n", spacer); + MrBayesPrint ("%s since some of the assumptions allowing one to interpret it as a true potential\n", spacer); + MrBayesPrint ("%s scale reduction factor are violated in MrBayes. \n", spacer); + MrBayesPrint ("%s \n", spacer); + MrBayesPrint ("%s List of taxa in bipartitions: \n", spacer); + MrBayesPrint (" \n"); + j = 1; + for (k=0; k 1 && (sumtParams.table == YES || sumtParams.summary == YES)) + { + MrBayesPrint ("\n\n"); + MrBayesPrint ("%s Results for tree number %d\n", spacer, treeNo+1); + MrBayesPrint ("%s ==========================\n\n", spacer); + } + + /* First print key to taxon bipartitions */ + if (sumtParams.table == YES) + { + MrBayesPrint ("\n"); + if (sumtParams.numTrees == 1) + MrBayesPrint ("%s Key to taxon bipartitions (saved to file \"%s.parts\"):\n\n", spacer, sumtParams.sumtOutfile); + else + MrBayesPrint ("%s Key to taxon bipartitions (saved to file \"%s.tree%d.parts\"):\n\n", spacer, sumtParams.sumtOutfile, treeNo+1); + } + + /* calculate a couple of numbers that are handy to have */ + /*numTreePartsToPrint = 0; + for (i=0; itotCount/(MrBFlt)sumtParams.numTreesSampled >= sumtParams.minPartFreq) + numTreePartsToPrint++; + } + */ + maxWidthID = (int) (log10 (numTreePartsToPrint)) + 1; + if (maxWidthID < 2) + maxWidthID = 2; + maxNumTaxa = SCREEN_WIDTH - 9; + + for (j=0; j SCREEN_WIDTH) + tableWidth = SCREEN_WIDTH; + MrBayesPrint ("%s ", spacer); + for (i=0; ipartition) == YES && sumtParams.isRooted == NO) + FlipBits(x->partition, sumtParams.BitsLongsNeeded, mask); + + if ((NumBits(x->partition, sumtParams.BitsLongsNeeded) == numLocalTaxa || NumBits(x->partition, sumtParams.BitsLongsNeeded) == 0) && sumtParams.isClock == NO) + continue; + + MrBayesPrint ("%s %*d -- ", spacer, maxWidthID, i); + if (sumtParams.numTaxa <= maxNumTaxa) + ShowParts (stdout, x->partition, sumtParams.numTaxa); + else + { + if (sumtParams.numTaxa - j > maxNumTaxa) + ShowSomeParts (stdout, x->partition, j, maxNumTaxa); + else + ShowSomeParts (stdout, x->partition, j, sumtParams.numTaxa - j); + } + fflush(stdout); + MrBayesPrint ("\n"); + + MrBayesPrintf (fpParts, "%d\t", i); + ShowParts (fpParts, x->partition, sumtParams.numTaxa); + MrBayesPrintf (fpParts, "\n"); + } + free (mask); + + /* finish screen table */ + if (sumtParams.table == YES) + { + MrBayesPrint ("%s ", spacer); + for (i=0; itotCount/(MrBFlt)sumtParams.numTreesSampled >= sumtParams.minPartFreq) + numTreePartsToPrint++; + } + */ + maxWidthID = (int) (log10 (numTreePartsToPrint)) + 1; + if (maxWidthID < 2) + maxWidthID = 2; + maxWidthNumberPartitions = (int) (log10 (treeParts[0]->totCount)) + 1; + if (maxWidthNumberPartitions < 4) + maxWidthNumberPartitions = 4; + + /* print header to screen and to parts file simultaneously */ + if (sumtParams.table == YES) + { + /* first print header to screen */ + MrBayesPrint ("%s ", spacer); + MrBayesPrint ("%*s ", maxWidthID, "ID"); + tableWidth = maxWidthID + 3; + MrBayesPrint ("#obs"); + tableWidth += 4; + for (i=4; i 1) + { + MrBayesPrint (" Sd(s)+ "); + MrBayesPrint (" Min(s) Max(s) "); + tableWidth += 36; + MrBayesPrint (" Nruns "); + tableWidth += 8; + } + MrBayesPrint ("\n%s ", spacer); + for (i=0; i 1) + MrBayesPrintf (fpTstat, "ID\t#obs\tProbability(=s)\tStddev(s)\tMin(s)\tMax(s)\tNruns\n"); + else + MrBayesPrintf (fpTstat, "ID\t#obs\tProbability(=s)\n"); + } + + /* now, show informative partitions that were found on screen; print to .tstat file simultaneously */ + for (i=0; ipartition, sumtParams.BitsLongsNeeded) <= 1 || NumBits(x->partition, sumtParams.BitsLongsNeeded) == sumtParams.numTaxa) + continue; + if (NumBits(x->partition, sumtParams.BitsLongsNeeded) == sumtParams.numTaxa - 1 && sumtParams.isRooted == NO) + continue; + + if (sumtParams.table == YES) + { + MrBayesPrint ("%s %*d", spacer, maxWidthID, i); + fflush(stdout); + MrBayesPrintf (fpTstat, "%d\t", i); + } + if (sumtParams.numRuns > 1) + { + sum_s = 0.0; + sumsq_s = 0.0; + min_s = 1.0; + max_s = 0.0; + for (n=j=0; ncount[n] > 0) + j++; + f = (MrBFlt) x->count[n] / (MrBFlt) sumtParams.numFileTreesSampled[n]; + sum_s += f; + sumsq_s += f * f; + if (f < min_s) + min_s = f; + if (f > max_s) + max_s = f; + } + var_s = sumsq_s - sum_s * sum_s / (MrBFlt) sumtParams.numRuns; + var_s /= (sumtParams.numRuns - 1); + if (var_s > 0.0) + stddev_s = sqrt (var_s); + else + stddev_s = 0.0; + if (j == sumtParams.numRuns) + unreliable = NO; + else + { + unreliable = YES; + oneUnreliable = YES; + } + } + if (sumtParams.table == YES) + { + f = (MrBFlt) x->totCount / (MrBFlt) sumtParams.numTreesSampled; + MrBayesPrint (" %*d %1.6lf", maxWidthNumberPartitions, x->totCount, f); + MrBayesPrintf (fpTstat, "\t%d\t%s", x->totCount, MbPrintNum(f)); + if (sumtParams.numRuns > 1) + { + MrBayesPrint (" %1.6lf %1.6lf %1.6lf", stddev_s, min_s, max_s); + MrBayesPrint (" %3d", j); + MrBayesPrintf (fpTstat, "\t%s", MbPrintNum(stddev_s)); + MrBayesPrintf (fpTstat, "\t%s", MbPrintNum(min_s)); + MrBayesPrintf (fpTstat, "\t%s", MbPrintNum(max_s)); + MrBayesPrintf (fpTstat, "\t%d", j); + } + MrBayesPrintf (fpTstat, "\n"); + if (unreliable == YES) + MrBayesPrint (" *\n"); + else + MrBayesPrint ("\n"); + sumStdDev += stddev_s; + if (stddev_s > maxStdDev) + maxStdDev = stddev_s; + } + } + + /* finish screen table */ + if (sumtParams.table == YES) + { + MrBayesPrint ("%s ", spacer); + for (i=0; i 1) + { + MrBayesPrint ("%s + Convergence diagnostic (standard deviation of split frequencies)\n", spacer); + MrBayesPrint ("%s should approach 0.0 as runs converge.\n\n", spacer); + } + if (oneUnreliable == YES) + MrBayesPrint ("%s * The partition was not found in all runs so the values are unreliable\n", spacer); + } + + /* Third, print statitistics for branch and node parameters */ + if (sumtParams.table == YES) + { + MrBayesPrint ("\n"); + MrBayesPrint ("%s Summary statistics for branch and node parameters\n", spacer); + MrBayesPrint ("%s (saved to file \"%s.vstat\"):\n", spacer, sumtParams.sumtOutfile); + } + + if (sumtParams.table == YES) + { + /* calculate longest header */ + longestHeader = 9; /* length of 'parameter' */ + i = (int)(log10(numTreePartsToPrint)) + 3; /* length of partition specifier including [] */ + len = i + (int)(strlen(treeName)) + 2; /* length of length{m}[n] or height{m}[n] */ + if (len > longestHeader) + longestHeader = len; + for (j=0; jbSetName[j]) + 7 + i; + if (len > longestHeader) + longestHeader = len; + } + for (j=0; jeSetName[j]) + 8 + i; + if (len > longestHeader) + longestHeader = len; + } + if (sumtParams.popSizeSet == YES) + { + len = (int) strlen(sumtParams.tree->popSizeSetName) + i; + if (len > longestHeader) + longestHeader = len; + } + + /* print the header rows */ + MrBayesPrint ("\n"); + if (sumtParams.HPD == NO) + MrBayesPrint ("%s %*c 95%% Cred. Interval\n", spacer, longestHeader, ' '); + else + MrBayesPrint ("%s %*c 95%% HPD Interval\n", spacer, longestHeader, ' '); + MrBayesPrint ("%s %*c --------------------\n", spacer, longestHeader, ' '); + + MrBayesPrint ("%s Parameter%*c Mean Variance Lower Upper Median", spacer, longestHeader-9, ' '); + tableWidth = 68 + longestHeader - 9; + if (sumtParams.HPD == YES) + MrBayesPrintf (fpVstat, "Parameter\tMean\tVariance\tCredInt_Lower\tCredInt_Upper\tMedian", spacer, longestHeader-9, ' '); + else + MrBayesPrintf (fpVstat, "Parameter\tMean\tVariance\tHPD_Lower\tHPD_Upper\tMedian", spacer, longestHeader-9, ' '); + if (sumtParams.numRuns > 1) + { + MrBayesPrint (" PSRF+ Nruns"); + tableWidth += 17; + MrBayesPrintf (fpVstat, "\tPSRF\tNruns"); + } + MrBayesPrint ("\n"); + MrBayesPrintf (fpVstat, "\n"); + + MrBayesPrint ("%s ", spacer); + for (j=0; jlength, sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + + MrBayesPrint ("%s %-*s ", spacer, longestHeader, tempStr); + MrBayesPrintf (fpVstat, "%s", tempStr); + + PrintSumtTableLine(sumtParams.numRuns, x->count, &theStats, &numPSRFSamples, &maxPSRF, &sumPSRF); + + } + + /* print heights */ + if (sumtParams.isClock == YES) + { + strcpy (divString, treeName+4); + for (i=0; iheight, sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + + MrBayesPrint ("%s %-*s ", spacer, longestHeader, tempStr); + MrBayesPrintf (fpVstat, "%s", tempStr); + + PrintSumtTableLine(sumtParams.numRuns, x->count, &theStats, &numPSRFSamples, &maxPSRF, &sumPSRF); + } + } + + /* print ages */ + if (sumtParams.isCalibrated == YES) + { + strcpy (divString, treeName+4); + for (i=0; iage, sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + + MrBayesPrint ("%s %-*s ", spacer, longestHeader, tempStr); + MrBayesPrintf (fpVstat, "%s", tempStr); + + PrintSumtTableLine(sumtParams.numRuns, x->count, &theStats, &numPSRFSamples, &maxPSRF, &sumPSRF); + } + } + + /* print effective branch lengths */ + if (sumtParams.isRelaxed == YES) + { + for (i=0; ibLen[i], sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + + MrBayesPrint ("%s %-*s ", spacer, longestHeader, tempStr); + MrBayesPrintf (fpVstat, "%s", tempStr); + + PrintSumtTableLine(sumtParams.numRuns, x->count, &theStats, &numPSRFSamples, &maxPSRF, &sumPSRF); + } + for (j=1; jbRate[i], sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + + MrBayesPrint ("%s %-*s ", spacer, longestHeader, tempStr); + MrBayesPrintf (fpVstat, "%s", tempStr); + + PrintSumtTableLine(sumtParams.numRuns, x->count, &theStats, &numPSRFSamples, &maxPSRF, &sumPSRF); + } + } + for (i=0; inEvents[i], sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + + MrBayesPrint ("%s %-*s ", spacer, longestHeader, tempStr); + MrBayesPrintf (fpVstat, "%s", tempStr); + + PrintSumtTableLine(sumtParams.numRuns, x->count, &theStats, &numPSRFSamples, &maxPSRF, &sumPSRF); + } + } + } + + /* print population size sets */ + if (sumtParams.popSizeSet == YES) + { + for (j=1; jpopSize, sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + + MrBayesPrint ("%s %-*s ", spacer, longestHeader, tempStr); + MrBayesPrintf (fpVstat, "%s", tempStr); + + PrintSumtTableLine(sumtParams.numRuns, x->count, &theStats, &numPSRFSamples, &maxPSRF, &sumPSRF); + } + } + + /* finish table */ + MrBayesPrint ("%s ", spacer); + for (j=0; j 1) + { + MrBayesPrint ("%s + Convergence diagnostic (PSRF = Potential Scale Reduction Factor; Gelman\n", spacer); + MrBayesPrint ("%s and Rubin, 1992) should approach 1.0 as runs converge. NA is reported when\n", spacer); + MrBayesPrint ("%s deviation of parameter values within all runs is 0 or when a parameter\n", spacer); + MrBayesPrint ("%s value (a branch length, for instance) is not sampled in all runs.\n", spacer); + } + + if (oneUnreliable == YES) + { + MrBayesPrint ("%s * The partition was not found in all runs so the values are unreliable.\n", spacer); + } + MrBayesPrint ("\n\n"); + } + + /* Exclude trivial splits when calculating average standard deviation of split frequencies. */ + avgStdDev = sumStdDev / (numTreePartsToPrint-sumtParams.numTaxa-1); + avgPSRF = sumPSRF / numPSRFSamples; + + if (sumtParams.numRuns > 1 && sumtParams.summary == YES) + { + MrBayesPrint ("%s Summary statistics for partitions with frequency >= %1.2lf in at least one run:\n", spacer, sumtParams.minPartFreq); + MrBayesPrint ("%s Average standard deviation of split frequencies = %1.6lf\n", spacer, avgStdDev); + MrBayesPrint ("%s Maximum standard deviation of split frequencies = %1.6lf\n", spacer, maxStdDev); + } + if (sumtParams.brlensDef == YES && sumtParams.numRuns > 1 && sumtParams.summary == YES) + { + MrBayesPrint ("%s Average PSRF for parameter values (excluding NA and >10.0) = %1.3lf\n", spacer, avgPSRF); + if (maxPSRF == 10) + MrBayesPrint ("%s Maximum PSRF for parameter values = NA\n", spacer); + else + MrBayesPrint ("%s Maximum PSRF for parameter values = %1.3lf\n", spacer, maxPSRF); + } + MrBayesPrint ("\n"); + + SortPartCtr (treeParts, 0, numUniqueSplitsFound-1); /* We sort again but this time we sort all partitions instead of just first numTreePartsToPrintNow */ + /* make the majority rule consensus tree */ + if (sumtParams.showConsensus == YES && ConTree (treeParts, numUniqueSplitsFound) == ERROR) + goto errorExit; + + /* get probabilities of individual trees */ + if (TreeProb () == ERROR) + goto errorExit; + + /* print brlens */ + if (sumtParams.printBrlensToFile == YES && PrintBrlensToFile (treeParts, numUniqueSplitsFound, treeNo) == ERROR) + goto errorExit; + + /* close files */ + SafeFclose (&fpParts); + SafeFclose (&fpTstat); + SafeFclose (&fpVstat); + SafeFclose (&fpCon); + SafeFclose (&fpTrees); + +# if defined (PRINT_RATEMUL_CPP) + SafeFclose (&rateMultfp); +# endif + + /* free pointer array to partitions */ + free (treeParts); + treeParts = NULL; + FreePartCtr (partCtrRoot); + partCtrRoot = NULL; + FreeTreeCtr (treeCtrRoot); + treeCtrRoot = NULL; + } /* next tree */ + + /* free memory and file pointers */ + if (s) free(s); + FreeSumtParams(); + + /* reset numLocalTaxa and localOutGroup */ + ResetTaxonSet(); + +# if defined (MPI_ENABLED) + } +# endif + + expecting = Expecting(COMMAND); + inSumtCommand = NO; + SafeFree ((void **)&tempStr); + + return (NO_ERROR); + + /* error exit */ + errorExit: + /* free sumtParams */ + if (s) free(s); + FreeSumtParams(); + + /* close files in case they are open*/ + SafeFclose (&fp); + SafeFclose (&fpParts); + SafeFclose (&fpTstat); + SafeFclose (&fpVstat); + SafeFclose (&fpCon); + SafeFclose (&fpTrees); + +# if defined (PRINT_RATEMUL_CPP) + SafeFclose (&rateMultfp); +# endif + + /* free pointer array to partitions, part and tree counters */ + free (treeParts); + FreePartCtr (partCtrRoot); + FreeTreeCtr (treeCtrRoot); + partCtrRoot = NULL; + treeCtrRoot = NULL; + + /* reset taxon set */ + ResetTaxonSet(); + + expecting = Expecting(COMMAND); + inSumtCommand = NO; + SafeFree ((void **)&tempStr); + + return (ERROR); +} + + +int DoSumtParm (char *parmName, char *tkn) +{ + int tempI; + MrBFlt tempD; + char tempStr[100]; + + if (defMatrix == NO) + { + MrBayesPrint ("%s A matrix must be specified before sumt can be used\n", spacer); + return (ERROR); + } + + if (expecting == Expecting(PARAMETER)) + { + expecting = Expecting(EQUALSIGN); + } + else + { + if (!strcmp(parmName, "Xxxxxxxxxx")) + { + expecting = Expecting(PARAMETER); + expecting |= Expecting(SEMICOLON); + } + /* set Filename (sumtParams.sumtFileName) ***************************************************/ + else if (!strcmp(parmName, "Filename")) + { + if (expecting == Expecting(EQUALSIGN)) + { + expecting = Expecting(ALPHA); + readWord = YES; + } + else if (expecting == Expecting(ALPHA)) + { + if (strlen(tkn)>99) + { + MrBayesPrint ("%s Maximum allowed length of file name is 99 characters. The given name:\n", spacer); + MrBayesPrint ("%s '%s'\n", spacer,tkn); + MrBayesPrint ("%s has %d characters.\n", spacer,strlen(tkn)); + return (ERROR); + } + strcpy (sumtParams.sumtFileName, tkn); + strcpy(sumtParams.sumtOutfile, tkn); + MrBayesPrint ("%s Setting sumt filename and outputname to %s\n", spacer, sumtParams.sumtFileName); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Relburnin (chainParams.relativeBurnin) ********************************************************/ + else if (!strcmp(parmName, "Relburnin")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + chainParams.relativeBurnin = YES; + else + chainParams.relativeBurnin = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Relburnin\n", spacer); + return (ERROR); + } + if (chainParams.relativeBurnin == YES) + MrBayesPrint ("%s Using relative burnin (a fraction of samples discarded).\n", spacer); + else + MrBayesPrint ("%s Using absolute burnin (a fixed number of samples discarded).\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Burnin (chainParams.chainBurnIn) ***********************************************************/ + else if (!strcmp(parmName, "Burnin")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + chainParams.chainBurnIn = tempI; + MrBayesPrint ("%s Setting urn-in to %d\n", spacer, chainParams.chainBurnIn); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Burninfrac (chainParams.burninFraction) ************************************************************/ + else if (!strcmp(parmName, "Burninfrac")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%lf", &tempD); + if (tempD < 0.01) + { + MrBayesPrint ("%s Burnin fraction too low (< 0.01)\n", spacer); + return (ERROR); + } + if (tempD > 0.50) + { + MrBayesPrint ("%s Burnin fraction too high (> 0.50)\n", spacer); + return (ERROR); + } + chainParams.burninFraction = tempD; + MrBayesPrint ("%s Setting burnin fraction to %.2f\n", spacer, chainParams.burninFraction); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + { + return (ERROR); + } + } + /* set Nruns (sumtParams.numRuns) *******************************************************/ + else if (!strcmp(parmName, "Nruns")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + if (tempI < 1) + { + MrBayesPrint ("%s Nruns must be at least 1\n", spacer); + return (ERROR); + } + else + { + sumtParams.numRuns = tempI; + MrBayesPrint ("%s Setting sumt nruns to %d\n", spacer, sumtParams.numRuns); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + } + else + return (ERROR); + } + /* set Ntrees (sumtParams.numTrees) *******************************************************/ + else if (!strcmp(parmName, "Ntrees")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%d", &tempI); + if (tempI < 1) + { + MrBayesPrint ("%s Ntrees must be at least 1\n", spacer); + return (ERROR); + } + else + { + sumtParams.numTrees = tempI; + MrBayesPrint ("%s Setting sumt ntrees to %d\n", spacer, sumtParams.numTrees); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + } + else + return (ERROR); + } + /* set Contype (sumtParams.sumtConType) *****************************************************/ + else if (!strcmp(parmName, "Contype")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + strcpy (sumtParams.sumtConType, tempStr); + MrBayesPrint ("%s Setting sumt contype to %s\n", spacer, sumtParams.sumtConType); + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Conformat (sumtParams.consensusFormat) *****************************************************/ + else if (!strcmp(parmName, "Conformat")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr,"Figtree")) + { + MrBayesPrint ("%s Setting sumt conformat to Figtree\n", spacer); + sumtParams.consensusFormat = FIGTREE; + } + else + { + MrBayesPrint ("%s Setting sumt conformat to Simple\n", spacer); + sumtParams.consensusFormat = SIMPLE; + } + } + else + { + MrBayesPrint ("%s Invalid argument for calctreeprobs\n", spacer); + return (ERROR); + } + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Calctreeprobs (sumtParams.calcTreeprobs) *********************************************/ + else if (!strcmp(parmName, "Calctreeprobs")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumtParams.calcTreeprobs = YES; + else + sumtParams.calcTreeprobs = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for calctreeprobs\n", spacer); + return (ERROR); + } + if (sumtParams.calcTreeprobs == YES) + MrBayesPrint ("%s Setting calctreeprobs to yes\n", spacer); + else + MrBayesPrint ("%s Setting calctreeprobs to no\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Showtreeprobs (sumtParams.showSumtTrees) *********************************************/ + else if (!strcmp(parmName, "Showtreeprobs")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumtParams.showSumtTrees = YES; + else + sumtParams.showSumtTrees = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for showtreeprobs\n", spacer); + return (ERROR); + } + if (sumtParams.showSumtTrees == YES) + MrBayesPrint ("%s Setting showtreeprobs to yes\n", spacer); + else + MrBayesPrint ("%s Setting showtreeprobs to no\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Hpd (sumpParams.HPD) ********************************************************/ + else if (!strcmp(parmName, "Hpd")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumtParams.HPD = YES; + else + sumtParams.HPD = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Hpd\n", spacer); + return (ERROR); + } + if (sumtParams.HPD == YES) + MrBayesPrint ("%s Reporting 95 %% region of Highest Posterior Density (HPD).\n", spacer); + else + MrBayesPrint ("%s Reporting median interval containing 95 %% of values.\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Printbrlens (sumtParams.printBrlensToFile) *********************************************/ + else if (!strcmp(parmName, "Printbrlens")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumtParams.printBrlensToFile = YES; + else + sumtParams.printBrlensToFile = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for printbrlens\n", spacer); + return (ERROR); + } + if (sumtParams.printBrlensToFile == YES) + MrBayesPrint ("%s Setting printbrlens to yes\n", spacer); + else + MrBayesPrint ("%s Setting printbrlens to no\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Brlensgeq (sumtParams.brlensFreqDisplay) *******************************************************/ + else if (!strcmp(parmName, "Brlensgeq")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%lf", &tempD); + sumtParams.brlensFreqDisplay = tempD; + MrBayesPrint ("%s Printing branch lengths to file for partitions with probability >= %lf\n", spacer, sumtParams.brlensFreqDisplay); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Ordertaxa (sumtParams.orderTaxa) *********************************************/ + else if (!strcmp(parmName, "Ordertaxa")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumtParams.orderTaxa = YES; + else + sumtParams.orderTaxa = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for ordertaxa\n", spacer); + return (ERROR); + } + if (sumtParams.orderTaxa == YES) + MrBayesPrint ("%s Setting ordertaxa to yes\n", spacer); + else + MrBayesPrint ("%s Setting ordertaxa to no\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Outputname (sumtParams.sumtOutfile) *******************************************************/ + else if (!strcmp(parmName, "Outputname")) + { + if (expecting == Expecting(EQUALSIGN)) + { + expecting = Expecting(ALPHA); + readWord = YES; + } + else if (expecting == Expecting(ALPHA)) + { + sscanf (tkn, "%s", tempStr); + strcpy (sumtParams.sumtOutfile, tempStr); + MrBayesPrint ("%s Setting sumt output file name to \"%s\"\n", spacer, sumtParams.sumtOutfile); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Table (sumtParams.table) ********************************************************/ + else if (!strcmp(parmName, "Table")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumtParams.table = YES; + else + sumtParams.table = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Table (valid arguments are 'yes' and 'no')\n", spacer); + return (ERROR); + } + if (sumtParams.table == YES) + MrBayesPrint ("%s Setting sumt to compute table of partition frequencies\n", spacer); + else + MrBayesPrint ("%s Setting sumt not to compute table of partition frequencies\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Summary (sumtParams.summary) ********************************************************/ + else if (!strcmp(parmName, "Summary")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumtParams.summary = YES; + else + sumtParams.summary = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for 'Summary' (valid arguments are 'yes' and 'no')\n", spacer); + return (ERROR); + } + if (sumtParams.summary == YES) + MrBayesPrint ("%s Setting sumt to summary statistics\n", spacer); + else + MrBayesPrint ("%s Setting sumt not to compute summary statistics\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Consensus (sumtParams.showConsensus) ********************************************************/ + else if (!strcmp(parmName, "Consensus")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(ALPHA); + else if (expecting == Expecting(ALPHA)) + { + if (IsArgValid(tkn, tempStr) == NO_ERROR) + { + if (!strcmp(tempStr, "Yes")) + sumtParams.showConsensus = YES; + else + sumtParams.showConsensus = NO; + } + else + { + MrBayesPrint ("%s Invalid argument for Consensus (valid arguments are 'yes' and 'no')\n", spacer); + return (ERROR); + } + if (sumtParams.showConsensus == YES) + MrBayesPrint ("%s Setting sumt to show consensus trees\n", spacer); + else + MrBayesPrint ("%s Setting sumt not to show consensus trees\n", spacer); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + /* set Minpartfreq (sumtParams.minPartFreq) *******************************************************/ + else if (!strcmp(parmName, "Minpartfreq")) + { + if (expecting == Expecting(EQUALSIGN)) + expecting = Expecting(NUMBER); + else if (expecting == Expecting(NUMBER)) + { + sscanf (tkn, "%lf", &tempD); + sumtParams.minPartFreq = tempD; + MrBayesPrint ("%s Including partitions with probability greater than or equal to %lf in summary statistics\n", spacer, sumtParams.minPartFreq); + expecting = Expecting(PARAMETER) | Expecting(SEMICOLON); + } + else + return (ERROR); + } + else + return (ERROR); + } + + return (NO_ERROR); +} + + +int DoSumtTree (void) +{ + int i, j, z, printEvery, nAstPerPrint, burnin; + MrBFlt x, y; + PolyTree *t; + PolyNode *p; + +# if defined (PRINT_RATEMUL_CPP) + /* get depths if relevant */ + if (sumtParams.tree->isClock) + GetPolyDepths (sumtParams.tree); + if (rateMultfp !=NULL && sumtParams.tree->root !=NULL) + DELETE_ME_dump_depth(sumtParams.tree->root); +# endif + + /* increment number of trees read in */ + sumtParams.numFileTrees[sumtParams.runId]++; + sumtParams.numTreesEncountered++; + + /* update status bar */ + if (sumtParams.numTreesInLastBlock * sumtParams.numRuns < 80) + { + printEvery = 1; + nAstPerPrint = 80 / (sumtParams.numTreesInLastBlock * sumtParams.numRuns); + if (sumtParams.numTreesEncountered % printEvery == 0) + { + for (i=0; i burnin) + { + /* increment the number of trees sampled */ + sumtParams.numFileTreesSampled[sumtParams.runId]++; + sumtParams.numTreesSampled++; + + /* get the tree we just read in */ + t = sumtParams.tree; + + /* move calculation root for nonrooted trees if necessary */ + MovePolyCalculationRoot (t, localOutGroup); + + /* check taxon set and outgroup */ + if (sumtParams.runId == 0 && sumtParams.numFileTreesSampled[0] == 1) + { + if (isTranslateDef == YES && isTranslateDiff == YES) + { + /* we are using a translate block with different taxa set */ + if (t->nNodes - t->nIntNodes != numTranslates) + { + MrBayesPrint ("%s ERROR: Expected %d taxa; found %d taxa\n", spacer, numTranslates, sumtParams.numTaxa); + return (ERROR); + } + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + sumtParams.absentTaxa[p->index] = NO; + } + localOutGroup = 0; + for (i=j=0; inNodes - t->nIntNodes; + numLocalTaxa = sumtParams.numTaxa; + sumtParams.BitsLongsNeeded = ((numLocalTaxa-1) / nBitsInALong) + 1; + if (t->isRooted == YES) + sumtParams.orderLen = numLocalTaxa - 2; + else + sumtParams.orderLen = numLocalTaxa - 3; + } + else + { + /* the following block was conditioned with if (isTranslateDef == NO || isTranslateDiff == NO) + The reason was not clearly stated but it prevents exclusion of taxa to work in case when the condition does not hold. + My guess is that before PrunePolyTree() relied on indeses of tips be set as in original matrix. + Now it is not needed after PrunePolyTree and ResetTipIndices ware modified to use labels istead of indexes to recognize tips.*/ + { + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL && taxaInfo[p->index].isDeleted == NO && sumtParams.absentTaxa[p->index] == YES) + { + MrBayesPrint ("%s Taxon %d should not be in sampled tree\n", spacer, p->index + 1); + return (ERROR); + } + } + + /* now we can safely prune the tree based on taxaInfo[].isDeleted */ + PrunePolyTree (t); + + /* reset tip and int node indices in case some taxa deleted */ + ResetTipIndices (t); + ResetIntNodeIndices(t); + } + + /* check that all taxa are included */ + if (t->nNodes - t->nIntNodes != sumtParams.numTaxa) + { + MrBayesPrint ("%s Expecting %d taxa but tree '%s' in file '%s' has %d taxa\n", + spacer, sumtParams.numTaxa, t->name, sumtParams.curFileName, t->nNodes-t->nIntNodes); + return ERROR; + } + } + + if (sumtParams.runId == 0 && sumtParams.numFileTreesSampled[0] == 1) + { + /* harvest labels (can only be done safely after pruning) */ + for (i=0; inNodes; j++) + { + p = t->allDownPass[j]; + if (p->index == i) { + if (strlen(p->label)>99) + { + MrBayesPrint ("%s Taxon name %s is too long. Maximun 99 characters is allowed.\n", spacer, p->label); + return (ERROR); + } + AddString(&sumtParams.taxaNames, i, p->label); + } + } + } + } + + /* check that tree agrees with template */ + if (sumtParams.numTreesSampled == 1) + { + sumtParams.brlensDef = t->brlensDef; + sumtParams.isRooted = t->isRooted; + sumtParams.isClock = t->isClock; + sumtParams.isCalibrated = t->isCalibrated; + sumtParams.isRelaxed = t->isRelaxed; + sumtParams.nBSets = 0; + sumtParams.nESets = 0; + for (i=0; inBSets; i++) + AddString(&sumtParams.bSetName,sumtParams.nBSets++,t->bSetName[i]); + for (i=0; inESets; i++) + AddString(&sumtParams.eSetName,sumtParams.nESets++,t->eSetName[i]); + if (t->popSizeSet == YES) + { + sumtParams.popSizeSet = YES; + sumtParams.popSizeSetName = (char *) SafeCalloc (strlen(t->popSizeSetName)+1, sizeof(char)); + strcpy(sumtParams.popSizeSetName, t->popSizeSetName); + } + else + sumtParams.popSizeSet = NO; + } + else /* if (sumtParams.numTreesSampled > 1) */ + { + if (sumtParams.brlensDef != t->brlensDef) + { + MrBayesPrint ("%s Trees with and without branch lengths mixed\n", spacer); + return ERROR; + } + if (sumtParams.isRooted != t->isRooted) + { + if (sumtParams.isRooted == YES) + MrBayesPrint ("%s Expected rooted tree but tree '%s' in file '%s' is not rooted\n", + spacer, t->name, sumtParams.curFileName); + else if (sumtParams.isRooted == NO) + MrBayesPrint ("%s Expected unrooted tree but tree '%s' in file '%s' is rooted\n", + spacer, t->name, sumtParams.curFileName); + return ERROR; + } + if (sumtParams.isClock != t->isClock) + { + if (sumtParams.isClock == YES) + MrBayesPrint ("%s Expected clock tree but tree '%s' in file '%s' is not clock\n", + spacer, t->name, sumtParams.curFileName); + else if (sumtParams.isClock == NO) + MrBayesPrint ("%s Expected nonclock tree but tree '%s' in file '%s' is clock\n", + spacer, t->name, sumtParams.curFileName); + return ERROR; + } + if (sumtParams.isCalibrated != t->isCalibrated) + { + if (sumtParams.isCalibrated == YES) + MrBayesPrint ("%s Expected calibrated tree but tree '%s' in file '%s' is not calibrated\n", + spacer, t->name, sumtParams.curFileName); + else if (sumtParams.isCalibrated == NO) + MrBayesPrint ("%s Expected noncalibrated tree but tree '%s' in file '%s' is calibrated\n", + spacer, t->name, sumtParams.curFileName); + return ERROR; + } + if (inComparetreeCommand == NO && sumtParams.isRelaxed != t->isRelaxed) + { + if (sumtParams.isRelaxed == YES) + MrBayesPrint ("%s Expected relaxed clock tree but tree '%s' in file '%s' is not relaxed\n", + spacer, t->name, sumtParams.curFileName); + else if (sumtParams.isRelaxed == NO) + MrBayesPrint ("%s Expected unrooted tree but tree '%s' in file '%s' is rooted\n", + spacer, t->name, sumtParams.curFileName); + return ERROR; + } + if (inComparetreeCommand == NO && (sumtParams.nESets != t->nESets || sumtParams.nBSets != t->nBSets)) + { + MrBayesPrint ("%s Tree '%s' in file '%s' does not have the expected relaxed clock parameters\n", + spacer, t->name, sumtParams.curFileName); + return ERROR; + } + } + + /* set partitions for tree */ + ResetPolyTreePartitions(t); + + /* get depths if relevant */ + if (t->isClock) + GetPolyDepths (t); + + /* get ages if relevant */ + if (t->isCalibrated) + GetPolyAges (t); + + /* add partitions to counters */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + partCtrRoot = AddSumtPartition (partCtrRoot, t, p, sumtParams.runId); + } + + /* add the tree to relevant tree list */ + if (inSumtCommand == YES) + { + if (t->isRooted == YES) + StoreRPolyTopology (t, sumtParams.order); + else /* if (sumtParams.isRooted == NO) */ + StoreUPolyTopology (t, sumtParams.order); + treeCtrRoot = AddSumtTree (treeCtrRoot, sumtParams.order); + } + else + { + i = sumtParams.numFileTreesSampled[sumtParams.runId] - 1; + if (StoreSumtTree (packedTreeList[sumtParams.runId], i, t) == ERROR) + return (ERROR); + } + + /* Display the tree nodes. */ +# if 0 + ShowPolyNodes(t); +# endif + } + + return (NO_ERROR); +} + + +int ExamineSumtFile (char *fileName, SumtFileInfo *sumtFileInfo, char *treeName, int *brlensDef) +{ + int i, foundBegin, lineTerm, inTreeBlock, blockErrors, inSumtComment, lineNum, numTreesInBlock, + tokenType; + char sumtToken[100], *s, *sumtTokenP; + FILE *fp; + + /* open binary file */ + if ((fp = OpenBinaryFileR(fileName)) == NULL) + return ERROR; + + /* find out what type of line termination is used for file 1 */ + lineTerm = LineTermType (fp); + if (lineTerm != LINETERM_MAC && lineTerm != LINETERM_DOS && lineTerm != LINETERM_UNIX) + { + MrBayesPrint ("%s Unknown line termination for file \"%s\"\n", spacer, fileName); + return ERROR; + } + + /* find length of longest line in either file */ + sumtFileInfo->longestLineLength = LongestLine (fp); + sumtFileInfo->longestLineLength += 10; + + /* allocate a string long enough to hold a line */ + s = (char *)SafeMalloc((size_t)(sumtFileInfo->longestLineLength) * sizeof(char)); + if (!s) + { + MrBayesPrint ("%s Problem allocating string for examining file \"%s\"\n", spacer, fileName); + return (ERROR); + } + + /* close binary file */ + SafeFclose (&fp); + + foundBegin = inTreeBlock = blockErrors = inSumtComment = NO; + lineNum = numTreesInBlock = 0; + sumtFileInfo->numTreeBlocks = 0; + sumtFileInfo->lastTreeBlockBegin = 0; + sumtFileInfo->lastTreeBlockEnd = 0; + sumtFileInfo->numTreesInLastBlock = 0; + + /* open text file */ + if ((fp = OpenTextFileR(fileName))==NULL) + { + MrBayesPrint ("%s Could not read file \"%s\" in text mode \n", spacer, fileName); + return (ERROR); + } + + /* read file */ + while (fgets (s, sumtFileInfo->longestLineLength-2, fp) != NULL) + { + sumtTokenP = &s[0]; + do + { + if (GetToken (sumtToken, &tokenType, &sumtTokenP)) + goto errorExit; + if (IsSame("[", sumtToken) == SAME) + inSumtComment = YES; + if (IsSame("]", sumtToken) == SAME) + inSumtComment = NO; + + if (inSumtComment == YES) + { + if (IsSame ("Param", sumtToken) == SAME) + { + /* extract the tree name */ + if (GetToken (sumtToken, &tokenType, &sumtTokenP)) /* get the colon */ + goto errorExit; + if (GetToken (sumtToken, &tokenType, &sumtTokenP)) /* get the tree name */ + goto errorExit; + strcpy (treeName, sumtToken); + if (GetToken (sumtToken, &tokenType, &sumtTokenP)) + goto errorExit; + while (IsSame("]", sumtToken) != SAME) + { + strcat (treeName, sumtToken); + if (GetToken (sumtToken, &tokenType, &sumtTokenP)) + goto errorExit; + } + inSumtComment = NO; + } + } + else /* if (inSumtComment == NO) */ + { + if (foundBegin == YES) + { + if (IsSame("Trees", sumtToken) == SAME) + { + numTreesInBlock = 0; + inTreeBlock = YES; + foundBegin = NO; + sumtFileInfo->lastTreeBlockBegin = lineNum; + } + } + else + { + if (IsSame("Begin", sumtToken) == SAME) + { + if (foundBegin == YES) + { + MrBayesPrint ("%s Found inappropriate \"Begin\" statement in file\n", spacer); + blockErrors = YES; + } + foundBegin = YES; + } + else if (IsSame("End", sumtToken) == SAME) + { + if (inTreeBlock == YES) + { + sumtFileInfo->numTreeBlocks++; + inTreeBlock = NO; + sumtFileInfo->lastTreeBlockEnd = lineNum; + } + else + { + MrBayesPrint ("%s Found inappropriate \"End\" statement in file\n", spacer); + blockErrors = YES; + } + sumtFileInfo->numTreesInLastBlock = numTreesInBlock; + } + else if (IsSame("Tree", sumtToken) == SAME) + { + if (inTreeBlock == YES) + { + numTreesInBlock++; + if (numTreesInBlock == 1) + { + *brlensDef = NO; + for (i=0; s[i]!='\0'; i++) + { + if (s[i] == ':') + { + *brlensDef = YES; + break; + } + } + } + } + else + { + MrBayesPrint ("%s Found a \"Tree\" statement that is not in a tree block\n", spacer); + blockErrors = YES; + } + } + } + } + + } while (*sumtToken); + lineNum++; + } + + /* Now, check some aspects of the tree file, such as the number of tree blocks and whether they are properly terminated. */ + if (inTreeBlock == YES) + { + MrBayesPrint ("%s Unterminated tree block in file %s. You probably need to\n", spacer, fileName); + MrBayesPrint ("%s add a new line to the end of the file with \"End;\" on it.\n", spacer); + goto errorExit; + } + if (inSumtComment == YES) + { + MrBayesPrint ("%s Unterminated comment in file %s\n", spacer, fileName); + goto errorExit; + } + if (blockErrors == YES) + { + MrBayesPrint ("%s Found formatting errors in file %s\n", spacer, fileName); + goto errorExit; + } + if (sumtFileInfo->lastTreeBlockEnd < sumtFileInfo->lastTreeBlockBegin) + { + MrBayesPrint ("%s Problem reading tree file %s\n", spacer, fileName); + goto errorExit; + } + if (sumtFileInfo->numTreesInLastBlock <= 0) + { + MrBayesPrint ("%s No trees were found in last tree block of file %s\n", spacer, fileName); + goto errorExit; + } + free (s); + return (NO_ERROR); + +errorExit: + free (s); + return (ERROR); +} + + +/* FreePartCtr: Recursively free partition counter nodes */ +void FreePartCtr (PartCtr *r) +{ + int i, j; + + if (r==NULL) + return; + + FreePartCtr (r->left); + FreePartCtr (r->right); + + /* free relaxed clock parameters: eRate, nEvents, bRate */ + if (sumtParams.nESets > 0) + { + for (i=0; inEvents[i][j]); + free (r->nEvents[i]); + } + free (r->nEvents); + } + if (sumtParams.nBSets > 0) + { + for (i=0; ibLen [i][j]); + free (r->bRate[i][j]); + } + free (r->bLen [i]); + free (r->bRate[i]); + } + free (r->bLen); + free (r->bRate); + } + + /* free basic parameters */ + for (i=0; ilength[i]); + + free (r->length); + free (r->count); + free (r->partition); + free (r); + numUniqueSplitsFound--; + r = NULL; +} + + +/* FreeSumtParams: Free parameters allocated in sumtParams struct */ +void FreeSumtParams(void) +{ + int i; + + if (memAllocs[ALLOC_SUMTPARAMS] == YES) + { + for (i=0; i 0) + { + for (i=0; i 0) + { + for (i=0; ileft); + FreeTreeCtr (r->right); + + free (r->order); + free (r); + numUniqueTreesFound--; + r = NULL; +} + + +/* Label: Calculate length of label and fill in char *label if not NULL */ +int Label (PolyNode *p, int addIndex, char *label, int maxLength) +{ + int i, j0, j1, k, n, length, nameLength, index; + + if (p == NULL) + return 0; + + /* first calculate length */ + if (inSumtCommand == YES && isTranslateDiff == NO) + { + for (index=i=0; indexindex == i) + break; + else + i++; + } + } + else + index = p->index; + + if (addIndex != NO) + length = (int)(strlen(p->label)) + 4 + (int)(log10(index+1)); + else + length = (int)(strlen(p->label)); + length = (length > maxLength ? maxLength : length); + + /* fill in label if label != NULL */ + if (label != NULL) + { + if (addIndex != NO) + nameLength = length - 4 - (int)(log10(index+1)); + else + nameLength = length; + + for (i=0; ilabel[i]; + if ((int)strlen(p->label) > nameLength) + label[i] = '~'; + else + label[i] = p->label[i]; + + if (addIndex != NO) + { + label[++i] = ' '; + label[++i] = '('; + n = index + 1; + k = (int)(log10(n)) + 1; + while (n != 0) + { + j0 = (int)(log10(n)); + j1 = (int)(pow(10,j0)); + label[++i] = '0' + n/j1; + n = n % j1; + k--; + } + while (k!=0) + { + label[++i] = '0'; + k--; + } + label[++i] = ')'; + } + label[++i] = '\0'; + } + + return length; +} + + +int OpenComptFiles (void) +{ + int len, previousFiles, oldNoWarn, oldAutoOverwrite; + char pFilename[120], dFilename[120]; + FILE *fpTemp; + + oldNoWarn = noWarn; + oldAutoOverwrite = autoOverwrite; + + /* set file names */ + strcpy (pFilename, comptreeParams.comptOutfile); + strcpy (dFilename, comptreeParams.comptOutfile); + strcat (pFilename, ".pairs"); + strcat (dFilename, ".dists"); + + /* one overwrite check for both files */ + previousFiles = NO; + if (noWarn == NO) + { + if ((fpTemp = OpenTextFileR(pFilename)) != NULL) + { + previousFiles = YES; + fclose(fpTemp); + } + if ((fpTemp = OpenTextFileR(dFilename)) != NULL) + { + previousFiles = YES; + fclose(fpTemp); + } + if (previousFiles == YES) + { + MrBayesPrint("%s There are previous compare results saved using the same filenames.\n", spacer); + if (WantTo("Do you want to overwrite these results") == YES) + { + MrBayesPrint("\n"); + noWarn = YES; + autoOverwrite = YES; + } + else + { + MrBayesPrint("\n"); + MrBayesPrint("%s Please specify a different output file name before running the comparetree command.\n", spacer); + MrBayesPrint("%s You can do that using 'comparetree outputfile='. You can also move or\n", spacer); + MrBayesPrint("%s rename the old result files.\n", spacer); + return ERROR; + } + } + } + + if ((fpParts = OpenNewMBPrintFile (pFilename)) == NULL) + { + noWarn = oldNoWarn; + autoOverwrite = oldAutoOverwrite; + return ERROR; + } + if ((fpDists = OpenNewMBPrintFile (dFilename)) == NULL) + { + noWarn = oldNoWarn; + autoOverwrite = oldAutoOverwrite; + return ERROR; + } + + /* Reset file flags */ + noWarn = oldNoWarn; + autoOverwrite = oldAutoOverwrite; + + /* print unique identifiers to each file */ + len = (int) strlen (stamp); + if (len > 1) + { + MrBayesPrintf (fpParts, "[ID: %s]\n", stamp); + MrBayesPrintf (fpDists, "[ID: %s]\n", stamp); + } + + return (NO_ERROR); +} + + +int OpenSumtFiles (int treeNo) +{ + int i, len, oldNoWarn, oldAutoOverwrite, previousFiles; + char pFilename[120], sFilename[120], vFilename[120], cFilename[120], tFilename[120]; + FILE *fpTemp; + + oldNoWarn = noWarn; + oldAutoOverwrite = autoOverwrite; + + /* one overwrite check for all files */ + if (noWarn == NO && treeNo == 0) + { + previousFiles = NO; + for (i=0; i 1) + { + sprintf (pFilename, "%s.tree%d.parts", sumtParams.sumtOutfile, i+1); + sprintf (sFilename, "%s.tree%d.tstat", sumtParams.sumtOutfile, i+1); + sprintf (vFilename, "%s.tree%d.vstat", sumtParams.sumtOutfile, i+1); + sprintf (cFilename, "%s.tree%d.con.tre", sumtParams.sumtOutfile, i+1); + sprintf (tFilename, "%s.tree%d.trprobs", sumtParams.sumtOutfile, i+1); + } + else + { + sprintf (pFilename, "%s.parts", sumtParams.sumtOutfile); + sprintf (sFilename, "%s.tstat", sumtParams.sumtOutfile); + sprintf (vFilename, "%s.vstat", sumtParams.sumtOutfile); + sprintf (cFilename, "%s.con.tre", sumtParams.sumtOutfile); + sprintf (tFilename, "%s.trprobs", sumtParams.sumtOutfile); + } + if ((fpTemp = TestOpenTextFileR(pFilename)) != NULL) + { + previousFiles = YES; + fclose(fpTemp); + } + if ((fpTemp = TestOpenTextFileR(sFilename)) != NULL) + { + previousFiles = YES; + fclose(fpTemp); + } + if ((fpTemp = TestOpenTextFileR(vFilename)) != NULL) + { + previousFiles = YES; + fclose(fpTemp); + } + if ((fpTemp = TestOpenTextFileR(cFilename)) != NULL) + { + previousFiles = YES; + fclose(fpTemp); + } + if ((fpTemp = TestOpenTextFileR(tFilename)) != NULL) + { + previousFiles = YES; + fclose(fpTemp); + } + if (previousFiles == YES) + { + MrBayesPrint("\n"); + MrBayesPrint("%s There are previous tree sample summaries saved using the same filenames.\n", spacer); + if (WantTo("Do you want to overwrite these results") == YES) + { + MrBayesPrint("\n"); + noWarn = YES; + autoOverwrite = YES; + } + else + { + MrBayesPrint("\n"); + MrBayesPrint("%s Please specify a different output file name before running the sumt command.\n", spacer); + MrBayesPrint("%s You can do that using 'sumt outputfile='. You can also move or\n", spacer); + MrBayesPrint("%s rename the old result files.\n", spacer); + return ERROR; + } + } + } + } + + /* set file names */ + if (sumtParams.numTrees > 1) + { + sprintf (pFilename, "%s.tree%d.parts", sumtParams.sumtOutfile, treeNo+1); + sprintf (sFilename, "%s.tree%d.tstat", sumtParams.sumtOutfile, treeNo+1); + sprintf (vFilename, "%s.tree%d.vstat", sumtParams.sumtOutfile, treeNo+1); + sprintf (cFilename, "%s.tree%d.con.tre", sumtParams.sumtOutfile, treeNo+1); + sprintf (tFilename, "%s.tree%d.trprobs", sumtParams.sumtOutfile, treeNo+1); + } + else + { + sprintf (pFilename, "%s.parts", sumtParams.sumtOutfile); + sprintf (sFilename, "%s.tstat", sumtParams.sumtOutfile); + sprintf (vFilename, "%s.vstat", sumtParams.sumtOutfile); + sprintf (cFilename, "%s.con.tre", sumtParams.sumtOutfile); + sprintf (tFilename, "%s.trprobs", sumtParams.sumtOutfile); + } + + /* open files checking for over-write as appropriate */ + if ((fpParts = OpenNewMBPrintFile(pFilename)) == NULL) + return ERROR; + if ((fpTstat = OpenNewMBPrintFile(sFilename)) == NULL) + { + SafeFclose (&fpParts); + return ERROR; + } + if ((fpVstat = OpenNewMBPrintFile(vFilename)) == NULL) + { + SafeFclose (&fpParts); + SafeFclose (&fpTstat); + return ERROR; + } + if ((fpCon = OpenNewMBPrintFile(cFilename)) == NULL) + { + SafeFclose (&fpParts); + SafeFclose (&fpTstat); + SafeFclose (&fpVstat); + return ERROR; + } + if (sumtParams.calcTreeprobs == YES) + { + if ((fpTrees = OpenNewMBPrintFile(tFilename)) == NULL) + { + SafeFclose (&fpParts); + SafeFclose (&fpTstat); + SafeFclose (&fpVstat); + SafeFclose (&fpCon); + return ERROR; + } + } + + /* print #NEXUS if appropriate */ + MrBayesPrintf (fpCon, "#NEXUS\n"); + if (sumtParams.calcTreeprobs == YES) + MrBayesPrintf (fpTrees, "#NEXUS\n"); + + /* print unique identifiers to each file */ + len = (int) strlen (stamp); + if (len > 1) + { + MrBayesPrintf (fpParts, "[ID: %s]\n", stamp); + MrBayesPrintf (fpTstat, "[ID: %s]\n", stamp); + MrBayesPrintf (fpVstat, "[ID: %s]\n", stamp); + MrBayesPrintf (fpCon, "[ID: %s]\n", stamp); + if (sumtParams.calcTreeprobs == YES) + MrBayesPrintf (fpTrees, "[ID: %s]\n", stamp); + } + + /* Reset noWarn and autoOverwrite */ + if (treeNo == sumtParams.numTrees - 1) + { + noWarn = oldNoWarn; + autoOverwrite = oldAutoOverwrite; + } + + return (NO_ERROR); +} + + +void PartCtrUppass (PartCtr *r, PartCtr **uppass, int *index) +{ + if (r != NULL) + { + uppass[(*index)++] = r; + + PartCtrUppass (r->left, uppass, index); + PartCtrUppass (r->right, uppass, index); + } +} + + +/* PrintBrlensToFile: Print brlens to file */ +int PrintBrlensToFile (PartCtr **treeParts, int numTreeParts, int treeNo) +{ + int i, j, runNo, numBrlens; + char filename[100]; + PartCtr *x; + FILE *fp; + + /* set file name */ + if (sumtParams.numTrees > 1) + sprintf (filename, "%s.tree%d.brlens", sumtParams.sumtOutfile, treeNo+1); + else + sprintf (filename, "%s.brlens", sumtParams.sumtOutfile); + + /* Open file checking for over-write as appropriate */ + if ((fp = OpenNewMBPrintFile(filename)) == NULL) + return ERROR; + + /* count number of brlens to print */ + for (i=0; itotCount < sumtParams.brlensFreqDisplay) + break; + } + numBrlens = i; + + /* print header */ + for (i=0; ilength[runNo][0])); + for (j=1; jcount[i]; j++) + { + MrBayesPrintf (fp, "\t%s", MbPrintNum (x->length[runNo][j])); + } + } + MrBayesPrintf (fp, "\n"); + } + + return NO_ERROR; +} + + +/* PrintConTree: Print consensus tree in standard format readable by TreeView, Paup etc */ +void PrintConTree (FILE *fp, PolyTree *t) +{ + MrBayesPrintf (fp, " [Note: This tree contains information on the topology, \n"); + MrBayesPrintf (fp, " branch lengths (if present), and the probability\n"); + MrBayesPrintf (fp, " of the partition indicated by the branch.]\n"); + if (!strcmp(sumtParams.sumtConType, "Halfcompat")) + MrBayesPrintf (fp, " tree con_50_majrule = "); + else + MrBayesPrintf (fp, " tree con_all_compat = "); + WriteConTree (t->root, fp, YES); + MrBayesPrintf (fp, ";\n"); + if (sumtParams.brlensDef == YES) + { + MrBayesPrintf (fp, "\n"); + MrBayesPrintf (fp, " [Note: This tree contains information only on the topology\n"); + MrBayesPrintf (fp, " and branch lengths (median of the posterior probability density).]\n"); + if (!strcmp(sumtParams.sumtConType, "Halfcompat")) + MrBayesPrintf (fp, " tree con_50_majrule = "); + else + MrBayesPrintf (fp, " tree con_all_compat = "); + WriteConTree (t->root, fp, NO); + MrBayesPrintf (fp, ";\n"); + } +} + + +/* PrintFigTreeConTree: Print consensus tree in rich format for FigTree */ +void PrintFigTreeConTree (FILE *fp, PolyTree *t, PartCtr **treeParts) +{ + if (!strcmp(sumtParams.sumtConType, "Halfcompat")) + MrBayesPrintf (fp, " tree con_50_majrule = "); + else + MrBayesPrintf (fp, " tree con_all_compat = "); + if (t->isRooted == YES) + MrBayesPrintf (fp, "[&R] "); + else + MrBayesPrintf (fp, "[&U] "); + + WriteFigTreeConTree (t->root, fp, treeParts); + MrBayesPrintf (fp, ";\n"); +} + + +void PrintFigTreeNodeInfo (FILE *fp, PartCtr *x, MrBFlt length) +{ + int i, postProbPercent, postProbSdPercent; + MrBFlt *support, mean, var, min, max; + Stat theStats; + + support = SafeCalloc (sumtParams.numRuns, sizeof(MrBFlt)); + for (i=0; icount[i] / (MrBFlt) sumtParams.numFileTreesSampled[i]; + } + if (sumtParams.numRuns > 1) + { + MeanVariance (support, sumtParams.numRuns, &mean, &var); + Range (support, sumtParams.numRuns, &min, &max); + postProbPercent = (int) (100.0*mean + 0.5); + postProbSdPercent = (int) (100.0 * sqrt(var) + 0.5); + fprintf (fp, "[&prob=%.8le,prob_stddev=%.8le,prob_range={%.8le,%.8le},prob(percent)=\"%d\",prob+-sd=\"%d+-%d\"", + mean, sqrt(var), min, max, postProbPercent, postProbPercent, postProbSdPercent); + } + else + { + postProbPercent = (int) (100.0*support[0] + 0.5); + fprintf (fp, "[&prob=%.8le,prob(percent)=\"%d\"", support[0], postProbPercent); + } + if (sumtParams.isClock == YES) + { + GetSummary (x->height, sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + if (sumtParams.HPD == YES) + fprintf (fp, ",height_mean=%.8le,height_median=%.8le,height_95%%HPD={%.8le,%.8le}", theStats.mean, theStats.median, theStats.lower, theStats.upper); + else + fprintf (fp, ",height_mean=%.8le,height_median=%.8le,height_95%%CredInt={%.8le,%.8le}", theStats.mean, theStats.median, theStats.lower, theStats.upper); + } + if (sumtParams.isCalibrated == YES) + { + GetSummary (x->age, sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + if (sumtParams.HPD == YES) + fprintf (fp, ",age_mean=%.8le,age_median=%.8le,age_95%%HPD={%.8le,%.8le}", theStats.mean, theStats.median, theStats.lower, theStats.upper); + else + fprintf (fp, ",age_mean=%.8le,age_median=%.8le,age_95%%CredInt={%.8le,%.8le}", theStats.mean, theStats.median, theStats.lower, theStats.upper); + } + fprintf (fp, "]"); + if (length >= 0.0) + fprintf (fp, ":%s", MbPrintNum(length)); + if (sumtParams.brlensDef == YES) + { + GetSummary (x->length, sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + if (sumtParams.HPD == YES) + fprintf (fp, "[&length_mean=%.8le,length_median=%.8le,length_95%%HPD={%.8le,%.8le}", theStats.mean, theStats.median, theStats.lower, theStats.upper); + else + fprintf (fp, "[&length_mean=%.8le,length_median=%.8le,length_95%%CredInt={%.8le,%.8le}", theStats.mean, theStats.median, theStats.lower, theStats.upper); + } + if (sumtParams.isClock == YES && sumtParams.isRelaxed == YES) + { + for (i=0; ibLen[i], sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + if (sumtParams.HPD == YES) + fprintf (fp, ",effectivebrlen%s_mean=%lf,effectivebrlen%s_median=%lf,effectivebrlen%s_95%%HPD={%lf,%lf}", + sumtParams.tree->bSetName[i], theStats.mean, + sumtParams.tree->bSetName[i], theStats.median, + sumtParams.tree->bSetName[i], theStats.lower, + theStats.upper); + else + fprintf (fp, ",effectivebrlen%s_mean=%lf,effectivebrlen%s_median=%lf,effectivebrlen%s_95%%CredInt={%lf,%lf}", + sumtParams.tree->bSetName[i], theStats.mean, + sumtParams.tree->bSetName[i], theStats.median, + sumtParams.tree->bSetName[i], theStats.lower, + theStats.upper); + GetSummary (x->bRate[i], sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + if (sumtParams.HPD == YES) + fprintf (fp, ",rate%s_mean=%lf,rate%s_median=%lf,rate%s_95%%HPD={%lf,%lf}", + sumtParams.tree->bSetName[i], theStats.mean, + sumtParams.tree->bSetName[i], theStats.median, + sumtParams.tree->bSetName[i], theStats.lower, + theStats.upper); + else + fprintf (fp, ",rate%s_mean=%lf,rate%s_median=%lf,rate%s_95%%CredInt={%lf,%lf}", + sumtParams.tree->bSetName[i], theStats.mean, + sumtParams.tree->bSetName[i], theStats.median, + sumtParams.tree->bSetName[i], theStats.lower, + theStats.upper); + } + for (i=0; inEvents[i], sumtParams.numRuns, x->count, &theStats, sumtParams.HPD); + if (sumtParams.HPD == YES) + fprintf (fp, ",nEvents%s_mean=%lf,nEvents%s_median=%lf,nEvents%s_95%%HPD={%lf,%lf}", + sumtParams.tree->eSetName[i], theStats.mean, + sumtParams.tree->eSetName[i], theStats.median, + sumtParams.tree->eSetName[i], theStats.lower, + theStats.upper); + else + fprintf (fp, ",nEvents%s_mean=%lf,nEvents%s_median=%lf,nEvents%s_95%%CredInt={%lf,%lf}", + sumtParams.tree->eSetName[i], theStats.mean, + sumtParams.tree->eSetName[i], theStats.median, + sumtParams.tree->eSetName[i], theStats.lower, + theStats.upper); + } + } + if (sumtParams.brlensDef == YES) + fprintf (fp, "]"); + + free (support); +} + + +void PrintSumtTableLine(int numRuns, int *rowCount, Stat *theStats, MrBFlt *numPSRFSamples, MrBFlt *maxPSRF, MrBFlt *sumPSRF) +{ + int j,k; + + MrBayesPrint ("%10.6lf %10.6lf %10.6lf %10.6lf %10.6lf", theStats->mean, theStats->var, theStats->lower, theStats->upper, theStats->median); + + MrBayesPrintf (fpVstat, "\t%s", MbPrintNum(theStats->mean)); + MrBayesPrintf (fpVstat, "\t%s", MbPrintNum(theStats->var)); + MrBayesPrintf (fpVstat, "\t%s", MbPrintNum(theStats->lower)); + MrBayesPrintf (fpVstat, "\t%s", MbPrintNum(theStats->upper)); + MrBayesPrintf (fpVstat, "\t%s", MbPrintNum(theStats->median)); + + if (numRuns > 1) + { + for (j=k=0; j 0) + k++; + if (theStats->PSRF < 0.0) + { + MrBayesPrint (" NA %3d", k); + MrBayesPrintf (fpVstat, "\tNA\t%d", k); + } + else + { + if (theStats->PSRF > 10.0) + { + MrBayesPrint (" >10.0 %3d", k); + MrBayesPrintf (fpVstat, "\tNA\t%d", k); + (*maxPSRF) = 10.0; + } + else + { + MrBayesPrint (" %7.3lf %3d", theStats->PSRF, k); + MrBayesPrintf (fpVstat, "\t%s\t%d", MbPrintNum(theStats->PSRF), k); + (*sumPSRF) += theStats->PSRF; + (*numPSRFSamples)++; + if (theStats->PSRF > *maxPSRF) + (*maxPSRF) = theStats->PSRF; + } + } + + if (k != numRuns) + MrBayesPrint (" *"); + } + + MrBayesPrintf (fpVstat, "\n"); + MrBayesPrint ("\n"); +} + + +/* PrintSumtTaxaInfo: Print information on pruned and absent taxa */ +void PrintSumtTaxaInfo (void) +{ + int i, j, lineWidth, numExcludedTaxa, len; + char tempStr[100]; + + /* print out information on absent taxa */ + numExcludedTaxa = 0; + for (i=0; i 0) + { + if (numExcludedTaxa == 1) + MrBayesPrint ("%s The following taxon was absent from trees:\n", spacer); + else + MrBayesPrint ("%s The following %d taxa were absent from trees:\n", spacer, numExcludedTaxa); + MrBayesPrint ("%s ", spacer); + j = lineWidth = 0; + for (i=0; i 60) + { + MrBayesPrint ("\n%s ", spacer); + lineWidth = 0; + } + if (numExcludedTaxa == 1) + MrBayesPrint ("%s\n", tempStr); + else if (numExcludedTaxa == 2 && j == 1) + MrBayesPrint ("%s ", tempStr); + else if (j == numExcludedTaxa) + MrBayesPrint ("and %s\n", tempStr); + else + MrBayesPrint ("%s, ", tempStr); + } + } + MrBayesPrint ("\n"); + } + + /* print out information on pruned taxa */ + numExcludedTaxa = 0; + for (i=0; i 0) + { + if (numExcludedTaxa == 1) + MrBayesPrint ("%s The following taxon was pruned from trees:\n", spacer); + else + MrBayesPrint ("%s The following %d taxa were pruned from trees:\n", spacer, numExcludedTaxa); + MrBayesPrint ("%s ", spacer); + j = lineWidth = 0; + for (i=0; i 60) + { + MrBayesPrint ("\n%s ", spacer); + lineWidth = 0; + } + if (numExcludedTaxa == 1) + MrBayesPrint ("%s\n", tempStr); + else if (numExcludedTaxa == 2 && j == 1) + MrBayesPrint ("%s ", tempStr); + else if (j == numExcludedTaxa) + MrBayesPrint ("and %s\n", tempStr); + else + MrBayesPrint ("%s, ", tempStr); + } + } + MrBayesPrint ("\n"); + } +} + + +/* Range: Determine range for a vector of MrBFlt values */ +void Range (MrBFlt *vals, int nVals, MrBFlt *min, MrBFlt *max) +{ + SortMrBFlt (vals, 0, nVals-1); + + *min = vals[0]; + *max = vals[nVals-1]; +} + + +/* ResetTaxonSet: Reset included taxa and local outgroup number */ +void ResetTaxonSet (void) +{ + int i, j; + + /* reset numLocalTaxa and localOutGroup */ + localOutGroup = 0; + numLocalTaxa = 0; + for (i=j=0; iroot->f = 0.0; + for (i=t->nNodes-2; i>=0; i--) + { + p = t->allDownPass[i]; + /* find distance to root in relevant units */ + if (sumtParams.isClock == YES && sumtParams.isCalibrated == NO) + p->f = t->root->depth - p->depth; + else if (sumtParams.isClock == YES && sumtParams.isCalibrated == YES) + p->f = t->root->age - p->age; + else + p->f = p->anc->f + p->length; + if (p->left == NULL) + { + f = p->f / (screenWidth - Label(p,YES,NULL,maxLabelLength) - 2); + if (f > scale) + { + scale = f; + treeWidth = screenWidth - Label(p,YES,NULL,maxLabelLength) - 2; + } + } + } + + /* calculate x coordinates */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->x = (int) (0.5 + (p->f / scale)); + } + + /* calculate y coordinates and lines to print */ + for (i=nLines=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left != NULL) + { + /* internal node */ + for (q=p->left->sib; q->sib!=NULL; q=q->sib) + ; + p->y = (int) (0.5 + ((p->left->y + q->y) / 2.0)); + } + else + { + /* terminal node */ + p->y = nLines; + nLines += 2; + } + } + + /* print tree line by line */ + + for (i=0; inNodes; j++) + { + p = t->allDownPass[j]; + if (p->y != i) + continue; + + /* this branch should be printed */ + /* add branch */ + if (p->anc == NULL) + { + /* this is the root of the whole tree */ + printLine[p->x] = '+'; + } + else + { + /* this is an ordinary branch */ + to = p->x; + from = p->anc->x; + for (k=from+1; k<=to; k++) + printLine[k] = '-'; + if (p == p->anc->left) + { + if (markLine[from] == 0) + printLine[from] = '/'; + else + printLine[from] = '|'; + markLine[from] ++; + } + else if (p->sib == NULL) + { + if (markLine[from] == 1) + printLine[from] = '\\'; + else + printLine[from] = '|'; + markLine[from] --; + } + if (p->left!=NULL) + { + if (from != to) + printLine[to] = '+'; + else + printLine[to] = '|'; + } + else + { + /* add label if the branch is terminal */ + Label(p,YES,label,maxLabelLength); + sprintf (printLine+to+2,"%s", label); + } + } + } + + /* check for cross branches */ + for (j=0; j= 1 && printLine[j] == ' ') + printLine[j] = '|'; + } + MrBayesPrintf (fp, "%s\n",printLine); + } + + /* print scale */ + k = (int) (floor (log10 (scale * 80))); + scaleBar = pow (10, k); + barLength = (int) (scaleBar / scale); + if (barLength > 80) + { + barLength /= 10; + scaleBar /= 10.0; + } + else if (barLength > 40) + { + barLength /= 5; + scaleBar /= 5.0; + } + else if (barLength > 16) + { + barLength /= 2; + scaleBar /= 2.0; + } + + if (t->isClock == YES) + { + MrBayesPrint ("%s ", spacer); + for (i=0; i= 1000.0 || f < 0.10) + { + printExponential = YES; + precision = 0; + } + else + { + printExponential = NO; + precision = 2 - (int) (log10 (f)); + } + + curPos = 0; + f = nTimes * scaleBar; + while (curPos < treeWidth) + { + /* print the number */ + if (printExponential == YES) + sprintf (temp, "%.2e", f); + else + sprintf (temp, "%.*lf", precision, f); + + /* room to print ? if so, print */ + width = (int) strlen (temp); + newPos = treeWidth - (int) (nTimes * (scaleBar / scale)); + numSpaces = newPos - width / 2 - curPos; + if (numSpaces >= 0 || (numSpaces >= -2 && curPos == 0)) + { + while (numSpaces > 0) + { + printLine[curPos++] = ' '; + numSpaces--; + } + for (i=0; temp[i]!='\0'; i++) + printLine[curPos++] = temp[i]; + } + + /* get new number */ + f -= scaleBar; + nTimes--; + } + + MrBayesPrint ("%s\n", printLine); + + if (sumtParams.isCalibrated == YES) + MrBayesPrint ("\n%s [User-defined time units]\n\n", spacer); + else + MrBayesPrint ("\n%s [Expected changes per site]\n\n", spacer); + } + else + { + MrBayesPrintf (fp, "%s |", spacer); + for (i=0; inNodes - t->nIntNodes; + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + p->index = k++; + } + + /* calculate max length of labels including taxon index number */ + maxLabelLength = 0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + { + j = Label(p,YES,NULL,maxLength); + if (j > maxLabelLength) + maxLabelLength = j; + } + } + + /* make sure label can hold an interior node index number */ + j = (int) (3.0 + log10((MrBFlt)t->nNodes)); + maxLabelLength = (maxLabelLength > j ? maxLabelLength : j); + + /* calculate remaining screen width for tree + and maxWidth in terms of branches */ + treeWidth = screenWidth - maxLabelLength - 1; + maxWidth = treeWidth / minBranchLength; + + /* unmark whole tree */ + for (i=0; inNodes; i++) + t->allDownPass[i]->mark = 0; + nodesToBePrinted = t->nNodes; + + while (nodesToBePrinted > 0) + { + /* count depth of nodes in unprinted tree */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->mark == 0) /* the node has not been printed yet */ + { + p->x = 0; + /* if it is an interior node in the tree that will be printed + compute the depth of the node */ + if (p->left != NULL && p->left->mark == 0) + { + for (q = p->left; q!=NULL; q=q->sib) + { + if (q->x > p->x) + p->x = q->x; + } + p->x++; + /* break when root of print subtree has been found */ + if (p->x >= maxWidth) + break; + } + } + } + + /* if internal node then find largest nonprinted subtree among descendant nodes */ + if (p->anc != NULL) + { + for (q=p->left; q!=NULL; q=q->sib) + { + if (q->x == p->x - 1 && q->mark == 0) + p = q; + } + MrBayesPrintf (fp, "%s Subtree rooted at node %d:\n\n", spacer, p->index); + isTreeDivided = YES; + } + else if (isTreeDivided == YES) + MrBayesPrintf (fp, "%s Root part of tree:\n\n", spacer); + + /* mark subtree for printing and + translate x coordinates from depth to position */ + if (p->anc == NULL) + printWidth = p->x; + else + printWidth = p->x + 1; + p->mark = 1; + p->x = (int) (treeWidth - 0.5 - ((treeWidth - 1) * (p->x / (MrBFlt) printWidth))); + for (i=t->nNodes-2; i>=0; i--) + { + p = t->allDownPass[i]; + if (p->mark == 0 && p->anc->mark == 1) + { + p->mark = 1; + p->x = (int) (treeWidth - 0.5 - ((treeWidth - 1) * (p->x / (MrBFlt) printWidth))); + } + } + + /* calculate y coordinates of nodes to be printed and lines to print */ + for (i=nLines=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->mark == 1) + { + if (p->left != NULL && p->left->mark == 1) + { + /* internal node */ + for (q=p->left->sib; q->sib!=NULL; q=q->sib) + ; + p->y = (int) (0.5 + ((p->left->y + q->y) / 2.0)); + } + else + { + /* terminal node */ + p->y = nLines; + nLines += 2; + } + } + } + + /* print subtree line by line */ + for (i=0; inNodes; j++) + { + p = t->allDownPass[j]; + if (p->mark != 1 || p->y != i) + continue; + + /* this branch should be printed + add label if the branch is terminal in tree to be printed */ + if (p->left == NULL) + { + Label (p,YES,label,maxLength); + sprintf (printLine+treeWidth+1,"%s", label); + } + else if (p->left->mark == 2) + sprintf (printLine+treeWidth+1,"(%d)", p->index); + + /* add branch */ + if (p->anc == NULL) + { + /* this is the root of the whole tree */ + printLine[p->x] = '+'; + nodesToBePrinted--; + } + else if (p->anc->mark == 0) + { + /* this is a root of a subtree + this branch will have to be printed again so do + not decrease nodesToBePrinted */ + to = p->x; + from = 0; + for (k=from; ksupport*100.0 + 0.5)); + else + *temp='\0'; + from = (int)(from + 1.5 + ((to - from - 1 - strlen(temp)) / 2.0)); + for (k=0; temp[k]!='\0'; k++) + printLine[from++] = temp[k]; + } + else + { + /* this is an ordinary branch */ + to = p->x; + from = p->anc->x; + for (k=from+1; k<=to; k++) + printLine[k] = '-'; + if (p == p->anc->left) + { + printLine[from] = '/'; + markLine[from] = 1; + } + else if (p->sib == NULL) + { + printLine[from] = '\\'; + markLine[from] = 0; + } + if (p->left!=NULL && p->left->mark!=2) + { + printLine[to] = '+'; + if (showSupport == YES) + sprintf (temp, "%d", (int) (p->support*100.0 + 0.5)); + else + *temp='\0'; + from = (int)(from + 1.5 + ((to - from - 1 - strlen(temp)) / 2.0)); + for (k=0; temp[k]!='\0'; k++) + printLine[from++] = temp[k]; + } + nodesToBePrinted--; + } + } + + /* check for cross branches */ + for (j=0; jnNodes; i++) + { + p = t->allDownPass[i]; + if (p->mark == 1) + { + if (p->anc == NULL) + p->mark = 2; + else if (p->anc->mark == 0) + p->mark = 0; /* this branch will have to be printed again */ + else + p->mark = 2; + } + } + + } /* next subtree */ + + free (printLine); + + return NO_ERROR; +} + + +void ShowParts (FILE *fp, BitsLong *p, int nTaxaToShow) +{ + int i; + BitsLong x, y, bitsLongOne; + + bitsLongOne = 1; + + for (i=0; i= 0); + assert (right >= 0); + + i = left; + j = right; + x = item[(left+right)/2]->totCount; + do + { + while (item[i]->totCount > x && i < right) + i++; + while (x > item[j]->totCount && j > left) + j--; + if (i <= j) + { + tempPartCtr = item[i]; + item[i] = item[j]; + item[j] = tempPartCtr; + + i++; + j--; + } + } while (i <= j); + if (left < j) + SortPartCtr (item, left, j); + if (i < right) + SortPartCtr (item, i, right); +} + + +void SortTerminalPartCtr (PartCtr **item, int len) +{ + register int i, j, maxCount; + PartCtr *temp; + + maxCount = item[0]->totCount; + + /* put root first */ + for (i=0; item[i]->totCount == maxCount; i++) + if (NumBits(item[i]->partition, sumtParams.BitsLongsNeeded) == sumtParams.numTaxa) + break; + + if (i!=0) + { + temp = item[0]; + item[0] = item[i]; + item[i] = temp; + } + + /* then find terminals in index order */ + for (i=1; i<=sumtParams.numTaxa; i++) + { + for (j=i; item[j]->totCount == maxCount && jpartition, sumtParams.BitsLongsNeeded) == 1 && + FirstTaxonInPartition(item[j]->partition, sumtParams.BitsLongsNeeded) == i-1) + break; + + if (j!=i) + { + temp = item[i]; + item[i] = item[j]; + item[j] = temp; + } + } +} + + +void SortTreeCtr (TreeCtr **item, int left, int right) +{ + register int i, j; + TreeCtr *tempTreeCtr; + int x; + + i = left; + j = right; + x = item[(left+right)/2]->count; + do + { + while (item[i]->count > x && i < right) + i++; + while (x > item[j]->count && j > left) + j--; + if (i <= j) + { + tempTreeCtr = item[i]; + item[i] = item[j]; + item[j] = tempTreeCtr; + + i++; + j--; + } + } while (i <= j); + if (left < j) + SortTreeCtr (item, left, j); + if (i < right) + SortTreeCtr (item, i, right); +} + + +/* StoreSumtTree: Store tree in treeList in packed format */ +int StoreSumtTree (PackedTree *treeList, int index, PolyTree *t) +{ + int orderLen, numBrlens; + + assert (treeList[index].brlens == NULL); + assert (treeList[index].order == NULL); + + /* get tree dimensions */ + numBrlens = t->nNodes - 1; + orderLen = t->nIntNodes - 1; + + /* allocate space */ + treeList[index].brlens = (MrBFlt *) SafeCalloc (numBrlens, sizeof(MrBFlt)); + treeList[index].order = (int *) SafeCalloc (orderLen, sizeof(MrBFlt)); + if (!treeList[index].order || !treeList[index].brlens) + { + MrBayesPrint ("%s Could not store packed representation of tree '%s'\n", spacer, t->name); + return (ERROR); + } + + /* store tree */ + if (t->isRooted == YES) + StoreRPolyTree (t, treeList[index].order, treeList[index].brlens); + else + StoreUPolyTree (t, treeList[index].order, treeList[index].brlens); + + return (NO_ERROR); +} + + +/* TreeCtrUppass: extract TreeCtr nodes in uppass sequence */ +void TreeCtrUppass (TreeCtr *r, TreeCtr **uppass, int *index) +{ + if (r != NULL) + { + uppass[(*index)++] = r; + + TreeCtrUppass (r->left, uppass, index); + TreeCtrUppass (r->right, uppass, index); + } +} + + +int TreeProb (void) +{ + int i, num, nInSets[5]; + MrBFlt treeProb, cumTreeProb; + TreeCtr **trees; + Tree *theTree; + + /* check if we need to do this */ + if (sumtParams.calcTreeprobs == NO) + return (NO_ERROR); + + MrBayesPrint ("%s Calculating tree probabilities...\n\n", spacer); + + /* allocate space for tree counters and trees */ + trees = (TreeCtr **) SafeCalloc ((size_t)numUniqueTreesFound, sizeof(TreeCtr *)); + theTree = AllocateTree (sumtParams.numTaxa); + if (!trees || !theTree) + { + MrBayesPrint ("%s Problem allocating trees or theTree in TreeProb\n", spacer); + return (ERROR); + } + + /* extract trees */ + i = 0; + TreeCtrUppass (treeCtrRoot, trees, &i); + + /* sort trees */ + SortTreeCtr (trees, 0, numUniqueTreesFound-1); + + /* set basic params in receiving tree */ + theTree->isRooted = sumtParams.isRooted; + if (theTree->isRooted) + { + theTree->nNodes = 2 * sumtParams.numTaxa; + theTree->nIntNodes = sumtParams.numTaxa - 1; + } + else + { + theTree->nNodes = 2 * sumtParams.numTaxa - 2; + theTree->nIntNodes = sumtParams.numTaxa - 2; + } + + /* show tree data */ + cumTreeProb = 0.0; + nInSets[0] = nInSets[1] = nInSets[2] = nInSets[3] = nInSets[4] = 0; + for (num=0; numcount / (MrBFlt)sumtParams.numTreesSampled; + cumTreeProb += treeProb; + if (cumTreeProb >= 0.0 && cumTreeProb < 0.5) + nInSets[0]++; + else if (cumTreeProb >= 0.5 && cumTreeProb < 0.9) + nInSets[1]++; + else if (cumTreeProb >= 0.9 && cumTreeProb < 0.95) + nInSets[2]++; + else if (cumTreeProb >= 0.95 && cumTreeProb < 0.99) + nInSets[3]++; + else + nInSets[4]++; + + /* draw tree to stdout */ + if (theTree->isRooted == YES) + RetrieveRTopology (theTree, trees[num]->order); + else + RetrieveUTopology (theTree, trees[num]->order); + if (sumtParams.showSumtTrees == YES) + { + MrBayesPrint ("\n%s Tree %d (p = %1.3lf, P = %1.3lf):\n\n", spacer, num+1, treeProb, cumTreeProb); + ShowTree (theTree); + } + + /* draw tree to file */ + if (num == 0) + { + MrBayesPrintf (fpTrees, "[This file contains the trees that were found during the MCMC\n"); + MrBayesPrintf (fpTrees, "search, sorted by posterior probability. \"p\" indicates the\n"); + MrBayesPrintf (fpTrees, "posterior probability of the tree whereas \"P\" indicates the\n"); + MrBayesPrintf (fpTrees, "cumulative posterior probability.]\n\n"); + MrBayesPrintf (fpTrees, "begin trees;\n"); + MrBayesPrintf (fpTrees, " translate\n"); + for (i=0; iroot->left, theTree->isRooted); + MrBayesPrintf (fpTrees, ";\n"); + if (num == numUniqueTreesFound - 1) + MrBayesPrintf (fpTrees, "end;\n"); + } + + /* print out general information on credible sets of trees */ + i = nInSets[0] + nInSets[1] + nInSets[2] + nInSets[3] + nInSets[4]; + MrBayesPrint ("%s Credible sets of trees (%d tree%s sampled):\n", spacer, i, i > 1 ? "s" : ""); + i = nInSets[0] + 1; + if (i > 1) + MrBayesPrint ("%s 50 %% credible set contains %d trees\n", spacer, i); + i += nInSets[1]; + if (i > 1) + MrBayesPrint ("%s 90 %% credible set contains %d trees\n", spacer, i); + i += nInSets[2]; + if (i > 1) + MrBayesPrint ("%s 95 %% credible set contains %d trees\n", spacer, i); + i += nInSets[3]; + MrBayesPrint ("%s 99 %% credible set contains %d tree%s\n\n", spacer, i, i > 1 ? "s" : ""); + + /* free memory */ + free (trees); + + return (NO_ERROR); +} + + +void WriteConTree (PolyNode *p, FILE *fp, int showSupport) +{ + PolyNode *q; + + if (p->anc != NULL) + if (p->anc->left == p) + fprintf (fp, "("); + + for (q = p->left; q != NULL; q = q->sib) + { + if (q->anc->left != q) /* Note that q->anc always exists (it is p) */ + fprintf (fp, ","); + WriteConTree (q, fp, showSupport); + } + if (p->left == NULL) + { + if (sumtParams.brlensDef == YES) + { + if (sumtParams.isClock == NO) + fprintf (fp, "%d:%s", p->index+1, MbPrintNum(p->length)); + else + fprintf (fp, "%d:%s", p->index+1, MbPrintNum(p->anc->depth - p->depth)); + } + else + fprintf (fp, "%d", p->index+1); + } + + if (p->sib == NULL && p->anc != NULL) + { + if (p->anc->anc != NULL) + { + if (sumtParams.brlensDef == YES && showSupport == NO) + { + if (sumtParams.isClock == NO) + fprintf (fp, "):%s", MbPrintNum(p->anc->length)); + else + fprintf (fp, "):%s", MbPrintNum(p->anc->anc->depth - p->anc->depth)); + } + else if (sumtParams.brlensDef == NO && showSupport == YES) + fprintf (fp, ")%1.3lf", p->anc->support); + else if (sumtParams.brlensDef == YES && showSupport == YES) + { + if (sumtParams.isClock == NO) + fprintf (fp, ")%1.3lf:%s", p->anc->support, MbPrintNum(p->anc->length)); + else + fprintf (fp, ")%1.3lf:%s", p->anc->support, MbPrintNum(p->anc->anc->depth - p->anc->depth)); + } + else + fprintf (fp, ")"); + } + else + fprintf (fp, ")"); + } +} + + +/* WriteFigTreeConTree: Include rich information for each node in a consensus tree */ +void WriteFigTreeConTree (PolyNode *p, FILE *fp, PartCtr **treeParts) +{ + PolyNode *q; + + if (p->left == NULL) + { + fprintf (fp, "%d", p->index+1); + if (sumtParams.isClock == NO) + PrintFigTreeNodeInfo(fp, treeParts[p->partitionIndex], p->length); + else if (sumtParams.isCalibrated == YES) + PrintFigTreeNodeInfo(fp, treeParts[p->partitionIndex], p->anc->age - p->age); + else + PrintFigTreeNodeInfo(fp, treeParts[p->partitionIndex], p->anc->depth - p->depth); + } + else + { + fprintf (fp, "("); + for (q = p->left; q != NULL; q = q->sib) + { + WriteFigTreeConTree (q, fp, treeParts); + if (q->sib != NULL) + fprintf (fp, ","); + } + fprintf (fp, ")"); + if (p->partitionIndex >= 0 && p->partitionIndex < numUniqueSplitsFound) + { + if (p->anc == NULL) + { + if (sumtParams.isClock == YES) + PrintFigTreeNodeInfo(fp,treeParts[p->partitionIndex], -1.0); + } + else if (sumtParams.isClock == NO) + PrintFigTreeNodeInfo(fp, treeParts[p->partitionIndex], p->length); + else if (sumtParams.isCalibrated == YES) + PrintFigTreeNodeInfo(fp, treeParts[p->partitionIndex], p->anc->age - p->age); + else + PrintFigTreeNodeInfo(fp, treeParts[p->partitionIndex], p->anc->depth - p->depth); + } + } +} + diff --git a/src/sumpt.h b/src/sumpt.h new file mode 100644 index 0000000..82ce273 --- /dev/null +++ b/src/sumpt.h @@ -0,0 +1,51 @@ +#ifndef __SUMPT_H__ +#define __SUMPT_H__ + +/* struct to hold info about a .p file */ +typedef struct + { + int longestLineLength; + int headerLine; + int firstParamLine; + int numRows; + int numColumns; + } SumpFileInfo; + +/* struct to hold info about a model probability */ +typedef struct + { + int index; + double prob; + } ModelProb; + +/* struct to hold a parameter sample, possibly from multiple files */ +typedef struct + { + MrBFlt **values; + } ParameterSample; + +/* function declarations */ +int AllocateParameterSamples (ParameterSample **parameterSamples, int numRuns, int numRows, int numColumns); +int DoSump (void); +int DoSumpParm (char *parmName, char *tkn); +int DoSumSs (void); +int DoSumSsParm (char *parmName, char *tkn); +int ExamineSumpFile (char *fileName, SumpFileInfo *fileInfo, char ***headerNames, int *nHeaders); +int FindHeader (char *token, char **headerNames, int nHeaders, int *index); +void FreeParameterSamples (ParameterSample *parameterSamples); +int GetHeaders (char ***headerNames, char *headerLine, int *nHeaders); +int PrintPlot (MrBFlt *xVals, MrBFlt *yVals, int nSamples); +int ReadParamSamples (char *fileName, SumpFileInfo *fileInfo, ParameterSample *parameterSamples, int runNo); + +int DoCompareTree (void); +int DoCompareTreeParm (char *parmName, char *tkn); +int DoCompRefTree (void); +int DoSumt (void); +int DoSumtParm (char *parmName, char *tkn); +int DoSumtTree (void); +int DoSumtTreeParm (char *parmName, char *tkn); +void ResetTranslateTable (void); +int ShowConTree (FILE *fp, PolyTree *t, int screenWidth, int showSupport); +void ShowParts (FILE *fp, BitsLong *p, int nTaxaToShow); + +#endif /* __SUMPT_H__ */ diff --git a/src/utils.c b/src/utils.c new file mode 100644 index 0000000..59c6389 --- /dev/null +++ b/src/utils.c @@ -0,0 +1,13999 @@ +/* + * MrBayes 3 + * + * (c) 2002-2013 + * + * John P. Huelsenbeck + * Dept. Integrative Biology + * University of California, Berkeley + * Berkeley, CA 94720-3140 + * johnh@berkeley.edu + * + * Fredrik Ronquist + * Swedish Museum of Natural History + * Box 50007 + * SE-10405 Stockholm, SWEDEN + * fredrik.ronquist@nrm.se + * + * With important contributions by + * + * Paul van der Mark (paulvdm@sc.fsu.edu) + * Maxim Teslenko (maxim.teslenko@nrm.se) + * + * and by many users (run 'acknowledgments' to see more info) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details (www.gnu.org). + * + */ + +#include "bayes.h" +#include "best.h" +#include "command.h" +#include "mcmc.h" +#include "model.h" +#include "utils.h" + +const char* const svnRevisionUtilsC = "$Rev: 1062 $"; /* Revision keyword which is expended/updated by svn on each commit/update */ + +#define MAX_GAMMA_CATS 20 +#define PI 3.14159265358979324 +#define PIOVER2 1.57079632679489662 +#define POINTGAMMA(prob,alpha,beta) PointChi2(prob,2.0*(alpha))/(2.0*(beta)) +#define PAI2 6.283185307 +#define TINY 1.0e-20 +#define EVALUATE_COMPLEX_NUMBERS 2 +#if !defined(MAX) +#define MAX(a,b) (((a) > (b)) ? (a) : (b)) +#endif +#if !defined(MIN) +#define MIN(a,b) (((a) < (b)) ? (a) : (b)) +#endif +#define SQUARE(a) ((a)*(a)) + +/* local global variable */ +char noLabel[] = ""; + +/* local prototypes */ +void DatedNodeDepths (TreeNode *p, MrBFlt *nodeDepths, int *index); +void DatedNodes (TreeNode *p, TreeNode **datedTips, int *index); +int NConstrainedTips (TreeNode *p); +int NDatedTips (TreeNode *p); +void PrintNode (char **s, int *len, TreeNode *p, int isRooted); +void ResetPolyNode (PolyNode *p); +void ResetTreeNode (TreeNode *p); +void SetNodeDepths (Tree *t); + +void AddTwoMatrices (int dim, MrBFlt **a, MrBFlt **b, MrBFlt **result); +void BackSubstitutionRow (int dim, MrBFlt **u, MrBFlt *b); +void Balanc (int dim, MrBFlt **a, int *low, int *high, MrBFlt *scale); +void BalBak (int dim, int low, int high, MrBFlt *scale, int m, MrBFlt **z); +MrBFlt BetaCf (MrBFlt a, MrBFlt b, MrBFlt x); +MrBFlt BetaQuantile (MrBFlt alpha, MrBFlt beta, MrBFlt x); +MrBFlt CdfBinormal (MrBFlt h1, MrBFlt h2, MrBFlt r); +MrBFlt CdfNormal (MrBFlt x); +complex Complex (MrBFlt a, MrBFlt b); +MrBFlt ComplexAbsoluteValue (complex a); +complex ComplexAddition (complex a, complex b); +complex ComplexConjugate (complex a); +complex ComplexDivision (complex a, complex b); +void ComplexDivision2 (MrBFlt ar, MrBFlt ai, MrBFlt br, MrBFlt bi, MrBFlt *cr, MrBFlt *ci); +complex ComplexExponentiation (complex a); +int ComplexInvertMatrix (int dim, complex **a, MrBFlt *dwork, int *indx, complex **aInverse, complex *col); +complex ComplexLog (complex a); +void ComplexLUBackSubstitution (int dim, complex **a, int *indx, complex *b); +int ComplexLUDecompose (int dim, complex **a, MrBFlt *vv, int *indx, MrBFlt *pd); +complex ComplexMultiplication (complex a, complex b); +complex ComplexSquareRoot (complex a); +complex ComplexSubtraction (complex a, complex b); +int ComputeEigenSystem (int dim, MrBFlt **a, MrBFlt *v, MrBFlt *vi, MrBFlt **u, int *iwork, MrBFlt *dwork); +void ComputeLandU (int dim, MrBFlt **aMat, MrBFlt **lMat, MrBFlt **uMat); +void ComputeMatrixExponential (int dim, MrBFlt **a, int qValue, MrBFlt **f); +void DivideByTwos (int dim, MrBFlt **a, int power); +MrBFlt D_sign (MrBFlt a, MrBFlt b); +int EigensForRealMatrix (int dim, MrBFlt **a, MrBFlt *wr, MrBFlt *wi, MrBFlt **z, int *iv1, MrBFlt *fv1); +void ElmHes (int dim, int low, int high, MrBFlt **a, int *interchanged); +void ElTran (int dim, int low, int high, MrBFlt **a, int *interchanged, MrBFlt **z); +void Exchange (int j, int k, int l, int m, int n, MrBFlt **a, MrBFlt *scale); +MrBFlt Factorial (int x); +void ForwardSubstitutionRow (int dim, MrBFlt **L, MrBFlt *b); +MrBFlt GammaRandomVariable (MrBFlt a, MrBFlt b, RandLong *seed); +void GaussianElimination (int dim, MrBFlt **a, MrBFlt **bMat, MrBFlt **xMat); +int Hqr2 (int dim, int low, int high, MrBFlt **h, MrBFlt *wr, MrBFlt *wi, MrBFlt **z); +MrBFlt IncompleteBetaFunction (MrBFlt alpha, MrBFlt beta, MrBFlt x); +MrBFlt IncompleteGamma (MrBFlt x, MrBFlt alpha, MrBFlt LnGamma_alpha); +int InvertMatrix (int dim, MrBFlt **a, MrBFlt *col, int *indx, MrBFlt **aInv); +MrBFlt LBinormal (MrBFlt h1, MrBFlt h2, MrBFlt r); +int LogBase2Plus1 (MrBFlt x); +void LUBackSubstitution (int dim, MrBFlt **a, int *indx, MrBFlt *b); +int LUDecompose (int dim, MrBFlt **a, MrBFlt *vv, int *indx, MrBFlt *pd); +void MultiplyMatrixByScalar (int dim, MrBFlt **a, MrBFlt scalar, MrBFlt **result); +MrBFlt PointChi2 (MrBFlt prob, MrBFlt v); +void PrintComplexVector (int dim, complex *vec); +void PrintSquareComplexMatrix (int dim, complex **m); +void PrintSquareDoubleMatrix (int dim, MrBFlt **matrix); +void PrintSquareIntegerMatrix (int dim, int **matrix); +complex ProductOfRealAndComplex (MrBFlt a, complex b); +MrBFlt RndGamma (MrBFlt s, RandLong *seed); +MrBFlt RndGamma1 (MrBFlt s, RandLong *seed); +MrBFlt RndGamma2 (MrBFlt s, RandLong *seed); +int SetQvalue (MrBFlt tol); +void SetToIdentity (int dim, MrBFlt **matrix); +MrBFlt Tha (MrBFlt h1, MrBFlt h2, MrBFlt a1, MrBFlt a2); +void TiProbsUsingEigens (int dim, MrBFlt *cijk, MrBFlt *eigenVals, MrBFlt v, MrBFlt r, MrBFlt **tMat, MrBFlt **fMat, MrBFlt **sMat); +void TiProbsUsingPadeApprox (int dim, MrBFlt **qMat, MrBFlt v, MrBFlt r, MrBFlt **tMat, MrBFlt **fMat, MrBFlt **sMat); + +MrBFlt QuantileLogNormal (MrBFlt prob, MrBFlt mu, MrBFlt sigma); +int DiscreteLogNormal (MrBFlt *rK, MrBFlt sigma, int K, int median); +MrBFlt LogNormalPoint (MrBFlt x, MrBFlt mu, MrBFlt sigma); + +/* AddBitfield: Add bitfield to list of bitfields. The function uses global variable nLongsNeeded. */ +int AddBitfield (BitsLong ***list, int listLen, int *set, int setLen) +{ + int i, nLongsNeeded; + + nLongsNeeded = (setLen - 1) / nBitsInALong + 1; + + (*list) = (BitsLong **) SafeRealloc ((void *)(*list), ((size_t)listLen+1)*sizeof(BitsLong *)); + if (!(*list)) + return ERROR; + + (*list)[listLen] = (BitsLong *) SafeMalloc ((size_t)nLongsNeeded*sizeof(BitsLong)); + if (!(*list)[listLen]) + return ERROR; + + ClearBits ((*list)[listLen], nLongsNeeded); + for (i=0; ilastGen) + break; + fprintf (toFile,"%s",strBuf); + fflush (toFile); + } + + SafeFclose(&fromFile); + free(strBuf); + return (NO_ERROR); +} + + +/* CopyProcessSsFile: copy results from one file to another up to lastStep. Also marginalLnLSS is collected for processed steps*/ +int CopyProcessSsFile (FILE *toFile, char *fromFileName, int lastStep, MrBFlt *marginalLnLSS, MrBFlt * splitfreqSS) +{ + int longestLine, run, curStep, i; + double tmp; + char *strBuf, *strCpy, *word, *tmpcp; + FILE *fromFile; + + if ((fromFile = OpenBinaryFileR(fromFileName)) == NULL) + return ERROR; + + longestLine = LongestLine(fromFile)+10; + SafeFclose(&fromFile); + strBuf = (char *) SafeCalloc (2*(longestLine+2),sizeof(char)); + strCpy = strBuf + longestLine + 2; + + if ((fromFile = OpenTextFileR(fromFileName)) == NULL) + return ERROR; + + while (fgets(strBuf,longestLine,fromFile)!=NULL) + { + strncpy (strCpy,strBuf,longestLine); + word = strtok(strCpy," \t\n"); + /* atoi returns 0 when word is not integer number */ + if (atoi(word)>lastStep) + break; + fprintf (toFile,"%s",strBuf); + fflush (toFile); + curStep = atoi(word); + if (curStep > 0) + { + strtok(NULL,"\t\n"); /*skip power*/ + for (run=0; runlastGen) + break; + (*numTrees)++; + fprintf (toFile,"%s",strBuf); + } + else if (*numTrees == 0) /* do not print the end statement */ + fprintf (toFile,"%s",strBuf); + fflush (toFile); + } + + SafeFclose(&fromFile); + free(strBuf); + return (NO_ERROR); +} + + +/* FirstTaxonInPartition: Find index of first taxon in partition */ +int FirstTaxonInPartition (BitsLong *partition, int length) +{ + int i, j, nBits, taxon; + BitsLong x, bitsLongOne=1; + + nBits = sizeof(BitsLong) * 8; + + taxon = 0; + for (i=0; i=0; k--) + { + for (i=0; i<6; i++) + { + if (fxn[i] != growthFxn[i]) + break; + } + if (i == 6) + break; + + /* get next growth fxn */ + for (i=5; i>=0; i--) + { + fxn[i]--; + if (fxn[i] >= 0) + break; + } + + if (i < 0) + return -1; /* error */ + else if (i < 5) + { + max = 0; + for (j=0; j<=i; j++) + { + if (fxn[j] > max) + max = fxn[j]; + } + fxn[++i] = max + 1; + for (++i; i<6; i++) + fxn[i] = fxn[i-1] + 1; + } + } + + return k; +} + + +/* Convert from model index to 0-based growth function over six states */ +void FromIndexToGrowthFxn(int index, int *growthFxn) +{ + int i, j, max, k; + + /* set growth fxn to lexicographical max */ + for (i=0; i<6; i++) + growthFxn[i] = i; + + /* decrease until we reach index */ + for (k=202; k>index; k--) + { + for (i=5; i>=0; i--) + { + growthFxn[i]--; + if (growthFxn[i] >= 0) + break; + } + + if (i < 0) + return; /* ERROR */ + else if (i < 5) + { + max = 0; + for (j=0; j<=i; j++) + { + if (growthFxn[j] > max) + max = growthFxn[j]; + } + growthFxn[++i] = max + 1; + for (++i; i<6; i++) + growthFxn[i] = growthFxn[i-1] + 1; + } + } +} + + +/* GetIntSummary: Get summary statistics for a number of runs (int version) */ +void GetIntSummary (int **vals, int nRows, int *rowCount, Stat *theStats, int HPD) +{ + int i, j, nVals; + MrBFlt *theValues, *p; + + nVals = 0; + for (i=0; imean), &(theStats->var)); + if (HPD == YES) + LowerUpperMedian (theValues, nVals, &(theStats->lower), &(theStats->upper), &(theStats->median)); + else + LowerUpperMedian (theValues, nVals, &(theStats->lower), &(theStats->upper), &(theStats->median)); + + free (theValues); +} + + +/* Get k from 0-based growth function */ +int GetKFromGrowthFxn(int *growthFxn) +{ + int i, k=0; + + for (i=0; i<6; i++) + if (growthFxn[i] > k) + k = growthFxn[i]; + + return k+1; +} + + +/* GetSummary: Get summary statistics for a number of runs */ +void GetSummary (MrBFlt **vals, int nRows, int *rowCount, Stat *theStats, int HPD) +{ + int i, nVals; + MrBFlt *theValues, *p, *ESS; + + nVals = 0; + for (i=0; imean), &(theStats->var)); + if (HPD == YES) + LowerUpperMedianHPD (theValues, nVals, &(theStats->lower), &(theStats->upper), &(theStats->median)); + else + LowerUpperMedian (theValues, nVals, &(theStats->lower), &(theStats->upper), &(theStats->median)); + if (nRows > 1) + theStats->PSRF = PotentialScaleReduction (vals, nRows, rowCount); + + ESS = (MrBFlt *) SafeMalloc ((size_t)nRows * sizeof(MrBFlt)); + + EstimatedSampleSize (vals, nRows, rowCount, ESS); + theStats->avrESS = theStats->minESS = ESS[0]; + for (i=1; iavrESS += ESS[i]; + if (theStats->minESS > ESS[i]) + { + theStats->minESS = ESS[i]; + } + } + theStats->avrESS /=nRows; + + free (ESS); + free (theValues); +} + + +/* HarmonicArithmeticMean: Calculate harmonic and arithmetic mean from log values */ +int HarmonicArithmeticMeanOnLogs (MrBFlt *vals, int nVals, MrBFlt *mean, MrBFlt *harm_mean) +{ + int i, reliable; + MrBFlt a, x, y, scaler, n; + + reliable = YES; + + scaler = vals[nVals-1]; + a = n = 0.0; + for (i=0; i 400.0) + { + if (y > 5000.0) + { + reliable = NO; + continue; + } + a /= exp(y - 100.0); + scaler += y - 100.0; + y = 100.0; + } + + x = (MrBFlt) exp(y); + + if (n < 0.5) + a = x; + else + { + a += x; + } + n += 1.0; + } + + /* arithmetic mean */ + (*mean) = (MrBFlt) log(a/n) + scaler; + + scaler = (MrBFlt) (0.0 - vals[nVals-1]); + a = n = 0.0; + for (i=0; i 400.0) + { + if (y > 5000.0) + { + reliable = NO; + continue; + } + a /= exp(y - 100.0); + scaler += y - 100.0; + y = 100.0; + } + + x = (MrBFlt) exp(y); + + if (n < 0.5) + a = x; + else + { + a += x; + } + n += (MrBFlt) 1.0; + } + + /* harmonic mean */ + (*harm_mean) = - (MrBFlt) log(a/n) - scaler; + + if (reliable == YES) + return (NO_ERROR); + else + return (ERROR); +} + + +/* IsBitSet: Is bit i set in BitsLong *bits ? */ +int IsBitSet (int i, BitsLong *bits) +{ + BitsLong x, bitsLongOne=1; + + bits += i / nBitsInALong; + + x = bitsLongOne << (i % nBitsInALong); + + if ((*bits) & x) + return (YES); + else + return (NO); +} + + +/* IsConsistentWith: Is token consistent with expected word, case insensitive ? */ +int IsConsistentWith (const char *token, const char *expected) +{ + int i, len; + + if (strlen(token) > strlen(expected)) + return NO; + + len = (int) strlen (token); + + for (i=0; i longest) + longest = lineLength; + lineLength = 0; + /* + if ((ch == '\n') || (ch == '\r')) + { + if (lineLength > longest) + longest = lineLength; + lineLength = 0; + } + else + lineLength++; + */ + } + rewind (fp); /* rewind */ + + return (longest+1); /*+1 to accommodate last character*/ +} + + +/* LowerUpperMedian: Determine median and 95 % credible interval */ +void LowerUpperMedian (MrBFlt *vals, int nVals, MrBFlt *lower, MrBFlt *upper, MrBFlt *median) + +{ + SortMrBFlt (vals, 0, nVals-1); + + *lower = vals[(int)(0.025*nVals)]; + *upper = vals[(int)(0.975*nVals)]; + *median = vals[nVals/2]; + +} + + +/* LowerUpperMedianHPD: Use a simple way to determine HPD */ +void LowerUpperMedianHPD (MrBFlt *vals, int nVals, MrBFlt *lower, MrBFlt *upper, MrBFlt *median) +{ + int i, width, theStart; + MrBFlt f, g, interval; + + SortMrBFlt (vals, 0, nVals-1); + + width = (int)(nVals * 0.95 + 0.5); + theStart = 0; + interval = vals[width-1] - vals[0]; + for (i=1; i y) + return (x); + else + return (y); +} + + +MrBFlt MinimumValue (MrBFlt x, MrBFlt y) +{ + if (x < y) + return (x); + else + return (y); +} + + +/* NOTE!!!! The result of this function should be used before consequtive call to it again. + It means NEVER use it like this: printf ("%s %s", MbPrintNum (a),MbPrintNum (b)) */ +char *MbPrintNum (MrBFlt num) +{ + static char s[40]; + + if (scientific == YES) + sprintf (s,"%.*le", precision, num); + else + sprintf (s,"%.*lf", precision, num); + + return s; +} + + +void MeanVariance (MrBFlt *vals, int nVals, MrBFlt *mean, MrBFlt *var) +{ + int i; + MrBFlt a, aOld, s, x; + + a = s = 0.0; + for (i=0; i 200.0) + { + a /= exp(y - 100.0); + s /= exp(2*(y - 100)); + scaler += y - 100.0; + y = 100.0; + } + + x=(MrBFlt)exp(y); + + aOld = a; + a += (x - a) / (MrBFlt) (i + 1); + s += (x - a) * (x - aOld); + } + + /* mean */ + (*mean) = log(a) + scaler; + + /* variance */ + if (var!=NULL) + { + if (nVals <= 1) + (*var) = 0.0; + else + (*var) = log(s / nVals) + 2*scaler; + } + + /* variance */ + if (varEst!=NULL) + { + if (nVals <= 1) + (*varEst) = 0.0; + else + (*varEst) = log(s / (nVals+1)) + 2*scaler; + } +} + + +void MrBayesPrint (char *format, ...) +{ + va_list ptr; + +# if defined (MPI_ENABLED) + if (proc_id == 0) + { + if (echoMB == YES) + { + va_start (ptr, format); + vprintf (format, ptr); + va_end(ptr); + fflush (stdout); + } + if (logToFile == YES) + { + if (logFileFp == NULL) + printf ("%s Could not print log output to file\n", spacer); + else + { + va_start (ptr, format); + vfprintf (logFileFp, format, ptr); + va_end(ptr); + fflush (logFileFp); + } + } + } +# else + if (chainParams.redirect == NO) + { + if (echoMB == YES) + { + va_start (ptr, format); + vprintf (format, ptr); + va_end(ptr); + fflush (stdout); + } + if (logToFile == YES) + { + if (logFileFp == NULL) + { + printf ("%s Could not print log output to file\n", spacer); + logToFile = NO; + } + else + { + va_start (ptr, format); + vfprintf (logFileFp, format, ptr); + va_end(ptr); + fflush (logFileFp); + } + } + } +# endif +} + + +void MrBayesPrintf (FILE *f, char *format, ...) +{ + va_list ptr; + +# if defined (MPI_ENABLED) + if (proc_id == 0) + { + va_start (ptr, format); + vfprintf (f, format, ptr); + va_end(ptr); + fflush(f); + } +# else + va_start (ptr, format); + vfprintf (f, format, ptr); + va_end(ptr); + fflush(f); +# endif +} + + +/** Next taxon in partition, for cycling over set bits in bit fields */ +int NextTaxonInPartition(int currentTaxon, BitsLong *partition, int length) +{ + int i, j, taxon; + BitsLong x, bitsLongOne=1; + + taxon = currentTaxon + 1; + i = taxon / nBitsInALong; + x = (bitsLongOne << taxon % nBitsInALong); + for (j=taxon%nBitsInALong; j 0.0) + { + R2 = ((weight - 1.0) / weight) + ((MrBFlt)(nRuns + 1) / (MrBFlt) (nRuns)) * (sB / sW); + return sqrt(R2); + } + else + return -1.0; +} + + +/*! +\param vals[0..nRuns][count[]] All records for all runs +\param nRuns Number of runs +\param count[0..nRuns] Number of records in each run +\param returnESS[0..nRuns] Is an arry in which the routine returns ESS values for each run. +*/ +void EstimatedSampleSize (MrBFlt **vals, int nRuns, int *count, MrBFlt *returnESS) +{ + int i, j, lag, maxLag, samples; + MrBFlt *values, mean, del1, del2, varStat=0.0; + MrBFlt gammaStat[2000]; + + for (i=0; i 2000)?2000:(samples - 1); + + for (lag = 0; lag < maxLag; lag++) + { + gammaStat[lag]=0; + for (j = 0; j < samples - lag; j++) + { + del1 = values[j] - mean; + del2 = values[j + lag] - mean; + gammaStat[lag] += (del1 * del2); + } + + gammaStat[lag] /= ((MrBFlt) (samples - lag)); + + if (lag == 0) + { + varStat = gammaStat[0]; + } + else if (lag % 2 == 0) + { + if (gammaStat[lag - 1] + gammaStat[lag] > 0) + { + varStat += 2.0 * (gammaStat[lag - 1] + gammaStat[lag]); + } + else + maxLag = lag; + } + } + returnESS[i] = (gammaStat[0] * samples) / varStat; + } +} + + +/* SafeCalloc: Print error if out of memory */ +void *SafeCalloc(size_t n, size_t s) { + + void *ptr; + + if (s*n == 0) + { + //return NULL; + } + + ptr= calloc(n, s); + + if (ptr==NULL) + { + MrBayesPrint ("%s Out of memory. Most probable course for the problem is that MrBayes reached\n", spacer); + MrBayesPrint ("%s the limit of allowed memory for a process in your Operating System. Consult\n", spacer); + MrBayesPrint ("%s documentation of your OS how to extend the limit, or use 64 bit version OS \n", spacer); + MrBayesPrint ("%s and compile 64 bit version of MrBayes. \n", spacer); + MrBayesPrint ("%s Segmentation fault may follow. \n", spacer); + return NULL; + } + + return ptr; +} + + +int SafeFclose(FILE **fp) { + int retval=-1; +# if defined MPI_ENABLED + if (proc_id == 0) { +# endif + if (fp!=NULL && (*fp)!=NULL) + retval=fclose(*fp); + *fp = NULL; +# if defined MPI_ENABLED + } +# endif + return retval; +} + + +/* SafeFree: Set pointer to freed space to NULL */ +void SafeFree (void **ptr) +{ + free (*ptr); + + (*ptr) = NULL; +} + + +/* SafeMalloc: Print error if out of memory; clear memory */ +void *SafeMalloc (size_t s) +{ + void *ptr; + + if (s == 0) + { + return NULL; + } + + ptr= malloc(s); + + if (ptr==NULL) + { + MrBayesPrint ("%s Out of memory. Most probable course for the problem is that MrBayes reached\n", spacer); + MrBayesPrint ("%s the limit of allowed memory for a process in your Operating System. Consult\n", spacer); + MrBayesPrint ("%s documentation of your OS how to extend the limit, or use 64 bit version OS \n", spacer); + MrBayesPrint ("%s and compile 64 bit version of MrBayes. \n", spacer); + MrBayesPrint ("%s Segmentation fault may follow. \n", spacer); + return NULL; + } + + return memset(ptr,0,s); +} + + +/* SafeRealloc: Print error if out of memory */ +void *SafeRealloc (void *ptr, size_t s) +{ + if (s == 0) + { + free(ptr); + return NULL; + } + + if (ptr == NULL) + { + ptr = malloc (s); + memset(ptr, 0, s); + } + else + ptr = realloc (ptr, s); + + if (ptr==NULL) + { + MrBayesPrint ("%s Out of memory. Most probable course for the problem is that MrBayes reached\n", spacer); + MrBayesPrint ("%s the limit of allowed memory for a process in your Operating System. Consult\n", spacer); + MrBayesPrint ("%s documentation of your OS how to extend the limit, or use 64 bit version OS \n", spacer); + MrBayesPrint ("%s and compile 64 bit version of MrBayes. \n", spacer); + MrBayesPrint ("%s Segmentation fault may follow. \n", spacer); + return NULL; + } + + return ptr; +} + + +/* SafeStrcat: Allocate or reallocate target to fit result; assumes ptr is NULL if not allocated */ +char *SafeStrcat (char **target, const char *source) +{ + if (*target == NULL) + *target = (char *) SafeCalloc (strlen(source)+1, sizeof(char)); + else + *target = (char *) SafeRealloc ((void *)*target, (strlen(source)+strlen(*target)+1)*sizeof(char)); + + if (*target) + strcat(*target, source); + + return (*target); +} + + +/* SafeStrcpy: Allocate or reallocate target to fit result; assumes ptr is NULL if not allocated */ +char *SafeStrcpy (char **target, const char *source) +{ + *target = (char *) SafeRealloc ((void *)*target, (strlen(source)+1)*sizeof(char)); + + if (*target) + strcpy(*target,source); + + return (*target); +} + + +/* SetBit: Set a particular bit in a series of longs */ +void SetBit (int i, BitsLong *bits) +{ + BitsLong x, bitsLongOne=1; + + bits += i / nBitsInALong; + + x = bitsLongOne << (i % nBitsInALong); + + (*bits) |= x; +} + + +void SortInts (int *item, int *assoc, int count, int descendingOrder) +{ + SortInts2 (item, assoc, 0, count-1, descendingOrder); +} + + +void SortInts2 (int *item, int *assoc, int left, int right, int descendingOrder) +{ + register int i, j, x, y; + + if (descendingOrder == YES) + { + i = left; + j = right; + x = item[(left+right)/2]; + do + { + while (item[i] > x && i < right) + i++; + while (x > item[j] && j > left) + j--; + if (i <= j) + { + y = item[i]; + item[i] = item[j]; + item[j] = y; + + if (assoc) + { + y = assoc[i]; + assoc[i] = assoc[j]; + assoc[j] = y; + } + i++; + j--; + } + } while (i <= j); + if (left < j) + SortInts2 (item, assoc, left, j, descendingOrder); + if (i < right) + SortInts2 (item, assoc, i, right, descendingOrder); + } + else + { + i = left; + j = right; + x = item[(left+right)/2]; + do + { + while (item[i] < x && i < right) + i++; + while (x < item[j] && j > left) + j--; + if (i <= j) + { + y = item[i]; + item[i] = item[j]; + item[j] = y; + + if (assoc) + { + y = assoc[i]; + assoc[i] = assoc[j]; + assoc[j] = y; + } + i++; + j--; + } + } while (i <= j); + if (left < j) + SortInts2 (item, assoc, left, j, descendingOrder); + if (i < right) + SortInts2 (item, assoc, i, right, descendingOrder); + } +} + + +/* SortMrBFlt: Sort in increasing order */ +void SortMrBFlt (MrBFlt *item, int left, int right) +{ + register int i, j; + MrBFlt x, temp; + + i = left; + j = right; + x = item[(left+right)/2]; + do + { + while (item[i] < x && i < right) + i++; + while (x < item[j] && j > left) + j--; + if (i <= j) + { + temp = item[i]; + item[i] = item[j]; + item[j] = temp; + + i++; + j--; + } + } while (i <= j); + if (left < j) + SortMrBFlt (item, left, j); + if (i < right) + SortMrBFlt (item, i, right); +} + + +/* StrCmpCaseInsensitive: Case insensitive string comparison */ +int StrCmpCaseInsensitive (char *s, char *t) +{ + int i, minLen; + + if (strlen(s) < strlen(t)) + minLen = (int) strlen(s); + else + minLen = (int) strlen(t); + + for (i=0; i tolower(t[i])) + return 1; + else + return -1; +} + + +/* StripComments: Strip possibly nested comments from the string s. + Example: s="text1[text2[text3]]"-> s="text1" */ +void StripComments (char *s) +{ + char *t; + int inComment; + + inComment = 0; + for (t=s; *s != '\0'; s++) + { + if (inComment == 0) + { + if (*s == '[') + inComment++; + else + *t++ = *s; + } + else + { + if (*s == ']') + inComment--; + else if (*s == '[') + inComment++; + } + } + *t = '\0'; +} + + +FILE *TestOpenTextFileR (char *name) +{ + char fileName[100]; + + strcpy(fileName, workingDir); + strncat(fileName, name, 99 - strlen(fileName)); + + return fopen (fileName, "r"); +} + + +/*--------- +| +| UpdateGrowthFxn: We expect a set of unique indexes from 0 to 5 +| indicating a partition of 6 rates into sets. We make sure +| the indices correspond to a restricted growth function here. +| +-----------------------*/ +void UpdateGrowthFxn(int *growthFxn) +{ + int i, j, max, fxn[6]; + + for (i=0; i<6; i++) + fxn[i] = -1; + + max = 0; + for (i=0; i<6; i++) + { + if (fxn[i] != -1) + continue; + for (j=i; j<6; j++) + { + if (growthFxn[j] == growthFxn[i]) + fxn[j] = max; + } + max++; + } + + for (i=0; i<6; i++) + growthFxn[i] = fxn[i]; +} + + +int UpperTriangIndex(int i, int j, int size) +{ + if (i < j) + return (2*size - i - 3) * i / 2 + j - 1; + else + return (2*size - j - 3) * j / 2 + i - 1; +} + + +int WantTo (const char *msg) +{ + char s[100]; + int i; + + MrBayesPrint ("%s %s? (yes/no): ", spacer, msg); + + for (i=0; i<10; i++) + { + if (fgets (s, 98, stdin) == NULL) + { + MrBayesPrint ("%s Failed to retrieve answer; will take that as a no\n", spacer); + return NO; + } + + /* Strip away the newline */ + s[strlen(s)-1] = '\0'; + + /* Check answer */ + if (IsConsistentWith (s, "yes") == YES) + return YES; + else if (IsConsistentWith (s, "no") == YES) + return NO; + + MrBayesPrint ("%s Enter yes or no: ", spacer); + } + + MrBayesPrint ("%s MrBayes does not understand; will take that as a no\n", spacer); + + return NO; +} + + +/* the following are moved from tree.c */ +/* AddToTreeList: Add tree at end of tree list */ +int AddToTreeList (TreeList *treeList, Tree *tree) +{ + TreeListElement *listElement = (TreeListElement *) SafeCalloc (1, sizeof(TreeListElement)); + if (!listElement) + return (ERROR); + + listElement->order = (int *) SafeCalloc (tree->nIntNodes-1, sizeof(int)); + if (!listElement->order) + return (ERROR); + listElement->next = NULL; + + if (treeList->last == NULL) + treeList->last = treeList->first = listElement; + else + { + treeList->last->next = listElement; + treeList->last = listElement; + } + + if (tree->isRooted) + StoreRTopology (tree, listElement->order); + else + StoreUTopology (tree, listElement->order); + + return (NO_ERROR); +} + + +/* AllocatePolyTree: Allocate memory space for a polytomous tree */ +PolyTree *AllocatePolyTree (int numTaxa) +{ + int i; + PolyTree *pt; + + pt = (PolyTree *) SafeCalloc (1, sizeof (PolyTree)); + if (!pt) + return (NULL); + + pt->memNodes = 2*numTaxa; + pt->nodes = (PolyNode *) SafeCalloc (2*numTaxa, sizeof(PolyNode)); + pt->allDownPass = (PolyNode **) SafeCalloc (3*numTaxa, sizeof (PolyNode *)); + pt->intDownPass = pt->allDownPass + 2*numTaxa; + if (pt->nodes == NULL || pt->allDownPass == NULL) + { + free (pt->nodes); + free (pt->allDownPass); + free (pt); + return (NULL); + } + + /* initialize nodes and set index and memoryIndex */ + for (i=0; i<2*numTaxa; i++) + { + ResetPolyNode(&pt->nodes[i]); + pt->nodes[i].memoryIndex = i; + pt->nodes[i].index = i; + } + + /* initialize tree properties */ + pt->nNodes = pt->nIntNodes = 0; + pt->root = NULL; + pt->brlensDef = NO; + pt->isRooted = NO; + pt->isClock = NO; + pt->isCalibrated = NO; + pt->isRelaxed = NO; + pt->clockRate = 0.0; + strcpy(pt->name,""); + + /* initialize bitsets */ + pt->bitsets = NULL; + + /* initialize relaxed clock parameters */ + pt->nESets = 0; + pt->nEvents = NULL; + pt->position = NULL; + pt->rateMult = NULL; + pt->eSetName = NULL; + + pt->nBSets = 0; + pt->effectiveBrLen = NULL; + pt->bSetName = NULL; + + /* initialize population size set parameters */ + pt->popSizeSet = NO; + pt->popSize = NULL; + pt->popSizeSetName = NULL; + + return (pt); +} + + +/* AllocatePolyTreeRelClockParams: Allocate space for relaxed clock parameters */ +int AllocatePolyTreeRelClockParams (PolyTree *pt, int nBSets, int nESets) +{ + int i; + + /* free previous clock params if any */ + FreePolyTreeRelClockParams (pt); + + /* set number of sets */ + pt->nBSets = nBSets; + pt->nESets = nESets; + + /* we do not allocate space for the actual names here; these will be NULL pointers */ + + /* take care of branch params */ + if (pt->nBSets > 0) + { + pt->bSetName = (char **) SafeCalloc (pt->nBSets, sizeof (char *)); + pt->effectiveBrLen = (MrBFlt **) SafeCalloc (pt->nBSets, sizeof (MrBFlt *)); + for (i=0; inBSets; i++) + pt->effectiveBrLen[i] = (MrBFlt *) SafeCalloc (pt->memNodes, sizeof(MrBFlt)); + } + + /* take care of breakpoint params */ + if (pt->nESets > 0) + { + pt->eSetName = (char **) SafeCalloc (pt->nESets, sizeof(char *)); + pt->nEvents = (int **) SafeCalloc (pt->nESets, sizeof(int *)); + pt->position = (MrBFlt ***) SafeCalloc (pt->nESets, sizeof(MrBFlt **)); + pt->rateMult = (MrBFlt ***) SafeCalloc (pt->nESets, sizeof(MrBFlt **)); + for (i=0; inESets; i++) + { + pt->nEvents[i] = (int *) SafeCalloc (pt->memNodes, sizeof(int)); + pt->position[i] = (MrBFlt **) SafeCalloc (pt->memNodes, sizeof(MrBFlt *)); + pt->rateMult[i] = (MrBFlt **) SafeCalloc (pt->memNodes, sizeof(MrBFlt *)); + } + } + + return (NO_ERROR); +} + + +/* AllocatePolyTreePartitions: Allocate space for and set partitions for polytomous tree */ +int AllocatePolyTreePartitions (PolyTree *pt) +{ + int i, nLongsNeeded, numTaxa; + + /* get some handy numbers */ + numTaxa = pt->memNodes/2; + nLongsNeeded = (numTaxa -1) / nBitsInALong + 1; + + /* allocate space */ + pt->bitsets = (BitsLong *) SafeRealloc ((void *)pt->bitsets, pt->memNodes*nLongsNeeded*sizeof(BitsLong)); + if (pt->bitsets == NULL) + return (ERROR); + for (i=0; imemNodes*nLongsNeeded; i++) + pt->bitsets[i] = 0; + + /* set node partition pointers */ + for (i=0; imemNodes; i++) + pt->nodes[i].partition = pt->bitsets + i*nLongsNeeded; + + /* clear and set partitions; if the tree is empty, nothing is set */ + ResetPolyTreePartitions(pt); + + return (NO_ERROR); +} + + +/* AllocateTree: Allocate memory space for a tree (unrooted or rooted) */ +Tree *AllocateTree (int numTaxa) +{ + int i; + Tree *t; + + t = (Tree *) SafeCalloc (1, sizeof (Tree)); + if (t == NULL) + return NULL; + + /* initialize basic tree properties */ + t->memNodes = 2*numTaxa; + strcpy (t->name, ""); + + t->isRooted = NO; + t->isClock = NO; + + t->checkConstraints = NO; + t->nConstraints = 0; + t->nLocks = 0; + t->isCalibrated = NO; + t->nNodes = t->nIntNodes = 0; + t->nRelParts = 0; + t->relParts = NULL; + + /* initialize pointers */ + t->bitsets = NULL; + t->flags = NULL; + t->constraints = NULL; + + /* allocate and initialize nodes and node arrays (enough for both rooted and unrooted trees) */ + t->nNodes = 0; + t->nIntNodes = 0; + if ((t->nodes = (TreeNode *) SafeCalloc (2*numTaxa, sizeof (TreeNode))) == NULL) + { + free (t); + return NULL; + } + if ((t->allDownPass = (TreeNode **) SafeCalloc (3*numTaxa, sizeof (TreeNode *))) == NULL) + { + free (t->nodes); + free (t); + return NULL; + } + t->intDownPass = t->allDownPass + t->memNodes; + + /* initialize nodes and set index and memoryIndex */ + for (i=0; imemNodes; i++) + { + ResetTreeNode(&t->nodes[i]); + t->nodes[i].memoryIndex = i; + t->nodes[i].index = i; + } + + return t; +} + + +/* AllocateFixedTree: Allocate memory space for a fixed unrooted or rooted tree */ +Tree *AllocateFixedTree (int numTaxa, int isRooted) +{ + int i; + Tree *t; + + t = (Tree *) SafeCalloc (1, sizeof (Tree)); + if (t == NULL) + return NULL; + + /* initialize basic tree properties */ + if (isRooted == YES) + t->memNodes = 2*numTaxa; + else + t->memNodes = 2*numTaxa - 2; + strcpy (t->name, ""); + + t->isRooted = isRooted; + t->isClock = NO; + + t->checkConstraints = NO; + t->nConstraints = 0; + t->nLocks = 0; + t->isCalibrated = NO; + t->nNodes = t->nIntNodes = 0; + t->nRelParts = 0; + t->relParts = NULL; + + /* initialize pointers */ + t->bitsets = NULL; + t->flags = NULL; + t->constraints = NULL; + + /* allocate and initialize nodes and node arrays (enough for both rooted and unrooted trees) */ + if (t->isRooted) + { + t->nNodes = 2*numTaxa; + t->nIntNodes = numTaxa - 1; + } + else + { + t->nNodes = 2*numTaxa - 2; + t->nIntNodes = numTaxa - 2; + } + if ((t->nodes = (TreeNode *) SafeCalloc (t->nNodes, sizeof (TreeNode))) == NULL) + { + free (t); + return NULL; + } + if ((t->allDownPass = (TreeNode **) SafeCalloc (t->nNodes + t->nIntNodes, sizeof (TreeNode *))) == NULL) + { + free (t->nodes); + free (t); + return NULL; + } + t->intDownPass = t->allDownPass + t->nNodes; + + /* initialize nodes and set index and memoryIndex */ + for (i=0; imemNodes; i++) + { + ResetTreeNode(&t->nodes[i]); + t->nodes[i].memoryIndex = i; + t->nodes[i].index = i; + } + + return t; +} + + +/* AllocateTreePartitions: Allocate space for and set partitions for tree */ +int AllocateTreePartitions (Tree *t) +{ + int i, nLongsNeeded, numTaxa; + TreeNode *p; + + /* get some handy numbers */ + if (t->isRooted == YES) + numTaxa = t->nNodes - t->nIntNodes - 1; + else + numTaxa = t->nNodes - t->nIntNodes; + nLongsNeeded = (numTaxa - 1) / nBitsInALong + 1; + + /* reallocate space */ + t->bitsets = (BitsLong *) SafeRealloc ((void *)(t->bitsets), (size_t)(t->nNodes) * (size_t)nLongsNeeded * sizeof(BitsLong)); + if (!t->bitsets) + return (ERROR); + + /* clear bit fields */ + for (i=0; inNodes*nLongsNeeded; i++) + t->bitsets[i] = 0; + + /* set node pointers to bit fields */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->partition = t->bitsets + i*nLongsNeeded; + } + + /* set partition specifiers for terminals */ + ResetTreePartitions(t); + + return (NO_ERROR); +} + + +int AreTopologiesSame (Tree *t1, Tree *t2) +{ + int i, j, k, nLongsNeeded, nTaxa; + BitsLong *mask; + TreeNode *p, *q; + + if (t1->nNodes != t2->nNodes) + return (NO); + if (t1->nIntNodes != t2->nIntNodes) + return (NO); + + if (t1->isRooted == YES) + nTaxa = t1->nNodes - t1->nIntNodes - 1; + else + nTaxa = t1->nNodes - t1->nIntNodes; + + /* allocate space for mask */ + nLongsNeeded = (nTaxa - 1) / nBitsInALong + 1; + mask = (BitsLong *) SafeCalloc (nLongsNeeded, sizeof(BitsLong)); + + /* set mask */ + for (i=0; inIntNodes; i++) + { + p = t1->intDownPass[i]; + if (t1->isRooted == NO && IsBitSet(t2->root->index,p->partition)) + FlipBits(p->partition,nLongsNeeded, mask); + for (j=0; jnIntNodes; j++) + { + q = t2->intDownPass[j]; + for (k=0; kpartition[k] != q->partition[k]) + break; + } + if (k == nLongsNeeded) + break; + } + if (j == t2->nIntNodes) + { + FreeTreePartitions (t1); + FreeTreePartitions (t2); + free (mask); + return (NO); + } + } + + FreeTreePartitions (t1); + FreeTreePartitions (t2); + free (mask); + return (YES); +} + + +int AreTreesSame (Tree *t1, Tree *t2) +{ + int i, j, k, nLongsNeeded, nTaxa; + BitsLong *mask; + TreeNode *p, *q; + + extern void ShowNodes(TreeNode*, int, int); + + if (t1->nNodes != t2->nNodes) + return (NO); + if (t1->nIntNodes != t2->nIntNodes) + return (NO); + + if (t1->isRooted == YES) + nTaxa = t1->nNodes - t1->nIntNodes - 1; + else + nTaxa = t1->nNodes - t1->nIntNodes; + + /* allocate space for mask */ + nLongsNeeded = (nTaxa - 1) / nBitsInALong + 1; + mask = (BitsLong *) SafeCalloc (nLongsNeeded, sizeof(BitsLong)); + + /* set mask */ + for (i=0; inNodes; i++) + { + p = t1->allDownPass[i]; + if (p->anc == NULL && t1->isRooted == YES) + continue; + if (t1->isRooted == NO && IsBitSet(t2->root->index,p->partition)) + FlipBits(p->partition,nLongsNeeded, mask); + for (j=0; jnNodes; j++) + { + q = t2->allDownPass[j]; + for (k=0; kpartition[k] != q->partition[k]) + break; + } + if (k == nLongsNeeded && AreDoublesEqual (p->length, q->length, 0.000001) == YES) + break; + else if (k == nLongsNeeded) + { + FreeTreePartitions (t1); + FreeTreePartitions (t2); + free (mask); + return (NO); + } + } + if (j == t2->nNodes) + { + FreeTreePartitions (t1); + FreeTreePartitions (t2); + free (mask); + return (NO); + } + } + + FreeTreePartitions (t1); + FreeTreePartitions (t2); + free (mask); + return (YES); +} + + +/*---------------------------------------------------------------- +| +| BuildConstraintTree: Build constraint tree. The tree t is +| needed only to hold information about constraints and +| included taxa. +| +----------------------------------------------------------------*/ +int BuildConstraintTree (Tree *t, PolyTree *pt, char **localTaxonNames) +{ + int i, j, k, constraintId, nLongsNeeded, nextNode; + BitsLong *constraintPartition, *mask; + PolyNode *pp, *qq, *rr, *ss, *tt; + + pt->isRooted = t->isRooted; + + nLongsNeeded = (numLocalTaxa - 1) / nBitsInALong + 1; + constraintPartition = (BitsLong *) SafeCalloc (2*nLongsNeeded, sizeof(BitsLong)); + if (!constraintPartition) + { + MrBayesPrint ("%s Problems allocating constraintPartition in BuildConstraintTree", spacer); + return (ERROR); + } + mask = constraintPartition + nLongsNeeded; + + /* calculate mask (needed to take care of unused bits when flipping partitions) */ + for (i=0; inodes[i]; + pp->isDated = NO; + pp->calibration = NULL; + pp->age = -1.0; + pp->isLocked = NO; + pp->lockID = -1; + pp->index = i; + } + + /* build a bush */ + pt->root = &pt->nodes[numLocalTaxa]; + for (i=0; inodes[i]; + pp->index = i; + pp->left = NULL; + if (i == numLocalTaxa - 1) + pp->sib = NULL; + else + pp->sib = &pt->nodes[i+1]; + pp->anc = pt->root; + } + pp = pt->root; + pp->left = &pt->nodes[0]; + pp->anc = pp->sib = NULL; + pt->nNodes = numLocalTaxa + 1; + pt->nIntNodes = 1; + + /* make sure the outgroup is the right-most node */ + pt->nodes[localOutGroup].index = numLocalTaxa - 1; + pt->nodes[numLocalTaxa - 1].index = localOutGroup; + + /* allocate and set partition specifiers in bush */ + GetPolyDownPass(pt); + AllocatePolyTreePartitions(pt); + + /* set terminal taxon labels */ + for (i=0; inNodes; i++) + { + pp = pt->allDownPass[i]; + if (pp->index < numLocalTaxa) + strcpy (pp->label, localTaxonNames[pp->index]); + } + + /* resolve the bush according to constraints */ + /* for now, satisfy all constraints */ + /* for now, bail out if constraints are not compatible */ + /* Eventually, we might want to be build a parsimony (WAB) or compatibility (WIB) matrix and + draw a starting tree from the universe according to the score of the tree. A simple way of accomplishing + approximately this is to use sequential addition, with probabilities in each step determined + by the parsimony or compatibility score of the different possibilities. */ + nextNode = numLocalTaxa + 1; + t->nLocks=0; + for (constraintId=0; constraintIdconstraints[constraintId] == NO || definedConstraintsType[constraintId] != HARD) + continue; + + /* initialize bits in partition to add; get rid of deleted taxa in the process */ + ClearBits(constraintPartition, nLongsNeeded); + for (i=j=0; iisRooted == NO && IsBitSet(localOutGroup, constraintPartition)) + FlipBits(constraintPartition, nLongsNeeded, mask); + + /* check that partition should be included */ + k = NumBits(constraintPartition, nLongsNeeded); + if (k == 0) + { + MrBayesPrint ("%s WARNING: Constraint '%s' refers only to deleted taxa\n", spacer, constraintNames[constraintId]); + MrBayesPrint ("%s and will be disregarded\n", spacer); + t->constraints[constraintId] = NO; + continue; + } + if (k == 1) + { + MrBayesPrint ("%s WARNING: Constraint '%s' refers to a single tip and\n", spacer, constraintNames[constraintId]); + MrBayesPrint ("%s will be disregarded\n", spacer); + t->constraints[constraintId] = NO; + continue; + } + + /* check if root in rooted tree (we allow this to enable inference of ancestral states) */ + if (k == numLocalTaxa && t->isRooted == YES) + { + if (pt->root->isLocked == YES) { + MrBayesPrint ("%s WARNING: Constraint '%s' is a duplicate of another constraint\n", spacer, constraintNames[constraintId]); + MrBayesPrint ("%s and will be ignored\n", spacer); + t->constraints[constraintId] = NO; + continue; + } + pt->root->isLocked = YES; + pt->root->lockID = constraintId; + t->nLocks++; + continue; + } + + /* check if interior root in unrooted tree (we allow this to enable inference of ancestral states) */ + if ((k == numLocalTaxa - 1 || k == numLocalTaxa) && t->isRooted == NO) + { + if (pt->root->isLocked == YES) { + MrBayesPrint ("%s WARNING: Constraint '%s' is a duplicate of another constraint\n", spacer, constraintNames[constraintId]); + MrBayesPrint ("%s and will be ignored\n", spacer); + t->constraints[constraintId] = NO; + continue; + } + pt->root->isLocked = YES; + pt->root->lockID = constraintId; + t->nLocks++; + continue; + } + + /* find first included terminal */ + k = FirstTaxonInPartition (constraintPartition, nLongsNeeded); + for (i=0; pt->nodes[i].index != k; i++) + ; + pp = &pt->nodes[i]; + + /* go down until node is not included in constraint */ + do { + qq = pp; + pp = pp->anc; + } while (IsPartNested(pp->partition, constraintPartition, nLongsNeeded)); + + /* check that the node has not yet been included */ + for (i=0; ipartition[i] != constraintPartition[i]) + break; + } + if (i==nLongsNeeded) + { + MrBayesPrint ("%s WARNING: Constraint '%s' is a duplicate of another constraint\n", spacer, constraintNames[constraintId]); + MrBayesPrint ("%s and will be ignored\n", spacer); + t->constraints[constraintId] = NO; + continue; + } + + /* create a new node */ + tt = &pt->nodes[nextNode++]; + tt->anc = pp; + tt->isLocked = YES; + tt->lockID = constraintId; + t->nLocks++; + for (i=0; ipartition[i] = constraintPartition[i]; + pt->nIntNodes++; + pt->nNodes++; + + /* sort descendant nodes in two connected groups: included and excluded */ + /* if there is a descendant that overlaps (incompatible) then return error */ + rr = ss = NULL; + qq = pp->left; + do { + if (IsPartNested(qq->partition, constraintPartition, nLongsNeeded)) + { + if (ss != NULL) + ss->sib = qq; + else + tt->left = qq; + ss = qq; + qq->anc = tt; + } + else if (IsPartCompatible(qq->partition, constraintPartition, nLongsNeeded)) + { + if (rr != NULL) + rr->sib = qq; + else + tt->sib = qq; + rr = qq; + } + else + { + free (constraintPartition); + return (ERROR); + } + qq = qq->sib; + } while (qq != NULL); + pp->left = tt; + rr->sib = ss->sib = NULL; + } + + /* relabel interior nodes */ + GetPolyDownPass(pt); + for (i=0; inIntNodes; i++) + pt->intDownPass[i]->index = i + numLocalTaxa; + + /* exit */ + free (constraintPartition); + FreePolyTreePartitions(pt); + return (NO_ERROR); +} + + +/*---------------------------------------------- +| +| BuildRandomRTopology: Builds a random rooted +| topology. Will set indices in t->nodes +| such that they are from 0 to n-1 for the n tips +| and from n to 2n-2 for the n-1 interior +| nodes. Last is root. Does not touch labels +| of tips. +| +----------------------------------------------*/ +int BuildRandomRTopology (Tree *t, RandLong *seed) +{ + int i, j, nTips; + TreeNode *p, *q, *r; + + nTips = t->nNodes - t->nIntNodes - 1; + + for (i=0; inNodes; i++) + { + p = &t->nodes[i]; + p->index = i; + p->left = p->right = p->anc = NULL; + } + + /* connect the first two tip nodes */ + q = &t->nodes[0]; + r = &t->nodes[1]; + p = &t->nodes[nTips]; + q->anc = r->anc = p; + p->left = q; + p->right = r; + q = &t->nodes[2*nTips-1]; + p->anc = q; + q->left = p; + + for (i=2; inodes[i]; + r = &t->nodes[i-2+nTips+1]; + q->anc = r; + r->left = q; + j = (int) (RandomNumber(seed) * (2 * i - 1)); + if (j < i) + p = &t->nodes[j]; + else + p = &t->nodes[j-i + nTips]; + r->right = p; + r->anc = p->anc; + if (p->anc != NULL) + { + if (p->anc->left == p) + p->anc->left = r; + else + p->anc->right = r; + } + p->anc = r; + } + + /* set root and get downpass */ + t->root = &t->nodes[2*nTips-1]; + GetDownPass (t); + + /* relabel interior nodes */ + for (i=0; inIntNodes; i++) + t->intDownPass[i]->index = i+nTips; + + return (NO_ERROR); +} + + +/*---------------------------------------------- +| +| BuildRandomUTopology: Builds a random unrooted +| topology. Assumes that indices are set +| in t->nodes from 0 to n-1 for the n tips +| and from n to 2n-3 for the n-2 interior +| nodes. Move the calculation root after +| this routine to get the right root. +| +----------------------------------------------*/ +int BuildRandomUTopology (Tree *t, RandLong *seed) +{ + int i, j, nTips; + TreeNode *p, *q, *r; + + nTips = t->nNodes - t->nIntNodes; + + for (i=0; inNodes; i++) + { + p = &t->nodes[i]; + p->index = i; + p->left = p->right = p->anc = NULL; + } + + /* connect the first three nodes, assuming 0 is calc root */ + q = &t->nodes[1]; + r = &t->nodes[2]; + p = &t->nodes[nTips]; + q->anc = r->anc = p; + p->left = q; + p->right = r; + q = &t->nodes[0]; + p->anc = q; + q->left = p; + + for (i=3; inodes[i]; + r = &t->nodes[i - 3 + nTips + 1]; + q->anc = r; + r->left = q; + j = (int) (RandomNumber(seed) * (2 * i - 3)); + if (j < i - 1) + p = &t->nodes[j+1]; + else + p = &t->nodes[j+1-i + nTips]; + r->right = p; + r->anc = p->anc; + if (p->anc->left == p) + p->anc->left = r; + else + p->anc->right = r; + p->anc = r; + } + + t->root = &t->nodes[0]; + + /* get downpass */ + GetDownPass (t); + + /* relabel interior nodes */ + for (i=0; inIntNodes; i++) + t->intDownPass[i]->index = i+nTips; + + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| CheckConstraints: Check that tree complies with constraints +| +----------------------------------------------------------------*/ +int CheckConstraints (Tree *t) +{ + int a, i, j, k, nLongsNeeded; + BitsLong *constraintPartition, *mask; + TreeNode *p=NULL; + + if (t->checkConstraints == NO) + return (NO_ERROR); + + /* allocate space */ + nLongsNeeded = (numLocalTaxa - 1) / nBitsInALong + 1; + constraintPartition = (BitsLong *) SafeCalloc (2*nLongsNeeded, sizeof(BitsLong)); + if (!constraintPartition) + { + MrBayesPrint ("%s Problems allocating constraintPartition in CheckConstraints", spacer); + return (ERROR); + } + mask = constraintPartition + nLongsNeeded; + + /* set mask (needed to reset unused bits when flipping partitions) */ + for (i=0; iconstraints[a] == NO || definedConstraintsType[a] != HARD) + continue; + + /* set bits in partition to check */ + ClearBits(constraintPartition, nLongsNeeded); + for (j=k=0; jisRooted == NO && IsBitSet(localOutGroup, constraintPartition)) + FlipBits(constraintPartition, nLongsNeeded, mask); + + /* find the locked node */ + for (i=j=0; inNodes; i++) + { + if (t->allDownPass[i]->isLocked == YES && t->allDownPass[i]->lockID == a) + { + p = t->allDownPass[i]; + j++; + } + } + + if (j != 1) + { + MrBayesPrint ("%s Tree has %d locks with id %d identifying constraint '%s'\n", spacer, j, a, constraintNames[a]); + free (constraintPartition); + FreeTreePartitions(t); + return (ERROR); + } + + /* check that locked node is correct */ + for (i=0; ipartition[i] != constraintPartition[i]) + { + MrBayesPrint ("%s Lock %d is set for the wrong node [this is a bug]\n", spacer, a); + free (constraintPartition); + FreeTreePartitions(t); + return (ERROR); + } + } + } + + FreeTreePartitions (t); + free (constraintPartition); + return (NO_ERROR); +} + + +/*---------------------------------------------------------------- +| +| CheckSetConstraints: Check and set tree constraints +| +----------------------------------------------------------------*/ +int CheckSetConstraints (Tree *t) +{ + int a, i, j, k, nLongsNeeded, foundIt, numLocks; + BitsLong *constraintPartition, *mask; + TreeNode *p; + + if (t->checkConstraints == NO) + return (NO_ERROR); + + /* reset all existing locks, if any */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->isLocked = NO; + p->lockID = -1; + if (p->left != NULL) + { + p->calibration = NULL; + p->isDated = NO; + p->age = -1.0; + } + } + + /* allocate space */ + if (AllocateTreePartitions (t) == ERROR) + { + MrBayesPrint ("%s Problems allocating tree bitsets", spacer); + return ERROR; + } + + nLongsNeeded = ((numLocalTaxa - 1) / nBitsInALong) + 1; + constraintPartition = (BitsLong *) SafeCalloc (2*nLongsNeeded, sizeof(BitsLong)); + if (!constraintPartition) + { + MrBayesPrint ("%s Problems allocating constraintPartition", spacer); + FreeTreePartitions(t); + return ERROR; + } + mask = constraintPartition + nLongsNeeded; + + /* set mask (needed to take care of unused bits when flipping partitions) */ + for (i=0; irelParts[0]].activeConstraints[a] == NO || definedConstraintsType[a] != HARD) + continue; + + /* set bits in partition to add */ + ClearBits(constraintPartition, nLongsNeeded); + for (i=j=0; iisRooted == NO && IsBitSet(localOutGroup, constraintPartition) == YES) + FlipBits(constraintPartition, nLongsNeeded, mask); + + /* skip partition if uninformative */ + k = NumBits(constraintPartition, nLongsNeeded); + if (k == 0 || k == 1) + continue; + + /* find the node that should be locked */ + foundIt = NO; + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + for (j=0; jpartition[j] != constraintPartition[j]) + break; + } + + if (j == nLongsNeeded) + { + foundIt = YES; + p->isLocked = YES; + p->lockID = a; + if (nodeCalibration[a].prior != unconstrained) + { + p->isDated = YES; + p->calibration = &nodeCalibration[a]; + } + numLocks++; + break; + } + } + + if (foundIt == NO) + { + MrBayesPrint ("%s Tree breaks constraint '%s'\n", spacer, constraintNames[a]); + FreeTreePartitions (t); + free (constraintPartition); + return (ERROR); + } + } + + if (numLocks != t->nLocks) + { + MrBayesPrint ("%s Inconsistent lock settings. This is a bug, please report it.\n", spacer); + FreeTreePartitions (t); + free (constraintPartition); + return (ERROR); + } + + /* exit */ + FreeTreePartitions(t); + free (constraintPartition); + return (NO_ERROR); +} + + +/*----------------------------------------------------------------------- +| +| ColorClusters: Recursive function to color the clusters in a tree by +| assigning numbers to them in their variable x +| +------------------------------------------------------------------------*/ +void ColorClusters (TreeNode *p, int *index) +{ + if (p!=NULL) + { + if (p->isLocked == YES || p->anc == NULL || p->anc->anc == NULL) + p->x = (++(*index)); + else + p->x = p->anc->x; + ColorClusters(p->left, index); + ColorClusters(p->right, index); + } +} + + +/* CopyPolyNodes: Copies everything except pointers and memoryIndex */ +void CopyPolyNodes (PolyNode *p, PolyNode *q, int nLongsNeeded) +{ + p->index = q->index; + p->mark = q->mark; + p->length = q->length; + p->x = q->x; + p->y = q->y; + p->isDated = q->isDated; + p->calibration = q->calibration; + p->age = q->age; + p->isLocked = q->isLocked; + p->lockID = q->lockID; + strcpy (p->label, q->label); + if (nLongsNeeded!=0) + { + assert (p->partition); + assert (q->partition); + memcpy (p->partition,q->partition, nLongsNeeded*sizeof(BitsLong)); + } + p->support = q->support; + p->f = q->f; +} + + +void CopySubtreeToTree (Tree *subtree, Tree *t) +{ + int i, /*j,*/ k; + TreeNode *p, *q=NULL, *r; + + for (i=/*j=*/0; inNodes - 1; i++) + { + p = subtree->allDownPass[i]; + + for (k=0; knNodes; k++) + { + q = t->allDownPass[k]; + if (q->index == p->index) + break; + } + q->length = p->length; + q->marked = YES; + if (p->left != NULL && p->right != NULL) + { + for (k=0; knNodes; k++) + { + r = t->allDownPass[k]; + if (r->index == p->left->index) + { + q->left = r; + r->anc = q; + } + else if (r->index == p->right->index) + { + q->right = r; + r->anc = q; + } + } + } + } + + p = subtree->root; + + for (k=0; knNodes; k++) + { + q = t->allDownPass[k]; + if (q->index == p->index) + break; + } + + if (q->left->marked == YES) + { + for (k=0; knIntNodes; k++) + { + r = t->intDownPass[k]; + if (r->index == p->left->index) + { + q->left = r; + r->anc = q; + } + } + } + else if (q->right->marked == YES) + { + for (k=0; knIntNodes; k++) + { + r = t->intDownPass[k]; + if (r->index == p->left->index) + { + q->right = r; + r->anc = q; + } + } + } +} + + +/*----------------------------------------------------------------- +| +| CopyToPolyTreeFromPolyTree: copies second tree to first tree +| +-----------------------------------------------------------------*/ +int CopyToPolyTreeFromPolyTree (PolyTree *to, PolyTree *from) +{ + int i, j, k, nLongsNeeded; + PolyNode *p, *q; + + /* check we have enough memory */ + assert (to->memNodes >= from->nNodes); + if (from->bitsets==NULL || to->bitsets==NULL) + { + nLongsNeeded=0; + } + else + { + assert (to->memNodes >= from->memNodes);/*Otherwise partition length woould not be long enough for nodes in "to" */ + nLongsNeeded = (from->memNodes/2 - 1) / nBitsInALong + 1; + } + + /* copy nodes */ + for (i=0; inNodes; i++) + { + /* copy pointers */ + p = from->nodes + i; + q = to->nodes + i; + + if (p->anc != NULL) + q->anc = to->nodes + p->anc->memoryIndex; + else + { + q->anc = NULL; + to->root = q; + } + + if (p->left != NULL) + q->left = to->nodes + p->left->memoryIndex; + else + q->left = NULL; + + if (p->sib != NULL) + q->sib = to->nodes + p->sib->memoryIndex; + else + q->sib = NULL; + + /* Copy everything else except memoryIndex */ + CopyPolyNodes (q, p, nLongsNeeded); + } + + /* fill node arrays */ + /* copy tree properties */ + to->nNodes = from->nNodes; + to->nIntNodes = from->nIntNodes; + to->isRooted = from->isRooted; + to->isClock = from->isClock; + to->isRelaxed = from->isRelaxed; + to->clockRate = from->clockRate; + strcpy (to->name, from->name); + + GetPolyDownPass (to); + + /* copy partitions */ + if (from->bitsets) + { + if (!to->bitsets) + AllocatePolyTreePartitions(to); + else + ResetPolyTreePartitions(to); + } + + /* copy relaxed clock parameters */ + FreePolyTreeRelClockParams (to); + + if (from->nBSets + from->nESets > 0) + AllocatePolyTreeRelClockParams (to, from->nBSets, from->nESets); + + for (i=0; inBSets; i++) + { + to->bSetName[i] = (char *) SafeCalloc (strlen(from->bSetName[i])+2, sizeof(char)); + strcpy (to->bSetName[i], from->bSetName[i]); + for (j=0; jnNodes; j++) + to->effectiveBrLen[i][j] = from->effectiveBrLen[i][j]; + } + + for (i=0; inESets; i++) + { + to->eSetName[i] = (char *) SafeCalloc (strlen(from->eSetName[i])+2, sizeof(char)); + strcpy (to->eSetName[i], from->eSetName[i]); + for (j=0; jnNodes; j++) + { + to->nEvents[i][j] = from->nEvents[i][j]; + if (to->nEvents[i][j] > 0) + { + to->position[i][j] = (MrBFlt *) SafeCalloc (to->nEvents[i][j], sizeof (MrBFlt)); + to->rateMult[i][j] = (MrBFlt *) SafeCalloc (to->nEvents[i][j], sizeof (MrBFlt)); + for (k=0; knEvents[i][j]; k++) + { + to->position[i][j][k] = from->position[i][j][k]; + to->rateMult[i][j][k] = from->rateMult[i][j][k]; + } + } + } + } + + /* copy population size parameters */ + FreePolyTreePopSizeParams(to); + to->popSizeSet = from->popSizeSet; + if (to->popSizeSet == YES) + { + to->popSize = (MrBFlt *) SafeCalloc (to->nNodes, sizeof(MrBFlt)); + for (i=0; inNodes; i++) + to->popSize[i] = from->popSize[i]; + to->popSizeSetName = (char *) SafeCalloc (strlen(from->popSizeSetName) + 1, sizeof(char)); + strcpy (to->popSizeSetName, from->popSizeSetName); + } + + return (NO_ERROR); +} + + +/*----------------------------------------------------------------- +| +| CopyToSpeciesTreeFromPolyTree: copies second tree (polytomous) to +| first tree, which is a species tree. The species tree needs to +| be allocated enough space first to hold the resulting tree. +| +-----------------------------------------------------------------*/ +int CopyToSpeciesTreeFromPolyTree (Tree *to, PolyTree *from) +{ + int i; + PolyNode *p; + TreeNode *q, *q1; +# if defined (DEBUG_SPECIESTREE) + int j; +# endif + + /* make sure assumptions are correct */ + assert (from->isRooted == YES); + assert (from->isClock == YES); + assert (from->nNodes - from->nIntNodes == numSpecies); + assert (to->memNodes == 2*numSpecies); + assert (to->nIntNodes == from->nIntNodes); + assert (to->nNodes == from->nNodes + 1); + + /* make sure indices are set correctly for from nodes */ +# if defined (DEBUG_SPECIESTREE) + for (i=0; inNodes; i++) + { + for (j=0; jnNodes; j++) + { + p = from->allDownPass[j]; + if (p->index == i) + break; + } + assert (j != from->nNodes); + assert (!(p->left == NULL && p->index >= numSpecies)); + } +# endif + + /* copy nodes */ + for (i=0; inNodes; i++) + { + /* copy pointers */ + p = from->allDownPass[i]; + q = to->nodes + p->index; + + if (p->anc != NULL) + q->anc = to->nodes + p->anc->index; + else + q->anc = NULL; + + if (p->left != NULL) + q->left = to->nodes + p->left->index; + else + q->left = NULL; + + if (p->left != NULL) + q->right = to->nodes + p->left->sib->index; + else + q->right = NULL; + + q->nodeDepth = p->depth; + q->age = p->age; + q->length = p->length; + q->index = p->index; + if (q->index < numSpecies) + q->label = speciesNameSets[speciespartitionNum].names[q->index]; + else + q->label = noLabel; + } + + /* fix root */ + p = from->root; + q = to->nodes + p->index; + q1 = to->nodes + from->nNodes; /* get the 'extra' root node that polytomous trees do not use */ + q->anc = q1; + q1->index = from->nNodes; + q1->left = q; + q1->right = q1->anc = NULL; + q1->isLocked = NO; + q1->lockID = -1; + q1->isDated = NO; + q1->calibration = NULL; + q1->age = -1.0; + to->root = q1; + + /* get downpass */ + GetDownPass (to); + + /* a user tree might not come with node depths set */ + if (to->root->left->nodeDepth == 0.0) + SetNodeDepths(to); + + /* set partitions */ + if (to->bitsets) + ResetTreePartitions(to); + + return (NO_ERROR); +} + + +/*----------------------------------------------------------------- +| +| CopyToTreeFromPolyTree: copies second tree (polytomous) to first +| tree (used to initialize constrained starting trees, e.g.). +| An unrooted source tree will be rooted on outgroup +| An unrooted source tree that needs to be copied to +| a rooted target tree will be randomly rooted on a node below +| all defined constraints. The to tree needs to be allocated +| enough space first to hold the resulting tree. +| +-----------------------------------------------------------------*/ +int CopyToTreeFromPolyTree (Tree *to, PolyTree *from) +{ + int i, j; + PolyNode *p=NULL; + TreeNode *q, *q1; + + /* refuse to arbitrarily root an input tree */ + assert (!(from->isRooted == NO && to->isRooted == YES)); + if ((from->isRooted == NO) && (to->isRooted == YES)) + { + MrBayesPrint ("%s Failed to copy trees due to difference in rootedness of source and destination. \n", spacer); + return (ERROR); + } + + /* make sure assumptions are in order */ + assert (to->memNodes >= from->nNodes + (to->isRooted == NO ? 0 : 1)); + assert (localOutGroup >= 0 && localOutGroup < numLocalTaxa); + assert (numLocalTaxa == from->nNodes - from->nIntNodes); + assert (!(from->isRooted == YES && from->nNodes != 2*from->nIntNodes + 1)); + assert (!(from->isRooted == NO && from->nNodes != 2*from->nIntNodes + 2)); + + /* make sure indices are set correctly for from nodes */ + for (i=0; inNodes; i++) + { + for (j=0; jnNodes; j++) + { + p = from->allDownPass[j]; + if (p->index == i) + break; + } + assert (j != from->nNodes); + assert (!(p->left == NULL && p->index >= numLocalTaxa)); + } + + /* deal with root */ + if (to->isRooted == NO && from->isRooted == YES) + Deroot(from); + + /* make sure calculation root is set correctly */ + if (to->isRooted == NO && MovePolyCalculationRoot (from, localOutGroup) == ERROR) + return ERROR; + + /* copy nodes */ + for (i=0; inNodes; i++) + { + /* copy pointers */ + p = from->allDownPass[i]; + q = to->nodes + p->index; + + if (p->anc != NULL) + q->anc = to->nodes + p->anc->index; + else + q->anc = NULL; + + if (p->left != NULL) + q->left = to->nodes + p->left->index; + else + q->left = NULL; + + if (p->left != NULL) + q->right = to->nodes + p->left->sib->index; + else + q->right = NULL; + + q->isLocked = p->isLocked; + q->lockID = p->lockID; + q->isDated = p->isDated; + q->calibration = p->calibration; + q->age = p->age; + q->nodeDepth = p->depth; + q->length = p->length; + q->index = p->index; + if (q->index < numLocalTaxa) + q->label = localTaxonNames[q->index]; + else + q->label = noLabel; + } + + /* fix root */ + if (to->isRooted == NO) + { + p = from->root; + q = to->nodes + p->index; + q->anc = to->root = to->nodes + p->left->sib->sib->index; + q->length = to->root->length; + to->root->length = 0.0; + to->root->left = q; + to->root->right = to->root->anc = NULL; + } + else + { + p = from->root; + q = to->nodes + p->index; + q1 = to->nodes + from->nNodes; /* get the 'extra' root node that polytomous trees do not use */ + q->anc = q1; + q1->index = from->nNodes; + q1->left = q; + q1->right = q1->anc = NULL; + q1->isLocked = NO; + q1->lockID = -1; + q1->isDated = NO; + q1->calibration = NULL; + q1->age = -1.0; + to->root = q1; + } + + /* get downpass */ + GetDownPass (to); + + /* set node depths */ + if (to->isRooted == YES && to->root->left->nodeDepth == 0.0) + SetNodeDepths(to); + + /* set partitions */ + if (to->bitsets) + ResetTreePartitions(to); + + /* relaxed clock parameters are not stored in binary trees but in separate parameters */ + + return (NO_ERROR); +} + + +/*----------------------------------------------------------------- +| +| CopyToTreeFromTree: copies second tree to first tree +| (used to initialize brlen sets for same topology) +| Note: partition information of nodes are not copied if +| either "from" or "to" tree does not have bitsets allocated +| +-----------------------------------------------------------------*/ +int CopyToTreeFromTree (Tree *to, Tree *from) +{ + int i, numTaxa, nLongsNeeded; + TreeNode *p, *q; + + numTaxa = from->nNodes - from->nIntNodes - (from->isRooted == YES ? 1 : 0); + nLongsNeeded = (numTaxa - 1) / nBitsInALong + 1; + if (from->bitsets==NULL || to->bitsets==NULL) + nLongsNeeded=0; + + /* check that there is enough memory */ + assert (to->memNodes >= from->nNodes); + + /* copy nodes (use index of p as memoryIndex for q) */ + for (i=0; inNodes; i++) + { + /* copy pointers */ + p = from->nodes + i; + q = to->nodes + p->index; + + if (p->anc != NULL) + q->anc = to->nodes + p->anc->index; + else + { + q->anc = NULL; + to->root = q; + } + + if (p->left != NULL) + q->left = to->nodes + p->left->index; + else + q->left = NULL; + + if (p->right != NULL) + q->right = to->nodes + p->right->index; + else + q->right = NULL; + + CopyTreeNodes (q, p, nLongsNeeded); + } + + /* create new node arrays */ + to->nNodes = from->nNodes; + to->nIntNodes = from->nIntNodes; + GetDownPass (to); + + /* copy tree properties (these should be constant most of them) */ + strcpy (to->name, from->name); + to->isRooted = from->isRooted; + to->isClock = from->isClock; + to->isCalibrated = from->isCalibrated; + to->checkConstraints = from->checkConstraints; + to->nConstraints = from->nConstraints; + to->constraints = from->constraints; + to->nLocks = from->nLocks; + to->nRelParts = from->nRelParts; + to->relParts = from->relParts; + + /* copy partitions */ + if (from->bitsets) + { + if (!to->bitsets) + AllocateTreePartitions(to); + else + ResetTreePartitions(to); + } + + return (NO_ERROR); +} + + +/* Copy node q to node p */ +void CopyTreeNodes (TreeNode *p, TreeNode *q, int nLongsNeeded) +{ + /* copies everything except pointers and memoryIndex */ + p->label = q->label; + p->index = q->index; + p->upDateCl = q->upDateCl; + p->upDateTi = q->upDateTi; + p->scalerNode = q->scalerNode; + p->isLocked = q->isLocked; + p->lockID = q->lockID; + p->isDated = q->isDated; + p->marked = q->marked; + p->x = q->x; + p->y = q->y; + p->d = q->d; + p->length = q->length; + p->nodeDepth = q->nodeDepth; + p->calibration = q->calibration; + p->age = q->age; + if (nLongsNeeded != 0) + { + assert (p->partition); + assert (q->partition); + memcpy (p->partition, q->partition, nLongsNeeded*sizeof(BitsLong)); + } +} + + +void CopyTreeToSubtree (Tree *t, Tree *subtree) +{ + int i, j, k; + TreeNode *p, *q, *r; + + for (i=j=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->marked == NO) + continue; + + q = &subtree->nodes[j++]; + q->index = p->index; + q->length = p->length; + if (p->left == NULL || p->left->marked == NO) + q->left = q->right = NULL; + else + { + for (k=0; knodes[k]; + if (r->index == p->left->index) + { + q->left = r; + r->anc = q; + } + else if (r->index == p->right->index) + { + q->right = r; + r->anc = q; + } + } + } + + if (p->anc->marked == NO) + { + r = &subtree->nodes[j++]; + subtree->root = r; + r->anc = r->right = NULL; + r->left = q; + q->anc = r; + r->length = 0.0; + r->index = p->anc->index; + } + + } + + GetDownPass (subtree); + + subtree->isRooted = t->isRooted; + subtree->nRelParts = t->nRelParts; + subtree->relParts = t->relParts; +} + + +/* DatedNodeDepths: Recursive function to get node depths */ +void DatedNodeDepths (TreeNode *p, MrBFlt *nodeDepths, int *index) +{ + if (p != NULL) + { + if (p->left == NULL || p->isDated == YES) + nodeDepths[(*index)++] = p->nodeDepth; + else + { + DatedNodeDepths (p->left, nodeDepths, index); + DatedNodeDepths (p->right, nodeDepths, index); + } + } +} + + +/* DatedNodes: Recursive function to get dated tips or interior nodes */ +void DatedNodes (TreeNode *p, TreeNode **datedNodes, int *index) +{ + if (p != NULL) + { + if (p->left != NULL && p->isDated == NO) + { + DatedNodes (p->left, datedNodes, index); + DatedNodes (p->right, datedNodes, index); + } + datedNodes[(*index)++] = p; + } +} + + +/* Deroot: Deroot a rooted polytomous tree with branch lengths */ +int Deroot (PolyTree *pt) +{ + PolyNode *p, *q, *r, tempNode; + int i; + + p = pt->root; + + if (p->left->sib->sib != NULL) + return (ERROR); /* tree is not rooted or it is polytomous */ + + if (p != &pt->nodes[pt->nNodes-1]) + { + q = &pt->nodes[pt->nNodes-1]; + /* now swap content of p and q including pointers */ + tempNode = *q; + *q = *p; + *p = tempNode; + /* swap back memoryindex */ + p->memoryIndex = q->memoryIndex; + q->memoryIndex = tempNode.memoryIndex; + /* all pointers to q should be pointers to p */ + for (i=0; inNodes; i++) + { + r = &pt->nodes[i]; + if (r->left == q) + r->left = p; + if (r->anc == q) + r->anc = p; + if (r->sib == q) + r->sib = p; + } + /* all pointers to p should be pointers to q; all these are anc pointers from the descendants of the root */ + pt->root = q; + for (r=q->left; r!=NULL; r=r->sib) + r->anc = q; + /* finally set p to the new root */ + p = pt->root; + } + + /* make sure the left of the old root is interior and can be used as new root */ + if (p->left->left == NULL) + { + q = p->left; + r = q->sib; + p->left = r; + r->sib = q; + q->sib = NULL; + } + + pt->root = p->left; + pt->root->left->sib->sib = p->left->sib; + p->left->sib->length += pt->root->length; + pt->root->length = 0.0; + pt->root->sib = NULL; + pt->root->anc = NULL; + + pt->nNodes--; + pt->nIntNodes--; + + GetPolyDownPass(pt); + + return (NO_ERROR); +} + + +/* EraseTreeList: Erase all trees in treeList */ +void EraseTreeList (TreeList *treeList) +{ + TreeListElement *listElement; + TreeListElement *previous; + + listElement = treeList->first; + if (listElement != NULL) + do + { + free (listElement->order); + previous = listElement; + listElement = listElement->next; + free (previous); + } + while (listElement != NULL); + + treeList->first = treeList->last = NULL; +} + + +void UpdateTreeWithClockrate (Tree *t, MrBFlt clockRate) +{ + int i; + TreeNode *p; + + if (t->fromUserTree == NO) + { + /*Set nodeDepth*/ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->nodeDepth = p->age * clockRate; + } + + /* calculate branch lengths */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + if (p->anc->anc != NULL) + { + p->length = p->anc->nodeDepth - p->nodeDepth; + } + else + p->length = 0.0; //not a problem for root node. + } + } + } + else + { + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + p->age = p->nodeDepth / clockRate; + } + } +} + + +/*---------------------------------------------------------------- +| +| findAllowedClockrate: Finds the range of clock rates allowed for the tree. +| +| @param t - tree to check (IN) +| @minClockRate - adress where minimum allowed clock rate is stored (OUT) +| @maxClockRate - adress where maximum allowed clock rate is stored (OUT) +| +----------------------------------------------------------------*/ +void findAllowedClockrate (Tree *t, MrBFlt *minClockRate, MrBFlt *maxClockRate) +{ + int i; + TreeNode *p; + MrBFlt min, max, tmp; + + min=0.0; + max=MRBFLT_MAX; + + *minClockRate = 2.0; + *maxClockRate = 1.0; + + if (t->fromUserTree == NO) + { + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + if (p->anc->anc != NULL) + { + tmp = BRLENS_MIN/(p->anc->age - p->age); + assert (tmp > 0); + if (tmp > min) + min = tmp; + + tmp = BRLENS_MAX/(p->anc->age - p->age); + assert (tmp > 0); + if (tmp > max) + max = tmp; + } + } + *minClockRate= min; + *maxClockRate= max; + } + else + { + IsCalibratedClockSatisfied (t,minClockRate,maxClockRate, 0.001); + } +} + + +/* FreePolyTree: Free memory space for a polytomous tree (unrooted or rooted) */ +void FreePolyTree (PolyTree *pt) +{ + if (pt != NULL) + { + FreePolyTreePartitions(pt); + FreePolyTreeRelClockParams(pt); + FreePolyTreePopSizeParams(pt); + free (pt->allDownPass); + free (pt->nodes); + free (pt); + } +} + + +/* FreePolyTreePartitions: Free memory space for polytomous tree partitions */ +void FreePolyTreePartitions (PolyTree *pt) +{ + int i; + if (pt != NULL && pt->bitsets != NULL) + { + for (i=0; imemNodes; i++) + pt->nodes[i].partition = NULL; + free (pt->bitsets); + pt->bitsets = NULL; + } +} + + +/* FreePolyTreePopSizeParams: Free population size set parameters of polytree */ +void FreePolyTreePopSizeParams (PolyTree *pt) +{ + if (pt->popSizeSet == YES) + { + free (pt->popSize); + free (pt->popSizeSetName); + } + pt->popSizeSet = NO; + pt->popSize = NULL; + pt->popSizeSetName = NULL; +} + + +/* FreePolyTreeRelClockParams: Free relaxed clock parameters of polytree */ +void FreePolyTreeRelClockParams (PolyTree *pt) +{ + int i, j; + + /* free breakpoint clock parameters */ + for (i=0; inESets; i++) + { + for (j=0; jmemNodes; j++) + { + if (pt->nEvents[i][j] > 0) + { + free (pt->position[i][j]); + free (pt->rateMult[i][j]); + } + } + free (pt->eSetName[i]); + free (pt->nEvents[i]); + free (pt->position[i]); + free (pt->rateMult[i]); + } + free (pt->nEvents); + free (pt->position); + free (pt->rateMult); + free (pt->eSetName); + pt->nESets = 0; + pt->nEvents = NULL; + pt->position = NULL; + pt->rateMult = NULL; + pt->eSetName = NULL; + + /* free branch clock parameters */ + for (i=0; inBSets; i++) + { + free (pt->bSetName[i]); + free (pt->effectiveBrLen[i]); + } + free (pt->effectiveBrLen); + free (pt->bSetName); + pt->nBSets = 0; + pt->effectiveBrLen = NULL; + pt->bSetName = NULL; +} + + +/* FreeTree: Free memory space for a tree (unrooted or rooted) */ +void FreeTree (Tree *t) +{ + if (t != NULL) + { + free (t->bitsets); + free (t->flags); + free (t->allDownPass); + free (t->nodes); + free (t); + } +} + + +/* FreeTreePartitions: Free memory space for tree partitions */ +void FreeTreePartitions (Tree *t) +{ + int i; + + if (t != NULL && t->bitsets != NULL) + { + free (t->bitsets); + t->bitsets = NULL; + for (i=0; imemNodes; i++) + t->nodes[i].partition = NULL; + } +} + + +/*------------------------------------------------------------------------------------------- +| +| GetDatedNodeDepths: Get an array containing the node depths of the dated tips, +| internal or external, plus dated root +| +---------------------------------------------------------------------------------------------*/ +void GetDatedNodeDepths (TreeNode *p, MrBFlt *nodeDepths) +{ + int index = 0; + + assert (p != NULL); + + nodeDepths[index++] = p->nodeDepth; /* include root node depth */ + if (p->left != NULL) + { + DatedNodeDepths (p->left, nodeDepths, &index); + DatedNodeDepths (p->right, nodeDepths, &index); + } +} + + +/*------------------------------------------------------------------------------------------- +| +| GetDatedNodes: Get an array containing the dated tips, +| internal or external, and all interior nodes in the same subtree +| +---------------------------------------------------------------------------------------------*/ +void GetDatedNodes (TreeNode *p, TreeNode **datedNodes) +{ + int index = 0; + + assert (p != NULL); + + if (p->left!= NULL) + { + DatedNodes (p->left, datedNodes, &index); + DatedNodes (p->right, datedNodes, &index); + } +} + + +/* get down pass for tree t (wrapper function) */ +void GetDownPass (Tree *t) +{ + int i, j; + + i = j = 0; + GetNodeDownPass (t, t->root, &i, &j); +} + + +/* get the actual down pass sequences */ +void GetNodeDownPass (Tree *t, TreeNode *p, int *i, int *j) +{ + if (p != NULL) + { + GetNodeDownPass (t, p->left, i, j); + GetNodeDownPass (t, p->right, i, j); + if (p->left != NULL && p->right != NULL && p->anc != NULL) + { + t->intDownPass[(*i)++] = p; + t->allDownPass[(*j)++] = p; + } + else if (p->left == NULL && p->right == NULL && p->anc != NULL) + { + t->allDownPass[(*j)++] = p; + } + else if (p->left != NULL && p->right == NULL && p->anc == NULL) + { + t->allDownPass[(*j)++] = p; + } + } +} + + +/* GetPolyAges: Get PolyTree node ages */ +void GetPolyAges (PolyTree *t) +{ + int i; + PolyNode *p; + + GetPolyDepths (t); /* just to make sure... */ + + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->age = p->depth / t->clockRate; + } +} + + +/* GetPolyDepths: Get PolyTree node depths */ +void GetPolyDepths (PolyTree *t) +{ + int i; + MrBFlt maxDepth; + PolyNode *p; + + maxDepth = t->root->depth = 0.0; + + for (i=t->nNodes-2; i>=0; i--) + { + p = t->allDownPass[i]; + p->depth = p->anc->depth + p->length; + if (p->depth > maxDepth) + maxDepth = p->depth; + } + + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->depth = maxDepth - p->depth; + } +} + + +/* get down pass for polytomous tree t (wrapper function) */ +void GetPolyDownPass (PolyTree *t) +{ + int i, j; + + i = j = 0; + GetPolyNodeDownPass (t, t->root, &i, &j); + assert (t->nIntNodes==j); +} + + +/* get the actual down pass sequences for a polytomous tree */ +void GetPolyNodeDownPass (PolyTree *t, PolyNode *p, int *i, int *j) +{ + PolyNode *q; + + if (p->left != NULL) + { + for (q=p->left; q!=NULL; q=q->sib) + GetPolyNodeDownPass(t, q, i, j); + } + + t->allDownPass[(*i)++] = p; + if (p->left != NULL) + t->intDownPass[(*j)++] = p; +} + + +/* GetFromTreeList: Get first tree from a tree list and remove it from the list*/ +int GetFromTreeList (TreeList *treeList, Tree *tree) +{ + TreeListElement *listElement; + + if (treeList->first == NULL) + { + MrBayesPrint ("%s Tree list empty\n", spacer); + return (ERROR); + } + if (tree->isRooted == YES) + RetrieveRTopology (tree, treeList->first->order); + else + { + RetrieveUTopology (tree, treeList->first->order); + if (localOutGroup != 0) + MoveCalculationRoot (tree, localOutGroup); + } + + listElement = treeList->first; + treeList->first = listElement->next; + + free (listElement->order); + free (listElement); + + return (NO_ERROR); +} + + +/*------------------------------------------------------------------ +| +| InitBrlens: This routine will set all branch lengths of a +| nonclock tree to the value given by 'v'. +| +------------------------------------------------------------------*/ +int InitBrlens (Tree *t, MrBFlt v) +{ + int i; + TreeNode *p; + + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL && !(t->isRooted == YES && p->anc->anc == NULL)) + p->length = v; + else + p->length = 0.0; + } + + return (NO_ERROR); +} + + +/* +@param levUp is the number of edges between the "node" and the most resent calibrated predecessor +1, + for the calibrated nodes it should be 1 +@param calibrUp is the age of the most resent calibrated predecessor +@return age of the node +*/ +MrBFlt SetNodeCalibratedAge(TreeNode *node, unsigned levUp, MrBFlt calibrUp) +{ + MrBFlt r,l; + + if (node->age != -1.0) + { + if (node->right != NULL) + SetNodeCalibratedAge (node->right, 2, node->age); + if (node->left != NULL) + SetNodeCalibratedAge (node->left, 2, node->age); + return node->age; + } + + r = SetNodeCalibratedAge (node->right, levUp+1, calibrUp); + l = SetNodeCalibratedAge (node->left, levUp+1, calibrUp); + + if (r > l) + { + assert (calibrUp - r > 0.0); + return node->age = r + (calibrUp - r)/levUp; + } + else + { + assert (calibrUp - l > 0.0); + return node->age = l + (calibrUp - l)/levUp; + } +} + + +/*------------------------------------------------------------------- +| +| InitCalibratedBrlens: This routine will build a clock tree +| consistent with calibration constraints on terminal +| taxa and/or constrained interior nodes. At least one +| node should be calibrated. +| If not possible to build such a tree, ERROR +| is returned. +| +--------------------------------------------------------------------*/ +int InitCalibratedBrlens (Tree *t, MrBFlt clockRate, RandLong *seed) +{ + int i; + TreeNode *p; + Model *mp; + MrBFlt treeAgeMin, treeAgeMax; + Calibration *calibrationPtr; + +# ifdef DEBUG_CALIBRATION + printf ("Before initializing calibrated brlens\n"); + ShowNodes(t->root, 0, YES); +# endif + + if (t->isRooted == NO) + { + MrBayesPrint ("%s Tree is unrooted\n", spacer); + return (ERROR); + } + + /* Check whether root has age constraints */ + mp = &modelParams[t->relParts[0]]; + treeAgeMin = 0.0; + treeAgeMax = POS_INFINITY; + if (t->root->left->isDated == YES) + { + treeAgeMin = t->root->left->calibration->min; + treeAgeMax = t->root->left->calibration->max; + } + else if (!strcmp(mp->clockPr, "Uniform") || !strcmp(mp->clockPr, "Fossilization")) + { + if (mp->treeAgePr.min > treeAgeMin) + treeAgeMin = mp->treeAgePr.min; + if (mp->treeAgePr.max < treeAgeMax) + treeAgeMax = mp->treeAgePr.max; + } + + /* date all nodes from top to bottom with min. age as nodeDepth*/ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + if (p->left == NULL && p->right == NULL) + { + if (p->isDated == NO) + { + p->nodeDepth = 0.0; + p->age = 0.0; + } + else + { + if (p->calibration->prior == fixed) + p->nodeDepth = p->age = p->calibration->priorParams[0]; + else + p->nodeDepth = p->age = p->calibration->min; + } + } + else + { + if (p->left->nodeDepth > p->right->nodeDepth) + p->nodeDepth = p->left->nodeDepth; + else + p->nodeDepth = p->right->nodeDepth; + if (p->isDated == YES || (p->anc->anc == NULL && (!strcmp(mp->clockPr,"Uniform") || !strcmp(mp->clockPr,"Fossilization")))) + { + if (p->isDated == NO) + calibrationPtr = &mp->treeAgePr; + else + calibrationPtr = p->calibration; + + if (calibrationPtr->max <= p->nodeDepth) + { + if (p->isDated == NO) + MrBayesPrint ("%s Calibration inconsistency for root node\n", spacer); + else + MrBayesPrint ("%s Calibration inconsistency for node '%s'\n", spacer, constraintNames[p->lockID]); + MrBayesPrint ("%s Cannot make a tree where the node is %s\n", spacer, calibrationPtr->name); + return (ERROR); + } + else + { + if (calibrationPtr->min < p->nodeDepth) + p->age = p->nodeDepth; + else + p->age = p->nodeDepth = calibrationPtr->min; + } + } + else + p->age = -1.0; + } + } + } + + /* try to make root node deeper than minimum age */ + p = t->root->left; + if (p->nodeDepth==0.0) p->nodeDepth = 1.0; + if (p->nodeDepth * 1.5 < treeAgeMax) + p->nodeDepth = p->age = 1.5 * p->nodeDepth; + else + p->nodeDepth = p->age = treeAgeMax; + + SetNodeCalibratedAge (p, 1, p->age); + + /* Setup node depths */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->nodeDepth = p->age * clockRate; + assert (!(p->left == NULL && p->calibration == NULL && p->nodeDepth != 0.0)); + } + + /* calculate branch lengths */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + if (p->anc->anc != NULL) + { + p->length = p->anc->nodeDepth - p->nodeDepth; + if (p->length < BRLENS_MIN) + { + //MrBayesPrint ("%s Restrictions of node calibration and clockrate makes some branch lenghts too small.\n", spacer); + //return (ERROR); + } + if (p->length > BRLENS_MAX) + { + //MrBayesPrint ("%s Restrictions of node calibration and clockrate makes some branch lenghts too long.\n", spacer); + //return (ERROR); + } + } + else + p->length = 0.0; //not a problem for root node. + } + } + +# ifdef DEBUG_CALIBRATION + printf ("after\n"); + ShowNodes (t->root, 0, YES); + getchar(); +# endif + + return (NO_ERROR); + MrBayesPrint ("%lf", *seed); /* just because I am tired of seeing the unused parameter error msg */ +} + + +/*------------------------------------------------------- +| +| InitClockBrlens: This routine will initialize +| a clock tree by setting the root to depth 1.0 +| and then assigning node depths according to +| the relative node depth measured in terms of the +| maximum number of branches to the tip from each +| node. +| +--------------------------------------------------------*/ +int InitClockBrlens (Tree *t) +{ + int i, maxBrSegments=0; + TreeNode *p; + + if (t->isRooted == NO) + { + MrBayesPrint ("%s Tree is unrooted\n", spacer); + return (ERROR); + } + + /* calculate maximum number of branch segments above root */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + if (p->left == NULL && p->right == NULL) + { + p->x = 0; + } + else + { + if (p->left->x > p->right->x) + p->x = p->left->x + 1; + else + p->x = p->right->x + 1; + } + if (p->anc->anc == NULL) + maxBrSegments = p->x; + } + } + + /* assign node depths */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + p->nodeDepth = (MrBFlt) (p->x) / (MrBFlt) maxBrSegments; + else + p->nodeDepth = 0.0; + } + + /* calculate branch lengths */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + if (p->anc->anc != NULL) + p->length = p->anc->nodeDepth - p->nodeDepth; + else + p->length = 0.0; + } + } + + return (NO_ERROR); +} + + +int GetRandomEmbeddedSubtree (Tree *t, int nTerminals, RandLong *seed, int *nEmbeddedTrees) +{ + int i, j, k, n, ran, *pP, *pL, *pR, nLeaves, *nSubTrees; + TreeNode *p=NULL, **leaf; + + /* Calculate number of leaves in subtree (number of terminals minus the root) */ + nLeaves = nTerminals - 1; + + /* Initialize all flags */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->marked = NO; + p->x = 0; + p->y = 0; + } + + /* Allocate memory */ + nSubTrees = (int *) SafeCalloc (nTerminals * t->nNodes, sizeof(int)); + if (!nSubTrees) + return (ERROR); + leaf = (TreeNode **) SafeMalloc (nLeaves * sizeof (TreeNode *)); + if (!leaf) + { + free (nSubTrees); + return (ERROR); + } + + /* Calculate how many embedded trees rooted at each node */ + (*nEmbeddedTrees) = 0; + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + { + p->x = 0; + nSubTrees[p->index*nTerminals + 1] = 1; + } + else + { + pL = nSubTrees + p->left->index*nTerminals; + pR = nSubTrees + p->right->index*nTerminals; + pP = nSubTrees + p->index*nTerminals; + pP[1] = 1; + for (j=2; j<=nLeaves; j++) + { + for (k=1; kx = pP[nLeaves]; + (*nEmbeddedTrees) += p->x; + } + } + + /* Randomly select one embedded tree of the right size */ + ran = (int) (RandomNumber(seed) * (*nEmbeddedTrees)); + + /* Find the interior root corresponding to this tree */ + for (i=j=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + j += p->x; + if (j>ran) + break; + } + + /* Find one random embedded tree with this root */ + p->y = nLeaves; + p->marked = YES; + leaf[0] = p; + n = 1; + while (n < nLeaves) + { + /* select a node with more than one descendant */ + for (i=0; iy > 1) + break; + } + + /* break it into descendants */ + pL = nSubTrees + p->left->index*nTerminals; + pR = nSubTrees + p->right->index*nTerminals; + pP = nSubTrees + p->index*nTerminals; + ran = (int) (RandomNumber(seed) * pP[p->y]); + k = 0; + for (j=1; jy; j++) + { + k += pL[j] * pR[p->y-j]; + if (k > ran) + break; + } + + p->left->y = j; + p->right->y = p->y - j; + p->left->marked = YES; + p->right->marked = YES; + leaf[i] = p->left; + leaf[n++] = p->right; + } + + free (nSubTrees); + free (leaf); + + return (NO_ERROR); +} + + +/*----------------------------------------------------------------------------- +| +| IsCalibratedClockSatisfied: This routine SETS (not just checks as name suggested) calibrated clock tree nodes age, depth. based on branch lengthes +| and checks that user defined brlens satisfy the specified calibration(s) up to tolerance tol +| TODO: clock rate is devived here and used to set ages but clockrate parameter is not updated here (make sure that it does not produce inconsistancy) +| +|------------------------------------------------------------------------------*/ +int IsCalibratedClockSatisfied (Tree *t,MrBFlt *minClockRate,MrBFlt *maxClockRate , MrBFlt tol) +{ + int i, j, maxRateConstrained, minRateConstrained, isViolated; + MrBFlt f, maxHeight, minRate=0, maxRate=0, ageToAdd, *x, *y, clockRate; + TreeNode *p, *q, *r, *s; + + /* By defauult assume the tree does not have allowed range of clockrate */ + *minClockRate = 2.0; + *maxClockRate = 1.0; + + if (t->isRooted == NO) + return (NO); + + x = (MrBFlt *) SafeCalloc (2*t->nNodes, sizeof (MrBFlt)); + if (x == NULL) + { + MrBayesPrint ("%s Out of memory in IsCalibratedClockSatisfied\n", spacer); + free (x); + return (NO); + } + y = x + t->nNodes; + + /* reset node depth and age, and set minimum (x) and maximum (y) age of each node */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->age = -1.0; + p->nodeDepth = -1.0; + if (p->isDated == YES) + { + assert (p->calibration->prior != unconstrained); + x[p->index] = p->calibration->min; + y[p->index] = p->calibration->max; + } + else if (p->left == NULL && p->right == NULL) + x[p->index] = y[p->index] = 0.0; + else + { + x[p->index] = y[p->index] = -1.0; + } + } + + /* calculate node heights in branch length units */ + /* node depth will be set from the root for now */ + p = t->root->left; + p->nodeDepth = 0.0; + for (i=t->nNodes-3; i>=0; i--) + { + p = t->allDownPass[i]; + p->nodeDepth = p->anc->nodeDepth + p->length; + } + + /* find maximum height of tree */ + maxHeight = -1.0; + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL && p->right == NULL) + { + if (p->nodeDepth > maxHeight) + { + maxHeight = p->nodeDepth; + } + } + } + + /* calculate node depth from tip of tree */ + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + p->nodeDepth = maxHeight - p->nodeDepth; + } + + /* check potentially constraining calibrations */ + /* and find minimum and maximum possible rate */ + maxRateConstrained = NO; + minRateConstrained = NO; + isViolated = NO; + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + if (x[p->index] < 0.0 && y[p->index] < 0.0) + continue; + for (j=i+1; jnNodes-1; j++) + { + q = t->allDownPass[j]; + if (x[q->index] < 0.0 && y[q->index] < 0.0) + continue; + if (p->nodeDepth == q->nodeDepth) // becouse clock rate could be as low as possible we can not take approximate equality. + { + /* same depth so they must share a possible age */ + if ((x[p->index] != -1.0 && y[q->index] !=-1.0 && AreDoublesEqual (x[p->index], y[q->index], tol) == NO && x[p->index] > y[q->index]) || + (y[p->index] != -1.0 && x[q->index] !=-1.0 && AreDoublesEqual (y[p->index], x[q->index], tol) == NO && y[p->index] < x[q->index])) + { + isViolated = YES; + break; + } + } + else + { + if (p->nodeDepth > q->nodeDepth) + { + r = p; + s = q; + } + else + { + r = q; + s = p; + } + if (x[r->index] >= 0.0 && y[s->index] >= 0.0) + { + f = (r->nodeDepth - s->nodeDepth) / (x[r->index] - y[s->index]); + if (f <= 0.0 || x[r->index] == y[s->index]) + { + if (AreDoublesEqual (r->nodeDepth, s->nodeDepth, tol*0.1) == YES) + continue; + if ((r->calibration != NULL && r->calibration->prior != fixed) || (s->calibration != NULL && s->calibration->prior != fixed)) + continue; + isViolated = YES; + break; + } + if (maxRateConstrained == NO) + { + maxRateConstrained = YES; + maxRate = f; + } + else if (f < maxRate) + maxRate = f; + } + if (y[r->index] >= 0.0 && x[s->index] >= 0.0) + { + f = (r->nodeDepth - s->nodeDepth) / (y[r->index] - x[s->index]); + if (f <= 0.0 || y[r->index] == x[s->index]) + { + if (AreDoublesEqual (r->nodeDepth, s->nodeDepth, tol*0.1) == YES) + continue; + isViolated = YES; + break; + } + if (minRateConstrained == NO) + { + minRateConstrained = YES; + minRate = f; + } + else if (f > minRate) + minRate = f; + } + } + } + if (isViolated == YES) + break; + } + + /* check if outright violation */ + if (isViolated == YES) + { + MrBayesPrint ("%s Branch lengths do not satisfy the calibration(s)\n", spacer); + free (x); + return (NO); + } + + /* Allow tollerance */ + if (minRateConstrained == YES && maxRateConstrained == YES && AreDoublesEqual (minRate, maxRate, tol) == YES && minRate > maxRate) + { + maxRate = minRate; + } + + if (minRateConstrained == YES) + *minClockRate = minRate; + else + *minClockRate = 0.0; + + if (maxRateConstrained == YES) + *maxClockRate = maxRate; + else + *maxClockRate = MRBFLT_MAX; + + /* check that minimum and maximum rates are consistent */ + if (minRateConstrained == YES && maxRateConstrained == YES && minRate > maxRate) + { + MrBayesPrint ("%s Branch lengths do not satisfy the calibration(s)\n", spacer); + free (x); + return (NO); + } + + /* date all nodes based on a suitable rate */ + if (minRateConstrained == YES) + clockRate = minRate; + else if (maxRateConstrained == YES) + clockRate = 0.5 * maxRate; + else + clockRate = 1.0; + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + p->age = p->nodeDepth / clockRate; + } + + /* check if there is an age to add (I guess this is here because when max rate is close to minrate and we have numerical precision inacuracy) */ + ageToAdd = 0.0; + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + if (x[p->index] > 0.0 && x[p->index] > p->age) + { + f = x[p->index] - p->age; + if (f > ageToAdd) + ageToAdd = f; + } + } + + /* add extra length if any */ + if (AreDoublesEqual (ageToAdd, 0.0, 0.00000001) == NO) + { + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + p->age += ageToAdd; + } + } + + free (x); + + /* reset node depths to ensure that non-dated tips have node depth 0.0 */ + SetNodeDepths(t); + + return (YES); +} + + +int IsClockSatisfied (Tree *t, MrBFlt tol) +{ + int i, foundFirstLength, isClockLike; + MrBFlt firstLength=0.0, length; + TreeNode *p, *q; + + if (t->isRooted == NO) + return (NO); + + foundFirstLength = NO; + isClockLike = YES; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL && p->right == NULL) + { + if (p->isDated == YES) + { + //continue; + length = p->nodeDepth; + } + else + length = 0.0; + q = p; + while (q->anc != NULL) + { + if (q->anc->anc != NULL) + length += q->length; + q = q->anc; + } + if (foundFirstLength == NO) + { + firstLength = length; + foundFirstLength = YES; + } + else + { + if (AreDoublesEqual (firstLength, length, tol) == NO) + { + MrBayesPrint ("%s Node (%s) is not at the same depth as some other tip taking colibration into account. \n", spacer, p->label); + isClockLike = NO; + } + } + } + } + if (firstLength < BRLENS_MIN) + isClockLike = NO; + + return (isClockLike); +} + + +/* Check that tree obeys topology constraints and that node depths and ages are consistent */ +int IsTreeConsistent (Param *param, int chain, int state) +{ + Tree *tree; + TreeNode *p; + int i, j; + MrBFlt b, r, rAnc, clockRate; + Param *subParm; + + if (param->paramType != P_TOPOLOGY && param->paramType != P_BRLENS && param->paramType != P_SPECIESTREE) + return YES; + + tree = GetTree(param, chain, state); + if (modelSettings[param->relParts[0]].clockRate != NULL) + clockRate = *GetParamVals(modelSettings[param->relParts[0]].clockRate, chain, state); + else + clockRate = 1.0; + + if (CheckConstraints(tree)==ERROR) { + printf ("Tree does not obey constraints\n"); + return NO; + } + + /* check that the last few indices are not taken in a rooted tree */ + if (tree->isRooted == YES && tree->root->index != tree->nNodes - 1) + { + printf ("Problem with root index\n"); + return NO; + } + if (tree->isRooted == YES && tree->root->left->index != tree->nNodes - 2) + { + printf ("Problem with interior root index\n"); + return NO; + } + + if (tree->isClock == NO) + { + for (i=0; inNodes-1; i++) + { + p = tree->allDownPass[i]; + if (p->length <= 0.0) + { + if (p->length == 0.0) + printf ("Node %d has zero branch length %f\n", p->index, p->length); + else + printf ("Node %d has negative branch length %f\n", p->index, p->length); + return NO; + } + } + return YES; + } + + /* Clock trees */ + + /* Check that lengths and depths are consistent */ + for (i=0; inNodes-2; i++) { + p = tree->allDownPass[i]; + if (p->length < 0.0) { + printf ("Node %d has negative branch length %f\n", p->index, p->length); + return NO; + } + if (fabs(p->anc->nodeDepth - p->nodeDepth - p->length) > 0.000001) { + printf ("Node %d has length %f but nodeDepth %f and ancNodeDepth %f\n", + p->index, p->length, p->nodeDepth, p->anc->nodeDepth); + return NO; + } + if (p->left == NULL && p->isDated == NO && p->nodeDepth != 0.0) { + printf ("Node %d is an autodated tip (0.0) but has node depth %lf\n", + p->index, p->nodeDepth); + return NO; + } + } + + /* Check that ages and calibrations are consistent */ + if (tree->isCalibrated == YES) + { + for (i=0; inNodes-1; i++) + { + p = tree->allDownPass[i]; + if (p->isDated == YES) { + if (fabs((p->age - p->nodeDepth/clockRate)/p->age) > 0.000001) + { + printf ("Node %d has age %f but nodeDepth %f when clock rate is %f\n", + p->index, p->age, p->nodeDepth, clockRate); + return NO; + } + if (p->calibration->prior == fixed && fabs((p->age - p->calibration->priorParams[0])/p->age) > 0.000001) + { + printf ("Node %d has age %f but should be fixed to age %f\n", + p->index, p->age, p->calibration->priorParams[0]); + return NO; + } + else if (p->calibration->prior == uniform && + ((p->age - p->calibration->min)/p->age < -0.000001 || (p->age - p->calibration->max)/p->age > 0.000001)) + { + printf ("Node %d has age %f but should be in the interval [%f,%f]\n", + p->index, p->age, p->calibration->min, p->calibration->max); + return NO; + } + else if ((p->age - p->calibration->min)/p->age < -0.000001) + { + printf ("Node %d has age %f but should be at least of age %f\n", + p->index, p->age, p->calibration->min); + return NO; + } + else if ((p->age - p->calibration->max)/p->age > 0.000001) + { + printf ("Node %d has age %f but should be no older than %f\n", + p->index, p->age, p->calibration->max); + return NO; + } + } + } + } + + for (i=0; inSubParams; i++) + { + subParm = param->subParams[i]; + if (subParm->paramId == TK02BRANCHRATES || (subParm->paramId == MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state) == RCL_TK02)) + { + rAnc = GetParamVals(subParm, chain, state)[tree->root->left->index]; + if (fabs(rAnc - 1.0) > 1E-6) + { + printf ("%s TK02 relaxed clock mismatch in root rate, which is %e\n", spacer, rAnc); + return NO; + } + for (j=0; jnNodes-2; j++) + { + p = tree->allDownPass[j]; + b = GetParamSubVals(subParm, chain, state)[p->index]; + r = GetParamVals(subParm, chain, state)[p->index]; + rAnc = GetParamVals(subParm, chain, state)[p->anc->index]; + if (fabs(p->length * (r + rAnc) / 2.0 - b) > 0.000001) + { + printf ("%s TK02 relaxed clock mismatch in branch %d\n", spacer, p->index); + return NO; + } + } + } + else if (subParm->paramId == IGRBRANCHRATES || (subParm->paramId == MIXEDBRCHRATES && *GetParamIntVals(subParm, chain, state) == RCL_IGR)) + { + for (j=0; jnNodes-2; j++) + { + p = tree->allDownPass[j]; + b = GetParamSubVals(subParm, chain, state)[p->index]; + r = GetParamVals(subParm, chain, state)[p->index]; + if (fabs(p->length * r - b) > 0.000001) + { + printf ("%s Igr relaxed clock mismatch in branch %d\n", spacer, p->index); + return NO; + } + } + } + } + + if (param->paramType == P_SPECIESTREE) + return (IsSpeciesTreeConsistent(GetTree(param, chain, state), chain)); + + return YES; +} + + +/* LabelTree: Label tree; remove previous labels if any */ +int LabelTree (Tree *t, char **taxonNames) +{ + int i, nTaxa; + TreeNode *p = NULL; + + nTaxa = t->nNodes - t->nIntNodes; + if (t->isRooted == YES) + nTaxa--; + + /* erase previous labels, if any */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + p->marked = NO; + t->nodes[i].label = noLabel; + } + + /* add labels */ + for (i=0; inNodes; i++) + { + p = &t->nodes[i]; + if (p->left == NULL || (t->isRooted == NO && p->anc == NULL)) + { + if (p->marked == YES || p->index < 0 || p->index >= nTaxa) + { + MrBayesPrint ("%s Taxon node index repeated or out of range\n", spacer); + return (ERROR); + } + else + p->label = taxonNames[p->index]; + p->marked = YES; + } + else if (p->index > 0 && p->index < nTaxa) + { + MrBayesPrint ("%s Terminal taxon index set for interior node\n", spacer); + return (ERROR); + } + } + + return (NO_ERROR); +} + + +/*------------------------------------------------------------------------------------------- +| +| Mark: This routine will mark up a subtree rooted at p +| +---------------------------------------------------------------------------------------------*/ +void Mark (TreeNode *p) +{ + if (p != NULL) + { + p->marked = YES; + Mark (p->left); + Mark (p->right); + } +} + + +/*------------------------------------------------------------------------------------------- + | + | MarkDistance: This routine will mark up an unconstrained subtree rooted at p within dist + | The distance will be positive in the crown part and negative in the root part. + | + ---------------------------------------------------------------------------------------------*/ +void MarkDistance (TreeNode *p, int YESorNO, int dist, int *n) +{ + if (p == NULL || p->anc == NULL) + return; + + p->marked = YES; + if (YESorNO == YES) // in root part + p->x = p->anc->x -1; + else // in crown part + p->x = p->anc->x +1; + (*n)++; + + if (p->isLocked == NO && abs(p->x) < dist) + { + MarkDistance (p->left, YESorNO, dist, n); + MarkDistance (p->right,YESorNO, dist, n); + } +} + + +/*------------------------------------------------------------------------------------------- + | + | MarkUnconstrained: This routine will mark up an unconstrained subtree rooted at p + | + ---------------------------------------------------------------------------------------------*/ +void MarkUnconstrained (TreeNode *p) +{ + if (p != NULL) + { + p->marked = YES; + if (p->isLocked == NO) + { + MarkUnconstrained (p->left); + MarkUnconstrained (p->right); + } + } +} + + +/*------------------------------------------------------------------------------------------- +| +| MoveCalculationRoot: This routine will move the calculation root to the terminal with +| index outgroup +| +---------------------------------------------------------------------------------------------*/ +int MoveCalculationRoot (Tree *t, int outgroup) +{ + int i; + TreeNode *p, *q, *r; + + if (t->isRooted == YES || outgroup < 0 || outgroup > t->nNodes - t->nIntNodes - (t->isRooted == YES ? 1 : 0)) + { + MrBayesPrint ("%s Problem moving calculation root\n", spacer); + return (ERROR); + } + + if (t->root->index == outgroup) + return (NO_ERROR); /* nothing to do */ + + /* mark the path to the new calculation root */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL && p->right == NULL) + { + if (p->index == outgroup) + p->marked = YES; + else + p->marked = NO; + } + else + { + if (p->left->marked == YES || p->right->marked == YES) + p->marked = YES; + else + p->marked = NO; + } + } + + /* rotate the tree to use the specified calculation root */ + p = t->root->left; + q = t->root; + q->anc = p; + q->left = q->right = NULL; + q->length = p->length; + while (p->left != NULL && p->right != NULL) + { + if (p->left->marked == YES) + { + r = p->left; + p->anc = r; + p->left = q; + p->length = r->length; + q = p; + p = r; + } + else /* if (p->right->marked == YES) */ + { + r = p->right; + p->anc = r; + p->right = q; + p->length = r->length; + q = p; + p = r; + } + } + p->left = p->anc; + p->right = p->anc = NULL; + t->root = p; + p->length = 0.0; + + GetDownPass (t); + + return (NO_ERROR); +} + + +/*------------------------------------------------------------------------------------------- +| +| MovePolyCalculationRoot: This routine will move the calculation root to the terminal with +| index outgroup and place it as the right-most descendant of the root node +| +---------------------------------------------------------------------------------------------*/ +int MovePolyCalculationRoot (PolyTree *t, int outgroup) +{ + int i; + PolyNode *p = NULL, *q, *r; + + /* check if tree is rooted, in which case calculation root is irrelevant */ + if (t->root->left->sib->sib == NULL) + return (NO_ERROR); + + if (outgroup < 0 || outgroup > t->nNodes - t->nIntNodes) + { + MrBayesPrint ("%s Outgroup index is out of range\n", spacer); + return (ERROR); + } + + if (t->root->left->sib->sib->sib != NULL) + { + MrBayesPrint ("%s Root has more than three descendants\n", spacer); + return (ERROR); + } + + /* check if rerooting actually necessary */ + if (t->root->left->sib->sib->index == outgroup) + return (NO_ERROR); + + /* mark the path to the new calculation root */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->index == outgroup) + break; + } + if (p->left != NULL) + { + MrBayesPrint ("%s Outgroup index set for internal node\n", spacer); + for (i=0; inNodes; i++) + printf ("%d -- %d\n", i, t->allDownPass[i]->index); + getchar(); + return (ERROR); + } + + /* mark path to current root */ + for (i=0; inNodes; i++) + t->allDownPass[i]->mark = NO; + q = p; + while (q != NULL) + { + q->mark = YES; + q = q->anc; + } + + /* rotate the tree to use the specified calculation root */ + p = t->root; + for (;;) + { + /* find marked descendant */ + for (q=p->left; q->mark == NO; q=q->sib) + ; + if (q->index == outgroup) + break; + /* add old root to descendants of that node */ + for (r=q->left; r->sib!=NULL; r=r->sib) + ; + r->sib = p; + p->sib = NULL; /* should not be needed */ + p->anc = q; + p->length = q->length; + /* remove that node from descendants of old root node */ + if (p->left == q) + p->left = q->sib; + else + { + for (r=p->left; r->sib!=q; r=r->sib) + ; + r->sib = r->sib->sib; + } + /* make new node root */ + q->sib = NULL; + q->anc = NULL; + q->length = 0.0; + p = q; + } + + /* p is now the new root */ + t->root = p; + + /* finally make sure calculation root is last node among root's descendants */ + for (q=p->left; q->sib!=NULL; q=q->sib) + ; + if (q->index != outgroup) + { + if (p->left->index == outgroup) + { + q->sib = p->left; + p->left = p->left->sib; + q->sib->sib = NULL; + } + else + { + for (r=p->left; r->sib->index!=outgroup; r=r->sib) + ; + q->sib = r->sib; + r->sib = r->sib->sib; + q->sib->sib = NULL; + } + } + + GetPolyDownPass (t); + + return (NO_ERROR); +} + + +/* +@return the number of levels for the tree rooted at the "node" +*/ +int NrSubTreeLevels(TreeNode *node) +{ + int r,l; + + if (node == NULL) + { + return -1; + } + + r = NrSubTreeLevels (node->right); + l = NrSubTreeLevels (node->left); + + return ((r>l)?(r):(l))+1; +} + + +/*------------------------------------------------------------------------------------------- +| +| NumConstrainedTips: This routine will return the number of constrained tips, internal or external +| +---------------------------------------------------------------------------------------------*/ +int NumConstrainedTips (TreeNode *p) +{ + int i = 0; + + if (p == NULL) + return i; + if (p->left == NULL) + return 1; + + i += NConstrainedTips (p->left); + i += NConstrainedTips (p->right); + + return i; +} + + +/* NConstrainedTips: Recursive function to get the number of constrained tips */ +int NConstrainedTips (TreeNode *p) +{ + int i=0; + + if (p!=NULL) + { + if (p->left == NULL || p->isLocked == YES) + return 1; + else + { + i += NConstrainedTips (p->left); + i += NConstrainedTips (p->right); + } + } + return i; +} + + +/*------------------------------------------------------------------------------------------- +| +| NumDatedTips: This routine will return the number of dated tips, internal or external +| +---------------------------------------------------------------------------------------------*/ +int NumDatedTips (TreeNode *p) +{ + int i = 0; + + assert (p != NULL && p->left != NULL); + + i += NDatedTips (p->left); + i += NDatedTips (p->right); + + return i; +} + + +/* NDatedTips: recursive function to get the number of dated tips */ +int NDatedTips (TreeNode *p) +{ + int i=0; + + assert (p!=NULL); + + if (p->left == NULL || p->isDated == YES) + return 1; + else + { + i += NDatedTips (p->left); + i += NDatedTips (p->right); + return i; + } +} + + +/* OrderTips: Order tips in a polytomous tree */ +void OrderTips (PolyTree *t) +{ + int i, j; + PolyNode *p, *q, *r, *pl, *ql, *rl; + + /* label by minimum index */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + { + if (t->isRooted == NO && p->index == localOutGroup) + p->x = -1; + else + p->x = p->index; + } + else + { + j = t->nNodes; + for (q=p->left; q!=NULL; q=q->sib) + { + if (q->x < j) + j = q->x; + } + p->x = j; + } + } + + /* and rearrange */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL || p->anc == NULL) + continue; + for (ql=NULL, q=p->left; q->sib!=NULL; ql=q, q=q->sib) + { + for (rl=q, r=q->sib; r!=NULL; rl=r, r=r->sib) + { + if (r->x < q->x) + { + if (ql == NULL) + p->left = r; + if (r == q->sib) /* swap adjacent q and r */ + { + if (ql != NULL) + ql->sib = r; + pl = r->sib; + r->sib = q; + q->sib = pl; + } + else /* swap separated q and r */ + { + if (ql != NULL) + ql->sib = r; + pl = r->sib; + r->sib = q->sib; + rl->sib = q; + q->sib = pl; + } + pl = q; + q = r; + r = pl; + } + } + } + } + GetPolyDownPass(t); +} + + +/* PrintNodes: Print a list of tree nodes, pointers and length */ +void PrintNodes (Tree *t) +{ + int i; + TreeNode *p; + + printf ("Node\tleft\tright\tanc\tlength\n"); + for (i=0; inNodes; i++) + { + p = &t->nodes[i]; + printf ("%d\t%d\t%d\t%d\t%f\t%f\n", + p->index, + p->left == NULL ? -1 : p->left->index, + p->right == NULL ? -1 : p->right->index, + p->anc == NULL ? -1 : p->anc->index, + p->length, + p->nodeDepth); + } + + if (t->root == NULL) + printf ("root: NULL\n"); + else + printf ("root: %d\n", t->root->index); + + printf ("allDownPass:"); + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p!=NULL) + printf (" %d", p->index); + else + printf (" NULL"); + } + printf ("\nintDownPass: "); + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + if (p!=NULL) + printf (" %d\t", p->index); + else + printf (" NULL\t"); + } + printf ("\n"); +} + + +/* PrintPolyNodes: Print a list of polytomous tree nodes, pointers and length */ +void PrintPolyNodes (PolyTree *pt) +{ + int i, j, k; + PolyNode *p; + + printf ("Node\tleft\tsib\tanc\tlength\tlabel\n"); + for (i=0; imemNodes; i++) + { + p = &pt->nodes[i]; + printf ("%d\t%d\t%d\t%d\t%f\t%s\n", + p->index, + p->left == NULL ? -1 : p->left->index, + p->sib == NULL ? -1 : p->sib->index, + p->anc == NULL ? -1 : p->anc->index, + p->length, + p->label); + } + printf ("root: %d\n", pt->root->index); + fflush(stdout); + + if (pt->nBSets > 0) + { + for (i=0; inBSets; i++) + { + printf ("Effective branch length set '%s'\n", pt->bSetName[i]); + for (j=0; jnNodes; j++) + { + printf ("%d:%f", j, pt->effectiveBrLen[pt->nBSets][j]); + if (j != pt->nNodes-1) + printf (", "); + } + printf ("\n"); + } + } + + if (pt->nESets > 0) + { + for (i=0; inESets; i++) + { + printf ("Cpp event set '%s'\n", pt->eSetName[i]); + for (j=0; jnNodes; j++) + { + if (pt->nEvents[i*pt->nNodes+j] > 0) + { + printf ("\tNode %d -- %d:(", j, pt->nEvents[i][j]); + for (k=0; knEvents[i][j]; k++) + { + printf ("%f %f", pt->position[i][j][k], pt->rateMult[i][j][k]); + if (k != pt->nEvents[i][j]-1) + printf (", "); + } + printf (")\n"); + } + } + printf ("\n"); + } + } + + fflush(stdout); +} + + +/* PrintTranslateBlock: Print a translate block to file fp for tree t */ +void PrintTranslateBlock (FILE *fp, Tree *t) +{ + int i, j, nTaxa; + + if (t->isRooted == NO) + nTaxa = t->nNodes - t->nIntNodes; + else + nTaxa = t->nNodes - t->nIntNodes - 1; + + fprintf (fp, "\ttranslate\n"); + + for (i=0; inNodes; j++) + if (t->allDownPass[j]->index == i) + break; + if (i == nTaxa-1) + fprintf (fp, "\t\t%d\t%s;\n", i+1, t->allDownPass[j]->label); + else + fprintf (fp, "\t\t%d\t%s,\n", i+1, t->allDownPass[j]->label); + } +} + + +/** +Update relaxed clock parameter of the branch of a node with index "b" after node with index "a" is removed. +i.e. make branch of node with index "b" be a concatenation of its original branch and the branch of node with index "a" +Relaxed clock parameter of node with index "a" become invalid in the process. +Note: For Non-clock models the routine has no effect. + +| | +| | +a | +| -> | +| | +| b +b */ +void AppendRelaxedBranch (int a,int b,PolyTree *t) +{ + int i,len; + + for (i=0; inBSets; i++) + { + t->effectiveBrLen[i][b] += t->effectiveBrLen[i][a]; + } + + for (i=0; inESets; i++) + { + len=t->nEvents[i][a]+t->nEvents[i][b]; + t->position[i][a] = (MrBFlt *) SafeRealloc ((void *)t->position[i][a], len*sizeof(MrBFlt)); + t->rateMult[i][a] = (MrBFlt *) SafeRealloc ((void *)t->rateMult[i][a], len*sizeof(MrBFlt)); + memcpy (t->position[i][a]+t->nEvents[i][a], t->position[i][b], t->nEvents[i][b]*sizeof(MrBFlt)); + memcpy (t->rateMult[i][a]+t->nEvents[i][a], t->rateMult[i][b], t->nEvents[i][b]*sizeof(MrBFlt)); + free(t->position[i][b]); + free(t->rateMult[i][b]); + t->position[i][b] = t->position[i][a]; + t->rateMult[i][b] = t->rateMult[i][a]; + t->position[i][a] = NULL; + t->rateMult[i][a] = NULL; + t->nEvents[i][a] = 0; + t->nEvents[i][b] = len; + } + +} + + +/** +Swap relaxed clock paramiters of the branch of nodes with index "a" and "b". +*/ +void SwapRelaxedBranchInfo (int a,int b,PolyTree *t) +{ + int i,j; + MrBFlt tmp, *tmpp; + + for (i=0; inBSets; i++) + { + tmp = t->effectiveBrLen[i][a]; + t->effectiveBrLen[i][a] = t->effectiveBrLen[i][b]; + t->effectiveBrLen[i][b] = tmp; + } + if (t->popSizeSet == YES) + { + tmp = t->popSize[a]; + t->popSize[a]=t->popSize[b]; + t->popSize[b] = tmp; + } + + for (i=0; inESets; i++) + { + tmpp = t->position[i][a]; + t->position[i][a] = t->position[i][b]; + t->position[i][b] = tmpp; + tmpp = t->rateMult[i][a]; + t->rateMult[i][a] = t->rateMult[i][b]; + t->rateMult[i][b] = tmpp; + j = t->nEvents[i][a]; + t->nEvents[i][a] = t->nEvents[i][b]; + t->nEvents[i][b] = j; + } +} + + +/*------------------------------------------------------------------------------------------- +| +| PrunePolyTree: This routine will prune a polytomous tree according to the currently +| included taxa. NB! All tree nodes cannot be accessed by cycling over the +| pt->nodes array after the deletion, because some spaces will be occupied by deleted +| nodes and pt->nNodes is no longer the length of this array +| (if proper re-arangment of pt->nodes needed then remove "#if 0" and make changes to p->x, see below). +| +---------------------------------------------------------------------------------------------*/ +int PrunePolyTree (PolyTree *pt) +{ + int i, j, numDeleted, numTermPruned, numIntPruned, index; + PolyNode *p = NULL, *q=NULL, *r=NULL, *qa; + + numDeleted = 0; + for (i=0; inNodes; i++) + { + p = pt->allDownPass[i]; + CheckString (taxaNames, numTaxa, p->label, &index); + if (p->left == NULL && taxaInfo[index].isDeleted == YES) + numDeleted++; + } + + if (numDeleted == 0) + { + /* nothing to do */ + return (NO_ERROR); + } + if (pt->nNodes - pt->nIntNodes - numDeleted < 3) + { + MrBayesPrint ("%s Pruned tree has less than three taxa in it\n", spacer); + return (ERROR); + } + if (pt->nNodes - pt->nIntNodes < numLocalTaxa) + { + MrBayesPrint ("%s Tree to be pruned does not include all taxa\n", spacer); + return (ERROR); + } + + /* prune away one node at a time */ + numIntPruned = 0; + numTermPruned = 0; + for (i=0; inNodes; i++) + { + p = pt->allDownPass[i]; + if (p->left != NULL) + continue; + CheckString (taxaNames, numTaxa, p->label, &index); + if (taxaInfo[index].isDeleted == YES) + { + numTermPruned++; + for (q=p->anc->left; q!=NULL; q=q->sib) + { + if (q->sib == p) + break; + } + if (q == NULL) + { + /* p is the left of its ancestor */ + assert (p->anc->left == p); + p->anc->left = p->sib; + } + else + { + /* p is q->sib; this also works if p->sib is NULL */ + q->sib = p->sib; + } + /* if only one child left, delete ancestral node */ + j = 0; + for (q=p->anc->left; q!=NULL; q=q->sib) + j++; + if (j == 1) + { + /* p->anc->left is only child left; make p->anc be p->anc->left and accommodate its length */ + numIntPruned++; + qa= p->anc; + q = qa->left; + if (q->left == NULL) + { + AppendRelaxedBranch (qa->index, q->index, pt); + qa->index = q->index; + qa->length += q->length; + strcpy(qa->label, q->label); + qa->left = NULL; + /* To make sure that q is not treated as the representer of the tip it represented before. i.e. make condition if (p->left != NULL) true */ + q->left = (struct pNode*)1; + } + else + { + if (qa->anc != NULL) + { + AppendRelaxedBranch (qa->index, q->index, pt); + qa->length += q->length; + } + qa->index = q->index; + qa->left = q->left; + for (r=q->left; r!= NULL; r=r->sib) + r->anc = qa; + } + } + /* if unrooted, then root node has to have more then 2 children, thus the following check */ + if (j == 2 && pt->isRooted == NO && p->anc->anc == NULL) + { + numIntPruned++; + r=p->anc; /*r is the root with only 2 children*/ + if (r->left->left != NULL) + {/* Make r->left new root by attaching "right" child of r to children of r->left */ + for (q=r->left->left; q->sib!=NULL; q=q->sib) + ; + q->sib = r->left->sib; + r->left->sib->anc = q->anc; + r->left->sib->length += q->anc->length; + r->left->sib = NULL; + r->left->anc = NULL; + pt->root = r->left; + } + else + {/* Make "right" child of r (r->left->sib) the new root by attaching r->left to children of r->"right" */ + for (q=r->left->sib->left; q->sib!=NULL; q=q->sib) + ; + q->sib = r->left; + r->left->anc = q->anc; + r->left->length += q->anc->length; + r->left->sib = NULL; + q->anc->anc = NULL; + pt->root = q->anc; + } + } + } + } + +#if 0 + /* place unused space at the end of pt->nodes array. If activated this code p->x has to be set to non 0 value for all p that are deleted. */ + for (i=0; inNodes; i++) + { + p = &pt->nodes[i]; + if (p->x != 0) + { + for (j=i+1; jnNodes; j++) + { + q = &pt->nodes[j]; + if (q->x == 0) + break; + } + if (j != pt->nNodes) + { + /* swap nodes; quite difficult! */ + CopyPolyNodes (p, q, nLongsNeeded); + p->left = q->left; + p->sib = q->sib; + p->anc = q->anc; + for (k=0; knNodes; k++) + { + r = &pt->nodes[k]; + if (r->left == q) + r->left = p; + if (r->sib == q) + r->sib = p; + if (r->anc == q) + r->anc = p; + } + } + } + } +#endif + + /* correct number of nodes */ + pt->nNodes -= (numTermPruned + numIntPruned); + pt->nIntNodes -= numIntPruned; + + /* get downpass; note that the deletion procedure does not change the root in rooted case */ + i=j=0; + GetPolyNodeDownPass (pt, pt->root, &i, &j); + assert (i==pt->nNodes); + assert (j==pt->nIntNodes); + + return (NO_ERROR); +} + + +/*-------------------------------------------------------------------- +| +| RandPerturb: Randomly perturb a tree by nPert NNIs +| +---------------------------------------------------------------------*/ +int RandPerturb (Tree *t, int nPert, RandLong *seed) +{ + int i, whichNode; + TreeNode *p, *q, *a, *b, *c; + + if (t->nConstraints >= t->nIntNodes) + { + MrBayesPrint ("%s User tree cannot be perturbed because all nodes are locked\n", spacer); + return (ERROR); + } + + for (i=0; inIntNodes - 1)); + p = t->intDownPass[whichNode]; + } while (p->isLocked == YES); + + q = p->anc; + a = p->left; + b = p->right; + if (q->left == p) + c = q->right; + else + c = q->left; + + if (RandomNumber(seed) < 0.5) + { + /* swap b and c */ + p->right = c; + c->anc = p; + + if (q->left == c) + q->left = b; + else + q->right = b; + b->anc = q; + } + else + { + /* swap a and c */ + p->left = c; + c->anc = p; + + if (q->left == c) + q->left = a; + else + q->right = a; + a->anc = q; + } + + if (t->isCalibrated == YES) + InitCalibratedBrlens (t, 0.0001, seed); + else if (t->isClock == YES) + InitClockBrlens (t); + } + + GetDownPass (t); + + if (t->checkConstraints == YES && CheckConstraints (t) == NO_ERROR) + { + MrBayesPrint ("%s Broke constraints when perturbing tree\n", spacer); + return (ERROR); + } + + return (NO_ERROR); +} + + +/* +| Reorder array of nodes "nodeArray" such that first nodes in it could be paired with "w" to create imediat common ancestor and this ancesor node would not vialate any constraint. +| +| @param w Reference node as described +| @param nodeArray A set of node to order as described +| @param activeConstraints Array containing indeces of active constraints in the set of defined constraints +| @param nLongsNeeded Length of partition information (in BitsLong) in a node and constraint deffinition. +| @param isRooted Do constraints apply to rootet tree YES or NO +| +| @return Number of nodes in "nodeArray" that could be paired with "w" to create imediat common ancestor and this ancesor node would not vialate any constraint +*/ +int ConstraintAllowedSet(PolyNode *w, PolyNode **nodeArray, int nodeArraySize, int *activeConstraints, int activeConstraintsSize, int nLongsNeeded, int isRooted) +{ + int i, j, k, FirstEmpty; + BitsLong **constraintPartition; + PolyNode *tmp; + + for (j=0; jpartition, nLongsNeeded) == YES) || + (isRooted == NO && IsPartNested(definedConstraintTwoPruned[k], w->partition, nLongsNeeded) == YES)) + continue;/* all nodes are compartable because condition of the constraint has to be sutsfied in the subtree rooted at w*/ + + FirstEmpty = IsSectionEmpty(definedConstraintPruned[k], w->partition, nLongsNeeded); + if (FirstEmpty == YES && IsSectionEmpty(definedConstraintTwoPruned[k], w->partition, nLongsNeeded) == YES) + continue; /* all nodes are compartable becouse w does not contain any constraint taxa*/ + + assert (FirstEmpty^IsSectionEmpty(definedConstraintTwoPruned[k], w->partition, nLongsNeeded)); + + if (FirstEmpty == YES) + {/*w->partition has intersection with definedConstraintTwoPruned[k], thus remove all nodes from nodeArray that intersect with definedConstraintPruned[k]*/ + constraintPartition=definedConstraintPruned; + } + else + {/*w->partition has intersection with definedConstraintPruned[k], thus remove all nodes from nodeArray that intersect with definedConstraintTwoPruned[k]*/ + constraintPartition=definedConstraintTwoPruned; + } + + for (i=0;ipartition, nLongsNeeded) == NO && + ((FirstEmpty == NO && isRooted== YES) || IsPartNested(constraintPartition[k], nodeArray[i]->partition, nLongsNeeded) == NO)) + /*second part of if statment is to bail out "nodeArray[i]" when "w" contains nodes for example from definedConstraintPruned and "nodeArray[i]" have definedConstraintTwoPruned fully nested in it + This bail out not applicable if t->isRooted== YES Since we should create a rooting node for the first set of taxa in the constraint. + Note that such case possible because we may have hard constraint node that fully nest definedConstraintTwoPruned but also having taxa from definedConstraintPruned keeping constraint active.*/ + { + tmp = nodeArray[i]; + nodeArray[i]=nodeArray[--nodeArraySize]; + nodeArray[nodeArraySize]=tmp; + i--; + } + } + }/*end if PARTIAL*/ + else + { + assert (definedConstraintsType[k] == NEGATIVE); + if (isRooted == YES || IsBitSet(localOutGroup, definedConstraintPruned[k])==NO) + constraintPartition=definedConstraintPruned; + else + constraintPartition=definedConstraintTwoPruned; + + if (IsSectionEmpty(constraintPartition[k], w->partition, nLongsNeeded)==YES) + continue; + + for (i=0;ipartition, nodeArray[i]->partition, constraintPartition[k], nLongsNeeded) == YES) + { + tmp = nodeArray[i]; + nodeArray[i]=nodeArray[--nodeArraySize]; + nodeArray[nodeArraySize]=tmp; + i--; + } + } + + }/*end if NEGATIVE*/ + } + + return nodeArraySize; +} + + +/* +| Check if "partition" violate any constraint. +| +| @param partiton Partition to check +| @param activeConstraints Array containing indeces of active constraints in the set of defined constraints +| @param nLongsNeeded Length of partition information (in BitsLong) in a node and constraint deffinition +| @param isRooted Do constraints apply to rootet tree YES or NO +| +| @return Index of first violated constraint in activeConstraints array, -1 if no constraint is violated. +*/ +int ViolatedConstraint(BitsLong *partition, int *activeConstraints, int activeConstraintsSize, int nLongsNeeded, int isRooted) +{ + int j, k; + BitsLong **constraintPartition; + + for (j=0; jpartition, nLongsNeeded) == YES && IsSectionEmpty(definedConstraintTwoPruned[k], w->partition, nLongsNeeded)) || + (isRooted == NO && IsPartNested(definedConstraintTwoPruned[k], w->partition, nLongsNeeded) == YES && IsSectionEmpty(definedConstraintPruned[k], w->partition, nLongsNeeded))) + { + //tmp = activeConstraints[j]; + activeConstraints[j]=activeConstraints[--activeConstraintsSize]; + //activeConstraints[activeConstraintsSize]=tmp; + j--; + } + }/*end if PARTIAL*/ + else + { + assert (definedConstraintsType[k] == NEGATIVE); + if (isRooted == YES || IsBitSet(localOutGroup, definedConstraintPruned[k])==NO) + constraintPartition=definedConstraintPruned; + else + constraintPartition=definedConstraintTwoPruned; + + if (IsPartNested(constraintPartition[k], w->partition, nLongsNeeded)==NO && IsSectionEmpty(constraintPartition[k], w->partition, nLongsNeeded)==NO) + { + //tmp = activeConstraints[j]; + activeConstraints[j]=activeConstraints[--activeConstraintsSize]; + //activeConstraints[activeConstraintsSize]=tmp; + j--; + } + }/*end if NEGATIVE*/ + } + + return activeConstraintsSize; +} + + +/*-------------------------------------------------------------------- +| +| RandResolve: Randomly resolve a polytomous tree +| +| @param tt is a tree which contains information about applicable constraints. If it is set to NULL then no constraints will be used. +| If t!=NULL then partitions of nodes of polytree should be allocated for example by AllocatePolyTreePartitions (t); +| @return NO_ERROR on succes, ABORT if could not resolve a tree without vialating some consraint, ERROR if any other error occur +---------------------------------------------------------------------*/ +int RandResolve (Tree *tt, PolyTree *t, RandLong *seed, int destinationIsRooted) +{ + int i, j, k, nextNode, stopNode, rand1, rand2, nTaxa, nLongsNeeded, tmp; + PolyNode *p=NULL, *q, *r, *u, *w1, *w2; + int nodeArrayAllowedSize, nodeArraySize, activeConstraintsSize; + PolyNode **nodeArray; + int *activeConstraints; + + assert (tt==NULL || t->bitsets!=NULL); /* partition fields of t nodes need to be allocated if constraints are used*/ + nTaxa = t->nNodes - t->nIntNodes; /* different from numLocalTaxa potentially if a species tree */ + assert (nTaxa <= t->memNodes/2); /* allocated tree has to be big enough*/ + nLongsNeeded = (nTaxa - 1) / nBitsInALong + 1; /* allocated lenght of partitions is t->memNodes/2 bits but only first nTaxa bits are used */ + + nodeArray = t->allDownPass; /*temporary use t->allDownPass for different purpose. It get properly reset at the end. */ + activeConstraints = tempActiveConstraints; + activeConstraintsSize = 0; + + /* collect constraints to consider if applicable*/ + if (tt!=NULL && tt->constraints!=NULL) + { + for (k=0; kconstraints[k] == YES && definedConstraintsType[k] != HARD) + activeConstraints[activeConstraintsSize++]=k; + } + } + + /* count immediate descendants */ + GetPolyDownPass(t); + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + tmp=ViolatedConstraint(p->partition, activeConstraints, activeConstraintsSize, nLongsNeeded, t->isRooted); + if (tmp != -1) + { + assert (p->isLocked == YES); + MrBayesPrint ("%s Could not build a constraint tree since hard constraint \"%s\" and constraint \"%s\" are incompatible\n", spacer, constraintNames[p->lockID], constraintNames[activeConstraints[tmp]]); + return (ERROR); + } + activeConstraintsSize = PruneActiveConstraints (p, activeConstraints, activeConstraintsSize, nLongsNeeded, t->isRooted); + j = 0; + for (q=p->left; q!=NULL; q=q->sib) + j++; + p->x = j; + } + + /* add one node at a time */ + if (destinationIsRooted == NO) + stopNode = 2*nTaxa - 2; + else + stopNode = 2*nTaxa - 1; + for (nextNode=t->nNodes; nextNode < stopNode; nextNode++) + { + /* find a polytomy to break */ + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + if (destinationIsRooted == YES && p->x > 2) + break; + if (destinationIsRooted == NO && ((p->anc != NULL && p->x > 2) || (p->anc == NULL && p->x > 3))) + break; + } + + /* if we can't find one, there's an error */ + if (i == t->nIntNodes) + { + return ERROR; + } + + nodeArraySize=0; + /*Collect initial list of candidate nodes to join*/ + for (q = p->left; q!= NULL; q = q->sib) + { + nodeArray[nodeArraySize++]=q; + } + assert (nodeArraySize==p->x); + + /* identify two descendants randomly */ + /* make sure we do not select outgroup if it is an unrooted tree */ + if (p->anc == NULL && destinationIsRooted == NO) + nodeArraySize--; + + do + { + /* Pick first node */ + rand1 = (int) (RandomNumber(seed) * nodeArraySize); + w1 = nodeArray[rand1]; + nodeArray[rand1] = nodeArray[--nodeArraySize]; + + if (nodeArraySize==0) + return ABORT; /* Potentaily here we could instead revert by removing last added node and try again. */ + + /* Move all nodes in nodeArray which can be paired with w to the begining of array */ + nodeArrayAllowedSize=ConstraintAllowedSet(w1, nodeArray, nodeArraySize, activeConstraints, activeConstraintsSize, nLongsNeeded, t->isRooted); + /* TODO optimization for Maxim (if not Maxim remove it if you still see it): if nodeArrayAllowedSize==0 then set w1->y */ + } while (nodeArrayAllowedSize == 0); + + rand2 = (int) (RandomNumber(seed) *nodeArrayAllowedSize); + w2 = nodeArray[rand2]; + + /* create a new node */ + u = &t->nodes[nextNode]; + u->anc = p; + u->x = 2; + p->x--; + + if (tt != NULL) { + for (j=0; jpartition[j] = w1->partition[j] | w2->partition[j] ; + activeConstraintsSize = PruneActiveConstraints (u, activeConstraints, activeConstraintsSize, nLongsNeeded, t->isRooted); + } + + u->left = w1; + t->nNodes++; + t->nIntNodes++; + + /* connect tree together */ + r = u; + for (q = p->left; q!= NULL; q = q->sib) + { + if (q != w1 && q != w2) + { + r->sib=q; + r = q; + } + } + r->sib = NULL; + w1->sib = w2; + w2->sib = NULL; + w1->anc = u; + w2->anc = u; + p->left = u; + + /* update tree */ + GetPolyDownPass (t); + } + + /* relabel interior nodes (important that last indices are at the bottom!) */ + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + p->index = nTaxa + i; + } + return NO_ERROR; +} + + +/* ResetTreeNode: Reset tree node except for memory index */ +void ResetTreeNode (TreeNode *p) +{ + /* do not change memoryIndex; that is set once and for all when tree is allocated */ + p->index = 0; + p->scalerNode = NO; + p->upDateCl = NO; + p->upDateTi = NO; + p->marked = NO; + p->length = 0.0; + p->nodeDepth = 0.0; + p->x = 0; + p->y = 0; + p->index = 0; + p->isDated = NO; + p->calibration = NULL; + p->age = -1.0; + p->isLocked = NO; + p->lockID = -1; + p->label = noLabel; + p->d = 0.0; + p->partition = NULL; +} + + +/* ResetPolyNode: Reset all values of one node in a polytree */ +void ResetPolyNode (PolyNode *p) +{ + /* we reset everything here except memoryIndex, which should be immutable */ + p->length = 0.0; + p->depth = 0.0; + p->age = 0.0; + p->anc = p->left = p->sib = NULL; + p->calibration = NULL; + p->f = 0.0; + p->index = 0; + p->isDated = NO; + p->isLocked = NO; + strcpy (p->label,""); + p->lockID = 0; + p->partition = NULL; + p->partitionIndex = 0; + p->support = 0.0; + p->x = p->y = 0; +} + + +/* ResetPolyTree: Reset polytomous tree to pristine state but keep relevant memory. */ +void ResetPolyTree (PolyTree *pt) +{ + int i, maxTaxa, nLongsNeeded; + + /* clear nodes */ + for (i=0; imemNodes; i++) + ResetPolyNode (&pt->nodes[i]); + + /* empty node arrays and tree properties but keep space */ + for (i=0; inNodes; i++) + pt->allDownPass[i] = NULL; + for (i=0; inIntNodes; i++) + pt->intDownPass[i] = NULL; + pt->nNodes = 0; + pt->nIntNodes = 0; + pt->root = NULL; + pt->brlensDef = NO; + pt->isRooted = NO; + pt->isClock = NO; + pt->isRelaxed = NO; + pt->clockRate = 0.0; + + /* empty bitsets but keep space and pointers */ + if (pt->bitsets) + { + maxTaxa = pt->memNodes / 2; + nLongsNeeded = (maxTaxa - 1) / nBitsInALong + 1; + for (i=0; imemNodes*nLongsNeeded; i++) + pt->bitsets[i] = 0; + for (i=0; imemNodes; i++) + pt->nodes[i].partition = pt->bitsets + i*nLongsNeeded; + } + + /* empty relaxed clock parameters */ + FreePolyTreeRelClockParams (pt); + + /* empty population size set parameters */ + FreePolyTreePopSizeParams (pt); +} + + +/* ResetPolyTreePartitions: Reset and set bit patterns describing partitions */ +void ResetPolyTreePartitions (PolyTree *pt) +{ + int i, j, numTaxa, nLongsNeeded; + PolyNode *pp; + + /* get some handy numbers */ + numTaxa = pt->memNodes/2; + nLongsNeeded = (numTaxa - 1) / nBitsInALong + 1; + + /* reset bits describing partitions */ + for (i=0; imemNodes*nLongsNeeded; i++) + { + pt->bitsets[i] = 0; + } + + /* set bits describing partitions */ + for (i=0; inNodes; i++) + { + assert (pt->allDownPass != NULL && pt->allDownPass[i] != NULL); + assert (pt->allDownPass[i]->partition != NULL); + + pp = pt->allDownPass[i]; + if (pp->left == NULL) + { + SetBit (pp->index, pp->partition); + } + if (pp->anc != NULL) + { + for (j=0; janc->partition[j] |= pp->partition[j]; + } + } +} + + +/*---------------------------------------------- +| +| ResetRootHeight: Reset node heights in a clock +| tree to fit a new root height. Assumes +| node depths and lengths set correctly. +| +-----------------------------------------------*/ +int ResetRootHeight (Tree *t, MrBFlt rootHeight) +{ + int i; + TreeNode *p; + MrBFlt factor, x, y; + + if (t->isClock == NO) + return ERROR; + + /* make sure node depths are set */ + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + p->nodeDepth = 0.0; + else + { + x = p->left->nodeDepth + p->left->length; + y = p->right->nodeDepth + p->right->length; + if (x > y) + p->nodeDepth = x; + else + p->nodeDepth = y; + } + } + for (i=t->nNodes-3; i>=0; i--) + { + p = t->allDownPass[i]; + p->nodeDepth = p->anc->nodeDepth - p->length; + } + + /* now reset node depths and branch lengths */ + factor = rootHeight / t->root->left->nodeDepth; + t->root->left->nodeDepth = rootHeight; + for (i=t->nNodes-2; i>=0; i--) + { + p = t->allDownPass[i]; + p->nodeDepth *= factor; + p->length *= factor; + } + + return NO_ERROR; +} + + +/*---------------------------------------------- +| +| ResetTipIndices: reset tip indices to be from +| 0 to number of included taxa, in same order +| as in the original taxon set. +| +-----------------------------------------------*/ +void ResetTipIndices(PolyTree *pt) +{ + int i, j, k, m; + PolyNode *p = NULL; + + for (i=j=0; inNodes; k++) + { + p = pt->allDownPass[k]; + if (StrCmpCaseInsensitive(p->label,taxaNames[i]) == 0) + break; + } + if (k < pt->nNodes) + { + assert (p->left == NULL); + if (p->index!=j) { + SwapRelaxedBranchInfo (p->index, j, pt); + for (m=0; mnNodes; m++) + { + if (pt->allDownPass[m]->index==j) + { + pt->allDownPass[m]->index=p->index; + break; + } + } + p->index = j; + } + j++; + } + } +} + + +/*---------------------------------------------- +| +| ResetTopology: rebuild the tree t to fit the +| Newick string s. Everyting except topology +| is left in the same state in t. +| +-----------------------------------------------*/ +int ResetTopology (Tree *t, char *s) +{ + TreeNode *p, *q; + int i, j, k, inLength; + char temp[30]; + + /* set all pointers to NULL */ + for (i=0; imemNodes; i++) + { + p = &t->nodes[i]; + p->anc = p->right = p->left = NULL; + p->index = -1; + } + p = &t->nodes[0]; + + /* start out assuming that the tree is rooted; we will detect below if it is not */ + t->isRooted = YES; + inLength = NO; + for (i=0, j=1; *s!='\0'; s++) + { + if (*s == ',' || *s == ')' || *s == ':') + { + if (p->right == NULL && inLength == NO) + { + temp[i] = '\0'; + k = atoi (temp); + p->index = k-1; + i = 0; + } + else + inLength = NO; + } + if (*s == '(') + { + q = p; + p = &t->nodes[j++]; + q->left = p; + p->anc = q; + } + else if (*s == ',') + { + if (p->anc->right == NULL) + { + q = p->anc; + p = &t->nodes[j++]; + p->anc = q; + q->right = p; + } + else /* if p->anc->right == p (near 'root' of unrooted trees) */ + { + q = p->anc; + p = &t->nodes[j++]; + q->anc = p; + p->left = q; + t->isRooted = NO; + } + } + else if (*s == ')') + { + p = p->anc; + } + else if (*s == ':') + { + inLength = YES; + } + else if (inLength == NO) + { + temp[i++] = *s; + } + } + + /* attach root to rooted tree */ + if (t->isRooted == YES) + { + p = &t->nodes[0]; + q = &t->nodes[j++]; + q->left = p; + p->anc = q; + } + + /* relabel interior nodes, find number of nodes and root */ + t->nNodes = j; + t->nIntNodes = t->nNodes/2 - 1; + + if (t->isRooted == NO) + j = t->nNodes - t->nIntNodes; + else + j = t->nNodes - t->nIntNodes - 1; + + for (i=0; inNodes; i++) + { + p = &t->nodes[i]; + if (p->index == -1) + p->index = j++; + if (p->anc == NULL) + t->root = p; + } + + GetDownPass (t); + + return NO_ERROR; +} + + +/*----------------------------------------------------------------- +| +| ResetBrlensFromTree: copies brlens and depths from second tree (vTree) to +| first tree (used to initialize brlen sets for same topology) +| +-----------------------------------------------------------------*/ +int ResetBrlensFromTree (Tree *tree, Tree *vTree) +{ + int i, j, k, nLongsNeeded, numTips; + MrBFlt d1, d2; + TreeNode *p, *q; + + if (tree->isRooted != vTree->isRooted) + return (ERROR); + + if (AreTopologiesSame (tree, vTree) == NO) + return (ERROR); + + /* allocate and set up partitions */ + AllocateTreePartitions (vTree); + AllocateTreePartitions (tree); + numTips = tree->nNodes - tree->nIntNodes - (tree->isRooted == YES ? 1 : 0); + nLongsNeeded = (int) ((numTips - 1) / nBitsInALong) + 1; + + /*copy lengths and nodeDepthes*/ + for (i=0; inNodes; i++) + { + p = vTree->allDownPass[i]; + for (j=0; jnNodes; j++) + { + q = tree->allDownPass[j]; + for (k=0; kpartition[k] != q->partition[k]) + break; + if (k==nLongsNeeded) + { + q->length = p->length; + if (tree->isRooted == YES) + q->nodeDepth = p->nodeDepth; + } + } + } + + if (tree->isRooted == YES) + { + /*Next compute height for the root. */ + for (i=0; inNodes-1; i++) + { + p = tree->allDownPass[i]; + if (p->left == NULL) + p->nodeDepth = 0.0; + else + { + d1 = p->left->nodeDepth + p->left->length; + d2 = p->right->nodeDepth + p->right->length; + if (d1 > d2) + p->nodeDepth = d1; + else + p->nodeDepth = d2; + } + } + for (i=tree->nNodes-3; i>=0; i--) + { + p = tree->allDownPass[i]; + if (p->left==NULL && p->calibration==NULL) + continue; /* leave at 0.0 */ + p->nodeDepth = p->anc->nodeDepth - p->length; + } + } + + FreeTreePartitions(tree); + FreeTreePartitions(vTree); + + return (NO_ERROR); +} + + +/* ResetIntNodeIndices: Set int node indices in downpass order from numTaxa to 2*numTaxa-2 */ +void ResetIntNodeIndices (PolyTree *t) +{ + int i, m, index; + + index = t->nNodes - t->nIntNodes; + + for (i=0; inIntNodes; i++) + { + if (t->intDownPass[i]->index != index) + { + SwapRelaxedBranchInfo (t->intDownPass[i]->index, index, t); + for (m=0; mnIntNodes; m++) + { + if (t->intDownPass[m]->index==index) + { + t->intDownPass[m]->index=t->intDownPass[i]->index; + break; + } + } + t->intDownPass[i]->index = index; + } + index++; + } +} + + +/* ResetTopologyFromTree: use top to set topology in tree */ +int ResetTopologyFromTree (Tree *tree, Tree *top) +{ + int i, j, k; + TreeNode *p, *q, *r, *p1; + + /* adopt rooting */ + tree->isRooted = top->isRooted; + tree->nNodes = top->nNodes; + tree->nIntNodes = top->nIntNodes; + + /* set all pointers to NULL */ + for (i=0; inNodes; i++) + { + p = &tree->nodes[i]; + p->anc = p->right = p->left = NULL; + } + + /* now copy topology */ + for (i=0; inIntNodes; i++) + { + p1 = top->intDownPass[i]; + + k = p1->index; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + p = &tree->nodes[j]; + + k = p1->left->index; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + q = &tree->nodes[j]; + + k = p1->right->index; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + r = &tree->nodes[j]; + + p->left = q; + p->right= r; + q->anc = r->anc = p; + } + + /* arrange the root */ + k = top->root->index; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + p = &tree->nodes[j]; + + k = top->root->left->index; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + q = &tree->nodes[j]; + p->left = q; + q->anc = p; + p->right = p->anc = NULL; + tree->root = p; + + GetDownPass (tree); + + return (NO_ERROR); +} + + +/* ResetTopologyFromPolyTree: use polytree top to set topology in tree */ +int ResetTopologyFromPolyTree (Tree *tree, PolyTree *top) +{ + int i, j, k; + TreeNode *p, *q, *r; + PolyNode *p1; + + if (tree->isRooted != top->isRooted) + return (ERROR); + + /* set all pointers to NULL */ + for (i=0; inNodes; i++) + { + p = &tree->nodes[i]; + p->anc = p->right = p->left = NULL; + } + + /* now copy topology */ + for (i=0; inIntNodes; i++) + { + p1 = top->intDownPass[i]; + + k = p1->index; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + p = &tree->nodes[j]; + + k = p1->left->index; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + q = &tree->nodes[j]; + + k = p1->left->sib->index; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + r = &tree->nodes[j]; + + p->left = q; + p->right= r; + q->anc = r->anc = p; + } + + /* arrange the root */ + if (top->isRooted == YES) + { + k = top->root->index; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + p = &tree->nodes[j]; + + k = top->nNodes; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + q = &tree->nodes[j]; + + q->left = p; + q->anc = NULL; + q->right = NULL; + tree->root = q; + } + else /* if (top->isRooted == NO) */ + { + k = top->root->index; + for (j=0; jnNodes; j++) + if (tree->nodes[j].index == k) + break; + p = &tree->nodes[j]; + + k = localOutGroup; + for (p1=top->root->left; p1!=NULL; p1=p1->sib) + if (p1->index == k) + break; + + assert (p1 != NULL); + if (p1 == NULL) + return (ERROR); + + q = &tree->nodes[p1->index]; + k = p1->anc->left->sib->sib->index; /* index of missing child */ + if (p->left == q) + p->left = &tree->nodes[k]; + else if (p->right == q) + p->right = &tree->nodes[k]; + + q->anc = q->right = NULL; + p->anc = q; + q->left = p; + } + + GetDownPass (tree); + + return (NO_ERROR); +} + + +/* ResetTreePartitions: Reset bitsets describing tree partitions */ +void ResetTreePartitions (Tree *t) +{ + int i, j, numTaxa, nLongsNeeded; + TreeNode *p; + + /* get some handy numbers */ + numTaxa = t->nNodes - t->nIntNodes - (t->isRooted == YES ? 1 : 0); + nLongsNeeded = (numTaxa - 1) / nBitsInALong + 1; + + /* reset bits describing partitions */ + for (i=0; inNodes; i++) + { + assert (t->allDownPass != NULL && t->allDownPass[i] != NULL); + assert (t->allDownPass[i]->partition != NULL); + + p = t->allDownPass[i]; + for (j=0; jpartition[j] = 0; + } + + /* set bits describing partitions */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL || (p->anc == NULL && t->isRooted == NO)) + SetBit (p->index, p->partition); + else if (p->anc != NULL) + { + for (j=0; jpartition[j] = p->left->partition[j] | p->right->partition[j]; + } + } +} + + +/*------------------------------------------------------- +| +| RetrieveRTopology: This routine will rebuild a rooted +| tree from the order array created by StoreRTopology. +| All tree information except the structure will +| remain unaltered. +| +--------------------------------------------------------*/ +int RetrieveRTopology (Tree *t, int *order) +{ + int i, numTaxa; + TreeNode *p, *q, *r; + + numTaxa = t->nNodes - t->nIntNodes - 1; + + /* sort the tips in the t->allDownPass array */ + p = t->nodes; + for (i=0; inNodes; i++, p++) + t->allDownPass[p->index] = p; + + /* make sure the root has index 2*numTaxa-1 */ + q = t->allDownPass[t->nNodes-1]; + q->anc = q->right = NULL; + t->root = q; + + /* connect the first two tips */ + p = t->allDownPass[numTaxa]; + p->anc = q; + q->left = p; + p->length = 0.0; + q = t->allDownPass[0]; + r = t->allDownPass[1]; + p->left = q; + p->right = r; + q->anc = r->anc = p; + + /* add one tip at a time */ + for (i=2; iallDownPass[i]; + q = t->allDownPass[numTaxa-1+i]; + r = t->allDownPass[*(order++)]; + p->anc = q; + q->left = p; + q->right = r; + q->anc = r->anc; + if (r->anc->left == r) + r->anc->left = q; + else + r->anc->right = q; + r->anc = q; + } + + /* get downpass */ + GetDownPass (t); + + /* relabel interior nodes (root is correctly labeled already) */ + for (i=0; inIntNodes; i++) + t->intDownPass[i]->index = i+numTaxa; + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| RetrieveRTree: This routine will rebuild a rooted +| tree from the arrays created by StoreRTree. +| All tree information except the structure and +| branch lengths will remain unaltered. +| +--------------------------------------------------------*/ +int RetrieveRTree (Tree *t, int *order, MrBFlt *brlens) +{ + int i, numTaxa; + TreeNode *p, *q, *r; + + numTaxa = t->nNodes - t->nIntNodes - 1; + + /* sort the tips in the t->allDownPass array */ + p = t->nodes; + for (i=0; inNodes; i++, p++) + t->allDownPass[p->index] = p; + + /* make sure that root has index 2*numTaxa-1 */ + q = t->allDownPass[t->nNodes-1]; + q->anc = q->right = NULL; + q->length = 0.0; + t->root = q; + + /* connect the first three tips */ + p = t->allDownPass[numTaxa]; + p->anc = q; + q->left = p; + p->length = 0.0; + q = t->allDownPass[0]; + r = t->allDownPass[1]; + p->left = q; + p->right = r; + q->anc = r->anc = p; + q->length = *(brlens++); + r->length = *(brlens++); + + /* add one tip at a time */ + for (i=2; iallDownPass[i]; + q = t->allDownPass[numTaxa-1+i]; + r = t->allDownPass[*(order++)]; + p->anc = q; + q->left = p; + q->right = r; + q->anc = r->anc; + if (r->anc->left == r) + r->anc->left = q; + else + r->anc->right = q; + r->anc = q; + if (q->anc->anc != NULL) + q->length = *(brlens++); + else + { + r->length = *(brlens++); + q->length = 0.0; + } + p->length = *(brlens++); + } + + /* get downpass */ + GetDownPass (t); + + /* relabel interior nodes (root is correctly labeled already) */ + for (i=0; inIntNodes; i++) + t->intDownPass[i]->index = i+numTaxa; + + /* set the node depths */ + SetNodeDepths (t); + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| RetrieveRTreeWithIndices: This routine will rebuild a rooted +| tree from the arrays created by StoreRTreeWithIndices. +| All tree information except the structure, branch lengths +| and node indices will remain unaltered. +| +--------------------------------------------------------*/ +int RetrieveRTreeWithIndices (Tree *t, int *order, MrBFlt *brlens) +{ + int i, numTaxa; + TreeNode *p, *q, *r; + + extern void ShowNodes (TreeNode *, int, int); + + numTaxa = t->nNodes - t->nIntNodes - 1; + + /* sort the tips in the t->allDownPass array */ + p = t->nodes; + for (i=0; inNodes; i++, p++) + t->allDownPass[p->index] = p; + + /* make sure that root has index 2*numTaxa-1 */ + q = t->allDownPass[t->nNodes-1]; + q->anc = q->right = NULL; + q->length = 0.0; + t->root = q; + + /* connect the first three 'tips' with interior node, index from order array */ + p = t->allDownPass[numTaxa]; + p->x = *(order++); + p->anc = q; + q->left = p; + p->length = 0.0; + q = t->allDownPass[0]; + r = t->allDownPass[1]; + p->left = q; + p->right = r; + q->anc = r->anc = p; + q->length = *(brlens++); + r->length = *(brlens++); + + /* add one tip at a time */ + for (i=2; iallDownPass[i]; + assert (*order >= numTaxa && *order < 2*numTaxa - 1); + q = t->allDownPass[numTaxa-1+i]; + q->x = *(order++); + r = t->allDownPass[*(order++)]; + p->anc = q; + q->left = p; + q->right = r; + q->anc = r->anc; + if (r->anc->left == r) + r->anc->left = q; + else + r->anc->right = q; + r->anc = q; + if (q->anc->anc != NULL) + q->length = *(brlens++); + else + { + r->length = *(brlens++); + q->length = 0.0; + } + p->length = *(brlens++); + } + + /* get downpass */ + GetDownPass (t); + + /* relabel interior nodes using labels in scratch variable x */ + for (i=0; inIntNodes; i++) + { + p = t->intDownPass[i]; + p->index = p->x; + } + + /* set the node depths */ + SetNodeDepths (t); + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| RetrieveUTopology: This routine will rebuild an unrooted +| tree from the order array created by StoreUTopology. +| All tree information except the structure +| will remain unaltered. +| +--------------------------------------------------------*/ +int RetrieveUTopology (Tree *t, int *order) +{ + int i, numTips; + TreeNode *p, *q, *r; + + /* preliminaries */ + numTips = t->nNodes - t->nIntNodes; + for (i=0; inNodes; i++) + t->nodes[i].left = t->nodes[i].right = t->nodes[i].anc = NULL; + + /* sort the tips in the t->allDownPass array */ + p = t->nodes; + for (i=0; inNodes; i++, p++) + t->allDownPass[p->index] = p; + + /* make sure root has index 0 */ + q = t->allDownPass[0]; + q->anc = q->right = NULL; + t->root = q; + + /* connect the first three tips */ + p = t->allDownPass[numTips]; + p->anc = q; + q->left = p; + q = t->allDownPass[1]; + r = t->allDownPass[2]; + p->left = q; + p->right = r; + q->anc = r->anc = p; + + /* add one tip at a time */ + for (i=3; iallDownPass[i]; + q = t->allDownPass[numTips-2+i]; + r = t->allDownPass[order[i-3]]; + p->anc = q; + q->left = p; + q->right = r; + q->anc = r->anc; + if (r->anc->left == r) + r->anc->left = q; + else + r->anc->right = q; + r->anc = q; + } + + /* get downpass */ + GetDownPass (t); + + /* relabel interior nodes (root is correctly labeled already) */ + for (i=0; inIntNodes; i++) + t->intDownPass[i]->index = i+numTips; + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| RetrieveUTree: This routine will rebuild an unrooted +| tree from the arrays created by StoreUTree. +| All tree information except the structure and +| branch lengths will remain unaltered. +| +--------------------------------------------------------*/ +int RetrieveUTree (Tree *t, int *order, MrBFlt *brlens) +{ + int i, numTips; + TreeNode *p, *q, *r; + + /* preliminaries */ + numTips = t->nNodes - t->nIntNodes; + for (i=0; inNodes; i++) + t->nodes[i].left = t->nodes[i].right = t->nodes[i].anc = NULL; + + /* sort the tips in the t->allDownPass array */ + p = t->nodes; + for (i=0; inNodes; i++, p++) + t->allDownPass[p->index] = p; + + /* make sure that root has index 0 */ + q = t->allDownPass[0]; + q->anc = q->right = NULL; + t->root = q; + + /* connect the first three tips */ + p = t->allDownPass[numTips]; + p->anc = q; + q->left = p; + p->length = *(brlens++); + q = t->allDownPass[1]; + r = t->allDownPass[2]; + p->left = q; + p->right = r; + q->anc = r->anc = p; + q->length = *(brlens++); + r->length = *(brlens++); + + /* add one tip at a time */ + for (i=3; iallDownPass[i]; + q = t->allDownPass[numTips-2+i]; + r = t->allDownPass[order[i-3]]; + p->anc = q; + q->left = p; + q->right = r; + q->anc = r->anc; + if (r->anc->left == r) + r->anc->left = q; + else + r->anc->right = q; + r->anc = q; + q->length = *(brlens++); + p->length = *(brlens++); + } + + /* get downpass */ + GetDownPass (t); + + /* relabel interior nodes (root is correctly labeled already) */ + for (i=0; inIntNodes; i++) + t->intDownPass[i]->index = i+numTips; + + return (NO_ERROR); +} + + +void SetDatedNodeAges (Param *param, int chain, int state) +{ + int i; + MrBFlt clockRate; + ModelInfo *m; + TreeNode *p; + Tree *t; + + extern void ShowNodes(TreeNode *,int,int); + + t = GetTree (param, chain, state); + m = &modelSettings[t->relParts[0]]; + + if (m->clockRate == NULL) + clockRate = 1.0; + else + clockRate = *GetParamVals(m->clockRate, chain, state); + + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + if (p->isDated == YES) + p->age = p->nodeDepth / clockRate; + else + p->age = -1.0; + } +} + + +void SetNodeDepths (Tree *t) +{ + int i; + MrBFlt d1, d2; + TreeNode *p; + + extern void ShowNodes(TreeNode *,int,int); + + for (i=0; inNodes-1; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + p->nodeDepth = 0.0; + else + { + d1 = p->left->nodeDepth + p->left->length; + d2 = p->right->nodeDepth + p->right->length; + //assert (!(t->isCalibrated == NO && AreDoublesEqual(d1,d2,0.00001)==NO)); // may not work if we set startval topology of strict clock tree by non clock tree. + if (d1 > d2) + p->nodeDepth = d1; + else + p->nodeDepth = d2; + } + } + + for (i=t->nNodes-3; i>=0; i--) + { + p = t->allDownPass[i]; + if (p->left == NULL && p->calibration == NULL) + p->nodeDepth = 0.0; + else + p->nodeDepth = p->anc->nodeDepth - p->length; + } +} + + +/* Set ages of a clock tree according to depth and clockrate. Check that resulting ages are consistant with calibration. +| return YES if tree is age consistent, No otherwise. +*/ +int SetTreeNodeAges (Param *param, int chain, int state) +{ + Tree *tree; + TreeNode *p; + int i; + MrBFlt clockRate; + + if (param->paramType != P_TOPOLOGY && param->paramType != P_BRLENS && param->paramType != P_SPECIESTREE) + return YES; + + tree = GetTree(param, chain, state); + if (modelSettings[param->relParts[0]].clockRate != NULL) + clockRate = *GetParamVals(modelSettings[param->relParts[0]].clockRate, chain, state); + else + return YES; + + /* Clock trees */ + + /* Check that lengths and depths are consistant. That would work for the case when we set up branch length from starting tree */ + for (i=0; inNodes-1; i++) { + p = tree->allDownPass[i]; + p->age = p->nodeDepth / clockRate; + } + + /* Check that ages and calibrations are consistent */ + if (tree->isCalibrated == YES) + { + for (i=0; inNodes-1; i++) + { + p = tree->allDownPass[i]; + if (p->isDated == YES) { + if (p->calibration->prior == fixed && fabs((p->age - p->calibration->priorParams[0])/p->age) > 0.000001) + { + printf ("Node %d has age %f but should be fixed to age %f\n", + p->index, p->age, p->calibration->priorParams[0]); + return NO; + } + else if (p->calibration->prior == uniform && (p->age < p->calibration->min || p->age > p->calibration->max)) + { + printf ("Node %d has age %f but should be in the interval [%f,%f]\n", + p->index, p->age, p->calibration->min, p->calibration->max); + return NO; + } + else if (p->age < p->calibration->min) + { + printf ("Node %d has age %f but should be minimally of age %f\n", + p->index, p->age, p->calibration->min); + return NO; + } + else if (p->age > p->calibration->max) + { + printf ("Node %d has age %f but should be maximally of age %f\n", + p->index, p->age, p->calibration->max); + return NO; + } + } + } + } + + return YES; +} + + +int ShowPolyNodes (PolyTree *pt) +{ + int i; + PolyNode *p; + + /* this is the tree, on a node-by-node basis */ + printf (" memnodes = %d nNodes = %d nIntNodes = %d root = %d\n", pt->memNodes, pt->nNodes, pt->nIntNodes, pt->root->index); + printf (" isRooted = %d\n", pt->isRooted); + printf (" no. index (left sib anc) -- locked/free -- label (p->x)\n"); + for (i=0; imemNodes; i++) + { + p = &pt->nodes[i]; + if (!(p->left == NULL && p->sib == NULL && p->anc == NULL)) + { + printf ("%4d -- %4d ", i, p->index); + if (p->left != NULL) + printf ("(%4d ", p->left->index); + else + printf ("(null "); + + if (p->sib != NULL) + printf ("%4d ", p->sib->index); + else + printf ("null "); + + if (p->anc != NULL) + printf ("%4d)", p->anc->index); + else + printf ("null)"); + + if (p->isLocked == YES) + printf ("-- locked -- "); + else + printf ("-- free --"); + + if (p->left == NULL && p->anc != NULL) + printf (" \"%s\" (%d)\n", p->label, p->x); + else + printf (" \"\" (%d)\n", p->x); + } + } + + return NO_ERROR; +} + + +/* ShowTree: Show tree on screen */ +int ShowTree (Tree *t) +{ + int i, j, k, x, nLines, nLevels, levelDepth, from, to; + char treeLine[SCREENWIDTH2], labelLine[100]; + TreeNode *p; + + /* get coordinates */ + x = 0; + nLines = 0; + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL && p->right == NULL) + { + p->x = x; + x += 2; + p->y = 0; + nLines += 2; + } + else if (p->left != NULL && p->right != NULL && p->anc != NULL) + { + p->x = p->left->x + (p->right->x - p->left->x) / 2; + if (p->left->y > p->right->y) + p->y = p->left->y + 1; + else + p->y = p->right->y + 1; + } + else + { + p->x = x; + x += 2; + p->y = 0; + } + } + + /* print tree out, line-by-line */ + levelDepth = SCREENWIDTH / t->root->left->y; + nLevels = t->root->left->y; + for (j=0; j<=nLines-2; j++) + { + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL && p->x == j) + { + strcpy (labelLine, p->label); + } + } + } + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->anc != NULL) + { + if (p->anc->anc != NULL) + { + if (p->x == j) + { + from = (nLevels - p->anc->y) * levelDepth; + to = (nLevels - p->y) * levelDepth; + if (p->y == 0) + to = SCREENWIDTH-1; + if (to >= SCREENWIDTH) + to = SCREENWIDTH-1; + + for (k=from; kanc->left == p) + treeLine[from] = '/'; + else + treeLine[from] = '\\'; + if (p->left != NULL) + { + treeLine[to] = '+'; + } + if (p->anc->anc == t->root && p->anc->right == p) + { + if (t->isRooted == NO) + treeLine[to] = '+'; + else + treeLine[from] = '\\'; + } + } + else + { + if (p->left != NULL && p->right != NULL) + { + if (j < p->x && j > p->left->x) + { + from = (nLevels - p->y) * levelDepth; + treeLine[from] = '|'; + } + else if (j > p->x && j < p->right->x && p->left != NULL) + { + from = (nLevels - p->y) * levelDepth; + treeLine[from] = '|'; + } + } + } + } + else + { + if (p->x == j) + { + treeLine[0] = '|'; /* temp */ + } + else if (j < p->x && j > p->left->x) + { + treeLine[0] = '|'; + } + else if (j > p->x && j < p->right->x) + { + treeLine[0] = '|'; + } + if (t->isRooted == NO) + { + if (j > p->x && j <= nLines-2) + treeLine[0] = '|'; + if (j == p->right->x) + treeLine[0] = '+'; + } + else + { + if (j == p->x) + treeLine[0] = '+'; + } + } + } + } + treeLine[SCREENWIDTH-1] = '\0'; + if (j % 2 == 0) + MrBayesPrint (" %s %s\n", treeLine, labelLine); + else + MrBayesPrint (" %s \n", treeLine); + } + + if (t->isRooted == NO) + { + for (i=0; iroot->label); + labelLine[19] = '\0'; + MrBayesPrint (" %s %s\n", treeLine, labelLine); + } + +# if defined (DEBUG_CONSTRAINTS) + for (i=0; inNodes; i++) + printf ("%d -- %s\n", t->allDownPass[i]->index + 1, t->allDownPass[i]->isLocked == YES ? "locked" : "free"); +# endif + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| StoreRPolyTopology: Same as StoreRTopology but for +| binary polytree source trees. +| +--------------------------------------------------------*/ +int StoreRPolyTopology (PolyTree *t, int *order) +{ + int i, numTaxa; + PolyNode *p, *q; + + /* find number of taxa */ + numTaxa = t->nNodes - t->nIntNodes; + + /* first get the terminal taxon positions and store + them in the order array. */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + /* we do not need to worry about the first two taxa */ + if (p->index > 1 && p->index < numTaxa) + order[p->index-2] = i; + } + + /* label the interior nodes with the correct index */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + p->x = p->y = p->index; + else + { + if (p->left->y < p->left->sib->y) + { + p->y = p->left->y; + p->x = p->left->sib->y + numTaxa - 1; + } + else + { + p->y = p->left->sib->y; + p->x = p->left->y + numTaxa - 1; + } + } + } + + /* break the tree into pieces */ + for (i=0; iallDownPass[order[numTaxa-3-i]]; + q = p->anc; + if (q->left == p) + { + order[numTaxa-3-i] = q->left->sib->x; + p->sib->anc = q->anc; + if (q->anc == NULL) + { + p->sib->left->sib->sib = p->sib->sib; + p->sib->sib = NULL; + } + else if (q->anc->left == q) + { + q->anc->left = q->left->sib; + p->sib->sib = q->sib; + } + else + q->anc->left->sib = q->left->sib; + } + else + { + order[numTaxa-3-i] = q->left->x; + q->left->anc = q->anc; + if (q->anc == NULL) + { + q->left->left->sib->sib = p->sib; + q->left->sib = NULL; + } + else if (q->anc->left == q) + { + q->anc->left = q->left; + q->anc->left->sib = q->sib; + } + else + { + q->anc->left->sib = q->left; + q->left->sib = NULL; + } + } + } + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| StoreRPolyTree: Same as StoreRTree but for +| binary rooted polytree source trees. +| +--------------------------------------------------------*/ +int StoreRPolyTree (PolyTree *t, int *order, MrBFlt *brlens) +{ + int i, j, numTaxa; + PolyNode *p, *q; + + /* find number of taxa */ + numTaxa = t->nNodes - t->nIntNodes; + + /* first get the terminal taxon positions and store + them in the order array. */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + /* we do not need to worry about the first two taxa */ + if (p->index > 1 && p->index < numTaxa) + order[p->index-2] = i; + } + + /* label the interior nodes with the correct index */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + p->x = p->y = p->index; + else + { + if (p->left->y < p->left->sib->y) + { + p->y = p->left->y; + p->x = p->left->sib->y + numTaxa - 1; + } + else + { + p->y = p->left->sib->y; + p->x = p->left->y + numTaxa - 1; + } + } + } + + /* break the tree into pieces */ + j = t->nNodes - 2; /* index of first branch length */ + for (i=0; iallDownPass[order[numTaxa-3-i]]; + q = p->anc; + brlens[j--] = p->length; + brlens[j--] = q->length; + if (q->left == p) + { + order[numTaxa-3-i] = q->left->sib->x; + p->sib->anc = q->anc; + if (q->anc == NULL) + { + p->sib->left->sib->sib = p->sib->sib; + p->sib->sib = NULL; + } + else if (q->anc->left == q) + { + q->anc->left = q->left->sib; + p->sib->sib = q->sib; + } + else + q->anc->left->sib = q->left->sib; + } + else + { + order[numTaxa-3-i] = q->left->x; + q->left->anc = q->anc; + if (q->anc == NULL) + { + q->left->left->sib->sib = p->sib; + q->left->sib = NULL; + } + else if (q->anc->left == q) + { + q->anc->left = q->left; + q->anc->left->sib = q->sib; + } + else + { + q->anc->left->sib = q->left; + q->left->sib = NULL; + } + } + } + + /* store the last two lengths; index 0 and 1 */ + p = t->root; + brlens[p->left->index] = p->left->length; + brlens[p->left->sib->index] = p->left->sib->length; + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| StoreRTopology: This routine will break a rooted tree +| into an array of ints describing the structure +| of the tree. The tree will be destroyed +| in the process (the node pointers, that is). +| However, the tree is not deleted. +| +--------------------------------------------------------*/ +int StoreRTopology (Tree *t, int *order) +{ + int i, numTaxa; + TreeNode *p, *q; + + /* find number of taxa */ + numTaxa = t->nNodes - t->nIntNodes - 1; + + /* first get the terminal taxon positions and store + them in the order array. */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + /* we do not need to worry about the first two taxa */ + if (p->index > 1 && p->index < numTaxa) + order[p->index-2] = i; + } + + /* label the interior nodes with the correct index */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + p->x = p->y = p->index; + else if (p->right != NULL) + { + if (p->left->y < p->right->y) + { + p->y = p->left->y; + p->x = p->right->y + numTaxa - 1; + } + else + { + p->y = p->right->y; + p->x = p->left->y + numTaxa - 1; + } + } + } + + /* break the tree into pieces */ + for (i=0; iallDownPass[order[numTaxa-3-i]]; + q = p->anc; + if (q->left == p) + { + order[numTaxa-3-i] = q->right->x; + q->right->anc = q->anc; + if (q->anc->left == q) + q->anc->left = q->right; + else + q->anc->right = q->right; + } + else + { + order[numTaxa-3-i] = q->left->x; + q->left->anc = q->anc; + if (q->anc->left == q) + q->anc->left = q->left; + else + q->anc->right = q->left; + } + } + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| StoreRTree: This routine will break a rooted tree +| into an array of ints describing the structure +| of the tree and an array of doubles storing +| the branch lengths. The tree will be +| destroyed in the process (the node pointers, +| that is). However, the tree is not deleted. +| +--------------------------------------------------------*/ +int StoreRTree (Tree *t, int *order, MrBFlt *brlens) +{ + int i, j, numTaxa; + TreeNode *p, *q; + + extern void ShowNodes (TreeNode *p, int indent, int isRooted); + + /* find number of taxa */ + numTaxa = t->nNodes - t->nIntNodes - 1; + + /* first get the terminal taxon positions and store + them in the order array. */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + /* we do not need to worry about the first two taxa */ + if (p->index > 1 && p->index < numTaxa) + order[p->index-2] = i; + } + + /* label the interior nodes with the correct index */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + p->x = p->y = p->index; + else if (p->right != NULL) + { + if (p->left->y < p->right->y) + { + p->y = p->left->y; + p->x = p->right->y + numTaxa - 1; + } + else + { + p->y = p->right->y; + p->x = p->left->y + numTaxa - 1; + } + } + } + + /* break the tree into pieces */ + j = 2 * numTaxa - 3; + for (i=0; iallDownPass[order[numTaxa-3-i]]; + q = p->anc; + brlens[j--] = p->length; + if (q->left == p) + { + if (q->anc->anc != NULL) + brlens[j--] = q->length; + else + brlens[j--] = q->right->length; + order[numTaxa-3-i] = q->right->x; + q->right->anc = q->anc; + if (q->anc->left == q) + q->anc->left = q->right; + else + q->anc->right = q->right; + } + else + { + if (q->anc->anc != NULL) + brlens[j--] = q->length; + else + brlens[j--] = q->left->length; + order[numTaxa-3-i] = q->left->x; + q->left->anc = q->anc; + if (q->anc->left == q) + q->anc->left = q->left; + else + q->anc->right = q->left; + } + } + + /* store the final two branch lengths in the right order; they have indices 0 and 1 */ + p = t->root->left; + brlens[p->left->index] = p->left->length; + brlens[p->right->index] = p->right->length; + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| StoreRTreeWithIndices: This routine will break a rooted +| tree into an array of ints describing the structure +| of the tree and the interior node indices, and an array +| of doubles storing the branch lengths. The tree will be +| destroyed in the process (the node pointers, +| that is). However, the tree is not deleted. +| +--------------------------------------------------------*/ +int StoreRTreeWithIndices (Tree *t, int *order, MrBFlt *brlens) +{ + int i, j, k, numTaxa; + TreeNode *p, *q; + + extern void ShowNodes (TreeNode *p, int indent, int isRooted); + + /* find number of taxa */ + numTaxa = t->nNodes - t->nIntNodes - 1; + + /* first get the terminal taxon positions and store + them in the order array. */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + /* we do not need to worry about the first two taxa */ + if (p->index > 1 && p->index < numTaxa) + order[p->index-2] = i; + } + + /* label the interior nodes with the correct index */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + p->x = p->y = p->index; + else if (p->right != NULL) + { + if (p->left->y < p->right->y) + { + p->y = p->left->y; + p->x = p->right->y + numTaxa - 1; + } + else + { + p->y = p->right->y; + p->x = p->left->y + numTaxa - 1; + } + } + } + + /* break the tree into pieces */ + j = 2 * numTaxa - 3; + k = 2*(numTaxa - 2); + for (i=0; iallDownPass[order[numTaxa-3-i]]; + q = p->anc; + brlens[j--] = p->length; + if (q->left == p) + { + if (q->anc->anc != NULL) + brlens[j--] = q->length; + else + brlens[j--] = q->right->length; + order[k--] = q->right->x; + order[k--] = q->index; + q->right->anc = q->anc; + if (q->anc->left == q) + q->anc->left = q->right; + else + q->anc->right = q->right; + } + else + { + if (q->anc->anc != NULL) + brlens[j--] = q->length; + else + brlens[j--] = q->left->length; + order[k--] = q->left->x; + order[k--] = q->index; + q->left->anc = q->anc; + if (q->anc->left == q) + q->anc->left = q->left; + else + q->anc->right = q->left; + } + } + + /* store the final two branch lengths in the right order; they have indices 0 and 1 */ + p = t->root->left; + order[k] = p->index; + brlens[p->left->index] = p->left->length; + brlens[p->right->index] = p->right->length; + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| StoreUPolyTopology: Same as StoreUTopology but for +| binary polytree source. +| +--------------------------------------------------------*/ +int StoreUPolyTopology (PolyTree *t, int *order) +{ + int i, numTips; + PolyNode *p, *q; + + /* check if the tree is rooted on taxon 0 */ + if (t->root->left->sib->sib->index != 0) + MovePolyCalculationRoot (t, 0); + + /* rearrange the root */ + t->root->anc = t->root->left->sib->sib; + t->root->left->sib->sib = NULL; + t->root->anc->left = t->root; + t->root->anc->sib = NULL; + t->root->anc->anc = NULL; + t->root = t->root->anc; + + /* find number of tips */ + numTips = t->nNodes - t->nIntNodes; + + /* first get the terminal taxon positions and store + them in the order array. */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + /* we do not need to worry about the first three taxa */ + if (p->index > 2 && p->index < numTips) + order[p->index-3] = i; + } + + /* label the interior nodes with the correct index */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL || p->anc == NULL) + p->x = p->y = p->index; + else + { + if (p->left->y < p->left->sib->y) + { + p->y = p->left->y; + p->x = p->left->sib->y + numTips - 2; + } + else + { + p->y = p->left->sib->y; + p->x = p->left->y + numTips - 2; + } + } + } + + /* break the tree into pieces */ + for (i=0; iallDownPass[order[numTips-4-i]]; + q = p->anc; + if (q->left == p) + { + order[numTips-4-i] = q->left->sib->x; + p->sib->anc = q->anc; + if (q->anc->left == q) + { + q->anc->left = p->sib; + p->sib->sib = q->sib; + } + else + { + q->anc->left->sib = p->sib; + p->sib->sib = q->sib; + } + } + else + { + order[numTips-4-i] = q->left->x; + q->left->anc = q->anc; + if (q->anc->left == q) + { + q->anc->left = q->left; + q->left->sib = q->sib; + } + else + { + q->anc->left->sib = q->left; + q->left->sib = q->sib; + } + } + } + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| StoreUPolyTree: Same as StoreUTopology but for +| binary polytree source. +| +--------------------------------------------------------*/ +int StoreUPolyTree (PolyTree *t, int *order, MrBFlt *brlens) +{ + int i, j, numTips; + PolyNode *p, *q; + + /* check if the tree is rooted on taxon 0 */ + if (t->root->left->sib->sib->index != 0) + MovePolyCalculationRoot (t, 0); + + /* rearrange the root */ + t->root->anc = t->root->left->sib->sib; + t->root->left->sib->sib = NULL; + t->root->anc->left = t->root; + t->root->anc->sib = NULL; + t->root->anc->anc = NULL; + t->root = t->root->anc; + + /* find number of tips */ + numTips = t->nNodes - t->nIntNodes; + + /* first get the terminal taxon positions and store + them in the order array. */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + /* we do not need to worry about the first three taxa */ + if (p->index > 2 && p->index < numTips) + order[p->index-3] = i; + } + + /* label the interior nodes with the correct index */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL || p->anc == NULL) + p->x = p->y = p->index; + else + { + if (p->left->y < p->left->sib->y) + { + p->y = p->left->y; + p->x = p->left->sib->y + numTips - 2; + } + else + { + p->y = p->left->sib->y; + p->x = p->left->y + numTips - 2; + } + } + } + + /* break the tree into pieces */ + j = 2*numTips - 4; + for (i=0; iallDownPass[order[numTips-4-i]]; + assert (p->index > 2 && p->index < numTips); + assert (p->anc->anc != NULL); + q = p->anc; + brlens[j--] = p->length; + brlens[j--] = q->length; + if (q->left == p) + { + order[numTips-4-i] = q->left->sib->x; + p->sib->anc = q->anc; + if (q->anc->left == q) + { + q->anc->left = p->sib; + p->sib->sib = q->sib; + } + else + { + q->anc->left->sib = p->sib; + p->sib->sib = q->sib; + } + } + else + { + order[numTips-4-i] = q->left->x; + q->left->anc = q->anc; + if (q->anc->left == q) + { + q->anc->left = q->left; + q->left->sib = q->sib; + } + else + { + q->anc->left->sib = q->left; + q->left->sib = q->sib; + } + } + } + + /* store last three branch lengths, index 0, 1, 2 */ + q = t->root; + assert (q->index == 0); + brlens[q->index] = q->length; + q = q->left->left; + assert (q->index == 1 || q->index == 2); + brlens[q->index] = q->length; + q = q->sib; + assert (q->index == 1 || q->index == 2); + brlens[q->index] = q->length; + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| StoreUTopology: This routine will break an unrooted tree +| into an array of ints describing the structure +| of the tree. The tree will be destroyed +| in the process (the node pointers, that is). +| However, the tree is not deleted. +| +--------------------------------------------------------*/ +int StoreUTopology (Tree *t, int *order) +{ + int i, numTips; + TreeNode *p, *q; + + /* check if the tree is rooted on taxon 0 */ + if (t->root->index != 0) + MoveCalculationRoot (t, 0); + + /* find number of tips */ + numTips = t->nNodes - t->nIntNodes; + + /* first get the terminal taxon positions and store + them in the order array. */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + /* we do not need to worry about the first three taxa */ + if (p->index > 2 && p->index < numTips) + order[p->index-3] = i; + } + + /* label the interior nodes with the correct index */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + p->x = p->y = p->index; + else if (p->right != NULL) + { + if (p->left->y < p->right->y) + { + p->y = p->left->y; + p->x = p->right->y + numTips - 2; + } + else + { + p->y = p->right->y; + p->x = p->left->y + numTips - 2; + } + } + } + + /* break the tree into pieces */ + for (i=0; iallDownPass[order[numTips-4-i]]; + q = p->anc; + if (q->left == p) + { + order[numTips-4-i] = q->right->x; + q->right->anc = q->anc; + if (q->anc->left == q) + q->anc->left = q->right; + else + q->anc->right = q->right; + } + else + { + order[numTips-4-i] = q->left->x; + q->left->anc = q->anc; + if (q->anc->left == q) + q->anc->left = q->left; + else + q->anc->right = q->left; + } + } + + return (NO_ERROR); +} + + +/*------------------------------------------------------- +| +| StoreUTree: This routine will break an unrooted tree +| into an array of ints describing the structure +| of the tree and an array of doubles storing +| the branch lengths. The tree will be +| destroyed in the process (the node pointers, +| that is). However, the tree is not deleted. +| +--------------------------------------------------------*/ +int StoreUTree (Tree *t, int *order, MrBFlt *brlens) +{ + int i, j, numTips; + TreeNode *p, *q; + + /* check if the tree is rooted on taxon 0 */ + if (t->root->index != 0) + MoveCalculationRoot(t, 0); + + /* find number of tips */ + numTips = t->nNodes - t->nIntNodes; + + /* first get the terminal taxon positions and store + them in the order array. */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + /* we do not need to worry about the first three taxa */ + if (p->index > 2 && p->index < numTips) + order[p->index-3] = i; + } + + /* label the interior nodes with the correct index */ + for (i=0; inNodes; i++) + { + p = t->allDownPass[i]; + if (p->left == NULL) + p->x = p->y = p->index; + else if (p->right != NULL) + { + if (p->left->y < p->right->y) + { + p->y = p->left->y; + p->x = p->right->y + numTips - 2; + } + else + { + p->y = p->right->y; + p->x = p->left->y + numTips - 2; + } + } + } + + /* break the tree into pieces */ + j = 2 * numTips - 4; + for (i=0; iallDownPass[order[numTips-4-i]]; + q = p->anc; + brlens[j--] = p->length; + brlens[j--] = q->length; + if (q->left == p) + { + order[numTips-4-i] = q->right->x; + q->right->anc = q->anc; + if (q->anc->left == q) + q->anc->left = q->right; + else + q->anc->right = q->right; + } + else + { + order[numTips-4-i] = q->left->x; + q->left->anc = q->anc; + if (q->anc->left == q) + q->anc->left = q->left; + else + q->anc->right = q->left; + } + } + + /* store the final three branch lengths */ + /* we need to check the rotation of the tree to + store the brlens in the right order (after node index) */ + p = t->root->left; + if (p->right->index == 2) + { + brlens[j--] = p->right->length; + brlens[j--] = p->left->length; + } + else + { + brlens[j--] = p->left->length; + brlens[j--] = p->right->length; + } + brlens[j--] = p->length; + + return (NO_ERROR); +} + + +/* TreeLength: Calculate tree length */ +MrBFlt TreeLen (Tree *t) +{ + int i, numLenNodes; + MrBFlt len = 0.0; + + if (t->isRooted == NO) + numLenNodes = t->nNodes - 1; + else + numLenNodes = t->nNodes - 2; + + for (i=0; iallDownPass[i]->length; + + return len; +} + + +/*------------------------------------------------------------------------------------------- +| +| Unmark: This routine will unmark a subtree rooted at p +| +---------------------------------------------------------------------------------------------*/ +void Unmark (TreeNode *p) +{ + if (p != NULL) + { + p->marked = NO; + Unmark (p->left); + Unmark (p->right); + } +} + + +void WriteEventTree (TreeNode *p, int chain, Param *param) +{ + int j, nEvents; + MrBFlt brlen, *position, *rateMult; + + if (p != NULL) + { + if (p->left == NULL && p->right == NULL) + { + printf ("%d:%s", p->index + 1, MbPrintNum(p->length)); + if (param->paramType == P_CPPEVENTS) + { + nEvents = param->nEvents[2*chain+state[chain]][p->index]; + if (nEvents > 0) + { + printf ("[&E %s %d: (", param->name, nEvents); + position = param->position[2*chain+state[chain]][p->index]; + rateMult = param->rateMult[2*chain+state[chain]][p->index]; + for (j=0; jname); + } + brlen = GetParamSubVals (param, chain, state[chain])[p->index]; + // brlen = (GetParamSubVals (param, chain, state[chain])[p->index] + GetParamVals (param, chain, state[chain])[p->anc->index]) / 2.0; + printf ("[&B %s %s]", param->name, MbPrintNum(brlen)); + } + else + { + if (p->anc != NULL) + printf ("("); + WriteEventTree(p->left, chain, param); + printf (","); + WriteEventTree(p->right, chain, param); + if (p->anc != NULL) + { + if (p->anc->anc != NULL) + { + printf ("):%s", MbPrintNum(p->length)); + if (param->paramType == P_CPPEVENTS) + { + nEvents = param->nEvents[2*chain+state[chain]][p->index]; + if (nEvents > 0) + { + printf ("[&E %s %d: (", param->name, nEvents); + position = param->position[2*chain+state[chain]][p->index]; + rateMult = param->rateMult[2*chain+state[chain]][p->index]; + for (j=0; jname); + } + brlen = GetParamSubVals (param, chain, state[chain])[p->index]; + // brlen = (GetParamSubVals (param, chain, state[chain])[p->index] + GetParamVals (param, chain, state[chain])[p->anc->index]) / 2.0; + printf ("[&B %s %s]", param->name, MbPrintNum(brlen)); + } + else + printf (")"); + } + } + } +} + + +void WriteEventTreeToPrintString (TreeNode *p, int chain, Param *param, int printAll) +{ + char *tempStr; + int i, j, nEvents, tempStrSize = TEMPSTRSIZE; + MrBFlt brlen, *position, *rateMult; + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + + if (p != NULL) + { + if (p->left == NULL && p->right == NULL) + { + SafeSprintf (&tempStr, &tempStrSize, "%d:%s", p->index + 1, MbPrintNum(p->length)); + AddToPrintString (tempStr); + for (i=0; inSubParams; i++) + { + if (param->subParams[i]->paramType == P_CPPEVENTS) + { + nEvents = param->subParams[i]->nEvents[2*chain+state[chain]][p->index]; + if (nEvents > 0) + { + SafeSprintf (&tempStr, &tempStrSize, "[&E %s %d", param->subParams[i]->name, nEvents); + AddToPrintString (tempStr); + position = param->subParams[i]->position[2*chain+state[chain]][p->index]; + rateMult = param->subParams[i]->rateMult[2*chain+state[chain]][p->index]; + if (printAll == YES) + { + SafeSprintf (&tempStr, &tempStrSize, ": ("); + AddToPrintString (tempStr); + for (j=0; jsubParams[i]->name); + AddToPrintString (tempStr); + } + } + else if (param->subParams[i]->paramType != P_CPPEVENTS) + { + /* other relaxed clock models */ + brlen = GetParamSubVals (param->subParams[i], chain, state[chain])[p->index]; + SafeSprintf (&tempStr, &tempStrSize, "[&B %s %s]", param->subParams[i]->name, MbPrintNum(brlen)); + AddToPrintString (tempStr); + } + } + } + else + { + if (p->anc != NULL) + AddToPrintString ("("); + WriteEventTreeToPrintString (p->left, chain, param, printAll); + AddToPrintString (","); + WriteEventTreeToPrintString (p->right, chain, param, printAll); + if (p->anc != NULL) + { + if (p->anc->anc != NULL) + { + SafeSprintf (&tempStr, &tempStrSize, "):%s", MbPrintNum(p->length)); + AddToPrintString (tempStr); + for (i=0; inSubParams; i++) + { + if (param->subParams[i]->paramType == P_CPPEVENTS) + { + nEvents = param->subParams[i]->nEvents[2*chain+state[chain]][p->index]; + if (nEvents > 0) + { + SafeSprintf (&tempStr, &tempStrSize, "[&E %s %d", param->subParams[i]->name, nEvents); + AddToPrintString (tempStr); + position = param->subParams[i]->position[2*chain+state[chain]][p->index]; + rateMult = param->subParams[i]->rateMult[2*chain+state[chain]][p->index]; + if (printAll == YES) + { + SafeSprintf (&tempStr, &tempStrSize, ": ("); + AddToPrintString (tempStr); + for (j=0; jsubParams[i]->name); + AddToPrintString (tempStr); + } + } + else if (param->subParams[i]->paramType != P_CPPEVENTS) + { + /* other relaxed clock models */ + brlen = GetParamSubVals (param->subParams[i], chain, state[chain])[p->index]; + SafeSprintf (&tempStr, &tempStrSize, "[&B %s %s]", param->subParams[i]->name, MbPrintNum(brlen)); + AddToPrintString (tempStr); + } + } + } + else + AddToPrintString(")"); + } + } + } + free (tempStr); +} + + +void WriteEvolTree (TreeNode *p, int chain, Param *param) +{ + MrBFlt *length; + + if (p != NULL) + { + length = GetParamSubVals(param, chain, state[chain]); + if (p->left == NULL && p->right == NULL) + { + printf ("%d:%s", p->index + 1, MbPrintNum(length[p->index])); + } + else + { + if (p->anc != NULL) + printf ("("); + WriteEvolTree(p->left, chain, param); + printf (","); + WriteEvolTree(p->right, chain, param); + if (p->anc != NULL) + { + if (p->anc->anc != NULL) + printf ("):%s", MbPrintNum(length[p->index])); + else + printf (")"); + } + } + } +} + + +void WriteNoEvtTreeToPrintString (TreeNode *p, int chain, Param *param, int showBrlens, int isRooted) +{ + char *tempStr; + int i, tempStrSize = TEMPSTRSIZE, nEvents; + MrBFlt brlen, N; + + tempStr = (char *) SafeMalloc((size_t)tempStrSize * sizeof(char)); + if (!tempStr) + MrBayesPrint ("%s Problem allocating tempString (%d)\n", spacer, tempStrSize * sizeof(char)); + + if (p != NULL) + { + if (p->left == NULL && p->right == NULL) + { + if (showBrlens == YES) + { + SafeSprintf (&tempStr, &tempStrSize, "%d:%s", p->index + 1, MbPrintNum(p->length)); + } + else + SafeSprintf (&tempStr, &tempStrSize, "%d", p->index + 1); + AddToPrintString (tempStr); + if (param->paramType == P_BRLENS) + { + for (i=0; inSubParams; i++) + { + if (param->subParams[i]->paramType == P_CPPEVENTS) + { + nEvents = param->subParams[i]->nEvents[2*chain+state[chain]][p->index]; + SafeSprintf (&tempStr, &tempStrSize, "[&E %s %d]", param->subParams[i]->name, nEvents); + AddToPrintString (tempStr); + } + brlen = GetParamSubVals (param->subParams[i], chain, state[chain])[p->index]; + SafeSprintf (&tempStr, &tempStrSize, "[&B %s %s]", param->subParams[i]->name, MbPrintNum(brlen)); + AddToPrintString (tempStr); + } + } + else if (param->paramType == P_SPECIESTREE && modelSettings[param->relParts[0]].popSize->nValues > 1) + { + N = GetParamVals (modelSettings[param->relParts[0]].popSize, chain, state[chain])[p->index]; + SafeSprintf (&tempStr, &tempStrSize, "[&N %s %s]", modelSettings[param->relParts[0]].popSize->name, MbPrintNum(N)); + AddToPrintString (tempStr); + } + } + else + { + if (p->anc != NULL) + AddToPrintString ("("); + WriteNoEvtTreeToPrintString (p->left, chain, param, showBrlens, isRooted); + if (p->anc != NULL) + AddToPrintString (","); + WriteNoEvtTreeToPrintString (p->right, chain, param, showBrlens, isRooted); + if (p->anc != NULL) + { + if (p->anc->anc == NULL && isRooted == NO) + { + if (showBrlens == YES) + SafeSprintf (&tempStr, &tempStrSize, ",%d:%s)", p->anc->index + 1, MbPrintNum(p->length)); + else + SafeSprintf (&tempStr, &tempStrSize, ",%d)", p->anc->index + 1); + AddToPrintString (tempStr); + } + else if (p->anc->anc != NULL) + { + if (showBrlens == YES) + SafeSprintf (&tempStr, &tempStrSize, "):%s", MbPrintNum(p->length)); + else + SafeSprintf (&tempStr, &tempStrSize, ")"); + AddToPrintString (tempStr); + if (param->paramType == P_BRLENS) + { + for (i=0; inSubParams; i++) + { + if (param->subParams[i]->paramType == P_CPPEVENTS) + { + nEvents = param->subParams[i]->nEvents[2*chain+state[chain]][p->index]; + SafeSprintf (&tempStr, &tempStrSize, "[&E %s %d]", param->subParams[i]->name, nEvents); + AddToPrintString (tempStr); + } + brlen = GetParamSubVals (param->subParams[i], chain, state[chain])[p->index]; + SafeSprintf (&tempStr, &tempStrSize, "[&B %s %s]", param->subParams[i]->name, MbPrintNum(brlen)); + AddToPrintString (tempStr); + } + } + else if (param->paramType == P_SPECIESTREE && modelSettings[param->relParts[0]].popSize->nValues > 1) + { + N = GetParamVals (modelSettings[param->relParts[0]].popSize, chain, state[chain])[p->index]; + SafeSprintf (&tempStr, &tempStrSize, "[&N %s %s]", modelSettings[param->relParts[0]].popSize->name, MbPrintNum(N)); + AddToPrintString (tempStr); + } + } + else if (param->paramType == P_SPECIESTREE && modelSettings[param->relParts[0]].popSize->nValues > 1) + { + N = GetParamVals (modelSettings[param->relParts[0]].popSize, chain, state[chain])[p->index]; + SafeSprintf (&tempStr, &tempStrSize, ")[&N %s %s]", modelSettings[param->relParts[0]].popSize->name, MbPrintNum(N)); + AddToPrintString (tempStr); + } + else + AddToPrintString(")"); + } + } + } + free (tempStr); +} + + +/* WriteTopologyToFile: Simply write topology to file */ +void WriteTopologyToFile (FILE *fp, TreeNode *p, int isRooted) +{ + if (p != NULL) + { + if (p->left == NULL && p->right == NULL) + fprintf (fp, "%d", p->index + 1); + else + { + if (p->anc != NULL) + fprintf (fp, "("); + WriteTopologyToFile (fp, p->left, isRooted); + if (p->anc != NULL) + fprintf (fp, ","); + WriteTopologyToFile (fp, p->right, isRooted); + if (p->anc != NULL) + { + if (p->anc->anc == NULL && isRooted == NO) + fprintf (fp, ",%d", p->anc->index + 1); + fprintf (fp, ")"); + } + } + } +} + + +/* the following are moved from mbmath.c */ +/*--------------------------------------------------------------------------------- +| +| AddTwoMatrices +| +| Takes the sum of two matrices, "a" and "b", and puts the results in a matrix +| called "result". +| +---------------------------------------------------------------------------------*/ +void AddTwoMatrices (int dim, MrBFlt **a, MrBFlt **b, MrBFlt **result) +{ + int row, col; + + for (row=0; row 0) + y -= M[(i-1)*K+j]; + if (j > 0) + y -= M[i*K+(j-1)]; + if (i > 0 && j > 0) + y += M[(i-1)*K+(j-1)]; + M[i*K+j] = (M[i*K+j] + y) * K; + } + } + for (i=0; i=0; i--) + { + dotProduct = 0.0; + for (j=i+1; j=0; j--) + { + for (i=0; i<=l; i++) + { + if (i != j) + { + if (AreDoublesEqual(a[j][i],0.0, ETA)==NO) + goto next_j1; + } + } + + /* bug that DLS caught */ + /*m = l; + Exchange(j, k, l, m, dim, a, scale); + if (l < 0) + goto leave; + else + j = --l;*/ + m = l; + Exchange(j, k, l, m, dim, a, scale); + if (--l < 0) + goto leave; + next_j1: + ; + } + + for (j=k; j<=l; j++) + { + for (i=k; i<=l; i++) + { + if (i != j) + { + if (AreDoublesEqual(a[i][j], 0.0, ETA)==NO) + goto next_j; + } + } + m = k; + Exchange(j, k, l, m, dim, a, scale); + k++; + next_j: + ; + } + + for (i=k; i<=l; i++) + scale[i] = 1.0; + + do { + noconv = FALSE; + for (i=k; i<=l; i++) + { + c = 0.0; + r = 0.0; + for (j=k; j<=l; j++) + { + if (j != i) + { + c += fabs(a[j][i]); + r += fabs(a[i][j]); + } + } + if (AreDoublesEqual(c,0.0,ETA)==NO && AreDoublesEqual(r,0.0,ETA)==NO) + { + g = r / FLT_RADIX; + f = 1.0; + s = c + r; + while (c < g) + { + f *= FLT_RADIX; + c *= b2; + } + g = r * FLT_RADIX; + while (c >= g) + { + f /= FLT_RADIX; + c /= b2; + } + if ((c + r) / f < s * .95) + { + g = 1.0 / f; + scale[i] *= f; + noconv = TRUE; + for (j=k; j= g) + goto L220; + f *= radix; + c__ *= b2; + goto L210; + L220: + g = r__ * radix; + L230: + if (c__ < g) + goto L240; + f /= radix; + c__ /= b2; + goto L230; + + /* .......... now balance .......... */ + L240: + if ((c__ + r__) / f >= s * .95) + goto L270; + g = 1.0 / f; + scale[i__] *= f; + noconv = TRUE; + + i__2 = *n; + for (j = k; j <= i__2; ++j) + { + /* L250: */ + a[i__ + j * a_dim1] *= g; + } + + i__2 = l; + for (j = 1; j <= i__2; ++j) + { + /* L260: */ + a[j + i__ * a_dim1] *= f; + } + + L270: + ; + } + + if (noconv) + goto L190; + + L280: + *low = k; + *igh = l; + return 0; + +} +/* end f2c version of code */ +# endif + +} + + +/*--------------------------------------------------------------------------------- +| +| BalBak +| +| This subroutine forms the eigenvectors of a real general +| matrix by back transforming those of the corresponding +| balanced matrix determined by balance. +| +| On input: +| +| * dim is the order of the matrix +| +| * low and high are integers determined by balance +| +| * scale contains information determining the permutations +| and scaling factors used by balance +| +| * m is the number of columns of z to be back transformed +| +| * z contains the real and imaginary parts of the eigen- +| vectors to be back transformed in its first m columns +| +| On output: +| +| * z contains the real and imaginary parts of the +| transformed eigenvectors in its first m columns +| +| This routine is a translation of the Algol procedure from +| Handbook for Automatic Computation, vol. II, Linear Algebra, +| by Wilkinson and Reinsch, Springer-Verlag. +| +---------------------------------------------------------------------------------*/ +void BalBak (int dim, int low, int high, MrBFlt *scale, int m, MrBFlt **z) +{ + int i, j, k, ii; + MrBFlt s; + + if (m != 0) /* change "==" to "!=" to eliminate a goto statement */ + { + if (high != low) /* change "==" to "!=" to eliminate a goto statement */ + { + for (i=low; i<=high; i++) + { + s = scale[i]; + for (j=0; j high)) /* was (i >= lo) && (i<= hi) but this */ + { /* eliminates a goto statement */ + if (i < low) + i = low - ii; + k = (int)scale[i]; + if (k != i) /* change "==" to "!=" to eliminate a goto statement */ + { + for (j = 0; j < m; j++) + { + s = z[i][j]; + z[i][j] = z[k][j]; + z[k][j] = s; + } + } + } + } + } + +#if 0 +/* begin f2c version of code: + balbak.f -- translated by f2c (version 19971204) */ +int balbak (int *nm, int *n, int *low, int *igh, MrBFlt *scale, int *m, MrBFlt *z__) + +{ + + /* system generated locals */ + int z_dim1, z_offset, i__1, i__2; + + /* Local variables */ + static int i__, j, k; + static MrBFlt s; + static int ii; + + /* parameter adjustments */ + --scale; + z_dim1 = *nm; + z_offset = z_dim1 + 1; + z__ -= z_offset; + + /* function Body */ + if (*m == 0) + goto L200; + if (*igh == *low) + goto L120; + + i__1 = *igh; + for (i__ = *low; i__ <= i__1; ++i__) + { + s = scale[i__]; + /* .......... left hand eigenvectors are back transformed */ + /* if the foregoing statement is replaced by */ + /* s=1.0d0/scale(i) ........... */ + i__2 = *m; + for (j = 1; j <= i__2; ++j) + { + /* L100: */ + z__[i__ + j * z_dim1] *= s; + } + + /* L110: */ + } + + /* .........for i=low-1 step -1 until 1, igh+1 step 1 until n do -- .......... */ + L120: + i__1 = *n; + for (ii = 1; ii <= i__1; ++ii) + { + i__ = ii; + if (i__ >= *low && i__ <= *igh) + goto L140; + if (i__ < *low) + i__ = *low - ii; + k = (integer) scale[i__]; + if (k == i__) + goto L140; + + i__2 = *m; + for (j = 1; j <= i__2; ++j) + { + s = z__[i__ + j * z_dim1]; + z__[i__ + j * z_dim1] = z__[k + j * z_dim1]; + z__[k + j * z_dim1] = s; + /* L130: */ + } + L140: + ; + } + + L200: + return 0; + +} +/* end f2c version of code */ +#endif + +} + + +void BetaBreaks (MrBFlt alpha, MrBFlt beta, MrBFlt *values, int K) +{ + int i; + MrBFlt r, quantile, lower, upper; + + r = (1.0 / K) * 0.5; + lower = 0.0; + upper = (1.0 / K); + r = (upper - lower) * 0.5 + lower; + for (i=0; i 100) + { + MrBayesPrint ("%s Error in BetaCf.\n", spacer); + exit(0); + } + return (h); +} + + +MrBFlt BetaQuantile (MrBFlt alpha, MrBFlt beta, MrBFlt x) +{ + int i, stopIter, direction, nswitches; + MrBFlt curPos, curFraction, increment; + + i = nswitches = 0; + curPos = 0.5; + stopIter = NO; + increment = 0.25; + curFraction = IncompleteBetaFunction (alpha, beta, curPos); + if (curFraction > x) + direction = DOWN; + else + direction = UP; + + while (stopIter == NO) + { + curFraction = IncompleteBetaFunction (alpha, beta, curPos); + if (curFraction > x && direction == DOWN) + { + /* continue going down */ + while (curPos - increment <= 0.0) + { + increment /= 2.0; + } + curPos -= increment; + } + else if (curFraction > x && direction == UP) + { + /* switch directions, and go down */ + nswitches++; + direction = DOWN; + while (curPos - increment <= 0.0) + { + increment /= 2.0; + } + increment /= 2.0; + curPos -= increment; + } + else if (curFraction < x && direction == UP) + { + /* continue going up */ + while (curPos + increment >= 1.0) + { + increment /= 2.0; + } + curPos += increment; + } + else if (curFraction < x && direction == DOWN) + { + /* switch directions, and go up */ + nswitches++; + direction = UP; + while (curPos + increment >= 1.0) + { + increment /= 2.0; + } + increment /= 2.0; + curPos += increment; + } + else + { + stopIter = YES; + } + if (i > 1000 || nswitches > 20) + stopIter = YES; + i++; + } + + return (curPos); +} + + +/*--------------------------------------------------------------------------------- +| +| CalcCijk +| +| This function precalculates the product of the eigenvectors and their +| inverse for faster calculation of transition probabilities. The output +| is a vector of precalculated values. The input is the eigenvectors (u) and +| the inverse of the eigenvector matrix (v). +| +---------------------------------------------------------------------------------*/ +void CalcCijk (int dim, MrBFlt *c_ijk, MrBFlt **u, MrBFlt **v) +{ + register int i, j, k; + MrBFlt *pc; + + pc = c_ijk; + for (i=0; i limit) + return (invers ? 0 : 1); + if (x < t) + p = 0.5 - x * (0.398942280444 - 0.399903438504 * y / + (y + 5.75885480458 - 29.8213557808 / + (y + 2.62433121679 + 48.6959930692 / + (y + 5.92885724438)))); + else + p = 0.398942280385 * exp(-y) / + (x - 3.8052e-8 + 1.00000615302 / + (x + 3.98064794e-4 + 1.98615381364 / + (x - 0.151679116635 + 5.29330324926 / + (x + 4.8385912808 - 15.1508972451 / + (x + 0.742380924027 + 30.789933034 / + (x + 3.99019417011)))))); + + return (invers ? p : 1-p); +} + + +/*--------------------------------------------------------------------------------- +| +| Complex +| +| Returns a complex number with specified real and imaginary parts. +| +---------------------------------------------------------------------------------*/ +complex Complex (MrBFlt a, MrBFlt b) +{ + complex c; + + c.re = a; + c.im = b; + + return (c); +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexAbsoluteValue +| +| Returns the complex absolute value (modulus) of a complex number. +| +---------------------------------------------------------------------------------*/ +MrBFlt ComplexAbsoluteValue (complex a) +{ + MrBFlt x, y, answer, temp; + + x = fabs(a.re); + y = fabs(a.im); + if (AreDoublesEqual(x, 0.0, ETA)==YES) /* x == 0.0 */ + answer = y; + else if (AreDoublesEqual(y, 0.0, ETA)==YES) /* y == 0.0 */ + answer = x; + else if (x > y) + { + temp = y / x; + answer = x * sqrt(1.0 + temp * temp); + } + else + { + temp = x / y; + answer = y * sqrt(1.0 + temp * temp); + } + + return (answer); +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexAddition +| +| Returns the complex sum of two complex numbers. +| +---------------------------------------------------------------------------------*/ +complex ComplexAddition (complex a, complex b) +{ + complex c; + + c.re = a.re + b.re; + c.im = a.im + b.im; + + return (c); +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexConjugate +| +| Returns the complex conjugate of a complex number. +| +---------------------------------------------------------------------------------*/ +complex ComplexConjugate (complex a) +{ + complex c; + + c.re = a.re; + c.im = -a.im; + + return (c); +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexDivision +| +| Returns the complex quotient of two complex numbers. +| +---------------------------------------------------------------------------------*/ +complex ComplexDivision (complex a, complex b) +{ + complex c; + MrBFlt r, den; + + if (fabs(b.re) >= fabs(b.im)) + { + r = b.im / b.re; + den = b.re + r * b.im; + c.re = (a.re + r * a.im) / den; + c.im = (a.im - r * a.re) / den; + } + else + { + r = b.re / b.im; + den = b.im + r * b.re; + c.re = (a.re * r + a.im) / den; + c.im = (a.im * r - a.re) / den; + } + + return (c); +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexDivision2 +| +| Returns the complex quotient of two complex numbers. It does not require that +| the numbers be in a complex structure. +| +---------------------------------------------------------------------------------*/ +void ComplexDivision2 (MrBFlt ar, MrBFlt ai, MrBFlt br, MrBFlt bi, MrBFlt *cr, MrBFlt *ci) +{ + MrBFlt s, ais, bis, ars, brs; + + s = fabs(br) + fabs(bi); + ars = ar / s; + ais = ai / s; + brs = br / s; + bis = bi / s; + s = brs*brs + bis*bis; + *cr = (ars*brs + ais*bis) / s; + *ci = (ais*brs - ars*bis) / s; +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexExponentiation +| +| Returns the complex exponential of a complex number. +| +---------------------------------------------------------------------------------*/ +complex ComplexExponentiation (complex a) +{ + complex c; + + c.re = exp(a.re); + if (AreDoublesEqual(a.im,0.0, ETA)==YES) /* == 0 */ + c.im = 0; + else + { + c.im = c.re*sin(a.im); + c.re *= cos(a.im); + } + + return (c); +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexInvertMatrix +| +| Inverts a matrix of complex numbers using the LU-decomposition method. +| The program has the following variables: +| +| a -- the matrix to be inverted +| aInverse -- the results of the matrix inversion +| dim -- the dimension of the square matrix a and its inverse +| dwork -- a work vector of doubles +| indx -- a work vector of integers +| col -- carries the results of the back substitution +| +| The function returns YES (1) or NO (0) if the results are singular. +| +---------------------------------------------------------------------------------*/ +int ComplexInvertMatrix (int dim, complex **a, MrBFlt *dwork, int *indx, complex **aInverse, complex *col) +{ + int isSingular, i, j; + + isSingular = ComplexLUDecompose (dim, a, dwork, indx, (MrBFlt *)NULL); + + if (isSingular == 0) + { + for (j=0; j= 0) + { + for (j = ii; j <= i - 1; j++) + sum = ComplexSubtraction (sum, ComplexMultiplication (a[i][j], b[j])); + } + else if (AreDoublesEqual(sum.re,0.0,ETA)==NO || AreDoublesEqual(sum.im, 0.0, ETA)==NO) /* 2x != 0.0 */ + ii = i; + b[i] = sum; + } + for (i = dim - 1; i >= 0; i--) + { + sum = b[i]; + for (j = i + 1; j < dim; j++) + sum = ComplexSubtraction (sum, ComplexMultiplication (a[i][j], b[j])); + b[i] = ComplexDivision (sum, a[i][i]); + } +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexLUDecompose +| +| Replaces the matrix a with its LU-decomposition. +| The program has the following variables: +| +| a -- the matrix +| dim -- the dimension of the square matrix a and its inverse +| vv -- a work vector of doubles +| indx -- row permutation according to partitial pivoting sequence +| pd -- 1 if number of row interchanges was even, -1 if number of +| row interchanges was odd. Can be NULL. +| +| The function returns YES (1) or NO (0) if the results are singular. +| +---------------------------------------------------------------------------------*/ +int ComplexLUDecompose (int dim, complex **a, MrBFlt *vv, int *indx, MrBFlt *pd) +{ + int i, imax, j, k; + MrBFlt big, dum, temp, d; + complex sum, cdum; + + d = 1.0; + imax = 0; + + for (i = 0; i < dim; i++) + { + big = 0.0; + for (j = 0; j < dim; j++) + { + if ((temp = ComplexAbsoluteValue (a[i][j])) > big) + big = temp; + } + if (AreDoublesEqual(big, 0.0, ETA)==YES) /* == 0.0 */ + { + MrBayesPrint ("%s Error: Problem in ComplexLUDecompose\n", spacer); + return (1); + } + vv[i] = 1.0 / big; + } + + for (j = 0; j < dim; j++) + { + for (i = 0; i < j; i++) + { + sum = a[i][j]; + for (k = 0; k < i; k++) + sum = ComplexSubtraction (sum, ComplexMultiplication (a[i][k], a[k][j])); + a[i][j] = sum; + } + big = 0.0; + for (i = j; i < dim; i++) + { + sum = a[i][j]; + for (k = 0; k < j; k++) + sum = ComplexSubtraction (sum, ComplexMultiplication (a[i][k], a[k][j])); + a[i][j] = sum; + dum = vv[i] * ComplexAbsoluteValue (sum); + if (dum >= big) + { + big = dum; + imax = i; + } + } + if (j != imax) + { + for (k = 0; k < dim; k++) + { + cdum = a[imax][k]; + a[imax][k] = a[j][k]; + a[j][k] = cdum; + } + d = -d; + vv[imax] = vv[j]; + } + indx[j] = imax; + if (AreDoublesEqual(a[j][j].re, 0.0, ETA)==YES && AreDoublesEqual(a[j][j].im, 0.0, ETA)==YES) /* 2x == 0.0 */ + a[j][j] = Complex (1.0e-20, 1.0e-20); + if (j != dim - 1) + { + cdum = ComplexDivision (Complex(1.0, 0.0), a[j][j]); + for (i = j + 1; i < dim; i++) + a[i][j] = ComplexMultiplication (a[i][j], cdum); + } + } + + if (pd != NULL) + *pd = d; + + return (0); +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexMultiplication +| +| Returns the complex product of two complex numbers. +| +---------------------------------------------------------------------------------*/ +complex ComplexMultiplication (complex a, complex b) +{ + complex c; + + c.re = a.re * b.re - a.im * b.im; + c.im = a.im * b.re + a.re * b.im; + + return (c); +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexSquareRoot +| +| Returns the complex square root of a complex number. +| +---------------------------------------------------------------------------------*/ +complex ComplexSquareRoot (complex a) +{ + complex c; + MrBFlt x, y, w, r; + + if (AreDoublesEqual(a.re, 0.0, ETA)==YES && AreDoublesEqual(a.im, 0.0, ETA)==YES) /* 2x == 0.0 */ + { + c.re = 0.0; + c.im = 0.0; + return (c); + } + else + { + x = fabs(a.re); + y = fabs(a.im); + if (x >= y) + { + r = y / x; + w = sqrt(x) * sqrt(0.5 * (1.0 + sqrt(1.0 + r * r))); + } + else + { + r = x / y; + w = sqrt(y) * sqrt(0.5 * (r + sqrt(1.0 + r * r))); + } + if (a.re >= 0.0) + { + c.re = w; + c.im = a.im / (2.0 * w); + } + else + { + c.im = (a.im >= 0.0) ? w : -w; + c.re = a.im / (2.0 * c.im); + } + return (c); + } +} + + +/*--------------------------------------------------------------------------------- +| +| ComplexSubtraction +| +| Returns the complex difference of two complex numbers. +| +---------------------------------------------------------------------------------*/ +complex ComplexSubtraction (complex a, complex b) +{ + complex c; + + c.re = a.re - b.re; + c.im = a.im - b.im; + + return (c); +} + + +/*--------------------------------------------------------------------------------- +| +| ComputeEigenSystem +| +| Calculates the eigenvalues, eigenvectors, and the inverse of the eigenvectors +| for a matrix of real numbers. +| +---------------------------------------------------------------------------------*/ +int ComputeEigenSystem (int dim, MrBFlt **a, MrBFlt *v, MrBFlt *vi, MrBFlt **u, int *iwork, MrBFlt *dwork) +{ + int i, rc; + + rc = EigensForRealMatrix (dim, a, v, vi, u, iwork, dwork); + if (rc != NO_ERROR) + { + MrBayesPrint ("%s Error in ComputeEigenSystem.\n", spacer); + return (ERROR); + } + for (i=0; i0; i--) + { + rK[i] -= rK[i-1]; + rK[i] *= factor; + } + rK[0] *= factor; + } + + return (NO_ERROR); +} + + +/*--------------------------------------------------------------------------------- + | + | DiscreteLogNormal + | + | Discretization of lognormal distribution with equal proportions in each + | category. + | + | LBH Notes: K = # of rate classes + | *rK = pointer to output rate class matrix + | alfa = alpha param + | beta = beta param + | median = flag to use media or not (1 = use median, 0 = mean?) + | + ---------------------------------------------------------------------------------*/ +int DiscreteLogNormal (MrBFlt *rK, MrBFlt sigma, int K, int median) +{ + int i; + MrBFlt t, factor; + MrBFlt sigmaL = sqrt(sigma); + MrBFlt mu = -1.0*((0.5*pow(sigmaL,2.0))); + if (median) + { + for (i=0; i0; i--) { + rK[i] -= rK[i-1]; + rK[i] *= factor; + } + rK[0] *= factor; + } + + return (NO_ERROR); +} + + +/* LogNormal Quantile Function */ +MrBFlt QuantileLogNormal (MrBFlt prob, MrBFlt mu, MrBFlt sigma) +{ + MrBFlt a = 0.0, b = 0.0; + a = PointNormal((0.5*(2.0*prob-1.0))+0.5) / sqrt(2.0); + b = mu+(sqrt(2.0)* sigma * a); + return exp(b); +} + + +/* LogNormal Point Function */ +MrBFlt LogNormalPoint (MrBFlt x, MrBFlt mu, MrBFlt sigma) +{ + if(x <= 0.0) return(0.0); + MrBFlt a = LnProbLogNormal(mu, sigma, x); + return exp(a); +} + + +/*--------------------------------------------------------------------------------- +| +| DivideByTwos +| +| Divides all of the elements of the matrix a by 2^power. +| +---------------------------------------------------------------------------------*/ +void DivideByTwos (int dim, MrBFlt **a, int power) +{ + int divisor = 1, i, row, col; + + for (i=0; i= 0 ? a : -a); + + return (b >= 0 ? x : -x); +} + + +/*--------------------------------------------------------------------------------- +| +| Eigens +| +| The matrix of interest is a. The ouptut is the real and imaginary parts of the +| eigenvalues (wr and wi). z contains the real and imaginary parts of the +| eigenvectors. iv2 and fv1 are working vectors. +| +---------------------------------------------------------------------------------*/ +int EigensForRealMatrix (int dim, MrBFlt **a, MrBFlt *wr, MrBFlt *wi, MrBFlt **z, int *iv1, MrBFlt *fv1) +{ + static int is1, is2; + int ierr; + + Balanc (dim, a, &is1, &is2, fv1); + ElmHes (dim, is1, is2, a, iv1); + ElTran (dim, is1, is2, a, iv1, z); + ierr = Hqr2 (dim, is1, is2, a, wr, wi, z); + if (ierr == 0) + BalBak (dim, is1, is2, fv1, dim, z); + + return (ierr); +} + + +/*--------------------------------------------------------------------------------- +| +| ElmHes +| +| Given a real general matrix, this subroutine +| reduces a submatrix situated in rows and columns +| low through high to upper Hessenberg form by +| stabilized elementary similarity transformations. +| +| On input: +| +| * dim is the order of the matrix +| +| * low and high are integers determined by the balancing +| subroutine balanc. if balanc has not been used, +| set low=1, high=dim. +| +| * a contains the input matrix. +| +| On output: +| +| * a contains the hessenberg matrix. The multipliers +| which were used in the reduction are stored in the +| remaining triangle under the hessenberg matrix. +| +| * interchanged contains information on the rows and columns +| interchanged in the reduction. +| +| Only elements low through high are used. +| +---------------------------------------------------------------------------------*/ +void ElmHes (int dim, int low, int high, MrBFlt **a, int *interchanged) +{ + int i, j, m, la, mm1, kp1, mp1; + MrBFlt x, y; + + la = high - 1; + kp1 = low + 1; + if (la < kp1) + return; /* remove goto statement, which exits at bottom of function */ + + for (m=kp1; m<=la; m++) + { + mm1 = m - 1; + x = 0.0; + i = m; + + for (j=m; j<=high; j++) + { + if (fabs(a[j][mm1]) > fabs(x)) /* change direction of inequality */ + { /* remove goto statement */ + x = a[j][mm1]; + i = j; + } + } + + interchanged[m] = i; + if (i != m) /* change "==" to "!=", eliminating goto statement */ + { + /* interchange rows and columns of a */ + for (j=mm1; j 0) + { + for (j=0; j high)) + { + wr[i] = h[i][i]; + wi[i] = 0.0; + } + } + en = high; + t = 0.0; + itn = dim * 30; + + /* search for next eigenvalues */ + while (en >= low) /* changed from an "if (en < lo)" to eliminate a goto statement */ + { + its = 0; + na = en - 1; + enm2 = na - 1; + twoRoots = FALSE; + + for (;;) + { + for (l=en; l>low; l--) /* changed indexing, got rid of lo, ll */ + { + s = fabs(h[l-1][l-1]) + fabs(h[l][l]); + if (AreDoublesEqual(s, 0.0, ETA)==YES) /* == 0.0 */ + s = norm; + tst1 = s; + tst2 = tst1 + fabs(h[l][l-1]); + if (fabs(tst2 - tst1) < ETA) /* tst2 == tst1 */ + break; /* changed to break to remove a goto statement */ + } + + /* form shift */ + x = h[en][en]; + if (l == en) /* changed to break to remove a goto statement */ + break; + y = h[na][na]; + w = h[en][na] * h[na][en]; + if (l == na) /* used to return to other parts of the code */ + { + twoRoots = TRUE; + break; + } + if (itn == 0) + return (en); + + /* form exceptional shift */ + if ((its == 10) || (its == 20)) /* changed to remove a goto statement */ + { + t += x; + for (i = low; i <= en; i++) + h[i][i] -= x; + s = fabs(h[en][na]) + fabs(h[na][enm2]); + x = 0.75 * s; + y = x; + w = -0.4375 * s * s; + } + its++; + itn--; + + /* look for two consecutive small sub-diagonal elements */ + for (m=enm2; m>=l; m--) + { + /* removed m = enm2 + l - mm and above loop to remove variables */ + zz = h[m][m]; + r = x - zz; + s = y - zz; + p = (r * s - w) / h[m+1][m] + h[m][m+1]; + q = h[m+1][m+1] - zz - r - s; + r = h[m+2][m+1]; + s = fabs(p) + fabs(q) + fabs(r); + p /= s; + q /= s; + r /= s; + if (m == l) + break; /* changed to break to remove a goto statement */ + tst1 = fabs(p) * (fabs(h[m-1][m-1]) + fabs(zz) + fabs(h[m+1][m+1])); + tst2 = tst1 + fabs(h[m][m-1]) * (fabs(q) + fabs(r)); + if (fabs(tst2 - tst1) < ETA) /* tst2 == tst1 */ + break; /* changed to break to remove a goto statement */ + } + + mp2 = m + 2; + for (i = mp2; i <= en; i++) + { + h[i][i-2] = 0.0; + if (i != mp2) /* changed "==" to "!=" to remove a goto statement */ + h[i][i-3] = 0.0; + } + + /* MrBFlt QR step involving rows l to en and columns m to en */ + for (k=m; k<=na; k++) + { + notlas = (k != na); + if (k != m) /* changed "==" to "!=" to remove a goto statement */ + { + p = h[k][k-1]; + q = h[k+1][k-1]; + r = 0.0; + if (notlas) + r = h[k+2][k-1]; + x = fabs(p) + fabs(q) + fabs(r); + if (x < ETA) /* == 0.0 */ + continue; /* changed to continue remove a goto statement */ + p /= x; + q /= x; + r /= x; + } + + /*s = sqrt(p*p+q*q+r*r); + sgn = (p<0)?-1:(p>0); + s = sgn*sqrt(p*p+q*q+r*r);*/ + s = D_sign(sqrt(p*p + q*q + r*r), p); + if (k != m) /* changed "==" to "!=" to remove a goto statement */ + h[k][k-1] = -s * x; + else if (l != m) /* else if gets rid of another goto statement */ + h[k][k-1] = -h[k][k-1]; + p += s; + x = p / s; + y = q / s; + zz = r / s; + q /= p; + r /= p; + if (!notlas) /* changed to !notlas to remove goto statement (see **) */ + { + /* row modification */ + for (j=k; j= -1e-12) /* change "<" to ">=", and also change "0.0" to */ + { /* a small number (Swofford's change) */ + /* real pair */ + zz = p + D_sign(zz, p); + wr[na] = x + zz; + wr[en] = wr[na]; + if (fabs(zz) > ETA) /* != 0.0 */ + wr[en] = x - w/zz; + wi[na] = 0.0; + wi[en] = 0.0; + x = h[en][na]; + s = fabs(x) + fabs(zz); + p = x / s; + q = zz / s; + r = sqrt(p*p + q*q); + p /= r; + q /= r; + + /* row modification */ + for (j=na; j=0; en--) + { + /*en = n - nn - 1; and change for loop */ + p = wr[en]; + q = wi[en]; + na = en - 1; + + if (q < -1e-12) + { + /* last vector component chosen imaginary so that eigenvector + matrix is triangular */ + m = na; + if (fabs(h[en][na]) > fabs(h[na][en])) + { + h[na][na] = q / h[en][na]; + h[na][en] = -(h[en][en] - p) / h[en][na]; + } + else + ComplexDivision2 (0.0, -h[na][en], h[na][na] - p, q, &h[na][na], &h[na][en]); + + h[en][na] = 0.0; + h[en][en] = 1.0; + enm2 = na - 1; + if (enm2 >= 0) /* changed direction to remove goto statement */ + { + for (i=enm2; i>=0; i--) + { + w = h[i][i] - p; + ra = 0.0; + sa = 0.0; + + for (j=m; j<=en; j++) + { + ra += h[i][j] * h[j][na]; + sa += h[i][j] * h[j][en]; + } + + if (wi[i] < 0.0) /* changed direction to remove goto statement */ + { + zz = w; + r = ra; + s = sa; + } + else + { + m = i; + if (fabs(wi[i]) tst1); /* made into a do/while loop */ + } + ComplexDivision2 (x * r - zz * ra + q * sa, x * s - zz * sa - q * ra, vr, vi, &h[i][na], &h[i][en]); + if (fabs(x) > fabs(zz) + fabs(q)) /* changed direction to remove goto statement */ + { + h[i+1][na] = (-ra - w * h[i][na] + q * h[i][en]) / x; + h[i+1][en] = (-sa - w * h[i][en] - q * h[i][na]) / x; + } + else + ComplexDivision2 (-r - y * h[i][na], -s - y * h[i][en], zz, q, &h[i+1][na], &h[i+1][en]); + } + + /* overflow control */ + tst1 = fabs(h[i][na]); + tst2 = fabs(h[i][en]); + t = MAX(tst1, tst2); + if (t > ETA) /* t != 0.0 */ + { + tst1 = t; + tst2 = tst1 + 1.0 / tst1; + if (tst2 <= tst1) + { + for (j = i; j <= en; j++) + { + h[j][na] /= t; + h[j][en] /= t; + } + } + } + } + } + } + } + else if (fabs(q)= 0) + { + for (i=na; i>=0; i--) + { + w = h[i][i] - p; + r = 0.0; + for (j = m; j <= en; j++) + r += h[i][j] * h[j][en]; + if (wi[i] < 0.0) /* changed direction to remove goto statement */ + { + zz = w; + s = r; + continue; /* changed to continue to remove goto statement */ + } + else + { + m = i; + if (fabs(wi[i]) tst1); + } + h[i][en] = -r / t; + } + else + { + /* solve real equations */ + x = h[i][i+1]; + y = h[i+1][i]; + q = (wr[i] - p) * (wr[i] - p) + wi[i] * wi[i]; + t = (x * s - zz * r) / q; + h[i][en] = t; + if (fabs(x) > fabs(zz)) /* changed direction to remove goto statement */ + h[i+1][en] = (-r - w * t) / x; + else + h[i+1][en] = (-s - y * t) / zz; + } + + /* overflow control */ + t = fabs(h[i][en]); + if (t > ETA) + { + tst1 = t; + tst2 = tst1 + 1. / tst1; + if (tst2 <= tst1) + { + for (j = i; j <= en; j++) + h[j][en] /= t; + } + } + } + } + } + } + } + + for (i=0; i high)) /* changed to rid goto statement */ + { + for (j=i; j=low; j--) + { + m = MIN(j, high); + for (i=low; i<=high; i++) + { + zz = 0.0; + for (k = low; k <= m; k++) + zz += z[i][k] * h[k][j]; + z[i][j] = zz; + } + } + + return (0); + +#if 0 +int hqr2 (int *nm, int *n, int *low, int *igh, MrBFlt *h__, MrBFlt *wr, MrBFlt *wi, MrBFlt *z__, int *ierr) + +{ + + /* system generated locals */ + int h_dim1, h_offset, z_dim1, z_offset, i__1, i__2, i__3; + MrBFlt d__1, d__2, d__3, d__4; + + /* builtin functions */ + MrBFlt sqrt(doublereal), d_sign(doublereal *, doublereal *); + + /* Local variables */ + static MrBFlt norm; + static int i__, j, k, l, m; + static MrBFlt p, q, r__, s, t, w, x, y; + static int na, ii, en, jj; + static MrBFlt ra, sa; + static int ll, mm, nn; + static MrBFlt vi, vr, zz; + static logical notlas; + static int mp2, itn, its, enm2; + static MrBFlt tst1, tst2; + + /* parameter adjustments */ + z_dim1 = *nm; + z_offset = z_dim1 + 1; + z__ -= z_offset; + --wi; + --wr; + h_dim1 = *nm; + h_offset = h_dim1 + 1; + h__ -= h_offset; + + /* function Body */ + *ierr = 0; + norm = 0.; + k = 1; + + /* .......... store roots isolated by balanc and compute matrix norm .......... */ + i__1 = *n; + for (i__ = 1; i__ <= i__1; ++i__) + { + i__2 = *n; + for (j = k; j <= i__2; ++j) + { + /* L40: */ + norm += (d__1 = h__[i__ + j * h_dim1], abs(d__1)); + } + k = i__; + if (i__ >= *low && i__ <= *igh) + goto L50; + wr[i__] = h__[i__ + i__ * h_dim1]; + wi[i__] = 0.; + L50: + ; + } + + en = *igh; + t = 0.; + itn = *n * 30; + + /* ..........search for next eigenvalues.......... */ + L60: + if (en < *low) + goto L340; + its = 0; + na = en - 1; + enm2 = na - 1; + + /* ..........look for single small sub-diagonal element for l=en step -1 until low do -- .......... */ + L70: + i__1 = en; + for (ll = *low; ll <= i__1; ++ll) + { + l = en + *low - ll; + if (l == *low) + goto L100; + s = (d__1 = h__[l - 1 + (l - 1) * h_dim1], abs(d__1)) + (d__2 = h__[l + l * h_dim1], abs(d__2)); + if (s == 0.0) + s = norm; + tst1 = s; + tst2 = tst1 + (d__1 = h__[l + (l - 1) * h_dim1], abs(d__1)); + if (tst2 == tst1) + goto L100; + /* L80: */ + } + + /* .......... form shift .......... */ + L100: + x = h__[en + en * h_dim1]; + if (l == en) + goto L270; + y = h__[na + na * h_dim1]; + w = h__[en + na * h_dim1] * h__[na + en * h_dim1]; + if (l == na) + goto L280; + if (itn == 0) + goto L1000; + if (its != 10 && its != 20) + goto L130; + + /* .......... form exceptional shift .......... */ + t += x; + + i__1 = en; + for (i__ = *low; i__ <= i__1; ++i__) + { + /* L120: */ + h__[i__ + i__ * h_dim1] -= x; + } + + s = (d__1 = h__[en + na * h_dim1], abs(d__1)) + (d__2 = h__[na + enm2 * h_dim1], abs(d__2)); + x = s * 0.75; + y = x; + w = s * -0.4375 * s; + L130: + ++its; + --itn; + + /* .......... look for two consecutive small sub-diagonal elements for m=en-2 step -1 until l do -- .......... */ + i__1 = enm2; + for (mm = l; mm <= i__1; ++mm) + { + m = enm2 + l - mm; + zz = h__[m + m * h_dim1]; + r__ = x - zz; + s = y - zz; + p = (r__ * s - w) / h__[m + 1 + m * h_dim1] + h__[m + (m + 1) * h_dim1]; + q = h__[m + 1 + (m + 1) * h_dim1] - zz - r__ - s; + r__ = h__[m + 2 + (m + 1) * h_dim1]; + s = abs(p) + abs(q) + abs(r__); + p /= s; + q /= s; + r__ /= s; + if (m == l) + goto L150; + tst1 = abs(p) * ((d__1 = h__[m - 1 + (m - 1) * h_dim1], abs(d__1)) + + abs(zz) + (d__2 = h__[m + 1 + (m + 1) * h_dim1], abs(d__2))); + tst2 = tst1 + (d__1 = h__[m + (m - 1) * h_dim1], abs(d__1)) * (abs(q) + abs(r__)); + if (tst2 == tst1) + goto L150; + /* L140: */ + } + L150: + mp2 = m + 2; + + i__1 = en; + for (i__ = mp2; i__ <= i__1; ++i__) + { + h__[i__ + (i__ - 2) * h_dim1] = 0.0; + if (i__ == mp2) + goto L160; + h__[i__ + (i__ - 3) * h_dim1] = 0.; + L160: + ; + } + + /* .......... MrBFlt qr step involving rows l to en and columns m to en .......... */ + i__1 = na; + for (k = m; k <= i__1; ++k) + { + notlas = k != na; + if (k == m) + goto L170; + p = h__[k + (k - 1) * h_dim1]; + q = h__[k + 1 + (k - 1) * h_dim1]; + r__ = 0.; + if (notlas) + r__ = h__[k + 2 + (k - 1) * h_dim1]; + x = abs(p) + abs(q) + abs(r__); + if (x == 0.) + goto L260; + p /= x; + q /= x; + r__ /= x; + L170: + d__1 = sqrt(p * p + q * q + r__ * r__); + s = d_sign(&d__1, &p); + if (k == m) + goto L180; + h__[k + (k - 1) * h_dim1] = -s * x; + goto L190; + L180: + if (l != m) + { + h__[k + (k - 1) * h_dim1] = -h__[k + (k - 1) * h_dim1]; + } + L190: + p += s; + x = p / s; + y = q / s; + zz = r__ / s; + q /= p; + r__ /= p; + if (notlas) + goto L225; + + /* .......... row modification .......... */ + i__2 = *n; + for (j = k; j <= i__2; ++j) + { + p = h__[k + j * h_dim1] + q * h__[k + 1 + j * h_dim1]; + h__[k + j * h_dim1] -= p * x; + h__[k + 1 + j * h_dim1] -= p * y; + /* L200: */ + } + + /* computing MIN */ + i__2 = en, i__3 = k + 3; + j = min(i__2,i__3); + + /* .......... column modification .......... */ + i__2 = j; + for (i__ = 1; i__ <= i__2; ++i__) + { + p = x * h__[i__ + k * h_dim1] + y * h__[i__ + (k + 1) * h_dim1]; + h__[i__ + k * h_dim1] -= p; + h__[i__ + (k + 1) * h_dim1] -= p * q; + /* L210: */ + } + + /* .......... accumulate transformations .......... */ + i__2 = *igh; + for (i__ = *low; i__ <= i__2; ++i__) + { + p = x * z__[i__ + k * z_dim1] + y * z__[i__ + (k + 1) * z_dim1]; + z__[i__ + k * z_dim1] -= p; + z__[i__ + (k + 1) * z_dim1] -= p * q; + /* L220: */ + } + goto L255; + L225: + + /* .......... row modification .......... */ + i__2 = *n; + for (j = k; j <= i__2; ++j) + { + p = h__[k + j * h_dim1] + q * h__[k + 1 + j * h_dim1] + r__ * h__[k + 2 + j * h_dim1]; + h__[k + j * h_dim1] -= p * x; + h__[k + 1 + j * h_dim1] -= p * y; + h__[k + 2 + j * h_dim1] -= p * zz; + /* L230: */ + } + + /* computing MIN */ + i__2 = en, i__3 = k + 3; + j = min(i__2,i__3); + + /* .......... column modification .......... */ + i__2 = j; + for (i__ = 1; i__ <= i__2; ++i__) + { + p = x * h__[i__ + k * h_dim1] + y * h__[i__ + (k + 1) * h_dim1] + + zz * h__[i__ + (k + 2) * h_dim1]; + h__[i__ + k * h_dim1] -= p; + h__[i__ + (k + 1) * h_dim1] -= p * q; + h__[i__ + (k + 2) * h_dim1] -= p * r__; + /* L240: */ + } + + /* .......... accumulate transformations .......... */ + i__2 = *igh; + for (i__ = *low; i__ <= i__2; ++i__) + { + p = x * z__[i__ + k * z_dim1] + y * z__[i__ + (k + 1) * z_dim1] + zz * z__[i__ + (k + 2) * z_dim1]; + z__[i__ + k * z_dim1] -= p; + z__[i__ + (k + 1) * z_dim1] -= p * q; + z__[i__ + (k + 2) * z_dim1] -= p * r__; + /* L250: */ + } + L255: + L260: + ; + } + goto L70; + + /* .......... one root found .......... */ + L270: + h__[en + en * h_dim1] = x + t; + wr[en] = h__[en + en * h_dim1]; + wi[en] = 0.; + en = na; + goto L60; + + /* .......... two roots found .......... */ + L280: + p = (y - x) / 2.; + q = p * p + w; + zz = sqrt((abs(q))); + h__[en + en * h_dim1] = x + t; + x = h__[en + en * h_dim1]; + h__[na + na * h_dim1] = y + t; + if (q < 0.) + goto L320; + + /* .......... real pair .......... */ + zz = p + d_sign(&zz, &p); + wr[na] = x + zz; + wr[en] = wr[na]; + if (zz != 0.) + { + wr[en] = x - w / zz; + } + wi[na] = 0.0; + wi[en] = 0.0; + x = h__[en + na * h_dim1]; + s = abs(x) + abs(zz); + p = x / s; + q = zz / s; + r__ = sqrt(p * p + q * q); + p /= r__; + q /= r__; + + /* .......... row modification .......... */ + i__1 = *n; + for (j = na; j <= i__1; ++j) + { + zz = h__[na + j * h_dim1]; + h__[na + j * h_dim1] = q * zz + p * h__[en + j * h_dim1]; + h__[en + j * h_dim1] = q * h__[en + j * h_dim1] - p * zz; + /* L290: */ + } + + /* .......... column modification .......... */ + i__1 = en; + for (i__ = 1; i__ <= i__1; ++i__) + { + zz = h__[i__ + na * h_dim1]; + h__[i__ + na * h_dim1] = q * zz + p * h__[i__ + en * h_dim1]; + h__[i__ + en * h_dim1] = q * h__[i__ + en * h_dim1] - p * zz; + /* L300: */ + } + + /* .......... accumulate transformations .......... */ + i__1 = *igh; + for (i__ = *low; i__ <= i__1; ++i__) + { + zz = z__[i__ + na * z_dim1]; + z__[i__ + na * z_dim1] = q * zz + p * z__[i__ + en * z_dim1]; + z__[i__ + en * z_dim1] = q * z__[i__ + en * z_dim1] - p * zz; + /* L310: */ + } + goto L330; + + /* .......... complex pair .......... */ + L320: + wr[na] = x + p; + wr[en] = x + p; + wi[na] = zz; + wi[en] = -zz; + L330: + en = enm2; + goto L60; + + /* .......... all roots found. backsubstitute to find vectors of upper triangular form .......... */ + L340: + if (norm == 0.0) + goto L1001; + + /* .......... for en=n step -1 until 1 do -- .......... */ + i__1 = *n; + for (nn = 1; nn <= i__1; ++nn) + { + en = *n + 1 - nn; + p = wr[en]; + q = wi[en]; + na = en - 1; + if (q < 0.) + goto L710; + else if (q == 0) + goto L600; + else + goto L800; + + /* .......... real vector .......... */ + L600: + m = en; + h__[en + en * h_dim1] = 1.0; + if (na == 0) + goto L800; + + /* .......... for i=en-1 step -1 until 1 do -- .......... */ + i__2 = na; + for (ii = 1; ii <= i__2; ++ii) + { + i__ = en - ii; + w = h__[i__ + i__ * h_dim1] - p; + r__ = 0.0; + + i__3 = en; + for (j = m; j <= i__3; ++j) + { + /* L610: */ + r__ += h__[i__ + j * h_dim1] * h__[j + en * h_dim1]; + } + + if (wi[i__] >= 0.0) + goto L630; + zz = w; + s = r__; + goto L700; + L630: + m = i__; + if (wi[i__] != 0.0) + goto L640; + t = w; + if (t != 0.0) + goto L635; + tst1 = norm; + t = tst1; + L632: + t *= 0.01; + tst2 = norm + t; + if (tst2 > tst1) + goto L632; + L635: + h__[i__ + en * h_dim1] = -r__ / t; + goto L680; + + /* .......... solve real equations .......... */ + L640: + x = h__[i__ + (i__ + 1) * h_dim1]; + y = h__[i__ + 1 + i__ * h_dim1]; + q = (wr[i__] - p) * (wr[i__] - p) + wi[i__] * wi[i__]; + t = (x * s - zz * r__) / q; + h__[i__ + en * h_dim1] = t; + if (abs(x) <= abs(zz)) + goto L650; + h__[i__ + 1 + en * h_dim1] = (-r__ - w * t) / x; + goto L680; + L650: + h__[i__ + 1 + en * h_dim1] = (-s - y * t) / zz; + + /* .......... overflow control .......... */ + L680: + t = (d__1 = h__[i__ + en * h_dim1], abs(d__1)); + if (t == 0.0) + goto L700; + tst1 = t; + tst2 = tst1 + 1.0 / tst1; + if (tst2 > tst1) + goto L700; + i__3 = en; + for (j = i__; j <= i__3; ++j) + { + h__[j + en * h_dim1] /= t; + /* L690: */ + } + + L700: + ; + } + + /* .......... end real vector .......... */ + goto L800; + + /* .......... complex vector .......... */ + L710: + m = na; + + /* .......... last vector component chosen imaginary so that eigenvector matrix is triangular .......... */ + if ((d__1 = h__[en + na * h_dim1], abs(d__1)) <= (d__2 = h__[na + en * + h_dim1], abs(d__2))) + goto L720; + h__[na + na * h_dim1] = q / h__[en + na * h_dim1]; + h__[na + en * h_dim1] = -(h__[en + en * h_dim1] - p) / h__[en + na * h_dim1]; + goto L730; + L720: + d__1 = -h__[na + en * h_dim1]; + d__2 = h__[na + na * h_dim1] - p; + cdiv_(&c_b49, &d__1, &d__2, &q, &h__[na + na * h_dim1], &h__[na + en * + h_dim1]); + L730: + h__[en + na * h_dim1] = 0.0; + h__[en + en * h_dim1] = 1.0; + enm2 = na - 1; + if (enm2 == 0) + goto L800; + + /* .......... for i=en-2 step -1 until 1 do -- .......... */ + i__2 = enm2; + for (ii = 1; ii <= i__2; ++ii) + { + i__ = na - ii; + w = h__[i__ + i__ * h_dim1] - p; + ra = 0.0; + sa = 0.0; + + i__3 = en; + for (j = m; j <= i__3; ++j) + { + ra += h__[i__ + j * h_dim1] * h__[j + na * h_dim1]; + sa += h__[i__ + j * h_dim1] * h__[j + en * h_dim1]; + /* L760: */ + } + + if (wi[i__] >= 0.0) + goto L770; + zz = w; + r__ = ra; + s = sa; + goto L795; + L770: + m = i__; + if (wi[i__] != 0.0) + goto L780; + d__1 = -ra; + d__2 = -sa; + cdiv_(&d__1, &d__2, &w, &q, &h__[i__ + na * h_dim1], &h__[i__ + en * h_dim1]); + goto L790; + + /* .......... solve complex equations .......... */ + L780: + x = h__[i__ + (i__ + 1) * h_dim1]; + y = h__[i__ + 1 + i__ * h_dim1]; + vr = (wr[i__] - p) * (wr[i__] - p) + wi[i__] * wi[i__] - q * q; + vi = (wr[i__] - p) * 2.0 * q; + if (vr != 0.0 || vi != 0.0) + goto L784; + tst1 = norm * (abs(w) + abs(q) + abs(x) + abs(y) + abs(zz)); + vr = tst1; + L783: + vr *= 0.01; + tst2 = tst1 + vr; + if (tst2 > tst1) + goto L783; + L784: + d__1 = x * r__ - zz * ra + q * sa; + d__2 = x * s - zz * sa - q * ra; + cdiv_(&d__1, &d__2, &vr, &vi, &h__[i__ + na * h_dim1], &h__[i__ + en * h_dim1]); + if (abs(x) <= abs(zz) + abs(q)) + goto L785; + h__[i__ + 1 + na * h_dim1] = (-ra - w * h__[i__ + na * h_dim1] + q * h__[i__ + en * h_dim1]) / x; + h__[i__ + 1 + en * h_dim1] = (-sa - w * h__[i__ + en * h_dim1] - q * h__[i__ + na * h_dim1]) / x; + goto L790; + L785: + d__1 = -r__ - y * h__[i__ + na * h_dim1]; + d__2 = -s - y * h__[i__ + en * h_dim1]; + cdiv_(&d__1, &d__2, &zz, &q, &h__[i__ + 1 + na * h_dim1], &h__[i__ + 1 + en * h_dim1]); + + /* .......... overflow control .......... */ + L790: + /* Computing MAX */ + d__3 = (d__1 = h__[i__ + na * h_dim1], abs(d__1)), d__4 = (d__2 = h__[i__ + en * h_dim1], abs(d__2)); + t = max(d__3,d__4); + if (t == 0.0) + goto L795; + tst1 = t; + tst2 = tst1 + 1.0 / tst1; + if (tst2 > tst1) + goto L795; + i__3 = en; + for (j = i__; j <= i__3; ++j) + { + h__[j + na * h_dim1] /= t; + h__[j + en * h_dim1] /= t; + /* L792: */ + } + L795: + ; + } + /* .......... end complex vector .......... */ + L800: + ; + } + /* .......... end back substitution vectors of isolated roots .......... */ + i__1 = *n; + for (i__ = 1; i__ <= i__1; ++i__) + { + if (i__ >= *low && i__ <= *igh) + goto L840; + i__2 = *n; + for (j = i__; j <= i__2; ++j) + { + /* L820: */ + z__[i__ + j * z_dim1] = h__[i__ + j * h_dim1]; + } + L840: + ; + } + + /* .......... multiply by transformation matrix to give vectors of original full matrix. */ + /* for j=n step -1 until low do -- .......... */ + i__1 = *n; + for (jj = *low; jj <= i__1; ++jj) + { + j = *n + *low - jj; + m = min(j,*igh); + + i__2 = *igh; + for (i__ = *low; i__ <= i__2; ++i__) + { + zz = 0.0; + i__3 = m; + for (k = *low; k <= i__3; ++k) + { + /* L860: */ + zz += z__[i__ + k * z_dim1] * h__[k + j * h_dim1]; + } + + z__[i__ + j * z_dim1] = zz; + /* L880: */ + } + } + + goto L1001; + /* .......... set error -- all eigenvalues have not converged after 30*n iterations .......... */ + L1000: + *ierr = en; + L1001: + return 0; + +} +/* end f2c version of code */ +#endif + +} + + +MrBFlt IncompleteBetaFunction (MrBFlt alpha, MrBFlt beta, MrBFlt x) +{ + MrBFlt bt, gm1, gm2, gm3, temp; + + if (x < 0.0 || x > 1.0) + { + MrBayesPrint ("%s Error: Problem in IncompleteBetaFunction.\n", spacer); + exit (0); + } + if (fabs(x) < ETA || fabs(x-1.0)1 && x>=p) + goto l30; + gin = 1.0; + term = 1.0; + rn = p; + l20: + rn++; + term *= x/rn; + gin += term; + if (term > accurate) + goto l20; + gin *= factor/p; + goto l50; + l30: + a = 1.0-p; + b = a+x+1.0; + term = 0.0; + pn[0] = 1.0; + pn[1] = x; + pn[2] = x+1; + pn[3] = x*b; + gin = pn[2]/pn[3]; + l32: + a++; + b += 2.0; + term++; + an = a*term; + for (i=0; i<2; i++) + pn[i+4] = b*pn[i+2]-an*pn[i]; + if (fabs(pn[5]) < ETA) + goto l35; + rn = pn[4]/pn[5]; + dif = fabs(gin-rn); + if (dif>accurate) + goto l34; + if (dif<=accurate*rn) + goto l42; + l34: + gin = rn; + l35: + for (i=0; i<4; i++) + pn[i] = pn[i+2]; + if (fabs(pn[4]) < overflow) + goto l32; + for (i=0; i<4; i++) + pn[i] /= overflow; + goto l32; + l42: + gin = 1.0-factor*gin; + l50: + return (gin); +} + + +/*--------------------------------------------------------------------------------- +| +| InvertMatrix +| +| Calculates aInv = a^{-1} using LU-decomposition. The input matrix a is +| destroyed in the process. The program returns an error if the matrix is +| singular. col and indx are work vectors. +| +---------------------------------------------------------------------------------*/ +int InvertMatrix (int dim, MrBFlt **a, MrBFlt *col, int *indx, MrBFlt **aInv) +{ + int rc, i, j; + + rc = LUDecompose (dim, a, col, indx, (MrBFlt *)NULL); + if (rc == FALSE) + { + for (j = 0; j < dim; j++) + { + for (i = 0; i < dim; i++) + col[i] = 0.0; + col[j] = 1.0; + LUBackSubstitution (dim, a, indx, col); + for (i = 0; i < dim; i++) + aInv[i][j] = col[i]; + } + } + + return (rc); +} + + +/*--------------------------------------------------------------------------------- +| +| LBinormal +| +| L(h1,h2,r) = prob(x>h1, y>h2), where x and y are standard binormal, +| with r=corr(x,y), error < 2e-7. +| +| Drezner Z., and G.O. Wesolowsky (1990) On the computation of the +| bivariate normal integral. J. Statist. Comput. Simul. 35:101-107. +| +---------------------------------------------------------------------------------*/ +MrBFlt LBinormal (MrBFlt h1, MrBFlt h2, MrBFlt r) +{ + int i; + MrBFlt x[]={0.04691008, 0.23076534, 0.5, 0.76923466, 0.95308992}; + MrBFlt w[]={0.018854042, 0.038088059, 0.0452707394,0.038088059,0.018854042}; + MrBFlt Lh=0.0, r1, r2, r3, rr, aa, ab, h3, h5, h6, h7, h12, temp1, temp2, exp1, exp2; + + h12 = (h1 * h1 + h2 * h2) / 2.0; + if (fabs(r) >= 0.7) + { + r2 = 1.0 - r * r; + r3 = sqrt(r2); + if (r < 0) + h2 *= -1; + h3 = h1 * h2; + h7 = exp(-h3 / 2.0); + if (fabs(r-1.0)>ETA) /* fabs(r) != 1.0 */ + { + h6 = fabs(h1-h2); + h5 = h6 * h6 / 2.0; + h6 /= r3; + aa = 0.5 - h3 / 8; + ab = 3.0 - 2.0 * aa * h5; + temp1 = -h5 / r2; + if (temp1 < -100.0) + exp1 = 0.0; + else + exp1 = exp(temp1); + Lh = 0.13298076 * h6 * ab * (1.0 - CdfNormal(h6)) - exp1 * (ab + aa * r2) * 0.053051647; + for (i=0; i<5; i++) + { + r1 = r3 * x[i]; + rr = r1 * r1; + r2 = sqrt(1.0 - rr); + temp1 = -h5 / rr; + if (temp1 < -100.0) + exp1 = 0.0; + else + exp1 = exp(temp1); + temp2 = -h3 / (1.0 + r2); + if (temp2 < -100.0) + exp2 = 0.0; + else + exp2 = exp(temp2); + Lh -= w[i] * exp1 * (exp2 / r2 / h7 - 1.0 - aa * rr); + } + } + if (r > 0) + Lh = Lh * r3 * h7 + (1.0 - CdfNormal(MAX(h1, h2))); + else if (r<0) + Lh = (h1 < h2 ? CdfNormal(h2) - CdfNormal(h1) : 0) - Lh * r3 * h7; + } + else + { + h3 = h1 * h2; + if (fabs(r)>ETA) + { + for (i=0; i<5; i++) + { + r1 = r * x[i]; + r2 = 1.0 - r1 * r1; + temp1 = (r1 * h3 - h12) / r2; + if (temp1 < -100.0) + exp1 = 0.0; + else + exp1 = exp(temp1); + Lh += w[i] * exp1 / sqrt(r2); + } + } + Lh = (1.0 - CdfNormal(h1)) * (1.0 - CdfNormal(h2)) + r * Lh; + } + return (Lh); +} + + +/*--------------------------------------------------------------------------------- +| +| LnFactorial: Calculates the log of the factorial for an integer +| +---------------------------------------------------------------------------------*/ +MrBFlt LnFactorial (int value) +{ + int i; + MrBFlt result; + + result = 0.0; + + for (i = 2; i<=value; i++) + result += log(i); + + return result; +} + + +/*--------------------------------------------------------------------------------- +| +| LnGamma +| +| Calculates the log of the gamma function. The Gamma function is equal +| to: +| +| Gamma(alp) = {integral from 0 to infinity} t^{alp-1} e^-t dt +| +| The result is accurate to 10 decimal places. Stirling's formula is used +| for the central polynomial part of the procedure. +| +| Pike, M. C. and I. D. Hill. 1966. Algorithm 291: Logarithm of the gamma +| function. Communications of the Association for Computing +| Machinery, 9:684. +| +---------------------------------------------------------------------------------*/ +MrBFlt LnGamma (MrBFlt alp) +{ + MrBFlt x = alp, f = 0.0, z; + + if (x < 7) + { + f = 1.0; + z = x-1.0; + while (++z < 7.0) + f *= z; + x = z; + f = -log(f); + } + z = 1.0 / (x*x); + return (f + (x-0.5)*log(x) - x + 0.918938533204673 + + (((-0.000595238095238*z+0.000793650793651)*z-0.002777777777778)*z +0.083333333333333)/x); +} + + +/* Calculate probability of a realization for exponential random variable */ +MrBFlt LnPriorProbExponential (MrBFlt val, MrBFlt *params) +{ + return log(params[0]) - params[0] * val; +} + + +/* Calculate probability of a realization for exponential random variable; parameter mean and not rate */ +MrBFlt LnPriorProbExponential_Param_Mean (MrBFlt val, MrBFlt *params) +{ + return - log(params[0]) - val / params[0]; +} + + +/* Calculate probability of a realization for a fixed variable */ +MrBFlt LnPriorProbFix (MrBFlt val, MrBFlt *params) +{ + if (fabs((val - params[0])/val) < 1E-5) + return 0.0; + else + return NEG_INFINITY; +} + + +/* Calculate probability of a realization for gamma random variable */ +MrBFlt LnPriorProbGamma (MrBFlt val, MrBFlt *params) +{ + return (params[0] - 1) * log(val) + params[0] * log(params[1]) - params[1] * val - LnGamma(params[0]); +} + + +/* Calculate probability of a realization for gamma random variable; parameters mean and sd */ +MrBFlt LnPriorProbGamma_Param_Mean_Sd (MrBFlt val, MrBFlt *params) +{ + MrBFlt alpha, beta; + + beta = params[0] / (params[1]*params[1]); + alpha = params[0] * beta; + + return (alpha - 1) * log(val) + alpha * log(beta) - beta * val - LnGamma(alpha); +} + + +/* Calculate probability of a realization for lognormal random variable */ +MrBFlt LnPriorProbLognormal (MrBFlt val, MrBFlt *params) +{ + MrBFlt z; + + z = (log(val) - params[0]) / params[1]; + + return - log(params[1] * val * sqrt(2.0 * PI)) - z * z / 2.0; +} + + +/* Calculate probability of a realization for lognormal random variable; parameters mean and sd on linear scale */ +MrBFlt LnPriorProbLognormal_Param_Mean_Sd (MrBFlt val, MrBFlt *params) +{ + MrBFlt z, mean_log, sd_log; + + sd_log = sqrt (log((params[1]*params[1])/(params[0]*params[0]) + 1)); + mean_log = log(params[0]) - sd_log * sd_log / 2.0; + + z= (log(val) - mean_log) / sd_log; + + return - log(sd_log * val * sqrt(2.0 * PI)) - z * z / 2.0; +} + + +/* Calculate probability of a realization for normal random variable */ +MrBFlt LnPriorProbNormal (MrBFlt val, MrBFlt *params) +{ + MrBFlt z; + + z = (val - params[0]) / params[1]; + + return - log(params[1] * sqrt(2.0 * PI)) - z * z / 2.0; +} + + +/* Calculate probability of a realization for an offset exponential random variable */ +MrBFlt LnPriorProbOffsetExponential (MrBFlt val, MrBFlt *params) +{ + return log(params[1]) - params[1] * (val - params[0]); +} + + +/* Calculate probability of a realization for an offset exponential random variable; parameters offset and mean */ +MrBFlt LnPriorProbOffsetExponential_Param_Offset_Mean (MrBFlt val, MrBFlt *params) +{ + MrBFlt x, rate; + + x = val - params[0]; + rate = 1.0 / (params[1] - params[0]); + + return log(rate) - rate * x; +} + + +/* Calculate probability of a realization for an offset gamma random variable */ +MrBFlt LnPriorProbOffsetGamma (MrBFlt val, MrBFlt *params) +{ + MrBFlt x, alpha, beta; + + x = val - params[0]; + alpha = params[1]; + beta = params[2]; + + return (alpha - 1) * log(x) + alpha * log(beta) - beta * x - LnGamma(alpha); +} + + +/* Calculate probability of a realization for an offset gamma random variable; parameters offset, mean and sd */ +MrBFlt LnPriorProbOffsetGamma_Param_Offset_Mean_Sd (MrBFlt val, MrBFlt *params) +{ + MrBFlt x, mean, sd, alpha, beta; + + x = val - params[0]; + mean = params[1] - params[0]; + sd = params[2]; + + beta = mean / (sd*sd); + alpha = mean * beta; + + return (alpha - 1) * log(x) + alpha * log(beta) - beta * x - LnGamma(alpha); +} + + +/* Calculate probability of a realization for an offset lognormal random variable */ +MrBFlt LnPriorProbOffsetLognormal (MrBFlt val, MrBFlt *params) +{ + MrBFlt x, mean_log, sd_log, z; + + x = val - params[0]; + mean_log = params[1] - params[0]; + sd_log = params[2]; + + z = (log(x) - mean_log) / sd_log; + + return - log(sd_log * x * sqrt(2.0 * PI)) - z * z / 2.0; +} + + +/* Calculate probability of a realization for an offset lognormal random variable; parameters offset, mean and sd */ +MrBFlt LnPriorProbOffsetLognormal_Param_Offset_Mean_Sd (MrBFlt val, MrBFlt *params) +{ + MrBFlt x, mean, sd, mean_log, sd_log, z; + + x = val - params[0]; + mean = params[1] - params[0]; + sd = params[2]; + sd_log = sqrt (log((sd*sd)/(mean*mean) + 1)); + mean_log = log(mean) - sd_log * sd_log / 2.0; + + z = (log(x) - mean_log) / sd_log; + + return - log(sd_log * x * sqrt(2.0 * PI)) - z * z / 2.0; +} + + +/* Calculate probability of a realization for truncated (only positive values) normal random variable */ +MrBFlt LnPriorProbTruncatedNormal (MrBFlt val, MrBFlt *params) +{ + MrBFlt z, z_0, normConst; + + z = (val - params[0]) / params[1]; + z_0 = (0.0 - params[0]) / params[1]; + normConst = CdfNormal(z_0); + + return - log(params[1] * sqrt(2.0 * PI)) - z * z / 2.0 - log(1.0 - normConst); +} + + +/* Calculate probability of a realization for arbitrarily truncated normal random variable; parameters truncation point, mean and sd */ +MrBFlt LnPriorProbTruncatedNormal_Param_Trunc_Mean_Sd (MrBFlt val, MrBFlt *params) +{ + MrBFlt z, z_trunc, normConst; + + z = (val - params[1]) / params[2]; + z_trunc = (params[0] - params[1]) / params[2]; + normConst = CdfNormal(z_trunc); + + return - log(params[2] * sqrt(2.0 * PI)) - z * z / 2.0 - log(1.0 - normConst); +} + + +/* Calculate probability of a realization for uniform random variable */ +MrBFlt LnPriorProbUniform (MrBFlt val, MrBFlt *params) +{ + return - log(params[1] - params[0]); + MrBayesPrint ("%lf", val); /* just because I am tired of seeing the unused parameter error msg */ +} + + +/* Calculate probability ratio of realizations for exponential random variable */ +MrBFlt LnProbRatioExponential (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + return params[0] * (oldX - newX); +} + + +/* Calculate probability ratio of realizations for exponential random variable; parameter mean and not rate */ +MrBFlt LnProbRatioExponential_Param_Mean (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + return (oldX - newX) / params[0]; +} + + +/* Calculate probability of a realization for a fixed variable */ +MrBFlt LnProbRatioFix (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + if (fabs((newX - params[0])/newX) < 1E-5 && fabs((oldX - params[0])/oldX) < 1E-5) + return 0.0; + else + return NEG_INFINITY; +} + + +/* Calculate probability ratio of realizations for gamma random variable */ +MrBFlt LnProbRatioGamma (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt alpha, beta; + + alpha = params[0]; + beta = params[1]; + + return (alpha - 1.0) * (log(newX) - log(oldX)) - beta * (newX - oldX); +} + + +/* Calculate probability ratio of realizations for gamma random variable; parameters mean and sd */ +MrBFlt LnProbRatioGamma_Param_Mean_Sd (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt alpha, beta; + + beta = params[0] / (params[1]*params[1]); + alpha = params[0] * beta; + + return (alpha - 1.0) * (log(newX) - log(oldX)) - beta * (newX - oldX); +} + + +/* Calculate probability ratio of realizations for log normal random variable */ +MrBFlt LnProbRatioLognormal (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt newZ, oldZ; + + newZ = (log(newX) - params[0]) / params[1]; + oldZ = (log(oldX) - params[0]) / params[1]; + + return (oldZ * oldZ - newZ * newZ) / 2.0 + log(oldX) - log(newX); +} + + +/* Calculate probability ratio of realizations for log normal random variable; parameters mean and sd */ +MrBFlt LnProbRatioLognormal_Param_Mean_Sd (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt newZ, oldZ, mean_log, sd_log; + + sd_log = sqrt (log((params[1]*params[1])/(params[0]*params[0]) + 1)); + mean_log = log(params[0]) - sd_log * sd_log / 2.0; + + newZ = (log(newX) - mean_log) / sd_log; + oldZ = (log(oldX) - mean_log) / sd_log; + + return (oldZ * oldZ - newZ * newZ) / 2.0 + log(oldX) - log(newX); +} + + +/* Calculate probability ratio of realizations for normal random variable */ +MrBFlt LnProbRatioNormal (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt newZ, oldZ; + + newZ = (newX - params[0]) / params[1]; + oldZ = (oldX - params[0]) / params[1]; + + return (oldZ * oldZ - newZ * newZ) / 2.0; +} + + +/* Calculate probability ratio of realizations for offset exponential random variable */ +MrBFlt LnProbRatioOffsetExponential (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + return params[1] * (oldX - newX); +} + + +/* Calculate probability ratio of realizations for offset exponential random variable; parameters offset and mean */ +MrBFlt LnProbRatioOffsetExponential_Param_Offset_Mean (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + return (oldX - newX) / (params[1] - params[0]); +} + + +/* Calculate probability ratio of realizations for offset gamma random variable */ +MrBFlt LnProbRatioOffsetGamma (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt alpha, beta, newZ, oldZ; + + alpha = params[1]; + beta = params[2]; + newZ = newX - params[0]; + oldZ = oldX - params[0]; + + return (alpha - 1.0) * (log(newZ) - log(oldZ)) - beta * (newZ - oldZ); +} + + +/* Calculate probability ratio of realizations for offset gamma random variable; parameters offset, mean and sd */ +MrBFlt LnProbRatioOffsetGamma_Param_Offset_Mean_Sd (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt mean, sd, alpha, beta; + + mean = params[1] - params[0]; + sd = params[2]; + + beta = mean / (sd*sd); + alpha = mean * beta; + + newX -= params[0]; + oldX -= params[0]; + + return (alpha - 1.0) * (log(newX) - log(oldX)) - beta * (newX - oldX); +} + + +/* Calculate probability ratio of realizations for offset lognormal random variable */ +MrBFlt LnProbRatioOffsetLognormal (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt newZ, oldZ, mean_log, sd_log; + + sd_log = params[2]; + mean_log = params[1]; + + newZ = (log(newX-params[0]) - mean_log) / sd_log; + oldZ = (log(oldX-params[0]) - mean_log) / sd_log; + + return (oldZ * oldZ - newZ * newZ) / 2.0 + log(oldX-params[0]) - log(newX-params[0]); +} + + +/* Calculate probability ratio of realizations for offset lognormal random variable; parameters offset, mean and sd */ +MrBFlt LnProbRatioOffsetLognormal_Param_Offset_Mean_Sd (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt newZ, oldZ, mean, sd, mean_log, sd_log; + + mean = params[1] - params[0]; + sd = params[2]; + sd_log = sqrt (log((sd*sd)/(mean*mean) + 1)); + mean_log = log(mean) - sd_log * sd_log / 2.0; + + newX -= params[0]; + oldX -= params[0]; + newZ = (log(newX) - mean_log) / sd_log; + oldZ = (log(oldX) - mean_log) / sd_log; + + return (oldZ * oldZ - newZ * newZ) / 2.0 - log(newX / oldX); +} + + +/* Calculate probability ratio of realizations for truncated normal random variable */ +MrBFlt LnProbRatioTruncatedNormal (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt newZ, oldZ; + + newZ = (newX - params[0]) / params[1]; + oldZ = (oldX - params[0]) / params[1]; + + return (oldZ * oldZ - newZ * newZ) / 2.0; +} + + +/* Calculate probability ratio of realizations for arbitrarily truncated normal random variable; parameters truncation point, mean and sd */ +MrBFlt LnProbRatioTruncatedNormal_Param_Trunc_Mean_Sd (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + MrBFlt newZ, oldZ; + + newZ = (newX - params[1]) / params[2]; + oldZ = (oldX - params[1]) / params[2]; + + return (oldZ * oldZ - newZ * newZ) / 2.0; +} + + +/* Calculate probability ratio of realizations for uniform random variable */ +MrBFlt LnProbRatioUniform (MrBFlt newX, MrBFlt oldX, MrBFlt *params) +{ + return 0.0; + MrBayesPrint ("%lf %lf", newX, oldX); /* just because I am tired of seeing the unused parameter error msg */ + MrBayesPrint ("%lf", *params); +} + + +/* Log probability for a value drawn from a gamma distribution */ +MrBFlt LnProbGamma (MrBFlt alpha, MrBFlt beta, MrBFlt x) +{ + MrBFlt lnProb; + + lnProb = (alpha-1.0)*log(x) + alpha*log(beta) - x*beta - LnGamma(alpha); + + return lnProb; +} + + +/* Log probability for a value drawn from a truncated gamma distribution */ +MrBFlt LnProbTruncGamma (MrBFlt alpha, MrBFlt beta, MrBFlt x, MrBFlt min, MrBFlt max) +{ + MrBFlt lnProb; + + lnProb = (alpha-1.0)*log(x) + alpha*log(beta) - x*beta - LnGamma(alpha); + + lnProb -= log (IncompleteGamma (max*beta, alpha, LnGamma(alpha)) - IncompleteGamma (min*beta, alpha, LnGamma(alpha))); + + return lnProb; +} + + +/* Log probability for a value drawn from a lognormal distribution */ +MrBFlt LnProbLogNormal (MrBFlt exp, MrBFlt sd, MrBFlt x) +{ + MrBFlt lnProb, z; + + z = (log(x) - exp) / sd; + + lnProb = - log (x * sd * sqrt (2.0 * PI)) - (z * z / 2.0); + + return lnProb; +} + + +/* Log ratio for two values drawn from a lognormal distribution */ +MrBFlt LnRatioLogNormal (MrBFlt exp, MrBFlt sd, MrBFlt xNew, MrBFlt xOld) +{ + MrBFlt newZ, oldZ; + + newZ = (log(xNew) - exp) / sd; + oldZ = (log(xOld) - exp) / sd; + + return (oldZ * oldZ - newZ * newZ) / 2.0 + log(xOld) - log(xNew); +} + + +/* Log probability for a value drawn from a lognormal distribution; + parameters are mean and variance of value (not of log value) */ +MrBFlt LnProbTK02LogNormal (MrBFlt mean, MrBFlt var, MrBFlt x) +{ + MrBFlt z, lnProb, mu, sigma; + + sigma = sqrt(log(1.0 + (var / (mean*mean)))); + mu = log(mean) - sigma * sigma / 2.0; + + z = (log(x) - mu) / sigma; + + lnProb = - log (x * sigma * sqrt (2.0 * PI)) - (z * z / 2.0); + + return lnProb; +} + + +/* Log ratio for two values drawn from a lognormal distribution */ +MrBFlt LnRatioTK02LogNormal (MrBFlt mean, MrBFlt var, MrBFlt xNew, MrBFlt xOld) +{ + MrBFlt newZ, oldZ, mu, sigma; + + sigma = sqrt(log(1.0 + (var / (mean*mean)))); + mu = log(mean) - sigma * sigma / 2.0; + + newZ = (log(xNew) - mu) / sigma; + oldZ = (log(xOld) - mu) / sigma; + + return (oldZ * oldZ - newZ * newZ) / 2.0 + log(xOld) - log(xNew); +} + + +/*--------------------------------------------------------------------------------- +| +| LogBase2Plus1 +| +| This function is called from ComputeMatrixExponential. +| +---------------------------------------------------------------------------------*/ +int LogBase2Plus1 (MrBFlt x) +{ + int j = 0; + + while (x > 1.0 - 1.0e-07) + { + x /= 2.0; + j++; + } + + return (j); +} + + +/*--------------------------------------------------------------------------------- +| +| LogNormalRandomVariable +| +| Draw a random variable from a lognormal distribution. +| +---------------------------------------------------------------------------------*/ +MrBFlt LogNormalRandomVariable (MrBFlt mean, MrBFlt sd, RandLong *seed) +{ + MrBFlt x; + + x = PointNormal(RandomNumber(seed)); + + x*= sd; + x += mean; + + return exp(x); +} + + +/*--------------------------------------------------------------------------------- +| +| LUBackSubstitution +| +| Back substitute into an LU-decomposed matrix. +| +---------------------------------------------------------------------------------*/ +void LUBackSubstitution (int dim, MrBFlt **a, int *indx, MrBFlt *b) +{ + int i, ip, j, ii = -1; + MrBFlt sum; + + for (i=0; i= 0) + { + for (j=ii; j<=i-1; j++) + sum -= a[i][j] * b[j]; + } + else if (fabs(sum)>ETA) + ii = i; + b[i] = sum; + } + for (i=dim-1; i>=0; i--) + { + sum = b[i]; + for (j=i+1; j big) + big = temp; + } + if (fabs(big)= big) + { + big = dum; + imax = i; + } + } + if (j != imax) + { + for (k=0; k 0.999998 || v <= 0.0) + return (-1.0); + g = LnGamma (v/2.0); + xx = v/2.0; + c = xx - 1.0; + if (v >= -1.24*log(p)) + goto l1; + ch = pow((p*xx*exp(g+xx*aa)), 1.0/xx); + if (ch-e<0) + return (ch); + goto l4; + l1: + if (v > 0.32) + goto l3; + ch = 0.4; + a = log(1.0-p); + l2: + q = ch; + p1 = 1.0+ch*(4.67+ch); + p2 = ch*(6.73+ch*(6.66+ch)); + t = -0.5+(4.67+2.0*ch)/p1 - (6.73+ch*(13.32+3.0*ch))/p2; + ch -= (1.0-exp(a+g+0.5*ch+c*aa)*p2/p1)/t; + if (fabs(q/ch-1.0)-0.01 <= 0.0) + goto l4; + else + goto l2; + l3: + x = PointNormal (p); + p1 = 0.222222/v; + ch = v*pow((x*sqrt(p1)+1.0-p1), 3.0); + if (ch > 2.2*v+6.0) + ch = -2.0*(log(1.0-p)-c*log(0.5*ch)+g); + l4: + q = ch; + p1 = 0.5*ch; + if ((t = IncompleteGamma (p1, xx, g)) < 0.0) + { + MrBayesPrint ("%s Error: Problem in PointChi2", spacer); + return (-1.0); + } + p2 = p-t; + t = p2*exp(xx*aa+g+p1-c*log(ch)); + b = t/ch; + a = 0.5*t-b*c; + s1 = (210.0+a*(140.0+a*(105.0+a*(84.0+a*(70.0+60.0*a))))) / 420.0; + s2 = (420.0+a*(735.0+a*(966.0+a*(1141.0+1278.0*a))))/2520.0; + s3 = (210.0+a*(462.0+a*(707.0+932.0*a)))/2520.0; + s4 = (252.0+a*(672.0+1182.0*a)+c*(294.0+a*(889.0+1740.0*a)))/5040.0; + s5 = (84.0+264.0*a+c*(175.0+606.0*a)) / 2520.0; + s6 = (120.0+c*(346.0+127.0*c)) / 5040.0; + ch += t*(1+0.5*t*s1-b*c*(s1-b*(s2-b*(s3-b*(s4-b*(s5-b*s6)))))); + if (fabs(q/ch-1.0) > e) + goto l4; + return (ch); +} + + +/*--------------------------------------------------------------------------------- +| +| PointNormal +| +| Returns z so That Prob{x 0) + *seed = test; + else + *seed = test + 2147483647; + return ((MrBFlt)(*seed) / (MrBFlt)2147483647); +} + + +/*--------------------------------------------------------------------------------- +| +| RndGamma +| +---------------------------------------------------------------------------------*/ +MrBFlt RndGamma (MrBFlt s, RandLong *seed) +{ + MrBFlt r=0.0; + + if (s <= 0.0) + puts ("Gamma parameter less than zero\n"); + + else if (s < 1.0) + r = RndGamma1 (s, seed); + else if (s > 1.0) + r = RndGamma2 (s, seed); + else /* 0-log() == -1 * log(), but =- looks confusing */ + r -= log(RandomNumber(seed)); + + return (r); +} + + +/*--------------------------------------------------------------------------------- +| +| RndGamma1 +| +---------------------------------------------------------------------------------*/ +MrBFlt RndGamma1 (MrBFlt s, RandLong *seed) +{ + MrBFlt r, x=0.0, tiny=1e-37, w; + static MrBFlt a, p, uf, ss=10.0, d; + + if (fabs(s-ss)>ETA) /* s != ss */ + { + a = 1.0 - s; + p = a / (a + s * exp(-a)); + uf = p * pow(tiny / a, s); + d = a * log(a); + ss = s; + } + for (;;) + { + r = RandomNumber(seed); + if (r > p) + x = a - log((1.0 - r) / (1.0 - p)), w = a * log(x) - d; + else if (r>uf) + x = a * pow(r / p, 1.0 / s), w = x; + else + return (0.0); + r = RandomNumber(seed); + if (1.0 - r <= w && r > 0.0) + if (r*(w + 1.0) >= 1.0 || -log(r) <= w) + continue; + break; + } + + return (x); +} + + +/*--------------------------------------------------------------------------------- +| +| RndGamma2 +| +---------------------------------------------------------------------------------*/ +MrBFlt RndGamma2 (MrBFlt s, RandLong *seed) +{ + MrBFlt r , d, f, g, x; + static MrBFlt b, h, ss=0.0; + + if (fabs(s-ss)>ETA) /* s != ss */ + { + b = s - 1.0; + h = sqrt(3.0 * s - 0.75); + ss = s; + } + for (;;) + { + r = RandomNumber(seed); + g = r - r * r; + f = (r - 0.5) * h / sqrt(g); + x = b + f; + if (x <= 0.0) + continue; + r = RandomNumber(seed); + d = 64 * r * r * g * g * g; + if (d * x < x - 2.0 * f * f || log(d) < 2.0 * (b * log(x / b) - f)) + break; + } + + return (x); +} + + +/*--------------------------------------------------------------------------------- +| +| SetQvalue +| +| The Pade method for calculating the matrix exponential, tMat = e^{qMat * v}, +| has an error, e(p,q), that can be controlled by setting p and q to appropriate +| values. The error is: +| +| e(p,q) = 2^(3-(p+q)) * ((p!*q!) / (p+q)! * (p+q+1)!) +| +| Setting p = q will minimize the error for a given amount of work. This function +| assumes that p = q. The function takes in as a parameter the desired tolerance +| for the accuracy of the matrix exponentiation, and returns qV = p = q, that +| will achieve the tolerance. The Pade approximation method is described in: +| +| Golub, G. H., and C. F. Van Loan. 1996. Matrix Computations, Third Edition. +| The Johns Hopkins University Press, Baltimore, Maryland. +| +| The function is called from TiProbsUsingPadeApprox. +| +---------------------------------------------------------------------------------*/ +int SetQvalue (MrBFlt tol) +{ + int qV; + MrBFlt x; + + x = pow(2.0, 3.0 - (0 + 0)) * Factorial(0) * Factorial (0) / (Factorial(0+0) * Factorial (0+0+1)); + qV = 0; + while (x > tol) + { + qV++; + x = pow(2.0, 3.0 - (qV + qV)) * Factorial(qV) * Factorial (qV) / (Factorial(qV+qV) * Factorial (qV+qV+1)); + } + + return (qV); +} + + +/*--------------------------------------------------------------------------------- +| +| SetToIdentity +| +| Make a dim X dim identity matrix. +| +---------------------------------------------------------------------------------*/ +void SetToIdentity (int dim, MrBFlt **matrix) +{ + int row, col; + + for (row=0; row= 0.0) + t = (1.0 - t) / 2.0; + else + t /= 2.0; + return (t*(a1 >= 0.0 ? 1.0 : -1.0)); + } + a = a1 / a2; + if (a < 0.0) + sign = -1.0; + a = fabs(a); + h = fabs(h); + k = h*a; + if (h > tv2 || a < tv1) + return (0.0); + if (h < tv1) + return (atan(a)/pai2*sign); + if (h < 0.3 && a > 7.0) /* (Boys RJ, 1989) */ + { + x1 = exp(-k*k/2.0)/k; + x2 = (CdfNormal(k)-0.5)*sqrt(pai2); + t = 0.25 - (x1+x2)/pai2*h + ((1.0+2.0/(k*k))*x1+x2)/(6.0*pai2)*h*h*h; + return (MAX(t,0)*sign); + } + t = -h*h / 2.0; + x2 = a; + s = a*a; + if (log(1.0+s)-t*s >= tv3) + { + x1 = a/2; + s /= 4.0; + for (;;) /* truncation point by Newton iteration */ + { + x2 = x1 + (t*s+tv3-log(s+1.0)) / (2.0*x1*(1.0/(s+1.0)-t)); + s = x2*x2; + if (fabs(x2-x1) < tv4) + break; + x1 = x2; + } + } + for (i=0,rt=0; i 1.0001 || sum < 0.9999) + { + MrBayesPrint ("%s Warning: Transition probabilities do not sum to 1.0 (%lf)\n", spacer, sum); + } + } +# endif + + if (fMat != NULL && sMat != NULL) + { + ptr = cijk; + for (i=0; i

    + Startparams Current/Reset Current + Starttree Current/Random/ Current + Parsimony + Nperts 0 + Data Yes/No Yes + Ordertaxa Yes/No No + Append Yes/No No + Autotune Yes/No Yes + Tunefreq 100 + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Outgroup + + This command assigns a taxon to the outgroup. The correct usage is: + + outgroup / + + For example, "outgroup 3" assigns the third taxon in the matrix to be + the outgroup. Similarly, "outgroup Homo_sapiens" assings the taxon + "Homo_sapiens" to be the outgroup (assuming that there is a taxon named + "Homo_sapiens" in the matrix). Only a single taxon can be assigned to + be the outgroup. + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Pairs + + This command is used to specify pairs of nucleotides. For example, your + data may be RNA sequences with a known secondary structure of stems and + loops. Substitutions in nucleotides involved in a Watson-Crick pairing + in stems are not strictly independent; a change in one changes the prob- + ability of a change in the partner. A solution to this problem is to + expand the model around the pair of nucleotides in the stem. This + command allows you to do this. The correct usage is: + + pairs :, :,..., :; + + For example, + + pairs 30:56, 31:55, 32:54, 33:53, 34:52, 35:51, 36:50; + + specifies pairings between nucleotides 30 and 56, 31 and 55, etc. Only + nucleotide data (DNA or RNA) may be paired using this command. Note that + in order for the program to actually implement a "doublet" model + involving a 16 X 16 rate matrix, you must specify that the structure of + the model is 16 X 16 using "lset nucmodel=doublet". + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Partition + + This command allows you to specify a character partition. The format for + this command is + + partition = :, ..., + + For example, "partition by_codon = 3:1st_pos,2nd_pos,3rd_pos" specifies + a partition called "by_codon" which consists of three parts (first, + second, and third codon positions). Here, we are assuming that the sites + in each partition were defined using the charset command. You can specify + a partition without using charset as follows: + + partition by_codon = 3:1 4 6 9 12,2 5 7 10 13,3 6 8 11 14 + + However, we recommend that you use the charsets to define a set of char- + acters and then use these predefined sets when defining the partition. + Also, it makes more sense to define a partition as a line in the mrbayes + block than to issue the command from the command line (then again, you + may be a masochist, and want to do extra work). + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Plot + + This command plots specified parameters in the .p file or one of the .p files + created during an MCMC analysis. An x-y graph of the parameter over the course + of the chain is created. The command can be useful for visually diagnosing + convergence for many of the parameters of the phylogenetic model. The para- + meter to be plotted is specified by the "parameter" option. Several para- + meters can be plotted at once by using the "match" option, which has a + default value of "perfect". For example, if you were to set "parameter = pi" + and "match = consistentwith", then all of the state frequency parameters + would be plotted. You can also set "match=all", in which case all of the + parameters are plotted. + + Note that the "Sump" command provides a different set of convergence diag- + nostics tools that you may also want to explore. Unlike "Plot", "Sump" can + compare two or more parameter samples and will calculate convergence diagnos- + tics as wel as parameter summaries for the pooled sample. + + Options: + + Relburnin -- If this option is set to 'Yes', then a proportion of the + samples will be discarded as burnin when creating the plot. + The proportion to be discarded is set with Burninfrac (see + Burninfrac below). When the Relburnin option is set to 'No', + then a specific number of samples is discarded instead. This + number is set by Burnin (see below). Note that the burnin + setting is shared across the 'comparetree', 'sump' and 'sumt' + commands. + Burnin -- Determines the number of samples (not generations) that will + be discarded when summary statistics are calculated. The + value of this option is only relevant when Relburnin is set + to 'No'. + Burninfrac -- Determines the fraction of samples that will be discarded + when creating a plot. The value of this parameter is only + relevant when Relburnin is set to 'Yes'. Example: A value of + this option of 0.25 means that 25% of the samples will be + discarded. + Filename -- The name of the file to plot. + Parameter -- Specification of parameters to be plotted. See above for + details. + Match -- Specifies how to match parameter names to the Parameter + specification. See above for details. + + Current settings: + + Parameter Options Current Setting + ------------------------------------------------------------ + Relburnin Yes/No Yes + Burnin 0 + Burninfrac 0.25 + Filename temp.p + Parameter lnL + Match Perfect/Consistentwith/All Perfect + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Prset + + This command sets the priors for the phylogenetic model. Remember that + in a Bayesian analysis, you must specify a prior probability distribution + for the parameters of the likelihood model. The prior distribution rep- + resents your prior beliefs about the parameter before observation of the + data. This command allows you to tailor your prior assumptions to a large + extent. + + Options: + + Applyto -- This option allows you to apply the prset commands to + specific partitions. This command should be the first + in the list of commands specified in prset. Moreover, it + only makes sense to be using this command if the data + have been partitioned. A default partition is set on + execution of a matrix. If the data are homogeneous + (i.e., all of the same data type), then this partition + will not subdivide the characters. Up to 30 other part- + itions can be defined, and you can switch among them using + "set partition=". Now, you may want to + specify different priors to different partitions of the + data. Applyto allows you to do this. For example, say + you have partitioned the data by codon position, and + you want to fix the statefreqs to equal for the first two + partitions but apply a flat Dirichlet prior to the state- + freqs of the last. This could be implemented in two uses of + prset: + + prset applyto=(1,2) statefreqs=fixed(equal) + + prset applyto=(3) statefreqs=dirichlet(1,1,1,1) + + The first applies the parameters after "applyto" + to the first and second partitions. The second prset + applies a flat Dirichlet to the third partition. You can + also use applyto=(all), which attempts to apply the para- + meter settings to all of the data partitions. Importantly, + if the option is not consistent with the data in the part- + ition, the program will not apply the prset option to + that partition. + Tratiopr -- This parameter sets the prior for the transition/trans- + version rate ratio (tratio). The options are: + + prset tratiopr = beta(, ) + prset tratiopr = fixed() + + The program assumes that the transition and transversion + rates are independent gamma-distributed random variables + with the same scale parameter when beta is selected. If you + want a diffuse prior that puts equal emphasis on transition/ + transversion rate ratios above 1.0 and below 1.0, then use a + flat Beta, beta(1,1), which is the default. If you wish to + concentrate this distribution more in the equal-rates region, + then use a prior of the type beta(x,x), where the magnitude + of x determines how much the prior is concentrated in the + equal rates region. For instance, a beta(20,20) puts more + probability on rate ratios close to 1.0 than a beta(1,1). If + you think it is likely that the transition/transversion rate + ratio is 2.0, you can use a prior of the type beta(2x,x), + where x determines how strongly the prior is concentrated on + tratio values near 2.0. For instance, a beta(2,1) is much + more diffuse than a beta(80,40) but both have the expected + tratio 2.0 in the absence of data. The parameters of the + Beta can be interpreted as counts: if you have observed x + transitions and y transversions, then a beta(x+1,y+1) is a + good representation of this information. The fixed option + allows you to fix the tratio to a particular value. + Revmatpr -- This parameter sets the prior for the substitution rates + of the GTR model for nucleotide data. The options are: + + prset revmatpr = dirichlet(,,...,) + prset revmatpr = fixed(,,...,) + + The program assumes that the six substitution rates + are independent gamma-distributed random variables with the + same scale parameter when dirichlet is selected. The six + numbers in brackets each corresponds to a particular substi- + tution type. Together, they determine the shape of the prior. + The six rates are in the order A<->C, A<->G, A<->T, C<->G, + C<->T, and G<->T. If you want an uninformative prior you can + use dirichlet(1,1,1,1,1,1), also referred to as a 'flat' + Dirichlet. This is the default setting. If you wish a prior + where the C<->T rate is 5 times and the A<->G rate 2 times + higher, on average, than the transversion rates, which are + all the same, then you should use a prior of the form + dirichlet(x,2x,x,x,5x,x), where x determines how much the + prior is focused on these particular rates. For more info, + see tratiopr. The fixed option allows you to fix the substi- + tution rates to particular values. + Revratepr -- This parameter sets the prior for each substitution rate of + the GTR model subspace when 'nst' is set to 'mixed' (see the + 'lset' command). The only option is + + prset revratepr = symdir() + + which will associate each independent rate in the rate matrix + with a modified symmetric Dirichlet prior, where a singleton + rate has the specified alpha parameter, while a rate that + applies to n pairwise substitution types has an alpha that is + n times the specified number. The higher the specified num- + ber, the more focused the prior will be on equal rates. The + default value is 1, which gives an effect similar to a flat + Dirichlet. + Aamodelpr -- This parameter sets the rate matrix for amino acid data. + You can either fix the model by specifying aamodelpr=fixed + (), where is 'poisson' (a glorified + Jukes-Cantor model), 'jones', 'dayhoff', 'mtrev', 'mtmam', + 'wag', 'rtrev', 'cprev', 'vt', 'blosum', 'lg', 'equalin' + (a glorified Felsenstein 1981 model), or 'gtr'. You can also + average over the first ten models by specifying aamodelpr= + mixed. If you do so, the Markov chain will sample each model + according to its probability. The sampled model is reported + as an index: poisson(0), jones(1), dayhoff(2), mtrev(3), + mtmam(4), wag(5), rtrev(6), cprev(7), vt(8), or blosum(9). + The 'Sump' command summarizes the MCMC samples and calculates + the posterior probability estimate for each of these models. + Aarevmatpr -- This parameter sets the prior for the substitution rates + of the GTR model for amino acid data. The options are: + + prset aarevmatpr = dirichlet(,,...,) + prset aarevmatpr = fixed(,,...,) + + The options are the same as those for 'Revmatpr' except that + they are defined over the 190 rates of the time-reversible + GTR model for amino acids instead of over the 6 rates of the + GTR model for nucleotides. The rates are in the order A<->R, + A<->N, etc to Y<->V. In other words, amino acids are listed + in alphabetic order based on their full name. The first amino + acid (Alanine) is then combined in turn with all amino acids + following it in the list, starting with amino acid 2 (Argi- + nine) and finishing with amino acid 20 (Valine). The second + amino acid (Arginine) is then combined in turn with all amino + acids following it, starting with amino acid 3 (Asparagine) + and finishing with amino acid 20 (Valine), and so on. + Omegapr -- This parameter specifies the prior on the nonsynonymous/ + synonymous rate ratio. The options are: + + prset omegapr = dirichlet(,) + prset omegapr = fixed() + + This parameter is only in effect if the nucleotide sub- + stitution model is set to codon using the lset command + (lset nucmodel=codon). Moreover, it only applies to the + case when there is no variation in omega across sites (i.e., + "lset omegavar=equal"). + Ny98omega1pr -- This parameter specifies the prior on the nonsynonymous/ + synonymous rate ratio for sites under purifying selection. + The options are: + + prset Ny98omega1pr = beta(,) + prset Ny98omega1pr = fixed() + + This parameter is only in effect if the nucleotide sub- + stitution model is set to codon using the lset command + (lset nucmodel=codon). Moreover, it only applies to the + case where omega varies across sites using the model of + Nielsen and Yang (1998) (i.e., "lset omegavar=ny98"). If + fixing the parameter, you must specify a number between + 0 and 1. + Ny98omega3pr -- This parameter specifies the prior on the nonsynonymous/ + synonymous rate ratio for positively selected sites. The + options are: + + prset Ny98omega3pr = uniform(,) + prset Ny98omega3pr = exponential() + prset Ny98omega3pr = fixed() + + This parameter is only in effect if the nucleotide sub- + stitution model is set to codon using the lset command + (lset nucmodel=codon). Moreover, it only applies to the + case where omega varies across sites according to the + NY98 model. Note that if the NY98 model is specified + that this parameter must be greater than 1, so you should + not specify a uniform(0,10) prior, for example. + M3omegapr -- This parameter specifies the prior on the nonsynonymous/ + synonymous rate ratios for all three classes of sites for + the M3 model. The options are: + + prset M3omegapr = exponential + prset M3omegapr = fixed(,,) + + This parameter is only in effect if the nucleotide sub- + stitution model is set to codon using the lset command + (lset nucmodel=codon). Moreover, it only applies to the + case where omega varies across sites using the M3 model of + Yang et al. (2000) (i.e., "lset omegavar=M3"). Under the + exponential prior, the four rates (dN1, dN2, dN3, and dS) + are all considered to be independent draws from the same + exponential distribution (the parameter of the exponential + does not matter, and so you don't need to specify it). The + rates dN1, dN2, and dN3 are taken to be the order statistics + with dN1 < dN2 < dN3. These three rates are all scaled to + the same synonymous rate, dS. The other option is to simply + fix the three rate ratios to some values. + Codoncatfreqs -- This parameter specifies the prior on frequencies of sites + under purifying, neutral, and positive selection. The + options are: + + prset codoncatfreqs = dirichlet(,,) + prset codoncatfreqs = fixed(,,) + + This parameter is only in effect if the nucleotide sub- + stitution model is set to codon using the lset command + (lset nucmodel=codon). Moreover, it only applies to the + case where omega varies across sites using the models of + Nielsen and Yang (1998) (i.e., "lset omegavar=ny98") + or Yang et al. (2000) (i.e., "lset omegavar=M3") + Note that the sum of the three frequencies must be 1. + Statefreqpr -- This parameter specifies the prior on the state freq- + uencies. The options are: + + prset statefreqpr = dirichlet() + prset statefreqpr = dirichlet(,...,) + prset statefreqpr = fixed(equal) + prset statefreqpr = fixed(empirical) + prset statefreqpr = fixed(,...,) + + For the dirichlet, you can specify either a single number + or as many numbers as there are states. If you specify a + single number, then the prior has all states equally + probable with a variance related to the single parameter + passed in. + Shapepr -- This parameter specifies the prior for the gamma/lnorm shape + parameter for among-site rate variation. The options are: + + prset shapepr = uniform(,) + prset shapepr = exponential() + prset shapepr = fixed() + + Pinvarpr -- This parameter specifies the prior for the proportion of + invariable sites. The options are: + + prset pinvarpr = uniform(,) + prset pinvarpr = fixed() + + Note that the valid range for the parameter is between 0 + and 1. Hence, "prset pinvarpr=uniform(0,0.8)" is valid + while "prset pinvarpr=uniform(0,10)" is not. The def- + ault setting is "prset pinvarpr=uniform(0,1)". + Ratecorrpr -- This parameter specifies the prior for the autocorrelation + parameter of the autocorrelated gamma distribution for + among-site rate variation. The options are: + + prset ratecorrpr = uniform(,) + prset ratecorrpr = fixed() + + Note that the valid range for the parameter is between -1 + and 1. Hence, "prset ratecorrpr=uniform(-1,1)" is valid + while "prset ratecorrpr=uniform(-11,10)" is not. The + default setting is "prset ratecorrpr=uniform(-1,1)". + Covswitchpr -- This option sets the prior for the covarion switching + rates. The options are: + + prset covswitchpr = uniform(,) + prset covswitchpr = exponential() + prset covswitchpr = fixed(,) + + The covarion model has two rates: a rate from on to off + and a rate from off to on. The rates are assumed to have + independent priors that individually are either uniformly + or exponentially distributed. The other option is to + fix the switching rates, in which case you must specify + both rates. (The first number is off->on and the second + is on->off). + Symdirihyperpr - This option sets the prior for the stationary frequencies + of the states for morphological (standard) data. There can + be as many as 10 states for standard data. However, the + labelling of the states is somewhat arbitrary. For example, + the state "1" for different characters does not have the + same meaning. This is not true for DNA characters, for ex- + ample, where a "G" has the same meaning across characters. + The fact that the labelling of morphological characters is + arbitrary makes it difficult to allow unequal character- + state frequencies. MrBayes gets around this problem by + assuming that the states have a symmetric Dirichlet prior + (i.e. all Dirichlet parameters are equal). The variation in + the Dirichlet can be controlled by this parameter. + Symdirihyperpr specifies the distribution on the parameter + of the symmetric Dirichlet. The valid options are: + + prset Symdirihyperpr = uniform(,) + prset Symdirihyperpr = exponential() + prset Symdirihyperpr = fixed() + prset Symdirihyperpr = fixed(infinity) + + If "fixed(infinity)" is chosen, the Dirichlet prior is + fixed such that all character states have equal frequency. + Topologypr -- This parameter specifies the prior probabilities of + phylogenies. The options are: + + prset topologypr = uniform + prset topologypr = speciestree + prset topologypr = constraints() + prset topologypr = fixed() + + If the prior is selected to be "uniform", the default, + then all possible trees are considered a priori equally + probable. The 'speciestree' option is used when the topology + is constrained to fold inside a species tree together with + other (gene) trees. The constraints option allows you to + specify complicated prior probabilities on trees (constraints + are discussed more fully in "help constraint"). Note that + you must specify a list of constraints that you wish to be + obeyed. The list can be either the constraints' name or + number. Finally, you can fix the topology to that of a user + tree defined in a trees block. Branch lengths will still be + sampled as usual on the fixed topology. + Brlenspr -- This parameter specifies the prior probability dist- + ribution on branch lengths. The options are specified using: + + prset brlenspr = + + where is one of + + unconstrained:uniform(,) + unconstrained:exponential() + unconstrained:twoexp(,) + unconstrained:gammadir(,,,) + unconstrained:invgamdir(,,,) + clock:uniform + clock:birthdeath + clock:coalescence + clock:fossilization + clock:speciestree + fixed() + + Trees with unconstrained branch lengths are unrooted + whereas clock-constrained trees are rooted. The option + after the colon specifies the details of the probability + density of branch lengths. If you choose a birth-death + or coalescence prior, you may want to modify the details + of the parameters of those processes (speciation rate, + extinction rate and sample probability for the birth-death + prior; population size and clock rate parameter for the + coalescence prior). When gene trees are constrained to fold + inside species trees, the appropriate branch length prior is + 'clock:speciestree'. Under this model, it is possible to + control whether the population size is constant or variable + across the species tree using the 'popvarpr' setting. + Branch lengths can also be fixed but only if the topology is + fixed. + + For unconstrained branch lengths, MrBayes offers five alter- + native prior distributions. The first two are the simple + 'uniform' and 'exponential' priors. The 'uniform' prior takes + two parameters, the lower and upper bound of the uniform dis- + tribution, respectively. The 'exponential' prior takes a sin- + gle parameter, the rate of the exponential distribution. The + mean of the exponential distribution is the inverse of the + rate. For instance, an 'exp(10)' distribution has an expected + mean of 0.1. + MrBayes also offers three more complex prior distributions + on unconstrained branch lengths. The two-exponential prior + (Yang and Rannala 2005; Yang 2007) uses two different expo- + nential distributions, one for internal and one for external + branch lengths. The two-exponential prior is invoked using + 'twoexp(,)', where '' is a number specifying + the rate of the exponential distribution on internal branch + lengths, while '' is the rate for external branch + lengths. The prior mean for internal branch lengths is then + 1/r_I, and for external ones is 1/r_E. For instance, to set + prior mean of internal branch lengths to 0.01, and external + ones to 0.1, use 'twoexp(100,10)'. + The setting 'twoexp(10,10)' is equivalent to 'exp(10)'. + The compound Dirichlet priors 'gammadir(,,,)' + and 'invgamdir(,,,)' specify a fairly diffuse + prior on tree length 'T', and then partition the tree length + into branch lengths according to a Dirichlet distribution + (Rannala et al. 2012). If 'T' is considered drawn from a + gamma distribution with parameters a_T and b_T, and with mean + a_T/b_T, we recommend setting a_T = 1; if it is instead con- + sidered drawn from an inverse gamma (invgamma) distribution + with parameters a_T and b_T, and with mean b_T/(a_T -1), then + we reccommend setting a_T = 3. In the latter case, b_T should + be chosen so that the prior mean of T is reasonable for the + data. In the former case, setting b_T = 0.1 (corresponding to + a mean tree length of 10) should be appropriate for a wide + range of tree lengths (at least in the interval 1 to 100). + The concentration parameter a of the Dirichlet distribution + is inversely related to the variance of the branch lengths, + while c is the ratio of the prior means for the internal and + external branch lengths. The default setting, a = c = 1, + specifies a uniform Dirichlet distribution of branch lengths + given the tree length. For instance, 'gammadir(1,0.1,1,1)' + specifies a compound Dirichlet prior on branch lengths, where + tree length is associated with a gamma distribution with mean + 10, and branch length proportions are associated with a uni- + form Dirichlet distribution (default). + + For clock trees with calibrated external nodes (fossils), + MrBayes also offers the fossilized birth-death prior: + 'clock:fossilization'. + If 'SampleStrat' is set to 'fossiltip', it assumes that upon + sampling the lineage is dead and won't produce descendants, + meaning each fossil sample is a tip. If 'SampleStrat' is set + to 'random' (default), fossils are sampled serially along the + birth-death tree (Stadler 2010), so they can be tips or an- + cestors. See 'Speciationpr', 'Extinctionpr', 'SampleStrat', + 'Fossilizationpr' for more information. + + Treeagepr -- This parameter specifies the prior probability distribution + on the tree age when a uniform or fossilization prior is used + on the branch lengths of a clock tree. + + The options are: + + prset treeagepr = + + where is one of + + fixed() + uniform(,) + offsetexponential(,) + truncatednormal(,,) + lognormal(,) + offsetlognormal(,,) + gamma(,) + offsetgamma(,,) + + These are the same options used for the 'Calibrate' command. + Note that, unlike elsewhere in MrMayes, we always use the + mean and standard deviation of the resulting age distribution + rather than the standard parameterization, if different. This + is to facilitate for the users who want to focus on the in- + formation conveyed about the age. For those who wish to use + the standard parameterization, there are simple conversions + between the two. See the 'Calibrate' command for more infor- + mation. + + The tree age is simply the age of the most recent common + ancestor of the tree. If the clock rate is fixed to 1.0, + which is the default, the tree age is equivalent to the + expected number of substitutions from the root to the tip of + the tree, that is, tree height. The tree age prior ensures + that the joint probability for the uniform prior (or fossil- + ization prior) model of branch lengths on a clock tree is + proper. The default setting is 'gamma(1,1)'. If the root node + in the tree is calibrated, the root calibration replaces the + tree age prior. + Speciationpr -- This parameter sets the prior on the net speciation rate (net + diversification), that is, (lambda - mu) in the birth-death + model and the general case of fossilized birth-death model. + Or, (lambda - mu - psi) in the special case of f-b-d model + (fossiltip). Values of this parameter are > 0. Prior options: + + prset speciationpr = uniform(,) + prset speciationpr = exponential() + prset speciationpr = fixed() + + This parameter is only relevant if the (fossil) birth-death + process is selected as the prior on branch lengths. + Extinctionpr -- This parameter sets the prior on the relative extinction rate + (turnover), that is, (mu / lambda) in the birth-death model + and the general case of fossilized birth-death model. + Or, (mu + psi) / lambda in the special case of f-b-d model + (fossiltip). Values of this parameter are in range (0,1). + + prset extinctionpr = beta(,) + prset extinctionpr = fixed() + + This parameter is only relevant if the (fossil) birth-death + process is selected as the prior on branch lengths. + Fossilizationpr -- This parameter sets the prior on the relative fossilization + rate (sampling proportion), psi/(mu+psi), in the fossilized + b-d model. Values of this parameter are in range (0,1). + If SampleStrat is used to divide up time intervals, it sets + the prior for the fossilization parameter in each interval. + + prset fossilizationpr = beta(,) + prset fossilizationpr = fixed() + + This parameter is only relevant if the fossilized birth-death + process is selected as the prior on branch lengths. + SampleStrat -- This parameter sets the strategy under which species were + sampled in the analysis. For the birth-death prior, 'birth- + death' (Hohna et al. 2011), three strategies: 'random', + 'diversity' and 'cluster' sampling can be used for extant + taxa. No extinct sample (fossil) is allowed in this prior. + For data with extant and extinct samples, use 'prset brlenspr + =clock:fossilization'. (Stadler 2010; Zhang et al. 2015) + For the fossilized birth-death prior, 'fossiltip' assumes + extant taxa are sampled randomly, and extinct taxa (fossils) + are sampled with constant rate and upon sampling the lineage + is dead and won't produce any descendant. So fossils are all + at tips. Except 'fossiltip', the following strategies allow + fossils also being ancestors of other samples. + 'random' (default) assumes extant taxa are sampled randomly + with prob rho, while fossils are sampled on the birth-death + tree with piecewise constant rates, psi_i (i = 1,...,s+1). + 'diversity' assumes extant taxa are sampled to maximize + diversity, while fossils are sampled randomly. + Time is divided by slice samping events in the past, each + at time with probability (s >= 0). If rho_i = 0 + the slice is only used to divide up time intervals not for + sampling of fossils. Extant taxa are sampled with prob. + (proportion) rho (set in sampleprob). + + prset samplestrat = random + prset samplestrat = diversity + prset samplestrat = cluster + prset samplestrat = fossiltip + prset samplestrat = random :..., ,... + prset samplestrat = diversity :..., ,... + + Sampleprob -- This parameter sets the fraction of extant species that are + sampled in the analysis. This is used with the birth-death + prior on trees (Yang and Rannala 1997; Stadler 2009; Hohna + et al. 2011), and the fossilized birth-death prior (Stadler + 2010, Zhang et al. 2015). + + prset sampleprob = + + Popsizepr -- This parameter sets the prior on the population size compo- + nent of the coalescent parameter. The options are: + + prset popsizepr = uniform(,) + prset popsizepr = lognormal(,) + prset popsizepr = normal(,) + prset popsizepr = gamma(,) + prset popsizepr = fixed() + + This parameter is only relevant if the coalescence process is + selected as the prior on branch lengths. Note that the set- + ting of 'ploidy' in 'lset' is important for how this para- + meter is interpreted. + Popvarpr -- In a gene tree - species tree model, this parameter deter- + mines whether the population size is the same for the entire + species tree ('popvarpr = equal', the default), or varies + across branches of the species tree ('popvarpr=variable'). + Nodeagepr -- This parameter specifies the assumptions concerning the age + of the terminal and interior nodes in the tree. The default + model ('nodeagepr = unconstrained') assumes that all terminal + nodes are of the same age while the age of interior nodes is + unconstrained. The alternative ('nodeagepr = calibrated') + option derives a prior probability distribution on terminal + and interior node ages from the calibration settings (see + the 'calibrate' command). The 'nodeagepr' parameter is only + relevant for clock trees. + Clockratepr -- This parameter specifies the prior assumptions concerning the + base substitution rate of the tree, measured in expected num- + ber of substitutions per site per time unit. The default set- + ting is 'Fixed(1.0)', which effectively means that the time + unit is the number of expected substitutions per site. + If you do not have any age calibrations in the tree, you can + still calibrate the tree using 'Clockratepr'. For instance, + if you know that your sequence data evolve at a rate of 0.20 + substitutions per million years, you might calibrate the tree + by fixing the substitution rate to 0.20 using + + prset clockratepr = fixed(0.20) + + after which the tree will be calibrated using millions of + years as the unit. + + You can also assign a prior probability distribution to the + substitution rate, accommodating the uncertainty of it. + When you calibrate the nodes, you should properly set this + prior to match the time unit of the calibrations. + You can choose among normal, lognormal, exponential and gamma + distributions for this purpose. For instance, to assign a + normal distribution truncated at 0, so that only positive + values are allowed, and with mean 0.20 and standard deviation + of 0.02, you would use + + prset clockratepr = normal(0.20,0.02) + + The lognormal distribution is parameterized in terms of the + mean and standard deviation on the log scale (natural logs). + For instance, + + prset clockratepr = lognormal(-1.61,0.10) + + specifies a lognormal distribution with a mean of log values + of -1.61 and a standard deviation of log values of 0.10. In + such a case, the mean value of the lognormal distribution is + equal to e^(-1.61 + 0.10^2/2) = 0.20. + + Note that the 'Clockratepr' parameter has no effect on non- + clock trees. + Clockvarpr -- This parameter allows you to specify the type of clock you + are assuming. The default is 'strict', which corresponds to + the standard clock model where the evolutionary rate is + constant throughout the tree. For relaxed clock models, you + can use 'cpp', 'tk02', 'igr'. ('mixed' is not working) + 'cpp' invokes a relaxed clock model where the rate evolves + according to a Compound Poisson Process (CPP) (Huelsenbeck + et al., 2000). + 'tk02' invokes the Brownian Motion model described by Thorne + and Kishino (2002). [autocorrelated lognormal distributions] + 'igr' invokes the Independent Gamma Rate (IGR) model where + each branch has an independent rate drawn from a gamma + distribution (LePage et al., 2007). + Each of the relaxed clock models has additional parameters + with priors. For the CPP model, it is 'cppratepr' and + 'cppmultdevpr'; for the TK02 model, it is 'tk02varpr'; for + the IGR model, it is 'igrvarpr'. + The 'clockvarpr' parameter is only relevant for clock trees. + + For backward compatibility, 'bm' is allowed as a synonym of + 'tk02', and 'ibr' as a synonym of 'igr'. + Cppratepr -- This parameter allows you to specify a prior probability + distribution on the rate of the Poisson process generating + changes in the evolutionary rate in the CPP relaxed clock + model. You can either fix the rate or associate it with an + exponential prior using + + prset cppratepr = fixed() + prset cppratepr = exponential() + + For instance, if you fix the rate to 2, then on a branch + with the length equual to one expresed in terms of average + expected number of substitution per site, you expect to see, + on average, two rate-modifying events. + If you put an exponential(0.1) on the rate, you will be + estimating the rate against a prior probability distribution + where the expected rate is 10 (= 1/0.1). + Cppmultdevpr -- This parameter allows you to specify the standard deviation + of the log-normal distribution from which the rate multi- + pliers of the CPP relaxed clock model are drawn. The standard + deviation is given on the log scale. The default value of 1.0 + thus corresponds to rate multipliers varying from 0.37 (1/e) + to 2.7 (e) when they are +/- one standard deviation from the + expected mean. The expected mean of the logarithm of the mul- + pliers is fixed to 0, ensuring that the expected mean rate is + 1.0. You can change the default value by using + + prset cppmultdevpr = fixed() + + where is the standard deviation on the log scale. + TK02varpr -- This parameter allows you to specify the prior probability + distribution for the variance of the rate multiplier in the + Thorne-Kishino ('Brownian motion') relaxed clock model. + Specifically, the parameter specifies the rate at which the + variance increases with respect to the base rate of the + clock. If you have a branch of a length corresponding to 0.4 + expected changes per site according to the base rate of the + clock, and the tk02var parameter has a value of 2.0, then the + rate multiplier at the end of the branch will be drawn from a + lognormal distribution with a variance of 0.4*2.0 (on the + linear, not the logarithm scale). The mean is the same as the + rate multiplier at the start of the branch (again on the + linear scale). + + You can set the parameter to a fixed value, or specify that + it is drawn from an exponential or uniform distribution: + + prset tk02varpr = fixed() + prset tk02varpr = exponential() + prset tk02varpr = uniform(,) + + For backward compatibility, 'bmvarpr' is allowed as a synonym + of 'tko2varpr'. + Igrvarpr -- This parameter allows you to specify a prior on the variance + of the gamma distribution from which the branch lengths are + drawn in the independent branch rate (IGR) relaxed clock + model. Specifically, the parameter specifies the rate at + which the variance increases with respect to the base rate of + the clock. If you have a branch of a length corresponding to + 0.4 expected changes per site according to the base rate of + the clock, and the igrvar parameter has a value of 2.0, then + the effective branch length will be drawn from a distribution + with a variance of 0.4*2.0. + + You can set the parameter to a fixed value, or specify that + it is drawn from an exponential or uniform distribution: + + prset igrvarpr = fixed() + prset igrvarpr = exponential() + prset igrvarpr = uniform(,) + + For backward compatibility, 'ibrvarpr' is allowed as a syn- + onym of 'igrvarpr'. + Ratepr -- This parameter allows you to specify the site specific rates + model or any other model that allows different partitions to + evolve at different rates. First, you must have defined a + partition of the characters. For example, you may define a + partition that divides the characters by codon position, if + you have DNA data. You can also divide your data using a + partition that separates different genes from each other. + The next step is to make the desired partition the active one + using the set command. For example, if your partition is + called "by_codon", then you make that the active partition + using "set partition=by_codon". Now that you have defined + and activated a partition, you can specify the rate multi- + pliers for the various partitions. The options are: + + prset ratepr = fixed + prset ratepr = variable + prset ratepr = dirichlet(,,...,) + + If you specify "fixed", then the rate multiplier for + that partition is set to 1 (i.e., the rate is fixed to + the average rate across partitions). On the other hand, + if you specify "variable", then the rate is allowed to + vary across partitions subject to the constraint that the + average rate of substitution across the partitions is 1. + You must specify a variable rate prior for at least two + partitions, otherwise the option is not activated when + calculating likelihoods. The variable option automatically + associates the partition rates with a dirichlet(1,...,1) + prior. The dirichlet option is an alternative way of setting + a partition rate to be variable, and also gives accurate + control of the shape of the prior. The parameters of the + Dirichlet are listed in the order of the partitions that the + ratepr is applied to. For instance, "prset applyto=(1,3,4) + ratepr = dirichlet(10,40,15)" would set the Dirichlet para- + meter 10 to partition 1, 40 to partition 3, and 15 to parti- + tion 4. The Dirichlet distribution is applied to the weighted + rates; that is, it weights the partition rates according to + the number of included characters in each partition. + Generatepr -- This parameter is similar to 'Ratepr' but applies to gene + trees in the multispecies coalescent, whereas 'Ratepr' app- + lies to partitions within genes. + + Default model settings: + + Parameter Options Current Setting + ------------------------------------------------------------------ + Tratiopr Beta/Fixed Beta(1.0,1.0) + Revmatpr Dirichlet/Fixed Dirichlet(1.0,1.0,1.0,1.0,1.0,1.0) + Aamodelpr Fixed/Mixed Fixed(Poisson) + Aarevmatpr Dirichlet/Fixed Dirichlet(1.0,1.0,...) + Omegapr Dirichlet/Fixed Dirichlet(1.0,1.0) + Ny98omega1pr Beta/Fixed Beta(1.0,1.0) + Ny98omega3pr Uniform/Exponential/Fixed Exponential(1.0) + M3omegapr Exponential/Fixed Exponential + Codoncatfreqs Dirichlet/Fixed Dirichlet(1.0,1.0,1.0) + Statefreqpr Dirichlet/Fixed Dirichlet(1.0,1.0,1.0,1.0) + Shapepr Uniform/Exponential/Fixed Exponential(1.0) + Ratecorrpr Uniform/Fixed Uniform(-1.0,1.0) + Pinvarpr Uniform/Fixed Uniform(0.0,1.0) + Covswitchpr Uniform/Exponential/Fixed Uniform(0.0,100.0) + Symdirihyperpr Uniform/Exponential/Fixed Fixed(Infinity) + Topologypr Uniform/Constraints/Fixed/ Uniform + Speciestree + Brlenspr Unconstrained/Clock/Fixed Unconstrained:GammaDir(1.0,0.100,1.0,1.0) + Treeagepr Gamma/Uniform/Fixed/ Gamma(1.00,1.00) + Truncatednormal/Lognormal/ + Offsetlognormal/Offsetgamma/ + Offsetexponential + Speciationpr Uniform/Exponential/Fixed Exponential(10.0) + Extinctionpr Beta/Fixed Beta(1.0,1.0) + Fossilizationpr Beta/Fixed Beta(1.0,1.0) + SampleStrat Random/Diversity/Cluster/ Random + FossilTip + Sampleprob 1.00000000 + Popsizepr Lognormal/Gamma/Uniform/ Gamma(1.0,10.0) + Normal/Fixed + Popvarpr Equal/Variable Equal + Nodeagepr Unconstrained/Calibrated Unconstrained + Clockratepr Fixed/Normal/Lognormal/ Fixed(1.00) + Exponential/Gamma + Clockvarpr Strict/Cpp/TK02/Igr/Mixed Strict + Cppratepr Fixed/Exponential Exponential(0.10) + Cppmultdevpr Fixed Fixed(0.40) + TK02varpr Fixed/Exponential/Uniform Exponential(1.00) + Igrvarpr Fixed/Exponential/Uniform Exponential(10.00) + Ratepr Fixed/Variable=Dirichlet Fixed + Generatepr Fixed/Variable=Dirichlet Fixed + ------------------------------------------------------------------ + + --------------------------------------------------------------------------- + Propset + + This command allows the user to change the details of the MCMC samplers + (moves) that update the state of the chain. The useage is: + + propset $= + + Assume we have a topology parameter called 'Tau{all}', which is sampled by + the move 'ExtTBR(Tau{all})' (note that the parameter name is included in the + move name). This move has three tuning parameters: (1) 'prob', the relative + proposal probability (a weight defining its probability relative to other + moves); (2) 'p_ext', the extension probability; and (3) 'lambda', the tuning + parameter of the branch length multiplier. A list of the tuning parameters is + available by using 'Showmoves' (see below). To change the relative proposal + probability to 20 and the extension probability to 0.7, use: + + propset etbr(tau{all})$prob=20 etbr(tau{all})$p_ext=0.7 + + This change would apply to all chains in all runs. It is also possible to set + the tuning parameters of individual runs and chains using the format: + + propset $(,)= + + where and are the index numbers of the run and chain for which + you want to change the value. If you leave out the index of the run, the + change will apply to all runs; if you leave out the index of the chain, the + change will similarly apply to all chains. To switch off the exttbr(tau{all}) + move in chain 2 of all runs, use: + + propset etbr(tau{all})$prob(,2)=0 + + It is important to note that all moves are not available until the model has + been completely defined. Any change to the model will cause all proposal + tuning parameters to return to their default values. To see a list of all the + moves that are currently switched on for the model, use 'showmoves'. You can + also see other available moves by using 'showmoves allavailable=yes'. A list + of the moves for each parameter in the model is available by using the command + 'Showparams'. If you change proposal probabilities, make sure that all + parameters that are not fixed in your model have at least one move switched + on. + + One word of warning: You should be extremely careful when modifying any + of the chain parameters using 'propset'. It is quite possible to completely + wreck any hope of achieving convergence by inappropriately setting the + tuning parameters. In general, you want to set move tuning parameters such + that the acceptance rate of the move is intermediate (we suggest targeting + the range 10% to 70% acceptance, if possible). If the acceptance rate is + outside of this range, the MCMC chain will probably not sample that parameter + very efficiently. The acceptance rates for all moves in the cold chain(s) are + summarized at the end of each run in the screen output. The acceptance rates + (potentially for all chains, cold and heated) are also printed to the .mcmc + file if Mcmc convergence diagnostics are turned on (using 'Mcmc' or 'Mcmcp'). + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Quit + + This command quits the program. The correct usage is: + + quit + + It is a very easy command to use properly. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Report + + This command allows you to control how the posterior distribution is + reported. For rate parameters, it allows you to choose among several popular + parameterizations. The report command also allows you to request printing of + some model aspects that are usually not reported. For instance, if a node is + constrained in the analysis, MrBayes can print the probabilities of the + ancestral states at that node. Similarly, if there is rate variation in the + model, MrBayes can print the inferred site rates, and if there is omega varia- + tion, MrBayes can print the inferred omega (positive selection) values for + each codon. In a complex model with several partitions, each partition is + controlled separately using the same 'Applyto' mechanism as in the 'Lset' and + 'Prset' commands. + + Options: + + Applyto -- This option allows you to apply the report commands to specific + partitions. This command should be the first in the list of + commands specified in 'report'. + For example, + + report applyto=(1,2) tratio=ratio + + report applyto=(3) tratio=dirichlet + + would result in the transition and transversion rates of the + first and second partitions in the model being reported as a + ratio and the transition and transversion rates of the third + partition being reported as proportions of the rate sum (the + Dirichlet parameterization). + Tratio -- This specifies the report format for the transition and trans- + version rates of a nucleotide substituion model with nst=2. + If 'ratio' is selected, the rates will be reported as a ratio + (transition rate/transversion rate). If 'dirichlet' is selected, + the transition and transversion rates will instead be reported + as proportions of the rate sum. For example, if the transition + rate is three times the transversion rate and 'ratio' is selec- + ted, this will reported as a single value, '3.0'. If 'dirichlet' + is selected instead, the same rates will be reported using two + values, '0.75 0.25'. The sum of the Dirichlet values is always 1. + Although the Dirichlet format may be unfamiliar to some users, + it is more convenient for specifying priors than the ratio + format. + Revmat -- This specifies the report format for the substitution rates of + a GTR substitution model for nucleotide or amino acid data. If + 'ratio' is selected, the rates will be reported scaled to the + G-T rate (for nucleotides) or the Y-V rate (for amino acids). If + 'dirichlet' is specified instead, the rates are reported as pro- + portions of the rate sum. For instance, assume that the C-T rate + is twice the A-G rate and four times the transversion rates, + which are equal. If the report format is set to 'ratio', this + would be reported as '1.0 2.0 1.0 1.0 4.0 1.0' since the rates + are reported in the order rAC, rAG, rAT, rCG, rCT, rGT and scaled + relative to the last rate, the G-T rate. If 'dirichlet' is selec- + ted instead, the same rates would have been reported as '0.1 0.2 + 0.1 0.1 0.4 0.1' since the rates are now scaled so that they sum + to 1.0. The Dirichlet format is the parameterization used for + formulating priors on the rates. + Ratemult -- This specifies the report format used for the rate multiplier of + different model partitions. Three formats are available. If + 'scaled' is selected, then rates are scaled such that the mean + rate per site across partitions is 1.0. If 'ratio' is chosen, + the rates are scaled relative to the rate of the first parti- + tion. Finally, if 'dirichlet' is chosen, the rates are given as + proportions of the rate sum. The latter is the format used + when formulating priors on the rate multiplier. + Tree -- This specifies the report format used for the tree(s). Two op- + tions are available. 'Topology' results in only the topology + being printed to file, whereas 'brlens' causes branch lengths to + to be printed as well. + Ancstates -- If this option is set to 'yes', MrBayes will print the pro- + bability of the ancestral states at all constrained nodes. Typ- + ically, you are interested in the ancestral states of only a few + characters and only at one node in the tree. To perform such + an analysis, first define and enforce a topology constraint + using 'constraint' and 'prset topologypr = constraints (...)'. + Then put the character(s) of interest in a separate partition and + set MrBayes to report the ancestral states for that partition. + For instance, if the characters of interest are in partition 2, + use 'report applyto=(2) ancstates=yes' to force MrBayes to print + the probability of the ancestral states of those characters at + the constrained node to the '.p' file. + Siterates -- If this option is set to 'yes' and the relevant model has rate + variation across sites, then the site rates, weighted over rate + categories, will be reported to the '.p' file. + Possel -- If this option is set to 'yes' and the relevant model has omega + variation across sites, the probability that each model site + (codon in this case) is positively selected will be written to + file. + Siteomega -- If this option is set to 'yes' and the relevant model has omega + variation across sites, the weighted omega value (over omega + categories) for each model site will be reported to file. + + Default report settings: + + Parameter Options Current Setting + -------------------------------------------------------- + Tratio Ratio/Dirichlet Ratio + Revmat Ratio/Dirichlet Dirichlet + Ratemult Scaled/Ratio/Dirichlet Scaled + Tree Brlens/Topology Brlens + Ancstates Yes/No No + Siterates Yes/No No + Possel Yes/No No + Siteomega Yes/No No + + ------------------------------------------------------------------ + --------------------------------------------------------------------------- + Restore + + This command restores taxa to the analysis. The correct usage is: + + restore ... + + A list of the taxon names or taxon numbers (labelled 1 to ntax in the order + in the matrix) or taxset(s) can be used. For example, the following: + + restore 1 2 Homo_sapiens + + restores taxa 1, 2, and the taxon labelled Homo_sapiens to the analysis. + You can also use "all" to restore all of the taxa. For example, + + restore all + + restores all of the taxa to the analysis. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Set + + This command is used to set some general features of the model or program + behavior. The correct usage is + + set = ... = + + Available options: + + Seed -- Sets the seed number for the random number generator. The + random number seed is initialized haphazardly at the beg- + inning of each MrBayes session. This option allows you to + set the seed to some specific value, thereby allowing you + to exactly repeat an analysis. If the analysis uses swapping + between cold and heated chains, you must also set the swap + seed (see below) to exactly repeat the analysis. + Swapseed -- Sets the seed used for generating the swapping sequence + when Metropolis-coupled heated chains are used. This seed + is initialized haphazardly at the beginning of each MrBayes + session. This option allows you to set the seed to some + specific value, thereby allowing you to exactly repeat a + swap sequence. See also the 'Seed' option. + Dir -- The working directory. Specifies the absolute or relative path + to the working directory. If left empty, the working directory + is the current directory. + Partition -- Set this option to a valid partition id, either the number or + name of a defined partition, to enforce a specific partition- + ing of the data. When a data matrix is read in, a partition + called "Default" is automatically created. It divides the + data into one part for each data type. If you only have one + data type, DNA for instance, the default partition will not + divide up the data at all. The default partition is always + the first partition, so 'set partition=1' is the same as + 'set partition=default'. + Speciespartition -- Set this option to a valid speciespartition id, either the + number or name of a defined speciespartition, to enforce a + specific partitioning of taxa to species. When a data matrix + is read in, a speciespartition called "Default" is auto- + matically created. It assigns one taxon for each species. The + default speciespartition is always the first speciespartition, + so 'set speciespartition=1' is the same as + 'set speciespartition=default'. + Autoclose -- If autoclose is set to 'yes', then the program will not prompt + you during the course of executing a file. This is particular- + ly useful when you run MrBayes in batch mode. + Nowarnings -- If nowarnings is set to yes, then the program will not prompt + you when overwriting or appending an ouput file that is al- + ready present. If 'nowarnings=no' (the default setting), then + the program propts the user before overwriting output files. + Autoreplace -- When nowarnings is set to yes, then MrBayes will by default + overwrite output files that already exists. This may cause + irrecoverable loss of previous results if you have not removed + or renamed the files from previous runs. To override this be- + havior, set autoreplace to no, in which case new output will + be appended to existing files instead. + Quitonerror -- If quitonerror is set to yes, then the program will quit when + an error is encountered, after printing an error message. If + quitonerror is set to no (the default setting), then the + program will wait for additional commands from the command + line after the error message is printed. + Scientific -- Set this option to 'Yes' to write sampled values to file in + scientific format and to 'No' to write them in fixed format. + Fixed format is easier for humans to read but you risk losing + precision for small numbers. For instance, sampled values that + are less than 1E-6 will print to file as '0.000000' if fixed + format is used and 'precision' is set to 6. + Precision -- Precision allows you to set the number of decimals to be prin- + ted when sampled values are written to file. Precision must be + in the range 3 to 15. + Usebeagle -- Set this option to 'Yes' to attempt to use the BEAGLE library + to compute the phylogenetic likelihood on a variety of high- + performance hardware including multicore CPUs and GPUs. Some + models in MrBayes are not yet supported by BEAGLE. + Beagleresource -- Set this option to the number of a specific resource you + wish to use with BEAGLE (use 'Showbeagle' to see the list of + available resources). Set to '99' for auto-resource selection. + Beagledevice -- Set this option to 'GPU' or 'CPU' to select processor. + Beagleprecision -- Selection 'Single' or 'Double' precision computation. + Beaglescaling -- 'Always' rescales partial likelihoods at each evaluation. + 'Dynamic' rescales less frequently and should run faster. + Beaglesse -- Use SSE instructions on Intel CPU processors. + Beagleopenmp -- Use OpenMP to parallelize across multi-core CPU processors. + + Current settings: + + Parameter Options Current Setting + -------------------------------------------------------- + Seed 1448443295 + Swapseed 1448443295 + Dir "" + Partition "" + Speciespartition "" + Autoclose Yes/No No + Nowarnings Yes/No No + Autoreplace Yes/No Yes + Quitonerror Yes/No No + Scientific Yes/No Yes + Precision 6 + Usebeagle Yes/No No + Beagleresource 99 + Beagledevice CPU/GPU CPU + Beagleprecision Single/Double Double + Beaglescaling Always/Dynamic Always + Beaglesse Yes/No No + Beagleopenmp Yes/No No + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Showbeagle + + This command shows available BEAGLE resources. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Showmatrix + + This command shows the character matrix currently in memory. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Showmcmctrees + + This command shows the current trees used by the Markov chains. + is "showmcmctrees". + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Showmodel + + This command shows the current model settings. The correct usage is + + showmodel + + After typing "showmodel", the modelling assumptions are shown on a + partition-by-partition basis. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Showmoves + + This command shows the MCMC samplers (moves) that are switched on for the + parameters in the current model. The basic usage is + + showmoves + + If you want to see all available moves, use + + showmoves allavailable=yes + + If you want to change any of the tuning parameters for the moves, use the + 'propset' command. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Showparams + + This command shows all of the parameters in the current model. The basic + usage is + + showparams + + The parameters are listed together with their priors, the available moves, + and the current value(s), which will be used as the starting values in the + next mcmc analysis. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Showusertrees + + This command shows the currently defined user trees. The correct usage + is "showusertrees". + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Speciespartition + + Defines a partition of tips into species. The format for the speciespartition + command is + + Speciespartition = : ,...,: + + The command enumerates comma separated list of pairs consisting of 'species + name' and 'taxon list'. The 'taxon list' is a standard taxon list, as used by + the 'Taxset' command. This means that you can use either the index or the name + of a sequence ('taxon'). Ranges are specified using a dash, and a period can + be used as a synonym of the last sequence in the matrix. + + For exammple: speciespartition species = SpeciesA: 1, SpeciesB: 2-. + Here, we name two species. SpeciesA is represented by a single sequence while + SpeciesB is represented by all remaining sequences in the matrix. + Each sequence is specified by its row index in the data matrix. + + As with ordinary partitioning you may define multiple species partitioning + scheme. You have to use command 'set speciespartition' to enable use of one of + them. + + Currently defined Speciespartitions: + + Number Speciespartition name Number of species + -------------------------------------------------------------------------- + + -------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Ss + + This command is used to start stepping-stone sampling, which is an efficient + and accurate method for estimating the marginal likelihood of the currently + specified model. It is considerably more accurate than the harmonic mean of + the likelihoods from a standard MCMC run on the model (calculated by the + 'Sump' command) but it requires a separate MCMC-like run. To be more specific, + stepping-stone sampling uses importance sampling to estimate each ratio in a + series of discrete steps bridging the posterior and prior distributions. + The importance distributions that are used are called power posterior distri- + butions, and are defined as prior*(likelihood^beta). By varying beta from 1 to + 0, we get a series of distributions that connect the posterior (beta = 1) to + the prior (beta = 0). + + The power posterior distributions are sampled using MCMC. First, we start a + standard MCMC chain on the posterior distribution, and let it run until we + have reached the criterion specified by the 'Burninss' option. After this, we + step through the power posterior distributions until we reach the prior dis- + tribution. In each of the 'Nsteps' steps, we sample from a new power poster- + ior distribution with a distinct beta value. The beta values correspond to + 'Nsteps' evenly spaced quantiles in a Beta distribution with the parameters + 'Alpha' and 1.0. For the first sampling step, the beta value is equal to the + last quantile, i.e., it is close to 1.0. For each successive step, the beta + value takes on the value of the next quantile, in decreasing order, until it + reaches the value of 0.0. If you change value of 'FromPrior' from default 'No' + to 'Yes' then the direction of power posterior change during SS analizes is + opposite to the one described above, i.e. we start from sampling prior and + finish close to posterior. + + The 'Ss' procedure uses the same machinery as the standard 'Mcmc' algorithm, + and shares most of its parameters with the 'Mcmc' and 'Mcmcp' commands. All + 'Mcmc' parameters, except those related to burnin, have the same meaning and + usage in the 'Ss' command as they have in the 'Mcmc' command. The 'Mcmc' + burnin parameters are used to set up burnin within each step. The 'Ss' command + also uses its own burnin parameter, 'Burninss' (see below for details). The + 'Ss' command also has its own parameters for specifying the number of steps + and the shape of the Beta distribution from which the beta values are computed + (see below). + + Note that the 'Ngen' parameter of 'Mcmc' is used to set the maximum number of + generations processed, including both the burnin and the following steps in + the stepping-stone sampling phase. For instance, assume that 'Burninss' is set + to '-1', 'Nsteps' to '49', 'Ngen' to '1000000' and 'Samplefreq' to '1000'. + We will then get 1,000 samples in total (1,000,000 / 1,000). These will fall + into 50 bins, one of which represents the burnin and is discarded. Each step + in the algorithm will thus be represented by 20 samples. + + More information on 'Mcmc' parameters is available in the help for the 'Mcmc' + and 'Mcmcp' commands. Only the exclusive 'Ss' parameters are listed below. + These can only be set up using the 'Ss' command, while the parameters shared + with 'Mcmc' and 'Mcmcp' can also be set up using those commands. + + The correct usage is + + ss = ... = + + Note that a command: + + ss + + would be equivalent to executing two commands: + + mcmcp ; + ss ; + + For more information on the stepping-stone algorithm, see: + + Xie, W., P. O. Lewis, Y. Fan, L. Kuo, and M.-H. Chen. 2011. Improving marginal + likelihood estimation for Bayesian phylogenetic model selection. Systematic + Biology 60:150-160. + + Available options: + (NB: Only exclusive ss parameters listed here. For additional parameters, see + help on 'mcmc' or 'mcmcp'. + + Alpha -- The beta values used in the stepping-stone sampling procedure + correspond to evenly spaced quantiles from a Beta('Alpha',1.0) + distribution. The parameter 'Alpha' determines the skewness of + the beta values. If 'Alpha' is set to '1.0', the beta values + would be spaced uniformly on the interval (0.0,1.0). However, + better results are obtained if the beta values are skewed. + Empirically, it was observed that 'Alpha' values in the range + of 0.3 to 0.5 produce the most accurate results. + Burninss -- Fixed number of samples discarded before sampling of the first + step starts. 'Burninss' can be specified using either a pos- + itive or a negative number. If the number is positive, it is + interpreted as the number of samples to discard as burnin. If + the number is negative, its absolute value is interpreted as + the length of the burnin in terms of the length of each of the + following steps in the stepping-stone algorithm. For instance, + a value of '-1' means that the length of the burnin is the + same as the length of each of the subsequent steps. + Nsteps -- Number of steps in the stepping-stone algorithm. Typically, a + number above 30 is sufficient for accurate results. + FromPrior -- If it is set to 'Yes', it indicates that in the first step we + sample from the prior, with each consequtive step we sample + closer to the posterior. 'No' indicates the opposite direction + of power posterior change, i.e. in the first step we sample + close to the posterior, and with each consequtive step we + sample closer to the prior. + + Current settings: + + Parameter Options Current Setting + -------------------------------------------------------- + Alpha 0.40 + BurninSS -1 + Nsteps 50 + FromPrior Yes/No No + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Ssp + + This command sets the parameters of the stepping-stone sampling + analysis without actually starting the chain. This command is identical + in all respects to Ss, except that the analysis will not start after + this command is issued. For more details on the options, check the help + menu for Ss. + + Current settings: + + Parameter Options Current Setting + -------------------------------------------------------- + Alpha 0.40 + BurninSS -1 + Nsteps 50 + FromPrior Yes/No No + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Startvals + + Use this command to change the current values for parameters in your model. + These values will be used as the starting values in the next mcmc analysis. + The basic format is: + + startvals =(,,...,) + + for all substitution model parameters. The format is slightly different for + parameters that are written to a tree file: + + startvals = + + This version of the command will look for a tree with the specified name + among the trees read in previously when parsing a tree block. The information + stored in that tree will be used to set the starting value of the parameter. + The parameters that are set using this mechanism include topology and branch + length parameters, as well as relaxed clock branch rates, cpp events and + cpp branch rate multipliers. + + The above versions of the command will set the value for all runs and chains. + You can also set the value for an individual run and chain by using the format + + startvals (,)=(,...) + + where is the index of the run and the index of the chain. If + the run index is omitted, the values will be changed for all runs. Similarly, + if the chain index is omitted, all chains will be set to the specified value. + For example, if we wanted to set the values of the stationary frequency + parameter pi{1} to (0.1,0.1,0.4,0.4) for all chains in run 1, and to + (0.3,0.3,0.2,0.2) for chain 3 of run 2, we would use + + startvals pi{1}(1,)=(0.1,0.1,0.4,0.4) pi{1}(2,3)=(0.3,0.3,0.2,0.2) + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Sump + + During an MCMC analysis, MrBayes prints the sampled parameter values to one or + more tab-delimited text files, one for each independent run in your analysis. + The command 'Sump' summarizes the information in this parameter file or these + parameter files. By default, the root of the parameter file name(s) is assumed + to be the name of the last matrix-containing nexus file. MrBayes also remem- + bers the number of independent runs in the last analysis that you set up, re- + gardless of whether you actually ran it. For instance, if there were two in- + dependent runs, which is the initial setting when you read in a new matrix, + MrBayes will assume that there are two parameter files with the endings + '.run1.p' and '.run2.p'. You can change the root of the file names and the + number of runs using the 'Filename' and 'Nruns' settings. + + When you invoke the 'Sump' command, three items are output: (1) a generation + plot of the likelihood values; (2) estimates of the marginal likelihood of + the model; and (3) a table with the mean, variance, and 95 percent credible + interval for the sampled parameters. All three items are output to screen. + The table of marginal likelihoods is also printed to a file with the ending + '.lstat' and the parameter table to a file with the ending '.pstat'. For some + model parameters, there may also be a '.mstat' file. + + When running 'Sump' you typically want to discard a specified number or + fraction of samples from the beginning of the chain as the burn in. This is + done using the same mechanism used by the 'mcmc' command. That is, if you + run an mcmc analysis with a relative burn in of 25 % of samples for con- + vergence diagnostics, then the same burn in will be used for a subsequent + sump command, unless a different burn in is specified. That is, issuing + + sump + + immediately after 'mcmc', will result in using the same burn in settings as + for the 'mcmc' command. All burnin settings are reset to default values every + time a new matrix is read in, namely relative burnin ('relburnin=yes') with + 25 % of samples discarded ('burninfrac = 0.25'). + + Options: + + Relburnin -- If this option is set to 'Yes', then a proportion of the + samples will be discarded as burnin when calculating summary + statistics. The proportion to be discarded is set with + 'Burninfrac' (see below). When the 'Relburnin' option is set + to 'No', then a specific number of samples is discarded + instead. This number is set by 'Burnin' (see below). Note that + the burnin setting is shared across the 'sumt', 'sump', and + 'mcmc' commands. + Burnin -- Determines the number of samples (not generations) that will + be discarded when summary statistics are calculated. The + value of this option is only applicable when 'Relburnin' is + set to 'No'. + Burninfrac -- Determines the fraction of samples that will be discarded when + summary statistics are calculated. The setting only takes + effect if 'Relburnin' is set to 'Yes'. + Nruns -- Determines how many '.p' files from independent analyses that + will be summarized. If Nruns > 1 then the names of the files + are derived from 'Filename' by adding '.run1.p', '.run2.p', + etc. If Nruns=1, then the single file name is obtained by + adding '.p' to 'Filename'. + Filename -- The name of the file to be summarized. This is the base of the + file name to which endings are added according to the current + setting of the 'Nruns' parameter. If 'Nruns' is 1, then only + '.p' is added to the file name. Otherwise, the endings will + be '.run1.p', '.run2.p', etc. + Outputname -- Base name of the file(s) to which 'Sump' results will be + printed. + Hpd -- Determines whether credibility intervals will be given as the + region of Highest Posterior Density ('Yes') or as the interval + containing the median 95 % of sampled values ('No'). + Minprob -- Determines the minimum probability of submodels to be included + in summary statistics. Only applicable to models that explore + submodel spaces, like 'nst=mixed' and 'aamodelpr=mixed'. + + Current settings: + + Parameter Options Current Setting + -------------------------------------------------------- + Relburnin Yes/No Yes + Burnin 0 + Burninfrac 0.25 + Nruns 2 + Filename temp<.run.p> + Outputname temp<.pstat etc> + Hpd Yes/No Yes + Minprob 0.050 + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Sumss + + This command summarizes results of stepping stone analyses. It is a tool to + investigate the obtained results, and to help find the proper step burn-in. + To get more help information on stepping-stone analyses, use 'help ss'. + + During stepping-stone analysis, MrBayes collects the sampled likelihoods in + order to estimate the marginal likelihood at the end. It also prints the sam- + pled parameter values to one or more tab-delimited text files, one for each + independent run in your analysis. The command 'Sumss' summarizes likelihood + values stored in these parameter files and calculates marginal likelihood es- + timates. The names of the files that are summarized are exactly the same as + the names of the files used for the 'sump' command. In fact, the 'filename' + setting is a shared setting for the 'sump' and 'sumss' commands. That is, if + you change the setting in one of the commands, it would change the setting in + the other command as well. + + When you invoke the 'Sumss' command, three items are output: (1) 'Step contri- + bution table' - summarizes the contribution of each step to the overall esti- + mate; (2) 'Step plot' - plot of the likelihood values for the initial burn-in + phase or a chosen step in the stepping-stone algorithm; (3) 'Joined plot' - + summarizes sampling across all steps in the algorithm. + + Step contribution table + The printed table is similar to the one output to the .ss file. The main pur- + pose of the table is to summarize marginal likelihood for different values of + the step burn-in after the stepping stone analysis has finished. The burn-in + is controlled by the 'Relburnin', 'Burnin' and 'Burninfrac' settings. + Note that during stepping-stone analyses, step contributions to marginal + likelihood are calculated based on all generations excluding burn-in. 'Sumss' + on the other hand makes estimates based only on the sampled generations. This + may lead to slight difference in results compared to the one printed to the + .ss file. + + Step plot + The main objective of the plot is to provide a close look at a given step in + the analysis. Which step is printed here is defined by the 'Steptoplot' set- + ting. The plot could be used to inspect if the chosen step burn-in is appro- + priate for the given step. It could also be used to check if the initial burn- + in phase has converged. Note that the amount of discarded samples is controled + by the 'Discardfrac' setting, and not by the ordinary burn-in settings. + + Joined plot + Different steps sample from different power posterior distributions. When we + switch from one distribution to another, it takes some number of generations + before the chain settles at the correct stationary distribution. This lag is + called a 'temperature lag' and if the corresponding samples are not removed, + it will result in a biased estimate. It is difficult to determine the lag be- + forehand, but MrBayes allows you to explore different step burn-in settings + after you have finished the stepping-stone algorithm, without having to rerun + the whole analysis. The 'Joined plot' helps to facilitate the choice of the + right step burn-in. The plot summarizes samples across all steps and gives you + a quick overview of the whole analysis. + + Specifically, the following procedure is used to obtain the joined plot. Each + step has the same number N of samples taken. We number each sample 1 to N + within steps according to the order in which the samples are taken. The first + sample in each step is numbered 1, and the last sample is N. For each number i + in [1,..., N], we sum up log likelihoods for all samples numbered i across all + steps. The joined plot is a graph of the step number versus the normalized + sums we get in the procedure describe above. This directly visualizes the tem- + perature lag and allows you to select the appropriate step burn-in. + + Ideally, after you discard the appropriate step burn-in, the graph should + appear as white noise around the estimated value. If you see an increasing or + decreasing tendency in the beginning of the graph, you should increase the + step burn-in. If you see an increasing or decreasing tendency across the whole + graph, then the initial burn-in phase was not long enough. In this case, you + need to rerun the analysis with a longer initial burn-in. + + To make it easier to observe tendencies in the plotted graph you can choose + different levels of curve smoothing. If 'Smoothing' is set to k, it means that + for each step i we take an average over step i and k neighboring samples in + both directions, i.e., the k-smoothed estimate for step i is an average over + values for steps [i-k,...,i+k]. + + + Options: + + Allruns -- If set to 'Yes', it forces all runs to be printed on the same + graph when drawing joined and step plots. If set to 'No', each + run is printed on a separat plot. + Askmore -- Long analyses may produce huge .p files. Reading in them may + take several minutes. If you want to investigate different + aspects of your analyses, it could be very inconvenient to + wait for several minutes each time you want to get a new sum- + mary for different settings. If you set 'Askmore' to 'YES', + sumss will read .p files only once. After responding to the + original query, it will interactivaly ask you if you wish to + produce more tables and plots for different settings of + 'Burnin' or 'Smoothing' (see below). + Relburnin -- If this option is set to 'Yes', then a proportion of the + samples from each step will be discarded as burnin when calcu- + lsting summary statistics. The proportion to be discarded is + set with 'Burninfrac' (see below). When the 'Relburnin' option + is set to 'No', then a specific number of samples is discarded + instead. This number is set by 'Burnin'. Note that the burnin + settings --- 'Relburnin', 'Burnin', and 'Burninfrac' --- are + shared across the 'sumt', 'sump', 'sumss' and 'mcmc' commands. + Burnin -- Determines the number of samples (not generations) that will + be discarded from each step when summary statistics are calcu- + lated. The value of this option is only applicable when + 'Relburnin' is set to 'No'. + Burninfrac -- Determines the fraction of samples that will be discarded from + each step when summary statistics are calculated. The setting + only takes effect if 'Relburnin' is set to 'Yes'. + Discardfrac -- Determines the fraction of samples that will be discarded when + a step plot is printed. It is similar to the 'Burninfrac' set- + ting, but unlike 'Burninfrac' it is used only for better vis- + ualization of the step plot. It has no effect on the number of + samples discarded during marginal likelihood computation. + Filename -- The name of the file to be summarized. This is the base of the + file name to which endings are added according to the current + setting of the 'Nruns' parameter. If 'Nruns' is 1, then only + '.p' is added to the file name. Otherwise, the endings will + be '.run1.p', '.run2.p', etc. Note that the 'Filename' setting + is shared with 'sump' command. + Nruns -- Determines how many '.p' files from independent analyses that + will be summarized. If Nruns > 1 then the names of the files + are derived from 'Filename' by adding '.run1.p', '.run2.p', + etc. If Nruns=1, then the single file name is obtained by + adding '.p' to 'Filename'. + Steptoplot -- Defines which step will be printed in the step plot.If the + value is set to 0, then the initial sample from the posterior + will be used. + Smoothing -- Determines smoothing of the joined plot (see above). A value + equal to 0 results in no smoothing. + + Current settings: + + Parameter Options Current Setting + -------------------------------------------------------- + Allruns Yes/No Yes + Askmore Yes/No Yes + Relburnin Yes/No Yes + Burnin 0 + Burninfrac 0.25 + Discardfrac 0.80 + Filename temp<.run.p> + Nruns 2 + Steptoplot 0 + Smoothing 0 + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Sumt + + This command is used to produce summary statistics for trees sampled during + a Bayesian MCMC analysis. You can either summarize trees from one individual + analysis, or trees coming from several independent analyses. In either case, + all the sampled trees are read in and the proportion of the time any single + taxon bipartition (split) is found is counted. The proportion of the time that + the bipartition is found is an approximation of the posterior probability of + the bipartition. (Remember that a taxon bipartition is defined by removing a + branch on the tree, dividing the tree into those taxa to the left and right + of the removed branch. This set is called a taxon bipartition.) The branch + length of the bipartition is also recorded, if branch lengths have been saved + to file. The result is a list of the taxon bipartitions found, the frequency + with which they were found, the posterior probability of the bipartition + and, the mean and variance of the branch lengths or node depths, and various + other statistics. + + The key to the partitions is output to a file with the suffix '.parts'. The + summary statistics pertaining to bipartition probabilities are output to a + file with the suffix '.tstat', and the statistics pertaining to branch or node + parameters are output to a file with the suffix '.vstat'. + + A consensus tree is also printed to a file with the suffix '.con.tre' and + printed to the screen as a cladogram, and as a phylogram if branch lengths + have been saved. The consensus tree is either a 50 percent majority rule tree + or a majority rule tree showing all compatible partitions. If branch lengths + have been recorded during the run, the '.con.tre' file will contain a consen- + sus tree with branch lengths and interior nodes labelled with support values. + By default, the consensus tree will also contain other summary information in + a format understood by the program 'FigTree'. To use a simpler format under- + stood by other tree-drawing programs, such as 'TreeView', set 'Conformat' to + 'Simple'. + + MrBayes alo produces a file with the ending ".trprobs" that contains a list + of all the trees that were found during the MCMC analysis, sorted by their + probabilities. This list of trees can be used to construct a credible set of + trees. For example, if you want to construct a 95 percent credible set of + trees, you include all of those trees whose cumulative probability is less + than or equal to 0.95. You have the option of displaying the trees to the + screen using the "Showtreeprobs" option. The default is to not display the + trees to the screen; the number of different trees sampled by the chain can + be quite large. If you are analyzing a large set of taxa, you may actually + want to skip the calculation of tree probabilities entirely by setting + 'Calctreeprobs' to 'No'. + + When calculating summary statistics you probably want to skip those trees that + were sampled in the initial part of the run, the so-called burn-in period. The + number of skipped samples is controlled by the 'Relburnin', 'Burnin', and + 'Burninfrac' settings, just as for the 'Mcmc' command. Since version 3.2.0, + the burn-in settings are shared across the 'Sumt', 'Sump' and 'Mcmc' commands. + That is, changing the burn-in setting for one command will change the settings + for subsequent calls to any of the other commands. + + If you are summarizing the trees sampled in several independent analyses, + such as those resulting from setting the 'Nruns' option of the 'Mcmc' command + to a value larger than 1, MrBayes will also calculate convergence diagnostics + for the sampled topologies and branch lengths. These values can help you + determine whether it is likely that your chains have converged. + + The 'Sumt' command expands the 'Filename' according to the current values of + the 'Nruns' and 'Ntrees' options. For instance, if both 'Nruns' and 'Ntrees' + are set to 1, 'Sumt' will try to open a file named '.t'. If 'Nruns' + is set to 2 and 'Ntrees' to 1, then 'Sumt' will open two files, the first + named '.run1.t' and the second '.run2.t', etc. By default, + the 'Filename' option is set such that 'Sumt' automatically summarizes all the + results from your immediately preceding 'Mcmc' command. You can also use the + 'Sumt' command to summarize tree samples in older analyses. If you want to do + that, remember to first read in a matrix so that MrBayes knows what taxon + names to expect in the trees. Then set the 'Nruns', 'Ntrees' and 'Filename' + options appropriately if they differ from the MrBayes defaults. + + Options: + + Relburnin -- If this option is set to YES, then a proportion of the + samples will be discarded as burnin when calculating summary + statistics. The proportion to be discarded is set with + Burninfrac (see below). When the Relburnin option is set to + NO, then a specific number of samples is discarded instead. + This number is set by Burnin (see below). Note that the + burnin setting is shared across the 'sumt', 'sump', and + 'mcmc' commands. + Burnin -- Determines the number of samples (not generations) that will + be discarded when summary statistics are calculated. The + value of this option is only relevant when Relburnin is set + to NO. + BurninFrac -- Determines the fraction of samples that will be discarded + when summary statistics are calculated. The value of this + option is only relevant when Relburnin is set to YES. + Example: A value for this option of 0.25 means that 25% of + the samples will be discarded. + Nruns -- Determines how many '.t' files from independent analyses that + will be summarized. If Nruns > 1 then the names of the files + are derived from 'Filename' by adding '.run1.t', '.run2.t', + etc. If Nruns=1 and Ntrees=1 (see below), then only '.t' is + added to 'Filename'. + Ntrees -- Determines how many trees there are in the sampled model. If + 'Ntrees' > 1 then the names of the files are derived from + 'Filename' by adding '.tree1.t', '.tree2.t', etc. If there + are both multiple trees and multiple runs, the filenames will + be '.tree1.run1.t', '.tree1.run2.t', etc. + Filename -- The name of the file(s) to be summarized. This is the base of + the file name, to which endings are added according to the + current settings of the 'Nruns' and 'Ntrees' options. + Minpartfreq -- The minimum probability of partitions to include in summary + statistics. + Contype -- Type of consensus tree. 'Halfcompat' results in a 50% major- + ity rule tree, 'Allcompat' adds all compatible groups to such + a tree. + Conformat -- Format of consensus tree. The 'Figtree' setting results in a + consensus tree formatted for the program FigTree, with rich + summary statistics. The 'Simple' setting results in a simple + consensus tree written in a format read by a variety of pro- + grams. + Outputname -- Base name of the file(s) to which 'sumt' results will be + printed. The default is the same as 'Filename'. + Calctreeprobs -- Determines whether tree probabilities should be calculated. + Showtreeprobs -- Determines whether tree probabilities should be displayed on + screen. + Hpd -- Determines whether credibility intervals will be given as the + region of Highest Posterior Density ('Yes') or as the inter- + val containing the median 95 % of sampled values ('No'). + + Current settings: + + Parameter Options Current Setting + -------------------------------------------------------- + Relburnin Yes/No Yes + Burnin 0 + Burninfrac 0.25 + Nruns 2 + Ntrees 1 + Filename temp<.run.t> + Minpartfreq 0.10 + Contype Halfcompat/Allcompat Halfcompat + Conformat Figtree/Simple Figtree + Outputname temp<.parts etc> + Calctreeprobs Yes/No Yes + Showtreeprobs Yes/No No + Hpd Yes/No Yes + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Taxastat + + This command shows the status of all the taxa. The correct usage is + + taxastat + + After typing "taxastat", the taxon number, name, and whether it is + excluded or included are shown. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Taxset + + This command defines a taxon set. The format for the taxset command + is + + taxset = + + For example, "taxset apes = Homo Pan Gorilla Orang gibbon" defines a + taxon set called "apes" that includes five taxa (namely, apes). + You can assign up to 30 taxon sets. This option is best used + not from the command line but rather as a line in the mrbayes block + of a file. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Unlink + + This command unlinks model parameters across partitions of the data. The + correct usage is: + + unlink = ( or ) + + A little background is necessary to understand this command. Upon exe- + cution of a file, a default partition is set up. This partition refer- + enced either by its name ("default") or number (0). If your data are + all of one type, then this default partition does not actually divide up + your characters. However, if your datatype is mixed, then the default + partition contains as many divisions as there are datatypes in your + character matrix. Of course, you can also define other partitions, and + switch among them using the set command ("set partition="). + Importantly, you can also assign model parameters to individual part- + itions or to groups of them using the "applyto" option in lset and + prset. When the program attempts to perform an analysis, the model is + set for individual partitions. If the same parameter applies to differ- + partitions and if that parameter has the same prior, then the program + will link the parameters: that is, it will use a single value for the + parameter. The program's default, then, is to strive for parsimony. + However, there are lots of cases where you may want unlink a parameter + across partitions. For example, you may want a different transition/ + transversion rate ratio to apply to different partitions. This command + allows you to unlink the parameters, or to make them different across + partitions. The converse of this command is "link", which links to- + gether parameters that were previously told to be different. The list + of parameters that can be unlinked includes: + + Tratio -- Transition/transversion rate ratio + Revmat -- Substitution rates of GTR model + Omega -- Nonsynonymous/synonymous rate ratio + Statefreq -- Character state frequencies + Shape -- Gamma/LNorm shape parameter + Pinvar -- Proportion of invariable sites + Correlation -- Correlation parameter of autodiscrete gamma + Ratemultiplier -- Rate multiplier for partitions + Switchrates -- Switching rates for covarion model + Topology -- Topology of tree + Brlens -- Branch lengths of tree + Speciationrate -- Speciation rates for birth-death process + Extinctionrate -- Extinction rates for birth-death process + Popsize -- Population size for coalescence process + Growthrate -- Growth rate of coalescence process + Aamodel -- Aminoacid rate matrix + Cpprate -- Rate of Compound Poisson Process (CPP) + Cppmultdev -- Standard dev. of CPP rate multipliers (log scale) + Cppevents -- CPP events + TK02var -- Variance increase in TK02 relaxed clock model + Igrvar -- Variance increase in IGR relaxed clock model + Mixedvar -- Variance increase in Mixed relaxed clock model + + For example, + + unlink shape=(all) + + unlinks the gamma/lnorm shape parameter across all partitions of the data. + You can use "showmodel" to see the current linking status of the + characters. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Version + + This command shows the release version of the program. + --------------------------------------------------------------------------- + + *************************************************************************** + * * + * 3. 'Data' or 'tree' block commands (in #NEXUS file) * + * * + *************************************************************************** + + --------------------------------------------------------------------------- + Begin + + This command is used to format data or commands in the program. The correct + usage is + + begin ; + + The two valid uses of the "begin" command, then, are + + begin data; + begin mrbayes; + + The "data" specifier is used to specify the beginning of a data block; your + character data should follow. For example, the following is an example of + a data block for four taxa and ten DNA sites: + + begin data; + dimensions ntax=4 nchar=10; + format datatype=dna; + matrix + taxon_1 AACGATTCGT + taxon_2 AAGGATTCCA + taxon_3 AACGACTCCT + taxon_4 AAGGATTCCT + ; + end; + + The other commands -- dimensions, format, and matrix -- are discussed + in the appropriate help menu. The only thing to note here is that the + block begins with a "begin data" command. The "mrbayes" command is + used to enter commands specific to the MrBayes program into the file. + This allows you to automatically process commands on execution of the + program. The following is a simple mrbayes block: + + begin mrbayes; + charset first = 1-10\3; + charset second = 2-10\3; + charset third = 3-10\3; + end; + + This mrbayes block sets off the three "charset" commands, used to + predefine some blocks of characters. The mrbayes block can be very useful. + For example, in this case, it would save you the time of typing the char- + acter sets each time you executed the file. Also, note that every + "begin " command ends with an "end". Finally, you can + have so-called foreign blocks in the file. An example of a foreign block + would be "begin paup". The program will simply skip this block. This is + useful because it means that you can use the same file for MrBayes, PAUP* + or MacClade (although it isn't clear why you would want to use those other + programs). + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Dimensions + + This command is used in a data block to define the number of taxa and + characters. The correct usage is + + dimensions ntax= nchar= + + The dimensions must be the first command in a data block. The following + provides an example of the proper use of this command: + + begin data; + dimensions ntax=4 nchar=10; + format datatype=dna; + matrix + taxon_1 AACGATTCGT + taxon_2 AAGGATTCCA + taxon_3 AACGACTCCT + taxon_4 AAGGATTCCT + ; + end; + + Here, the dimensions command tells MrBayes to expect a matrix with four + taxa and 10 characters. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + End + + This command is used to terminate a data or mrbayes block. The correct + usage is + + end; + + For more information on this, check the help for the "begin" command. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Endblock + + This is an older, deprecated version of "End", see that command. + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + Format + + This command is used in a data block to define the format of the char- + acter matrix. The correct usage is + + format datatype= ... =,)'\n"); + MrBayesPrint (" and 'invgamdir(,,,)' specify a fairly diffuse\n"); + MrBayesPrint (" prior on tree length 'T', and then partition the tree length \n"); + MrBayesPrint (" into branch lengths according to a Dirichlet distribution \n"); + MrBayesPrint (" (Rannala et al. 2012). If 'T' is considered drawn from a \n"); + MrBayesPrint (" gamma distribution with parameters a_T and b_T, and with mean\n"); + MrBayesPrint (" a_T/b_T, we recommend setting a_T = 1; if it is instead con- \n"); + MrBayesPrint (" sidered drawn from an inverse gamma (invgamma) distribution \n"); + MrBayesPrint (" with parameters a_T and b_T, and with mean b_T/(a_T -1), then\n"); + MrBayesPrint (" we reccommend setting a_T = 3. In the latter case, b_T should\n"); + MrBayesPrint (" be chosen so that the prior mean of T is reasonable for the \n"); + MrBayesPrint (" data. In the former case, setting b_T = 0.1 (corresponding to\n"); + MrBayesPrint (" a mean tree length of 10) should be appropriate for a wide \n"); + MrBayesPrint (" range of tree lengths (at least in the interval 1 to 100). \n"); + MrBayesPrint (" The concentration parameter a of the Dirichlet distribution \n"); + MrBayesPrint (" is inversely related to the variance of the branch lengths, \n"); + MrBayesPrint (" while c is the ratio of the prior means for the internal and \n"); + MrBayesPrint (" external branch lengths. The default setting, a = c = 1, \n"); + MrBayesPrint (" specifies a uniform Dirichlet distribution of branch lengths \n"); + MrBayesPrint (" given the tree length. For instance, 'gammadir(1,0.1,1,1)' \n"); + MrBayesPrint (" specifies a compound Dirichlet prior on branch lengths, where\n"); + MrBayesPrint (" tree length is associated with a gamma distribution with mean\n"); + MrBayesPrint (" 10, and branch length proportions are associated with a uni- \n"); + MrBayesPrint (" form Dirichlet distribution (default). \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For clock trees with calibrated external nodes (fossils), \n"); + MrBayesPrint (" MrBayes also offers the fossilized birth-death prior: \n"); + MrBayesPrint (" 'clock:fossilization'. \n"); + MrBayesPrint (" If 'SampleStrat' is set to 'fossiltip', it assumes that upon \n"); + MrBayesPrint (" sampling the lineage is dead and won't produce descendants, \n"); + MrBayesPrint (" meaning each fossil sample is a tip. If 'SampleStrat' is set \n"); + MrBayesPrint (" to 'random' (default), fossils are sampled serially along the\n"); + MrBayesPrint (" birth-death tree (Stadler 2010), so they can be tips or an- \n"); + MrBayesPrint (" cestors. See 'Speciationpr', 'Extinctionpr', 'SampleStrat', \n"); + MrBayesPrint (" 'Fossilizationpr' for more information. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Treeagepr -- This parameter specifies the prior probability distribution \n"); + MrBayesPrint (" on the tree age when a uniform or fossilization prior is used\n"); + MrBayesPrint (" on the branch lengths of a clock tree. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The options are: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset treeagepr = \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" where is one of \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" fixed() \n"); + MrBayesPrint (" uniform(,) \n"); + MrBayesPrint (" offsetexponential(,) \n"); + MrBayesPrint (" truncatednormal(,,) \n"); + MrBayesPrint (" lognormal(,) \n"); + MrBayesPrint (" offsetlognormal(,,) \n"); + MrBayesPrint (" gamma(,) \n"); + MrBayesPrint (" offsetgamma(,,) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" These are the same options used for the 'Calibrate' command. \n"); + MrBayesPrint (" Note that, unlike elsewhere in MrMayes, we always use the \n"); + MrBayesPrint (" mean and standard deviation of the resulting age distribution\n"); + MrBayesPrint (" rather than the standard parameterization, if different. This\n"); + MrBayesPrint (" is to facilitate for the users who want to focus on the in- \n"); + MrBayesPrint (" formation conveyed about the age. For those who wish to use \n"); + MrBayesPrint (" the standard parameterization, there are simple conversions \n"); + MrBayesPrint (" between the two. See the 'Calibrate' command for more infor- \n"); + MrBayesPrint (" mation. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The tree age is simply the age of the most recent common \n"); + MrBayesPrint (" ancestor of the tree. If the clock rate is fixed to 1.0, \n"); + MrBayesPrint (" which is the default, the tree age is equivalent to the \n"); + MrBayesPrint (" expected number of substitutions from the root to the tip of \n"); + MrBayesPrint (" the tree, that is, tree height. The tree age prior ensures \n"); + MrBayesPrint (" that the joint probability for the uniform prior (or fossil- \n"); + MrBayesPrint (" ization prior) model of branch lengths on a clock tree is \n"); + MrBayesPrint (" proper. The default setting is 'gamma(1,1)'. If the root node\n"); + MrBayesPrint (" in the tree is calibrated, the root calibration replaces the \n"); + MrBayesPrint (" tree age prior. \n"); + MrBayesPrint (" Speciationpr -- This parameter sets the prior on the net speciation rate (net\n"); + MrBayesPrint (" diversification), that is, (lambda - mu) in the birth-death \n"); + MrBayesPrint (" model and the general case of fossilized birth-death model. \n"); + MrBayesPrint (" Or, (lambda - mu - psi) in the special case of f-b-d model \n"); + MrBayesPrint (" (fossiltip). Values of this parameter are > 0. Prior options:\n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset speciationpr = uniform(,) \n"); + MrBayesPrint (" prset speciationpr = exponential() \n"); + MrBayesPrint (" prset speciationpr = fixed() \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This parameter is only relevant if the (fossil) birth-death \n"); + MrBayesPrint (" process is selected as the prior on branch lengths. \n"); + MrBayesPrint (" Extinctionpr -- This parameter sets the prior on the relative extinction rate\n"); + MrBayesPrint (" (turnover), that is, (mu / lambda) in the birth-death model \n"); + MrBayesPrint (" and the general case of fossilized birth-death model. \n"); + MrBayesPrint (" Or, (mu + psi) / lambda in the special case of f-b-d model \n"); + MrBayesPrint (" (fossiltip). Values of this parameter are in range (0,1). \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset extinctionpr = beta(,) \n"); + MrBayesPrint (" prset extinctionpr = fixed() \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This parameter is only relevant if the (fossil) birth-death \n"); + MrBayesPrint (" process is selected as the prior on branch lengths. \n"); + MrBayesPrint (" Fossilizationpr -- This parameter sets the prior on the relative fossilization \n"); + MrBayesPrint (" rate (sampling proportion), psi/(mu+psi), in the fossilized \n"); + MrBayesPrint (" b-d model. Values of this parameter are in range (0,1). \n"); + MrBayesPrint (" If SampleStrat is used to divide up time intervals, it sets \n"); + MrBayesPrint (" the prior for the fossilization parameter in each interval. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset fossilizationpr = beta(,) \n"); + MrBayesPrint (" prset fossilizationpr = fixed() \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This parameter is only relevant if the fossilized birth-death\n"); + MrBayesPrint (" process is selected as the prior on branch lengths. \n"); + MrBayesPrint (" SampleStrat -- This parameter sets the strategy under which species were \n"); + MrBayesPrint (" sampled in the analysis. For the birth-death prior, 'birth- \n"); + MrBayesPrint (" death' (Hohna et al. 2011), three strategies: 'random', \n"); + MrBayesPrint (" 'diversity' and 'cluster' sampling can be used for extant \n"); + MrBayesPrint (" taxa. No extinct sample (fossil) is allowed in this prior. \n"); + MrBayesPrint (" For data with extant and extinct samples, use 'prset brlenspr\n"); + MrBayesPrint (" =clock:fossilization'. (Stadler 2010; Zhang et al. 2015) \n"); + MrBayesPrint (" For the fossilized birth-death prior, 'fossiltip' assumes \n"); + MrBayesPrint (" extant taxa are sampled randomly, and extinct taxa (fossils) \n"); + MrBayesPrint (" are sampled with constant rate and upon sampling the lineage \n"); + MrBayesPrint (" is dead and won't produce any descendant. So fossils are all \n"); + MrBayesPrint (" at tips. Except 'fossiltip', the following strategies allow \n"); + MrBayesPrint (" fossils also being ancestors of other samples. \n"); + MrBayesPrint (" 'random' (default) assumes extant taxa are sampled randomly \n"); + MrBayesPrint (" with prob rho, while fossils are sampled on the birth-death \n"); + MrBayesPrint (" tree with piecewise constant rates, psi_i (i = 1,...,s+1). \n"); + MrBayesPrint (" 'diversity' assumes extant taxa are sampled to maximize \n"); + MrBayesPrint (" diversity, while fossils are sampled randomly. \n"); + MrBayesPrint (" Time is divided by slice samping events in the past, each\n"); + MrBayesPrint (" at time with probability (s >= 0). If rho_i = 0\n"); + MrBayesPrint (" the slice is only used to divide up time intervals not for \n"); + MrBayesPrint (" sampling of fossils. Extant taxa are sampled with prob. \n"); + MrBayesPrint (" (proportion) rho (set in sampleprob). \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset samplestrat = random \n"); + MrBayesPrint (" prset samplestrat = diversity \n"); + MrBayesPrint (" prset samplestrat = cluster \n"); + MrBayesPrint (" prset samplestrat = fossiltip \n"); + MrBayesPrint (" prset samplestrat = random :..., ,... \n"); + MrBayesPrint (" prset samplestrat = diversity :..., ,... \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Sampleprob -- This parameter sets the fraction of extant species that are \n"); + MrBayesPrint (" sampled in the analysis. This is used with the birth-death \n"); + MrBayesPrint (" prior on trees (Yang and Rannala 1997; Stadler 2009; Hohna \n"); + MrBayesPrint (" et al. 2011), and the fossilized birth-death prior (Stadler \n"); + MrBayesPrint (" 2010, Zhang et al. 2015). \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset sampleprob = \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Popsizepr -- This parameter sets the prior on the population size compo- \n"); + MrBayesPrint (" nent of the coalescent parameter. The options are: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset popsizepr = uniform(,) \n"); + MrBayesPrint (" prset popsizepr = lognormal(,) \n"); + MrBayesPrint (" prset popsizepr = normal(,) \n"); + MrBayesPrint (" prset popsizepr = gamma(,) \n"); + MrBayesPrint (" prset popsizepr = fixed() \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This parameter is only relevant if the coalescence process is\n"); + MrBayesPrint (" selected as the prior on branch lengths. Note that the set- \n"); + MrBayesPrint (" ting of 'ploidy' in 'lset' is important for how this para- \n"); + MrBayesPrint (" meter is interpreted. \n"); + MrBayesPrint (" Popvarpr -- In a gene tree - species tree model, this parameter deter- \n"); + MrBayesPrint (" mines whether the population size is the same for the entire \n"); + MrBayesPrint (" species tree ('popvarpr = equal', the default), or varies \n"); + MrBayesPrint (" across branches of the species tree ('popvarpr=variable'). \n"); +/* MrBayesPrint (" Growthpr -- This parameter sets the prior on the exponential growth \n"); + MrBayesPrint (" parameter of the coalescence process. The options are: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset growthpr = uniform(,) \n"); + MrBayesPrint (" prset growthpr = exponential() \n"); + MrBayesPrint (" prset growthpr = fixed() \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This parameter is only relevant if the coalescence \n"); + MrBayesPrint (" process is selected as the prior on branch lengths. \n"); */ + MrBayesPrint (" Nodeagepr -- This parameter specifies the assumptions concerning the age \n"); + MrBayesPrint (" of the terminal and interior nodes in the tree. The default \n"); + MrBayesPrint (" model ('nodeagepr = unconstrained') assumes that all terminal\n"); + MrBayesPrint (" nodes are of the same age while the age of interior nodes is \n"); + MrBayesPrint (" unconstrained. The alternative ('nodeagepr = calibrated') \n"); + MrBayesPrint (" option derives a prior probability distribution on terminal \n"); + MrBayesPrint (" and interior node ages from the calibration settings (see \n"); + MrBayesPrint (" the 'calibrate' command). The 'nodeagepr' parameter is only \n"); + MrBayesPrint (" relevant for clock trees. \n"); + MrBayesPrint (" Clockratepr -- This parameter specifies the prior assumptions concerning the\n"); + MrBayesPrint (" base substitution rate of the tree, measured in expected num-\n"); + MrBayesPrint (" ber of substitutions per site per time unit. The default set-\n"); + MrBayesPrint (" ting is 'Fixed(1.0)', which effectively means that the time \n"); + MrBayesPrint (" unit is the number of expected substitutions per site. \n"); +/* MrBayesPrint (" If you apply age constraints to the tree, the default setting\n"); + MrBayesPrint (" changes automatically to 'Exponential()', where '' (the\n"); + MrBayesPrint (" rate of exponential) is ten times the age of the maximum age \n"); + MrBayesPrint (" constraint. This will give you a very vague prior, which may \n"); + MrBayesPrint (" or may not be adequate for your particular problem. \n"); */ + MrBayesPrint (" If you do not have any age calibrations in the tree, you can \n"); + MrBayesPrint (" still calibrate the tree using 'Clockratepr'. For instance, \n"); + MrBayesPrint (" if you know that your sequence data evolve at a rate of 0.20 \n"); + MrBayesPrint (" substitutions per million years, you might calibrate the tree\n"); + MrBayesPrint (" by fixing the substitution rate to 0.20 using \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset clockratepr = fixed(0.20) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" after which the tree will be calibrated using millions of \n"); + MrBayesPrint (" years as the unit. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" You can also assign a prior probability distribution to the \n"); + MrBayesPrint (" substitution rate, accommodating the uncertainty of it. \n"); + MrBayesPrint (" When you calibrate the nodes, you should properly set this \n"); + MrBayesPrint (" prior to match the time unit of the calibrations. \n"); + MrBayesPrint (" You can choose among normal, lognormal, exponential and gamma\n"); + MrBayesPrint (" distributions for this purpose. For instance, to assign a \n"); + MrBayesPrint (" normal distribution truncated at 0, so that only positive \n"); + MrBayesPrint (" values are allowed, and with mean 0.20 and standard deviation\n"); + MrBayesPrint (" of 0.02, you would use \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset clockratepr = normal(0.20,0.02) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The lognormal distribution is parameterized in terms of the \n"); + MrBayesPrint (" mean and standard deviation on the log scale (natural logs). \n"); + MrBayesPrint (" For instance, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset clockratepr = lognormal(-1.61,0.10) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" specifies a lognormal distribution with a mean of log values \n"); + MrBayesPrint (" of -1.61 and a standard deviation of log values of 0.10. In \n"); + MrBayesPrint (" such a case, the mean value of the lognormal distribution is \n"); + MrBayesPrint (" equal to e^(-1.61 + 0.10^2/2) = 0.20. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Note that the 'Clockratepr' parameter has no effect on non- \n"); + MrBayesPrint (" clock trees. \n"); + MrBayesPrint (" Clockvarpr -- This parameter allows you to specify the type of clock you \n"); + MrBayesPrint (" are assuming. The default is 'strict', which corresponds to \n"); + MrBayesPrint (" the standard clock model where the evolutionary rate is \n"); + MrBayesPrint (" constant throughout the tree. For relaxed clock models, you \n"); + MrBayesPrint (" can use 'cpp', 'tk02', 'igr'. ('mixed' is not working) \n"); + MrBayesPrint (" 'cpp' invokes a relaxed clock model where the rate evolves \n"); + MrBayesPrint (" according to a Compound Poisson Process (CPP) (Huelsenbeck \n"); + MrBayesPrint (" et al., 2000). \n"); + MrBayesPrint (" 'tk02' invokes the Brownian Motion model described by Thorne \n"); + MrBayesPrint (" and Kishino (2002). [autocorrelated lognormal distributions] \n"); + MrBayesPrint (" 'igr' invokes the Independent Gamma Rate (IGR) model where \n"); + MrBayesPrint (" each branch has an independent rate drawn from a gamma \n"); + MrBayesPrint (" distribution (LePage et al., 2007). \n"); + MrBayesPrint (" Each of the relaxed clock models has additional parameters \n"); + MrBayesPrint (" with priors. For the CPP model, it is 'cppratepr' and \n"); + MrBayesPrint (" 'cppmultdevpr'; for the TK02 model, it is 'tk02varpr'; for \n"); + MrBayesPrint (" the IGR model, it is 'igrvarpr'. \n"); + MrBayesPrint (" The 'clockvarpr' parameter is only relevant for clock trees. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For backward compatibility, 'bm' is allowed as a synonym of \n"); + MrBayesPrint (" 'tk02', and 'ibr' as a synonym of 'igr'. \n"); + MrBayesPrint (" Cppratepr -- This parameter allows you to specify a prior probability \n"); + MrBayesPrint (" distribution on the rate of the Poisson process generating \n"); + MrBayesPrint (" changes in the evolutionary rate in the CPP relaxed clock \n"); + MrBayesPrint (" model. You can either fix the rate or associate it with an \n"); + MrBayesPrint (" exponential prior using \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset cppratepr = fixed() \n"); + MrBayesPrint (" prset cppratepr = exponential() \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For instance, if you fix the rate to 2, then on a branch \n"); + MrBayesPrint (" with the length equual to one expresed in terms of average \n"); + MrBayesPrint (" expected number of substitution per site, you expect to see, \n"); + MrBayesPrint (" on average, two rate-modifying events. \n"); + MrBayesPrint (" If you put an exponential(0.1) on the rate, you will be \n"); + MrBayesPrint (" estimating the rate against a prior probability distribution \n"); + MrBayesPrint (" where the expected rate is 10 (= 1/0.1). \n"); + MrBayesPrint (" Cppmultdevpr -- This parameter allows you to specify the standard deviation \n"); + MrBayesPrint (" of the log-normal distribution from which the rate multi- \n"); + MrBayesPrint (" pliers of the CPP relaxed clock model are drawn. The standard\n"); + MrBayesPrint (" deviation is given on the log scale. The default value of 1.0\n"); + MrBayesPrint (" thus corresponds to rate multipliers varying from 0.37 (1/e) \n"); + MrBayesPrint (" to 2.7 (e) when they are +/- one standard deviation from the \n"); + MrBayesPrint (" expected mean. The expected mean of the logarithm of the mul-\n"); + MrBayesPrint (" pliers is fixed to 0, ensuring that the expected mean rate is\n"); + MrBayesPrint (" 1.0. You can change the default value by using \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset cppmultdevpr = fixed() \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" where is the standard deviation on the log scale. \n"); + MrBayesPrint (" TK02varpr -- This parameter allows you to specify the prior probability \n"); + MrBayesPrint (" distribution for the variance of the rate multiplier in the \n"); + MrBayesPrint (" Thorne-Kishino ('Brownian motion') relaxed clock model. \n"); + MrBayesPrint (" Specifically, the parameter specifies the rate at which the \n"); + MrBayesPrint (" variance increases with respect to the base rate of the \n"); + MrBayesPrint (" clock. If you have a branch of a length corresponding to 0.4 \n"); + MrBayesPrint (" expected changes per site according to the base rate of the \n"); + MrBayesPrint (" clock, and the tk02var parameter has a value of 2.0, then the\n"); + MrBayesPrint (" rate multiplier at the end of the branch will be drawn from a\n"); + MrBayesPrint (" lognormal distribution with a variance of 0.4*2.0 (on the \n"); + MrBayesPrint (" linear, not the logarithm scale). The mean is the same as the\n"); + MrBayesPrint (" rate multiplier at the start of the branch (again on the \n"); + MrBayesPrint (" linear scale). \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" You can set the parameter to a fixed value, or specify that \n"); + MrBayesPrint (" it is drawn from an exponential or uniform distribution: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset tk02varpr = fixed() \n"); + MrBayesPrint (" prset tk02varpr = exponential() \n"); + MrBayesPrint (" prset tk02varpr = uniform(,) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For backward compatibility, 'bmvarpr' is allowed as a synonym\n"); + MrBayesPrint (" of 'tko2varpr'. \n"); + MrBayesPrint (" Igrvarpr -- This parameter allows you to specify a prior on the variance \n"); + MrBayesPrint (" of the gamma distribution from which the branch lengths are \n"); + MrBayesPrint (" drawn in the independent branch rate (IGR) relaxed clock \n"); + MrBayesPrint (" model. Specifically, the parameter specifies the rate at \n"); + MrBayesPrint (" which the variance increases with respect to the base rate of\n"); + MrBayesPrint (" the clock. If you have a branch of a length corresponding to \n"); + MrBayesPrint (" 0.4 expected changes per site according to the base rate of \n"); + MrBayesPrint (" the clock, and the igrvar parameter has a value of 2.0, then \n"); + MrBayesPrint (" the effective branch length will be drawn from a distribution\n"); + MrBayesPrint (" with a variance of 0.4*2.0. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" You can set the parameter to a fixed value, or specify that \n"); + MrBayesPrint (" it is drawn from an exponential or uniform distribution: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset igrvarpr = fixed() \n"); + MrBayesPrint (" prset igrvarpr = exponential() \n"); + MrBayesPrint (" prset igrvarpr = uniform(,) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For backward compatibility, 'ibrvarpr' is allowed as a syn- \n"); + MrBayesPrint (" onym of 'igrvarpr'. \n"); + MrBayesPrint (" Ratepr -- This parameter allows you to specify the site specific rates \n"); + MrBayesPrint (" model or any other model that allows different partitions to \n"); + MrBayesPrint (" evolve at different rates. First, you must have defined a \n"); + MrBayesPrint (" partition of the characters. For example, you may define a \n"); + MrBayesPrint (" partition that divides the characters by codon position, if \n"); + MrBayesPrint (" you have DNA data. You can also divide your data using a \n"); + MrBayesPrint (" partition that separates different genes from each other. \n"); + MrBayesPrint (" The next step is to make the desired partition the active one\n"); + MrBayesPrint (" using the set command. For example, if your partition is \n"); + MrBayesPrint (" called \"by_codon\", then you make that the active partition \n"); + MrBayesPrint (" using \"set partition=by_codon\". Now that you have defined \n"); + MrBayesPrint (" and activated a partition, you can specify the rate multi- \n"); + MrBayesPrint (" pliers for the various partitions. The options are: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" prset ratepr = fixed \n"); + MrBayesPrint (" prset ratepr = variable \n"); + MrBayesPrint (" prset ratepr = dirichlet(,,...,) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" If you specify \"fixed\", then the rate multiplier for \n"); + MrBayesPrint (" that partition is set to 1 (i.e., the rate is fixed to \n"); + MrBayesPrint (" the average rate across partitions). On the other hand, \n"); + MrBayesPrint (" if you specify \"variable\", then the rate is allowed to \n"); + MrBayesPrint (" vary across partitions subject to the constraint that the \n"); + MrBayesPrint (" average rate of substitution across the partitions is 1. \n"); + MrBayesPrint (" You must specify a variable rate prior for at least two \n"); + MrBayesPrint (" partitions, otherwise the option is not activated when \n"); + MrBayesPrint (" calculating likelihoods. The variable option automatically \n"); + MrBayesPrint (" associates the partition rates with a dirichlet(1,...,1) \n"); + MrBayesPrint (" prior. The dirichlet option is an alternative way of setting \n"); + MrBayesPrint (" a partition rate to be variable, and also gives accurate \n"); + MrBayesPrint (" control of the shape of the prior. The parameters of the \n"); + MrBayesPrint (" Dirichlet are listed in the order of the partitions that the \n"); + MrBayesPrint (" ratepr is applied to. For instance, \"prset applyto=(1,3,4) \n"); + MrBayesPrint (" ratepr = dirichlet(10,40,15)\" would set the Dirichlet para- \n"); + MrBayesPrint (" meter 10 to partition 1, 40 to partition 3, and 15 to parti- \n"); + MrBayesPrint (" tion 4. The Dirichlet distribution is applied to the weighted\n"); + MrBayesPrint (" rates; that is, it weights the partition rates according to \n"); + MrBayesPrint (" the number of included characters in each partition. \n"); + MrBayesPrint (" Generatepr -- This parameter is similar to 'Ratepr' but applies to gene \n"); + MrBayesPrint (" trees in the multispecies coalescent, whereas 'Ratepr' app- \n"); + MrBayesPrint (" lies to partitions within genes. \n"); + MrBayesPrint (" \n"); + if (numCurrentDivisions == 0) + tempInt = 1; + else + tempInt = numCurrentDivisions; + for (i=0; itRatioPr); + if (!strcmp(mp->tRatioPr, "Beta")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->tRatioDir[0], mp->tRatioDir[1]); + else + MrBayesPrint ("(%1.1lf)\n", mp->tRatioFix); + + MrBayesPrint (" Revmatpr Dirichlet/Fixed %s", mp->revMatPr); + if (!strcmp(mp->revMatPr, "Dirichlet")) + MrBayesPrint ("(%1.1lf,%1.1lf,%1.1lf,%1.1lf,%1.1lf,%1.1lf)\n", mp->revMatDir[0], + mp->revMatDir[1], mp->revMatDir[2], mp->revMatDir[3], + mp->revMatDir[4], mp->revMatDir[5]); + else + MrBayesPrint ("(%1.1lf,%1.1lf,%1.1lf,%1.1lf,%1.1lf,%1.1lf)\n", mp->revMatFix[0], + mp->revMatFix[1], mp->revMatFix[2], mp->revMatFix[3], + mp->revMatFix[4], mp->revMatFix[5]); + + MrBayesPrint (" Aamodelpr Fixed/Mixed %s", mp->aaModelPr); + if (!strcmp(mp->aaModelPr, "Fixed")) + MrBayesPrint ("(%s)\n", mp->aaModel); + else + MrBayesPrint ("\n"); + + MrBayesPrint (" Aarevmatpr Dirichlet/Fixed %s", mp->aaRevMatPr); + if (!strcmp(mp->aaRevMatPr, "Dirichlet")) + { + for (j=1; j<190; j++) + if (AreDoublesEqual (mp->aaRevMatDir[0], mp->aaRevMatDir[j], 0.00001) == NO) + break; + if (j==190) + MrBayesPrint ("(%1.1lf,%1.1lf,...)\n", mp->aaRevMatDir[0], mp->aaRevMatDir[0]); + else + MrBayesPrint (" (use 'Showmodel' to see values set by user)\n"); + } + else + { + for (j=1; j<190; j++) + if (AreDoublesEqual (mp->aaRevMatFix[0], mp->aaRevMatFix[j], 0.00001) == NO) + break; + if (j==190) + MrBayesPrint ("(%1.1lf,%1.1lf,...)\n", mp->aaRevMatFix[0], mp->aaRevMatFix[0]); + else + MrBayesPrint (" (use 'Showmodel' to see values set by user)\n"); + } + + MrBayesPrint (" Omegapr Dirichlet/Fixed %s", mp->omegaPr); + if (!strcmp(mp->omegaPr, "Dirichlet")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->omegaDir[0], mp->omegaDir[1]); + else + MrBayesPrint ("(%1.1lf)\n", mp->omegaFix); + + MrBayesPrint (" Ny98omega1pr Beta/Fixed %s", mp->ny98omega1pr); + if (!strcmp(mp->ny98omega1pr, "Beta")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->ny98omega1Beta[0], mp->ny98omega1Beta[1]); + else if (!strcmp(mp->ny98omega1pr, "Fixed")) + MrBayesPrint ("(%1.1lf)\n", mp->ny98omega1Fixed); + + MrBayesPrint (" Ny98omega3pr Uniform/Exponential/Fixed %s", mp->ny98omega3pr); + if (!strcmp(mp->ny98omega3pr, "Uniform")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->ny98omega3Uni[0], mp->ny98omega3Uni[1]); + else if (!strcmp(mp->ny98omega3pr, "Exponential")) + MrBayesPrint ("(%1.1lf)\n", mp->ny98omega3Exp); + else + MrBayesPrint ("(%1.1lf)\n", mp->ny98omega3Fixed); + + MrBayesPrint (" M3omegapr Exponential/Fixed %s", mp->m3omegapr); + if (!strcmp(mp->m3omegapr, "Exponential")) + MrBayesPrint ("\n"); + else if (!strcmp(mp->m3omegapr, "Fixed")) + MrBayesPrint ("(%1.1lf,%1.1lf,%1.1lf)\n", mp->m3omegaFixed[0], mp->m3omegaFixed[1], mp->m3omegaFixed[2]); + + MrBayesPrint (" Codoncatfreqs Dirichlet/Fixed %s", mp->codonCatFreqPr); + if (!strcmp(mp->codonCatFreqPr, "Dirichlet")) + MrBayesPrint ("(%1.1lf,%1.1lf,%1.1lf)\n", mp->codonCatDir[0], mp->codonCatDir[1], mp->codonCatDir[2]); + else + MrBayesPrint ("(%1.1lf,%1.1lf,%1.1lf)\n", mp->codonCatFreqFix[0], mp->codonCatFreqFix[1], mp->codonCatFreqFix[2]); + + MrBayesPrint (" Statefreqpr Dirichlet/Fixed %s", mp->stateFreqPr); + if (!strcmp(mp->stateFreqPr, "Dirichlet")) + { + if (mp->dataType == DNA || mp->dataType == RNA) + { + if (!strcmp(mp->nucModel, "4by4")) + MrBayesPrint ("(%1.1lf,%1.1lf,%1.1lf,%1.1lf)\n", mp->stateFreqsDir[0], mp->stateFreqsDir[1], + mp->stateFreqsDir[2], mp->stateFreqsDir[3]); + else + MrBayesPrint ("\n"); + } + else if (mp->dataType == RESTRICTION) + { + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->stateFreqsDir[0], mp->stateFreqsDir[1]); + } + else + MrBayesPrint ("\n"); + } + else if (!strcmp(mp->stateFreqPr, "Fixed")) + { + if (mp->dataType == DNA || mp->dataType == RNA) + { + if (!strcmp(mp->nucModel, "4by4")) + MrBayesPrint ("(%1.1lf,%1.1lf,%1.1lf,%1.1lf)\n", mp->stateFreqsFix[0], mp->stateFreqsFix[1], + mp->stateFreqsFix[2], mp->stateFreqsFix[3]); + else + MrBayesPrint ("\n"); + } + else if (mp->dataType == RESTRICTION) + { + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->stateFreqsFix[0], mp->stateFreqsFix[1]); + } + else + MrBayesPrint ("\n"); + } + + MrBayesPrint (" Shapepr Uniform/Exponential/Fixed %s", mp->shapePr); + if (!strcmp(mp->shapePr, "Uniform")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->shapeUni[0], mp->shapeUni[1]); + else if (!strcmp(mp->shapePr, "Exponential")) + MrBayesPrint ("(%1.1lf)\n", mp->shapeExp); + else + MrBayesPrint ("(%1.1lf)\n", mp->shapeFix); + + MrBayesPrint (" Ratecorrpr Uniform/Fixed %s", mp->adGammaCorPr); + if (!strcmp(mp->adGammaCorPr, "Uniform")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->corrUni[0], mp->corrUni[1]); + else + MrBayesPrint ("(%1.1lf)\n", mp->corrFix); + + MrBayesPrint (" Pinvarpr Uniform/Fixed %s", mp->pInvarPr); + if (!strcmp(mp->pInvarPr, "Uniform")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->pInvarUni[0], mp->pInvarUni[1]); + else + MrBayesPrint ("(%1.1lf)\n", mp->pInvarFix); + + MrBayesPrint (" Covswitchpr Uniform/Exponential/Fixed %s", mp->covSwitchPr); + if (!strcmp(mp->covSwitchPr, "Uniform")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->covswitchUni[0], mp->covswitchUni[1]); + else if (!strcmp(mp->covSwitchPr, "Exponential")) + MrBayesPrint ("(%1.1lf)\n", mp->covswitchExp); + else + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->covswitchFix[0], mp->covswitchFix[1]); + + MrBayesPrint (" Symdirihyperpr Uniform/Exponential/Fixed %s", mp->symPiPr); + if (!strcmp(mp->symPiPr, "Uniform")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->symBetaUni[0], mp->symBetaUni[1]); + else if (!strcmp(mp->covSwitchPr, "Exponential")) + MrBayesPrint ("(%1.1lf)\n", mp->symBetaExp); + else + { + if (mp->symBetaFix < 0) + MrBayesPrint ("(Infinity)\n"); + else + MrBayesPrint ("(%1.1lf)\n", mp->symBetaFix); + } + + MrBayesPrint (" Topologypr Uniform/Constraints/Fixed/ %s", mp->topologyPr); + if (!strcmp(mp->topologyPr, "Constraints")) + { + MrBayesPrint ("("); + for (j=0; jactiveConstraints[j] == YES) + { + MrBayesPrint ("%d", j+1); + break; + } + } + for (j++; jactiveConstraints[j] == YES) + { + MrBayesPrint (",%d", j+1); + } + } + MrBayesPrint (")\n"); + } + else if (!strcmp(mp->topologyPr, "Fixed")) + MrBayesPrint("(%s)\n", userTree[mp->topologyFix]->name); + else + MrBayesPrint ("\n"); + MrBayesPrint (" Speciestree \n"); + + MrBayesPrint (" Brlenspr Unconstrained/Clock/Fixed %s", mp->brlensPr); + if (!strcmp(mp->brlensPr, "Unconstrained")) + { + if (!strcmp(mp->unconstrainedPr, "Uniform")) + MrBayesPrint (":Uni(%1.1lf,%1.1lf)\n", mp->brlensUni[0], mp->brlensUni[1]); + else if (!strcmp(mp->unconstrainedPr, "GammaDir")) + MrBayesPrint (":GammaDir(%1.1lf,%1.3lf,%1.1lf,%1.1lf)\n", + mp->brlensDir[0], mp->brlensDir[1], mp->brlensDir[2], mp->brlensDir[3]); + else if (!strcmp(mp->unconstrainedPr, "invGamDir")) + MrBayesPrint (":invGamDir(%1.1lf,%1.3lf,%1.1lf,%1.1lf)\n", + mp->brlensDir[0], mp->brlensDir[1], mp->brlensDir[2], mp->brlensDir[3]); + else if (!strcmp(mp->unconstrainedPr, "twoExp")) + MrBayesPrint (":twoExp(%1.1lf,%1.1lf)\n", mp->brlens2Exp[0], mp->brlens2Exp[1]); + else + MrBayesPrint (":Exp(%1.1lf)\n", mp->brlensExp); + } + else if (!strcmp(mp->brlensPr, "Clock")) + { + if (!strcmp(mp->clockPr,"Fixed")) + MrBayesPrint (":%s(%s)\n", mp->clockPr, userTree[mp->brlensFix]->name); + else + MrBayesPrint (":%s\n", mp->clockPr); + } + else if (!strcmp(mp->brlensPr, "Fixed")) + MrBayesPrint("(%s)\n", userTree[mp->brlensFix]->name); + + MrBayesPrint (" Treeagepr Gamma/Uniform/Fixed/ %s\n", mp->treeAgePr.name); + MrBayesPrint (" Truncatednormal/Lognormal/ \n"); + MrBayesPrint (" Offsetlognormal/Offsetgamma/ \n"); + MrBayesPrint (" Offsetexponential \n"); + + MrBayesPrint (" Speciationpr Uniform/Exponential/Fixed %s", mp->speciationPr); + if (!strcmp(mp->speciationPr, "Uniform")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->speciationUni[0], mp->speciationUni[1]); + else if (!strcmp(mp->speciationPr, "Exponential")) + MrBayesPrint ("(%1.1lf)\n", mp->speciationExp); + else + MrBayesPrint ("(%1.1lf)\n", mp->speciationFix); + + MrBayesPrint (" Extinctionpr Beta/Fixed %s", mp->extinctionPr); + if (!strcmp(mp->extinctionPr, "Beta")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->extinctionBeta[0], mp->extinctionBeta[1]); + else + MrBayesPrint ("(%1.1lf)\n", mp->extinctionFix); + + MrBayesPrint (" Fossilizationpr Beta/Fixed %s", mp->fossilizationPr); + if (!strcmp(mp->fossilizationPr, "Beta")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->fossilizationBeta[0], mp->fossilizationBeta[1]); + else + MrBayesPrint ("(%1.2lf)\n", mp->fossilizationFix); + + MrBayesPrint (" SampleStrat Random/Diversity/Cluster/ %s\n", mp->sampleStrat); + MrBayesPrint (" FossilTip \n"); + // if (!strcmp(mp->sampleStrat, "Random") || !strcmp(mp->sampleStrat, "Diversity")) + + MrBayesPrint (" Sampleprob %1.8lf\n", mp->sampleProb); + + MrBayesPrint (" Popsizepr Lognormal/Gamma/Uniform/ %s", mp->popSizePr); + if (!strcmp(mp->popSizePr, "Uniform")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->popSizeUni[0], mp->popSizeUni[1]); + else if (!strcmp(mp->popSizePr, "Lognormal")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->popSizeLognormal[0], mp->popSizeLognormal[1]); + else if (!strcmp(mp->popSizePr, "Normal")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->popSizeNormal[0], mp->popSizeNormal[1]); + else if (!strcmp(mp->popSizePr, "Gamma")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->popSizeGamma[0], mp->popSizeGamma[1]); + else + MrBayesPrint ("(%1.1lf)\n", mp->popSizeFix); + MrBayesPrint (" Normal/Fixed \n"); + + MrBayesPrint (" Popvarpr Equal/Variable %s\n", mp->popVarPr); + + /* + MrBayesPrint (" Growthpr Uniform/Exponential/ \n"); + MrBayesPrint (" Fixed/Normal %s", mp->growthPr); + if (!strcmp(mp->growthPr, "Uniform")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->growthUni[0], mp->growthUni[1]); + else if (!strcmp(mp->growthPr, "Exponential")) + MrBayesPrint ("(%1.1lf)\n", mp->growthExp); + else if (!strcmp(mp->growthPr, "Normal")) + MrBayesPrint ("(%1.1lf,%1.1lf)\n", mp->growthNorm[0], mp->growthNorm[1]); + else + MrBayesPrint ("(%1.1lf)\n", mp->growthFix); + */ + + MrBayesPrint (" Nodeagepr Unconstrained/Calibrated %s\n", mp->nodeAgePr); + + MrBayesPrint (" Clockratepr Fixed/Normal/Lognormal/ %s", mp->clockRatePr); + if (!strcmp(mp->clockRatePr, "Fixed")) + MrBayesPrint ("(%1.2lf)\n", mp->clockRateFix); + else if (!strcmp(mp->clockRatePr,"Exponential")) + MrBayesPrint ("(%1.2lf)\n", mp->clockRateExp); + else if (!strcmp(mp->clockRatePr,"Normal")) + MrBayesPrint ("(%1.2lf,%1.2lf)\n", mp->clockRateNormal[0], mp->clockRateNormal[1]); + else if (!strcmp(mp->clockRatePr,"Lognormal")) + MrBayesPrint ("(%1.2lf,%1.2lf)\n", mp->clockRateLognormal[0], mp->clockRateLognormal[1]); + else + { + assert (!strcmp(mp->clockRatePr,"Gamma")); + MrBayesPrint ("(%1.2lf,%1.2lf)\n", mp->clockRateGamma[0], mp->clockRateGamma[1]); + } + MrBayesPrint (" Exponential/Gamma \n"); + + MrBayesPrint (" Clockvarpr Strict/Cpp/TK02/Igr/Mixed %s\n", mp->clockVarPr); + + MrBayesPrint (" Cppratepr Fixed/Exponential %s", mp->cppRatePr); + if (!strcmp(mp->cppRatePr, "Fixed")) + MrBayesPrint ("(%1.2lf)\n", mp->cppRateFix); + else /* if (!strcmp(mp->cppRatePr,"Exponential")) */ + MrBayesPrint ("(%1.2lf)\n", mp->cppRateExp); + + MrBayesPrint (" Cppmultdevpr Fixed %s", mp->cppMultDevPr); + MrBayesPrint ("(%1.2lf)\n", mp->cppMultDevFix); + + MrBayesPrint (" TK02varpr Fixed/Exponential/Uniform %s", mp->tk02varPr); + if (!strcmp(mp->tk02varPr, "Fixed")) + MrBayesPrint ("(%1.2lf)\n", mp->tk02varFix); + else if (!strcmp(mp->tk02varPr,"Exponential")) + MrBayesPrint ("(%1.2lf)\n", mp->tk02varExp); + else + { + assert (!strcmp(mp->tk02varPr,"Uniform")); + MrBayesPrint ("(%1.2lf,%1.2lf)\n", mp->tk02varUni[0], mp->tk02varUni[1]); + } + + MrBayesPrint (" Igrvarpr Fixed/Exponential/Uniform %s", mp->igrvarPr); + if (!strcmp(mp->igrvarPr, "Fixed")) + MrBayesPrint ("(%1.2lf)\n", mp->igrvarFix); + else if (!strcmp(mp->igrvarPr,"Exponential")) + MrBayesPrint ("(%1.2lf)\n", mp->igrvarExp); + else + { + assert (!strcmp(mp->igrvarPr,"Uniform")); + MrBayesPrint ("(%1.2lf,%1.2lf)\n", mp->igrvarUni[0], mp->igrvarUni[1]); + } + + /* MrBayesPrint (" Mixedvarpr Fixed/Exponential/Uniform %s", mp->mixedvarPr); + if (!strcmp(mp->mixedvarPr, "Fixed")) + MrBayesPrint ("(%1.2lf)\n", mp->mixedvarFix); + else if (!strcmp(mp->mixedvarPr,"Exponential")) + MrBayesPrint ("(%1.2lf)\n", mp->mixedvarExp); + else + { + assert (!strcmp(mp->mixedvarPr,"Uniform")); + MrBayesPrint ("(%1.2lf,%1.2lf)\n", mp->mixedvarUni[0], mp->mixedvarUni[1]); + } */ + + MrBayesPrint (" Ratepr Fixed/Variable=Dirichlet %s", mp->ratePr); + if (!strcmp(mp->ratePr, "Dirichlet")) + MrBayesPrint ("(...,%1.1lf,...)\n", mp->ratePrDir); + else + MrBayesPrint ("\n"); + + MrBayesPrint (" Generatepr Fixed/Variable=Dirichlet %s", mp->generatePr); + if (!strcmp(mp->generatePr, "Dirichlet")) + MrBayesPrint ("(...,%1.1lf,...)\n", mp->generatePrDir); + else + MrBayesPrint ("\n"); + + MrBayesPrint (" ------------------------------------------------------------------ \n"); + MrBayesPrint (" \n"); + } + } + else if (!strcmp(helpTkn, "Ctype")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Ctype \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command sets the character ordering for standard-type data. The \n"); + MrBayesPrint (" correct usage is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" ctype : \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The available options for the specifier are: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" unordered -- Movement directly from one state to another is \n"); + MrBayesPrint (" allowed in an instant of time. \n"); + MrBayesPrint (" ordered -- Movement is only allowed between adjacent characters. \n"); + MrBayesPrint (" For example, perhaps only between 0 <-> 1 and 1 <-> 2 \n"); + MrBayesPrint (" for a three state character ordered as 0 - 1 - 2. \n"); + MrBayesPrint (" irreversible -- Rates of change for losses are 0. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The characters to which the ordering is applied is specified in manner \n"); + MrBayesPrint (" that is identical to commands such as \"include\" or \"exclude\". For \n"); + MrBayesPrint (" example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" ctype ordered: 10 23 45 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" defines charactes 10, 23, and 45 to be of type ordered. Similarly, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" ctype irreversible: 54 - 67 71-92 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" defines characters 54 to 67 and characters 71 to 92 to be of type \n"); + MrBayesPrint (" irreversible. You can use the \".\" to denote the last character, and \n"); + MrBayesPrint (" \"all\" to denote all of the characters. Finally, you can use the \n"); + MrBayesPrint (" specifier \"\\\" to apply the ordering to every n-th character or \n"); + MrBayesPrint (" you can use predefined charsets to specify the character. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Only one ordering can be used on any specific application of ctype. \n"); + MrBayesPrint (" If you want to apply different orderings to different characters, then \n"); + MrBayesPrint (" you need to use ctype multiple times. For example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" ctype ordered: 1-50 \n"); + MrBayesPrint (" ctype irreversible: 51-100 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" sets characters 1 to 50 to be ordered and characters 51 to 100 to be \n"); + MrBayesPrint (" irreversible. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The ctype command is only sensible with morphological (here called \n"); + MrBayesPrint (" \"standard\") characters. The program ignores attempts to apply char- \n"); + MrBayesPrint (" acter orderings to other types of characters, such as DNA characters. \n"); + + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Propset")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Propset \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command allows the user to change the details of the MCMC samplers \n"); + MrBayesPrint (" (moves) that update the state of the chain. The useage is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" propset $= \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Assume we have a topology parameter called 'Tau{all}', which is sampled by \n"); + MrBayesPrint (" the move 'ExtTBR(Tau{all})' (note that the parameter name is included in the \n"); + MrBayesPrint (" move name). This move has three tuning parameters: (1) 'prob', the relative \n"); + MrBayesPrint (" proposal probability (a weight defining its probability relative to other \n"); + MrBayesPrint (" moves); (2) 'p_ext', the extension probability; and (3) 'lambda', the tuning \n"); + MrBayesPrint (" parameter of the branch length multiplier. A list of the tuning parameters is \n"); + MrBayesPrint (" available by using 'Showmoves' (see below). To change the relative proposal \n"); + MrBayesPrint (" probability to 20 and the extension probability to 0.7, use: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" propset etbr(tau{all})$prob=20 etbr(tau{all})$p_ext=0.7 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This change would apply to all chains in all runs. It is also possible to set \n"); + MrBayesPrint (" the tuning parameters of individual runs and chains using the format: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" propset $(,)= \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" where and are the index numbers of the run and chain for which \n"); + MrBayesPrint (" you want to change the value. If you leave out the index of the run, the \n"); + MrBayesPrint (" change will apply to all runs; if you leave out the index of the chain, the \n"); + MrBayesPrint (" change will similarly apply to all chains. To switch off the exttbr(tau{all}) \n"); + MrBayesPrint (" move in chain 2 of all runs, use: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" propset etbr(tau{all})$prob(,2)=0 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" It is important to note that all moves are not available until the model has \n"); + MrBayesPrint (" been completely defined. Any change to the model will cause all proposal \n"); + MrBayesPrint (" tuning parameters to return to their default values. To see a list of all the \n"); + MrBayesPrint (" moves that are currently switched on for the model, use 'showmoves'. You can \n"); + MrBayesPrint (" also see other available moves by using 'showmoves allavailable=yes'. A list \n"); + MrBayesPrint (" of the moves for each parameter in the model is available by using the command\n"); + MrBayesPrint (" 'Showparams'. If you change proposal probabilities, make sure that all \n"); + MrBayesPrint (" parameters that are not fixed in your model have at least one move switched \n"); + MrBayesPrint (" on. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" One word of warning: You should be extremely careful when modifying any \n"); + MrBayesPrint (" of the chain parameters using 'propset'. It is quite possible to completely \n"); + MrBayesPrint (" wreck any hope of achieving convergence by inappropriately setting the \n"); + MrBayesPrint (" tuning parameters. In general, you want to set move tuning parameters such \n"); + MrBayesPrint (" that the acceptance rate of the move is intermediate (we suggest targeting \n"); + MrBayesPrint (" the range 10%% to 70%% acceptance, if possible). If the acceptance rate is \n"); + MrBayesPrint (" outside of this range, the MCMC chain will probably not sample that parameter \n"); + MrBayesPrint (" very efficiently. The acceptance rates for all moves in the cold chain(s) are \n"); + MrBayesPrint (" summarized at the end of each run in the screen output. The acceptance rates \n"); + MrBayesPrint (" (potentially for all chains, cold and heated) are also printed to the .mcmc \n"); + MrBayesPrint (" file if Mcmc convergence diagnostics are turned on (using 'Mcmc' or 'Mcmcp'). \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Log")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Log \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command allows output to the screen to also be output to a file. \n"); + MrBayesPrint (" The useage is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" log start/stop filename= append/replace \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The options are: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Start/Stop -- Starts or stops logging of output to file. \n"); + MrBayesPrint (" Append/Replace -- Either append to or replace existing file. \n"); + MrBayesPrint (" Filename -- Name of log file (currently, the name of the log \n"); + MrBayesPrint (" file is \"%s\").\n", logFileName); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Translate")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Translate \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command is used by MrBayes to specify the mapping between taxon names \n"); + MrBayesPrint (" and taxon numbers in a Nexus tree file. For instance, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" translate \n"); + MrBayesPrint (" 1 Homo, \n"); + MrBayesPrint (" 2 Pan, \n"); + MrBayesPrint (" 3 Gorilla, \n"); + MrBayesPrint (" 4 Hylobates; \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" establishes that the taxon labeled 1 in the trees that follow is Homo, the \n"); + MrBayesPrint (" taxon labeled 2 is Pan, etc. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Usertree")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Usertree \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command allows you to specify a user tree. The user tree can then be \n"); + MrBayesPrint (" used as a starting tree for a MCMC analysis. The format for the command is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" usertree = \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" usertree = (A,B,(C,D)) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" specifies an unrooted tree of four species. Note that the program re- \n"); + MrBayesPrint (" quires that trees are binary (i.e., strictly bifurcating). Hence, there \n"); + MrBayesPrint (" can be only one three-way split, as shown in the example. If the tree \n"); + MrBayesPrint (" is not binary, the program will return an error. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Mcmc")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Mcmc \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command starts the Markov chain Monte Carlo (MCMC) analysis. The \n"); + MrBayesPrint (" posterior probability of phylogenetic trees (and other parameters of the \n"); + MrBayesPrint (" substitution model) cannot be determined analytically. Instead, MCMC is \n"); + MrBayesPrint (" used to approximate the posterior probabilities of trees by drawing \n"); + MrBayesPrint (" (dependent) samples from the posterior distribution. This program can \n"); + MrBayesPrint (" implement a variant of MCMC called \"Metropolis-coupled Markov chain Monte \n"); + MrBayesPrint (" Carlo\", or MCMCMC for short. Basically, \"Nchains\" are run, with \n"); + MrBayesPrint (" Nchains - 1 of them heated. The chains are labelled 1, 2, ..., Nchains. \n"); + MrBayesPrint (" The heat that is applied to the i-th chain is B = 1 / (1 + temp X i). B \n"); + MrBayesPrint (" is the power to which the posterior probability is raised. When B = 0, all \n"); + MrBayesPrint (" trees have equal probability and the chain freely visits trees. B = 1 is \n"); + MrBayesPrint (" the \"cold\" chain (or the distribution of interest). MCMCMC can mix \n"); + MrBayesPrint (" better than ordinary MCMC; after all of the chains have gone through \n"); + MrBayesPrint (" one cycle, two chains are chosen at random and an attempt is made to \n"); + MrBayesPrint (" swap the states (with the probability of a swap being determined by the \n"); + MrBayesPrint (" Metropolis et al. equation). This allows the chain to potentially jump \n"); + MrBayesPrint (" a valley in a single bound. The correct usage is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" mcmc = ... = \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" mcmc ngen=100000 nchains=4 temp=0.5 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" performs a MCMCMC analysis with four chains with the temperature set to \n"); + MrBayesPrint (" 0.5. The chains would be run for 100,000 cycles. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Options: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Ngen -- This option sets the number of cycles for the MCMC alg- \n"); + MrBayesPrint (" orithm. This should be a big number as you want the chain \n"); + MrBayesPrint (" to first reach stationarity, and then remain there for \n"); + MrBayesPrint (" enough time to take lots of samples. \n"); + MrBayesPrint (" Nruns -- How many independent analyses are started simultaneously. \n"); + MrBayesPrint (" Nchains -- How many chains are run for each analysis for the MCMCMC \n"); + MrBayesPrint (" variant. The default is 4: 1 cold chain and 3 heated chains. \n"); + MrBayesPrint (" If Nchains is set to 1, MrBayes will use regular MCMC sam- \n"); + MrBayesPrint (" pling, without heating. \n"); + MrBayesPrint (" Temp -- The temperature parameter for heating the chains. The higher \n"); + MrBayesPrint (" the temperature, the more likely the heated chains are to \n"); + MrBayesPrint (" move between isolated peaks in the posterior distribution. \n"); + MrBayesPrint (" However, excessive heating may lead to very low acceptance \n"); + MrBayesPrint (" rates for swaps between different chains. Before changing the \n"); + MrBayesPrint (" default setting, however, note that the acceptance rates of \n"); + MrBayesPrint (" swaps tend to fluctuate during the burn-in phase of the run. \n"); + MrBayesPrint (" Reweight -- Here, you specify three numbers, that respectively represent \n"); + MrBayesPrint (" the percentage of characters to decrease in weight, the \n"); + MrBayesPrint (" percentage of characters to increase in weight, and the \n"); + MrBayesPrint (" increment. An increase/decrease in weight is acheived by \n"); + MrBayesPrint (" replicating/removing a character in the matrix. This is \n"); + MrBayesPrint (" only done to non-cold chains. The format for this parameter \n"); + MrBayesPrint (" is \"reweight=(,)\" or \"reweight=(, \n"); + MrBayesPrint (" ,)\". \n"); + MrBayesPrint (" Swapfreq -- This specifies how often swaps of states between chains are \n"); + MrBayesPrint (" attempted. You must be running at least two chains for this \n"); + MrBayesPrint (" option to be relevant. The default is Swapfreq=1, resulting \n"); + MrBayesPrint (" in Nswaps (see below) swaps being tried each generation of \n"); + MrBayesPrint (" the run. If Swapfreq is set to 10, then Nswaps swaps will be \n"); + MrBayesPrint (" tried every tenth generation of the run. \n"); + MrBayesPrint (" Nswaps -- The number of swaps tried for each swapping generation of the \n"); + MrBayesPrint (" chain (see also Swapfreq). \n"); + MrBayesPrint (" Samplefreq -- This specifies how often the Markov chain is sampled. You \n"); + MrBayesPrint (" can sample the chain every cycle, but this results in very \n"); + MrBayesPrint (" large output files. Thinning the chain is a way of making \n"); + MrBayesPrint (" these files smaller and making the samples more independent. \n"); + MrBayesPrint (" Printfreq -- This specifies how often information about the chain is \n"); + MrBayesPrint (" printed to the screen. \n"); + MrBayesPrint (" Printall -- If set to NO, only cold chains in a MCMC analysis are printed \n"); + MrBayesPrint (" to screen. If set to YES, both cold and heated chains will be \n"); + MrBayesPrint (" output. This setting only affects the printing to screen, it \n"); + MrBayesPrint (" does not change the way values are written to file. \n"); + MrBayesPrint (" Printmax -- The maximum number of chains to print to screen. \n"); + MrBayesPrint (" Mcmcdiagn -- Determines whether acceptance ratios of moves and swaps will \n"); + MrBayesPrint (" be printed to file. The file will be named similarly to the \n"); + MrBayesPrint (" '.p' and '.t' files, but will have the ending '.mcmc'. If \n"); + MrBayesPrint (" more than one independent analysis is run simultaneously (see \n"); + MrBayesPrint (" Nruns below), convergence diagnostics for tree topology will \n"); + MrBayesPrint (" also be printed to this file. The convergence diagnostic used \n"); + MrBayesPrint (" is the average standard deviation in partition frequency \n"); + MrBayesPrint (" values across independent analyses. The Burnin setting (see \n"); + MrBayesPrint (" below) determines how many samples will be discarded as burnin\n"); + MrBayesPrint (" before calculating the partition frequencies. The Minpartfreq \n"); + MrBayesPrint (" setting (see below) determines the minimum partition frequency\n"); + MrBayesPrint (" required for a partition to be included in the calculation. As\n"); + MrBayesPrint (" the independent analyses approach stationarity (converge), the\n"); + MrBayesPrint (" value of the diagnostic is expected to approach zero. \n"); + MrBayesPrint (" Diagnfreq -- The number of generations between the calculation of MCMC \n"); + MrBayesPrint (" diagnostics (see Mcmcdiagn above). \n"); + MrBayesPrint (" Diagnstat -- The statistic to use for run-time convergence diagnostics. \n"); + MrBayesPrint (" Choices are 'Avgstddev' for average standard deviation of \n"); + MrBayesPrint (" split frequencies and 'Maxstddev' for maximum standard devia- \n"); + MrBayesPrint (" tion of split frequencies. \n"); + MrBayesPrint (" Savetrees -- If you are using a relative burnin for run-time convergence \n"); + MrBayesPrint (" diagnostics, tree samples need to be deleted from split \n"); + MrBayesPrint (" frequency counters as the cut-off point for the burnin moves \n"); + MrBayesPrint (" during the run. If 'Savetrees' is set to 'No', tree samples \n"); + MrBayesPrint (" to be discarded are read back in from file. If 'Savetrees' is \n"); + MrBayesPrint (" set to 'Yes', the tree samples to be removed will be stored \n"); + MrBayesPrint (" in the internal memory instead. This can use up a lot of \n"); + MrBayesPrint (" memory in large analyses. \n"); + MrBayesPrint (" Minpartfreq -- The minimum frequency required for a partition to be included \n"); + MrBayesPrint (" in the calculation of the topology convergence diagnostic. The\n"); + MrBayesPrint (" partition is included if the minimum frequency is reached in \n"); + MrBayesPrint (" at least one of the independent tree samples that are com- \n"); + MrBayesPrint (" pared. \n"); + MrBayesPrint (" Allchains -- If this option is set to YES, acceptance ratios for moves are \n"); + MrBayesPrint (" recorded for all chains, cold or heated. By default, only the \n"); + MrBayesPrint (" acceptance ratios for the cold chain are recorded. \n"); + MrBayesPrint (" Allcomps -- If this option is set to YES, topological convergence diag- \n"); + MrBayesPrint (" nostics are calculated over all pairwise comparisons of runs. \n"); + MrBayesPrint (" If it is set to NO, only the overall value is reported. \n"); + MrBayesPrint (" Relburnin -- If this option is set to YES, then a proportion of the sampled\n"); + MrBayesPrint (" values will be discarded as burnin when calculating the con- \n"); + MrBayesPrint (" vergence diagnostic. The proportion to be discarded is set \n"); + MrBayesPrint (" with Burninfrac (see below). When the Relburnin option is set \n"); + MrBayesPrint (" to NO, then a specific number of samples will be discarded \n"); + MrBayesPrint (" instead. This number is set by Burnin (see below). \n"); + MrBayesPrint (" Burnin -- Determines the number of samples (not generations) that will \n"); + MrBayesPrint (" be discarded when convergence diagnostics are calculated. \n"); + MrBayesPrint (" The value of this option is only relevant when Relburnin is \n"); + MrBayesPrint (" set to NO. \n"); + MrBayesPrint (" BurninFrac -- Determines the fraction of samples that will be discarded \n"); + MrBayesPrint (" when convergence diagnostics are calculated. The value of \n"); + MrBayesPrint (" this option is only relevant when Relburnin is set to YES. \n"); + MrBayesPrint (" Example: A value for this option of 0.25 means that 25%% of \n"); + MrBayesPrint (" the samples will be discarded. \n"); + MrBayesPrint (" Stoprule -- If this option is set to NO, then the chain is run the number \n"); + MrBayesPrint (" of generations determined by Ngen. If it is set to YES, and \n"); + MrBayesPrint (" topological convergence diagnostics are calculated (Mcmcdiagn \n"); + MrBayesPrint (" is set to YES), then the chain will be stopped before the pre-\n"); + MrBayesPrint (" determined number of generations if the convergence diagnostic\n"); + MrBayesPrint (" falls below the stop value. \n"); + MrBayesPrint (" Stopval -- The critical value for the topological convergence diagnostic.\n"); + MrBayesPrint (" Only used when Stoprule and Mcmcdiagn are set to yes, and \n"); + MrBayesPrint (" more than one analysis is run simultaneously (Nruns > 1). \n"); + MrBayesPrint (" Checkpoint -- If this parameter is set to 'Yes', all the current parameter \n"); + MrBayesPrint (" values of all chains will be printed to a check-pointing file \n"); + MrBayesPrint (" every 'Checkfreq' generation of the analysis. The file will be\n"); + MrBayesPrint (" named .ckp and allows you to restart the analysis \n"); + MrBayesPrint (" from the last check point. This can be handy if you are \n"); + MrBayesPrint (" running a long analysis and want to extend it, or if there is \n"); + MrBayesPrint (" a risk that a long analysis will be inadvertently interupted \n"); + MrBayesPrint (" by hardware failure or other factors that are out of your \n"); + MrBayesPrint (" control. \n"); + MrBayesPrint (" Checkfreq -- The number of generations between check-pointing. See the \n"); + MrBayesPrint (" 'Checkpoint' parameter above for more information. \n"); + MrBayesPrint (" Filename -- The name of the files that will be generated. Two files \n"); + MrBayesPrint (" are generated: \".t\" and \".p\". \n"); + MrBayesPrint (" The .t file contains the trees whereas the .p file con- \n"); + MrBayesPrint (" tains the sampled values of the parameters. \n"); + MrBayesPrint (" Startparams -- The starting values for the model parameters are set to \n"); + MrBayesPrint (" arbitrary or random values when the parameters are created. \n"); + MrBayesPrint (" These starting values can be altered using the 'Startvals' \n"); + MrBayesPrint (" command. The 'Startparams=reset' option allows you to reset \n"); + MrBayesPrint (" the starting values to the default at the start of the ana- \n"); + MrBayesPrint (" lysis, overriding any previous user-defined starting values. \n"); + MrBayesPrint (" Under the default option, 'current', the chains will use the \n"); + MrBayesPrint (" current starting values. \n"); + MrBayesPrint (" Starttree -- The starting tree(s) for the chain can either be randomly \n"); + MrBayesPrint (" selected or user-defined. It might be a good idea to \n"); + MrBayesPrint (" start from randomly chosen trees; convergence seems \n"); + MrBayesPrint (" likely if independently run chains, each of which \n"); + MrBayesPrint (" started from different random trees, converge to the same \n"); + MrBayesPrint (" answer. If you want the chain to start from user-defined \n"); + MrBayesPrint (" trees instead, you first need to read in your tree(s) from a \n"); + MrBayesPrint (" Nexus file with a 'trees' block, and then you need to set the \n"); + MrBayesPrint (" starting tree(s) using the 'Startvals' command. Finally, you \n"); + MrBayesPrint (" need to make sure that 'Starttree' is set to 'current'. If \n"); + MrBayesPrint (" you do not set the starting tree(s), the chains will start \n"); + MrBayesPrint (" with random trees. Setting 'Starttree' to 'random' causes \n"); + MrBayesPrint (" new starting trees to be drawn randomly at the start of the \n"); + MrBayesPrint (" run, overwriting any previous user-defined starting trees. \n"); + MrBayesPrint (" Nperts -- This is the number of random perturbations to apply to the \n"); + MrBayesPrint (" user starting tree. This allows you to have something \n"); + MrBayesPrint (" between completely random and user-defined trees start \n"); + MrBayesPrint (" the chain. \n"); +/* MrBayesPrint (" Savebrlens -- This specifies whether branch length information is \n"); + MrBayesPrint (" saved on the trees. \n"); */ + MrBayesPrint (" Data -- When Data is set to NO, the chain is run without data. This \n"); + MrBayesPrint (" should be used only for examining induced priors. DO NOT SET \n"); + MrBayesPrint (" 'DATA' TO 'NO' UNLESS YOU KNOW WHAT YOU ARE DOING! \n"); + MrBayesPrint (" Ordertaxa -- Determines whether taxa should be ordered before trees are \n"); + MrBayesPrint (" printed to file. If set to 'Yes', terminals in the sampled \n"); + MrBayesPrint (" trees will be reordered to match the order of the taxa in the \n"); + MrBayesPrint (" data matrix as closely as possible. By default, trees will be \n"); + MrBayesPrint (" printed without reordering of taxa. \n"); + MrBayesPrint (" Append -- Set this to 'Yes' to append the results of the current run to \n"); + MrBayesPrint (" a previous run. MrBayes will first read in the results of the \n"); + MrBayesPrint (" previous run (number of generations and sampled splits) and \n"); + MrBayesPrint (" will then continue that run where you left it off. Make sure \n"); + MrBayesPrint (" that the output file names used in the previous run are the \n"); + MrBayesPrint (" same as those in the current run. \n"); + MrBayesPrint (" Autotune -- Set this to 'Yes' to autotune the proposals that change \n"); + MrBayesPrint (" substitution model parameters. When set to 'No', the tuning \n"); + MrBayesPrint (" parameters are fixed to their starting values. Note that the \n"); + MrBayesPrint (" autotuning occurs independently for each chain. The target \n"); + MrBayesPrint (" acceptance rate for each move can be changed using the \n"); + MrBayesPrint (" 'Propset' command. \n"); + MrBayesPrint (" Tunefreq -- When a proposal has been tried 'Tunefreq' times, its tuning \n"); + MrBayesPrint (" parameter is adjusted to reach the target acceptance rate \n"); + MrBayesPrint (" if 'Autotune' is set to 'Yes'. \n"); + MrBayesPrint (" \n"); + PrintSettings ("Mcmc"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Mcmcp")) + { + // PrintYesNo (chainParams.saveBrlens, yesNoStr); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Mcmcp \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command sets the parameters of the Markov chain Monte Carlo (MCMC) \n"); + MrBayesPrint (" analysis without actually starting the chain. This command is identical \n"); + MrBayesPrint (" in all respects to Mcmc, except that the analysis will not start after \n"); + MrBayesPrint (" this command is issued. For more details on the options, check the help \n"); + MrBayesPrint (" menu for Mcmc.\n"); + MrBayesPrint (" \n"); + PrintSettings ("Mcmc"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Ss")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Ss \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command is used to start stepping-stone sampling, which is an efficient \n"); + MrBayesPrint (" and accurate method for estimating the marginal likelihood of the currently \n"); + MrBayesPrint (" specified model. It is considerably more accurate than the harmonic mean of \n"); + MrBayesPrint (" the likelihoods from a standard MCMC run on the model (calculated by the \n"); + MrBayesPrint (" 'Sump' command) but it requires a separate MCMC-like run. To be more specific,\n"); + MrBayesPrint (" stepping-stone sampling uses importance sampling to estimate each ratio in a \n"); + MrBayesPrint (" series of discrete steps bridging the posterior and prior distributions. \n"); + MrBayesPrint (" The importance distributions that are used are called power posterior distri- \n"); + MrBayesPrint (" butions, and are defined as prior*(likelihood^beta). By varying beta from 1 to\n"); + MrBayesPrint (" 0, we get a series of distributions that connect the posterior (beta = 1) to \n"); + MrBayesPrint (" the prior (beta = 0). \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The power posterior distributions are sampled using MCMC. First, we start a \n"); + MrBayesPrint (" standard MCMC chain on the posterior distribution, and let it run until we \n"); + MrBayesPrint (" have reached the criterion specified by the 'Burninss' option. After this, we \n"); + MrBayesPrint (" step through the power posterior distributions until we reach the prior dis- \n"); + MrBayesPrint (" tribution. In each of the 'Nsteps' steps, we sample from a new power poster- \n"); + MrBayesPrint (" ior distribution with a distinct beta value. The beta values correspond to \n"); + MrBayesPrint (" 'Nsteps' evenly spaced quantiles in a Beta distribution with the parameters \n"); + MrBayesPrint (" 'Alpha' and 1.0. For the first sampling step, the beta value is equal to the \n"); + MrBayesPrint (" last quantile, i.e., it is close to 1.0. For each successive step, the beta \n"); + MrBayesPrint (" value takes on the value of the next quantile, in decreasing order, until it \n"); + MrBayesPrint (" reaches the value of 0.0. If you change value of 'FromPrior' from default 'No'\n"); + MrBayesPrint (" to 'Yes' then the direction of power posterior change during SS analizes is \n"); + MrBayesPrint (" opposite to the one described above, i.e. we start from sampling prior and \n"); + MrBayesPrint (" finish close to posterior. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The 'Ss' procedure uses the same machinery as the standard 'Mcmc' algorithm, \n"); + MrBayesPrint (" and shares most of its parameters with the 'Mcmc' and 'Mcmcp' commands. All \n"); + MrBayesPrint (" 'Mcmc' parameters, except those related to burnin, have the same meaning and \n"); + MrBayesPrint (" usage in the 'Ss' command as they have in the 'Mcmc' command. The 'Mcmc' \n"); + MrBayesPrint (" burnin parameters are used to set up burnin within each step. The 'Ss' command\n"); + MrBayesPrint (" also uses its own burnin parameter, 'Burninss' (see below for details). The \n"); + MrBayesPrint (" 'Ss' command also has its own parameters for specifying the number of steps \n"); + MrBayesPrint (" and the shape of the Beta distribution from which the beta values are computed\n"); + MrBayesPrint (" (see below). \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Note that the 'Ngen' parameter of 'Mcmc' is used to set the maximum number of \n"); + MrBayesPrint (" generations processed, including both the burnin and the following steps in \n"); + MrBayesPrint (" the stepping-stone sampling phase. For instance, assume that 'Burninss' is set\n"); + MrBayesPrint (" to '-1', 'Nsteps' to '49', 'Ngen' to '1000000' and 'Samplefreq' to '1000'. \n"); + MrBayesPrint (" We will then get 1,000 samples in total (1,000,000 / 1,000). These will fall \n"); + MrBayesPrint (" into 50 bins, one of which represents the burnin and is discarded. Each step \n"); + MrBayesPrint (" in the algorithm will thus be represented by 20 samples. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" More information on 'Mcmc' parameters is available in the help for the 'Mcmc' \n"); + MrBayesPrint (" and 'Mcmcp' commands. Only the exclusive 'Ss' parameters are listed below. \n"); + MrBayesPrint (" These can only be set up using the 'Ss' command, while the parameters shared \n"); + MrBayesPrint (" with 'Mcmc' and 'Mcmcp' can also be set up using those commands. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The correct usage is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" ss = ... = \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Note that a command: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" ss \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" would be equivalent to executing two commands: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" mcmcp ; \n"); + MrBayesPrint (" ss ; \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For more information on the stepping-stone algorithm, see: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Xie, W., P. O. Lewis, Y. Fan, L. Kuo, and M.-H. Chen. 2011. Improving marginal\n"); + MrBayesPrint (" likelihood estimation for Bayesian phylogenetic model selection. Systematic\n"); + MrBayesPrint (" Biology 60:150-160. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Available options: \n"); + MrBayesPrint (" (NB: Only exclusive ss parameters listed here. For additional parameters, see \n"); + MrBayesPrint (" help on 'mcmc' or 'mcmcp'. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Alpha -- The beta values used in the stepping-stone sampling procedure \n"); + MrBayesPrint (" correspond to evenly spaced quantiles from a Beta('Alpha',1.0)\n"); + MrBayesPrint (" distribution. The parameter 'Alpha' determines the skewness of\n"); + MrBayesPrint (" the beta values. If 'Alpha' is set to '1.0', the beta values \n"); + MrBayesPrint (" would be spaced uniformly on the interval (0.0,1.0). However, \n"); + MrBayesPrint (" better results are obtained if the beta values are skewed. \n"); + MrBayesPrint (" Empirically, it was observed that 'Alpha' values in the range \n"); + MrBayesPrint (" of 0.3 to 0.5 produce the most accurate results. \n"); + MrBayesPrint (" Burninss -- Fixed number of samples discarded before sampling of the first\n"); + MrBayesPrint (" step starts. 'Burninss' can be specified using either a pos- \n"); + MrBayesPrint (" itive or a negative number. If the number is positive, it is \n"); + MrBayesPrint (" interpreted as the number of samples to discard as burnin. If \n"); + MrBayesPrint (" the number is negative, its absolute value is interpreted as \n"); + MrBayesPrint (" the length of the burnin in terms of the length of each of the\n"); + MrBayesPrint (" following steps in the stepping-stone algorithm. For instance,\n"); + MrBayesPrint (" a value of '-1' means that the length of the burnin is the \n"); + MrBayesPrint (" same as the length of each of the subsequent steps. \n"); + MrBayesPrint (" Nsteps -- Number of steps in the stepping-stone algorithm. Typically, a \n"); + MrBayesPrint (" number above 30 is sufficient for accurate results. \n"); + MrBayesPrint (" FromPrior -- If it is set to 'Yes', it indicates that in the first step we \n"); + MrBayesPrint (" sample from the prior, with each consequtive step we sample \n"); + MrBayesPrint (" closer to the posterior. 'No' indicates the opposite direction\n"); + MrBayesPrint (" of power posterior change, i.e. in the first step we sample \n"); + MrBayesPrint (" close to the posterior, and with each consequtive step we \n"); + MrBayesPrint (" sample closer to the prior. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Current settings: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Parameter Options Current Setting \n"); + MrBayesPrint (" -------------------------------------------------------- \n"); + MrBayesPrint (" Alpha %1.2lf\n", chainParams.alphaSS); + MrBayesPrint (" BurninSS %d\n", chainParams.burninSS); + MrBayesPrint (" Nsteps %d\n", chainParams.numStepsSS); + MrBayesPrint (" FromPrior Yes/No %s \n", chainParams.startFromPriorSS == YES ? "Yes" : "No"); + MrBayesPrint (" \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } +else if (!strcmp(helpTkn, "Ssp")) + { + // PrintYesNo (chainParams.saveBrlens, yesNoStr); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Ssp \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command sets the parameters of the stepping-stone sampling \n"); + MrBayesPrint (" analysis without actually starting the chain. This command is identical \n"); + MrBayesPrint (" in all respects to Ss, except that the analysis will not start after \n"); + MrBayesPrint (" this command is issued. For more details on the options, check the help \n"); + MrBayesPrint (" menu for Ss.\n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Current settings: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Parameter Options Current Setting \n"); + MrBayesPrint (" -------------------------------------------------------- \n"); + MrBayesPrint (" Alpha %1.2lf\n", chainParams.alphaSS); + MrBayesPrint (" BurninSS %d\n", chainParams.burninSS); + MrBayesPrint (" Nsteps %d\n", chainParams.numStepsSS); + MrBayesPrint (" FromPrior Yes/No %s \n", chainParams.startFromPriorSS == YES ? "Yes" : "No"); + MrBayesPrint (" \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } +else if (!strcmp(helpTkn, "Set")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Set \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command is used to set some general features of the model or program \n"); + MrBayesPrint (" behavior. The correct usage is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" set = ... = \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Available options: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Seed -- Sets the seed number for the random number generator. The \n"); + MrBayesPrint (" random number seed is initialized haphazardly at the beg- \n"); + MrBayesPrint (" inning of each MrBayes session. This option allows you to \n"); + MrBayesPrint (" set the seed to some specific value, thereby allowing you \n"); + MrBayesPrint (" to exactly repeat an analysis. If the analysis uses swapping \n"); + MrBayesPrint (" between cold and heated chains, you must also set the swap \n"); + MrBayesPrint (" seed (see below) to exactly repeat the analysis. \n"); + MrBayesPrint (" Swapseed -- Sets the seed used for generating the swapping sequence \n"); + MrBayesPrint (" when Metropolis-coupled heated chains are used. This seed \n"); + MrBayesPrint (" is initialized haphazardly at the beginning of each MrBayes \n"); + MrBayesPrint (" session. This option allows you to set the seed to some \n"); + MrBayesPrint (" specific value, thereby allowing you to exactly repeat a \n"); + MrBayesPrint (" swap sequence. See also the 'Seed' option. \n"); + MrBayesPrint (" Dir -- The working directory. Specifies the absolute or relative path\n"); + MrBayesPrint (" to the working directory. If left empty, the working directory\n"); + MrBayesPrint (" is the current directory. \n"); + MrBayesPrint (" Partition -- Set this option to a valid partition id, either the number or \n"); + MrBayesPrint (" name of a defined partition, to enforce a specific partition- \n"); + MrBayesPrint (" ing of the data. When a data matrix is read in, a partition \n"); + MrBayesPrint (" called \"Default\" is automatically created. It divides the \n"); + MrBayesPrint (" data into one part for each data type. If you only have one \n"); + MrBayesPrint (" data type, DNA for instance, the default partition will not \n"); + MrBayesPrint (" divide up the data at all. The default partition is always \n"); + MrBayesPrint (" the first partition, so 'set partition=1' is the same as \n"); + MrBayesPrint (" 'set partition=default'. \n"); + MrBayesPrint (" Speciespartition -- Set this option to a valid speciespartition id, either the\n"); + MrBayesPrint (" number or name of a defined speciespartition, to enforce a \n"); + MrBayesPrint (" specific partitioning of taxa to species. When a data matrix \n"); + MrBayesPrint (" is read in, a speciespartition called \"Default\" is auto- \n"); + MrBayesPrint (" matically created. It assigns one taxon for each species. The \n"); + MrBayesPrint (" default speciespartition is always the first speciespartition,\n"); + MrBayesPrint (" so 'set speciespartition=1' is the same as \n"); + MrBayesPrint (" 'set speciespartition=default'. \n"); + MrBayesPrint (" Autoclose -- If autoclose is set to 'yes', then the program will not prompt\n"); + MrBayesPrint (" you during the course of executing a file. This is particular-\n"); + MrBayesPrint (" ly useful when you run MrBayes in batch mode. \n"); + MrBayesPrint (" Nowarnings -- If nowarnings is set to yes, then the program will not prompt \n"); + MrBayesPrint (" you when overwriting or appending an ouput file that is al- \n"); + MrBayesPrint (" ready present. If 'nowarnings=no' (the default setting), then \n"); + MrBayesPrint (" the program propts the user before overwriting output files. \n"); + MrBayesPrint (" Autoreplace -- When nowarnings is set to yes, then MrBayes will by default \n"); + MrBayesPrint (" overwrite output files that already exists. This may cause \n"); + MrBayesPrint (" irrecoverable loss of previous results if you have not removed\n"); + MrBayesPrint (" or renamed the files from previous runs. To override this be- \n"); + MrBayesPrint (" havior, set autoreplace to no, in which case new output will \n"); + MrBayesPrint (" be appended to existing files instead. \n"); + MrBayesPrint (" Quitonerror -- If quitonerror is set to yes, then the program will quit when \n"); + MrBayesPrint (" an error is encountered, after printing an error message. If \n"); + MrBayesPrint (" quitonerror is set to no (the default setting), then the \n"); + MrBayesPrint (" program will wait for additional commands from the command \n"); + MrBayesPrint (" line after the error message is printed. \n"); + MrBayesPrint (" Scientific -- Set this option to 'Yes' to write sampled values to file in \n"); + MrBayesPrint (" scientific format and to 'No' to write them in fixed format. \n"); + MrBayesPrint (" Fixed format is easier for humans to read but you risk losing \n"); + MrBayesPrint (" precision for small numbers. For instance, sampled values that\n"); + MrBayesPrint (" are less than 1E-6 will print to file as '0.000000' if fixed \n"); + MrBayesPrint (" format is used and 'precision' is set to 6. \n"); + MrBayesPrint (" Precision -- Precision allows you to set the number of decimals to be prin-\n"); + MrBayesPrint (" ted when sampled values are written to file. Precision must be\n"); + MrBayesPrint (" in the range 3 to 15. \n"); +# if defined (BEAGLE_ENABLED) + MrBayesPrint (" Usebeagle -- Set this option to 'Yes' to attempt to use the BEAGLE library \n"); + MrBayesPrint (" to compute the phylogenetic likelihood on a variety of high- \n"); + MrBayesPrint (" performance hardware including multicore CPUs and GPUs. Some \n"); + MrBayesPrint (" models in MrBayes are not yet supported by BEAGLE. \n"); + MrBayesPrint (" Beagleresource -- Set this option to the number of a specific resource you \n"); + MrBayesPrint (" wish to use with BEAGLE (use 'Showbeagle' to see the list of \n"); + MrBayesPrint (" available resources). Set to '99' for auto-resource selection.\n"); + MrBayesPrint (" Beagledevice -- Set this option to 'GPU' or 'CPU' to select processor. \n"); + MrBayesPrint (" Beagleprecision -- Selection 'Single' or 'Double' precision computation. \n"); + MrBayesPrint (" Beaglescaling -- 'Always' rescales partial likelihoods at each evaluation. \n"); + MrBayesPrint (" 'Dynamic' rescales less frequently and should run faster. \n"); + MrBayesPrint (" Beaglesse -- Use SSE instructions on Intel CPU processors. \n"); + MrBayesPrint (" Beagleopenmp -- Use OpenMP to parallelize across multi-core CPU processors. \n"); +# endif +# if defined (THREADS_ENABLED) + MrBayesPrint (" Beaglethreads -- Set this option to 'Yes' to employ multiple threads to drive \n"); + MrBayesPrint (" multiple BEAGLE resource simultaneously. This is highly \n"); + MrBayesPrint (" recommended for more than one GPU, and for sufficiently large \n"); + MrBayesPrint (" data partitions, multi-core CPUs should also demonstrate \n"); + MrBayesPrint (" speed-ups. \n"); +# endif + MrBayesPrint (" \n"); + MrBayesPrint (" Current settings: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Parameter Options Current Setting \n"); + MrBayesPrint (" -------------------------------------------------------- \n"); + MrBayesPrint (" Seed %ld \n", globalSeed); + MrBayesPrint (" Swapseed %ld \n", swapSeed); + MrBayesPrint (" Dir \"%s\"\n", workingDir); + if (defMatrix == YES) + MrBayesPrint (" Partition %s\n", partitionNames[partitionNum]); + else + MrBayesPrint (" Partition \"\"\n"); + if (defTaxa == YES) + MrBayesPrint (" Speciespartition %s\n", speciespartitionNames[speciespartitionNum]); + else + MrBayesPrint (" Speciespartition \"\"\n"); + MrBayesPrint (" Autoclose Yes/No %s \n", autoClose == YES ? "Yes" : "No"); + MrBayesPrint (" Nowarnings Yes/No %s \n", noWarn == YES ? "Yes" : "No"); + MrBayesPrint (" Autoreplace Yes/No %s \n", autoOverwrite == YES ? "Yes" : "No"); + MrBayesPrint (" Quitonerror Yes/No %s \n", quitOnError == YES ? "Yes" : "No"); + MrBayesPrint (" Scientific Yes/No %s \n", scientific == YES ? "Yes" : "No"); + MrBayesPrint (" Precision %d \n", precision); +# if defined (BEAGLE_ENABLED) + MrBayesPrint (" Usebeagle Yes/No %s \n", tryToUseBEAGLE == YES ? "Yes" : "No"); + MrBayesPrint (" Beagleresource %d \n", beagleResourceNumber); + MrBayesPrint (" Beagledevice CPU/GPU %s \n", beagleFlags & BEAGLE_FLAG_PROCESSOR_GPU ? "GPU" : "CPU"); + MrBayesPrint (" Beagleprecision Single/Double %s \n", beagleFlags & BEAGLE_FLAG_PRECISION_SINGLE ? "Single" : "Double"); + MrBayesPrint (" Beaglescaling Always/Dynamic %s \n", beagleScalingScheme == MB_BEAGLE_SCALE_ALWAYS ? "Always" : "Dynamic"); + MrBayesPrint (" Beaglesse Yes/No %s \n", beagleFlags & BEAGLE_FLAG_VECTOR_SSE ? "Yes" : "No"); + MrBayesPrint (" Beagleopenmp Yes/No %s \n", beagleFlags & BEAGLE_FLAG_THREADING_OPENMP ? "Yes" : "No"); +# endif +# if defined (THREADS_ENABLED) + MrBayesPrint (" Beaglethreads Yes/No %s \n", tryToUseThreads == YES ? "Yes" : "No"); +# endif + MrBayesPrint (" \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Charset")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Charset \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command defines a character set. The format for the charset command \n"); + MrBayesPrint (" is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" charset = \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For example, \"charset first_pos = 1-720\\3\" defines a character set \n"); + MrBayesPrint (" called \"first_pos\" that includes every third site from 1 to 720. \n"); + MrBayesPrint (" The character set name cannot have any spaces in it. The slash (\\) \n"); + MrBayesPrint (" is a nifty way of telling the program to assign every third (or \n"); + MrBayesPrint (" second, or fifth, or whatever) character to the character set. \n"); + MrBayesPrint (" This option is best used not from the command line, but rather as a \n"); + MrBayesPrint (" line in the mrbayes block of a file. Note that you can use \".\" to \n"); + MrBayesPrint (" stand in for the last character (e.g., charset 1-.\\3). \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Outgroup")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Outgroup \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command assigns a taxon to the outgroup. The correct usage is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" outgroup / \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For example, \"outgroup 3\" assigns the third taxon in the matrix to be \n"); + MrBayesPrint (" the outgroup. Similarly, \"outgroup Homo_sapiens\" assings the taxon \n"); + MrBayesPrint (" \"Homo_sapiens\" to be the outgroup (assuming that there is a taxon named \n"); + MrBayesPrint (" \"Homo_sapiens\" in the matrix). Only a single taxon can be assigned to \n"); + MrBayesPrint (" be the outgroup. \n"); + MrBayesPrint (" \n"); + if (defTaxa == YES) + MrBayesPrint (" Current outgroup: %s (taxon no. %d)\n", taxaNames[outGroupNum], outGroupNum+1); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Showusertrees")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Showusertrees \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command shows the currently defined user trees. The correct usage \n"); + MrBayesPrint (" is \"showusertrees\". \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Showmcmctrees")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Showmcmctrees \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command shows the current trees used by the Markov chains. \n"); + MrBayesPrint (" is \"showmcmctrees\". \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Deroot")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Deroot \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command deroots the user tree. If the tree is already unrooted, a \n"); + MrBayesPrint (" warning is issued. The correct usage is \"deroot\". \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Root")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Root \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command roots the tree. If the tree is already rooted, a warning \n"); + MrBayesPrint (" is issued. The tree is rooted at the midpoint between the outgroup species \n"); + MrBayesPrint (" and the ingroup species. The correct usage is \"root\". \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Taxset")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Taxset \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command defines a taxon set. The format for the taxset command \n"); + MrBayesPrint (" is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" taxset = \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For example, \"taxset apes = Homo Pan Gorilla Orang gibbon\" defines a \n"); + MrBayesPrint (" taxon set called \"apes\" that includes five taxa (namely, apes). \n"); + MrBayesPrint (" You can assign up to 30 taxon sets. This option is best used \n"); + MrBayesPrint (" not from the command line but rather as a line in the mrbayes block \n"); + MrBayesPrint (" of a file. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Taxlabels")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Taxlabels \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command defines taxon labels. It could be used within taxa block. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Charstat")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Charstat \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command shows the status of all the characters. The correct usage \n"); + MrBayesPrint (" is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" charstat \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" After typing \"charstat\", the character number, whether it is excluded \n"); + MrBayesPrint (" or included, and the partition identity are shown. The output is paused \n"); + MrBayesPrint (" every 100 characters. This pause can be turned off by setting autoclose \n"); + MrBayesPrint (" to \"yes\" (set autoclose=yes). \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Taxastat")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Taxastat \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command shows the status of all the taxa. The correct usage is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" taxastat \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" After typing \"taxastat\", the taxon number, name, and whether it is \n"); + MrBayesPrint (" excluded or included are shown. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Partition")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Partition \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command allows you to specify a character partition. The format for \n"); + MrBayesPrint (" this command is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" partition = :, ..., \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For example, \"partition by_codon = 3:1st_pos,2nd_pos,3rd_pos\" specifies \n"); + MrBayesPrint (" a partition called \"by_codon\" which consists of three parts (first, \n"); + MrBayesPrint (" second, and third codon positions). Here, we are assuming that the sites \n"); + MrBayesPrint (" in each partition were defined using the charset command. You can specify \n"); + MrBayesPrint (" a partition without using charset as follows: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" partition by_codon = 3:1 4 6 9 12,2 5 7 10 13,3 6 8 11 14 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" However, we recommend that you use the charsets to define a set of char- \n"); + MrBayesPrint (" acters and then use these predefined sets when defining the partition. \n"); + MrBayesPrint (" Also, it makes more sense to define a partition as a line in the mrbayes \n"); + MrBayesPrint (" block than to issue the command from the command line (then again, you \n"); + MrBayesPrint (" may be a masochist, and want to do extra work). \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Exclude")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Exclude \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command excludes characters from the analysis. The correct usage is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" exclude \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" or \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" exclude - \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" or \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" exclude \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" or some combination thereof. Moreover, you can use the specifier \"\\\" to \n"); + MrBayesPrint (" exclude every nth character. For example, the following \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" exclude 1-100\\3 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" would exclude every third character. As a specific example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" exclude 2 3 10-14 22 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" excludes sites 2, 3, 10, 11, 12, 13, 14, and 22 from the analysis. Also, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" exclude all \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" excludes all of the characters from the analysis. Excluding all characters \n"); + MrBayesPrint (" does not leave you much information for inferring phylogeny. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Include")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Include \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command includes characters that were previously excluded from the \n"); + MrBayesPrint (" analysis. The correct usage is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" include \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" or \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" include - \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" or \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" include \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" or some combination thereof. Moreover, you can use the specifier \"\\\" to \n"); + MrBayesPrint (" include every nth character. For example, the following \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" include 1-100\\3 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" would include every third character. As a specific example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" include 2 3 10-14 22 \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" includes sites 2, 3, 10, 11, 12, 13, 14, and 22 from the analysis. Also, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" include all \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" includes all of the characters in the analysis. Including all of the \n"); + MrBayesPrint (" characters (even if many of them are bad) is a very total-evidence-like \n"); + MrBayesPrint (" thing to do. Doing this will make a certain group of people very happy. \n"); + MrBayesPrint (" On the other hand, simply using this program would make those same people \n"); + MrBayesPrint (" unhappy. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Delete")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Delete \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command deletes taxa from the analysis. The correct usage is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" delete ... \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" A list of the taxon names or taxon numbers (labelled 1 to ntax in the order \n"); + MrBayesPrint (" in the matrix) or taxset(s) can be used. For example, the following: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" delete 1 2 Homo_sapiens \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" deletes taxa 1, 2, and the taxon labelled Homo_sapiens from the analysis. \n"); + MrBayesPrint (" You can also use \"all\" to delete all of the taxa. For example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" delete all \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" deletes all of the taxa from the analysis. Of course, a phylogenetic anal- \n"); + MrBayesPrint (" ysis that does not include any taxa is fairly uninteresting. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Restore")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Restore \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command restores taxa to the analysis. The correct usage is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" restore ... \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" A list of the taxon names or taxon numbers (labelled 1 to ntax in the order \n"); + MrBayesPrint (" in the matrix) or taxset(s) can be used. For example, the following: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" restore 1 2 Homo_sapiens \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" restores taxa 1, 2, and the taxon labelled Homo_sapiens to the analysis. \n"); + MrBayesPrint (" You can also use \"all\" to restore all of the taxa. For example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" restore all \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" restores all of the taxa to the analysis. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Quit")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Quit \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command quits the program. The correct usage is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" quit \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" It is a very easy command to use properly. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Disclaimer")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Disclaimer \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command shows the disclaimer for the program. In short, the disclaimer \n"); + MrBayesPrint (" states that the authors are not responsible for any silly things you may do \n"); + MrBayesPrint (" to your computer or any unforseen but possibly nasty things the computer \n"); + MrBayesPrint (" program may inadvertently do to you. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Unlink")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Unlink \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command unlinks model parameters across partitions of the data. The \n"); + MrBayesPrint (" correct usage is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" unlink = ( or ) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" A little background is necessary to understand this command. Upon exe- \n"); + MrBayesPrint (" cution of a file, a default partition is set up. This partition refer- \n"); + MrBayesPrint (" enced either by its name (\"default\") or number (0). If your data are \n"); + MrBayesPrint (" all of one type, then this default partition does not actually divide up \n"); + MrBayesPrint (" your characters. However, if your datatype is mixed, then the default \n"); + MrBayesPrint (" partition contains as many divisions as there are datatypes in your \n"); + MrBayesPrint (" character matrix. Of course, you can also define other partitions, and \n"); + MrBayesPrint (" switch among them using the set command (\"set partition=\"). \n"); + MrBayesPrint (" Importantly, you can also assign model parameters to individual part- \n"); + MrBayesPrint (" itions or to groups of them using the \"applyto\" option in lset and \n"); + MrBayesPrint (" prset. When the program attempts to perform an analysis, the model is \n"); + MrBayesPrint (" set for individual partitions. If the same parameter applies to differ- \n"); + MrBayesPrint (" partitions and if that parameter has the same prior, then the program \n"); + MrBayesPrint (" will link the parameters: that is, it will use a single value for the \n"); + MrBayesPrint (" parameter. The program's default, then, is to strive for parsimony. \n"); + MrBayesPrint (" However, there are lots of cases where you may want unlink a parameter \n"); + MrBayesPrint (" across partitions. For example, you may want a different transition/ \n"); + MrBayesPrint (" transversion rate ratio to apply to different partitions. This command \n"); + MrBayesPrint (" allows you to unlink the parameters, or to make them different across \n"); + MrBayesPrint (" partitions. The converse of this command is \"link\", which links to- \n"); + MrBayesPrint (" gether parameters that were previously told to be different. The list \n"); + MrBayesPrint (" of parameters that can be unlinked includes: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Tratio -- Transition/transversion rate ratio \n"); + MrBayesPrint (" Revmat -- Substitution rates of GTR model \n"); + MrBayesPrint (" Omega -- Nonsynonymous/synonymous rate ratio \n"); + MrBayesPrint (" Statefreq -- Character state frequencies \n"); + MrBayesPrint (" Shape -- Gamma/LNorm shape parameter \n"); + MrBayesPrint (" Pinvar -- Proportion of invariable sites \n"); + MrBayesPrint (" Correlation -- Correlation parameter of autodiscrete gamma \n"); + MrBayesPrint (" Ratemultiplier -- Rate multiplier for partitions \n"); + MrBayesPrint (" Switchrates -- Switching rates for covarion model \n"); + MrBayesPrint (" Topology -- Topology of tree \n"); + MrBayesPrint (" Brlens -- Branch lengths of tree \n"); + MrBayesPrint (" Speciationrate -- Speciation rates for birth-death process \n"); + MrBayesPrint (" Extinctionrate -- Extinction rates for birth-death process \n"); + // MrBayesPrint (" Fossilizationrate -- Fossilization rates for fossilized birth-death process \n"); + MrBayesPrint (" Popsize -- Population size for coalescence process \n"); + MrBayesPrint (" Growthrate -- Growth rate of coalescence process \n"); + MrBayesPrint (" Aamodel -- Aminoacid rate matrix \n"); + MrBayesPrint (" Cpprate -- Rate of Compound Poisson Process (CPP) \n"); + MrBayesPrint (" Cppmultdev -- Standard dev. of CPP rate multipliers (log scale) \n"); + MrBayesPrint (" Cppevents -- CPP events \n"); + MrBayesPrint (" TK02var -- Variance increase in TK02 relaxed clock model \n"); + MrBayesPrint (" Igrvar -- Variance increase in IGR relaxed clock model \n"); + MrBayesPrint (" Mixedvar -- Variance increase in Mixed relaxed clock model \n"); + // MrBayesPrint (" TK02branchrates -- Branch rates of TK02 relaxed clock model \n"); + // MrBayesPrint (" Igrbranchrates -- Branch rates of IGR relaxed clock model \n"); + // MrBayesPrint (" Mixedbrchrates -- Branch rates of Mixed relaxed clock model \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" unlink shape=(all) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" unlinks the gamma/lnorm shape parameter across all partitions of the data. \n"); + MrBayesPrint (" You can use \"showmodel\" to see the current linking status of the \n"); + MrBayesPrint (" characters. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Link")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Link \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command links model parameters across partitions of the data. The \n"); + MrBayesPrint (" correct usage is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" link = ( or ) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The list of parameters that can be linked includes: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Tratio -- Transition/transversion rate ratio \n"); + MrBayesPrint (" Revmat -- Substitution rates of GTR model \n"); + MrBayesPrint (" Omega -- Nonsynonymous/synonymous rate ratio \n"); + MrBayesPrint (" Statefreq -- Character state frequencies \n"); + MrBayesPrint (" Shape -- Gamma/LNorm shape parameter \n"); + MrBayesPrint (" Pinvar -- Proportion of invariable sites \n"); + MrBayesPrint (" Correlation -- Correlation parameter of autodiscrete gamma \n"); + MrBayesPrint (" Ratemultiplier -- Rate multiplier for partitions \n"); + MrBayesPrint (" Switchrates -- Switching rates for covarion model \n"); + MrBayesPrint (" Topology -- Topology of tree \n"); + MrBayesPrint (" Brlens -- Branch lengths of tree \n"); + MrBayesPrint (" Speciationrate -- Speciation rates for birth-death process \n"); + MrBayesPrint (" Extinctionrate -- Extinction rates for birth-death process \n"); + // MrBayesPrint (" Fossilizationrate -- Fossilization rates for fossilized birth-death process \n"); + MrBayesPrint (" Popsize -- Population size for coalescence process \n"); + MrBayesPrint (" Growthrate -- Growth rate of coalescence process \n"); + MrBayesPrint (" Aamodel -- Aminoacid rate matrix \n"); + MrBayesPrint (" Cpprate -- Rate of Compound Poisson Process (CPP) \n"); + MrBayesPrint (" Cppmultdev -- Standard dev. of CPP rate multipliers (log scale) \n"); + MrBayesPrint (" Cppevents -- CPP events \n"); + MrBayesPrint (" TK02var -- Variance increase in TK02 relaxed clock model \n"); + MrBayesPrint (" Igrvar -- Variance increase in IGR relaxed clock model \n"); + MrBayesPrint (" Mixedvar -- Variance increase in Mixed relaxed clock model \n"); + // MrBayesPrint (" TK02branchrates -- Branch rates of TK02 relaxed clock model \n"); + // MrBayesPrint (" Igrbranchrates -- Branch rates of IGR relaxed clock model \n"); + // MrBayesPrint (" Mixedbrchrates -- Branch rates of Mixed relaxed clock model \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" For example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" link shape=(all) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" links the gamma/lnorm shape parameter across all partitions of the data. \n"); + MrBayesPrint (" You can use \"showmodel\" to see the current linking status of the \n"); + MrBayesPrint (" characters. For more information on this command, see the help menu \n"); + MrBayesPrint (" for link's converse, unlink (\"help unlink\"); \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Help")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Help \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command provides useful information on the use of this program. The \n"); + MrBayesPrint (" correct usage is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" help \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" which gives a list of all available commands with a brief description of \n"); + MrBayesPrint (" each or \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" help \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" which gives detailed information on the use of . \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Sump")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Sump \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" During an MCMC analysis, MrBayes prints the sampled parameter values to one or\n"); + MrBayesPrint (" more tab-delimited text files, one for each independent run in your analysis. \n"); + MrBayesPrint (" The command 'Sump' summarizes the information in this parameter file or these \n"); + MrBayesPrint (" parameter files. By default, the root of the parameter file name(s) is assumed\n"); + MrBayesPrint (" to be the name of the last matrix-containing nexus file. MrBayes also remem- \n"); + MrBayesPrint (" bers the number of independent runs in the last analysis that you set up, re- \n"); + MrBayesPrint (" gardless of whether you actually ran it. For instance, if there were two in- \n"); + MrBayesPrint (" dependent runs, which is the initial setting when you read in a new matrix, \n"); + MrBayesPrint (" MrBayes will assume that there are two parameter files with the endings \n"); + MrBayesPrint (" '.run1.p' and '.run2.p'. You can change the root of the file names and the \n"); + MrBayesPrint (" number of runs using the 'Filename' and 'Nruns' settings. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" When you invoke the 'Sump' command, three items are output: (1) a generation \n"); + MrBayesPrint (" plot of the likelihood values; (2) estimates of the marginal likelihood of \n"); + MrBayesPrint (" the model; and (3) a table with the mean, variance, and 95 percent credible \n"); + MrBayesPrint (" interval for the sampled parameters. All three items are output to screen. \n"); + MrBayesPrint (" The table of marginal likelihoods is also printed to a file with the ending \n"); + MrBayesPrint (" '.lstat' and the parameter table to a file with the ending '.pstat'. For some \n"); + MrBayesPrint (" model parameters, there may also be a '.mstat' file. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" When running 'Sump' you typically want to discard a specified number or \n"); + MrBayesPrint (" fraction of samples from the beginning of the chain as the burn in. This is \n"); + MrBayesPrint (" done using the same mechanism used by the 'mcmc' command. That is, if you \n"); + MrBayesPrint (" run an mcmc analysis with a relative burn in of 25 %% of samples for con- \n"); + MrBayesPrint (" vergence diagnostics, then the same burn in will be used for a subsequent \n"); + MrBayesPrint (" sump command, unless a different burn in is specified. That is, issuing \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" sump \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" immediately after 'mcmc', will result in using the same burn in settings as \n"); + MrBayesPrint (" for the 'mcmc' command. All burnin settings are reset to default values every \n"); + MrBayesPrint (" time a new matrix is read in, namely relative burnin ('relburnin=yes') with \n"); + MrBayesPrint (" 25 %% of samples discarded ('burninfrac = 0.25'). \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Options: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Relburnin -- If this option is set to 'Yes', then a proportion of the \n"); + MrBayesPrint (" samples will be discarded as burnin when calculating summary \n"); + MrBayesPrint (" statistics. The proportion to be discarded is set with \n"); + MrBayesPrint (" 'Burninfrac' (see below). When the 'Relburnin' option is set \n"); + MrBayesPrint (" to 'No', then a specific number of samples is discarded \n"); + MrBayesPrint (" instead. This number is set by 'Burnin' (see below). Note that\n"); + MrBayesPrint (" the burnin setting is shared across the 'sumt', 'sump', and \n"); + MrBayesPrint (" 'mcmc' commands. \n"); + MrBayesPrint (" Burnin -- Determines the number of samples (not generations) that will \n"); + MrBayesPrint (" be discarded when summary statistics are calculated. The \n"); + MrBayesPrint (" value of this option is only applicable when 'Relburnin' is \n"); + MrBayesPrint (" set to 'No'. \n"); + MrBayesPrint (" Burninfrac -- Determines the fraction of samples that will be discarded when\n"); + MrBayesPrint (" summary statistics are calculated. The setting only takes \n"); + MrBayesPrint (" effect if 'Relburnin' is set to 'Yes'. \n"); + MrBayesPrint (" Nruns -- Determines how many '.p' files from independent analyses that \n"); + MrBayesPrint (" will be summarized. If Nruns > 1 then the names of the files \n"); + MrBayesPrint (" are derived from 'Filename' by adding '.run1.p', '.run2.p', \n"); + MrBayesPrint (" etc. If Nruns=1, then the single file name is obtained by \n"); + MrBayesPrint (" adding '.p' to 'Filename'. \n"); + MrBayesPrint (" Filename -- The name of the file to be summarized. This is the base of the\n"); + MrBayesPrint (" file name to which endings are added according to the current \n"); + MrBayesPrint (" setting of the 'Nruns' parameter. If 'Nruns' is 1, then only \n"); + MrBayesPrint (" '.p' is added to the file name. Otherwise, the endings will \n"); + MrBayesPrint (" be '.run1.p', '.run2.p', etc. \n"); + MrBayesPrint (" Outputname -- Base name of the file(s) to which 'Sump' results will be \n"); + MrBayesPrint (" printed. \n"); + MrBayesPrint (" Hpd -- Determines whether credibility intervals will be given as the \n"); + MrBayesPrint (" region of Highest Posterior Density ('Yes') or as the interval\n"); + MrBayesPrint (" containing the median 95 %% of sampled values ('No'). \n"); + MrBayesPrint (" Minprob -- Determines the minimum probability of submodels to be included\n"); + MrBayesPrint (" in summary statistics. Only applicable to models that explore \n"); + MrBayesPrint (" submodel spaces, like 'nst=mixed' and 'aamodelpr=mixed'. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Current settings: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Parameter Options Current Setting \n"); + MrBayesPrint (" -------------------------------------------------------- \n"); + MrBayesPrint (" Relburnin Yes/No %s \n", chainParams.relativeBurnin == YES ? "Yes" : "No"); + MrBayesPrint (" Burnin %d \n", chainParams.chainBurnIn); + MrBayesPrint (" Burninfrac %1.2lf \n", chainParams.burninFraction); + MrBayesPrint (" Nruns %d \n", sumpParams.numRuns); + if (sumpParams.numRuns == 1) + MrBayesPrint (" Filename %s<.p>\n", sumpParams.sumpFileName); + else + MrBayesPrint (" Filename %s<.run.p>\n", sumpParams.sumpFileName); + MrBayesPrint (" Outputname %s<.pstat etc>\n", sumpParams.sumpOutfile); + MrBayesPrint (" Hpd Yes/No %s \n", sumpParams.HPD == YES ? "Yes" : "No"); + MrBayesPrint (" Minprob %1.3lf \n", sumpParams.minProb); + MrBayesPrint (" \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Sumss")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Sumss \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command summarizes results of stepping stone analyses. It is a tool to \n"); + MrBayesPrint (" investigate the obtained results, and to help find the proper step burn-in. \n"); + MrBayesPrint (" To get more help information on stepping-stone analyses, use 'help ss'. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" During stepping-stone analysis, MrBayes collects the sampled likelihoods in \n"); + MrBayesPrint (" order to estimate the marginal likelihood at the end. It also prints the sam- \n"); + MrBayesPrint (" pled parameter values to one or more tab-delimited text files, one for each \n"); + MrBayesPrint (" independent run in your analysis. The command 'Sumss' summarizes likelihood \n"); + MrBayesPrint (" values stored in these parameter files and calculates marginal likelihood es- \n"); + MrBayesPrint (" timates. The names of the files that are summarized are exactly the same as \n"); + MrBayesPrint (" the names of the files used for the 'sump' command. In fact, the 'filename' \n"); + MrBayesPrint (" setting is a shared setting for the 'sump' and 'sumss' commands. That is, if \n"); + MrBayesPrint (" you change the setting in one of the commands, it would change the setting in \n"); + MrBayesPrint (" the other command as well. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" When you invoke the 'Sumss' command, three items are output: (1) 'Step contri-\n"); + MrBayesPrint (" bution table' - summarizes the contribution of each step to the overall esti- \n"); + MrBayesPrint (" mate; (2) 'Step plot' - plot of the likelihood values for the initial burn-in \n"); + MrBayesPrint (" phase or a chosen step in the stepping-stone algorithm; (3) 'Joined plot' - \n"); + MrBayesPrint (" summarizes sampling across all steps in the algorithm. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Step contribution table \n"); + MrBayesPrint (" The printed table is similar to the one output to the .ss file. The main pur- \n"); + MrBayesPrint (" pose of the table is to summarize marginal likelihood for different values of \n"); + MrBayesPrint (" the step burn-in after the stepping stone analysis has finished. The burn-in \n"); + MrBayesPrint (" is controlled by the 'Relburnin', 'Burnin' and 'Burninfrac' settings. \n"); + MrBayesPrint (" Note that during stepping-stone analyses, step contributions to marginal \n"); + MrBayesPrint (" likelihood are calculated based on all generations excluding burn-in. 'Sumss' \n"); + MrBayesPrint (" on the other hand makes estimates based only on the sampled generations. This \n"); + MrBayesPrint (" may lead to slight difference in results compared to the one printed to the \n"); + MrBayesPrint (" .ss file. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Step plot \n"); + MrBayesPrint (" The main objective of the plot is to provide a close look at a given step in \n"); + MrBayesPrint (" the analysis. Which step is printed here is defined by the 'Steptoplot' set- \n"); + MrBayesPrint (" ting. The plot could be used to inspect if the chosen step burn-in is appro- \n"); + MrBayesPrint (" priate for the given step. It could also be used to check if the initial burn-\n"); + MrBayesPrint (" in phase has converged. Note that the amount of discarded samples is controled\n"); + MrBayesPrint (" by the 'Discardfrac' setting, and not by the ordinary burn-in settings. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Joined plot \n"); + MrBayesPrint (" Different steps sample from different power posterior distributions. When we \n"); + MrBayesPrint (" switch from one distribution to another, it takes some number of generations \n"); + MrBayesPrint (" before the chain settles at the correct stationary distribution. This lag is \n"); + MrBayesPrint (" called a 'temperature lag' and if the corresponding samples are not removed, \n"); + MrBayesPrint (" it will result in a biased estimate. It is difficult to determine the lag be- \n"); + MrBayesPrint (" forehand, but MrBayes allows you to explore different step burn-in settings \n"); + MrBayesPrint (" after you have finished the stepping-stone algorithm, without having to rerun \n"); + MrBayesPrint (" the whole analysis. The 'Joined plot' helps to facilitate the choice of the \n"); + MrBayesPrint (" right step burn-in. The plot summarizes samples across all steps and gives you\n"); + MrBayesPrint (" a quick overview of the whole analysis. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Specifically, the following procedure is used to obtain the joined plot. Each \n"); + MrBayesPrint (" step has the same number N of samples taken. We number each sample 1 to N \n"); + MrBayesPrint (" within steps according to the order in which the samples are taken. The first \n"); + MrBayesPrint (" sample in each step is numbered 1, and the last sample is N. For each number i\n"); + MrBayesPrint (" in [1,..., N], we sum up log likelihoods for all samples numbered i across all\n"); + MrBayesPrint (" steps. The joined plot is a graph of the step number versus the normalized \n"); + MrBayesPrint (" sums we get in the procedure describe above. This directly visualizes the tem-\n"); + MrBayesPrint (" perature lag and allows you to select the appropriate step burn-in. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Ideally, after you discard the appropriate step burn-in, the graph should \n"); + MrBayesPrint (" appear as white noise around the estimated value. If you see an increasing or \n"); + MrBayesPrint (" decreasing tendency in the beginning of the graph, you should increase the \n"); + MrBayesPrint (" step burn-in. If you see an increasing or decreasing tendency across the whole\n"); + MrBayesPrint (" graph, then the initial burn-in phase was not long enough. In this case, you \n"); + MrBayesPrint (" need to rerun the analysis with a longer initial burn-in. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" To make it easier to observe tendencies in the plotted graph you can choose \n"); + MrBayesPrint (" different levels of curve smoothing. If 'Smoothing' is set to k, it means that\n"); + MrBayesPrint (" for each step i we take an average over step i and k neighboring samples in \n"); + MrBayesPrint (" both directions, i.e., the k-smoothed estimate for step i is an average over \n"); + MrBayesPrint (" values for steps [i-k,...,i+k]. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Options: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Allruns -- If set to 'Yes', it forces all runs to be printed on the same \n"); + MrBayesPrint (" graph when drawing joined and step plots. If set to 'No', each\n"); + MrBayesPrint (" run is printed on a separat plot. \n"); + MrBayesPrint (" Askmore -- Long analyses may produce huge .p files. Reading in them may \n"); + MrBayesPrint (" take several minutes. If you want to investigate different \n"); + MrBayesPrint (" aspects of your analyses, it could be very inconvenient to \n"); + MrBayesPrint (" wait for several minutes each time you want to get a new sum- \n"); + MrBayesPrint (" mary for different settings. If you set 'Askmore' to 'YES', \n"); + MrBayesPrint (" sumss will read .p files only once. After responding to the \n"); + MrBayesPrint (" original query, it will interactivaly ask you if you wish to \n"); + MrBayesPrint (" produce more tables and plots for different settings of \n"); + MrBayesPrint (" 'Burnin' or 'Smoothing' (see below). \n"); + MrBayesPrint (" Relburnin -- If this option is set to 'Yes', then a proportion of the \n"); + MrBayesPrint (" samples from each step will be discarded as burnin when calcu-\n"); + MrBayesPrint (" lsting summary statistics. The proportion to be discarded is \n"); + MrBayesPrint (" set with 'Burninfrac' (see below). When the 'Relburnin' option\n"); + MrBayesPrint (" is set to 'No', then a specific number of samples is discarded\n"); + MrBayesPrint (" instead. This number is set by 'Burnin'. Note that the burnin \n"); + MrBayesPrint (" settings --- 'Relburnin', 'Burnin', and 'Burninfrac' --- are \n"); + MrBayesPrint (" shared across the 'sumt', 'sump', 'sumss' and 'mcmc' commands.\n"); + MrBayesPrint (" Burnin -- Determines the number of samples (not generations) that will \n"); + MrBayesPrint (" be discarded from each step when summary statistics are calcu-\n"); + MrBayesPrint (" lated. The value of this option is only applicable when \n"); + MrBayesPrint (" 'Relburnin' is set to 'No'. \n"); + MrBayesPrint (" Burninfrac -- Determines the fraction of samples that will be discarded from\n"); + MrBayesPrint (" each step when summary statistics are calculated. The setting \n"); + MrBayesPrint (" only takes effect if 'Relburnin' is set to 'Yes'. \n"); + MrBayesPrint (" Discardfrac -- Determines the fraction of samples that will be discarded when\n"); + MrBayesPrint (" a step plot is printed. It is similar to the 'Burninfrac' set-\n"); + MrBayesPrint (" ting, but unlike 'Burninfrac' it is used only for better vis- \n"); + MrBayesPrint (" ualization of the step plot. It has no effect on the number of\n"); + MrBayesPrint (" samples discarded during marginal likelihood computation. \n"); + MrBayesPrint (" Filename -- The name of the file to be summarized. This is the base of the\n"); + MrBayesPrint (" file name to which endings are added according to the current \n"); + MrBayesPrint (" setting of the 'Nruns' parameter. If 'Nruns' is 1, then only \n"); + MrBayesPrint (" '.p' is added to the file name. Otherwise, the endings will \n"); + MrBayesPrint (" be '.run1.p', '.run2.p', etc. Note that the 'Filename' setting\n"); + MrBayesPrint (" is shared with 'sump' command. \n"); + MrBayesPrint (" Nruns -- Determines how many '.p' files from independent analyses that \n"); + MrBayesPrint (" will be summarized. If Nruns > 1 then the names of the files \n"); + MrBayesPrint (" are derived from 'Filename' by adding '.run1.p', '.run2.p', \n"); + MrBayesPrint (" etc. If Nruns=1, then the single file name is obtained by \n"); + MrBayesPrint (" adding '.p' to 'Filename'. \n"); + MrBayesPrint (" Steptoplot -- Defines which step will be printed in the step plot.If the \n"); + MrBayesPrint (" value is set to 0, then the initial sample from the posterior \n"); + MrBayesPrint (" will be used. \n"); + MrBayesPrint (" Smoothing -- Determines smoothing of the joined plot (see above). A value \n"); + MrBayesPrint (" equal to 0 results in no smoothing. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Current settings: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Parameter Options Current Setting \n"); + MrBayesPrint (" -------------------------------------------------------- \n"); + MrBayesPrint (" Allruns Yes/No %s \n", sumssParams.allRuns == YES ? "Yes" : "No"); + MrBayesPrint (" Askmore Yes/No %s \n", sumssParams.askForMorePlots == YES ? "Yes" : "No"); + MrBayesPrint (" Relburnin Yes/No %s \n", chainParams.relativeBurnin == YES ? "Yes" : "No"); + MrBayesPrint (" Burnin %d \n", chainParams.chainBurnIn); + MrBayesPrint (" Burninfrac %1.2lf \n", chainParams.burninFraction); + MrBayesPrint (" Discardfrac %1.2lf \n", sumssParams.discardFraction); + if (sumpParams.numRuns == 1) + MrBayesPrint (" Filename %s<.p>\n", sumpParams.sumpFileName); + else + MrBayesPrint (" Filename %s<.run.p>\n", sumpParams.sumpFileName); + MrBayesPrint (" Nruns %d \n", sumpParams.numRuns); + MrBayesPrint (" Steptoplot %d \n", sumssParams.stepToPlot); + MrBayesPrint (" Smoothing %d \n", sumssParams.smoothing); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Comparetree")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Comparetree \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command compares the trees in two files, called \"filename1\" and \n"); + MrBayesPrint (" \"filename2\". It will output a bivariate plot of the split frequencies \n"); + MrBayesPrint (" as well as plots of the tree distance as a function of the generation. The \n"); + MrBayesPrint (" plots can be used to get a quick indication of whether two runs have con- \n"); + MrBayesPrint (" verged onto the same set of trees. The \"Comparetree\" command will also \n"); + MrBayesPrint (" produce a \".pairs\" file and a \".dists\" file (these file endings are added \n"); + MrBayesPrint (" to the end of the \"Outputname\"). The \".pairs\" file contains the paired \n"); + MrBayesPrint (" split frequencies from the two tree samples; the \".dists\" file contains the \n"); + MrBayesPrint (" tree distance values. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Note that the \"Sumt\" command provides a different set of convergence diag- \n"); + MrBayesPrint (" nostics tools that you may also want to explore. Unlike \"Comparetree\", \n"); + MrBayesPrint (" \"Sumt\" can compare more than two tree samples and will calculate consensus \n"); + MrBayesPrint (" trees and split frequencies from the pooled samples. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Options: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Relburnin -- If this option is set to 'Yes', then a proportion of the \n"); + MrBayesPrint (" samples will be discarded as burnin when calculating summary \n"); + MrBayesPrint (" statistics. The proportion to be discarded is set with \n"); + MrBayesPrint (" Burninfrac (see below). When the Relburnin option is set to \n"); + MrBayesPrint (" 'No', then a specific number of samples is discarded instead.\n"); + MrBayesPrint (" This number is set by Burnin (see below). Note that the \n"); + MrBayesPrint (" burnin setting is shared with the 'mcmc', 'sumt', 'sump' and \n"); + MrBayesPrint (" 'plot' commands. \n"); + MrBayesPrint (" Burnin -- Determines the number of samples (not generations) that will \n"); + MrBayesPrint (" be discarded when summary statistics are calculated. The \n"); + MrBayesPrint (" value of this option is only relevant when Relburnin is set \n"); + MrBayesPrint (" to 'No'. \n"); + MrBayesPrint (" BurninFrac -- Determines the fraction of samples that will be discarded \n"); + MrBayesPrint (" when summary statistics are calculated. The value of this \n"); + MrBayesPrint (" option is only relevant when Relburnin is set to 'Yes'. \n"); + MrBayesPrint (" Example: A value for this option of 0.25 means that 25%% of \n"); + MrBayesPrint (" the samples will be discarded. \n"); + MrBayesPrint (" Minpartfreq -- The minimum probability of partitions to include in summary \n"); + MrBayesPrint (" statistics. \n"); + MrBayesPrint (" Filename1 -- The name of the first tree file to compare. \n"); + MrBayesPrint (" Filename2 -- The name of the second tree file to compare. \n"); + MrBayesPrint (" Outputname -- Name of the file to which 'comparetree' results will be \n"); + MrBayesPrint (" printed. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Current settings: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Parameter Options Current Setting \n"); + MrBayesPrint (" -------------------------------------------------------- \n"); + MrBayesPrint (" Relburnin Yes/No %s \n", chainParams.relativeBurnin == YES ? "Yes" : "No"); + MrBayesPrint (" Burnin %d \n", chainParams.chainBurnIn); + MrBayesPrint (" Burninfrac %1.2lf \n", chainParams.burninFraction); + MrBayesPrint (" Minpartfreq %1.2lf \n", comptreeParams.minPartFreq); + MrBayesPrint (" Filename1 %s \n", comptreeParams.comptFileName1); + MrBayesPrint (" Filename2 %s \n", comptreeParams.comptFileName2); + MrBayesPrint (" Outputname %s \n", comptreeParams.comptOutfile); + MrBayesPrint (" \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Sumt")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Sumt \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command is used to produce summary statistics for trees sampled during \n"); + MrBayesPrint (" a Bayesian MCMC analysis. You can either summarize trees from one individual \n"); + MrBayesPrint (" analysis, or trees coming from several independent analyses. In either case, \n"); + MrBayesPrint (" all the sampled trees are read in and the proportion of the time any single \n"); + MrBayesPrint (" taxon bipartition (split) is found is counted. The proportion of the time that\n"); + MrBayesPrint (" the bipartition is found is an approximation of the posterior probability of \n"); + MrBayesPrint (" the bipartition. (Remember that a taxon bipartition is defined by removing a \n"); + MrBayesPrint (" branch on the tree, dividing the tree into those taxa to the left and right \n"); + MrBayesPrint (" of the removed branch. This set is called a taxon bipartition.) The branch \n"); + MrBayesPrint (" length of the bipartition is also recorded, if branch lengths have been saved \n"); + MrBayesPrint (" to file. The result is a list of the taxon bipartitions found, the frequency \n"); + MrBayesPrint (" with which they were found, the posterior probability of the bipartition \n"); + MrBayesPrint (" and, the mean and variance of the branch lengths or node depths, and various \n"); + MrBayesPrint (" other statistics. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The key to the partitions is output to a file with the suffix '.parts'. The \n"); + MrBayesPrint (" summary statistics pertaining to bipartition probabilities are output to a \n"); + MrBayesPrint (" file with the suffix '.tstat', and the statistics pertaining to branch or node\n"); + MrBayesPrint (" parameters are output to a file with the suffix '.vstat'. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" A consensus tree is also printed to a file with the suffix '.con.tre' and \n"); + MrBayesPrint (" printed to the screen as a cladogram, and as a phylogram if branch lengths \n"); + MrBayesPrint (" have been saved. The consensus tree is either a 50 percent majority rule tree \n"); + MrBayesPrint (" or a majority rule tree showing all compatible partitions. If branch lengths \n"); + MrBayesPrint (" have been recorded during the run, the '.con.tre' file will contain a consen- \n"); + MrBayesPrint (" sus tree with branch lengths and interior nodes labelled with support values. \n"); + MrBayesPrint (" By default, the consensus tree will also contain other summary information in \n"); + MrBayesPrint (" a format understood by the program 'FigTree'. To use a simpler format under- \n"); + MrBayesPrint (" stood by other tree-drawing programs, such as 'TreeView', set 'Conformat' to \n"); + MrBayesPrint (" 'Simple'. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" MrBayes alo produces a file with the ending \".trprobs\" that contains a list \n"); + MrBayesPrint (" of all the trees that were found during the MCMC analysis, sorted by their \n"); + MrBayesPrint (" probabilities. This list of trees can be used to construct a credible set of \n"); + MrBayesPrint (" trees. For example, if you want to construct a 95 percent credible set of \n"); + MrBayesPrint (" trees, you include all of those trees whose cumulative probability is less \n"); + MrBayesPrint (" than or equal to 0.95. You have the option of displaying the trees to the \n"); + MrBayesPrint (" screen using the \"Showtreeprobs\" option. The default is to not display the \n"); + MrBayesPrint (" trees to the screen; the number of different trees sampled by the chain can \n"); + MrBayesPrint (" be quite large. If you are analyzing a large set of taxa, you may actually \n"); + MrBayesPrint (" want to skip the calculation of tree probabilities entirely by setting \n"); + MrBayesPrint (" 'Calctreeprobs' to 'No'. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" When calculating summary statistics you probably want to skip those trees that\n"); + MrBayesPrint (" were sampled in the initial part of the run, the so-called burn-in period. The\n"); + MrBayesPrint (" number of skipped samples is controlled by the 'Relburnin', 'Burnin', and \n"); + MrBayesPrint (" 'Burninfrac' settings, just as for the 'Mcmc' command. Since version 3.2.0, \n"); + MrBayesPrint (" the burn-in settings are shared across the 'Sumt', 'Sump' and 'Mcmc' commands.\n"); + MrBayesPrint (" That is, changing the burn-in setting for one command will change the settings\n"); + MrBayesPrint (" for subsequent calls to any of the other commands. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" If you are summarizing the trees sampled in several independent analyses, \n"); + MrBayesPrint (" such as those resulting from setting the 'Nruns' option of the 'Mcmc' command \n"); + MrBayesPrint (" to a value larger than 1, MrBayes will also calculate convergence diagnostics \n"); + MrBayesPrint (" for the sampled topologies and branch lengths. These values can help you \n"); + MrBayesPrint (" determine whether it is likely that your chains have converged. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The 'Sumt' command expands the 'Filename' according to the current values of \n"); + MrBayesPrint (" the 'Nruns' and 'Ntrees' options. For instance, if both 'Nruns' and 'Ntrees' \n"); + MrBayesPrint (" are set to 1, 'Sumt' will try to open a file named '.t'. If 'Nruns' \n"); + MrBayesPrint (" is set to 2 and 'Ntrees' to 1, then 'Sumt' will open two files, the first \n"); + MrBayesPrint (" named '.run1.t' and the second '.run2.t', etc. By default,\n"); + MrBayesPrint (" the 'Filename' option is set such that 'Sumt' automatically summarizes all the\n"); + MrBayesPrint (" results from your immediately preceding 'Mcmc' command. You can also use the \n"); + MrBayesPrint (" 'Sumt' command to summarize tree samples in older analyses. If you want to do \n"); + MrBayesPrint (" that, remember to first read in a matrix so that MrBayes knows what taxon \n"); + MrBayesPrint (" names to expect in the trees. Then set the 'Nruns', 'Ntrees' and 'Filename' \n"); + MrBayesPrint (" options appropriately if they differ from the MrBayes defaults. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Options: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Relburnin -- If this option is set to YES, then a proportion of the \n"); + MrBayesPrint (" samples will be discarded as burnin when calculating summary \n"); + MrBayesPrint (" statistics. The proportion to be discarded is set with \n"); + MrBayesPrint (" Burninfrac (see below). When the Relburnin option is set to \n"); + MrBayesPrint (" NO, then a specific number of samples is discarded instead. \n"); + MrBayesPrint (" This number is set by Burnin (see below). Note that the \n"); + MrBayesPrint (" burnin setting is shared across the 'sumt', 'sump', and \n"); + MrBayesPrint (" 'mcmc' commands. \n"); + MrBayesPrint (" Burnin -- Determines the number of samples (not generations) that will \n"); + MrBayesPrint (" be discarded when summary statistics are calculated. The \n"); + MrBayesPrint (" value of this option is only relevant when Relburnin is set \n"); + MrBayesPrint (" to NO. \n"); + MrBayesPrint (" BurninFrac -- Determines the fraction of samples that will be discarded \n"); + MrBayesPrint (" when summary statistics are calculated. The value of this \n"); + MrBayesPrint (" option is only relevant when Relburnin is set to YES. \n"); + MrBayesPrint (" Example: A value for this option of 0.25 means that 25%% of \n"); + MrBayesPrint (" the samples will be discarded. \n"); + MrBayesPrint (" Nruns -- Determines how many '.t' files from independent analyses that\n"); + MrBayesPrint (" will be summarized. If Nruns > 1 then the names of the files \n"); + MrBayesPrint (" are derived from 'Filename' by adding '.run1.t', '.run2.t', \n"); + MrBayesPrint (" etc. If Nruns=1 and Ntrees=1 (see below), then only '.t' is \n"); + MrBayesPrint (" added to 'Filename'. \n"); + MrBayesPrint (" Ntrees -- Determines how many trees there are in the sampled model. If \n"); + MrBayesPrint (" 'Ntrees' > 1 then the names of the files are derived from \n"); + MrBayesPrint (" 'Filename' by adding '.tree1.t', '.tree2.t', etc. If there \n"); + MrBayesPrint (" are both multiple trees and multiple runs, the filenames will\n"); + MrBayesPrint (" be '.tree1.run1.t', '.tree1.run2.t', etc.\n"); + MrBayesPrint (" Filename -- The name of the file(s) to be summarized. This is the base of\n"); + MrBayesPrint (" the file name, to which endings are added according to the \n"); + MrBayesPrint (" current settings of the 'Nruns' and 'Ntrees' options. \n"); + MrBayesPrint (" Minpartfreq -- The minimum probability of partitions to include in summary \n"); + MrBayesPrint (" statistics. \n"); + MrBayesPrint (" Contype -- Type of consensus tree. 'Halfcompat' results in a 50%% major-\n"); + MrBayesPrint (" ity rule tree, 'Allcompat' adds all compatible groups to such\n"); + MrBayesPrint (" a tree. \n"); + MrBayesPrint (" Conformat -- Format of consensus tree. The 'Figtree' setting results in a \n"); + MrBayesPrint (" consensus tree formatted for the program FigTree, with rich \n"); + MrBayesPrint (" summary statistics. The 'Simple' setting results in a simple \n"); + MrBayesPrint (" consensus tree written in a format read by a variety of pro- \n"); + MrBayesPrint (" grams. \n"); + MrBayesPrint (" Outputname -- Base name of the file(s) to which 'sumt' results will be \n"); + MrBayesPrint (" printed. The default is the same as 'Filename'. \n"); + MrBayesPrint (" Calctreeprobs -- Determines whether tree probabilities should be calculated. \n"); + MrBayesPrint (" Showtreeprobs -- Determines whether tree probabilities should be displayed on \n"); + MrBayesPrint (" screen. \n"); + MrBayesPrint (" Hpd -- Determines whether credibility intervals will be given as the\n"); + MrBayesPrint (" region of Highest Posterior Density ('Yes') or as the inter- \n"); + MrBayesPrint (" val containing the median 95 %% of sampled values ('No'). \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Current settings: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Parameter Options Current Setting \n"); + MrBayesPrint (" -------------------------------------------------------- \n"); + MrBayesPrint (" Relburnin Yes/No %s \n", chainParams.relativeBurnin == YES ? "Yes" : "No"); + MrBayesPrint (" Burnin %d \n", chainParams.chainBurnIn); + MrBayesPrint (" Burninfrac %1.2lf \n", chainParams.burninFraction); + MrBayesPrint (" Nruns %d \n", sumtParams.numRuns); + MrBayesPrint (" Ntrees %d \n", sumtParams.numTrees); + if (sumtParams.numRuns == 1 && sumtParams.numTrees == 1) + MrBayesPrint (" Filename %s<.t>\n", sumtParams.sumtFileName); + else if (sumtParams.numRuns == 1 && sumtParams.numTrees > 1) + MrBayesPrint (" Filename %s<.tree.t>\n", sumtParams.sumtFileName); + else if (sumtParams.numRuns > 1 && sumtParams.numTrees == 1) + MrBayesPrint (" Filename %s<.run.t>\n", sumtParams.sumtFileName); + else if (sumtParams.numRuns > 1 && sumtParams.numTrees > 1) + MrBayesPrint (" Filename %s<.tree.run.t>\n", sumtParams.sumtFileName); + MrBayesPrint (" Minpartfreq %1.2lf \n", sumtParams.minPartFreq); + MrBayesPrint (" Contype Halfcompat/Allcompat %s\n", sumtParams.sumtConType); + MrBayesPrint (" Conformat Figtree/Simple %s \n", sumtParams.consensusFormat == SIMPLE ? "Simple" : "Figtree"); + MrBayesPrint (" Outputname %s<.parts etc>\n", sumtParams.sumtOutfile); + MrBayesPrint (" Calctreeprobs Yes/No %s \n", sumtParams.calcTreeprobs == YES ? "Yes" : "No"); + MrBayesPrint (" Showtreeprobs Yes/No %s \n", sumtParams.showSumtTrees == YES ? "Yes" : "No"); + MrBayesPrint (" Hpd Yes/No %s \n", sumtParams.HPD == YES ? "Yes" : "No"); + MrBayesPrint (" \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Tree")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Tree \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command is used by MrBayes to write trees to a nexus tree file. Trees \n"); + MrBayesPrint (" are written in the Newick format. For instance, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" tree ((1,2),3,4); \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" describes an unrooted tree with taxa 1 and 2 being more closely related to \n"); + MrBayesPrint (" each other than to taxa 3 and 4. If branch lengths are saved to file, they \n"); + MrBayesPrint (" are given after a colon sign immediately following the terminal taxon or the \n"); + MrBayesPrint (" interior node they refer to. An example of an unrooted tree with branch \n"); + MrBayesPrint (" lengths is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" tree ((1:0.064573,2:0.029042):0.041239,3:0.203988,4:0.187654); \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Trees that are rooted (clock trees) are written with a basal dichotomy \n"); + MrBayesPrint (" instead of a basal trichotomy. If the tree described above had been rooted \n"); + MrBayesPrint (" on the branch leading to taxon 4, it would have been represented as: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" tree (((1,2),3),4); \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Report")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Report \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command allows you to control how the posterior distribution is \n"); + MrBayesPrint (" reported. For rate parameters, it allows you to choose among several popular \n"); + MrBayesPrint (" parameterizations. The report command also allows you to request printing of \n"); + MrBayesPrint (" some model aspects that are usually not reported. For instance, if a node is \n"); + MrBayesPrint (" constrained in the analysis, MrBayes can print the probabilities of the \n"); + MrBayesPrint (" ancestral states at that node. Similarly, if there is rate variation in the \n"); + MrBayesPrint (" model, MrBayes can print the inferred site rates, and if there is omega varia-\n"); + MrBayesPrint (" tion, MrBayes can print the inferred omega (positive selection) values for \n"); + MrBayesPrint (" each codon. In a complex model with several partitions, each partition is \n"); + MrBayesPrint (" controlled separately using the same 'Applyto' mechanism as in the 'Lset' and \n"); + MrBayesPrint (" 'Prset' commands. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Options: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Applyto -- This option allows you to apply the report commands to specific \n"); + MrBayesPrint (" partitions. This command should be the first in the list of \n"); + MrBayesPrint (" commands specified in 'report'. \n"); + MrBayesPrint (" For example, \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" report applyto=(1,2) tratio=ratio \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" report applyto=(3) tratio=dirichlet \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" would result in the transition and transversion rates of the \n"); + MrBayesPrint (" first and second partitions in the model being reported as a \n"); + MrBayesPrint (" ratio and the transition and transversion rates of the third \n"); + MrBayesPrint (" partition being reported as proportions of the rate sum (the \n"); + MrBayesPrint (" Dirichlet parameterization). \n"); + MrBayesPrint (" Tratio -- This specifies the report format for the transition and trans- \n"); + MrBayesPrint (" version rates of a nucleotide substituion model with nst=2. \n"); + MrBayesPrint (" If 'ratio' is selected, the rates will be reported as a ratio \n"); + MrBayesPrint (" (transition rate/transversion rate). If 'dirichlet' is selected, \n"); + MrBayesPrint (" the transition and transversion rates will instead be reported \n"); + MrBayesPrint (" as proportions of the rate sum. For example, if the transition \n"); + MrBayesPrint (" rate is three times the transversion rate and 'ratio' is selec- \n"); + MrBayesPrint (" ted, this will reported as a single value, '3.0'. If 'dirichlet' \n"); + MrBayesPrint (" is selected instead, the same rates will be reported using two \n"); + MrBayesPrint (" values, '0.75 0.25'. The sum of the Dirichlet values is always 1.\n"); + MrBayesPrint (" Although the Dirichlet format may be unfamiliar to some users, \n"); + MrBayesPrint (" it is more convenient for specifying priors than the ratio \n"); + MrBayesPrint (" format. \n"); + MrBayesPrint (" Revmat -- This specifies the report format for the substitution rates of \n"); + MrBayesPrint (" a GTR substitution model for nucleotide or amino acid data. If \n"); + MrBayesPrint (" 'ratio' is selected, the rates will be reported scaled to the \n"); + MrBayesPrint (" G-T rate (for nucleotides) or the Y-V rate (for amino acids). If \n"); + MrBayesPrint (" 'dirichlet' is specified instead, the rates are reported as pro- \n"); + MrBayesPrint (" portions of the rate sum. For instance, assume that the C-T rate \n"); + MrBayesPrint (" is twice the A-G rate and four times the transversion rates, \n"); + MrBayesPrint (" which are equal. If the report format is set to 'ratio', this \n"); + MrBayesPrint (" would be reported as '1.0 2.0 1.0 1.0 4.0 1.0' since the rates \n"); + MrBayesPrint (" are reported in the order rAC, rAG, rAT, rCG, rCT, rGT and scaled\n"); + MrBayesPrint (" relative to the last rate, the G-T rate. If 'dirichlet' is selec-\n"); + MrBayesPrint (" ted instead, the same rates would have been reported as '0.1 0.2 \n"); + MrBayesPrint (" 0.1 0.1 0.4 0.1' since the rates are now scaled so that they sum \n"); + MrBayesPrint (" to 1.0. The Dirichlet format is the parameterization used for \n"); + MrBayesPrint (" formulating priors on the rates. \n"); + MrBayesPrint (" Ratemult -- This specifies the report format used for the rate multiplier of \n"); + MrBayesPrint (" different model partitions. Three formats are available. If \n"); + MrBayesPrint (" 'scaled' is selected, then rates are scaled such that the mean \n"); + MrBayesPrint (" rate per site across partitions is 1.0. If 'ratio' is chosen, \n"); + MrBayesPrint (" the rates are scaled relative to the rate of the first parti- \n"); + MrBayesPrint (" tion. Finally, if 'dirichlet' is chosen, the rates are given as \n"); + MrBayesPrint (" proportions of the rate sum. The latter is the format used \n"); + MrBayesPrint (" when formulating priors on the rate multiplier. \n"); + MrBayesPrint (" Tree -- This specifies the report format used for the tree(s). Two op- \n"); + MrBayesPrint (" tions are available. 'Topology' results in only the topology \n"); + MrBayesPrint (" being printed to file, whereas 'brlens' causes branch lengths to \n"); + MrBayesPrint (" to be printed as well. \n"); + MrBayesPrint (" Ancstates -- If this option is set to 'yes', MrBayes will print the pro- \n"); + MrBayesPrint (" bability of the ancestral states at all constrained nodes. Typ- \n"); + MrBayesPrint (" ically, you are interested in the ancestral states of only a few \n"); + MrBayesPrint (" characters and only at one node in the tree. To perform such \n"); + MrBayesPrint (" an analysis, first define and enforce a topology constraint \n"); + MrBayesPrint (" using 'constraint' and 'prset topologypr = constraints (...)'. \n"); + MrBayesPrint (" Then put the character(s) of interest in a separate partition and\n"); + MrBayesPrint (" set MrBayes to report the ancestral states for that partition. \n"); + MrBayesPrint (" For instance, if the characters of interest are in partition 2, \n"); + MrBayesPrint (" use 'report applyto=(2) ancstates=yes' to force MrBayes to print \n"); + MrBayesPrint (" the probability of the ancestral states of those characters at \n"); + MrBayesPrint (" the constrained node to the '.p' file. \n"); + MrBayesPrint (" Siterates -- If this option is set to 'yes' and the relevant model has rate \n"); + MrBayesPrint (" variation across sites, then the site rates, weighted over rate \n"); + MrBayesPrint (" categories, will be reported to the '.p' file. \n"); + MrBayesPrint (" Possel -- If this option is set to 'yes' and the relevant model has omega \n"); + MrBayesPrint (" variation across sites, the probability that each model site \n"); + MrBayesPrint (" (codon in this case) is positively selected will be written to \n"); + MrBayesPrint (" file. \n"); + MrBayesPrint (" Siteomega -- If this option is set to 'yes' and the relevant model has omega \n"); + MrBayesPrint (" variation across sites, the weighted omega value (over omega \n"); + MrBayesPrint (" categories) for each model site will be reported to file. \n"); + MrBayesPrint (" \n"); + if (numCurrentDivisions == 0) + tempInt = 1; + else + tempInt = numCurrentDivisions; + for (i=0; itratioFormat); + MrBayesPrint (" Revmat Ratio/Dirichlet %s \n", mp->revmatFormat); + MrBayesPrint (" Ratemult Scaled/Ratio/Dirichlet %s \n", mp->ratemultFormat); + MrBayesPrint (" Tree Brlens/Topology %s \n", mp->treeFormat); + MrBayesPrint (" Ancstates Yes/No %s \n", mp->inferAncStates); + MrBayesPrint (" Siterates Yes/No %s \n", mp->inferSiteRates); + MrBayesPrint (" Possel Yes/No %s \n", mp->inferPosSel); + MrBayesPrint (" Siteomega Yes/No %s \n", mp->inferSiteOmegas); + MrBayesPrint (" \n"); + MrBayesPrint (" ------------------------------------------------------------------ \n"); + } + } + else if (!strcmp(helpTkn, "Manual")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Manual \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command allows you to generate a text file containing help information \n"); + MrBayesPrint (" on all the available commands. This text file can be used as an up-to-date \n"); + MrBayesPrint (" command reference. You can set the name of the text file using the \n"); + MrBayesPrint (" \"filename\" option; the default is \"commref_mb.txt\". \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Parameter Options Current Setting \n"); + MrBayesPrint (" -------------------------------------------------------- \n"); + MrBayesPrint (" Filename %s \n", manFileName); + MrBayesPrint (" \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Showmoves")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Showmoves \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command shows the MCMC samplers (moves) that are switched on for the \n"); + MrBayesPrint (" parameters in the current model. The basic usage is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" showmoves \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" If you want to see all available moves, use \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" showmoves allavailable=yes \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" If you want to change any of the tuning parameters for the moves, use the \n"); + MrBayesPrint (" 'propset' command. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Showparams")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Showparams \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This command shows all of the parameters in the current model. The basic \n"); + MrBayesPrint (" usage is \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" showparams \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The parameters are listed together with their priors, the available moves, \n"); + MrBayesPrint (" and the current value(s), which will be used as the starting values in the \n"); + MrBayesPrint (" next mcmc analysis. \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else if (!strcmp(helpTkn, "Startvals")) + { + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + MrBayesPrint (" Startvals \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" Use this command to change the current values for parameters in your model. \n"); + MrBayesPrint (" These values will be used as the starting values in the next mcmc analysis. \n"); + MrBayesPrint (" The basic format is: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" startvals =(,,...,) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" for all substitution model parameters. The format is slightly different for \n"); + MrBayesPrint (" parameters that are written to a tree file: \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" startvals = \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" This version of the command will look for a tree with the specified name \n"); + MrBayesPrint (" among the trees read in previously when parsing a tree block. The information \n"); + MrBayesPrint (" stored in that tree will be used to set the starting value of the parameter. \n"); + MrBayesPrint (" The parameters that are set using this mechanism include topology and branch \n"); + MrBayesPrint (" length parameters, as well as relaxed clock branch rates, cpp events and \n"); + MrBayesPrint (" cpp branch rate multipliers. \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" The above versions of the command will set the value for all runs and chains. \n"); + MrBayesPrint (" You can also set the value for an individual run and chain by using the format\n"); + MrBayesPrint (" \n"); + MrBayesPrint (" startvals (,)=(,...) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" where is the index of the run and the index of the chain. If \n"); + MrBayesPrint (" the run index is omitted, the values will be changed for all runs. Similarly, \n"); + MrBayesPrint (" if the chain index is omitted, all chains will be set to the specified value. \n"); + MrBayesPrint (" For example, if we wanted to set the values of the stationary frequency \n"); + MrBayesPrint (" parameter pi{1} to (0.1,0.1,0.4,0.4) for all chains in run 1, and to \n"); + MrBayesPrint (" (0.3,0.3,0.2,0.2) for chain 3 of run 2, we would use \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" startvals pi{1}(1,)=(0.1,0.1,0.4,0.4) pi{1}(2,3)=(0.3,0.3,0.2,0.2) \n"); + MrBayesPrint (" \n"); + MrBayesPrint (" --------------------------------------------------------------------------- \n"); + } + else + { + return (ERROR); + } + + return (NO_ERROR); +} + + +/* IsAmbig: This function returns YES if character is set as ambiguous + either by using parenthetic notation or by ambiguity codes. It returns + NO if character is unambiguous, missing or gapped */ +int IsAmbig (int charCode, int dType) +{ + if (dType == DNA || dType == RNA || dType == STANDARD || dType == RESTRICTION || dType == PROTEIN) + { + if (charCode != MISSING && charCode != GAP) + if (NBits(charCode) > 1) + return (YES); + } + else if (dType == CONTINUOUS) + { + /* do nothing, these cannot be partly ambiguous */ + } + else + { + MrBayesPrint ("Unknown datatype in \"IsAmbig\"\n", spacer); + } + + return (NO); +} + + +int IsArgValid (char *tk, char *validArg) +{ + int i, j, k, tkLen, targetLen, numDiff, numStrMatches; + char tempStr[100]; + ParmInfoPtr p; + + p = paramPtr; + tkLen = (int) strlen(tk); + + numStrMatches = i = j = 0; + do + { + if (p->valueList[i] == '|' || p->valueList[i] == '\0') + { + tempStr[j++] = '\0'; + targetLen = (int) strlen(tempStr); + if (tkLen <= targetLen) + { + numDiff = 0; + for (k=0; kvalueList[i]; + i++; + } + while (p->valueList[i] != '\0'); + + if (numStrMatches == 0) + { + MrBayesPrint ("%s No valid match for argument \"%s\"\n", spacer, tk); + return (ERROR); + } + else if (numStrMatches == 1) + { + return (NO_ERROR); + } + else + { + MrBayesPrint ("%s Argument \"%s\" is ambiguous\n", spacer, tk); + return (ERROR); + } +} + + +int IsIn (char ch, char *s) +{ + while (*s) + { + if (*s++ == ch) + return 1; + } + return 0; +} + + +int IsMissing (int charCode, int dType) +{ + if (dType == DNA || dType == RNA) + { + if (charCode == 15 || charCode == 16) + return (YES); + } + else if (dType == STANDARD || dType == PROTEIN) + { + if (charCode == MISSING || charCode == GAP) + return (YES); + } + else if (dType == RESTRICTION) + { + if (charCode == 3 || charCode == 4) + return (YES); + } + else if (dType == CONTINUOUS) + { + + } + else + { + MrBayesPrint ("Unknown datatype in \"IsMissing\"\n", spacer); + } + return (NO); +} + + +int IsSame (char *s1, char *s2) +{ + int i, nDiff, isIdentical, len; + + isIdentical = YES; + if (strlen(s1) != strlen(s2)) + isIdentical = NO; /* strings cannot be identical because they are different lengths */ + + /* now, we go through both strings, one character at a time, to see if + any are different */ + if (strlen(s1) > strlen(s2)) + len = (int) strlen(s2); + else + len = (int) strlen(s1); + i = nDiff = 0; + while (i < len) + { + if (tolower(s1[i]) != tolower(s2[i])) + nDiff++; + i++; + } + if (nDiff == 0 && isIdentical == YES) + return (SAME); + else if (nDiff == 0 && isIdentical == NO) + return (CONSISTENT_WITH); + else + return (DIFFERENT); +} + + +int IsWhite (char c) +{ + if (c == ' ' || c == '\t' || c == '\n' || c == '\r') + { + if (c == '\n' || c == '\r') + return 2; + return 1; + } + return 0; +} + + +int NucID (char nuc) +{ + char n; + + if (nuc == 'U' || nuc == 'u') + n = 'T'; + else + n = nuc; + + if (n == 'A' || n == 'a') + { + return 1; + } + else if (n == 'C' || n == 'c') + { + return 2; + } + else if (n == 'G' || n == 'g') + { + return 4; + } + else if (n == 'T' || n == 't') + { + return 8; + } + else if (n == 'R' || n == 'r') + { + return 5; + } + else if (n == 'Y' || n == 'y') + { + return 10; + } + else if (n == 'M' || n == 'm') + { + return 3; + } + else if (n == 'K' || n == 'k') + { + return 12; + } + else if (n == 'S' || n == 's') + { + return 6; + } + else if (n == 'W' || n == 'w') + { + return 9; + } + else if (n == 'H' || n == 'h') + { + return 11; + } + else if (n == 'B' || n == 'b') + { + return 14; + } + else if (n == 'V' || n == 'v') + { + return 7; + } + else if (n == 'D' || n == 'd') + { + return 13; + } + else if (n == 'N' || n == 'n') + { + return 15; + } + else if (n == gapId) + { + return GAP; + } + else if (n == missingId) + { + return MISSING; + } + else + return -1; +} + + +/*-------| ParseCommand |------------------------------------------------ +| +| This function is used to parse a file. The expected format is: +| +| command parameter=value parameter=value ... ; +| +| For example, the following is a valid line for this parser: +| +| lset nst=2; +| +| In some cases, however, the format is: +| +| command stuff more stuff ... ; +| +| For example, when reading a data file, the matrix command might be: +| +| matrix +| taxon_1 data +| taxon_2 data +| taxon_3 data +| ; +| +| Like before, the command and all of the stuff for that command are +| terminated by a semicolon. +| +*/ +int ParseCommand (char *s) +{ + int rc, tokenType, inError, numMatches, skipCmd; + char errStr[100]; + + numMatches = 0; /* Avoid gcc warnings (actually set in call to FindValidCommand) */ + cmdStr = s; + tokenP = &s[0]; + +# if defined (ECHO_PROCESSED_COMMANDS) + MrBayesPrint ("Currently processing command: %s\n", s); +# endif + + inError = skipCmd = NO; + do + { + /* Get the next token. A token is a valid word in a line. Token type is defined in "bayes.h". */ + if (GetToken (token, &tokenType, &tokenP)) + { + inError = YES; + break; + } + if (strlen(token) > 0 || tokenType == ALPHA) + { +# if defined (SHOW_TOKENS) + MrBayesPrint ("%s\n", token); +# endif + if (tokenType == LEFTCOMMENT) + { + /* If the token is a left comment "[", then we don't want to + actually process commands until we find a right comment. */ + /* The exception is if readComment is set to YES, in which case + we will leave it to the parser functions to decide on whether + they want to read the comment or not */ + if (readComment == NO || inComment == YES) + { + inComment = YES; + numComments++; + } + } + if (inComment == NO && inForeignBlock == NO) + { + if (tokenType != SEMICOLON) + { + /* If the token is not a semicolon, then we will be processing + either a command or a parameter. */ + if (expecting == Expecting(COMMAND)) + { + /* We are expecting to find a command (defined above in "commands[]"). Find the + correct command and set a pointer to that command. */ + commandPtr = NULL; + if (FindValidCommand (token, &numMatches) == ERROR) + { + /* We couldn't find the command or the user did not specify enough letters + to unambiguously determine the command. The command pointer (commandPtr) + is NULL. */ + if (numMatches == 0) + MrBayesPrint ("%s Could not find command \"%s\"\n", spacer, token); + else + MrBayesPrint ("%s Ambiguous command \"%s\"\n", spacer, token); + inError = YES; + } + else + { + /* We did find a valid command. Set what we are expecting to see next. */ + expecting = commandPtr->expect; + + /* Check to see if we have one of the so-called special cases in which a + command is not necessarily followed by a parameter (e.g., matrix). If we + do have a special case, then we want to set the parameter pointer (paramPtr) + appropriately. In this case, simply go to the first parameter in the parmList. */ + if (commandPtr->specialCmd == YES) + { + isFirstMatrixRead = YES; + foundFirst = NO; + paramPtr = paramTable + commandPtr->parmList[0]; + } + if (strcmp(commandPtr->string, "Execute")==0) + { + /* set the tokenizer to recognize quoted strings */ + readWord = YES; + } + } + } + else + { + /* We are expecting to find a parameter or a value for the parameter, not a command. */ + if ((expecting & Expecting(PARAMETER)) == Expecting(PARAMETER) && + (expecting & Expecting(tokenType)) != Expecting(tokenType)) + { + /* Specifically, if we are here, we need to go through the parameter list, + checking to see if the token is a valid parameter. */ + expecting = (expecting & Expecting(PARAMETER)); + if (FindValidParam (token, &numMatches) == ERROR) + { + /* The token is not a valid parameter. */ + if (numMatches == 0) + MrBayesPrint ("%s Could not find parameter \"%s\"\n", spacer, token); + else + MrBayesPrint ("%s Ambiguous parameter \"%s\"\n", spacer, token); + inError = YES; + } + else + { + /* The token is a valid parameter. Call the appropriate function ("DoXxxxParm"). */ + if ((paramPtr->fp)(paramPtr->string, token) == ERROR) + { + if (strcmp("Xxxxxxxxxx", paramPtr->string)) + MrBayesPrint ("%s Error when setting parameter \"%s\" (1)\n", spacer, paramPtr->string); + inError = YES; + } + } + } + else + { + /* Otherwise, we are expecting a value for the parameter. Call the appropriate function ("DoXxxxParm"). */ + if ((expecting & Expecting(tokenType)) != 0) + expecting = (expecting & Expecting(tokenType)); + if ((Expecting(tokenType) & expecting) == Expecting(tokenType)) + { + if ((paramPtr->fp)(paramPtr->string, token) == ERROR) + { + if (strcmp("Xxxxxxxxxx", paramPtr->string)) + MrBayesPrint ("%s Error when setting parameter \"%s\" (2)\n", spacer, paramPtr->string); + inError = YES; + } + } + else + { + inError = YES; + WhatVariableExp (expecting, errStr); + MrBayesPrint ("%s Expecting '%s'\n", spacer, errStr+1); /* there will be an initial space in errStr so print from pos 1 */ + if (numOpenExeFiles > 0) + MrBayesPrint ("%s Instead found '%s' in command '%s'\n", + spacer, token, commandPtr->string); + else + MrBayesPrint ("%s Instead found '%s' in command '%s' at position %d\n", + spacer, token, commandPtr->string, tokenP - cmdStr - strlen(token)+1); + } + } + } + } + else + { + /* The token is a semicolon. This means that we are at the end of processing one command. We + need to clean things up. We do this by calling the finishing function ("DoXxxx"). */ + if ((Expecting(SEMICOLON) & expecting) == Expecting(SEMICOLON)) + { + if (commandPtr->cmdFxnPtr != NULL) + { + /* Finish up the command here. */ + rc = (commandPtr->cmdFxnPtr) (); + if (rc == ERROR || rc == ABORT) + { + if (rc == ABORT) + { + MrBayesPrint (" Mcmc run aborted\n"); + } + else if (rc == SKIP_COMMAND) + { + MrBayesPrint (" Cancelled execution of command\n"); + skipCmd = YES; + } + else + { + MrBayesPrint ("%s Error in command \"%s\"\n", spacer, commandPtr->string); + inError = YES; + } + } + } + /* if the user typed "quit", then we want to bail out of this loop, with a NO_ERROR_QUIT */ + if (!strcmp(commandPtr->string, "Quit")) + return (NO_ERROR_QUIT); + expecting = Expecting(COMMAND); + } + else + { + inError = YES; + WhatVariableExp (expecting, errStr); + MrBayesPrint ("%s Expecting %s\n", spacer, errStr); + } + } + } + /* Check to see if a comment is terminated. A comment can either be a right comment "]" or, if we were in a foreign nexus block + (e.g., a "paup" block) the terminating comment will be "end". */ + if (tokenType == RIGHTCOMMENT) + { + if (inComment == NO && readComment == NO) + { + MrBayesPrint ("%s Found \"]\", without having previously found \"[\"\n", spacer); + inError = YES; + } + else if (inComment == NO && readComment == YES) + { + /* This is OK, we just pass through and rely on the command to handle the RIGHTCOMMENT */ + } + else + { + numComments--; + if (numComments == 0) + inComment = NO; + } + } + if ((IsSame(token, "end") == SAME || IsSame(token, "endblock") == SAME) && inForeignBlock == YES) + { + strcpy (spacer, ""); + inForeignBlock = NO; + } + } + + } while ((*token || tokenType == ALPHA) && inError == NO && skipCmd == NO); + + if (inError == YES) + { + readComment = NO; /* reset this in case it is set to YES in command and we get an error exit */ + return (ERROR); + } + else + return (NO_ERROR); +} + + +void PrintSettings (char *command) +{ + char yesNoStr[20]; + + if (!strcmp(command,"Mcmc")) + { + MrBayesPrint (" Parameter Options Current Setting \n"); + MrBayesPrint (" ----------------------------------------------------- \n"); + MrBayesPrint (" Ngen %d \n", chainParams.numGen); + MrBayesPrint (" Nruns %d \n", chainParams.numRuns); + MrBayesPrint (" Nchains %d \n", chainParams.numChains); + MrBayesPrint (" Temp %lf \n", chainParams.chainTemp); + MrBayesPrint (" Reweight , %1.2lf v %1.2lf ^ \n", chainParams.weightScheme[0], chainParams.weightScheme[1]); + MrBayesPrint (" Swapfreq %d \n", chainParams.swapFreq); + MrBayesPrint (" Nswaps %d \n", chainParams.numSwaps); + MrBayesPrint (" Samplefreq %d \n", chainParams.sampleFreq); + MrBayesPrint (" Printfreq %d \n", chainParams.printFreq); + PrintYesNo (chainParams.printAll, yesNoStr); + MrBayesPrint (" Printall Yes/No %s \n", yesNoStr); + MrBayesPrint (" Printmax %d \n", chainParams.printMax); + PrintYesNo (chainParams.mcmcDiagn, yesNoStr); + MrBayesPrint (" Mcmcdiagn Yes/No %s \n", yesNoStr); + MrBayesPrint (" Diagnfreq %d \n", chainParams.diagnFreq); + if (chainParams.diagnStat == AVGSTDDEV) + strcpy (yesNoStr, "Avgstddev"); + else + strcpy (yesNoStr, "Maxstddev"); + MrBayesPrint (" Diagnstat Avgstddev/Maxstddev %s \n", yesNoStr); + MrBayesPrint (" Minpartfreq %1.2lf \n", chainParams.minPartFreq); + PrintYesNo (chainParams.allChains, yesNoStr); + MrBayesPrint (" Allchains Yes/No %s \n", yesNoStr); + PrintYesNo (chainParams.allComps, yesNoStr); + MrBayesPrint (" Allcomps Yes/No %s \n", yesNoStr); + PrintYesNo (chainParams.relativeBurnin, yesNoStr); + MrBayesPrint (" Relburnin Yes/No %s \n", yesNoStr); + MrBayesPrint (" Burnin %d \n", chainParams.chainBurnIn); + MrBayesPrint (" Burninfrac %1.2lf \n", chainParams.burninFraction); + PrintYesNo (chainParams.stopRule, yesNoStr); + MrBayesPrint (" Stoprule Yes/No %s \n", yesNoStr); + MrBayesPrint (" Stopval %1.2lf \n", chainParams.stopVal); + PrintYesNo (chainParams.saveTrees, yesNoStr); + MrBayesPrint (" Savetrees Yes/No %s \n", yesNoStr); + PrintYesNo (chainParams.checkPoint, yesNoStr); + MrBayesPrint (" Checkpoint Yes/No %s \n", yesNoStr); + MrBayesPrint (" Checkfreq %d \n", chainParams.checkFreq); + MrBayesPrint (" Filename %s.

    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≥3i=RrA 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 X|5I4~n=I=uaPniF|MDn)y@C7+C;zzV|7BDG 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

    f-VkY6nZHe;``t;gTavGH7+Z~7Ats$c~De1 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 z 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

  2. =<&>X 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