**COMPRESSED** **COMPRESSED** **COMPRESSED** **COMPRESSED** **COMPRESSED********LIB CONTROL WIN_PROWIN8 SAS8.2D701PHYLOEXSEXAMPLE1VC10RC32RL801S 0 0 0 NO01μSPAN CONTROL -728128L28SPAN CONTROL -1106226L106NAME altaltSPAN CONTROL -1110230L110NAME nterrnterrSPAN CONTROL -1108228L108NAME duraduraSPAN CONTROL -1108228L108NAME concconcSPAN CONTROL -1108228L108NAME  confconfSPAN CONTROL -1108228L108NAME H$$terrterrSPAN CONTROL -1104224L104NAME (spspSPAN CONTROL -1104224L104NAME 0gegeSPAN CONTROL -1104224L104NAME 8fafa SPAN CONTROL -1104224L104NAME @oror SPAN CONTROL -316116L16SPAN CONTROL 080180L80A0AA\(\(AAAAASSPAN CONTROL 080180L80A0AA<AA AAA SSPAN CONTROL 080180L80A0A`A*=p >AA0AAA0SSPAN CONTROL 080180L80A ApA-QAA@AAA@WSPAN CONTROL 080180L80A A0A\(AAPAAAPWSPAN CONTROL 080180L80A0A@A=p >AA`AA APSSPAN CONTROL 080180L80A APA!\(AApAA APWSPAN CONTROL 080180L80A APA#\(\AAAA APWSPAN CONTROL 080180L80BȼA0APA*zGAAAA0APSSPAN CONTROL 080180L80A A@AQAAAA A`WSPAN CONTROL 080180L80A APA\(AAA A A`WSPAN CONTROL 080180L80A A0@QPAAAA`WSPAN CONTROL 080180L80A A`A+333334AмAA0A`WSPAN CONTROL 080180L80AA@AzGAAAAPA`NSPAN CONTROL 080180L80A .A=p >AAAAPA`WSPAN CONTROL 080180L80A APA&zGABA APA`WSPAN CONTROL 080180L80AA @ =pABA A@A`NSPAN CONTROL 080180L80AA@A\(\ABA0A@A`NSPAN CONTROL 080180L80BdA0A`A-GzHABA@ApA`SSPAN CONTROL 080180L80AA@A(\)BA0ApA`NSPAN CONTROL 080180L80A A`A*=p >ABA ApA`WSPAN CONTROL 080180L80C@A0A`A1ABA ApA`SSPAN CONTROL 080180L80BdA .A)\(ABA ApA`WSPAN CONTROL 080180L80BdA .A\(\BAApA`WSPAN CONTROL 080180L80BȼA A@A =p׼BAAA`WSPAN CONTROL 080180L80AAPAABA AA`NSPAN CONTROL 080180L80BdA APA#\(\ABA0AA`WSPAN CONTROL 080180L80BȼA A`A(QRBAAA`WSPAN CONTROL 080180L80CA0AAF\(BApAA`SSPAN CONTROL 080180L80C@AA0AGzABA@AA`NSPAN CONTROL 080180L80A.@333338ABA A`A`NSPAN CONTROL 080180L80AA @zGAB AA`A`NEnd of DataD701PHYLOEXSEXAMPLE2VC29RC100RL2241S 0 0 0 NO01μSPAN CONTROL -728128L28SPAN CONTROL -1102222L102NAME ؼ$$ffSPAN CONTROL -1102222L102NAME ppSPAN CONTROL -1102222L102NAME qqSPAN CONTROL -1104224L104NAME T1T1SPAN CONTROL -1104224L104NAME T2T2SPAN CONTROL -1104224L104NAME  T3T3SPAN CONTROL -1104224L104NAME (T4T4SPAN CONTROL -1104224L104NAME 0T5T5SPAN CONTROL -1104224L104NAME 8T6T6 SPAN CONTROL -1104224L104NAME @T7T7 SPAN CONTROL -1104224L104NAME HT8T8 SPAN CONTROL -1104224L104NAME PT9T9 SPAN CONTROL -1106226L106NAME XT10T10 SPAN CONTROL -1106226L106NAME `T11T11SPAN CONTROL -1106226L106NAME hT12T12SPAN CONTROL -1106226L106NAME pT13T13SPAN CONTROL -1106226L106NAME xT14T14SPAN CONTROL -1106226L106NAME T15T15SPAN CONTROL -1106226L106NAME T16T16SPAN CONTROL -1106226L106NAME T17T17SPAN CONTROL -1106226L106NAME T18T18SPAN CONTROL -1106226L106NAME T19T19SPAN CONTROL -1106226L106NAME T20T20SPAN CONTROL -1106226L106NAME T21T21SPAN CONTROL -1106226L106NAME T22T22SPAN CONTROL -1106226L106NAME T23T23SPAN CONTROL -1106226L106NAME ȼT24T24SPAN CONTROL -1102222L102NAME мgnSPAN CONTROL -1103223L103NAME ټgapSPAN CONTROL -316116L16SPAN CONTROL 0224364L224@&IP@YJHAAAAAAAAAAAAAAAAAAAAAAAAAAUer$pasSPAN CONTROL 0224364L224@;dZ@ԕ*0AAAAAAAAAAAAAAAAAAAAAAAAA AVt manaSPAN CONTROL 0224364L224@#a@N?vȴ9AAAAAAAAAAAAAAAAAAAAAAAA A0AWns speSPAN CONTROL 0224364L224@14J@,zxl AAAAAAAAAAAAAAAAAAAAAAAA A@AXns onlSPAN CONTROL 0224364L224@G&@0A7KƨAAAAAAAAAAAAAAAAAAAAAAAA0APAYintproSPAN CONTROL 0224364L224@B<64@7+ I^AAAAAAAAAAAAAAAAAAAAAAAA0APAYstartiSPAN CONTROL 0224364L224@Zc@'3AAAAAAAAAAAAAAAAAAAAAAA A0ABU to prSPAN CONTROL 0224364L224@333338@AAAAAAAAAAAAAAAAAAAAAAA A0A BVions.ASPAN CONTROL 0224364L224@',<@1 AAAAAAAAAAAAAAAAAAAAAAA0A0A0BWtributSPAN CONTROL 0224364L224@䎊qh@/VϨAAAAAAAAAAAAAAAAAAAAAAA0A0A@BXe prinSPAN CONTROL 0224364L224@rGE8@D*0AAAAAAAAAAAAAAAAAAAAAA A0A0APBYchangeSPAN CONTROL 0224364L224@J0 (@C,xAAAAAAAAAAAAAAAAAAAAAA A0A0APBY_newTaSPAN CONTROL 0224364L224@[W>6x@U=AAAAAAAAAAAAAAAAAAAAAA0A0A0ACUributeSPAN CONTROL 0224364L224@xU<@bn0AAAAAAAAAAAAAAAAAAAAAA0A0A0A CViesopSPAN CONTROL 0224364L224@>BX@Q@NAAAAAAAAAAAAAAAAAAAAA A0A0A0A0CWRLCTL.SPAN CONTROL 0224364L224@R<6@}HAAAAAAAAAAAAAAAAAAAAA A0A0A0A@CXl, 0 iSPAN CONTROL 0224364L224@y (@AAAAAAAAAAAAAAAAAAAAA0A0A0A0APCY, EXISSPAN CONTROL 0224364L224?쿱[W>@ApAAAAAAAAAAAAAAAAAAAAA0A0A0A0APCY to coSPAN CONTROL 0224364L224@KƧ@_HAAAAAAAAAAAAAAAAAAAA A0A0A0A0ADU.`retuSPAN CONTROL 0224364L224@oO M<@L1&xAAAAAAAAAAAAAAAAAAAA A0A0A0A0A DVACE wiSPAN CONTROL 0224364L224@@8}HAAAAAAAAAAAAAAAAAAAA0A0A0A0A0A0DWn exisSPAN CONTROL 0224364L224@& L/|@?AAAAAAAAAAAAAAAAAAAA0A0A0A0A0A@DXther(SPAN CONTROL 0224364L224@6@@c AAAAAAAAAAAAAAAAAAA A0A0A0A0A0APDY dataSPAN CONTROL 0224364L224@y @YJAAAAAAAAAAAAAAAAAAA A0A0A0A0A0APDYbe delSPAN CONTROL 0224364L224@іR<6@;dZAAAAAAAAAAAAAAAAAAA0A0A0A0A0A0AEUey orSPAN CONTROL 0224364L224?w1p@\(AAAAAAAAAAAAAAAAAAA0A0A0A0A0A0A EVor douSPAN CONTROL 0224364L224@`C\@C$AAAAAAAAAAAAAAAAAA A0A0A0A0A0A0A0EWl'RetuSPAN CONTROL 0224364L224@֧-@_FpAAAAAAAAAAAAAAAAAA A0A0A0A0A0A0A@EX handlSPAN CONTROL 0224364L224@@2WAAAAAAAAAAAAAAAAAA0A0A0A0A0A0A0APEYHIspecSPAN CONTROL 0224364L224@&@VxAAAAAAAAAAAAAAAAAA0A0A0A0A0A0A0APEYormatiSPAN CONTROL 0224364L224@2W@? AAAAAAAAAAAAAAAAA A0A0A0A0A0A0A0AEUa giveSPAN CONTROL 0224364L224@BT`d@fAAAAAAAAAAAAAAAAAA A0A0A0A0A0A0A0A EVes theSPAN CONTROL 0224364L224@ceP@a@NAAAAAAAAAAAAAAAAA0A0A0A0A0A0A0A0A0EWero-baSPAN CONTROL 0224364L224@weڹ@V}Vl AAAAAAAAAAAAAAAAA0A0A0A0A0A0A0A0A@EXove toSPAN CONTROL 0224364L224@^@l(\(AAAAAAAAAAAAAAAA A0A0A0A0A0A0A0A0APEYnotherSPAN CONTROL 0224364L224@,@Z0 (AAAAAAAAAAAAAAAA A0A0A0A0A0A0A0A0APEYdle toSPAN CONTROL 0224364L224@*0U0@%1AAAAAAAAAAAAAAAA0A0A0A0A0A0A0A0A0AAUey toSPAN CONTROL 0224364L224@D3@a|QAAAAAAAAAAAAAAAA0A0A0A0A0A0A0A0A0A AVder keSPAN CONTROL 0224364L224@a|Q@\wkPAAAAAAAAAAAAAAA A0A0A0A0A0A0A0A0A0A0AW whethSPAN CONTROL 0224364L224@E@_oAAAAAAAAAAAAAAA A0A0A0A0A0A0A0A0A0A@AX(strinSPAN CONTROL 0224364L224@ߤ?@ռn.AAAAAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0APAYndle oSPAN CONTROL 0224364L224@gkP|@yoiDhAAAAAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0APAYthe acSPAN CONTROL 0224364L224?s@.HAAAAAAAAAAAAAA A0A0A0A0A0A0A0A0A0A0ABUs of DSPAN CONTROL 0224364L224?*0@xAAAAAAAAAAAAAA A0A0A0A0A0A0A0A0A0A0A BVTTRS.SSPAN CONTROL 0224364L224@hr ě@ڒS&AAAAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0BWd notSPAN CONTROL 0224364L224@b}Vp@+jgAAAAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A@BXntpb*CSPAN CONTROL 0224364L224@L>BZ@=+jAAAAAAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0APBYTextlaSPAN CONTROL 0224364L224@Ϫ͞(@Q_oAAAAAAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0APBYributeSPAN CONTROL 0224364L224@}O;dZ@iXbMAAAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0ACUckgrouSPAN CONTROL 0224364L224?@}U=AAAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A CVOUNDSSPAN CONTROL 0224364L224@A7KƧ@O;dZAAAAAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0CWFont:#SPAN CONTROL 0224364L224@74m8@W/VAAAAAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A@CXRL TEXSPAN CONTROL 0224364L224@c @>BXAAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0APCYASHELPSPAN CONTROL 0224364L224@˒:)@]!.HAAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0APCYP.FSP.SPAN CONTROL 0224364L224@ @m\AAAAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0ADUhe cmdSPAN CONTROL 0224364L224@vȴ9@QAAAAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A DV attriSPAN CONTROL 0224364L224@}Vl @ZAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0DW4SPAN CONTROL 0224364L224@F]ch?u%FAAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A@DXERESPAN CONTROL 0224364L224@?@1aeAAAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0APDYer$pasSPAN CONTROL 0224364L224@D(@+6AAAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0APDYt manaSPAN CONTROL 0224364L224@Xy=b@ZAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AEUns speSPAN CONTROL 0224364L224@*0U2`@1GzHAAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A EVns onlSPAN CONTROL 0224364L224@f}Vl @Q`AAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0EWintproSPAN CONTROL 0224364L224@GKƧ@FzAAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A@EXstartiSPAN CONTROL 0224364L224?>BZc@zY|AAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APEY to prSPAN CONTROL 0224364L224@|>BZ@sgAAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APEYions.ASPAN CONTROL 0224364L224@Z@U@AAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AEUtributSPAN CONTROL 0224364L224@)oiDh@vaeAAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A EVe prinSPAN CONTROL 0224364L224@Bu%F L@SF]cdAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0EWchangeSPAN CONTROL 0224364L224@NTɄ@N2WAAAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A@EX_newTaSPAN CONTROL 0224364L224@kjf@@'RT`dAAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APEYributeSPAN CONTROL 0224364L224@%1@'RT`AAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APEYiesopSPAN CONTROL 0224364L224@{5Xy<@xF]`AAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AAURLCTL.SPAN CONTROL 0224364L224>`A7K@C\AAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A AVl, 0 iSPAN CONTROL 0224364L224@͞(@C$AAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AW, EXISSPAN CONTROL 0224364L224@ߤ??rGHAAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A@AX to coSPAN CONTROL 0224364L224?W>6z@C{J#9AAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APAY.`retuSPAN CONTROL 0224364L224@z=p @@ݗ+hAAAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APAYACE wiSPAN CONTROL 0224364L224@D%1@C,zxAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ABUn exisSPAN CONTROL 0224364L224@D@7KƧAAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A BVther(SPAN CONTROL 0224364L224@{Ƨ,@5Xy@AAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0BW dataSPAN CONTROL 0224364L224@u(@[P{AAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A@BXbe delSPAN CONTROL 0224364L224@4*0V@tj~AAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APBYey orSPAN CONTROL 0224364L224@>6z@b}VlAAAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APBYor douSPAN CONTROL 0224364L224@=p @@>ߤ?AAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ACUl'RetuSPAN CONTROL 0224364L224@eQ @TJLAAAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A CV handlSPAN CONTROL 0224364L224@xH@333338AAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0CWHIspecSPAN CONTROL 0224364L224@n6z@E%F L0AAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A@CXormatiSPAN CONTROL 0224364L224@K]c@US&AAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APCYa giveSPAN CONTROL 0224364L224@xF]d@d7AAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APCYes theSPAN CONTROL 0224364L224@_o@H˒:(AA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADUero-baSPAN CONTROL 0224364L224@E\(>IQAA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A DVove toSPAN CONTROL 0224364L224@uS&@!AA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0DWnotherSPAN CONTROL 0224364L224@@7sPHAA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A@DXdle toSPAN CONTROL 0224364L224@jQ_p@ZcA A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APDYey toSPAN CONTROL 0224364L224@Xy=`@(A A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0APDYder keSPAN CONTROL 0224364L224@Sn.2@g hA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AEU whethSPAN CONTROL 0224364L224?iB@N (A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A EV(strinSPAN CONTROL 0224364L224@MjOx@쿱[W?A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0EWndle oSPAN CONTROL 0224364L224@=ceP@-VA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A@EXthe acEnd of DataC701PHYLOEXSEXAMPLESOC0 1MAX LRECL =514OBJECT CONTROL CODESOURCE1015409608MAR04:21:30:14 08MAR04:21:30:14SPAN CONTROL 1461285175L1285 /*EXAMPLES OF USE OF %PHYREG and %NEWICK*/μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Obtain the program, manual and files for these examples from */μμSPAN CONTROL 1461285175L1285 /*http://users.ox.ac.uk/~grafen/*/μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* You must have installed the software to run these examples -- see installationμμSPAN CONTROL 1461285175L1285section of manual.ļμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285You must also have loaded the macros during this SAS session. If you haven't,μμSPAN CONTROL 1461285175L1285find library PHYLO in the Explorer, open the catalog LoadMacros, and runμμSPAN CONTROL 1461285175L1285the entry called RunMe. See manual if you need more details */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* First the code to run Example 1 */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The first command contains 'reset=YES' so that the example will run properlyμμSPAN CONTROL 1461285175L1285even if you've been doing other analyses beforehand. It uses data inμμSPAN CONTROL 1461285175L1285phyloexs.Example1, obtains the phylogeny from taxonomic variablesμμSPAN CONTROL 1461285175L1285ge fa and or, and tests whether alt influences conc. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(reset=YES,dataset=phyloexs.Example1, taxvars=ge fa or, y=conc, test=alt);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Only the default two pages of output are given. The first gives parameter estimates,μμSPAN CONTROL 1461285175L1285including of rho. The second gives the F-ratio for the test, and also confirmationμμSPAN CONTROL 1461285175L1285of how path segment lengths were assigned and where the phylogeny came from. ThereμμSPAN CONTROL 1461285175L1285is no evidence that alt influences conc. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Next we decide to set heights using the taxonomic levels method. We need aμμSPAN CONTROL 1461285175L1285dataset with four numbers in it (one more than the number of taxonomicμμSPAN CONTROL 1461285175L1285variables) in ascending order. This is a simple way to create such a dataset */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 data phyloexs.hts1a;żμμSPAN CONTROL 1461285175L1285 keep Height;ͼμμSPAN CONTROL 1461285175L1285 array b {4} (1,2,3,4);üμμSPAN CONTROL 1461285175L1285 do i=1 to dim(b);ȼμμSPAN CONTROL 1461285175L1285 Height=b[i];̼μμSPAN CONTROL 1461285175L1285 output;μμμSPAN CONTROL 1461285175L1285 end;μμμSPAN CONTROL 1461285175L1285 run;μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The same analysis, but specifying that file as the source of the heights ofμμSPAN CONTROL 1461285175L1285nodes, is carried out simply by giving the heightsdataset parameter. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(heightsdataset=phyloexs.hts1a);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The value of rho has changed quite dramatically, but this is presumablyμμSPAN CONTROL 1461285175L1285compensating for the different balance between top and bottom of the treeμμSPAN CONTROL 1461285175L1285in the two sets of heights used. There is still no evidence that altμμSPAN CONTROL 1461285175L1285influences conc. What about some different weights? We put a different setμμSPAN CONTROL 1461285175L1285of weights into the same dataset. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 data phyloexs.hts1a;żμμSPAN CONTROL 1461285175L1285 keep Height;ͼμμSPAN CONTROL 1461285175L1285 array b {4} (4,5,6,8);üμμSPAN CONTROL 1461285175L1285 do i=1 to dim(b);ȼμμSPAN CONTROL 1461285175L1285 Height=b[i];̼μμSPAN CONTROL 1461285175L1285 output;μμμSPAN CONTROL 1461285175L1285 end;μμμSPAN CONTROL 1461285175L1285 run;μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* As none of the parameters has changed, we try the new weights just byμμSPAN CONTROL 1461285175L1285repeating the same call -- and so no parameters need be given. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(); μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The output shows that rho has changed again, but still no evidence thatμμSPAN CONTROL 1461285175L1285alt influences conc. Just to show what happens if we make a mistake inμμSPAN CONTROL 1461285175L1285the number of levels in the heights dataset, let's put 5 heights inμμSPAN CONTROL 1461285175L1285instead of the correct 4, and again repeat the analysis.*/μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 data phyloexs.hts1a;żμμSPAN CONTROL 1461285175L1285 keep Height;ͼμμSPAN CONTROL 1461285175L1285 array b {5} (1,2,3,4,8);μμSPAN CONTROL 1461285175L1285 do i=1 to dim(b);ȼμμSPAN CONTROL 1461285175L1285 Height=b[i];̼μμSPAN CONTROL 1461285175L1285 output;μμμSPAN CONTROL 1461285175L1285 end;μμμSPAN CONTROL 1461285175L1285 run;μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(); μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The default Figure 2 heights are used and a warning is given. The outputμμSPAN CONTROL 1461285175L1285of parameter estimates and tests is therefore the same as that for the firstμμSPAN CONTROL 1461285175L1285analysis. */ʼμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The next command used the macro %newick for the first time. WeμμSPAN CONTROL 1461285175L1285provide a phylogeny in newick style. The species areμμSPAN CONTROL 1461285175L1285represented just by their numbers (to save space here), but could beμμSPAN CONTROL 1461285175L1285represented by their names. Spaces and carriage returns are ignored byμμSPAN CONTROL 1461285175L1285the program, and so can be used freely for formatting. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %newick(phylstr=(1,2,3,4,(5,(6,7,8),9),((10,11),12,13,((14,15),16),(17,18),μμSPAN CONTROL 1461285175L1285𼊼(19,20,(21,22,23),24),(25,26,27,28,29,30),(31,32))),μμSPAN CONTROL 1461285175L1285outphyfile=phyloexs.phy1a);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The output file phyloexs,phy1a now contains the phylogeny in single variableμμSPAN CONTROL 1461285175L1285format, and can now be used in the following command. We can now use theμμSPAN CONTROL 1461285175L1285single variable method instead of taxonomic variables. It is necessary toμμSPAN CONTROL 1461285175L1285unset 'taxvars' because if they are present they override the phydataset.μμSPAN CONTROL 1461285175L1285And we unset heightsdataset too, to avoid the warnings.*/μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(taxvars=_UNSET_, phydataset=phyloexs.phy1a, heightsdataset=_UNSET_);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Notice that the output is the same. This is because the phylogeny we haveμμSPAN CONTROL 1461285175L1285created is the same as that produced by the taxonomic variables. OnμμSPAN CONTROL 1461285175L1285the F-ratio page, the method of specifying the phylogeny is confirmed. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The next command again uses %newick, but this time we specify the heightμμSPAN CONTROL 1461285175L1285of each node with a colon following the name (for species) or closingμμSPAN CONTROL 1461285175L1285bracket (for higher nodes). We need to say 'data=HEIGHTS', becauseμμSPAN CONTROL 1461285175L1285otherwise the program assumes that the additional data represent theμμSPAN CONTROL 1461285175L1285length of the path segment leading to the node from its parent, and not itsμμSPAN CONTROL 1461285175L1285height. */̼μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %newick(phylstr=(1:0,2:0,3:0,4:0,(5:0,(6:0,7:0,8:0):1,9:0):3,((10:0,11:0):2,12:0,13:0,μμSPAN CONTROL 1461285175L1285𼊼((14:0,15:0):1,16:0):2,(17:0,18:0):2,(19:0,20:0,(21:0,22:0,23:0):1,μμSPAN CONTROL 1461285175L1285𼊼24:0):2,(25:0,26:0,27:0,28:0,29:0,30:0):2,(31:0,32:0):2):3):4,μμSPAN CONTROL 1461285175L1285outphyfile=phyloexs.phy1b, outheightsfile=phyloexs.hts1b,data=HEIGHTS);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The phylogeny file and heights file are used in the next call of %phyreg. TheμμSPAN CONTROL 1461285175L1285output is the same as in an earlier analysis, because the heights are just theμμSPAN CONTROL 1461285175L1285same as those obtained by the taxonomic levels method. Thus the diversity ofμμSPAN CONTROL 1461285175L1285possible methods is illustrated with a uniformity of numerical results. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(phydataset=phyloexs.phy1b, heightsdataset=phyloexs.hts1b, taxvars=_UNSET_);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Now a sequence of analyses that in turn (i) control for alt and test forμμSPAN CONTROL 1461285175L1285dura (ii) control for alt and dura and test for a quadratic term in duraμμSPAN CONTROL 1461285175L1285(iii) control for alt and the linear and quadratic terms in dura, andμμSPAN CONTROL 1461285175L1285test for the cubic term in dura. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(control=alt,test=dura);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(control=alt dura,test=dura*dura);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(control=alt dura dura*dura,test=dura*dura*dura);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Before attending to the statistical significances, look at the totalμμSPAN CONTROL 1461285175L1285degrees of freedom for the F-test. There are two degrees of freedomμμSPAN CONTROL 1461285175L1285fewer than expected, because of missing data in dura. This missingμμSPAN CONTROL 1461285175L1285data reduces by two the number of higher nodes in the phylogeny,μμSPAN CONTROL 1461285175L1285and so the degrees of freedom in the short regression. We will seeμμSPAN CONTROL 1461285175L1285later how to get an accounting of all these things in the outputμμSPAN CONTROL 1461285175L1285by specifying 'opdf=1'.μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* There is no evidence that more than the linear term is required, thoughμμSPAN CONTROL 1461285175L1285the linear term is overwhelmingly significant. So we control for altμμSPAN CONTROL 1461285175L1285and dura, and test for terr. We need to specify that terr is a class variable.μμSPAN CONTROL 1461285175L1285Notice in the parameter output how the parameters are named. The variableμμSPAN CONTROL 1461285175L1285name terr is followed by an underscore and then by the name of the level.*/μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(control=alt dura, test=terr, class=terr);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Next we control for nterr, which is a numerical coding of terr as 1, 2, 3.μμSPAN CONTROL 1461285175L1285This effectively looks for a 'non-linear' effect of terr. Notice thatμμSPAN CONTROL 1461285175L1285two of the terr levels are now aliased, as terr has only one degree ofμμSPAN CONTROL 1461285175L1285freedom once nterr is controlled for. This shows that SAS behavesμμSPAN CONTROL 1461285175L1285nicely in the face of collinearity, and we can safely include linearμμSPAN CONTROL 1461285175L1285contrasts, letting SAS handle the degrees of freedom. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(control=alt dura nterr, test=terr);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The program warns that rho became too small. This probably means thatμμSPAN CONTROL 1461285175L1285there seemed to be anti-phylogenetic correlations, in which closeμμSPAN CONTROL 1461285175L1285species were too different from each other. We could try reducingμμSPAN CONTROL 1461285175L1285minrho, in case that did help, but won't pursue that here. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Finally, we decide to repeat the final analysis on a subset of species.μμSPAN CONTROL 1461285175L1285The variable conf in the dataset contains a 1 for some species and a 0μμSPAN CONTROL 1461285175L1285for others. Those with a 1 are included in the next analysis, and thoseμμSPAN CONTROL 1461285175L1285with a 0 are excluded. There are many reasons why such an analysis mightμμSPAN CONTROL 1461285175L1285be of interest -- perhaps some species have less reliable data, or weμμSPAN CONTROL 1461285175L1285want to know whether omitting a particular taxon will alter the result.μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285We also ask for the page of output that details how the degrees ofμμSPAN CONTROL 1461285175L1285freedom are calculated. It shows how many species are omitted by SPUSE,μμSPAN CONTROL 1461285175L1285and how many for missing values, as well as many of the other smallμμSPAN CONTROL 1461285175L1285additions of degrees of freedom that are necessary to make the testμμSPAN CONTROL 1461285175L1285work properly. */żμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(spuse=conf, opdf=1);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The rho problem disappears here.*/μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* That was the code for Example 1*/μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Here is the code for Example 2 */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* You might find it convenient to clear the output window before proceeding, toμμSPAN CONTROL 1461285175L1285make it easier to look back and forward at the output from this example only. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* We begin again by resetting parameters, so no hangovers from the previous exampleμμSPAN CONTROL 1461285175L1285or your previous work interfere with the macro. We use the second example file andμμSPAN CONTROL 1461285175L1285specify twenty-four taxonomic variables. We test for the effect of q on p, and setμμSPAN CONTROL 1461285175L1285the lower boundary of the initial search region for rho to be 0.01. The reason weμμSPAN CONTROL 1461285175L1285set addDF=1 is that this example was used in the GLIM implementation using anμμSPAN CONTROL 1461285175L1285additional degree of freedom, and it is good to check that this version gives theμμSPAN CONTROL 1461285175L1285same results.*/ǼμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(reset=YES, dataset=phyloexs.example2,μμSPAN CONTROL 1461285175L1285taxvars=t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24,¼μSPAN CONTROL 1461285175L1285y=p,test=q, addDF=1,lorho=0.01);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Again the low rho message, but we continue as an exercise. We define f and gapμμSPAN CONTROL 1461285175L1285to be class variables, and test first for f, then for gap controlling for f, andμμSPAN CONTROL 1461285175L1285then for the interaction f*gap controlling for f and gap.*/μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(test=f,class=f gap);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(control=f,test=gap);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(control=f gap,test=f*gap);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* f isn't significant, gap is nearly significant, and the interaction isn't. NoticeμμSPAN CONTROL 1461285175L1285the parameter names for the interaction. They have f*gap followed by an underscoreμμSPAN CONTROL 1461285175L1285and the level of f and than another underscore and the level of gap. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Next a discrete variable is set as the y-variable. This is a reasonable thingμμSPAN CONTROL 1461285175L1285to do (Grafen and Ridley, 1996, J. theor. Biol., 183, 255-267), but introducesμμSPAN CONTROL 1461285175L1285a new phenomenon -- losing phylogenetic degrees of freedom in theμμSPAN CONTROL 1461285175L1285denominator. See the manual and the source paper for more details. Here weμμSPAN CONTROL 1461285175L1285do an analysis to see what the output looks like. gn is a version of gap thatμμSPAN CONTROL 1461285175L1285is coded 1 to 5 instead of U to Y. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(y=gn, control=_UNSET_, test=q);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The F-ratio page has the extra output. It warns of the loss of degrees ofμμSPAN CONTROL 1461285175L1285freedom, and gives the identifying numbers of the higher nodes. If you haveμμSPAN CONTROL 1461285175L1285a drawing of the phylogeny with the nodes numbered, you can look to see whichμμSPAN CONTROL 1461285175L1285have been omitted. The opdf=1 page will show the accounting of degrees ofμμSPAN CONTROL 1461285175L1285freedom including this loss. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* The next feature is to capture the phylogeny file. The existing analysis usesμμSPAN CONTROL 1461285175L1285taxonomic variables, but in such cases %phyreg stores the single variable inμμSPAN CONTROL 1461285175L1285a dataset called phylo.zphy. The following DATA step copies it into the phyloexsμμSPAN CONTROL 1461285175L1285library, so it won't be overwritten in later runs of %phyreg. */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 data phyloexs.phy2;ƼμμSPAN CONTROL 1461285175L1285 set phylo.zphy;ʼμμSPAN CONTROL 1461285175L1285 run;μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Then we use that phydataset in the next analysis. It should show no change inμμSPAN CONTROL 1461285175L1285the output (apart from recognising that the phylogeny came from a file insteadμμSPAN CONTROL 1461285175L1285of taxonomic variables) because it is the same phylogeny as just used. WeμμSPAN CONTROL 1461285175L1285also ask for the parameters of the macro to be printed with opmacparm=1. ThisμμSPAN CONTROL 1461285175L1285can be useful if we are unsure what values are taken by all the remembered itemsμμSPAN CONTROL 1461285175L1285 */μμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(phydataset=phyloexs.phy2,opmacparm=1,opdf=1);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* In this case it explains why we *didn't* manage to use the phydataset. taxvarsμμSPAN CONTROL 1461285175L1285was still set, and so overrode phydataset. Thus we unset taxvars and get theμμSPAN CONTROL 1461285175L1285result we want. */ļμμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 %phyreg(taxvars=_UNSET_);μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* End of examples -- have fun! */μμSPAN CONTROL 1461285175L1285𼊼μμμSPAN CONTROL 1461285175L1285 /* Things not illustrated here.μμSPAN CONTROL 1461285175L1285 (1) Fixing rho rather than fitting it -- just say 'rho=0.72' to set it to 0.72,μμSPAN CONTROL 1461285175L1285and say 'rho=-1' to return to fitting.μμSPAN CONTROL 1461285175L1285 */μμμEnd of Object