python外文文献.docx
《python外文文献.docx》由会员分享,可在线阅读,更多相关《python外文文献.docx(12页珍藏版)》请在冰豆网上搜索。
python外文文献
apythonEnvironmentforTreeExploration
ReviewedbyJaimeHuerta-Cepas,correspondingauthorlJoaqunDopazo,2and
ToniGabald6ncorrespondingauthor1
Abstract
Manybioinformaticsanalyses,rangingfromgeneclusteringtophylogenetics,
producehierarchical
treesastheirmain
result.
Theseareused
torepresent
the
relationships
among
different
biological
entities,
thus
facilitating
theiranalysis
and
interpretation.
Anumberof
standalone
programs
are
available
thatfocuson
tree
visualizationorthatperformspecificanalysesonthem.However,suchapplicationsarerarelysuitableforlarge-scalesurveys,inwhichahigherlevelofautomationisrequired.Currently,manygenome-wideanalysesrelyontree-likedatarepresentationandhencethereisagrowingneedforscalabletoolstohandletreestructuresatlargescale.
Keywords:
Python,spikingneurons,simulation,integrateandfire,teaching,neuralnetworks,computationalneuroscienee,software
Background
HerewepresenttheEnvironmentforTreeExploration(ETE),apythonprogramming
toolkitthatassistsintheautomatedmanipulation,analysisandvisualizationof
hierarchicaltrees.ETElibrariesprovideabroadsetoftreehandlingoptionsaswellasspecificmethodstoanalyzephylogeneticandclusteringtrees.Amongotherfeatures,
ETEallowsfortheindependentanalysisoftreepartitions,hassupportfortheextendednewickformat,providesanintegratednodeannotationsystemandpermitstolinktreestoexternaldatasuchasmultiplesequeneealignmentsornumericalarrays.Inaddition,ETEimplementsanumberofbuilt-inanalyticaltools,includingphylogeny-based
orthologypredictionandclustervalidationtechniques.Finally,ETE'sprogrammabletreedrawingenginecanbeusedtoautomatethegraphicalrenderingoftreeswithcustomizednode-specificvisualizations.
Conclusions
ETEprovidesacompletesetofmethodstomanipulatetreedatastructuresthatextendscurrentfunctionalityinotherbioinformatictoolkitsofamoregeneralpurpose.ETEisfreesoftwareandcanbedownloadedfromhttp:
//ete.cgenomics.org.
Treesarecommonlyusedtorepresenttheresultsofmanybioinformaticsanalyses.
Inparticular,suchtypeofbinarygraphsareidealtodescribethehierarchicalrelationshipsamongavarietyofbiologicalentities.Somecommonexamplesaretheevolutionaryanalysisofmolecularsequencesortheclusterizationofgenesandproteinsaccordingtotheirproperties.Besidestheinformationencodedinthetopologyoftrees,branchlengthscanalsobescaledtoprovideinformationonthedistancesbetweenthedifferentpartitions.Inphylogenetics,forinstanee,treesareusedtoillustratethe
evolutionaryrelationshipsamongspeciesormolecularsequences,consideringterminal
nodesasextantOperationalTaxonomicUnits(OTU)andinternalnodesastheircorrespondingancestors.Insuchphylogenetictrees,branchlengthsareusuallyproportionaltotheevolutionarydistaneeamongsequences.Otherapplications,suchastheanalysisofgeneexpression,usehierarchicalclusteringanalysistogroupgenesorexperimentalconditionsaccordingtothesimilarityoftheirexpressionpatterns.Likewise,treesareusedbymanyproteinclassificationmethodsandfortheanalysisofphylogeneticprofiles.Thus,theanalysisoftreedatastructuresisacommontaskinmanyareasofbioinformaticsandthereisaneedforanalyticalandvisualizationtools.Inthisrespect,anumberofbioinformaticprogramsdoexistthatassistintheexplorationofhierarchicaltrees.Mostofthem,however,consistofstandaloneapplicationsthatarefocusedonvisualizationand,occasionally,onperformingspecifictests.SomewellknownexamplesareTreeView[1],awidelyusedprogramforinspectingphylogenetictrees;ClusterTreeview[2],anapplicationforvisualizingmicroarrayclusteringresults;ATV
[3],ajavaprogramusedtoexplorephylogenieswhichprovidesalsosomeediting
options;MEGA[4],anevolutionarygeneticsanalysissuitethatincludesabuilt-intreeviewer;andmanyotherrecentapplications[5-8].Whilealltheseprogramsareveryusefultomanagesingletrees,theycanhardlybeautomatizedoradaptedtospecificneeds.Thus,whentheanalysisofhundredsorthousandsoftreesisrequired,theuseofstandaloneprogramsbecomesrestrictive,becauseamuchhigherlevelofautomationisrequired.Insuchcases,programmingtoolkitsrepresentamoreadequateframework,sincetheyprovidetoolsandmethodstohandledataatalowerlevel.Usingtoolkits,bioinformaticianscaneasilycreatetheirownanalysispipelinesandprogramcustomtasksoverlargecollectionsofdata[9].SeveralgenericbioinformatictoolkitsdoexistthatcoverawiderangeofprogrammingIanguagesandscopes,withBioPerl[10]and
BioPython[11]beingthemostextensivelydeveloped.Togetherwithabroadrangeof
otherfeatures,thesetoolkitsallowcertainlevelofinteractionwithtreedatastructures.
However,onlybasicactionsarecurrentlysupported.Alternatively,thePyCogent[12]and
P4http:
//bmnh.org/~pf/p4.htmlpythontoolkitscanbeusedtoextendthisfunctionality,althoughtheyaremostlyfocusedonphylogeneticreconstruction.R[13],ageneralpurposestatisticalframework,doesincludeseveralpackagestoperformstatisticaltestsonclusteringandphylogenetictrees.Nevertheless,thesepackagesarefocusedonperformingspecificanalysesratherthaninprovidingtreehandlingandmanipulationfeatures.Finally,incontrasttothegreatnumberofstandalonetreeviewers,programmingtoolkitsofferfew,ifany,graphicalrenderingpossibilities.AnintermediatealternativebetweenstandaloneviewersandprogrammatictreerenderingisthatoftheTreeDynprogram[14],whichhassupportforsomescriptingoptionsandcanbeusedtocreatefullyannotatedtreeimages.
Inresponsetotheselimitations,wepresentheretheEnvironmentforTree
Exploration(ETE),apythonprogrammingtoolkittoanalyze,manipulateorvisualizeanykindofhierarchicaltree.Itextendsthefunctionalityinothertoolkitsandallowsahighlevelofcustomization.ETE'sdrawingfeatures,althoughlessexhaustivethanin
standaloneeditors,relyonthePythonscriptingIanguage,whichmakespossibleto
combineadvaneedtreeanalysesandtreevisualizationintoasingleprogram.Thetoolkitincludesmethodstobrowseandmanipulatetreetopologies,providessupportfortheNewHampshireeXtended(NHX)formatandallowsadvaneedactionssuchasnode
annotation,automaticrooting,cut&pastepartitions,treeconcatenation,nodesearch,
andbranchdistaneerelatedoperations.Inaddition,ETEimplementstwospecific
modulestoworkwithphylogeneticandclusteringtrees.Thephylogeneticextensionallowstreestobelinkedtotheircorrespondingmultiplesequeneealignments,includestwoorthologyandparalogypredictionalgorithms,implementstheduplicationdatingmethoddescribedin[15]andprovidesaccesstothePhylomeDBdatabase[16].Similarly,clusteringtreescanbelinkedtotheirsourcedata,whichallowstreepartitionstobeanalyzedthroughseveralvalidationtechniques.Additionally,ETEimplementsafully
programmabledrawingenginethatcanbeusedtogenerate,dynamically,customtreerepresentationsinPDForPNGformats.Thisdrawingengineisfullyintegratedwiththebuilt-inextensions,thusprovidingpre-definedvisualizationlayoutsforclusteringtreesandphylogenies.AGraphicalUserInterfaceisalsoincludedwhichallowsontheflyinteractionwithtrees.
Currently,theETEtoolkitisusedindiverseprojects,includingGEPAS[17],Phylemon[18]andPhylomeDB[15].ETEpackageanddocumentationcanbeaccessedat
http:
//ete.cgenomics.org
Implementation
ETEisentirelywritteninPython[19],aprogrammingIanguagethatoffersastrongsupportforintegrationwithotherIanguagesandtools,andwhosepopularityisraisingamongthebioinformaticscommunity[20].ETE'sphilosophyistofacilitatethe
integrationwithothertoolkitsaswellastoprovideascalableprogramarchitecture.Thus,ETEtreeobjectscanbeeasilyimportedandexpandedbyincorporatingcustommethodsandproperties.ThefunctionalityoftheETEtoolkitisdividedintoseveralpythonmodules,whichcanbeimportedatconvenience.AsummaryoffeaturesofthedifferentmodulesisshowninTable
Treehandlingmodule
ETE'smainmoduleallowstoreadandrendertreesusingthetwomostcommon
formats:
NewHampshire(NH)andNewHampshireeXtended(NHX).Moreover,itallows
togeneraterandomtreesorcreatecustomtreestructuresfromscratch.Inorderto
increasecompatibilitywithothertools,severalnewickformatstandardsarecurrently
supportedbyETE,bothforreadingandwritingtrees(seeETE'sextended
documentation).ETE'streesareinternallyencodedasaseriesoftreenodeinstancesconnectedfollowingaparent-childrelationship.Eachnodeisencodedasan
independentPythonobject,whichprovidesmanymethodstomanipulateits
connections(i.e.add,remove,deleteordetachnodes)andtoeasilybrowseitstopology
(i.e.treetraversalandgetterminal,children,sisterordescendantnodes).Asa
consequenee,eachinternalnodeistreatedasafullyfeaturedsubtree,thusallowingto
analyzedifferentpartsoftreesseparately.ETE'streeobjectimplementationsupportsmultifurcationsandcanbeusedtodealwithvery