<?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>Martel.optimize</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="Martel-module.html">Package Martel</a> :: Module optimize </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="Martel.optimize-pysrc.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <h1 class="epydoc">Source Code for <a href="Martel.optimize-module.html">Module Martel.optimize</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 2000-2001, Dalke Scientific Software, LLC</tt> </tt> <a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Distributed under the Biopython License Agreement (see the LICENSE file).</tt> </tt> <a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-docstring">"""Optimize an expression tree</tt> </tt> <a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring"> - remove Group nodes with no name</tt> </tt> <a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring"> - merge successive Str, single character positive Any nodes and positive</tt> </tt> <a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring"> Literals</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> <a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Class Bio.EUtils.Datatypes.Expression=Bio.EUtils.Datatypes.Expression-class.html,Module Martel.Expression=Martel.Expression-module.html,Class Martel.Expression.Expression=Martel.Expression.Expression-class.html"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-0', 'Expression', 'link-0');">Expression</a></tt> </tt> <a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"> </tt> <a name="skip_empty_group"></a><div id="skip_empty_group-def"><a name="L13"></a><tt class="py-lineno"> 13</tt> <a class="py-toggle" href="#" id="skip_empty_group-toggle" onclick="return toggle('skip_empty_group');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel.optimize-module.html#skip_empty_group">skip_empty_group</a><tt class="py-op">(</tt><tt class="py-param">exp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="skip_empty_group-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="skip_empty_group-expanded"><a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-1" class="py-name" targets="Variable Bio.Affy.CelFile.exp=Bio.Affy.CelFile-module.html#exp,Variable Bio.LogisticRegression.exp=Bio.LogisticRegression-module.html#exp,Variable Bio.MarkovModel.exp=Bio.MarkovModel-module.html#exp,Variable Bio.MaxEntropy.exp=Bio.MaxEntropy-module.html#exp,Variable Bio.NaiveBayes.exp=Bio.NaiveBayes-module.html#exp,Variable Bio.Statistics.lowess.exp=Bio.Statistics.lowess-module.html#exp,Variable Bio.distance.exp=Bio.distance-module.html#exp,Variable Bio.kNN.exp=Bio.kNN-module.html#exp"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-1', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-2" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-2', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Class Martel.Expression.Group=Martel.Expression.Group-class.html,Function Martel.Group()=Martel-module.html#Group"><a title="Martel.Expression.Group Martel.Group" class="py-name" href="#" onclick="return doclink('link-3', 'Group', 'link-3');">Group</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt id="link-4" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-4', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Variable Bio.Encodings.IUPACEncoding.name=Bio.Encodings.IUPACEncoding-module.html#name"><a title="Bio.Encodings.IUPACEncoding.name" class="py-name" href="#" onclick="return doclink('link-5', 'name', 'link-5');">name</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> <a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"> <tt id="link-6" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-6', 'exp', 'link-1');">exp</a></tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-7', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">expression</tt> </tt> <a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-8" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-8', 'exp', 'link-1');">exp</a></tt> </tt> </div><a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"> </tt> <a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"># The only thing this does is remove Groups with no names</tt> </tt> <a name="optimize_unnamed_groups_recursive"></a><div id="optimize_unnamed_groups_recursive-def"><a name="L19"></a><tt class="py-lineno"> 19</tt> <a class="py-toggle" href="#" id="optimize_unnamed_groups_recursive-toggle" onclick="return toggle('optimize_unnamed_groups_recursive');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel.optimize-module.html#optimize_unnamed_groups_recursive">optimize_unnamed_groups_recursive</a><tt class="py-op">(</tt><tt class="py-param">exp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="optimize_unnamed_groups_recursive-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="optimize_unnamed_groups_recursive-expanded"><a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-9', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-10', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Class Martel.Expression.MaxRepeat=Martel.Expression.MaxRepeat-class.html,Function Martel.MaxRepeat()=Martel-module.html#MaxRepeat"><a title="Martel.Expression.MaxRepeat Martel.MaxRepeat" class="py-name" href="#" onclick="return doclink('link-11', 'MaxRepeat', 'link-11');">MaxRepeat</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt> <a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-12" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-12', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-13', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="Martel.Expression.Group Martel.Group" class="py-name" href="#" onclick="return doclink('link-14', 'Group', 'link-3');">Group</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"> <tt id="link-15" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-15', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">expression</tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name" targets="Function Martel.optimize.skip_empty_group()=Martel.optimize-module.html#skip_empty_group"><a title="Martel.optimize.skip_empty_group" class="py-name" href="#" onclick="return doclink('link-16', 'skip_empty_group', 'link-16');">skip_empty_group</a></tt><tt class="py-op">(</tt><tt id="link-17" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-17', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">expression</tt><tt class="py-op">)</tt> </tt> <a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-18" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-18', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-19" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-19', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Class Martel.Expression.ExpressionList=Martel.Expression.ExpressionList-class.html"><a title="Martel.Expression.ExpressionList" class="py-name" href="#" onclick="return doclink('link-20', 'ExpressionList', 'link-20');">ExpressionList</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> <tt class="py-name">subexps</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt> <a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">subexp</tt> <tt class="py-keyword">in</tt> <tt id="link-21" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-21', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Package Bio.expressions=Bio.expressions-module.html"><a title="Bio.expressions" class="py-name" href="#" onclick="return doclink('link-22', 'expressions', 'link-22');">expressions</a></tt><tt class="py-op">:</tt> </tt> <a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> <tt class="py-name">subexp</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name"><a title="Martel.optimize.skip_empty_group" class="py-name" href="#" onclick="return doclink('link-23', 'skip_empty_group', 'link-16');">skip_empty_group</a></tt><tt class="py-op">(</tt><tt class="py-name">subexp</tt><tt class="py-op">)</tt> </tt> <a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt class="py-name">subexps</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method Bio.Crystal.Chain.append()=Bio.Crystal.Chain-class.html#append,Method Bio.EUtils.POM.ElementNode.append()=Bio.EUtils.POM.ElementNode-class.html#append,Method Bio.EUtils.sourcegen.SourceFile.append()=Bio.EUtils.sourcegen.SourceFile-class.html#append,Method Bio.SCOP.Raf.SeqMap.append()=Bio.SCOP.Raf.SeqMap-class.html#append,Method Bio.Seq.MutableSeq.append()=Bio.Seq.MutableSeq-class.html#append,Method Bio.Wise.psw.Alignment.append()=Bio.Wise.psw.Alignment-class.html#append,Method Bio.Wise.psw.AlignmentColumn.append()=Bio.Wise.psw.AlignmentColumn-class.html#append,Method Martel.msre_parse.SubPattern.append()=Martel.msre_parse.SubPattern-class.html#append"><a title="Bio.Crystal.Chain.append Bio.EUtils.POM.ElementNode.append Bio.EUtils.sourcegen.SourceFile.append Bio.SCOP.Raf.SeqMap.append Bio.Seq.MutableSeq.append Bio.Wise.psw.Alignment.append Bio.Wise.psw.AlignmentColumn.append Martel.msre_parse.SubPattern.append" class="py-name" href="#" onclick="return doclink('link-24', 'append', 'link-24');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">subexp</tt><tt class="py-op">)</tt> </tt> <a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt id="link-25" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-25', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="Bio.expressions" class="py-name" href="#" onclick="return doclink('link-26', 'expressions', 'link-22');">expressions</a></tt> <tt class="py-op">=</tt> <tt class="py-name">subexps</tt> </tt> <a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> </tt> <a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-27" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-27', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt class="py-string">"expression"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt id="link-28" class="py-name" targets="Function Martel.optimize.optimize_unnamed_groups_recursive()=Martel.optimize-module.html#optimize_unnamed_groups_recursive"><a title="Martel.optimize.optimize_unnamed_groups_recursive" class="py-name" href="#" onclick="return doclink('link-28', 'optimize_unnamed_groups_recursive', 'link-28');">optimize_unnamed_groups_recursive</a></tt><tt class="py-op">(</tt><tt id="link-29" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-29', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">expression</tt><tt class="py-op">)</tt> </tt> <a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-30', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt class="py-string">"expressions"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-31" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-31', 'exp', 'link-1');">exp</a></tt> <tt class="py-keyword">in</tt> <tt id="link-32" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-32', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="Bio.expressions" class="py-name" href="#" onclick="return doclink('link-33', 'expressions', 'link-22');">expressions</a></tt><tt class="py-op">:</tt> </tt> <a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt id="link-34" class="py-name"><a title="Martel.optimize.optimize_unnamed_groups_recursive" class="py-name" href="#" onclick="return doclink('link-34', 'optimize_unnamed_groups_recursive', 'link-28');">optimize_unnamed_groups_recursive</a></tt><tt class="py-op">(</tt><tt id="link-35" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-35', 'exp', 'link-1');">exp</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> </tt> <a name="optimize_unnamed_groups"></a><div id="optimize_unnamed_groups-def"><a name="L36"></a><tt class="py-lineno"> 36</tt> <a class="py-toggle" href="#" id="optimize_unnamed_groups-toggle" onclick="return toggle('optimize_unnamed_groups');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel.optimize-module.html#optimize_unnamed_groups">optimize_unnamed_groups</a><tt class="py-op">(</tt><tt class="py-param">exp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="optimize_unnamed_groups-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="optimize_unnamed_groups-expanded"><a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-docstring">"""return an equivalent expression tree but without unnamed groups</tt> </tt> <a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring"> WARNING: has side-effect</tt> </tt> <a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> </tt> <a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt id="link-36" class="py-name"><a title="Martel.optimize.optimize_unnamed_groups_recursive" class="py-name" href="#" onclick="return doclink('link-36', 'optimize_unnamed_groups_recursive', 'link-28');">optimize_unnamed_groups_recursive</a></tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-37', 'exp', 'link-1');">exp</a></tt><tt class="py-op">)</tt> </tt> <a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-38" class="py-name"><a title="Martel.optimize.skip_empty_group" class="py-name" href="#" onclick="return doclink('link-38', 'skip_empty_group', 'link-16');">skip_empty_group</a></tt><tt class="py-op">(</tt><tt id="link-39" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-39', 'exp', 'link-1');">exp</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> </tt> <a name="is_mergeable"></a><div id="is_mergeable-def"><a name="L45"></a><tt class="py-lineno"> 45</tt> <a class="py-toggle" href="#" id="is_mergeable-toggle" onclick="return toggle('is_mergeable');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel.optimize-module.html#is_mergeable">is_mergeable</a><tt class="py-op">(</tt><tt class="py-param">exp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="is_mergeable-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="is_mergeable-expanded"><a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-40" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-40', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-41" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-41', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Class Martel.Expression.Str=Martel.Expression.Str-class.html,Function Martel.Str()=Martel-module.html#Str"><a title="Martel.Expression.Str Martel.Str" class="py-name" href="#" onclick="return doclink('link-42', 'Str', 'link-42');">Str</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt> <a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-43" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-43', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-44" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-44', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Class Martel.Expression.Literal=Martel.Expression.Literal-class.html"><a title="Martel.Expression.Literal" class="py-name" href="#" onclick="return doclink('link-45', 'Literal', 'link-45');">Literal</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt id="link-46" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-46', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Variable Bio.Affy.CelFile.invert=Bio.Affy.CelFile-module.html#invert,Variable Bio.LogisticRegression.invert=Bio.LogisticRegression-module.html#invert,Variable Bio.MarkovModel.invert=Bio.MarkovModel-module.html#invert,Variable Bio.MaxEntropy.invert=Bio.MaxEntropy-module.html#invert,Variable Bio.NaiveBayes.invert=Bio.NaiveBayes-module.html#invert,Method Bio.Nexus.Nexus.Nexus.invert()=Bio.Nexus.Nexus.Nexus-class.html#invert,Variable Bio.Statistics.lowess.invert=Bio.Statistics.lowess-module.html#invert,Variable Bio.distance.invert=Bio.distance-module.html#invert,Variable Bio.kNN.invert=Bio.kNN-module.html#invert,Function Martel.convert_re.invert()=Martel.convert_re-module.html#invert"><a title="Bio.Affy.CelFile.invert Bio.LogisticRegression.invert Bio.MarkovModel.invert Bio.MaxEntropy.invert Bio.NaiveBayes.invert Bio.Nexus.Nexus.Nexus.invert Bio.Statistics.lowess.invert Bio.distance.invert Bio.kNN.invert Martel.convert_re.invert" class="py-name" href="#" onclick="return doclink('link-47', 'invert', 'link-47');">invert</a></tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt> <a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-48" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-48', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-49" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-49', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Function Martel.Any()=Martel-module.html#Any,Class Martel.Expression.Any=Martel.Expression.Any-class.html"><a title="Martel.Any Martel.Expression.Any" class="py-name" href="#" onclick="return doclink('link-50', 'Any', 'link-50');">Any</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-51" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-51', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">chars</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> \ </tt> <a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt id="link-52" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-52', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="Bio.Affy.CelFile.invert Bio.LogisticRegression.invert Bio.MarkovModel.invert Bio.MaxEntropy.invert Bio.NaiveBayes.invert Bio.Nexus.Nexus.Nexus.invert Bio.Statistics.lowess.invert Bio.distance.invert Bio.kNN.invert Martel.convert_re.invert" class="py-name" href="#" onclick="return doclink('link-53', 'invert', 'link-47');">invert</a></tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt> </div><a name="get_merge_text"></a><div id="get_merge_text-def"><a name="L50"></a><tt class="py-lineno"> 50</tt> <a class="py-toggle" href="#" id="get_merge_text-toggle" onclick="return toggle('get_merge_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel.optimize-module.html#get_merge_text">get_merge_text</a><tt class="py-op">(</tt><tt class="py-param">exp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="get_merge_text-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_merge_text-expanded"><a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-54" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-54', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-55" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-55', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="Martel.Expression.Str Martel.Str" class="py-name" href="#" onclick="return doclink('link-56', 'Str', 'link-42');">Str</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-57" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-57', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">string</tt> </tt> <a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-58" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-58', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-59" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-59', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="Martel.Expression.Literal" class="py-name" href="#" onclick="return doclink('link-60', 'Literal', 'link-45');">Literal</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt id="link-61" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-61', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="Bio.Affy.CelFile.invert Bio.LogisticRegression.invert Bio.MarkovModel.invert Bio.MaxEntropy.invert Bio.NaiveBayes.invert Bio.Nexus.Nexus.Nexus.invert Bio.Statistics.lowess.invert Bio.distance.invert Bio.kNN.invert Martel.convert_re.invert" class="py-name" href="#" onclick="return doclink('link-62', 'invert', 'link-47');">invert</a></tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt> </tt> <a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-63" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-63', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">char</tt> </tt> <a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-64" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-64', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-65" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-65', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="Martel.Any Martel.Expression.Any" class="py-name" href="#" onclick="return doclink('link-66', 'Any', 'link-50');">Any</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-67" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-67', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">chars</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> <tt id="link-68" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-68', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="Bio.Affy.CelFile.invert Bio.LogisticRegression.invert Bio.MarkovModel.invert Bio.MaxEntropy.invert Bio.NaiveBayes.invert Bio.Nexus.Nexus.Nexus.invert Bio.Statistics.lowess.invert Bio.distance.invert Bio.kNN.invert Martel.convert_re.invert" class="py-name" href="#" onclick="return doclink('link-69', 'invert', 'link-47');">invert</a></tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt> </tt> <a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-70" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-70', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">chars</tt> </tt> <a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">AssertionError</tt><tt class="py-op">,</tt> <tt class="py-string">"unknown exp: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-71" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-71', 'exp', 'link-1');">exp</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt> <a name="merge_strings"></a><div id="merge_strings-def"><a name="L61"></a><tt class="py-lineno"> 61</tt> <a class="py-toggle" href="#" id="merge_strings-toggle" onclick="return toggle('merge_strings');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel.optimize-module.html#merge_strings">merge_strings</a><tt class="py-op">(</tt><tt class="py-param">exp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="merge_strings-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="merge_strings-expanded"><a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-docstring">"""merge successive strings and string-like terms into a single Str</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"> WARNING: has side-effects</tt> </tt> <a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-comment"># Merge all of the children first - might promote a</tt> </tt> <a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># Str("A") + (Str("B") + Str("C")) into an Str("A") + Str("BC")</tt> </tt> <a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># before we do the merge into Str("ABC")</tt> </tt> <a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-72', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt class="py-string">"expression"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt id="link-73" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-73', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">expression</tt> <tt class="py-op">=</tt> <tt id="link-74" class="py-name" targets="Function Martel.optimize.merge_strings()=Martel.optimize-module.html#merge_strings"><a title="Martel.optimize.merge_strings" class="py-name" href="#" onclick="return doclink('link-74', 'merge_strings', 'link-74');">merge_strings</a></tt><tt class="py-op">(</tt><tt id="link-75" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-75', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt class="py-name">expression</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">elif</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-76" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-76', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt class="py-string">"expressions"</tt><tt class="py-op">)</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">subexps</tt> <tt class="py-op">=</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">for</tt> <tt class="py-name">subexp</tt> <tt class="py-keyword">in</tt> <tt id="link-77" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-77', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="Bio.expressions" class="py-name" href="#" onclick="return doclink('link-78', 'expressions', 'link-22');">expressions</a></tt><tt class="py-op">:</tt> </tt> <a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">subexps</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="Bio.Crystal.Chain.append Bio.EUtils.POM.ElementNode.append Bio.EUtils.sourcegen.SourceFile.append Bio.SCOP.Raf.SeqMap.append Bio.Seq.MutableSeq.append Bio.Wise.psw.Alignment.append Bio.Wise.psw.AlignmentColumn.append Martel.msre_parse.SubPattern.append" class="py-name" href="#" onclick="return doclink('link-79', 'append', 'link-24');">append</a></tt><tt class="py-op">(</tt><tt id="link-80" class="py-name"><a title="Martel.optimize.merge_strings" class="py-name" href="#" onclick="return doclink('link-80', 'merge_strings', 'link-74');">merge_strings</a></tt><tt class="py-op">(</tt><tt class="py-name">subexp</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> <a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt id="link-81" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-81', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="Bio.expressions" class="py-name" href="#" onclick="return doclink('link-82', 'expressions', 'link-22');">expressions</a></tt> <tt class="py-op">=</tt> <tt class="py-name">subexps</tt> </tt> <a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> </tt> <a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-83" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-83', 'exp', 'link-1');">exp</a></tt><tt class="py-op">,</tt> <tt id="link-84" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-84', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-85" class="py-name" targets="Module Bio.Seq=Bio.Seq-module.html,Class Bio.Seq.Seq=Bio.Seq.Seq-class.html,Class Martel.Expression.Seq=Martel.Expression.Seq-class.html,Function Martel.Seq()=Martel-module.html#Seq"><a title="Bio.Seq Bio.Seq.Seq Martel.Expression.Seq Martel.Seq" class="py-name" href="#" onclick="return doclink('link-85', 'Seq', 'link-85');">Seq</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-name">all_strings</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt> <a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-name">subexps</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt> <a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">subexp</tt> <tt class="py-keyword">in</tt> <tt id="link-86" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-86', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="Bio.expressions" class="py-name" href="#" onclick="return doclink('link-87', 'expressions', 'link-22');">expressions</a></tt><tt class="py-op">:</tt> </tt> <a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">subexps</tt><tt class="py-op">:</tt> </tt> <a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-name">subexps</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="Bio.Crystal.Chain.append Bio.EUtils.POM.ElementNode.append Bio.EUtils.sourcegen.SourceFile.append Bio.SCOP.Raf.SeqMap.append Bio.Seq.MutableSeq.append Bio.Wise.psw.Alignment.append Bio.Wise.psw.AlignmentColumn.append Martel.msre_parse.SubPattern.append" class="py-name" href="#" onclick="return doclink('link-88', 'append', 'link-24');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">subexp</tt><tt class="py-op">)</tt> </tt> <a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt id="link-89" class="py-name" targets="Function Martel.optimize.is_mergeable()=Martel.optimize-module.html#is_mergeable"><a title="Martel.optimize.is_mergeable" class="py-name" href="#" onclick="return doclink('link-89', 'is_mergeable', 'link-89');">is_mergeable</a></tt><tt class="py-op">(</tt><tt class="py-name">subexps</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">all_strings</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt> <a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-name">subexps</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="Bio.Crystal.Chain.append Bio.EUtils.POM.ElementNode.append Bio.EUtils.sourcegen.SourceFile.append Bio.SCOP.Raf.SeqMap.append Bio.Seq.MutableSeq.append Bio.Wise.psw.Alignment.append Bio.Wise.psw.AlignmentColumn.append Martel.msre_parse.SubPattern.append" class="py-name" href="#" onclick="return doclink('link-90', 'append', 'link-24');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">subexp</tt><tt class="py-op">)</tt> </tt> <a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt id="link-91" class="py-name"><a title="Martel.optimize.is_mergeable" class="py-name" href="#" onclick="return doclink('link-91', 'is_mergeable', 'link-89');">is_mergeable</a></tt><tt class="py-op">(</tt><tt class="py-name">subexp</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">all_strings</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt> <a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">subexps</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="Bio.Crystal.Chain.append Bio.EUtils.POM.ElementNode.append Bio.EUtils.sourcegen.SourceFile.append Bio.SCOP.Raf.SeqMap.append Bio.Seq.MutableSeq.append Bio.Wise.psw.Alignment.append Bio.Wise.psw.AlignmentColumn.append Martel.msre_parse.SubPattern.append" class="py-name" href="#" onclick="return doclink('link-92', 'append', 'link-24');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">subexp</tt><tt class="py-op">)</tt> </tt> <a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-comment"># Previous and current are mergeable</tt> </tt> <a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">subexps</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-93" class="py-name"><a title="Bio.EUtils.Datatypes.Expression Martel.Expression Martel.Expression.Expression" class="py-name" href="#" onclick="return doclink('link-93', 'Expression', 'link-0');">Expression</a></tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="Martel.Expression.Str Martel.Str" class="py-name" href="#" onclick="return doclink('link-94', 'Str', 'link-42');">Str</a></tt><tt class="py-op">(</tt><tt id="link-95" class="py-name" targets="Function Martel.optimize.get_merge_text()=Martel.optimize-module.html#get_merge_text"><a title="Martel.optimize.get_merge_text" class="py-name" href="#" onclick="return doclink('link-95', 'get_merge_text', 'link-95');">get_merge_text</a></tt><tt class="py-op">(</tt><tt class="py-name">subexps</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> \ </tt> <a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt id="link-96" class="py-name"><a title="Martel.optimize.get_merge_text" class="py-name" href="#" onclick="return doclink('link-96', 'get_merge_text', 'link-95');">get_merge_text</a></tt><tt class="py-op">(</tt><tt class="py-name">subexp</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> <a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">all_strings</tt> <tt class="py-keyword">and</tt> <tt class="py-name">subexps</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">assert</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">subexps</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> </tt> <a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">subexps</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt> <a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> </tt> <a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-97" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-97', 'exp', 'link-1');">exp</a></tt> </tt> </div><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> </tt> <a name="optimize"></a><div id="optimize-def"><a name="L100"></a><tt class="py-lineno">100</tt> <a class="py-toggle" href="#" id="optimize-toggle" onclick="return toggle('optimize');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Martel.optimize-module.html#optimize">optimize</a><tt class="py-op">(</tt><tt class="py-param">exp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="optimize-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="optimize-expanded"><a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-docstring">"""expression tree -> optimized expression tree</tt> </tt> <a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"> Apply various optimizations to the expression tree.</tt> </tt> <a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> </tt> <a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt id="link-98" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-98', 'exp', 'link-1');">exp</a></tt> <tt class="py-op">=</tt> <tt id="link-99" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-99', 'exp', 'link-1');">exp</a></tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Method Bio.Crystal.Crystal.copy()=Bio.Crystal.Crystal-class.html#copy,Method Bio.GA.Organism.Organism.copy()=Bio.GA.Organism.Organism-class.html#copy,Method Bio.GenBank.NCBIDictionary.copy()=Bio.GenBank.NCBIDictionary-class.html#copy,Method Bio.PDB.Vector'.Vector.copy()=Bio.PDB.Vector%27.Vector-class.html#copy,Method Bio.Prosite.ExPASyDictionary.copy()=Bio.Prosite.ExPASyDictionary-class.html#copy,Method Bio.Prosite.Pattern.PrositeTerm.copy()=Bio.Prosite.Pattern.PrositeTerm-class.html#copy,Method Bio.Prosite.Prodoc.ExPASyDictionary.copy()=Bio.Prosite.Prodoc.ExPASyDictionary-class.html#copy,Method Bio.PubMed.Dictionary.copy()=Bio.PubMed.Dictionary-class.html#copy,Method Bio.SwissProt.SProt.ExPASyDictionary.copy()=Bio.SwissProt.SProt.ExPASyDictionary-class.html#copy,Method Martel.Expression.Any.copy()=Martel.Expression.Any-class.html#copy,Method Martel.Expression.AnyEol.copy()=Martel.Expression.AnyEol-class.html#copy,Method Martel.Expression.Assert.copy()=Martel.Expression.Assert-class.html#copy,Method Martel.Expression.AtBeginning.copy()=Martel.Expression.AtBeginning-class.html#copy,Method Martel.Expression.AtEnd.copy()=Martel.Expression.AtEnd-class.html#copy,Method Martel.Expression.Debug.copy()=Martel.Expression.Debug-class.html#copy,Method Martel.Expression.Dot.copy()=Martel.Expression.Dot-class.html#copy,Method Martel.Expression.Expression.copy()=Martel.Expression.Expression-class.html#copy,Method Martel.Expression.ExpressionList.copy()=Martel.Expression.ExpressionList-class.html#copy,Method Martel.Expression.FastFeature.copy()=Martel.Expression.FastFeature-class.html#copy,Method Martel.Expression.Group.copy()=Martel.Expression.Group-class.html#copy,Method Martel.Expression.GroupRef.copy()=Martel.Expression.GroupRef-class.html#copy,Method Martel.Expression.HeaderFooter.copy()=Martel.Expression.HeaderFooter-class.html#copy,Method Martel.Expression.Literal.copy()=Martel.Expression.Literal-class.html#copy,Method Martel.Expression.MaxRepeat.copy()=Martel.Expression.MaxRepeat-class.html#copy,Method Martel.Expression.NullOp.copy()=Martel.Expression.NullOp-class.html#copy,Method Martel.Expression.ParseRecords.copy()=Martel.Expression.ParseRecords-class.html#copy,Method Martel.Expression.PassThrough.copy()=Martel.Expression.PassThrough-class.html#copy,Method Martel.Expression.Str.copy()=Martel.Expression.Str-class.html#copy,Method Martel.IterParser.IterHeaderFooter.copy()=Martel.IterParser.IterHeaderFooter-class.html#copy,Method Martel.IterParser.IterRecords.copy()=Martel.IterParser.IterRecords-class.html#copy,Method Martel.Iterator.IteratorRecords.copy()=Martel.Iterator.IteratorRecords-class.html#copy,Method Martel.Parser.HeaderFooterParser.copy()=Martel.Parser.HeaderFooterParser-class.html#copy,Method Martel.Parser.Parser.copy()=Martel.Parser.Parser-class.html#copy,Method Martel.Parser.RecordParser.copy()=Martel.Parser.RecordParser-class.html#copy"><a title="Bio.Crystal.Crystal.copy Bio.GA.Organism.Organism.copy Bio.GenBank.NCBIDictionary.copy Bio.PDB.Vector'.Vector.copy Bio.Prosite.ExPASyDictionary.copy Bio.Prosite.Pattern.PrositeTerm.copy Bio.Prosite.Prodoc.ExPASyDictionary.copy Bio.PubMed.Dictionary.copy Bio.SwissProt.SProt.ExPASyDictionary.copy Martel.Expression.Any.copy Martel.Expression.AnyEol.copy Martel.Expression.Assert.copy Martel.Expression.AtBeginning.copy Martel.Expression.AtEnd.copy Martel.Expression.Debug.copy Martel.Expression.Dot.copy Martel.Expression.Expression.copy Martel.Expression.ExpressionList.copy Martel.Expression.FastFeature.copy Martel.Expression.Group.copy Martel.Expression.GroupRef.copy Martel.Expression.HeaderFooter.copy Martel.Expression.Literal.copy Martel.Expression.MaxRepeat.copy Martel.Expression.NullOp.copy Martel.Expression.ParseRecords.copy Martel.Expression.PassThrough.copy Martel.Expression.Str.copy Martel.IterParser.IterHeaderFooter.copy Martel.IterParser.IterRecords.copy Martel.Iterator.IteratorRecords.copy Martel.Parser.HeaderFooterParser.copy Martel.Parser.Parser.copy Martel.Parser.RecordParser.copy" class="py-name" href="#" onclick="return doclink('link-100', 'copy', 'link-100');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt id="link-101" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-101', 'exp', 'link-1');">exp</a></tt> <tt class="py-op">=</tt> <tt id="link-102" class="py-name" targets="Function Martel.optimize.optimize_unnamed_groups()=Martel.optimize-module.html#optimize_unnamed_groups"><a title="Martel.optimize.optimize_unnamed_groups" class="py-name" href="#" onclick="return doclink('link-102', 'optimize_unnamed_groups', 'link-102');">optimize_unnamed_groups</a></tt><tt class="py-op">(</tt><tt id="link-103" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-103', 'exp', 'link-1');">exp</a></tt><tt class="py-op">)</tt> </tt> <a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt id="link-104" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-104', 'exp', 'link-1');">exp</a></tt> <tt class="py-op">=</tt> <tt id="link-105" class="py-name"><a title="Martel.optimize.merge_strings" class="py-name" href="#" onclick="return doclink('link-105', 'merge_strings', 'link-74');">merge_strings</a></tt><tt class="py-op">(</tt><tt id="link-106" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-106', 'exp', 'link-1');">exp</a></tt><tt class="py-op">)</tt> </tt> <a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-107" class="py-name"><a title="Bio.Affy.CelFile.exp Bio.LogisticRegression.exp Bio.MarkovModel.exp Bio.MaxEntropy.exp Bio.NaiveBayes.exp Bio.Statistics.lowess.exp Bio.distance.exp Bio.kNN.exp" class="py-name" href="#" onclick="return doclink('link-107', 'exp', 'link-1');">exp</a></tt> </tt> </div><a name="L110"></a><tt class="py-lineno">110</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 Mon Sep 15 09:26:52 2008 </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>