Snell Psoda Bosc2009

14
Computa(onal Sciences Laboratory, Brigham Young University PSODA Open‐Source Phylogene(c Search and DNA Analysis Quinn Snell, Mark Clement Brigham Young University Provo, UT

description

 

Transcript of Snell Psoda Bosc2009

Page 1: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

PSODA

Open‐SourcePhylogene(cSearchandDNAAnalysis

QuinnSnell,MarkClementBrighamYoungUniversity

Provo,UT

Page 2: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

PSODA

•  Open‐sourcesequenceanalysispackage– GPLv2

•  Compa(blewithPAUP*– samefunc(onsyntax– maintainsthesameseman(cs

•  Addsscrip(nglanguagetothePAUPblock– allowsforcrea(onofadvancedmeta‐searches

Page 3: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

PSODAPerformance

Page 4: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

PSODA

•  Begandevelopmentin2005asanalterna(vetoPAUP*–  phylogene(csearch– mul(plealignment–  detectnaturalselec(on

•  PlaPormfordevelopment–  newsearchalgorithms– meta‐searches–  characteriza(onofop(miza(ons–  etc.

Page 5: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

Features

•  Heuris(cSearchviaTBR–  parsimonyandmaximumlikelihood

•  Otherintegratedprograms–  RAxML–Likelihoodsearch–  Mr.Bayes–Bayesiansearch–  TreeSAAP–selec(ondetec(onusingchemicalproper(es–  ATV–treeviewer–  Jalview–Alignmentviewer

•  GraphicalUserInterface–Java–  binarydistribu(onforMacOSX,Windows,andLinux

•  Object‐orientedC++availableviasubversion–  h^p://dna.cs.byu.edu/opensvn/psoda

Page 6: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

GUI

Page 7: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

PSODAscript

•  Addedfunc(onalityforPAUPblocks•  Decisionstatements&Loops•  Func(ons–  built‐inanduser‐defined

•  Allowsforeasyscrip(ngofmeta‐searches–  Example:likelihoodratchet

•  stepwisestar(ngtree•  likelihoodTBRonasingletree•  adjustweights•  parsimonyonasingletreetogetoutoflocalminima•  loop

Page 8: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

PSODAscriptPAUP*ratchet

Repeatedtextcon(nues.Don’tknowwhentostop.

PSODAratchetBEGIN PAUP;

begin randomReweight numChars = getWeightsLength(); numWeights = numChars / percent;

j = 0; while (j < numweights) weight = random(max = range); col = random(max = numChars) + 1; weights weight:col; j++; endwhile; end;

set maxtrees = 1 nreps = 5; set criterion=parsimony; hsearch start = stepwise swap = tbr; range = 3;

while (true) randomReweight(percent = 10); set criterion=parsimony; hsearch start = current swap = tbr;

weights reset;

set criterion=likelihood; hsearch start = current swap = tbr; endwhile;

end;

BEGINPAUP;setcriterion=parsimony;setmaxtrees=1increase=no;hsearchstart=stepwiseswap=TBR;weights2:71417262731344550525457606364657377869192102103107115117121122124127131133134140142155156163173176183185187195197198202204209219221222225226230237238240241244248252254255258269276279283284291294295297309310315319321323325326342346349350351353354355359360363366370377378390393394398408412413418419423425426428429432450456467475479482484489492493497498500;hsearchstart=currentswap=TBR;setmaxtrees=1;weights1:all;hsearchstart=currentswap=TBR;weights2:1172021293335394250575969707173808693969799100102111121125126141142148149155157163168174179180184187188194203208212216219220225226231242243251253254256257260265269272274277282286287288291293296297305306309315316318324326327329334340346351352356360366370372373379380384390396399401408412414421423426428429441442444448455459460462472473475477478487489493;hsearchstart=currentswap=TBR;weights1:all;hsearchstart=currentswap=TBR;weights2:2911141618202428364043454759606264657072849092105107111112118122129130135138146148152153156161162167172173177190197200207209213215217218226234245249250251253254255257266275276281284288293303305315319322324329336347349351352355356358360365367368371376377378381382407409410411412413418421424425426437442444447448452459461462466474475477478480484488491;hsearchstart=currentswap=TBR;weights1:all;hsearchstart=currentswap=TBR;weights2:1517222631343944465865717379808592939598100101107114119127131137138139142145146150151152155161162167170175176177188191197198211212217220228232234236238239241242243245252257268269270271281283287300305308309311318323324326333334335342345349350351361363367368371372374384388395406408410425426427428430432434435439443445447452455457461465467470474483485490;hsearchstart=currentswap=TBR;weights1:all;hsearchstart=currentswap=TBR;weights2:23920222425262830323438434649586066687072758788919799103105109112115118123139140144146152160162165168180184194197203204207214217220222223225233240244249250251257260262270275280286290291292297298301307310313314318321322326334336338339343347357369372373378380381389395396397401403404407410413425430447454455460461464472478482483487488489492494498;hsearchstart=currentswap=TBR;;

Page 9: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

PSODAscript

•  Designedtobeextensible•  Eachfunc(onisitsownclassthatinheritsfromaPsodaCommand–  programmermustaddtheclasstothecommandregistra(onprocess•  registersthecommand’sname

–  automa(callyaddsittotheparsing–  noneedforparsingcodechanges

–  classconstructor•  registerscommanddescrip(on•  registerscommandarguments•  whencommandiscalled,theexecutemethodiscalled

–  programmercodestheexecutefunc(on

Page 10: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

PSODAscript#include"ExportInstr.h"#include"Interpreter.h"#include"PsodaPrinter.h”

usingnamespacestd;

ExportInstr::ExportInstr():BuiltInCommand(){initFileDefaultValue("file","");initDefaultValue("format","fasta","");addParamOp(on("format","phylip");}

ExportInstr::~ExportInstr(){}

voidExportInstr::execute(Environment*baseEnv,Literal*&returnVal__a^ribute__((unused))){execute(baseEnv);}

voidExportInstr::execute(Environment*baseEnv){Dataset*dataset=Interpreter::getInstance()‐>dataset();stringformat=baseEnv‐>lookupString("format");stringfile=baseEnv‐>lookupString("file");dataset‐>printSeqs(format,file);

#ifdefGUIPsodaPrinter::getInstance()‐>write("##ExportCompletedSuccessfully\n");#endif}

stringExportInstr::getName()const{return"export";}

#include"BuiltInCommand.h"

usingnamespacestd;

classExportInstr:publicBuiltInCommand{

private:

//Prohibitcopyingofthisobjectvoidoperator=(ExportInstr&);ExportInstr(ExportInstr&);

public:

//ConstructorExportInstr();

//Destructorvirtual~ExportInstr();

/***CallpassParams()tosetuptheparametersintheinterpreter*/virtualvoidexecute(Environment*baseEnv);virtualvoidexecute(Environment*baseEnv,Literal*&returnVal);

/***Returnsthenameofthisinstruc(on*/virtualstringgetName()const;

};

Page 11: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

PSODAscript&theGUI

•  AllPSODAscriptcommandsmaybeexecutedfromwithinanexusfileortheGUI–  noaddi(onalcodeneeded

Commandsareautoma(callyincludedinthecommandslist

Allcommandshaveawindowcreatedwhencalled.Thefieldsarebasedontheregisteredargumentlist

Page 12: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

PSODAscript

•  Powerfulscrip(nglanguagethat– alsoallowsaccesstotheinternaldatastructures– allowsforcrea(onandaccesstohighperformancefunc(onality

•  Automa(cinclusioninthegraphicaluserinterfacemeansthat– usersautoma(callygetaccesstonewfunc(onality

– programmerdoesnotneedtoknowGUIcode

Page 13: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

Conclusion

•  PSODAis:– acompe((veDNAanalysispackage– anopen‐sourcedevelopmentplaPorm– anextensiblescrip(ngplaPorm

•  Programmersmay– addnewanalysisfunc(onality– addnewscrip(ngcommands

•  Allnewscrip(ngfunc(onalityisautoma(callyaddedtothegraphicaluserinterface

Page 14: Snell Psoda Bosc2009

Computa(onalSciencesLaboratory,BrighamYoungUniversity

Acknowledgements&etc.

•  Collaborators–  QuinnSnell,MarkClement–  KeithCrandall,MichaelWhi(ng–  KennethSundberg,HyrumCarroll,andmanyothergradstudentstonumeroustomen(on

•  Downloadath^p://dna.cs.byu.edu/psoda•  svncoh^p://dna.cs.byu.edu/opensvn/psoda

•  Ques(ons?