<?xml version="1.0" encoding="ascii"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Bio.Phylo._io</title> <link rel="stylesheet" href="epydoc.css" type="text/css" /> <script type="text/javascript" src="epydoc.js"></script> </head> <body bgcolor="white" text="black" link="blue" vlink="#204080" alink="#204080"> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0"> <tr valign="top"> <td width="100%"> <span class="breadcrumbs"> <a href="Bio-module.html">Package Bio</a> :: <a href="Bio.Phylo-module.html">Package Phylo</a> :: Module _io </span> </td> <td> <table cellpadding="0" cellspacing="0"> <!-- hide/show private --> <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" onclick="toggle_private();">hide private</a>]</span></td></tr> <tr><td align="right"><span class="options" >[<a href="frames.html" target="_top">frames</a >] | <a href="Bio.Phylo._io-pysrc.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <h1 class="epydoc">Source Code for <a href="Bio.Phylo._io-module.html" onclick="show_private();">Module Bio.Phylo._io</a></h1> <pre class="py-src"> <a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2009 by Eric Talevich (eric.talevich@gmail.com)</tt> </tt> <a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"># This code is part of the Biopython distribution and governed by its</tt> </tt> <a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># license. Please see the LICENSE file that should have been included</tt> </tt> <a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"># as part of this package.</tt> </tt> <a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"> </tt> <a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring">"""I/O function wrappers for phylogenetic tree formats.</tt> </tt> <a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring">This API follows the same semantics as Biopython's `SeqIO` and `AlignIO`.</tt> </tt> <a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt> <a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-name">__docformat__</tt> <tt class="py-op">=</tt> <tt class="py-string">"restructuredtext en"</tt> </tt> <a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"> </tt> <a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package Bio=Bio-module.html"><a title="Bio" class="py-name" href="#" onclick="return doclink('link-0', 'Bio', 'link-0');">Bio</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package Bio.Phylo=Bio.Phylo-module.html"><a title="Bio.Phylo" class="py-name" href="#" onclick="return doclink('link-1', 'Phylo', 'link-1');">Phylo</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Module Bio.Phylo.BaseTree=Bio.Phylo.BaseTree-module.html"><a title="Bio.Phylo.BaseTree" class="py-name" href="#" onclick="return doclink('link-2', 'BaseTree', 'link-2');">BaseTree</a></tt><tt class="py-op">,</tt> <tt id="link-3" class="py-name" targets="Module Bio.Phylo.NewickIO=Bio.Phylo.NewickIO-module.html"><a title="Bio.Phylo.NewickIO" class="py-name" href="#" onclick="return doclink('link-3', 'NewickIO', 'link-3');">NewickIO</a></tt><tt class="py-op">,</tt> <tt id="link-4" class="py-name" targets="Module Bio.AlignIO.NexusIO=Bio.AlignIO.NexusIO-module.html,Module Bio.Phylo.NexusIO=Bio.Phylo.NexusIO-module.html"><a title="Bio.AlignIO.NexusIO Bio.Phylo.NexusIO" class="py-name" href="#" onclick="return doclink('link-4', 'NexusIO', 'link-4');">NexusIO</a></tt> </tt> <a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"> </tt> <a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"># Python 2.4 doesn't have ElementTree, which PhyloXMLIO needs</tt> </tt> <a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt> <a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt id="link-5" class="py-name"><a title="Bio" class="py-name" href="#" onclick="return doclink('link-5', 'Bio', 'link-0');">Bio</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="Bio.Phylo" class="py-name" href="#" onclick="return doclink('link-6', 'Phylo', 'link-1');">Phylo</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Module Bio.Phylo.PhyloXMLIO=Bio.Phylo.PhyloXMLIO-module.html"><a title="Bio.Phylo.PhyloXMLIO" class="py-name" href="#" onclick="return doclink('link-7', 'PhyloXMLIO', 'link-7');">PhyloXMLIO</a></tt> </tt> <a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt> <a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> <tt class="py-comment"># TODO: should we issue a warning? the installer will have already whined</tt> </tt> <a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"> <tt class="py-comment"># raise MissingPythonDependencyError(</tt> </tt> <a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"> <tt class="py-comment"># "Install an ElementTree implementation if you want to use "</tt> </tt> <a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"> <tt class="py-comment"># "Bio.Phylo to parse phyloXML files.")</tt> </tt> <a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"> <tt id="link-8" class="py-name" targets="Variable Bio.Phylo._io.supported_formats=Bio.Phylo._io-module.html#supported_formats"><a title="Bio.Phylo._io.supported_formats" class="py-name" href="#" onclick="return doclink('link-8', 'supported_formats', 'link-8');">supported_formats</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt> <a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> <tt class="py-string">'newick'</tt><tt class="py-op">:</tt> <tt id="link-9" class="py-name"><a title="Bio.Phylo.NewickIO" class="py-name" href="#" onclick="return doclink('link-9', 'NewickIO', 'link-3');">NewickIO</a></tt><tt class="py-op">,</tt> </tt> <a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> <tt class="py-string">'nexus'</tt><tt class="py-op">:</tt> <tt id="link-10" class="py-name"><a title="Bio.AlignIO.NexusIO Bio.Phylo.NexusIO" class="py-name" href="#" onclick="return doclink('link-10', 'NexusIO', 'link-4');">NexusIO</a></tt><tt class="py-op">,</tt> </tt> <a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt> <a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt id="link-11" class="py-name"><a title="Bio.Phylo._io.supported_formats" class="py-name" href="#" onclick="return doclink('link-11', 'supported_formats', 'link-8');">supported_formats</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt> <a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt class="py-string">'newick'</tt><tt class="py-op">:</tt> <tt id="link-12" class="py-name"><a title="Bio.Phylo.NewickIO" class="py-name" href="#" onclick="return doclink('link-12', 'NewickIO', 'link-3');">NewickIO</a></tt><tt class="py-op">,</tt> </tt> <a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt class="py-string">'nexus'</tt><tt class="py-op">:</tt> <tt id="link-13" class="py-name"><a title="Bio.AlignIO.NexusIO Bio.Phylo.NexusIO" class="py-name" href="#" onclick="return doclink('link-13', 'NexusIO', 'link-4');">NexusIO</a></tt><tt class="py-op">,</tt> </tt> <a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-string">'phyloxml'</tt><tt class="py-op">:</tt> <tt id="link-14" class="py-name"><a title="Bio.Phylo.PhyloXMLIO" class="py-name" href="#" onclick="return doclink('link-14', 'PhyloXMLIO', 'link-7');">PhyloXMLIO</a></tt><tt class="py-op">,</tt> </tt> <a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt> <a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> </tt> <a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> </tt> <a name="parse"></a><div id="parse-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="parse-toggle" onclick="return toggle('parse');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.Phylo._io-module.html#parse">parse</a><tt class="py-op">(</tt><tt class="py-param">file</tt><tt class="py-op">,</tt> <tt class="py-param">format</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="parse-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="parse-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-docstring">"""Iteratively parse a file and return each of the trees it contains.</tt> </tt> <a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring"> If a file only contains one tree, this still returns an iterable object that</tt> </tt> <a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-docstring"> contains one element.</tt> </tt> <a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> Example</tt> </tt> <a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> -------</tt> </tt> <a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> >>> trees = parse('../../Tests/PhyloXML/apaf.xml', 'phyloxml')</tt> </tt> <a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> >>> for tree in trees:</tt> </tt> <a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> ... print tree.rooted</tt> </tt> <a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> True</tt> </tt> <a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">do_close</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt> <a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt> <a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-name">do_close</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt> <a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-comment"># Py2.4 compatibility: this should be in a try/finally block</tt> </tt> <a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-comment"># try:</tt> </tt> <a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">tree</tt> <tt class="py-keyword">in</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="Bio.Phylo._io.supported_formats" class="py-name" href="#" onclick="return doclink('link-15', 'supported_formats', 'link-8');">supported_formats</a></tt><tt class="py-op">[</tt><tt id="link-16" class="py-name" targets="Method Bio.Align.Generic.Alignment.format()=Bio.Align.Generic.Alignment-class.html#format,Method Bio.Motif._Motif.Motif.format()=Bio.Motif._Motif.Motif-class.html#format,Method Bio.Phylo.BaseTree.Tree.format()=Bio.Phylo.BaseTree.Tree-class.html#format,Method Bio.Restriction.Restriction.RestrictionBatch.format()=Bio.Restriction.Restriction.RestrictionBatch-class.html#format,Method Bio.SeqRecord.SeqRecord.format()=Bio.SeqRecord.SeqRecord-class.html#format"><a title="Bio.Align.Generic.Alignment.format Bio.Motif._Motif.Motif.format Bio.Phylo.BaseTree.Tree.format Bio.Restriction.Restriction.RestrictionBatch.format Bio.SeqRecord.SeqRecord.format" class="py-name" href="#" onclick="return doclink('link-16', 'format', 'link-16');">format</a></tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'parse'</tt><tt class="py-op">)</tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">yield</tt> <tt class="py-name">tree</tt> </tt> <a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-comment"># finally:</tt> </tt> <a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">do_close</tt><tt class="py-op">:</tt> </tt> <a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method Bio.SeqIO.SffIO._AddTellHandle.close()=Bio.SeqIO.SffIO._AddTellHandle-class.html#close,Method Bio.SeqIO._index._SQLiteManySeqFilesDict.close()=Bio.SeqIO._index._SQLiteManySeqFilesDict-class.html#close,Method BioSQL.BioSeqDatabase.Adaptor.close()=BioSQL.BioSeqDatabase.Adaptor-class.html#close,Method BioSQL.BioSeqDatabase.DBServer.close()=BioSQL.BioSeqDatabase.DBServer-class.html#close"><a title="Bio.SeqIO.SffIO._AddTellHandle.close Bio.SeqIO._index._SQLiteManySeqFilesDict.close BioSQL.BioSeqDatabase.Adaptor.close BioSQL.BioSeqDatabase.DBServer.close" class="py-name" href="#" onclick="return doclink('link-17', 'close', 'link-17');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> </div><a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> </tt> <a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt> <a name="read"></a><div id="read-def"><a name="L61"></a><tt class="py-lineno"> 61</tt> <a class="py-toggle" href="#" id="read-toggle" onclick="return toggle('read');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.Phylo._io-module.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">file</tt><tt class="py-op">,</tt> <tt class="py-param">format</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="read-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="read-expanded"><a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-docstring">"""Parse a file in the given format and return a single tree.</tt> </tt> <a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"> Raises a `ValueError` if there are zero or multiple trees -- if this occurs,</tt> </tt> <a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"> use `parse` instead to get the complete sequence of trees.</tt> </tt> <a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt> <a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-name">tree_gen</tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name" targets="Method Bio.Affy.CelFile.CelParser.parse()=Bio.Affy.CelFile.CelParser-class.html#parse,Function Bio.AlignIO.parse()=Bio.AlignIO-module.html#parse,Method Bio.Blast.NCBIStandalone.BlastErrorParser.parse()=Bio.Blast.NCBIStandalone.BlastErrorParser-class.html#parse,Method Bio.Blast.NCBIStandalone.BlastParser.parse()=Bio.Blast.NCBIStandalone.BlastParser-class.html#parse,Method Bio.Blast.NCBIStandalone.PSIBlastParser.parse()=Bio.Blast.NCBIStandalone.PSIBlastParser-class.html#parse,Function Bio.Blast.NCBIXML.parse()=Bio.Blast.NCBIXML-module.html#parse,Method Bio.Compass.RecordParser.parse()=Bio.Compass.RecordParser-class.html#parse,Function Bio.Compass.parse()=Bio.Compass-module.html#parse,Function Bio.Emboss.Primer3.parse()=Bio.Emboss.Primer3-module.html#parse,Method Bio.Entrez.Parser.DataHandler.parse()=Bio.Entrez.Parser.DataHandler-class.html#parse,Function Bio.Entrez.parse()=Bio.Entrez-module.html#parse,Function Bio.ExPASy.Enzyme.parse()=Bio.ExPASy.Enzyme-module.html#parse,Function Bio.ExPASy.Prodoc.parse()=Bio.ExPASy.Prodoc-module.html#parse,Function Bio.ExPASy.Prosite.parse()=Bio.ExPASy.Prosite-module.html#parse,Method Bio.GenBank.FeatureParser.parse()=Bio.GenBank.FeatureParser-class.html#parse,Function Bio.GenBank.LocationParser.parse()=Bio.GenBank.LocationParser-module.html#parse,Method Bio.GenBank.RecordParser.parse()=Bio.GenBank.RecordParser-class.html#parse,Method Bio.GenBank.Scanner.InsdcScanner.parse()=Bio.GenBank.Scanner.InsdcScanner-class.html#parse,Function Bio.Geo.parse()=Bio.Geo-module.html#parse,Function Bio.KEGG.Compound.parse()=Bio.KEGG.Compound-module.html#parse,Function Bio.KEGG.Enzyme.parse()=Bio.KEGG.Enzyme-module.html#parse,Function Bio.KEGG.Map.parse()=Bio.KEGG.Map-module.html#parse,Function Bio.Medline.parse()=Bio.Medline-module.html#parse,Function Bio.Motif.parse()=Bio.Motif-module.html#parse,Method Bio.ParserSupport.AbstractParser.parse()=Bio.ParserSupport.AbstractParser-class.html#parse,Method Bio.Parsers.spark.GenericParser.parse()=Bio.Parsers.spark.GenericParser-class.html#parse,Method Bio.Phylo.NewickIO.Parser.parse()=Bio.Phylo.NewickIO.Parser-class.html#parse,Function Bio.Phylo.NewickIO.parse()=Bio.Phylo.NewickIO-module.html#parse,Function Bio.Phylo.NexusIO.parse()=Bio.Phylo.NexusIO-module.html#parse,Method Bio.Phylo.PhyloXMLIO.Parser.parse()=Bio.Phylo.PhyloXMLIO.Parser-class.html#parse,Function Bio.Phylo.PhyloXMLIO.parse()=Bio.Phylo.PhyloXMLIO-module.html#parse,Function Bio.Phylo._io.parse()=Bio.Phylo._io-module.html#parse,Function Bio.SCOP.Cla.parse()=Bio.SCOP.Cla-module.html#parse,Function Bio.SCOP.Des.parse()=Bio.SCOP.Des-module.html#parse,Function Bio.SCOP.Dom.parse()=Bio.SCOP.Dom-module.html#parse,Function Bio.SCOP.Hie.parse()=Bio.SCOP.Hie-module.html#parse,Function Bio.SCOP.Raf.parse()=Bio.SCOP.Raf-module.html#parse,Method Bio.SeqIO.UniprotIO.Parser.parse()=Bio.SeqIO.UniprotIO.Parser-class.html#parse,Function Bio.SeqIO.parse()=Bio.SeqIO-module.html#parse,Function Bio.Sequencing.Ace.parse()=Bio.Sequencing.Ace-module.html#parse,Function Bio.Sequencing.Phd.parse()=Bio.Sequencing.Phd-module.html#parse,Function Bio.SwissProt.KeyWList.parse()=Bio.SwissProt.KeyWList-module.html#parse,Function Bio.SwissProt.parse()=Bio.SwissProt-module.html#parse,Method Bio.UniGene.RecordParser.parse()=Bio.UniGene.RecordParser-class.html#parse,Method Bio.UniGene.UniGene.UniGeneParser.parse()=Bio.UniGene.UniGene.UniGeneParser-class.html#parse,Function Bio.UniGene.parse()=Bio.UniGene-module.html#parse,Function Bio.Wise.psw.parse()=Bio.Wise.psw-module.html#parse"><a title="Bio.Affy.CelFile.CelParser.parse Bio.AlignIO.parse Bio.Blast.NCBIStandalone.BlastErrorParser.parse Bio.Blast.NCBIStandalone.BlastParser.parse Bio.Blast.NCBIStandalone.PSIBlastParser.parse Bio.Blast.NCBIXML.parse Bio.Compass.RecordParser.parse Bio.Compass.parse Bio.Emboss.Primer3.parse Bio.Entrez.Parser.DataHandler.parse Bio.Entrez.parse Bio.ExPASy.Enzyme.parse Bio.ExPASy.Prodoc.parse Bio.ExPASy.Prosite.parse Bio.GenBank.FeatureParser.parse Bio.GenBank.LocationParser.parse Bio.GenBank.RecordParser.parse Bio.GenBank.Scanner.InsdcScanner.parse Bio.Geo.parse Bio.KEGG.Compound.parse Bio.KEGG.Enzyme.parse Bio.KEGG.Map.parse Bio.Medline.parse Bio.Motif.parse Bio.ParserSupport.AbstractParser.parse Bio.Parsers.spark.GenericParser.parse Bio.Phylo.NewickIO.Parser.parse Bio.Phylo.NewickIO.parse Bio.Phylo.NexusIO.parse Bio.Phylo.PhyloXMLIO.Parser.parse Bio.Phylo.PhyloXMLIO.parse Bio.Phylo._io.parse Bio.SCOP.Cla.parse Bio.SCOP.Des.parse Bio.SCOP.Dom.parse Bio.SCOP.Hie.parse Bio.SCOP.Raf.parse Bio.SeqIO.UniprotIO.Parser.parse Bio.SeqIO.parse Bio.Sequencing.Ace.parse Bio.Sequencing.Phd.parse Bio.SwissProt.KeyWList.parse Bio.SwissProt.parse Bio.UniGene.RecordParser.parse Bio.UniGene.UniGene.UniGeneParser.parse Bio.UniGene.parse Bio.Wise.psw.parse" class="py-name" href="#" onclick="return doclink('link-18', 'parse', 'link-18');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt id="link-19" class="py-name"><a title="Bio.Align.Generic.Alignment.format Bio.Motif._Motif.Motif.format Bio.Phylo.BaseTree.Tree.format Bio.Restriction.Restriction.RestrictionBatch.format Bio.SeqRecord.SeqRecord.format" class="py-name" href="#" onclick="return doclink('link-19', 'format', 'link-16');">format</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt> <a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">tree_gen</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method Bio.AlignIO.ClustalIO.ClustalIterator.next()=Bio.AlignIO.ClustalIO.ClustalIterator-class.html#next,Method Bio.AlignIO.EmbossIO.EmbossIterator.next()=Bio.AlignIO.EmbossIO.EmbossIterator-class.html#next,Method Bio.AlignIO.Interfaces.AlignmentIterator.next()=Bio.AlignIO.Interfaces.AlignmentIterator-class.html#next,Method Bio.AlignIO.PhylipIO.PhylipIterator.next()=Bio.AlignIO.PhylipIO.PhylipIterator-class.html#next,Method Bio.AlignIO.StockholmIO.StockholmIterator.next()=Bio.AlignIO.StockholmIO.StockholmIterator-class.html#next,Method Bio.Blast.NCBIStandalone.Iterator.next()=Bio.Blast.NCBIStandalone.Iterator-class.html#next,Method Bio.Blast.ParseBlastTable.BlastTableReader.next()=Bio.Blast.ParseBlastTable.BlastTableReader-class.html#next,Method Bio.Compass.Iterator.next()=Bio.Compass.Iterator-class.html#next,Method Bio.DocSQL.IterationCursor.next()=Bio.DocSQL.IterationCursor-class.html#next,Method Bio.File.UndoHandle.next()=Bio.File.UndoHandle-class.html#next,Method Bio.GenBank.Iterator.next()=Bio.GenBank.Iterator-class.html#next,Method Bio.Nexus.Nexus.CharBuffer.next()=Bio.Nexus.Nexus.CharBuffer-class.html#next,Method Bio.PopGen.GenePop.Controller._FileIterator.next()=Bio.PopGen.GenePop.Controller._FileIterator-class.html#next,Method Bio.SeqIO.Interfaces.InterlacedSequenceIterator.next()=Bio.SeqIO.Interfaces.InterlacedSequenceIterator-class.html#next,Method Bio.SeqIO.Interfaces.SequenceIterator.next()=Bio.SeqIO.Interfaces.SequenceIterator-class.html#next,Method Bio.UniGene.Iterator.next()=Bio.UniGene.Iterator-class.html#next"><a title="Bio.AlignIO.ClustalIO.ClustalIterator.next Bio.AlignIO.EmbossIO.EmbossIterator.next Bio.AlignIO.Interfaces.AlignmentIterator.next Bio.AlignIO.PhylipIO.PhylipIterator.next Bio.AlignIO.StockholmIO.StockholmIterator.next Bio.Blast.NCBIStandalone.Iterator.next Bio.Blast.ParseBlastTable.BlastTableReader.next Bio.Compass.Iterator.next Bio.DocSQL.IterationCursor.next Bio.File.UndoHandle.next Bio.GenBank.Iterator.next Bio.Nexus.Nexus.CharBuffer.next Bio.PopGen.GenePop.Controller._FileIterator.next Bio.SeqIO.Interfaces.InterlacedSequenceIterator.next Bio.SeqIO.Interfaces.SequenceIterator.next Bio.UniGene.Iterator.next" class="py-name" href="#" onclick="return doclink('link-20', 'next', 'link-20');">next</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">StopIteration</tt><tt class="py-op">:</tt> </tt> <a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"There are no trees in this file."</tt><tt class="py-op">)</tt> </tt> <a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt> <a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-name">tree_gen</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="Bio.AlignIO.ClustalIO.ClustalIterator.next Bio.AlignIO.EmbossIO.EmbossIterator.next Bio.AlignIO.Interfaces.AlignmentIterator.next Bio.AlignIO.PhylipIO.PhylipIterator.next Bio.AlignIO.StockholmIO.StockholmIterator.next Bio.Blast.NCBIStandalone.Iterator.next Bio.Blast.ParseBlastTable.BlastTableReader.next Bio.Compass.Iterator.next Bio.DocSQL.IterationCursor.next Bio.File.UndoHandle.next Bio.GenBank.Iterator.next Bio.Nexus.Nexus.CharBuffer.next Bio.PopGen.GenePop.Controller._FileIterator.next Bio.SeqIO.Interfaces.InterlacedSequenceIterator.next Bio.SeqIO.Interfaces.SequenceIterator.next Bio.UniGene.Iterator.next" class="py-name" href="#" onclick="return doclink('link-21', 'next', 'link-20');">next</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">StopIteration</tt><tt class="py-op">:</tt> </tt> <a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt> </tt> <a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt> </tt> <a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-string">"There are multiple trees in this file; use parse() instead."</tt><tt class="py-op">)</tt> </tt> </div><a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> </tt> <a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> </tt> <a name="write"></a><div id="write-def"><a name="L81"></a><tt class="py-lineno"> 81</tt> <a class="py-toggle" href="#" id="write-toggle" onclick="return toggle('write');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.Phylo._io-module.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">trees</tt><tt class="py-op">,</tt> <tt class="py-param">file</tt><tt class="py-op">,</tt> <tt class="py-param">format</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="write-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="write-expanded"><a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-docstring">"""Write a sequence of trees to file in the given format."""</tt> </tt> <a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">trees</tt><tt class="py-op">,</tt> <tt id="link-22" class="py-name"><a title="Bio.Phylo.BaseTree" class="py-name" href="#" onclick="return doclink('link-22', 'BaseTree', 'link-2');">BaseTree</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Class Bio.Nexus.Trees.Tree=Bio.Nexus.Trees.Tree-class.html,Class Bio.Phylo.BaseTree.Tree=Bio.Phylo.BaseTree.Tree-class.html,Class Bio.Phylo.Newick.Tree=Bio.Phylo.Newick.Tree-class.html"><a title="Bio.Nexus.Trees.Tree Bio.Phylo.BaseTree.Tree Bio.Phylo.Newick.Tree" class="py-name" href="#" onclick="return doclink('link-23', 'Tree', 'link-23');">Tree</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-comment"># Passed a single tree instead of an iterable -- that's OK</tt> </tt> <a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">trees</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">trees</tt><tt class="py-op">]</tt> </tt> <a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-name">do_close</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt> <a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt class="py-string">'w+'</tt><tt class="py-op">)</tt> </tt> <a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">do_close</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt> <a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt> <a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="Bio.Phylo._io.supported_formats" class="py-name" href="#" onclick="return doclink('link-24', 'supported_formats', 'link-8');">supported_formats</a></tt><tt class="py-op">[</tt><tt id="link-25" class="py-name"><a title="Bio.Align.Generic.Alignment.format Bio.Motif._Motif.Motif.format Bio.Phylo.BaseTree.Tree.format Bio.Restriction.Restriction.RestrictionBatch.format Bio.SeqRecord.SeqRecord.format" class="py-name" href="#" onclick="return doclink('link-25', 'format', 'link-16');">format</a></tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'write'</tt><tt class="py-op">)</tt><tt class="py-op">(</tt><tt class="py-name">trees</tt><tt class="py-op">,</tt> <tt class="py-name">file</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt> <a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt> <a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">do_close</tt><tt class="py-op">:</tt> </tt> <a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="Bio.SeqIO.SffIO._AddTellHandle.close Bio.SeqIO._index._SQLiteManySeqFilesDict.close BioSQL.BioSeqDatabase.Adaptor.close BioSQL.BioSeqDatabase.DBServer.close" class="py-name" href="#" onclick="return doclink('link-26', 'close', 'link-17');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">n</tt> </tt> </div><a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> </tt> <a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> </tt> <a name="convert"></a><div id="convert-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="convert-toggle" onclick="return toggle('convert');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.Phylo._io-module.html#convert">convert</a><tt class="py-op">(</tt><tt class="py-param">in_file</tt><tt class="py-op">,</tt> <tt class="py-param">in_format</tt><tt class="py-op">,</tt> <tt class="py-param">out_file</tt><tt class="py-op">,</tt> <tt class="py-param">out_format</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="convert-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="convert-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert between two tree file formats."""</tt> </tt> <a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">trees</tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name"><a title="Bio.Affy.CelFile.CelParser.parse Bio.AlignIO.parse Bio.Blast.NCBIStandalone.BlastErrorParser.parse Bio.Blast.NCBIStandalone.BlastParser.parse Bio.Blast.NCBIStandalone.PSIBlastParser.parse Bio.Blast.NCBIXML.parse Bio.Compass.RecordParser.parse Bio.Compass.parse Bio.Emboss.Primer3.parse Bio.Entrez.Parser.DataHandler.parse Bio.Entrez.parse Bio.ExPASy.Enzyme.parse Bio.ExPASy.Prodoc.parse Bio.ExPASy.Prosite.parse Bio.GenBank.FeatureParser.parse Bio.GenBank.LocationParser.parse Bio.GenBank.RecordParser.parse Bio.GenBank.Scanner.InsdcScanner.parse Bio.Geo.parse Bio.KEGG.Compound.parse Bio.KEGG.Enzyme.parse Bio.KEGG.Map.parse Bio.Medline.parse Bio.Motif.parse Bio.ParserSupport.AbstractParser.parse Bio.Parsers.spark.GenericParser.parse Bio.Phylo.NewickIO.Parser.parse Bio.Phylo.NewickIO.parse Bio.Phylo.NexusIO.parse Bio.Phylo.PhyloXMLIO.Parser.parse Bio.Phylo.PhyloXMLIO.parse Bio.Phylo._io.parse Bio.SCOP.Cla.parse Bio.SCOP.Des.parse Bio.SCOP.Dom.parse Bio.SCOP.Hie.parse Bio.SCOP.Raf.parse Bio.SeqIO.UniprotIO.Parser.parse Bio.SeqIO.parse Bio.Sequencing.Ace.parse Bio.Sequencing.Phd.parse Bio.SwissProt.KeyWList.parse Bio.SwissProt.parse Bio.UniGene.RecordParser.parse Bio.UniGene.UniGene.UniGeneParser.parse Bio.UniGene.parse Bio.Wise.psw.parse" class="py-name" href="#" onclick="return doclink('link-27', 'parse', 'link-18');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">in_file</tt><tt class="py-op">,</tt> <tt class="py-name">in_format</tt><tt class="py-op">)</tt> </tt> <a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-28" class="py-name" targets="Function Bio.AlignIO.write()=Bio.AlignIO-module.html#write,Method Bio.Graphics.GenomeDiagram._Diagram.Diagram.write()=Bio.Graphics.GenomeDiagram._Diagram.Diagram-class.html#write,Method Bio.NeuralNetwork.Gene.Pattern.PatternIO.write()=Bio.NeuralNetwork.Gene.Pattern.PatternIO-class.html#write,Method Bio.Phylo.NewickIO.Writer.write()=Bio.Phylo.NewickIO.Writer-class.html#write,Function Bio.Phylo.NewickIO.write()=Bio.Phylo.NewickIO-module.html#write,Function Bio.Phylo.NexusIO.write()=Bio.Phylo.NexusIO-module.html#write,Method Bio.Phylo.PhyloXMLIO.Writer.write()=Bio.Phylo.PhyloXMLIO.Writer-class.html#write,Function Bio.Phylo.PhyloXMLIO.write()=Bio.Phylo.PhyloXMLIO-module.html#write,Function Bio.Phylo._io.write()=Bio.Phylo._io-module.html#write,Function Bio.SeqIO.write()=Bio.SeqIO-module.html#write"><a title="Bio.AlignIO.write Bio.Graphics.GenomeDiagram._Diagram.Diagram.write Bio.NeuralNetwork.Gene.Pattern.PatternIO.write Bio.Phylo.NewickIO.Writer.write Bio.Phylo.NewickIO.write Bio.Phylo.NexusIO.write Bio.Phylo.PhyloXMLIO.Writer.write Bio.Phylo.PhyloXMLIO.write Bio.Phylo._io.write Bio.SeqIO.write" class="py-name" href="#" onclick="return doclink('link-28', 'write', 'link-28');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">trees</tt><tt class="py-op">,</tt> <tt class="py-name">out_file</tt><tt class="py-op">,</tt> <tt class="py-name">out_format</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt> </div><a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt><script type="text/javascript"> <!-- expandto(location.href); // --> </script> </pre> <br /> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%%"> <tr> <td align="left" class="footer"> Generated by Epydoc 3.0.1 on Thu Aug 18 18:22:40 2011 </td> <td align="right" class="footer"> <a target="mainFrame" href="http://epydoc.sourceforge.net" >http://epydoc.sourceforge.net</a> </td> </tr> </table> <script type="text/javascript"> <!-- // Private objects are initially displayed (because if // javascript is turned off then we want them to be // visible); but by default, we want to hide them. So hide // them unless we have a cookie that says to show them. checkCookie(); // --> </script> </body> </html>