Parsimony trees using PAUP* - (Oct/01/2013 )
Hi guys,
Anybody uses PAUP* to infer parsimony trees? I'm just a beginner with the program and after dealing with it I got the most parsimonious trees on one hand and a majority rule consensus tree with the bootstrap support values in other.
Do you know how I can apply the bootstrapping values to one of the most parsimonious trees, with PAUP* or any other program? Or I have to do it manually with one of the most parsimonious trees matching with the topology of the tree with the bootstrap support values?
Thank you in advance.
Well, in case anybody could be interested and/or for future reference...
First, I set some parameters (using gaps as a fifth character)
set criterion=parsimony rootmethod=outgroup storebrlens=yes increase=auto notifybeep=no outroot=monophyl storetreewts=yes; pset gapmode=newstate;
And set the outgroups (Substitute outgroup1 and outgroup2 for a list of outgroup sequences separated by spaces)
outgroup outgroup1 outgroup2;
I used PAUPRat to generate a series of most parsimonious trees (20 individual searches of 200 iterations). I didn't use any of the PAUP* search options due the ammount of sequences and their length so it would take an absurd ammount of time to process. (See PAUPRat instructions for more details)
When finish I filter the results again to leave the overall best trees:
filter best=yes;
Save the trees:
savetrees file=fileref.bestall.tre brlens=yes savebootp=nodelabels;
And get the scores for the trees (valuable for systematics papers):
pscores all/TL=yes CI=yes RI=yes RC=yes HI=yes Scorefile=fileref.scores
Run bootstrap analysis (1000 pseudoreplicates using heuristic search with 100 random stepwise additions under TBR)
bootstrap nreps=1000 search=heuristic keepall=yes grpfreq=yes treefile=fileref.boot.tre brlens=yes/start=stepwise swap=tbr multrees=yes nreps=100 addseq=random dstatus=60 rstatus=yes;
IMPORTANT!!!!
Right after finish, save the tree with the bootstrap values, otherwise you can check the bootstrap values in the log file
savetrees file=fileref.bootMajRule.tre from=1 to=1 BrLens=yes savebootp=nodelabels;
Now, reload the Ratchet trees generated, to ease the labour make a nexus file (I call it gettreesbest.nex) like this:
#nexus begin paup; gettrees file=fileref0.best.tre StoreTreeWts=yes StoreBrLens=yes mode=3 duptrees=keep; gettrees file=fileref1.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref2.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref3.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref4.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref5.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref6.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref7.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref8.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref9.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref10.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref11.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref12.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref13.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref14.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref15.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref16.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref17.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref18.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; gettrees file=fileref19.best.tre StoreTreeWts=yes StoreBrLens=yes mode=7 duptrees=keep; end;
And filter the best trees again
filter best=yes;
If you forgot to annotate the tree scores, you can do it now.
Save all the trees:
savetrees file=fileref.allratchet.tre BrLens=yes savebootp=nodelabels;
Create and save the strict consensus tree from the best parsimonious trees. NOTE: the branches of this tree also found in the MP tree plotted for publication will be thickened in the MP tree.
contree all/strict=yes MajRule=no LE50=no usetreewts=yes treefile=fileref.strictMP.tre;
Reload the Ratchet trees (gettreesbest.nex), replacing the following:
duptrees=keep;
by
duptrees=eliminate;
Filter best trees again. The result is the number of unique most parsimonious trees. It makes easier to explore the MP trees when many of them appear multiple times. Save them if you want:
savetrees file=fileref.ratchetunique.tre BrLens=yes savebootp=nodelabels;
Reload the bootstrap trees from filerefstepwise.boot.tre:
gettrees file=filerefstepwise.boot.tre StoreBrLens=yes StoreTreeWts=yes mode=3 duptrees=keep;
Log output to file fileref.boot.log
Generate 50% Majority Rule consensus tree:
contree all/strict=no Percent=50 MajRule=yes LE50=no Rootmethod=outgroup usetreewts=yes outroot=monophyl treefile=fileref.contree50.tre;
Stop logging
Check the log and pick the bootstrap values.
Now pick one of the MP trees, open it with TreeView and save as emf or wmf images. Paste in PowerPoint. Resize the image as desired. Right click and ungroup. Now you can edit the image as desired, pasting the bootstrap values, correcting italics and increasing the thickness of the branches included in the strict consensus tree of MP trees.
You may want to include bootstrap values from other methods, e.g. ML with GARLI. These values that can be added in the same way to the edited tree.
Thanks I hopefully can use this somewhen.