#NEXUS [written Sun Sep 21 19:25:35 PDT 2003 by Mesquite version 1.0 (build e57)] BEGIN TAXA; TITLE species; DIMENSIONS NTAX=7; TAXLABELS a b c d e f g ; END; BEGIN TAXA; TITLE speciesSupplemented; DIMENSIONS NTAX=14; TAXLABELS a b c d e f g h i j g2 h2 i2 j2 ; END; BEGIN CHARACTERS; TITLE space; LINK TAXA = species; DIMENSIONS NCHAR=2; FORMAT DATATYPE = CONTINUOUS; MATRIX a 0.1889 0.0807 b 0.0052 -0.0073 c 0.0813 0.0744 d 4.02 3.821 e 4.03 3.942 f 4.153 4.047 g -0.0721 1.149 ; END; BEGIN CHARACTERS; TITLE space2; LINK TAXA = speciesSupplemented; DIMENSIONS NCHAR=2; FORMAT DATATYPE = CONTINUOUS; MATRIX a 0.1889 0.0807 b 0.0052 -0.0073 c 0.0813 0.0744 d 4.02 3.821 e 4.03 3.942 f 4.153 4.047 g -0.0721 1.149 h 0.0569 0.9767 i 0.1782 0.8074 j 0.0733 1.104 g2 -0.028 0.9647 h2 -0.0539 0.9679 i2 0.0479 1.086 j2 -0.0861 1.136 ; END; BEGIN NOTES; TEXT FILE TEXT = 'This file illustrates an alternative to PCA for visualizing multidimensional data among species, under development by W. Maddison & Eric Dryeson. It''s called "Evolutionary PCA" because it finds the axes that maximize evolutionary change, not static variance. It allows the change on the basal branch of clade B, for example, to be counted only once during the ordination.^n^nThe results are shown at left. Note that the two plots are nearly identical, because the blue clade''s influence is not dependent on the number of its species sampled.^n^nEPCA works by reconstructing ancestral states using squared-change parsimony, then performing a PCA on the vectors of change on each branch. It provides a visualization method that emphasizes a more evolutionary interpretation of change.'; END; BEGIN ASSUMPTIONS; TYPESET * UNTITLED (CHARACTERS = space) = Squared: 1 - 2; TYPESET * UNTITLED (CHARACTERS = space2) = Squared: 1 - 2; END; BEGIN MESQUITECHARMODELS; ProbModelSet * UNTITLED (CHARACTERS = space) = Brownian_default: 1 - 2; ProbModelSet * UNTITLED (CHARACTERS = space2) = Brownian_default: 1 - 2; END; Begin MESQUITE; MESQUITESCRIPTVERSION 2; TITLE AUTO; tell ProjectCoordinator; getEmployee #mesquite.minimal.ManageTaxa.ManageTaxa; tell It; setID 0 835465756695001242; setID 1 1991710532467474024; endTell; getEmployee #mesquite.charMatrices.ManageCharacters.ManageCharacters; tell It; setID 0 4918009697969523908; checksum 0 2390669759; setID 1 3533841213786404322; checksum 1 977018013; endTell; getEmployee #mesquite.trees.BasicTreeWindowCoord.BasicTreeWindowCoord; tell It; makeTreeWindow #835465756695001242 #mesquite.trees.BasicTreeWindowMaker.BasicTreeWindowMaker; tell It; setTreeSource #mesquite.trees.DefaultTrees.DefaultTrees; setAssignedID 1603.967565686342.6573736635669045704; getTreeDrawCoordinator #mesquite.trees.BasicTreeDrawCoordinator.BasicTreeDrawCoordinator; tell It; suppress; setTreeDrawer #mesquite.trees.DiagonalDrawTree.DiagonalDrawTree; tell It; setEdgeWidth 12; orientUp; getEmployee #mesquite.trees.NodeLocsStandard.NodeLocsStandard; tell It; stretchToggle off; branchLengthsToggle off; toggleScale on; toggleCenter off; toggleEven off; namesAngle ?; endTell; endTell; setBackground White; setBranchColor Black; desuppress; getEmployee #mesquite.trees.BasicDrawTaxonNames.BasicDrawTaxonNames; tell It; setFont SanSerif; setFontSize 10; setColor Black; toggleColorPartition on; toggleNodeLabels on; toggleShowNames on; endTell; endTell; getTreeWindow; tell It; setSize 292 218; setLocation 11 13; setFont SanSerif; setFontSize 10; onInfoBar; setExplanationSize 20; setAnnotationSize 20; getToolPalette; tell It; endTell; setTreeNumber 1; setTree '(((1,4),((2,5),(3,6))),7);'; toggleSizeToFit on; toggleTextOnTree off; newAssistant #mesquite.trees.TreeNotesMaker.TreeNotesMaker; tell It; getNote; tell It; setBounds 50 129 100 20; setOffsetX 50; setOffsetY 129; setNote second_clade_small; setOffsetX 50; setOffsetY 129; endTell; endTell; newAssistant #mesquite.ancstates.TraceCharacterHistory.TraceCharacterHistory; tell It; suspend ; setDisplayMode #mesquite.ancstates.ShadeStatesOnTree.ShadeStatesOnTree; tell It; toggleLabels off; endTell; setHistorySource #mesquite.ancstates.RecAncestralStates.RecAncestralStates; tell It; getCharacterSource #mesquite.charMatrices.CharSrcCoordObed.CharSrcCoordObed; tell It; setCharacterSource #mesquite.charMatrices.StoredCharacters.StoredCharacters; tell It; setTaxa #835465756695001242; setDataSet #4918009697969523908; endTell; endTell; setMethod #mesquite.parsimony.ParsAncestralStates.ParsAncestralStates; tell It; setModelSource #mesquite.parsimony.CurrentParsModels.CurrentParsModels; getEmployee #mesquite.parsimony.ParsimonySquared.ParsimonySquared; tell It; toggleWeight on; endTell; endTell; endTell; setCharacter 1; toggleShowLegend off; toggleWeights on; resume ; endTell; newWindowAssistant #mesquite.trees.DependentTreeWindow.DependentTreeWindow; tell It; getTreeDrawCoordinator #mesquite.trees.BasicTreeDrawCoordinator.BasicTreeDrawCoordinator; tell It; suppress; setTreeDrawer #mesquite.cont.PlotTree.PlotTree; tell It; setNodeLocs #mesquite.cont.NodeLocs2DPlot.NodeLocs2DPlot; tell It; hide; setAxis #mesquite.cont.MapContinuous.MapContinuous; tell It; getCharacterSource #mesquite.charMatrices.CharSrcCoordObed.CharSrcCoordObed; tell It; setCharacterSource #mesquite.rhetenor.CharFromOrdinations.CharFromOrdinations; tell It; getCharacterSource #mesquite.charMatrices.CharMatrixCoordIndep.CharMatrixCoordIndep; tell It; setCharacterSource #mesquite.charMatrices.StoredMatrices.StoredMatrices; tell It; setTaxa #835465756695001242; setDataSet #4918009697969523908; endTell; endTell; setOrdinator #mesquite.rhetenor.EvolutionaryPCA.EvolutionaryPCA; tell It; getEmployee #mesquite.trees.TreeOfContext.TreeOfContext; tell It; setContextID 1603.967565686342.6573736635669045704; endTell; endTell; setItem 0; endTell; endTell; setCharacter 2; setItem 0; getEmployee #mesquite.parsimony.ParsAncestralStates.ParsAncestralStates; tell It; setModelSource #mesquite.parsimony.CurrentParsModels.CurrentParsModels; tell It; setDefaultModel 13; endTell; getEmployee #mesquite.parsimony.ParsimonySquared.ParsimonySquared; tell It; toggleWeight on; endTell; endTell; endTell; toggleShowLegend off; setInitialOffsetX -200; setInitialOffsetY -224; setCurrentX 1; setCurrentY 2; show; endTell; setSpotDiameter 16; toggleShowInternals on; endTell; setBackground White; setBranchColor Black; desuppress; getEmployee #mesquite.trees.BasicDrawTaxonNames.BasicDrawTaxonNames; tell It; setFont SanSerif; setFontSize 10; setColor Black; toggleColorPartition on; toggleNodeLabels on; toggleShowNames on; endTell; endTell; getWindow; tell It; setSize 347 290; setLocation 321 7; setFont SanSerif; setFontSize 10; onInfoBar; setExplanationSize 0; setAnnotationSize 0; getToolPalette; tell It; endTell; newAssistantD #mesquite.trees.TreeNotesMaker.TreeNotesMaker; tell It; getNote; tell It; setBounds 112 4 137 32; setFont SanSerif; setFontSize 14; setOffsetX 13; setOffsetY -100; setNote Evolutionary_PCA; setOffsetX 13; setOffsetY -100; endTell; endTell; newAssistant #mesquite.ancstates.TraceCharacterHistory.TraceCharacterHistory; tell It; suspend ; setDisplayMode #mesquite.ancstates.ShadeStatesOnTree.ShadeStatesOnTree; tell It; toggleLabels off; endTell; setHistorySource #mesquite.ancstates.RecAncestralStates.RecAncestralStates; tell It; getCharacterSource #mesquite.charMatrices.CharSrcCoordObed.CharSrcCoordObed; tell It; setCharacterSource #mesquite.charMatrices.StoredCharacters.StoredCharacters; tell It; setTaxa #835465756695001242; setDataSet #4918009697969523908; endTell; endTell; setMethod #mesquite.parsimony.ParsAncestralStates.ParsAncestralStates; tell It; setModelSource #mesquite.parsimony.CurrentParsModels.CurrentParsModels; getEmployee #mesquite.parsimony.ParsimonySquared.ParsimonySquared; tell It; toggleWeight on; endTell; endTell; endTell; setCharacter 1; toggleShowLegend off; toggleWeights on; resume ; endTell; endTell; showWindow; endTell; endTell; showWindow; getEmployee #mesquite.ornamental.BranchNotes.BranchNotes; tell It; setAlwaysOn off; endTell; getEmployee #mesquite.trees.ColorBranches.ColorBranches; tell It; setColor Red; removeColor off; endTell; endTell; makeTreeWindow #1991710532467474024 #mesquite.trees.BasicTreeWindowMaker.BasicTreeWindowMaker; tell It; setTreeSource #mesquite.trees.DefaultTrees.DefaultTrees; setAssignedID 1733.967565688167.6875230740143230555; getTreeDrawCoordinator #mesquite.trees.BasicTreeDrawCoordinator.BasicTreeDrawCoordinator; tell It; suppress; setTreeDrawer #mesquite.trees.DiagonalDrawTree.DiagonalDrawTree; tell It; setEdgeWidth 12; orientUp; getEmployee #mesquite.trees.NodeLocsStandard.NodeLocsStandard; tell It; stretchToggle off; branchLengthsToggle off; toggleScale on; toggleCenter off; toggleEven off; namesAngle ?; endTell; endTell; setBackground Light_Gray; setBranchColor Black; desuppress; getEmployee #mesquite.trees.BasicDrawTaxonNames.BasicDrawTaxonNames; tell It; setFont SanSerif; setFontSize 10; setColor Black; toggleColorPartition on; toggleNodeLabels on; toggleShowNames on; endTell; endTell; getTreeWindow; tell It; setSize 296 222; setLocation 2 351; setFont SanSerif; setFontSize 10; onInfoBar; setExplanationSize 20; setAnnotationSize 20; getToolPalette; tell It; endTell; setTreeNumber 1; setTree '(((1,4),((2,5),(3,6))),((7,8),(9,(10,(11,(12,(13,14)))))));'; toggleSizeToFit on; toggleTextOnTree off; newAssistant #mesquite.trees.TreeNotesMaker.TreeNotesMaker; tell It; getNote; tell It; setBounds 50 142 100 20; setOffsetX 50; setOffsetY 142; setNote second_clade_large; setOffsetX 50; setOffsetY 142; endTell; endTell; newAssistant #mesquite.ancstates.TraceCharacterHistory.TraceCharacterHistory; tell It; suspend ; setDisplayMode #mesquite.ancstates.ShadeStatesOnTree.ShadeStatesOnTree; tell It; toggleLabels off; endTell; setHistorySource #mesquite.ancstates.RecAncestralStates.RecAncestralStates; tell It; getCharacterSource #mesquite.charMatrices.CharSrcCoordObed.CharSrcCoordObed; tell It; setCharacterSource #mesquite.charMatrices.StoredCharacters.StoredCharacters; tell It; setTaxa #1991710532467474024; setDataSet #3533841213786404322; endTell; endTell; setMethod #mesquite.parsimony.ParsAncestralStates.ParsAncestralStates; tell It; setModelSource #mesquite.parsimony.CurrentParsModels.CurrentParsModels; getEmployee #mesquite.parsimony.ParsimonySquared.ParsimonySquared; tell It; toggleWeight on; endTell; endTell; endTell; setCharacter 1; toggleShowLegend off; toggleWeights on; resume ; endTell; newWindowAssistant #mesquite.trees.DependentTreeWindow.DependentTreeWindow; tell It; getTreeDrawCoordinator #mesquite.trees.BasicTreeDrawCoordinator.BasicTreeDrawCoordinator; tell It; suppress; setTreeDrawer #mesquite.cont.PlotTree.PlotTree; tell It; setNodeLocs #mesquite.cont.NodeLocs2DPlot.NodeLocs2DPlot; tell It; hide; setAxis #mesquite.cont.MapContinuous.MapContinuous; tell It; getCharacterSource #mesquite.charMatrices.CharSrcCoordObed.CharSrcCoordObed; tell It; setCharacterSource #mesquite.rhetenor.CharFromOrdinations.CharFromOrdinations; tell It; getCharacterSource #mesquite.charMatrices.CharMatrixCoordIndep.CharMatrixCoordIndep; tell It; setCharacterSource #mesquite.charMatrices.StoredMatrices.StoredMatrices; tell It; setTaxa #1991710532467474024; setDataSet #3533841213786404322; endTell; endTell; setOrdinator #mesquite.rhetenor.EvolutionaryPCA.EvolutionaryPCA; tell It; getEmployee #mesquite.trees.TreeOfContext.TreeOfContext; tell It; setContextID 1733.967565688167.6875230740143230555; endTell; endTell; setItem 0; endTell; endTell; setCharacter 2; setItem 0; getEmployee #mesquite.parsimony.ParsAncestralStates.ParsAncestralStates; tell It; setModelSource #mesquite.parsimony.CurrentParsModels.CurrentParsModels; tell It; setDefaultModel 13; endTell; getEmployee #mesquite.parsimony.ParsimonySquared.ParsimonySquared; tell It; toggleWeight on; endTell; endTell; endTell; toggleShowLegend off; setInitialOffsetX -200; setInitialOffsetY -220; setCurrentX 1; setCurrentY 2; show; endTell; setSpotDiameter 16; toggleShowInternals on; endTell; setBackground Light_Gray; setBranchColor Black; desuppress; getEmployee #mesquite.trees.BasicDrawTaxonNames.BasicDrawTaxonNames; tell It; setFont SanSerif; setFontSize 10; setColor Black; toggleColorPartition on; toggleNodeLabels on; toggleShowNames on; endTell; endTell; getWindow; tell It; setSize 342 292; setLocation 314 352; setFont SanSerif; setFontSize 10; onInfoBar; setExplanationSize 0; setAnnotationSize 0; getToolPalette; tell It; endTell; newAssistantD #mesquite.trees.TreeNotesMaker.TreeNotesMaker; tell It; getNote; tell It; setBounds 102 41 137 32; setFont SanSerif; setFontSize 14; setOffsetX -6; setOffsetY -112; setNote Evolutionary_PCA; setOffsetX -6; setOffsetY -112; endTell; endTell; newAssistant #mesquite.ancstates.TraceCharacterHistory.TraceCharacterHistory; tell It; suspend ; setDisplayMode #mesquite.ancstates.ShadeStatesOnTree.ShadeStatesOnTree; tell It; toggleLabels off; endTell; setHistorySource #mesquite.ancstates.RecAncestralStates.RecAncestralStates; tell It; getCharacterSource #mesquite.charMatrices.CharSrcCoordObed.CharSrcCoordObed; tell It; setCharacterSource #mesquite.charMatrices.StoredCharacters.StoredCharacters; tell It; setTaxa #1991710532467474024; setDataSet #3533841213786404322; endTell; endTell; setMethod #mesquite.parsimony.ParsAncestralStates.ParsAncestralStates; tell It; setModelSource #mesquite.parsimony.CurrentParsModels.CurrentParsModels; getEmployee #mesquite.parsimony.ParsimonySquared.ParsimonySquared; tell It; toggleWeight on; endTell; endTell; endTell; setCharacter 1; toggleShowLegend off; toggleWeights on; resume ; endTell; endTell; showWindow; endTell; endTell; showWindow; getEmployee #mesquite.ornamental.BranchNotes.BranchNotes; tell It; setAlwaysOn off; endTell; getEmployee #mesquite.trees.ColorBranches.ColorBranches; tell It; setColor Red; removeColor off; endTell; endTell; endTell; newAssistant #mesquite.ornamental.PictureWindowMaker.PictureWindowMaker; tell It; setPicture 'epca/Image2.gif'; getWindow; tell It; setSize 273 208; setLocation 699 22; setFont SanSerif; setFontSize 10; offInfoBar; setExplanationSize 0; setAnnotationSize 0; endTell; showWindow; endTell; newAssistant #mesquite.basic.ExamplesNavigator.ExamplesNavigator; tell It; setNextFileName '16-epcaLiveSim.nex'; setPrevFileName '14-epca.nex'; getWindow; tell It; setSize 306 313; setLocation 684 266; setFont SanSerif; setFontSize 10; offInfoBar; setExplanationSize 0; setAnnotationSize 0; setActive; setExplanation 'This file illustrates an alternative to PCA for visualizing multidimensional data among species, under development by Wayne Maddison & Eric Dryeson. It''s called "Evolutionary PCA" because it finds the axes that maximize evolutionary change, not static variance. It allows the change on the basal branch of clade B, for example, to be counted only once during the ordination.^n^nThe results are shown at left. Note that the two plots are nearly identical, because the blue clade''s influence is not dependent on the number of its species sampled.^n^nEPCA works by reconstructing ancestral states using squared-change parsimony, then performing a PCA on the vectors of change on each branch. It provides a visualization method that emphasizes a more evolutionary interpretation of change.'; setTitle EPCA; toggleFileNames off; setPrevButtonName Previous; setNextButtonName Next; endTell; showWindow; endTell; endTell; end;