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

Snell Psoda Bosc2009

  • Upload
    bosc

  • View
    821

  • Download
    3

Embed Size (px)

DESCRIPTION

 

Citation preview

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?