<?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.SubsMat</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> :: Package SubsMat </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.SubsMat-pysrc.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <h1 class="epydoc">Source Code for <a href="Bio.SubsMat-module.html">Package Bio.SubsMat</a></h1> <pre class="py-src"> <a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-docstring">"""Substitution matrices, log odds matrices, and operations on them.</tt> </tt> <a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt> <a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt> <a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">string</tt> </tt> <a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt> <a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" 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-0', 'copy', 'link-0');">copy</a></tt> </tt> <a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">math</tt> </tt> <a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"># BioPython imports</tt> </tt> <a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Package Bio=Bio-module.html"><a title="Bio" class="py-name" href="#" onclick="return doclink('link-1', 'Bio', 'link-1');">Bio</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Package Bio.Alphabet=Bio.Alphabet-module.html,Class Bio.Alphabet.Alphabet=Bio.Alphabet.Alphabet-class.html"><a title="Bio.Alphabet Bio.Alphabet.Alphabet" class="py-name" href="#" onclick="return doclink('link-2', 'Alphabet', 'link-2');">Alphabet</a></tt> </tt> <a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="Bio" class="py-name" href="#" onclick="return doclink('link-3', 'Bio', 'link-1');">Bio</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Package Bio.SubsMat=Bio.SubsMat-module.html"><a title="Bio.SubsMat" class="py-name" href="#" onclick="return doclink('link-4', 'SubsMat', 'link-4');">SubsMat</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Module Bio.SubsMat.FreqTable=Bio.SubsMat.FreqTable-module.html,Class Bio.SubsMat.FreqTable.FreqTable=Bio.SubsMat.FreqTable.FreqTable-class.html"><a title="Bio.SubsMat.FreqTable Bio.SubsMat.FreqTable.FreqTable" class="py-name" href="#" onclick="return doclink('link-5', 'FreqTable', 'link-5');">FreqTable</a></tt> </tt> <a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># from Bio.Tools import statfns</tt> </tt> <a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable Bio.Affy.CelFile.log=Bio.Affy.CelFile-module.html#log,Variable Bio.LogisticRegression.log=Bio.LogisticRegression-module.html#log,Variable Bio.MarkovModel.log=Bio.MarkovModel-module.html#log,Variable Bio.MaxEntropy.log=Bio.MaxEntropy-module.html#log,Variable Bio.NaiveBayes.log=Bio.NaiveBayes-module.html#log,Variable Bio.Statistics.lowess.log=Bio.Statistics.lowess-module.html#log,Variable Bio.distance.log=Bio.distance-module.html#log,Variable Bio.kNN.log=Bio.kNN-module.html#log"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-6', 'log', 'link-6');">log</a></tt> <tt class="py-op">=</tt> <tt class="py-name">math</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-7', 'log', 'link-6');">log</a></tt> </tt> <a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"># Matrix types</tt> </tt> <a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-8" class="py-name" targets="Variable Bio.SubsMat.NOTYPE=Bio.SubsMat-module.html#NOTYPE"><a title="Bio.SubsMat.NOTYPE" class="py-name" href="#" onclick="return doclink('link-8', 'NOTYPE', 'link-8');">NOTYPE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt> <a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable Bio.SubsMat.ACCREP=Bio.SubsMat-module.html#ACCREP"><a title="Bio.SubsMat.ACCREP" class="py-name" href="#" onclick="return doclink('link-9', 'ACCREP', 'link-9');">ACCREP</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt> <a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt id="link-10" class="py-name" targets="Variable Bio.SubsMat.OBSFREQ=Bio.SubsMat-module.html#OBSFREQ"><a title="Bio.SubsMat.OBSFREQ" class="py-name" href="#" onclick="return doclink('link-10', 'OBSFREQ', 'link-10');">OBSFREQ</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt> <a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt id="link-11" class="py-name" targets="Variable Bio.SubsMat.SUBS=Bio.SubsMat-module.html#SUBS"><a title="Bio.SubsMat.SUBS" class="py-name" href="#" onclick="return doclink('link-11', 'SUBS', 'link-11');">SUBS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> </tt> <a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt id="link-12" class="py-name" targets="Variable Bio.SubsMat.EXPFREQ=Bio.SubsMat-module.html#EXPFREQ"><a title="Bio.SubsMat.EXPFREQ" class="py-name" href="#" onclick="return doclink('link-12', 'EXPFREQ', 'link-12');">EXPFREQ</a></tt> <tt class="py-op">=</tt> <tt class="py-number">4</tt> </tt> <a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt id="link-13" class="py-name" targets="Variable Bio.SubsMat.LO=Bio.SubsMat-module.html#LO"><a title="Bio.SubsMat.LO" class="py-name" href="#" onclick="return doclink('link-13', 'LO', 'link-13');">LO</a></tt> <tt class="py-op">=</tt> <tt class="py-number">5</tt> </tt> <a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt id="link-14" class="py-name" targets="Variable Bio.SubsMat.EPSILON=Bio.SubsMat-module.html#EPSILON"><a title="Bio.SubsMat.EPSILON" class="py-name" href="#" onclick="return doclink('link-14', 'EPSILON', 'link-14');">EPSILON</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0.00000000000001</tt> </tt> <a name="BadMatrix"></a><div id="BadMatrix-def"><a name="L22"></a><tt class="py-lineno"> 22</tt> <a class="py-toggle" href="#" id="BadMatrix-toggle" onclick="return toggle('BadMatrix');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="Bio.SubsMat.BadMatrix-class.html">BadMatrix</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="BadMatrix-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BadMatrix-expanded"><a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> <tt class="py-docstring">"""Exception raised when verifying a matrix"""</tt> </tt> <a name="BadMatrix.__str__"></a><div id="BadMatrix.__str__-def"><a name="L24"></a><tt class="py-lineno"> 24</tt> <a class="py-toggle" href="#" id="BadMatrix.__str__-toggle" onclick="return toggle('BadMatrix.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.BadMatrix-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="BadMatrix.__str__-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="BadMatrix.__str__-expanded"><a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"Bad Matrix"</tt> </tt> </div></div><a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt id="link-15" class="py-name" targets="Variable Bio.SubsMat.BadMatrixError=Bio.SubsMat-module.html#BadMatrixError"><a title="Bio.SubsMat.BadMatrixError" class="py-name" href="#" onclick="return doclink('link-15', 'BadMatrixError', 'link-15');">BadMatrixError</a></tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name" targets="Class Bio.SubsMat.BadMatrix=Bio.SubsMat.BadMatrix-class.html"><a title="Bio.SubsMat.BadMatrix" class="py-name" href="#" onclick="return doclink('link-16', 'BadMatrix', 'link-16');">BadMatrix</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt> <a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-comment"># 5/2001 added the following:</tt> </tt> <a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># * Methods for subtraction, addition and multiplication of matrices</tt> </tt> <a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># * Generation of an expected frequency table from an observed frequency matrix</tt> </tt> <a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># * Calculation of linear correlation coefficient between two matrices. Needs</tt> </tt> <a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Bio.Tools.statfns</tt> </tt> <a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># * Calculation of relative entropy is now done using the _make_relative_entropy method</tt> </tt> <a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># and is stored in the member self.relative_entropy</tt> </tt> <a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># * Calculation of entropy is now done using the _make_entropy method and is stored in</tt> </tt> <a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># the member self.entropy</tt> </tt> <a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># * Jensen-Shannon distance between the distributions from which the matrices are</tt> </tt> <a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># derived. This is a distance function based on the distribution's entropies.</tt> </tt> <a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt> <a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Substitution matrix routines</tt> </tt> <a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Iddo Friedberg idoerg@cc.huji.ac.il</tt> </tt> <a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Biopython license applies (http://biopython.org)</tt> </tt> <a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># </tt> </tt> <a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># General:</tt> </tt> <a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -------</tt> </tt> <a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have python 2.0 or above. </tt> </tt> <a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># http://www.python.org</tt> </tt> <a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># You should have biopython (http://biopython.org) installed.</tt> </tt> <a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># </tt> </tt> <a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This module provides a class and a few routines for generating</tt> </tt> <a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># substitution matrices, similar ot BLOSUM or PAM matrices, but based on</tt> </tt> <a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># user-provided data.</tt> </tt> <a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># The class used for these matrices is SeqMat</tt> </tt> <a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># </tt> </tt> <a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Matrices are implemented as a user dictionary. Each index contains a</tt> </tt> <a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># 2-tuple, which are the two residue/nucleotide types replaced. The value</tt> </tt> <a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># differs according to the matrix's purpose: e.g in a log-odds frequency</tt> </tt> <a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># matrix, the value would be log(Pij/(Pi*Pj)) where:</tt> </tt> <a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Pij: frequency of substitution of letter (residue/nucletide) i by j </tt> </tt> <a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Pi, Pj: expected frequencies of i and j, respectively.</tt> </tt> <a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># </tt> </tt> <a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Usage:</tt> </tt> <a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -----</tt> </tt> <a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># The following section is layed out in the order by which most people wish</tt> </tt> <a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># to generate a log-odds matrix. Of course, interim matrices can be</tt> </tt> <a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># generated and investigated. Most people just want a log-odds matrix,</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"># that's all.</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"># </tt> </tt> <a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Generating an Accepted Replacement Matrix:</tt> </tt> <a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># -----------------------------------------</tt> </tt> <a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Initially, you should generate an accepted replacement matrix</tt> </tt> <a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># (ARM) from your data. The values in ARM are the _counted_ number of</tt> </tt> <a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># replacements according to your data. The data could be a set of pairs</tt> </tt> <a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># or multiple alignments. So for instance if Alanine was replaced by</tt> </tt> <a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Cysteine 10 times, and Cysteine by Alanine 12 times, the corresponding</tt> </tt> <a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># ARM entries would be:</tt> </tt> <a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># ['A','C']: 10, ['C','A'] 12</tt> </tt> <a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># as order doesn't matter, user can already provide only one entry:</tt> </tt> <a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># ['A','C']: 22 </tt> </tt> <a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># A SeqMat instance may be initialized with either a full (first</tt> </tt> <a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># method of counting: 10, 12) or half (the latter method, 22) matrices. A</tt> </tt> <a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Full protein alphabet matrix would be of the size 20x20 = 400. A Half</tt> </tt> <a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># matrix of that alphabet would be 20x20/2 + 20/2 = 210. That is because</tt> </tt> <a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># same-letter entries don't change. (The matrix diagonal). Given an</tt> </tt> <a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># alphabet size of N:</tt> </tt> <a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Full matrix size:N*N</tt> </tt> <a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Half matrix size: N(N+1)/2</tt> </tt> <a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># </tt> </tt> <a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># If you provide a full matrix, the constructore will create a half-matrix</tt> </tt> <a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># automatically.</tt> </tt> <a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># If you provide a half-matrix, make sure</tt> </tt> <a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># of a (low, high) sorted order in the keys: there should only be </tt> </tt> <a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># a ('A','C') not a ('C','A').</tt> </tt> <a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt> <a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Internal functions:</tt> </tt> <a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># </tt> </tt> <a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Generating the observed frequency matrix (OFM):</tt> </tt> <a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># ----------------------------------------------</tt> </tt> <a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Use: OFM = _build_obs_freq_mat(ARM)</tt> </tt> <a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># The OFM is generated from the ARM, only instead of replacement counts, it</tt> </tt> <a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># contains replacement frequencies.</tt> </tt> <a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Generating an expected frequency matrix (EFM):</tt> </tt> <a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># ---------------------------------------------</tt> </tt> <a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Use: EFM = _build_exp_freq_mat(OFM,exp_freq_table)</tt> </tt> <a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># exp_freq_table: should be a freqTableC instantiation. See freqTable.py for</tt> </tt> <a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># detailed information. Briefly, the expected frequency table has the</tt> </tt> <a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># frequencies of appearance for each member of the alphabet</tt> </tt> <a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Generating a substitution frequency matrix (SFM):</tt> </tt> <a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># ------------------------------------------------</tt> </tt> <a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Use: SFM = _build_subs_mat(OFM,EFM)</tt> </tt> <a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Accepts an OFM, EFM. Provides the division product of the corresponding</tt> </tt> <a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># values. </tt> </tt> <a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Generating a log-odds matrix (LOM):</tt> </tt> <a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># ----------------------------------</tt> </tt> <a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Use: LOM=_build_log_odds_mat(SFM[,logbase=10,factor=10.0,roundit=1])</tt> </tt> <a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Accepts an SFM. logbase: base of the logarithm used to generate the</tt> </tt> <a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># log-odds values. factor: factor used to multiply the log-odds values.</tt> </tt> <a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># roundit: default - true. Whether to round the values.</tt> </tt> <a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Each entry is generated by log(LOM[key])*factor</tt> </tt> <a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># And rounded if required.</tt> </tt> <a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt> <a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># External:</tt> </tt> <a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># ---------</tt> </tt> <a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># In most cases, users will want to generate a log-odds matrix only, without</tt> </tt> <a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># explicitly calling the OFM --> EFM --> SFM stages. The function</tt> </tt> <a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># build_log_odds_matrix does that. User provides an ARM and an expected</tt> </tt> <a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># frequency table. The function returns the log-odds matrix</tt> </tt> <a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt> <a name="SeqMat"></a><div id="SeqMat-def"><a name="L129"></a><tt class="py-lineno">129</tt> <a class="py-toggle" href="#" id="SeqMat-toggle" onclick="return toggle('SeqMat');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">class</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html">SeqMat</a><tt class="py-op">(</tt><tt class="py-base-class">dict</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SeqMat-expanded"><a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-docstring">"""A Generic sequence matrix class</tt> </tt> <a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"> The key is a 2-tuple containing the letter indices of the matrix. Those</tt> </tt> <a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> should be sorted in the tuple (low, high). Because each matrix is dealt</tt> </tt> <a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> with as a half-matrix."""</tt> </tt> <a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> </tt> <a name="SeqMat._alphabet_from_matrix"></a><div id="SeqMat._alphabet_from_matrix-def"><a name="L135"></a><tt class="py-lineno">135</tt> <a class="py-toggle" href="#" id="SeqMat._alphabet_from_matrix-toggle" onclick="return toggle('SeqMat._alphabet_from_matrix');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#_alphabet_from_matrix">_alphabet_from_matrix</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat._alphabet_from_matrix-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat._alphabet_from_matrix-expanded"><a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">ab_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt> <a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt id="link-17" class="py-name" targets="Variable Martel.test.test_swissprot38.s=Martel.test.test_swissprot38-module.html#s"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-17', 's', 'link-17');">s</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt> <a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-18" class="py-name" targets="Variable Bio.PDB.Polypeptide.i=Bio.PDB.Polypeptide-module.html#i"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-18', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method Bio.Crystal.Crystal.keys()=Bio.Crystal.Crystal-class.html#keys,Method Bio.EUtils.MultiDict._BaseMultiDict.keys()=Bio.EUtils.MultiDict._BaseMultiDict-class.html#keys,Method Bio.GenBank.NCBIDictionary.keys()=Bio.GenBank.NCBIDictionary-class.html#keys,Method Bio.Mindy.BaseDB.DictLookup.keys()=Bio.Mindy.BaseDB.DictLookup-class.html#keys,Method Bio.Mindy.BaseDB.OpenDB.keys()=Bio.Mindy.BaseDB.OpenDB-class.html#keys,Method Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys()=Bio.Mindy.BerkeleyDB.PrimaryNamespace-class.html#keys,Method Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys()=Bio.Mindy.BerkeleyDB.SecondaryNamespace-class.html#keys,Method Bio.Mindy.FlatDB.PrimaryNamespace.keys()=Bio.Mindy.FlatDB.PrimaryNamespace-class.html#keys,Method Bio.Mindy.FlatDB.PrimaryTable.keys()=Bio.Mindy.FlatDB.PrimaryTable-class.html#keys,Method Bio.Mindy.FlatDB.SecondaryNamespace.keys()=Bio.Mindy.FlatDB.SecondaryNamespace-class.html#keys,Method Bio.Mindy.FlatDB.SecondaryTable.keys()=Bio.Mindy.FlatDB.SecondaryTable-class.html#keys,Method Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys()=Bio.PDB.AbstractPropertyMap.AbstractPropertyMap-class.html#keys,Method Bio.Prosite.ExPASyDictionary.keys()=Bio.Prosite.ExPASyDictionary-class.html#keys,Method Bio.Prosite.Prodoc.ExPASyDictionary.keys()=Bio.Prosite.Prodoc.ExPASyDictionary-class.html#keys,Method Bio.PubMed.Dictionary.keys()=Bio.PubMed.Dictionary-class.html#keys,Method Bio.SwissProt.SProt.Dictionary.keys()=Bio.SwissProt.SProt.Dictionary-class.html#keys,Method Bio.SwissProt.SProt.ExPASyDictionary.keys()=Bio.SwissProt.SProt.ExPASyDictionary-class.html#keys,Method Bio.config.Registry.Registry.keys()=Bio.config.Registry.Registry-class.html#keys,Method BioSQL.BioSeqDatabase.BioSeqDatabase.keys()=BioSQL.BioSeqDatabase.BioSeqDatabase-class.html#keys,Method BioSQL.BioSeqDatabase.DBServer.keys()=BioSQL.BioSeqDatabase.DBServer-class.html#keys,Method Martel.Parser.MartelAttributeList.keys()=Martel.Parser.MartelAttributeList-class.html#keys"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-19', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-name">ab_dict</tt><tt class="py-op">[</tt><tt id="link-20" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-20', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt> <a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">ab_dict</tt><tt class="py-op">[</tt><tt id="link-21" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-21', 'i', 'link-18');">i</a></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 class="py-number">1</tt> </tt> <a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">letters_list</tt> <tt class="py-op">=</tt> <tt class="py-name">ab_dict</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-22', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-name">letters_list</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method Bio.PDB.Residue.DisorderedResidue.sort()=Bio.PDB.Residue.DisorderedResidue-class.html#sort,Method Bio.PDB.Residue.Residue.sort()=Bio.PDB.Residue.Residue-class.html#sort,Method Bio.Sequencing.Ace.ACEFileRecord.sort()=Bio.Sequencing.Ace.ACEFileRecord-class.html#sort"><a title="Bio.PDB.Residue.DisorderedResidue.sort Bio.PDB.Residue.Residue.sort Bio.Sequencing.Ace.ACEFileRecord.sort" class="py-name" href="#" onclick="return doclink('link-23', 'sort', 'link-23');">sort</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-24" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-24', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">letters_list</tt><tt class="py-op">:</tt> </tt> <a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt id="link-25" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-25', 's', 'link-17');">s</a></tt> <tt class="py-op">=</tt> <tt id="link-26" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-26', 's', 'link-17');">s</a></tt> <tt class="py-op">+</tt> <tt id="link-27" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-27', 'i', 'link-18');">i</a></tt> </tt> <a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Variable Bio.Prosite.Pattern.Prosite.alphabet=Bio.Prosite.Pattern.Prosite-class.html#alphabet,Function Bio.Std.alphabet()=Bio.Std-module.html#alphabet"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-28', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Variable Bio.Alphabet.Alphabet.letters=Bio.Alphabet.Alphabet-class.html#letters,Variable Bio.Alphabet.IUPAC.ExtendedIUPACDNA.letters=Bio.Alphabet.IUPAC.ExtendedIUPACDNA-class.html#letters,Variable Bio.Alphabet.IUPAC.ExtendedIUPACProtein.letters=Bio.Alphabet.IUPAC.ExtendedIUPACProtein-class.html#letters,Variable Bio.Alphabet.IUPAC.IUPACAmbiguousDNA.letters=Bio.Alphabet.IUPAC.IUPACAmbiguousDNA-class.html#letters,Variable Bio.Alphabet.IUPAC.IUPACAmbiguousRNA.letters=Bio.Alphabet.IUPAC.IUPACAmbiguousRNA-class.html#letters,Variable Bio.Alphabet.IUPAC.IUPACProtein.letters=Bio.Alphabet.IUPAC.IUPACProtein-class.html#letters,Variable Bio.Alphabet.IUPAC.IUPACUnambiguousDNA.letters=Bio.Alphabet.IUPAC.IUPACUnambiguousDNA-class.html#letters,Variable Bio.Alphabet.IUPAC.IUPACUnambiguousRNA.letters=Bio.Alphabet.IUPAC.IUPACUnambiguousRNA-class.html#letters,Variable Bio.Alphabet.Reduced.HPModel.letters=Bio.Alphabet.Reduced.HPModel-class.html#letters,Variable Bio.Alphabet.Reduced.Murphy10.letters=Bio.Alphabet.Reduced.Murphy10-class.html#letters,Variable Bio.Alphabet.Reduced.Murphy15.letters=Bio.Alphabet.Reduced.Murphy15-class.html#letters,Variable Bio.Alphabet.Reduced.Murphy4.letters=Bio.Alphabet.Reduced.Murphy4-class.html#letters,Variable Bio.Alphabet.Reduced.Murphy8.letters=Bio.Alphabet.Reduced.Murphy8-class.html#letters,Variable Bio.Alphabet.Reduced.PC5.letters=Bio.Alphabet.Reduced.PC5-class.html#letters,Variable Bio.Alphabet.SecondaryStructure.letters=Bio.Alphabet.SecondaryStructure-class.html#letters,Variable Bio.Alphabet.SingleLetterAlphabet.letters=Bio.Alphabet.SingleLetterAlphabet-class.html#letters,Variable Bio.Alphabet.ThreeLetterProtein.letters=Bio.Alphabet.ThreeLetterProtein-class.html#letters,Variable Bio.NeuralNetwork.Gene.Schema.SchemaDNAAlphabet.letters=Bio.NeuralNetwork.Gene.Schema.SchemaDNAAlphabet-class.html#letters,Variable Bio.SeqUtils.ProteinX.letters=Bio.SeqUtils.ProteinX-class.html#letters"><a title="Bio.Alphabet.Alphabet.letters Bio.Alphabet.IUPAC.ExtendedIUPACDNA.letters Bio.Alphabet.IUPAC.ExtendedIUPACProtein.letters Bio.Alphabet.IUPAC.IUPACAmbiguousDNA.letters Bio.Alphabet.IUPAC.IUPACAmbiguousRNA.letters Bio.Alphabet.IUPAC.IUPACProtein.letters Bio.Alphabet.IUPAC.IUPACUnambiguousDNA.letters Bio.Alphabet.IUPAC.IUPACUnambiguousRNA.letters Bio.Alphabet.Reduced.HPModel.letters Bio.Alphabet.Reduced.Murphy10.letters Bio.Alphabet.Reduced.Murphy15.letters Bio.Alphabet.Reduced.Murphy4.letters Bio.Alphabet.Reduced.Murphy8.letters Bio.Alphabet.Reduced.PC5.letters Bio.Alphabet.SecondaryStructure.letters Bio.Alphabet.SingleLetterAlphabet.letters Bio.Alphabet.ThreeLetterProtein.letters Bio.NeuralNetwork.Gene.Schema.SchemaDNAAlphabet.letters Bio.SeqUtils.ProteinX.letters" class="py-name" href="#" onclick="return doclink('link-29', 'letters', 'link-29');">letters</a></tt> <tt class="py-op">=</tt> <tt id="link-30" class="py-name"><a title="Martel.test.test_swissprot38.s" class="py-name" href="#" onclick="return doclink('link-30', 's', 'link-17');">s</a></tt> </tt> </div><a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> </tt> <a name="SeqMat.__init__"></a><div id="SeqMat.__init__-def"><a name="L147"></a><tt class="py-lineno">147</tt> <a class="py-toggle" href="#" id="SeqMat.__init__-toggle" onclick="return toggle('SeqMat.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">data</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">alphabet</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt> <a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-param">mat_type</tt><tt class="py-op">=</tt><tt id="link-31" class="py-name"><a title="Bio.SubsMat.NOTYPE" class="py-name" href="#" onclick="return doclink('link-31', 'NOTYPE', 'link-8');">NOTYPE</a></tt><tt class="py-op">,</tt><tt class="py-param">mat_name</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt><tt class="py-param">build_later</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat.__init__-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat.__init__-expanded"><a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-comment"># User may supply:</tt> </tt> <a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># data: matrix itself</tt> </tt> <a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># mat_type: its type. See below</tt> </tt> <a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># mat_name: its name. See below.</tt> </tt> <a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># alphabet: an instance of Bio.Alphabet, or a subclass. If not</tt> </tt> <a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># supplied, constructor builds its own from that matrix."""</tt> </tt> <a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># build_later: skip the matrix size assertion. User will build the</tt> </tt> <a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># matrix after creating the instance. Constructor builds a half matrix</tt> </tt> <a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># filled with zeroes.</tt> </tt> <a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt id="link-32" class="py-name" targets="Variable Bio.GenBank.LocationParser.Integer.type=Bio.GenBank.LocationParser.Integer-class.html#type,Variable Bio.GenBank.LocationParser.Symbol.type=Bio.GenBank.LocationParser.Symbol-class.html#type,Variable Bio.GenBank.LocationParser.UnsignedInteger.type=Bio.GenBank.LocationParser.UnsignedInteger-class.html#type"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-32', 'type', 'link-32');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">mat_type</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-33" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-33', 'type', 'link-32');">type</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt> <a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt id="link-34" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-34', 'type', 'link-32');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">mat_name</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-35" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-35', 'type', 'link-32');">type</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt> <a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> </tt> <a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-comment"># "data" may be:</tt> </tt> <a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># 1) None --> then self.data is an empty dictionary</tt> </tt> <a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># 2) type({}) --> then self.data takes the items in data</tt> </tt> <a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># 3) An instance of SeqMat</tt> </tt> <a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># This whole creation-during-execution is done to avoid changing</tt> </tt> <a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># default values, the way Python does because default values are</tt> </tt> <a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># created when the function is defined, not when it is created.</tt> </tt> <a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">assert</tt> <tt class="py-op">(</tt><tt id="link-36" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-36', 'type', 'link-32');">type</a></tt><tt class="py-op">(</tt><tt id="link-37" class="py-name" targets="Variable BioSQL.BioSeq.DBSeq.data=BioSQL.BioSeq.DBSeq-class.html#data"><a title="BioSQL.BioSeq.DBSeq.data" class="py-name" href="#" onclick="return doclink('link-37', 'data', 'link-37');">data</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-38" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-38', 'type', 'link-32');">type</a></tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-39" class="py-name"><a title="BioSQL.BioSeq.DBSeq.data" class="py-name" href="#" onclick="return doclink('link-39', 'data', 'link-37');">data</a></tt><tt class="py-op">,</tt><tt class="py-name">dict</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> </tt> <a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt id="link-40" class="py-name"><a title="BioSQL.BioSeq.DBSeq.data" class="py-name" href="#" onclick="return doclink('link-40', 'data', 'link-37');">data</a></tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt> <a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-41" class="py-name"><a title="BioSQL.BioSeq.DBSeq.data" class="py-name" href="#" onclick="return doclink('link-41', 'data', 'link-37');">data</a></tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> <a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt id="link-42" class="py-name"><a title="BioSQL.BioSeq.DBSeq.data" class="py-name" href="#" onclick="return doclink('link-42', 'data', 'link-37');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt> <a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Method Bio.GenBank.NCBIDictionary.update()=Bio.GenBank.NCBIDictionary-class.html#update,Method Bio.Index._InMemoryIndex.update()=Bio.Index._InMemoryIndex-class.html#update,Method Bio.NeuralNetwork.BackPropagation.Layer.HiddenLayer.update()=Bio.NeuralNetwork.BackPropagation.Layer.HiddenLayer-class.html#update,Method Bio.NeuralNetwork.BackPropagation.Layer.InputLayer.update()=Bio.NeuralNetwork.BackPropagation.Layer.InputLayer-class.html#update,Method Bio.NeuralNetwork.BackPropagation.Layer.OutputLayer.update()=Bio.NeuralNetwork.BackPropagation.Layer.OutputLayer-class.html#update,Method Bio.Prosite.ExPASyDictionary.update()=Bio.Prosite.ExPASyDictionary-class.html#update,Method Bio.Prosite.Prodoc.ExPASyDictionary.update()=Bio.Prosite.Prodoc.ExPASyDictionary-class.html#update,Method Bio.PubMed.Dictionary.update()=Bio.PubMed.Dictionary-class.html#update,Method Bio.Restriction._Update.Update.RebaseUpdate.update()=Bio.Restriction._Update.Update.RebaseUpdate-class.html#update,Method Bio.SwissProt.SProt.ExPASyDictionary.update()=Bio.SwissProt.SProt.ExPASyDictionary-class.html#update"><a title="Bio.GenBank.NCBIDictionary.update Bio.Index._InMemoryIndex.update Bio.NeuralNetwork.BackPropagation.Layer.HiddenLayer.update Bio.NeuralNetwork.BackPropagation.Layer.InputLayer.update Bio.NeuralNetwork.BackPropagation.Layer.OutputLayer.update Bio.Prosite.ExPASyDictionary.update Bio.Prosite.Prodoc.ExPASyDictionary.update Bio.PubMed.Dictionary.update Bio.Restriction._Update.Update.RebaseUpdate.update Bio.SwissProt.SProt.ExPASyDictionary.update" class="py-name" href="#" onclick="return doclink('link-43', 'update', 'link-43');">update</a></tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="BioSQL.BioSeq.DBSeq.data" class="py-name" href="#" onclick="return doclink('link-44', 'data', 'link-37');">data</a></tt><tt class="py-op">)</tt> </tt> <a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-45" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-45', 'alphabet', 'link-28');">alphabet</a></tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> <a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt id="link-46" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-46', 'alphabet', 'link-28');">alphabet</a></tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="Bio.Alphabet Bio.Alphabet.Alphabet" class="py-name" href="#" onclick="return doclink('link-47', 'Alphabet', 'link-2');">Alphabet</a></tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="Bio.Alphabet Bio.Alphabet.Alphabet" class="py-name" href="#" onclick="return doclink('link-48', 'Alphabet', 'link-2');">Alphabet</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt id="link-49" class="py-name"><a title="Bio.Alphabet Bio.Alphabet.Alphabet" class="py-name" href="#" onclick="return doclink('link-49', 'Alphabet', 'link-2');">Alphabet</a></tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Variable Bio.Alphabet.generic_alphabet=Bio.Alphabet-module.html#generic_alphabet"><a title="Bio.Alphabet.generic_alphabet" class="py-name" href="#" onclick="return doclink('link-50', 'generic_alphabet', 'link-50');">generic_alphabet</a></tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method Bio.Alphabet.Alphabet.contains()=Bio.Alphabet.Alphabet-class.html#contains,Method Bio.Alphabet.AlphabetEncoder.contains()=Bio.Alphabet.AlphabetEncoder-class.html#contains,Method Bio.Alphabet.Gapped.contains()=Bio.Alphabet.Gapped-class.html#contains,Method Bio.Alphabet.HasStopCodon.contains()=Bio.Alphabet.HasStopCodon-class.html#contains,Method Bio.Pathway.Rep.HashSet.HashSet.contains()=Bio.Pathway.Rep.HashSet.HashSet-class.html#contains,Method Bio.biblio.Biblio.contains()=Bio.biblio.Biblio-class.html#contains"><a title="Bio.Alphabet.Alphabet.contains Bio.Alphabet.AlphabetEncoder.contains Bio.Alphabet.Gapped.contains Bio.Alphabet.HasStopCodon.contains Bio.Pathway.Rep.HashSet.HashSet.contains Bio.biblio.Biblio.contains" class="py-name" href="#" onclick="return doclink('link-51', 'contains', 'link-51');">contains</a></tt><tt class="py-op">(</tt><tt id="link-52" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-52', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">)</tt> </tt> <a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-53', 'alphabet', 'link-28');">alphabet</a></tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-54', 'alphabet', 'link-28');">alphabet</a></tt> </tt> <a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> </tt> <a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-comment"># If passed alphabet is empty, use the letters in the matrix itself</tt> </tt> <a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-55', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="Bio.Alphabet.Alphabet.letters Bio.Alphabet.IUPAC.ExtendedIUPACDNA.letters Bio.Alphabet.IUPAC.ExtendedIUPACProtein.letters Bio.Alphabet.IUPAC.IUPACAmbiguousDNA.letters Bio.Alphabet.IUPAC.IUPACAmbiguousRNA.letters Bio.Alphabet.IUPAC.IUPACProtein.letters Bio.Alphabet.IUPAC.IUPACUnambiguousDNA.letters Bio.Alphabet.IUPAC.IUPACUnambiguousRNA.letters Bio.Alphabet.Reduced.HPModel.letters Bio.Alphabet.Reduced.Murphy10.letters Bio.Alphabet.Reduced.Murphy15.letters Bio.Alphabet.Reduced.Murphy4.letters Bio.Alphabet.Reduced.Murphy8.letters Bio.Alphabet.Reduced.PC5.letters Bio.Alphabet.SecondaryStructure.letters Bio.Alphabet.SingleLetterAlphabet.letters Bio.Alphabet.ThreeLetterProtein.letters Bio.NeuralNetwork.Gene.Schema.SchemaDNAAlphabet.letters Bio.SeqUtils.ProteinX.letters" class="py-name" href="#" onclick="return doclink('link-56', 'letters', 'link-29');">letters</a></tt><tt class="py-op">:</tt> </tt> <a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Method Bio.SubsMat.SeqMat._alphabet_from_matrix()=Bio.SubsMat.SeqMat-class.html#_alphabet_from_matrix"><a title="Bio.SubsMat.SeqMat._alphabet_from_matrix" class="py-name" href="#" onclick="return doclink('link-57', '_alphabet_from_matrix', 'link-57');">_alphabet_from_matrix</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-comment"># Assert matrix size: half or full</tt> </tt> <a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">build_later</tt><tt class="py-op">:</tt> </tt> <a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-name">N</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-58', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="Bio.Alphabet.Alphabet.letters Bio.Alphabet.IUPAC.ExtendedIUPACDNA.letters Bio.Alphabet.IUPAC.ExtendedIUPACProtein.letters Bio.Alphabet.IUPAC.IUPACAmbiguousDNA.letters Bio.Alphabet.IUPAC.IUPACAmbiguousRNA.letters Bio.Alphabet.IUPAC.IUPACProtein.letters Bio.Alphabet.IUPAC.IUPACUnambiguousDNA.letters Bio.Alphabet.IUPAC.IUPACUnambiguousRNA.letters Bio.Alphabet.Reduced.HPModel.letters Bio.Alphabet.Reduced.Murphy10.letters Bio.Alphabet.Reduced.Murphy15.letters Bio.Alphabet.Reduced.Murphy4.letters Bio.Alphabet.Reduced.Murphy8.letters Bio.Alphabet.Reduced.PC5.letters Bio.Alphabet.SecondaryStructure.letters Bio.Alphabet.SingleLetterAlphabet.letters Bio.Alphabet.ThreeLetterProtein.letters Bio.NeuralNetwork.Gene.Schema.SchemaDNAAlphabet.letters Bio.SeqUtils.ProteinX.letters" class="py-name" href="#" onclick="return doclink('link-59', 'letters', 'link-29');">letters</a></tt><tt class="py-op">)</tt> </tt> <a name="L186"></a><tt class="py-lineno">186</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">self</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">N</tt><tt class="py-op">**</tt><tt class="py-number">2</tt> <tt class="py-keyword">or</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">N</tt><tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-name">N</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-number">2</tt> </tt> <a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name" targets="Method Bio.Pathway.Rep.HashSet.HashSet.list()=Bio.Pathway.Rep.HashSet.HashSet-class.html#list"><a title="Bio.Pathway.Rep.HashSet.HashSet.list" class="py-name" href="#" onclick="return doclink('link-60', 'list', 'link-60');">list</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-61', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="Bio.Alphabet.Alphabet.letters Bio.Alphabet.IUPAC.ExtendedIUPACDNA.letters Bio.Alphabet.IUPAC.ExtendedIUPACProtein.letters Bio.Alphabet.IUPAC.IUPACAmbiguousDNA.letters Bio.Alphabet.IUPAC.IUPACAmbiguousRNA.letters Bio.Alphabet.IUPAC.IUPACProtein.letters Bio.Alphabet.IUPAC.IUPACUnambiguousDNA.letters Bio.Alphabet.IUPAC.IUPACUnambiguousRNA.letters Bio.Alphabet.Reduced.HPModel.letters Bio.Alphabet.Reduced.Murphy10.letters Bio.Alphabet.Reduced.Murphy15.letters Bio.Alphabet.Reduced.Murphy4.letters Bio.Alphabet.Reduced.Murphy8.letters Bio.Alphabet.Reduced.PC5.letters Bio.Alphabet.SecondaryStructure.letters Bio.Alphabet.SingleLetterAlphabet.letters Bio.Alphabet.ThreeLetterProtein.letters Bio.NeuralNetwork.Gene.Schema.SchemaDNAAlphabet.letters Bio.SeqUtils.ProteinX.letters" class="py-name" href="#" onclick="return doclink('link-62', 'letters', 'link-29');">letters</a></tt><tt class="py-op">)</tt> </tt> <a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="Bio.PDB.Residue.DisorderedResidue.sort Bio.PDB.Residue.Residue.sort Bio.Sequencing.Ace.ACEFileRecord.sort" class="py-name" href="#" onclick="return doclink('link-63', 'sort', 'link-23');">sort</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-comment"># type can be: ACCREP, OBSFREQ, SUBS, EXPFREQ, LO</tt> </tt> <a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mat_type</tt> <tt class="py-op">=</tt> <tt class="py-name">mat_type</tt> </tt> <a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-comment"># Names: a string like "BLOSUM62" or "PAM250"</tt> </tt> <a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mat_name</tt> <tt class="py-op">=</tt> <tt class="py-name">mat_name</tt> </tt> <a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">build_later</tt><tt class="py-op">:</tt> </tt> <a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Method Bio.SubsMat.SeqMat._init_zero()=Bio.SubsMat.SeqMat-class.html#_init_zero"><a title="Bio.SubsMat.SeqMat._init_zero" class="py-name" href="#" onclick="return doclink('link-64', '_init_zero', 'link-64');">_init_zero</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-comment"># Convert full to half if matrix is not already a log-odds matrix</tt> </tt> <a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mat_type</tt> <tt class="py-op"><></tt> <tt id="link-65" class="py-name"><a title="Bio.SubsMat.LO" class="py-name" href="#" onclick="return doclink('link-65', 'LO', 'link-13');">LO</a></tt><tt class="py-op">:</tt> </tt> <a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name" targets="Method Bio.SubsMat.SeqMat._full_to_half()=Bio.SubsMat.SeqMat-class.html#_full_to_half"><a title="Bio.SubsMat.SeqMat._full_to_half" class="py-name" href="#" onclick="return doclink('link-66', '_full_to_half', 'link-66');">_full_to_half</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method Bio.SubsMat.SeqMat._correct_matrix()=Bio.SubsMat.SeqMat-class.html#_correct_matrix"><a title="Bio.SubsMat.SeqMat._correct_matrix" class="py-name" href="#" onclick="return doclink('link-67', '_correct_matrix', 'link-67');">_correct_matrix</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sum_letters</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt> <a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">relative_entropy</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt> </div><a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> </tt> <a name="SeqMat._correct_matrix"></a><div id="SeqMat._correct_matrix-def"><a name="L203"></a><tt class="py-lineno">203</tt> <a class="py-toggle" href="#" id="SeqMat._correct_matrix-toggle" onclick="return toggle('SeqMat._correct_matrix');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#_correct_matrix">_correct_matrix</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat._correct_matrix-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat._correct_matrix-expanded"><a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-name">keylist</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-68', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-69" class="py-name" targets="Variable Bio.Translate.key=Bio.Translate-module.html#key"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-69', 'key', 'link-69');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">keylist</tt><tt class="py-op">:</tt> </tt> <a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-70" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-70', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt id="link-71" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-71', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-72', 'key', 'link-69');">key</a></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-73" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-73', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-74" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-74', 'key', 'link-69');">key</a></tt><tt class="py-op">]</tt> </tt> <a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-75" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-75', 'key', 'link-69');">key</a></tt><tt class="py-op">]</tt> </tt> </div><a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> </tt> <a name="SeqMat._full_to_half"></a><div id="SeqMat._full_to_half-def"><a name="L210"></a><tt class="py-lineno">210</tt> <a class="py-toggle" href="#" id="SeqMat._full_to_half-toggle" onclick="return toggle('SeqMat._full_to_half');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#_full_to_half">_full_to_half</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat._full_to_half-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat._full_to_half-expanded"><a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt> <a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-docstring"> Convert a full-matrix to a half-matrix</tt> </tt> <a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-comment"># For instance: two entries ('A','C'):13 and ('C','A'):20 will be summed</tt> </tt> <a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># into ('A','C'): 33 and the index ('C','A') will be deleted</tt> </tt> <a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># alphabet.letters:('A','A') and ('C','C') will remain the same.</tt> </tt> <a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">N</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-76', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="Bio.Alphabet.Alphabet.letters Bio.Alphabet.IUPAC.ExtendedIUPACDNA.letters Bio.Alphabet.IUPAC.ExtendedIUPACProtein.letters Bio.Alphabet.IUPAC.IUPACAmbiguousDNA.letters Bio.Alphabet.IUPAC.IUPACAmbiguousRNA.letters Bio.Alphabet.IUPAC.IUPACProtein.letters Bio.Alphabet.IUPAC.IUPACUnambiguousDNA.letters Bio.Alphabet.IUPAC.IUPACUnambiguousRNA.letters Bio.Alphabet.Reduced.HPModel.letters Bio.Alphabet.Reduced.Murphy10.letters Bio.Alphabet.Reduced.Murphy15.letters Bio.Alphabet.Reduced.Murphy4.letters Bio.Alphabet.Reduced.Murphy8.letters Bio.Alphabet.Reduced.PC5.letters Bio.Alphabet.SecondaryStructure.letters Bio.Alphabet.SingleLetterAlphabet.letters Bio.Alphabet.ThreeLetterProtein.letters Bio.NeuralNetwork.Gene.Schema.SchemaDNAAlphabet.letters Bio.SeqUtils.ProteinX.letters" class="py-name" href="#" onclick="return doclink('link-77', 'letters', 'link-29');">letters</a></tt><tt class="py-op">)</tt> </tt> <a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-comment"># Do nothing if this is already a half-matrix</tt> </tt> <a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">N</tt><tt class="py-op">*</tt><tt class="py-op">(</tt><tt class="py-name">N</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-number">2</tt><tt class="py-op">:</tt> </tt> <a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt> <a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-78" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-78', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt><tt class="py-op">:</tt> </tt> <a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method Bio.Crystal.Chain.index()=Bio.Crystal.Chain-class.html#index,Method Bio.EUtils.POM.ElementNode.index()=Bio.EUtils.POM.ElementNode-class.html#index,Method Bio.SCOP.Raf.SeqMap.index()=Bio.SCOP.Raf.SeqMap-class.html#index,Method Bio.Seq.MutableSeq.index()=Bio.Seq.MutableSeq-class.html#index"><a title="Bio.Crystal.Chain.index Bio.EUtils.POM.ElementNode.index Bio.SCOP.Raf.SeqMap.index Bio.Seq.MutableSeq.index" class="py-name" href="#" onclick="return doclink('link-79', 'index', 'link-79');">index</a></tt><tt class="py-op">(</tt><tt id="link-80" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-80', 'i', 'link-18');">i</a></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> <a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-81" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-81', 'i', 'link-18');">i</a></tt> <tt class="py-op"><></tt> <tt class="py-name">j</tt><tt class="py-op">:</tt> </tt> <a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">,</tt><tt id="link-82" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-82', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">,</tt><tt id="link-83" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-83', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-84" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-84', 'i', 'link-18');">i</a></tt><tt class="py-op">,</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> </tt> <a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-85" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-85', 'i', 'link-18');">i</a></tt><tt class="py-op">,</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> </tt> </div><a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> </tt> <a name="SeqMat._init_zero"></a><div id="SeqMat._init_zero-def"><a name="L228"></a><tt class="py-lineno">228</tt> <a class="py-toggle" href="#" id="SeqMat._init_zero-toggle" onclick="return toggle('SeqMat._init_zero');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#_init_zero">_init_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat._init_zero-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat._init_zero-expanded"><a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-86" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-86', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt><tt class="py-op">:</tt> </tt> <a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="Bio.Crystal.Chain.index Bio.EUtils.POM.ElementNode.index Bio.SCOP.Raf.SeqMap.index Bio.Seq.MutableSeq.index" class="py-name" href="#" onclick="return doclink('link-87', 'index', 'link-79');">index</a></tt><tt class="py-op">(</tt><tt id="link-88" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-88', 'i', 'link-18');">i</a></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> <a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">,</tt><tt id="link-89" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-89', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0.</tt> </tt> </div><a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> </tt> <a name="SeqMat.make_relative_entropy"></a><div id="SeqMat.make_relative_entropy-def"><a name="L233"></a><tt class="py-lineno">233</tt> <a class="py-toggle" href="#" id="SeqMat.make_relative_entropy-toggle" onclick="return toggle('SeqMat.make_relative_entropy');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#make_relative_entropy">make_relative_entropy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">obs_freq_mat</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat.make_relative_entropy-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat.make_relative_entropy-expanded"><a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-docstring">"""if this matrix is a log-odds matrix, return its entropy</tt> </tt> <a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"> Needs the observed frequency matrix for that"""</tt> </tt> <a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">ent</tt> <tt class="py-op">=</tt> <tt class="py-number">0.</tt> </tt> <a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mat_type</tt> <tt class="py-op">==</tt> <tt id="link-90" class="py-name"><a title="Bio.SubsMat.LO" class="py-name" href="#" onclick="return doclink('link-90', 'LO', 'link-13');">LO</a></tt><tt class="py-op">:</tt> </tt> <a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-91" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-91', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-92', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">ent</tt> <tt class="py-op">+=</tt> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">[</tt><tt id="link-93" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-93', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">*</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-94" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-94', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">/</tt><tt id="link-95" class="py-name"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-95', 'log', 'link-6');">log</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt> <a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mat_type</tt> <tt class="py-op">==</tt> <tt id="link-96" class="py-name"><a title="Bio.SubsMat.SUBS" class="py-name" href="#" onclick="return doclink('link-96', 'SUBS', 'link-11');">SUBS</a></tt><tt class="py-op">:</tt> </tt> <a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-97" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-97', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-98', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-99" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-99', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt id="link-100" class="py-name"><a title="Bio.SubsMat.EPSILON" class="py-name" href="#" onclick="return doclink('link-100', 'EPSILON', 'link-14');">EPSILON</a></tt><tt class="py-op">:</tt> </tt> <a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">ent</tt> <tt class="py-op">+=</tt> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">[</tt><tt id="link-101" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-101', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">*</tt><tt id="link-102" class="py-name"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-102', 'log', 'link-6');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-103" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-103', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt id="link-104" class="py-name"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-104', 'log', 'link-6');">log</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt> <a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">,</tt><tt class="py-string">"entropy: substitution or log-odds matrices only"</tt> </tt> <a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">relative_entropy</tt> <tt class="py-op">=</tt> <tt class="py-name">ent</tt> </tt> </div><a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-comment">#</tt> </tt> <a name="SeqMat.make_entropy"></a><div id="SeqMat.make_entropy-def"><a name="L248"></a><tt class="py-lineno">248</tt> <a class="py-toggle" href="#" id="SeqMat.make_entropy-toggle" onclick="return toggle('SeqMat.make_entropy');">-</a><tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#make_entropy">make_entropy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat.make_entropy-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat.make_entropy-expanded"><a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entropy</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt> <a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-105" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-105', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-106', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-107" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-107', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt id="link-108" class="py-name"><a title="Bio.SubsMat.EPSILON" class="py-name" href="#" onclick="return doclink('link-108', 'EPSILON', 'link-14');">EPSILON</a></tt><tt class="py-op">:</tt> </tt> <a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entropy</tt> <tt class="py-op">+=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-109" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-109', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">*</tt><tt id="link-110" class="py-name"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-110', 'log', 'link-6');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-111" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-111', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt id="link-112" class="py-name"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-112', 'log', 'link-6');">log</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt> <a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entropy</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entropy</tt> </tt> </div><a name="SeqMat.letter_sum"></a><div id="SeqMat.letter_sum-def"><a name="L254"></a><tt class="py-lineno">254</tt> <a class="py-toggle" href="#" id="SeqMat.letter_sum-toggle" onclick="return toggle('SeqMat.letter_sum');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#letter_sum">letter_sum</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">letter</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat.letter_sum-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat.letter_sum-expanded"><a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">letter</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-113', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="Bio.Alphabet.Alphabet.letters Bio.Alphabet.IUPAC.ExtendedIUPACDNA.letters Bio.Alphabet.IUPAC.ExtendedIUPACProtein.letters Bio.Alphabet.IUPAC.IUPACAmbiguousDNA.letters Bio.Alphabet.IUPAC.IUPACAmbiguousRNA.letters Bio.Alphabet.IUPAC.IUPACProtein.letters Bio.Alphabet.IUPAC.IUPACUnambiguousDNA.letters Bio.Alphabet.IUPAC.IUPACUnambiguousRNA.letters Bio.Alphabet.Reduced.HPModel.letters Bio.Alphabet.Reduced.Murphy10.letters Bio.Alphabet.Reduced.Murphy15.letters Bio.Alphabet.Reduced.Murphy4.letters Bio.Alphabet.Reduced.Murphy8.letters Bio.Alphabet.Reduced.PC5.letters Bio.Alphabet.SecondaryStructure.letters Bio.Alphabet.SingleLetterAlphabet.letters Bio.Alphabet.ThreeLetterProtein.letters Bio.NeuralNetwork.Gene.Schema.SchemaDNAAlphabet.letters Bio.SeqUtils.ProteinX.letters" class="py-name" href="#" onclick="return doclink('link-114', 'letters', 'link-29');">letters</a></tt> </tt> <a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt id="link-115" class="py-name" targets="Method Bio.Nexus.Nexus.StepMatrix.sum()=Bio.Nexus.Nexus.StepMatrix-class.html#sum,Function Bio.utils.sum()=Bio.utils-module.html#sum"><a title="Bio.Nexus.Nexus.StepMatrix.sum Bio.utils.sum" class="py-name" href="#" onclick="return doclink('link-115', 'sum', 'link-115');">sum</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0.</tt> </tt> <a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-116" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-116', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-117', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">letter</tt> <tt class="py-keyword">in</tt> <tt id="link-118" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-118', 'i', 'link-18');">i</a></tt><tt class="py-op">:</tt> </tt> <a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-119" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-119', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt id="link-120" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-120', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt id="link-121" class="py-name"><a title="Bio.Nexus.Nexus.StepMatrix.sum Bio.utils.sum" class="py-name" href="#" onclick="return doclink('link-121', 'sum', 'link-115');">sum</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-122" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-122', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> </tt> <a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt id="link-123" class="py-name"><a title="Bio.Nexus.Nexus.StepMatrix.sum Bio.utils.sum" class="py-name" href="#" onclick="return doclink('link-123', 'sum', 'link-115');">sum</a></tt> <tt class="py-op">+=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-124" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-124', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">/</tt> <tt class="py-number">2.</tt><tt class="py-op">)</tt> </tt> <a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-125" class="py-name"><a title="Bio.Nexus.Nexus.StepMatrix.sum Bio.utils.sum" class="py-name" href="#" onclick="return doclink('link-125', 'sum', 'link-115');">sum</a></tt> </tt> </div><a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> </tt> <a name="SeqMat.all_letters_sum"></a><div id="SeqMat.all_letters_sum-def"><a name="L265"></a><tt class="py-lineno">265</tt> <a class="py-toggle" href="#" id="SeqMat.all_letters_sum-toggle" onclick="return toggle('SeqMat.all_letters_sum');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#all_letters_sum">all_letters_sum</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat.all_letters_sum-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat.all_letters_sum-expanded"><a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">letter</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-126', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="Bio.Alphabet.Alphabet.letters Bio.Alphabet.IUPAC.ExtendedIUPACDNA.letters Bio.Alphabet.IUPAC.ExtendedIUPACProtein.letters Bio.Alphabet.IUPAC.IUPACAmbiguousDNA.letters Bio.Alphabet.IUPAC.IUPACAmbiguousRNA.letters Bio.Alphabet.IUPAC.IUPACProtein.letters Bio.Alphabet.IUPAC.IUPACUnambiguousDNA.letters Bio.Alphabet.IUPAC.IUPACUnambiguousRNA.letters Bio.Alphabet.Reduced.HPModel.letters Bio.Alphabet.Reduced.Murphy10.letters Bio.Alphabet.Reduced.Murphy15.letters Bio.Alphabet.Reduced.Murphy4.letters Bio.Alphabet.Reduced.Murphy8.letters Bio.Alphabet.Reduced.PC5.letters Bio.Alphabet.SecondaryStructure.letters Bio.Alphabet.SingleLetterAlphabet.letters Bio.Alphabet.ThreeLetterProtein.letters Bio.NeuralNetwork.Gene.Schema.SchemaDNAAlphabet.letters Bio.SeqUtils.ProteinX.letters" class="py-name" href="#" onclick="return doclink('link-127', 'letters', 'link-29');">letters</a></tt><tt class="py-op">:</tt> </tt> <a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sum_letters</tt><tt class="py-op">[</tt><tt class="py-name">letter</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method Bio.SubsMat.SeqMat.letter_sum()=Bio.SubsMat.SeqMat-class.html#letter_sum"><a title="Bio.SubsMat.SeqMat.letter_sum" class="py-name" href="#" onclick="return doclink('link-128', 'letter_sum', 'link-128');">letter_sum</a></tt><tt class="py-op">(</tt><tt class="py-name">letter</tt><tt class="py-op">)</tt> </tt> </div><a name="SeqMat.print_full_mat"></a><div id="SeqMat.print_full_mat-def"><a name="L268"></a><tt class="py-lineno">268</tt> <a class="py-toggle" href="#" id="SeqMat.print_full_mat-toggle" onclick="return toggle('SeqMat.print_full_mat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#print_full_mat">print_full_mat</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">f</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-param">format</tt><tt class="py-op">=</tt><tt class="py-string">"%4d"</tt><tt class="py-op">,</tt><tt class="py-param">topformat</tt><tt class="py-op">=</tt><tt class="py-string">"%4s"</tt><tt class="py-op">,</tt> </tt> <a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-param">alphabet</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-param">factor</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-param">non_sym</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat.print_full_mat-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat.print_full_mat-expanded"><a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt> <tt class="py-keyword">or</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt> </tt> <a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-comment"># create a temporary dictionary, which holds the full matrix for</tt> </tt> <a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-comment"># printing</tt> </tt> <a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">assert</tt> <tt class="py-name">non_sym</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt id="link-129" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-129', 'type', 'link-32');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">non_sym</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-130" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-130', 'type', 'link-32');">type</a></tt><tt class="py-op">(</tt><tt class="py-number">1.</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> \ </tt> <a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt id="link-131" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-131', 'type', 'link-32');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">non_sym</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-132" class="py-name"><a title="Bio.GenBank.LocationParser.Integer.type Bio.GenBank.LocationParser.Symbol.type Bio.GenBank.LocationParser.UnsignedInteger.type" class="py-name" href="#" onclick="return doclink('link-132', 'type', 'link-32');">type</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt> <a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-name">full_mat</tt> <tt class="py-op">=</tt> <tt id="link-133" class="py-name"><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-133', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><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-134', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt> <a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-135" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-135', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> </tt> <a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-136" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-136', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op"><></tt> <tt id="link-137" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-137', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-name">full_mat</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt id="link-138" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-138', 'i', 'link-18');">i</a></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-139" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-139', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">full_mat</tt><tt class="py-op">[</tt><tt id="link-140" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-140', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> </tt> <a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-141" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-141', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">:</tt> </tt> <a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt id="link-142" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-142', 'alphabet', 'link-28');">alphabet</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt> </tt> <a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-name">topline</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt> <a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-143" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-143', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt id="link-144" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-144', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">:</tt> </tt> <a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-name">topline</tt> <tt class="py-op">=</tt> <tt class="py-name">topline</tt> <tt class="py-op">+</tt> <tt class="py-name">topformat</tt> <tt class="py-op">%</tt> <tt id="link-145" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-145', 'i', 'link-18');">i</a></tt> </tt> <a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">topline</tt> <tt class="py-op">=</tt> <tt class="py-name">topline</tt> <tt class="py-op">+</tt> <tt class="py-string">'\n'</tt> </tt> <a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name" targets="Method Bio.AlignAce.Motif.Motif.write()=Bio.AlignAce.Motif.Motif-class.html#write,Function Bio.AlignIO.write()=Bio.AlignIO-module.html#write,Method Bio.EUtils.sourcegen.SourceFile.write()=Bio.EUtils.sourcegen.SourceFile-class.html#write,Method Bio.EUtils.sourcegen.SourceGen.write()=Bio.EUtils.sourcegen.SourceGen-class.html#write,Method Bio.NeuralNetwork.Gene.Pattern.PatternIO.write()=Bio.NeuralNetwork.Gene.Pattern.PatternIO-class.html#write,Function Bio.SeqIO.write()=Bio.SeqIO-module.html#write,Method Bio.Writer.Writer.write()=Bio.Writer.Writer-class.html#write,Method Bio.writers.SeqRecord.embl.WriteEmbl.write()=Bio.writers.SeqRecord.embl.WriteEmbl-class.html#write,Method Bio.writers.SeqRecord.fasta.WriteFasta.write()=Bio.writers.SeqRecord.fasta.WriteFasta-class.html#write"><a title="Bio.AlignAce.Motif.Motif.write Bio.AlignIO.write Bio.EUtils.sourcegen.SourceFile.write Bio.EUtils.sourcegen.SourceGen.write Bio.NeuralNetwork.Gene.Pattern.PatternIO.write Bio.SeqIO.write Bio.Writer.Writer.write Bio.writers.SeqRecord.embl.WriteEmbl.write Bio.writers.SeqRecord.fasta.WriteFasta.write" class="py-name" href="#" onclick="return doclink('link-146', 'write', 'link-146');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">topline</tt><tt class="py-op">)</tt> </tt> <a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-147" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-147', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt id="link-148" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-148', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">:</tt> </tt> <a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-name">outline</tt> <tt class="py-op">=</tt> <tt id="link-149" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-149', 'i', 'link-18');">i</a></tt> </tt> <a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt id="link-150" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-150', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">:</tt> </tt> <a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-151" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-151', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="Bio.Crystal.Chain.index Bio.EUtils.POM.ElementNode.index Bio.SCOP.Raf.SeqMap.index Bio.Seq.MutableSeq.index" class="py-name" href="#" onclick="return doclink('link-152', 'index', 'link-79');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">j</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt id="link-153" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-153', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="Bio.Crystal.Chain.index Bio.EUtils.POM.ElementNode.index Bio.SCOP.Raf.SeqMap.index Bio.Seq.MutableSeq.index" class="py-name" href="#" onclick="return doclink('link-154', 'index', 'link-79');">index</a></tt><tt class="py-op">(</tt><tt id="link-155" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-155', 'i', 'link-18');">i</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">non_sym</tt> <tt class="py-op"><></tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt> <a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">non_sym</tt> </tt> <a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">full_mat</tt><tt class="py-op">[</tt><tt id="link-156" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-156', 'i', 'link-18');">i</a></tt><tt class="py-op">,</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> </tt> <a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">*=</tt> <tt class="py-name">factor</tt> </tt> <a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">val</tt> <tt class="py-op"><=</tt> <tt class="py-op">-</tt><tt class="py-number">999</tt><tt class="py-op">:</tt> </tt> <a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-name">cur_str</tt> <tt class="py-op">=</tt> <tt class="py-string">' ND'</tt> </tt> <a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-name">cur_str</tt> <tt class="py-op">=</tt> <tt id="link-157" class="py-name" targets="Method Bio.Restriction.Restriction.RestrictionBatch.format()=Bio.Restriction.Restriction.RestrictionBatch-class.html#format,Variable Bio.expressions.blast.ncbiblast.format=Bio.expressions.blast.ncbiblast-module.html#format,Variable Bio.expressions.blast.wublast.format=Bio.expressions.blast.wublast-module.html#format,Variable Bio.expressions.blocks.format=Bio.expressions.blocks-module.html#format,Variable Bio.expressions.embl.embl65.format=Bio.expressions.embl.embl65-module.html#format,Variable Bio.expressions.fasta.format=Bio.expressions.fasta-module.html#format,Variable Bio.expressions.genbank.format=Bio.expressions.genbank-module.html#format,Variable Bio.expressions.hmmpfam.format=Bio.expressions.hmmpfam-module.html#format,Variable Bio.expressions.swissprot.ipi.format=Bio.expressions.swissprot.ipi-module.html#format,Variable Bio.expressions.swissprot.speclist.format=Bio.expressions.swissprot.speclist-module.html#format,Variable Bio.expressions.swissprot.sprot38.format=Bio.expressions.swissprot.sprot38-module.html#format,Variable Bio.expressions.swissprot.sprot40.format=Bio.expressions.swissprot.sprot40-module.html#format,Variable Bio.expressions.transfac.format=Bio.expressions.transfac-module.html#format,Variable Martel.test.test_swissprot38.format=Martel.test.test_swissprot38-module.html#format,Variable Martel.test.testformats.swissprot38.format=Martel.test.testformats.swissprot38-module.html#format"><a title="Bio.Restriction.Restriction.RestrictionBatch.format Bio.expressions.blast.ncbiblast.format Bio.expressions.blast.wublast.format Bio.expressions.blocks.format Bio.expressions.embl.embl65.format Bio.expressions.fasta.format Bio.expressions.genbank.format Bio.expressions.hmmpfam.format Bio.expressions.swissprot.ipi.format Bio.expressions.swissprot.speclist.format Bio.expressions.swissprot.sprot38.format Bio.expressions.swissprot.sprot40.format Bio.expressions.transfac.format Martel.test.test_swissprot38.format Martel.test.testformats.swissprot38.format" class="py-name" href="#" onclick="return doclink('link-157', 'format', 'link-157');">format</a></tt> <tt class="py-op">%</tt> <tt class="py-name">val</tt> </tt> <a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> </tt> <a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-name">outline</tt> <tt class="py-op">=</tt> <tt class="py-name">outline</tt><tt class="py-op">+</tt><tt class="py-name">cur_str</tt> </tt> <a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-name">outline</tt> <tt class="py-op">=</tt> <tt class="py-name">outline</tt><tt class="py-op">+</tt><tt class="py-string">'\n'</tt> </tt> <a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="Bio.AlignAce.Motif.Motif.write Bio.AlignIO.write Bio.EUtils.sourcegen.SourceFile.write Bio.EUtils.sourcegen.SourceGen.write Bio.NeuralNetwork.Gene.Pattern.PatternIO.write Bio.SeqIO.write Bio.Writer.Writer.write Bio.writers.SeqRecord.embl.WriteEmbl.write Bio.writers.SeqRecord.fasta.WriteFasta.write" class="py-name" href="#" onclick="return doclink('link-158', 'write', 'link-146');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">outline</tt><tt class="py-op">)</tt> </tt> </div><a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> </tt> <a name="SeqMat.print_mat"></a><div id="SeqMat.print_mat-def"><a name="L303"></a><tt class="py-lineno">303</tt> <a class="py-toggle" href="#" id="SeqMat.print_mat-toggle" onclick="return toggle('SeqMat.print_mat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#print_mat">print_mat</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">f</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-param">format</tt><tt class="py-op">=</tt><tt class="py-string">"%4d"</tt><tt class="py-op">,</tt><tt class="py-param">bottomformat</tt><tt class="py-op">=</tt><tt class="py-string">"%4s"</tt><tt class="py-op">,</tt> </tt> <a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-param">alphabet</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-param">factor</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat.print_mat-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat.print_mat-expanded"><a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-docstring">"""Print a nice half-matrix. f=sys.stdout to see on the screen</tt> </tt> <a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"><tt class="py-docstring"> User may pass own alphabet, which should contain all letters in the</tt> </tt> <a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"><tt class="py-docstring"> alphabet of the matrix, but may be in a different order. This</tt> </tt> <a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"><tt class="py-docstring"> order will be the order of the letters on the axes"""</tt> </tt> <a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> </tt> <a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt> <tt class="py-keyword">or</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt> </tt> <a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-159" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-159', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">:</tt> </tt> <a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt id="link-160" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-160', 'alphabet', 'link-28');">alphabet</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt> </tt> <a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">bottomline</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt> <a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-161" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-161', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt id="link-162" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-162', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">:</tt> </tt> <a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-name">bottomline</tt> <tt class="py-op">=</tt> <tt class="py-name">bottomline</tt> <tt class="py-op">+</tt> <tt class="py-name">bottomformat</tt> <tt class="py-op">%</tt> <tt id="link-163" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-163', 'i', 'link-18');">i</a></tt> </tt> <a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-name">bottomline</tt> <tt class="py-op">=</tt> <tt class="py-name">bottomline</tt> <tt class="py-op">+</tt> <tt class="py-string">'\n'</tt> </tt> <a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-164" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-164', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt id="link-165" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-165', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">:</tt> </tt> <a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-name">outline</tt> <tt class="py-op">=</tt> <tt id="link-166" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-166', 'i', 'link-18');">i</a></tt> </tt> <a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt id="link-167" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-167', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt id="link-168" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-168', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="Bio.Crystal.Chain.index Bio.EUtils.POM.ElementNode.index Bio.SCOP.Raf.SeqMap.index Bio.Seq.MutableSeq.index" class="py-name" href="#" onclick="return doclink('link-169', 'index', 'link-79');">index</a></tt><tt class="py-op">(</tt><tt id="link-170" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-170', 'i', 'link-18');">i</a></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> <a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt> <a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">,</tt><tt id="link-171" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-171', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> </tt> <a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt> <a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-172" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-172', 'i', 'link-18');">i</a></tt><tt class="py-op">,</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> </tt> <a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">*=</tt> <tt class="py-name">factor</tt> </tt> <a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">val</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">999</tt><tt class="py-op">:</tt> </tt> <a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">cur_str</tt> <tt class="py-op">=</tt> <tt class="py-string">' ND'</tt> </tt> <a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-name">cur_str</tt> <tt class="py-op">=</tt> <tt id="link-173" class="py-name"><a title="Bio.Restriction.Restriction.RestrictionBatch.format Bio.expressions.blast.ncbiblast.format Bio.expressions.blast.wublast.format Bio.expressions.blocks.format Bio.expressions.embl.embl65.format Bio.expressions.fasta.format Bio.expressions.genbank.format Bio.expressions.hmmpfam.format Bio.expressions.swissprot.ipi.format Bio.expressions.swissprot.speclist.format Bio.expressions.swissprot.sprot38.format Bio.expressions.swissprot.sprot40.format Bio.expressions.transfac.format Martel.test.test_swissprot38.format Martel.test.testformats.swissprot38.format" class="py-name" href="#" onclick="return doclink('link-173', 'format', 'link-157');">format</a></tt> <tt class="py-op">%</tt> <tt class="py-name">val</tt> </tt> <a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> </tt> <a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-name">outline</tt> <tt class="py-op">=</tt> <tt class="py-name">outline</tt><tt class="py-op">+</tt><tt class="py-name">cur_str</tt> </tt> <a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-name">outline</tt> <tt class="py-op">=</tt> <tt class="py-name">outline</tt><tt class="py-op">+</tt><tt class="py-string">'\n'</tt> </tt> <a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="Bio.AlignAce.Motif.Motif.write Bio.AlignIO.write Bio.EUtils.sourcegen.SourceFile.write Bio.EUtils.sourcegen.SourceGen.write Bio.NeuralNetwork.Gene.Pattern.PatternIO.write Bio.SeqIO.write Bio.Writer.Writer.write Bio.writers.SeqRecord.embl.WriteEmbl.write Bio.writers.SeqRecord.fasta.WriteFasta.write" class="py-name" href="#" onclick="return doclink('link-174', 'write', 'link-146');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">outline</tt><tt class="py-op">)</tt> </tt> <a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="Bio.AlignAce.Motif.Motif.write Bio.AlignIO.write Bio.EUtils.sourcegen.SourceFile.write Bio.EUtils.sourcegen.SourceGen.write Bio.NeuralNetwork.Gene.Pattern.PatternIO.write Bio.SeqIO.write Bio.Writer.Writer.write Bio.writers.SeqRecord.embl.WriteEmbl.write Bio.writers.SeqRecord.fasta.WriteFasta.write" class="py-name" href="#" onclick="return doclink('link-175', 'write', 'link-146');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">bottomline</tt><tt class="py-op">)</tt> </tt> </div><a name="SeqMat.__sub__"></a><div id="SeqMat.__sub__-def"><a name="L334"></a><tt class="py-lineno">334</tt> <a class="py-toggle" href="#" id="SeqMat.__sub__-toggle" onclick="return toggle('SeqMat.__sub__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#__sub__">__sub__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat.__sub__-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat.__sub__-expanded"><a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-docstring">""" returns a number which is the subtraction product of the two matrices"""</tt> </tt> <a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-name">mat_diff</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt> <a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-176" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-176', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-177', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">mat_diff</tt> <tt class="py-op">+=</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">[</tt><tt id="link-178" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-178', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">-</tt> <tt class="py-name">other</tt><tt class="py-op">[</tt><tt id="link-179" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-179', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> <a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">mat_diff</tt> </tt> </div><a name="SeqMat.__mul__"></a><div id="SeqMat.__mul__-def"><a name="L340"></a><tt class="py-lineno">340</tt> <a class="py-toggle" href="#" id="SeqMat.__mul__-toggle" onclick="return toggle('SeqMat.__mul__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#__mul__">__mul__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt><tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat.__mul__-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat.__mul__-expanded"><a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-docstring">""" returns a matrix for which each entry is the multiplication product of the</tt> </tt> <a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"><tt class="py-docstring"> two matrices passed"""</tt> </tt> <a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-name">new_mat</tt> <tt class="py-op">=</tt> <tt id="link-180" class="py-name"><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-180', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><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-181', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt> <a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-182" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-182', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-183', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">new_mat</tt><tt class="py-op">[</tt><tt id="link-184" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-184', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">*=</tt> <tt class="py-name">other</tt><tt class="py-op">[</tt><tt id="link-185" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-185', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> </tt> <a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">new_mat</tt> </tt> </div><a name="SeqMat.__sum__"></a><div id="SeqMat.__sum__-def"><a name="L347"></a><tt class="py-lineno">347</tt> <a class="py-toggle" href="#" id="SeqMat.__sum__-toggle" onclick="return toggle('SeqMat.__sum__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat.SeqMat-class.html#__sum__">__sum__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="SeqMat.__sum__-collapsed" style="display:none;" pad="+++" indent="+++++++"></div><div id="SeqMat.__sum__-expanded"><a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-name">new_mat</tt> <tt class="py-op">=</tt> <tt id="link-186" class="py-name"><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-186', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><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-187', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt> <a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-188" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-188', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-189', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-name">new_mat</tt><tt class="py-op">[</tt><tt id="link-190" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-190', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-name">other</tt><tt class="py-op">[</tt><tt id="link-191" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-191', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> </tt> <a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">new_mat</tt> </tt> </div></div><a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> </tt> <a name="_build_obs_freq_mat"></a><div id="_build_obs_freq_mat-def"><a name="L353"></a><tt class="py-lineno">353</tt> <a class="py-toggle" href="#" id="_build_obs_freq_mat-toggle" onclick="return toggle('_build_obs_freq_mat');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat-module.html#_build_obs_freq_mat">_build_obs_freq_mat</a><tt class="py-op">(</tt><tt class="py-param">acc_rep_mat</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="_build_obs_freq_mat-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_build_obs_freq_mat-expanded"><a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt> <a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"><tt class="py-docstring"> build_obs_freq_mat(acc_rep_mat):</tt> </tt> <a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"><tt class="py-docstring"> Build the observed frequency matrix, from an accepted replacements matrix</tt> </tt> <a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"><tt class="py-docstring"> The accRep matrix should be generated by the user.</tt> </tt> <a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-comment"># Note: acc_rep_mat should already be a half_matrix!!</tt> </tt> <a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-192" class="py-name"><a title="Bio.Nexus.Nexus.StepMatrix.sum Bio.utils.sum" class="py-name" href="#" onclick="return doclink('link-192', 'sum', 'link-115');">sum</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0.</tt> </tt> <a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-193" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-193', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">acc_rep_mat</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name" targets="Method Bio.Crystal.Crystal.values()=Bio.Crystal.Crystal-class.html#values,Method Bio.EUtils.MultiDict._BaseMultiDict.values()=Bio.EUtils.MultiDict._BaseMultiDict-class.html#values,Method Bio.GenBank.NCBIDictionary.values()=Bio.GenBank.NCBIDictionary-class.html#values,Method Bio.Mindy.BaseDB.DictLookup.values()=Bio.Mindy.BaseDB.DictLookup-class.html#values,Method Bio.Prosite.ExPASyDictionary.values()=Bio.Prosite.ExPASyDictionary-class.html#values,Method Bio.Prosite.Prodoc.ExPASyDictionary.values()=Bio.Prosite.Prodoc.ExPASyDictionary-class.html#values,Method Bio.PubMed.Dictionary.values()=Bio.PubMed.Dictionary-class.html#values,Method Bio.SwissProt.SProt.ExPASyDictionary.values()=Bio.SwissProt.SProt.ExPASyDictionary-class.html#values,Method Bio.config.Registry.Registry.values()=Bio.config.Registry.Registry-class.html#values,Method BioSQL.BioSeqDatabase.BioSeqDatabase.values()=BioSQL.BioSeqDatabase.BioSeqDatabase-class.html#values,Method BioSQL.BioSeqDatabase.DBServer.values()=BioSQL.BioSeqDatabase.DBServer-class.html#values,Method Martel.Parser.MartelAttributeList.values()=Martel.Parser.MartelAttributeList-class.html#values"><a title="Bio.Crystal.Crystal.values Bio.EUtils.MultiDict._BaseMultiDict.values Bio.GenBank.NCBIDictionary.values Bio.Mindy.BaseDB.DictLookup.values Bio.Prosite.ExPASyDictionary.values Bio.Prosite.Prodoc.ExPASyDictionary.values Bio.PubMed.Dictionary.values Bio.SwissProt.SProt.ExPASyDictionary.values Bio.config.Registry.Registry.values BioSQL.BioSeqDatabase.BioSeqDatabase.values BioSQL.BioSeqDatabase.DBServer.values Martel.Parser.MartelAttributeList.values" class="py-name" href="#" onclick="return doclink('link-194', 'values', 'link-194');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt id="link-195" class="py-name"><a title="Bio.Nexus.Nexus.StepMatrix.sum Bio.utils.sum" class="py-name" href="#" onclick="return doclink('link-195', 'sum', 'link-115');">sum</a></tt> <tt class="py-op">+=</tt> <tt id="link-196" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-196', 'i', 'link-18');">i</a></tt> </tt> <a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-name">obs_freq_mat</tt> <tt class="py-op">=</tt> <tt id="link-197" class="py-name" targets="Class Bio.SubsMat.SeqMat=Bio.SubsMat.SeqMat-class.html"><a title="Bio.SubsMat.SeqMat" class="py-name" href="#" onclick="return doclink('link-197', 'SeqMat', 'link-197');">SeqMat</a></tt><tt class="py-op">(</tt><tt id="link-198" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-198', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">=</tt><tt class="py-name">acc_rep_mat</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-199', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">,</tt><tt class="py-name">build_later</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt> <a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-200" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-200', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">acc_rep_mat</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-201', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">[</tt><tt id="link-202" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-202', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">acc_rep_mat</tt><tt class="py-op">[</tt><tt id="link-203" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-203', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">/</tt><tt id="link-204" class="py-name"><a title="Bio.Nexus.Nexus.StepMatrix.sum Bio.utils.sum" class="py-name" href="#" onclick="return doclink('link-204', 'sum', 'link-115');">sum</a></tt> </tt> <a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">.</tt><tt class="py-name">mat_type</tt> <tt class="py-op">=</tt> <tt id="link-205" class="py-name"><a title="Bio.SubsMat.OBSFREQ" class="py-name" href="#" onclick="return doclink('link-205', 'OBSFREQ', 'link-10');">OBSFREQ</a></tt> </tt> <a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">obs_freq_mat</tt> </tt> </div><a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> </tt> <a name="_exp_freq_table_from_obs_freq"></a><div id="_exp_freq_table_from_obs_freq-def"><a name="L369"></a><tt class="py-lineno">369</tt> <a class="py-toggle" href="#" id="_exp_freq_table_from_obs_freq-toggle" onclick="return toggle('_exp_freq_table_from_obs_freq');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat-module.html#_exp_freq_table_from_obs_freq">_exp_freq_table_from_obs_freq</a><tt class="py-op">(</tt><tt class="py-param">obs_freq_mat</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="_exp_freq_table_from_obs_freq-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_exp_freq_table_from_obs_freq-expanded"><a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">exp_freq_table</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt> <a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-206" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-206', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-207', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="Bio.Alphabet.Alphabet.letters Bio.Alphabet.IUPAC.ExtendedIUPACDNA.letters Bio.Alphabet.IUPAC.ExtendedIUPACProtein.letters Bio.Alphabet.IUPAC.IUPACAmbiguousDNA.letters Bio.Alphabet.IUPAC.IUPACAmbiguousRNA.letters Bio.Alphabet.IUPAC.IUPACProtein.letters Bio.Alphabet.IUPAC.IUPACUnambiguousDNA.letters Bio.Alphabet.IUPAC.IUPACUnambiguousRNA.letters Bio.Alphabet.Reduced.HPModel.letters Bio.Alphabet.Reduced.Murphy10.letters Bio.Alphabet.Reduced.Murphy15.letters Bio.Alphabet.Reduced.Murphy4.letters Bio.Alphabet.Reduced.Murphy8.letters Bio.Alphabet.Reduced.PC5.letters Bio.Alphabet.SecondaryStructure.letters Bio.Alphabet.SingleLetterAlphabet.letters Bio.Alphabet.ThreeLetterProtein.letters Bio.NeuralNetwork.Gene.Schema.SchemaDNAAlphabet.letters Bio.SeqUtils.ProteinX.letters" class="py-name" href="#" onclick="return doclink('link-208', 'letters', 'link-29');">letters</a></tt><tt class="py-op">:</tt> </tt> <a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-name">exp_freq_table</tt><tt class="py-op">[</tt><tt id="link-209" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-209', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0.</tt> </tt> <a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-210" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-210', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-211', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-212" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-212', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt id="link-213" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-213', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-name">exp_freq_table</tt><tt class="py-op">[</tt><tt id="link-214" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-214', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">[</tt><tt id="link-215" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-215', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> </tt> <a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-name">exp_freq_table</tt><tt class="py-op">[</tt><tt id="link-216" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-216', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">[</tt><tt id="link-217" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-217', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">/</tt> <tt class="py-number">2.</tt> </tt> <a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-name">exp_freq_table</tt><tt class="py-op">[</tt><tt id="link-218" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-218', 'i', 'link-18');">i</a></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 class="py-name">obs_freq_mat</tt><tt class="py-op">[</tt><tt id="link-219" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-219', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">/</tt> <tt class="py-number">2.</tt> </tt> <a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-220" class="py-name"><a title="Bio.SubsMat.FreqTable Bio.SubsMat.FreqTable.FreqTable" class="py-name" href="#" onclick="return doclink('link-220', 'FreqTable', 'link-5');">FreqTable</a></tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="Bio.SubsMat.FreqTable Bio.SubsMat.FreqTable.FreqTable" class="py-name" href="#" onclick="return doclink('link-221', 'FreqTable', 'link-5');">FreqTable</a></tt><tt class="py-op">(</tt><tt class="py-name">exp_freq_table</tt><tt class="py-op">,</tt><tt id="link-222" class="py-name"><a title="Bio.SubsMat.FreqTable Bio.SubsMat.FreqTable.FreqTable" class="py-name" href="#" onclick="return doclink('link-222', 'FreqTable', 'link-5');">FreqTable</a></tt><tt class="py-op">.</tt><tt id="link-223" class="py-name" targets="Variable Bio.SubsMat.FreqTable.FREQ=Bio.SubsMat.FreqTable-module.html#FREQ"><a title="Bio.SubsMat.FreqTable.FREQ" class="py-name" href="#" onclick="return doclink('link-223', 'FREQ', 'link-223');">FREQ</a></tt><tt class="py-op">)</tt> </tt> </div><a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> </tt> <a name="_build_exp_freq_mat"></a><div id="_build_exp_freq_mat-def"><a name="L381"></a><tt class="py-lineno">381</tt> <a class="py-toggle" href="#" id="_build_exp_freq_mat-toggle" onclick="return toggle('_build_exp_freq_mat');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat-module.html#_build_exp_freq_mat">_build_exp_freq_mat</a><tt class="py-op">(</tt><tt class="py-param">exp_freq_table</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="_build_exp_freq_mat-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_build_exp_freq_mat-expanded"><a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-docstring">"""Build an expected frequency matrix</tt> </tt> <a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"><tt class="py-docstring"> exp_freq_table: should be a FreqTable instance</tt> </tt> <a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">exp_freq_mat</tt> <tt class="py-op">=</tt> <tt id="link-224" class="py-name"><a title="Bio.SubsMat.SeqMat" class="py-name" href="#" onclick="return doclink('link-224', 'SeqMat', 'link-197');">SeqMat</a></tt><tt class="py-op">(</tt><tt id="link-225" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-225', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">=</tt><tt class="py-name">exp_freq_table</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-226', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">,</tt><tt class="py-name">build_later</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt> <a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-227" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-227', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">exp_freq_mat</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-228', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-229" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-229', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt id="link-230" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-230', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-name">exp_freq_mat</tt><tt class="py-op">[</tt><tt id="link-231" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-231', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">exp_freq_table</tt><tt class="py-op">[</tt><tt id="link-232" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-232', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">**</tt><tt class="py-number">2</tt> </tt> <a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-name">exp_freq_mat</tt><tt class="py-op">[</tt><tt id="link-233" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-233', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">2.0</tt><tt class="py-op">*</tt><tt class="py-name">exp_freq_table</tt><tt class="py-op">[</tt><tt id="link-234" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-234', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">*</tt><tt class="py-name">exp_freq_table</tt><tt class="py-op">[</tt><tt id="link-235" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-235', 'i', 'link-18');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt> <a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">exp_freq_mat</tt><tt class="py-op">.</tt><tt class="py-name">mat_type</tt> <tt class="py-op">=</tt> <tt id="link-236" class="py-name"><a title="Bio.SubsMat.EXPFREQ" class="py-name" href="#" onclick="return doclink('link-236', 'EXPFREQ', 'link-12');">EXPFREQ</a></tt> </tt> <a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">exp_freq_mat</tt> </tt> </div><a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt> <a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Build the substitution matrix</tt> </tt> <a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt> <a name="_build_subs_mat"></a><div id="_build_subs_mat-def"><a name="L396"></a><tt class="py-lineno">396</tt> <a class="py-toggle" href="#" id="_build_subs_mat-toggle" onclick="return toggle('_build_subs_mat');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat-module.html#_build_subs_mat">_build_subs_mat</a><tt class="py-op">(</tt><tt class="py-param">obs_freq_mat</tt><tt class="py-op">,</tt><tt class="py-param">exp_freq_mat</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="_build_subs_mat-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_build_subs_mat-expanded"><a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-docstring">""" Build the substitution matrix """</tt> </tt> <a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt> <tt class="py-op"><></tt> <tt class="py-name">exp_freq_mat</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt><tt class="py-op">:</tt> </tt> <a name="L399"></a><tt class="py-lineno">399</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">"Alphabet mismatch in passed matrices"</tt> </tt> <a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-name">subs_mat</tt> <tt class="py-op">=</tt> <tt id="link-237" class="py-name"><a title="Bio.SubsMat.SeqMat" class="py-name" href="#" onclick="return doclink('link-237', 'SeqMat', 'link-197');">SeqMat</a></tt><tt class="py-op">(</tt><tt class="py-name">obs_freq_mat</tt><tt class="py-op">)</tt> </tt> <a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-238" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-238', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-239', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-name">subs_mat</tt><tt class="py-op">[</tt><tt id="link-240" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-240', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">obs_freq_mat</tt><tt class="py-op">[</tt><tt id="link-241" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-241', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">/</tt><tt class="py-name">exp_freq_mat</tt><tt class="py-op">[</tt><tt id="link-242" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-242', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> </tt> <a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> </tt> <a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-name">subs_mat</tt><tt class="py-op">.</tt><tt class="py-name">mat_type</tt> <tt class="py-op">=</tt> <tt id="link-243" class="py-name"><a title="Bio.SubsMat.SUBS" class="py-name" href="#" onclick="return doclink('link-243', 'SUBS', 'link-11');">SUBS</a></tt> </tt> <a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">subs_mat</tt> </tt> </div><a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> </tt> <a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt> <a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Build a log-odds matrix</tt> </tt> <a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt> <a name="_build_log_odds_mat"></a><div id="_build_log_odds_mat-def"><a name="L410"></a><tt class="py-lineno">410</tt> <a class="py-toggle" href="#" id="_build_log_odds_mat-toggle" onclick="return toggle('_build_log_odds_mat');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat-module.html#_build_log_odds_mat">_build_log_odds_mat</a><tt class="py-op">(</tt><tt class="py-param">subs_mat</tt><tt class="py-op">,</tt><tt class="py-param">logbase</tt><tt class="py-op">=</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-param">factor</tt><tt class="py-op">=</tt><tt class="py-number">10.0</tt><tt class="py-op">,</tt><tt class="py-param">round_digit</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-param">keep_nd</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="_build_log_odds_mat-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_build_log_odds_mat-expanded"><a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-docstring">"""_build_log_odds_mat(subs_mat,logbase=10,factor=10.0,round_digit=1):</tt> </tt> <a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"><tt class="py-docstring"> Build a log-odds matrix</tt> </tt> <a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"><tt class="py-docstring"> logbase=2: base of logarithm used to build (default 2)</tt> </tt> <a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"><tt class="py-docstring"> factor=10.: a factor by which each matrix entry is multiplied</tt> </tt> <a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"><tt class="py-docstring"> round_digit: roundoff place after decimal point</tt> </tt> <a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"><tt class="py-docstring"> keep_nd: if true, keeps the -999 value for non-determined values (for which there</tt> </tt> <a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"><tt class="py-docstring"> are no substitutions in the frequency substitutions matrix). If false, plants the</tt> </tt> <a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"><tt class="py-docstring"> minimum log-odds value of the matrix in entries containing -999</tt> </tt> <a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-name">lo_mat</tt> <tt class="py-op">=</tt> <tt id="link-244" class="py-name"><a title="Bio.SubsMat.SeqMat" class="py-name" href="#" onclick="return doclink('link-244', 'SeqMat', 'link-197');">SeqMat</a></tt><tt class="py-op">(</tt><tt class="py-name">subs_mat</tt><tt class="py-op">)</tt> </tt> <a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-245" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-245', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">subs_mat</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-246', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">subs_mat</tt><tt class="py-op">[</tt><tt id="link-247" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-247', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op"><</tt> <tt id="link-248" class="py-name"><a title="Bio.SubsMat.EPSILON" class="py-name" href="#" onclick="return doclink('link-248', 'EPSILON', 'link-14');">EPSILON</a></tt><tt class="py-op">:</tt> </tt> <a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">lo_mat</tt><tt class="py-op">[</tt><tt id="link-249" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-249', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">999</tt> </tt> <a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-name">lo_mat</tt><tt class="py-op">[</tt><tt id="link-250" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-250', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-251" class="py-name" targets="Method Bio.Blast.NCBIStandalone._BlastConsumer.round()=Bio.Blast.NCBIStandalone._BlastConsumer-class.html#round,Method Bio.Blast.NCBIStandalone._DescriptionConsumer.round()=Bio.Blast.NCBIStandalone._DescriptionConsumer-class.html#round"><a title="Bio.Blast.NCBIStandalone._BlastConsumer.round Bio.Blast.NCBIStandalone._DescriptionConsumer.round" class="py-name" href="#" onclick="return doclink('link-251', 'round', 'link-251');">round</a></tt><tt class="py-op">(</tt><tt class="py-name">factor</tt><tt class="py-op">*</tt><tt id="link-252" class="py-name"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-252', 'log', 'link-6');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">subs_mat</tt><tt class="py-op">[</tt><tt id="link-253" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-253', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt id="link-254" class="py-name"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-254', 'log', 'link-6');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">logbase</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-name">round_digit</tt><tt class="py-op">)</tt> </tt> <a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-name">lo_mat</tt><tt class="py-op">.</tt><tt class="py-name">mat_type</tt> <tt class="py-op">=</tt> <tt id="link-255" class="py-name"><a title="Bio.SubsMat.LO" class="py-name" href="#" onclick="return doclink('link-255', 'LO', 'link-13');">LO</a></tt> </tt> <a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-name">mat_min</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">lo_mat</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="Bio.Crystal.Crystal.values Bio.EUtils.MultiDict._BaseMultiDict.values Bio.GenBank.NCBIDictionary.values Bio.Mindy.BaseDB.DictLookup.values Bio.Prosite.ExPASyDictionary.values Bio.Prosite.Prodoc.ExPASyDictionary.values Bio.PubMed.Dictionary.values Bio.SwissProt.SProt.ExPASyDictionary.values Bio.config.Registry.Registry.values BioSQL.BioSeqDatabase.BioSeqDatabase.values BioSQL.BioSeqDatabase.DBServer.values Martel.Parser.MartelAttributeList.values" class="py-name" href="#" onclick="return doclink('link-256', 'values', 'link-194');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> <a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">keep_nd</tt><tt class="py-op">:</tt> </tt> <a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-257" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-257', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">lo_mat</tt><tt class="py-op">.</tt><tt id="link-258" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-258', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">lo_mat</tt><tt class="py-op">[</tt><tt id="link-259" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-259', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op"><=</tt> <tt class="py-op">-</tt><tt class="py-number">999</tt><tt class="py-op">:</tt> </tt> <a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">lo_mat</tt><tt class="py-op">[</tt><tt id="link-260" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-260', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">mat_min</tt> </tt> <a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">lo_mat</tt> </tt> </div><a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> </tt> <a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt> <a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># External function. User provides an accepted replacement matrix, and,</tt> </tt> <a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># optionally the following: expected frequency table, log base, mult. factor,</tt> </tt> <a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># and rounding factor. Generates a log-odds matrix, calling internal SubsMat</tt> </tt> <a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># functions.</tt> </tt> <a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt> <a name="make_log_odds_matrix"></a><div id="make_log_odds_matrix-def"><a name="L440"></a><tt class="py-lineno">440</tt> <a class="py-toggle" href="#" id="make_log_odds_matrix-toggle" onclick="return toggle('make_log_odds_matrix');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat-module.html#make_log_odds_matrix">make_log_odds_matrix</a><tt class="py-op">(</tt><tt class="py-param">acc_rep_mat</tt><tt class="py-op">,</tt><tt class="py-param">exp_freq_table</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-param">logbase</tt><tt class="py-op">=</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> </tt> <a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-param">factor</tt><tt class="py-op">=</tt><tt class="py-number">1.</tt><tt class="py-op">,</tt><tt class="py-param">round_digit</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">,</tt><tt class="py-param">keep_nd</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="make_log_odds_matrix-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="make_log_odds_matrix-expanded"><a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-name">obs_freq_mat</tt> <tt class="py-op">=</tt> <tt id="link-261" class="py-name" targets="Function Bio.SubsMat._build_obs_freq_mat()=Bio.SubsMat-module.html#_build_obs_freq_mat"><a title="Bio.SubsMat._build_obs_freq_mat" class="py-name" href="#" onclick="return doclink('link-261', '_build_obs_freq_mat', 'link-261');">_build_obs_freq_mat</a></tt><tt class="py-op">(</tt><tt class="py-name">acc_rep_mat</tt><tt class="py-op">)</tt> </tt> <a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">exp_freq_table</tt><tt class="py-op">:</tt> </tt> <a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-name">exp_freq_table</tt> <tt class="py-op">=</tt> <tt id="link-262" class="py-name" targets="Function Bio.SubsMat._exp_freq_table_from_obs_freq()=Bio.SubsMat-module.html#_exp_freq_table_from_obs_freq"><a title="Bio.SubsMat._exp_freq_table_from_obs_freq" class="py-name" href="#" onclick="return doclink('link-262', '_exp_freq_table_from_obs_freq', 'link-262');">_exp_freq_table_from_obs_freq</a></tt><tt class="py-op">(</tt><tt class="py-name">obs_freq_mat</tt><tt class="py-op">)</tt> </tt> <a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-name">exp_freq_mat</tt> <tt class="py-op">=</tt> <tt id="link-263" class="py-name" targets="Function Bio.SubsMat._build_exp_freq_mat()=Bio.SubsMat-module.html#_build_exp_freq_mat"><a title="Bio.SubsMat._build_exp_freq_mat" class="py-name" href="#" onclick="return doclink('link-263', '_build_exp_freq_mat', 'link-263');">_build_exp_freq_mat</a></tt><tt class="py-op">(</tt><tt class="py-name">exp_freq_table</tt><tt class="py-op">)</tt> </tt> <a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-name">subs_mat</tt> <tt class="py-op">=</tt> <tt id="link-264" class="py-name" targets="Function Bio.SubsMat._build_subs_mat()=Bio.SubsMat-module.html#_build_subs_mat"><a title="Bio.SubsMat._build_subs_mat" class="py-name" href="#" onclick="return doclink('link-264', '_build_subs_mat', 'link-264');">_build_subs_mat</a></tt><tt class="py-op">(</tt><tt class="py-name">obs_freq_mat</tt><tt class="py-op">,</tt> <tt class="py-name">exp_freq_mat</tt><tt class="py-op">)</tt> </tt> <a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-name">lo_mat</tt> <tt class="py-op">=</tt> <tt id="link-265" class="py-name" targets="Function Bio.SubsMat._build_log_odds_mat()=Bio.SubsMat-module.html#_build_log_odds_mat"><a title="Bio.SubsMat._build_log_odds_mat" class="py-name" href="#" onclick="return doclink('link-265', '_build_log_odds_mat', 'link-265');">_build_log_odds_mat</a></tt><tt class="py-op">(</tt><tt class="py-name">subs_mat</tt><tt class="py-op">,</tt><tt class="py-name">logbase</tt><tt class="py-op">,</tt><tt class="py-name">factor</tt><tt class="py-op">,</tt><tt class="py-name">round_digit</tt><tt class="py-op">,</tt><tt class="py-name">keep_nd</tt><tt class="py-op">)</tt> </tt> <a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-name">lo_mat</tt><tt class="py-op">.</tt><tt id="link-266" class="py-name" targets="Method Bio.SubsMat.SeqMat.make_relative_entropy()=Bio.SubsMat.SeqMat-class.html#make_relative_entropy"><a title="Bio.SubsMat.SeqMat.make_relative_entropy" class="py-name" href="#" onclick="return doclink('link-266', 'make_relative_entropy', 'link-266');">make_relative_entropy</a></tt><tt class="py-op">(</tt><tt class="py-name">obs_freq_mat</tt><tt class="py-op">)</tt> </tt> <a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">lo_mat</tt> </tt> </div><a name="observed_frequency_to_substitution_matrix"></a><div id="observed_frequency_to_substitution_matrix-def"><a name="L450"></a><tt class="py-lineno">450</tt> <a class="py-toggle" href="#" id="observed_frequency_to_substitution_matrix-toggle" onclick="return toggle('observed_frequency_to_substitution_matrix');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat-module.html#observed_frequency_to_substitution_matrix">observed_frequency_to_substitution_matrix</a><tt class="py-op">(</tt><tt class="py-param">obs_freq_mat</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="observed_frequency_to_substitution_matrix-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="observed_frequency_to_substitution_matrix-expanded"><a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-name">exp_freq_table</tt> <tt class="py-op">=</tt> <tt id="link-267" class="py-name"><a title="Bio.SubsMat._exp_freq_table_from_obs_freq" class="py-name" href="#" onclick="return doclink('link-267', '_exp_freq_table_from_obs_freq', 'link-262');">_exp_freq_table_from_obs_freq</a></tt><tt class="py-op">(</tt><tt class="py-name">obs_freq_mat</tt><tt class="py-op">)</tt> </tt> <a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">exp_freq_mat</tt> <tt class="py-op">=</tt> <tt id="link-268" class="py-name"><a title="Bio.SubsMat._build_exp_freq_mat" class="py-name" href="#" onclick="return doclink('link-268', '_build_exp_freq_mat', 'link-263');">_build_exp_freq_mat</a></tt><tt class="py-op">(</tt><tt class="py-name">exp_freq_table</tt><tt class="py-op">)</tt> </tt> <a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-name">subs_mat</tt> <tt class="py-op">=</tt> <tt id="link-269" class="py-name"><a title="Bio.SubsMat._build_subs_mat" class="py-name" href="#" onclick="return doclink('link-269', '_build_subs_mat', 'link-264');">_build_subs_mat</a></tt><tt class="py-op">(</tt><tt class="py-name">obs_freq_mat</tt><tt class="py-op">,</tt> <tt class="py-name">exp_freq_mat</tt><tt class="py-op">)</tt> </tt> <a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">subs_mat</tt> </tt> </div><a name="read_text_matrix"></a><div id="read_text_matrix-def"><a name="L455"></a><tt class="py-lineno">455</tt> <a class="py-toggle" href="#" id="read_text_matrix-toggle" onclick="return toggle('read_text_matrix');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat-module.html#read_text_matrix">read_text_matrix</a><tt class="py-op">(</tt><tt class="py-param">data_file</tt><tt class="py-op">,</tt><tt class="py-param">mat_type</tt><tt class="py-op">=</tt><tt id="link-270" class="py-name"><a title="Bio.SubsMat.NOTYPE" class="py-name" href="#" onclick="return doclink('link-270', 'NOTYPE', 'link-8');">NOTYPE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="read_text_matrix-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="read_text_matrix-expanded"><a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt id="link-271" class="py-name" targets="Method Bio.Blast.NCBIStandalone._ParametersConsumer.matrix()=Bio.Blast.NCBIStandalone._ParametersConsumer-class.html#matrix,Variable Bio.MetaTool.metatool_format.matrix=Bio.MetaTool.metatool_format-module.html#matrix,Method Bio.Prosite._RecordConsumer.matrix()=Bio.Prosite._RecordConsumer-class.html#matrix"><a title="Bio.Blast.NCBIStandalone._ParametersConsumer.matrix Bio.MetaTool.metatool_format.matrix Bio.Prosite._RecordConsumer.matrix" class="py-name" href="#" onclick="return doclink('link-271', 'matrix', 'link-271');">matrix</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt> <a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-name">tmp</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt id="link-272" class="py-name" targets="Method Bio.Nexus.Trees.Tree.split()=Bio.Nexus.Trees.Tree-class.html#split,Method Bio.Restriction.Restriction.RestrictionBatch.split()=Bio.Restriction.Restriction.RestrictionBatch-class.html#split"><a title="Bio.Nexus.Trees.Tree.split Bio.Restriction.Restriction.RestrictionBatch.split" class="py-name" href="#" onclick="return doclink('link-272', 'split', 'link-272');">split</a></tt><tt class="py-op">(</tt><tt class="py-name">data_file</tt><tt class="py-op">.</tt><tt id="link-273" class="py-name" targets="Method Bio.AlignAce.Motif.Motif.read()=Bio.AlignAce.Motif.Motif-class.html#read,Function Bio.AlignIO.read()=Bio.AlignIO-module.html#read,Function Bio.Cluster.read()=Bio.Cluster-module.html#read,Method Bio.EUtils.ReseekFile.ReseekFile.read()=Bio.EUtils.ReseekFile.ReseekFile-class.html#read,Function Bio.Entrez.read()=Bio.Entrez-module.html#read,Method Bio.File.SGMLHandle.read()=Bio.File.SGMLHandle-class.html#read,Method Bio.File.UndoHandle.read()=Bio.File.UndoHandle-class.html#read,Method Bio.FilteredReader.FilteredReader.read()=Bio.FilteredReader.FilteredReader-class.html#read,Method Bio.NeuralNetwork.Gene.Pattern.PatternIO.read()=Bio.NeuralNetwork.Gene.Pattern.PatternIO-class.html#read,Method Bio.Nexus.Nexus.Nexus.read()=Bio.Nexus.Nexus.Nexus-class.html#read,Function Bio.Prosite.Prodoc.read()=Bio.Prosite.Prodoc-module.html#read,Function Bio.Prosite.read()=Bio.Prosite-module.html#read,Method Bio.SGMLExtractor.SGMLExtractorHandle.read()=Bio.SGMLExtractor.SGMLExtractorHandle-class.html#read,Function Bio.SeqIO.read()=Bio.SeqIO-module.html#read,Function Bio.SwissProt.read()=Bio.SwissProt-module.html#read"><a title="Bio.AlignAce.Motif.Motif.read Bio.AlignIO.read Bio.Cluster.read Bio.EUtils.ReseekFile.ReseekFile.read Bio.Entrez.read Bio.File.SGMLHandle.read Bio.File.UndoHandle.read Bio.FilteredReader.FilteredReader.read Bio.NeuralNetwork.Gene.Pattern.PatternIO.read Bio.Nexus.Nexus.Nexus.read Bio.Prosite.Prodoc.read Bio.Prosite.read Bio.SGMLExtractor.SGMLExtractorHandle.read Bio.SeqIO.read Bio.SwissProt.read" class="py-name" href="#" onclick="return doclink('link-273', 'read', 'link-273');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt> <a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt id="link-274" class="py-name" targets="Variable Bio.CDD.cdd_format.table=Bio.CDD.cdd_format-module.html#table,Variable Bio.expressions.blast.ncbiblast.table=Bio.expressions.blast.ncbiblast-module.html#table"><a title="Bio.CDD.cdd_format.table Bio.expressions.blast.ncbiblast.table" class="py-name" href="#" onclick="return doclink('link-274', 'table', 'link-274');">table</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt> <a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-275" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-275', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tmp</tt><tt class="py-op">:</tt> </tt> <a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt id="link-276" class="py-name"><a title="Bio.CDD.cdd_format.table Bio.expressions.blast.ncbiblast.table" class="py-name" href="#" onclick="return doclink('link-276', 'table', 'link-274');">table</a></tt><tt class="py-op">.</tt><tt id="link-277" 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-277', 'append', 'link-277');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">.</tt><tt id="link-278" class="py-name"><a title="Bio.Nexus.Trees.Tree.split Bio.Restriction.Restriction.RestrictionBatch.split" class="py-name" href="#" onclick="return doclink('link-278', 'split', 'link-272');">split</a></tt><tt class="py-op">(</tt><tt id="link-279" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-279', 'i', 'link-18');">i</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt> <a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-comment"># remove records beginning with ``#''</tt> </tt> <a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">rec</tt> <tt class="py-keyword">in</tt> <tt id="link-280" class="py-name"><a title="Bio.CDD.cdd_format.table Bio.expressions.blast.ncbiblast.table" class="py-name" href="#" onclick="return doclink('link-280', 'table', 'link-274');">table</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">rec</tt><tt class="py-op">.</tt><tt id="link-281" class="py-name" targets="Method Bio.Crystal.Chain.count()=Bio.Crystal.Chain-class.html#count,Method Bio.NeuralNetwork.Gene.Pattern.PatternRepository.count()=Bio.NeuralNetwork.Gene.Pattern.PatternRepository-class.html#count,Method Bio.Seq.MutableSeq.count()=Bio.Seq.MutableSeq-class.html#count,Method Bio.Seq.Seq.count()=Bio.Seq.Seq-class.html#count,Function Bio.listfns.count()=Bio.listfns-module.html#count"><a title="Bio.Crystal.Chain.count Bio.NeuralNetwork.Gene.Pattern.PatternRepository.count Bio.Seq.MutableSeq.count Bio.Seq.Seq.count Bio.listfns.count" class="py-name" href="#" onclick="return doclink('link-281', 'count', 'link-281');">count</a></tt><tt class="py-op">(</tt><tt class="py-string">'#'</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt id="link-282" class="py-name"><a title="Bio.CDD.cdd_format.table Bio.expressions.blast.ncbiblast.table" class="py-name" href="#" onclick="return doclink('link-282', 'table', 'link-274');">table</a></tt><tt class="py-op">.</tt><tt id="link-283" class="py-name" targets="Method Bio.Crystal.Chain.remove()=Bio.Crystal.Chain-class.html#remove,Method Bio.GFF.GenericTools.TempFile.remove()=Bio.GFF.GenericTools.TempFile-class.html#remove,Method Bio.Graphics.BasicChromosome._ChromosomeComponent.remove()=Bio.Graphics.BasicChromosome._ChromosomeComponent-class.html#remove,Method Bio.Pathway.Rep.HashSet.HashSet.remove()=Bio.Pathway.Rep.HashSet.HashSet-class.html#remove,Method Bio.Restriction.Restriction.RestrictionBatch.remove()=Bio.Restriction.Restriction.RestrictionBatch-class.html#remove,Method Bio.Seq.MutableSeq.remove()=Bio.Seq.MutableSeq-class.html#remove,Method BioSQL.Loader.DatabaseRemover.remove()=BioSQL.Loader.DatabaseRemover-class.html#remove"><a title="Bio.Crystal.Chain.remove Bio.GFF.GenericTools.TempFile.remove Bio.Graphics.BasicChromosome._ChromosomeComponent.remove Bio.Pathway.Rep.HashSet.HashSet.remove Bio.Restriction.Restriction.RestrictionBatch.remove Bio.Seq.MutableSeq.remove BioSQL.Loader.DatabaseRemover.remove" class="py-name" href="#" onclick="return doclink('link-283', 'remove', 'link-283');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">rec</tt><tt class="py-op">)</tt> </tt> <a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> </tt> <a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-comment"># remove null lists</tt> </tt> <a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt id="link-284" class="py-name"><a title="Bio.CDD.cdd_format.table Bio.expressions.blast.ncbiblast.table" class="py-name" href="#" onclick="return doclink('link-284', 'table', 'link-274');">table</a></tt><tt class="py-op">.</tt><tt id="link-285" class="py-name"><a title="Bio.Crystal.Chain.count Bio.NeuralNetwork.Gene.Pattern.PatternRepository.count Bio.Seq.MutableSeq.count Bio.Seq.Seq.count Bio.listfns.count" class="py-name" href="#" onclick="return doclink('link-285', 'count', 'link-281');">count</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt id="link-286" class="py-name"><a title="Bio.CDD.cdd_format.table Bio.expressions.blast.ncbiblast.table" class="py-name" href="#" onclick="return doclink('link-286', 'table', 'link-274');">table</a></tt><tt class="py-op">.</tt><tt id="link-287" class="py-name"><a title="Bio.Crystal.Chain.remove Bio.GFF.GenericTools.TempFile.remove Bio.Graphics.BasicChromosome._ChromosomeComponent.remove Bio.Pathway.Rep.HashSet.HashSet.remove Bio.Restriction.Restriction.RestrictionBatch.remove Bio.Seq.MutableSeq.remove BioSQL.Loader.DatabaseRemover.remove" class="py-name" href="#" onclick="return doclink('link-287', 'remove', 'link-283');">remove</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> <a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-comment"># build a dictionary</tt> </tt> <a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt id="link-288" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-288', 'alphabet', 'link-28');">alphabet</a></tt> <tt class="py-op">=</tt> <tt id="link-289" class="py-name"><a title="Bio.CDD.cdd_format.table Bio.expressions.blast.ncbiblast.table" class="py-name" href="#" onclick="return doclink('link-289', 'table', 'link-274');">table</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt> <a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-name">j</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt> <a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">rec</tt> <tt class="py-keyword">in</tt> <tt id="link-290" class="py-name"><a title="Bio.CDD.cdd_format.table Bio.expressions.blast.ncbiblast.table" class="py-name" href="#" onclick="return doclink('link-290', 'table', 'link-274');">table</a></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="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-comment"># print j</tt> </tt> <a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">row</tt> <tt class="py-op">=</tt> <tt id="link-291" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-291', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">]</tt> </tt> <a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt class="py-comment"># row = rec[0]</tt> </tt> <a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name" targets="Function Bio.Prosite.Pattern.compile()=Bio.Prosite.Pattern-module.html#compile"><a title="Bio.Prosite.Pattern.compile" class="py-name" href="#" onclick="return doclink('link-292', 'compile', 'link-292');">compile</a></tt><tt class="py-op">(</tt><tt class="py-string">'[A-z\*]'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-293" class="py-name" targets="Method Bio.Parsers.spark.GenericASTMatcher.match()=Bio.Parsers.spark.GenericASTMatcher-class.html#match,Method Bio.Prosite.Pattern.Prosite.match()=Bio.Prosite.Pattern.Prosite-class.html#match,Function Bio.triefind.match()=Bio.triefind-module.html#match,Method Martel.msre_parse.Tokenizer.match()=Martel.msre_parse.Tokenizer-class.html#match"><a title="Bio.Parsers.spark.GenericASTMatcher.match Bio.Prosite.Pattern.Prosite.match Bio.triefind.match Martel.msre_parse.Tokenizer.match" class="py-name" href="#" onclick="return doclink('link-293', 'match', 'link-293');">match</a></tt><tt class="py-op">(</tt><tt class="py-name">rec</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt class="py-name">first_col</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt> <a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt> <a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-name">first_col</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt> <a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt id="link-294" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-294', 'i', 'link-18');">i</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt> <a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">field</tt> <tt class="py-keyword">in</tt> <tt class="py-name">rec</tt><tt class="py-op">[</tt><tt class="py-name">first_col</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-name">col</tt> <tt class="py-op">=</tt> <tt id="link-295" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-295', 'alphabet', 'link-28');">alphabet</a></tt><tt class="py-op">[</tt><tt id="link-296" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-296', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> </tt> <a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt id="link-297" class="py-name"><a title="Bio.Blast.NCBIStandalone._ParametersConsumer.matrix Bio.MetaTool.metatool_format.matrix Bio.Prosite._RecordConsumer.matrix" class="py-name" href="#" onclick="return doclink('link-297', 'matrix', 'link-271');">matrix</a></tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">row</tt><tt class="py-op">,</tt><tt class="py-name">col</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">atof</tt><tt class="py-op">(</tt><tt class="py-name">field</tt><tt class="py-op">)</tt> </tt> <a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt id="link-298" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-298', 'i', 'link-18');">i</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt> <a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-name">j</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt> <a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> <tt class="py-comment"># delete entries with an asterisk</tt> </tt> <a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt id="link-299" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-299', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt id="link-300" class="py-name"><a title="Bio.Blast.NCBIStandalone._ParametersConsumer.matrix Bio.MetaTool.metatool_format.matrix Bio.Prosite._RecordConsumer.matrix" class="py-name" href="#" onclick="return doclink('link-300', 'matrix', 'link-271');">matrix</a></tt><tt class="py-op">.</tt><tt id="link-301" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-301', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'*'</tt> <tt class="py-keyword">in</tt> <tt id="link-302" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-302', 'i', 'link-18');">i</a></tt><tt class="py-op">:</tt> <tt class="py-keyword">del</tt><tt class="py-op">(</tt><tt id="link-303" class="py-name"><a title="Bio.Blast.NCBIStandalone._ParametersConsumer.matrix Bio.MetaTool.metatool_format.matrix Bio.Prosite._RecordConsumer.matrix" class="py-name" href="#" onclick="return doclink('link-303', 'matrix', 'link-271');">matrix</a></tt><tt class="py-op">[</tt><tt id="link-304" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-304', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt> <a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt class="py-name">ret_mat</tt> <tt class="py-op">=</tt> <tt id="link-305" class="py-name"><a title="Bio.SubsMat.SeqMat" class="py-name" href="#" onclick="return doclink('link-305', 'SeqMat', 'link-197');">SeqMat</a></tt><tt class="py-op">(</tt><tt id="link-306" class="py-name"><a title="Bio.Blast.NCBIStandalone._ParametersConsumer.matrix Bio.MetaTool.metatool_format.matrix Bio.Prosite._RecordConsumer.matrix" class="py-name" href="#" onclick="return doclink('link-306', 'matrix', 'link-271');">matrix</a></tt><tt class="py-op">,</tt><tt class="py-name">mat_type</tt><tt class="py-op">=</tt><tt class="py-name">mat_type</tt><tt class="py-op">)</tt> </tt> <a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">ret_mat</tt> </tt> </div><a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> </tt> <a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"><tt id="link-307" class="py-name" targets="Variable Bio.SubsMat.diagNO=Bio.SubsMat-module.html#diagNO"><a title="Bio.SubsMat.diagNO" class="py-name" href="#" onclick="return doclink('link-307', 'diagNO', 'link-307');">diagNO</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt> <a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"><tt id="link-308" class="py-name" targets="Variable Bio.SubsMat.diagONLY=Bio.SubsMat-module.html#diagONLY"><a title="Bio.SubsMat.diagONLY" class="py-name" href="#" onclick="return doclink('link-308', 'diagONLY', 'link-308');">diagONLY</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt> <a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"><tt id="link-309" class="py-name" targets="Variable Bio.SubsMat.diagALL=Bio.SubsMat-module.html#diagALL"><a title="Bio.SubsMat.diagALL" class="py-name" href="#" onclick="return doclink('link-309', 'diagALL', 'link-309');">diagALL</a></tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> </tt> <a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> </tt> <a name="two_mat_relative_entropy"></a><div id="two_mat_relative_entropy-def"><a name="L496"></a><tt class="py-lineno">496</tt> <a class="py-toggle" href="#" id="two_mat_relative_entropy-toggle" onclick="return toggle('two_mat_relative_entropy');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat-module.html#two_mat_relative_entropy">two_mat_relative_entropy</a><tt class="py-op">(</tt><tt class="py-param">mat_1</tt><tt class="py-op">,</tt><tt class="py-param">mat_2</tt><tt class="py-op">,</tt><tt class="py-param">logbase</tt><tt class="py-op">=</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-param">diag</tt><tt class="py-op">=</tt><tt id="link-310" class="py-name"><a title="Bio.SubsMat.diagALL" class="py-name" href="#" onclick="return doclink('link-310', 'diagALL', 'link-309');">diagALL</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="two_mat_relative_entropy-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="two_mat_relative_entropy-expanded"><a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> <tt class="py-name">rel_ent</tt> <tt class="py-op">=</tt> <tt class="py-number">0.</tt> </tt> <a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-name">key_list_1</tt> <tt class="py-op">=</tt> <tt class="py-name">mat_1</tt><tt class="py-op">.</tt><tt id="link-311" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-311', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">;</tt> <tt class="py-name">key_list_2</tt> <tt class="py-op">=</tt> <tt class="py-name">mat_2</tt><tt class="py-op">.</tt><tt id="link-312" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-312', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-name">key_list_1</tt><tt class="py-op">.</tt><tt id="link-313" class="py-name"><a title="Bio.PDB.Residue.DisorderedResidue.sort Bio.PDB.Residue.Residue.sort Bio.Sequencing.Ace.ACEFileRecord.sort" class="py-name" href="#" onclick="return doclink('link-313', 'sort', 'link-23');">sort</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">;</tt> <tt class="py-name">key_list_2</tt><tt class="py-op">.</tt><tt id="link-314" class="py-name"><a title="Bio.PDB.Residue.DisorderedResidue.sort Bio.PDB.Residue.Residue.sort Bio.Sequencing.Ace.ACEFileRecord.sort" class="py-name" href="#" onclick="return doclink('link-314', 'sort', 'link-23');">sort</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> <tt class="py-name">key_list</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt> <a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-name">sum_ent_1</tt> <tt class="py-op">=</tt> <tt class="py-number">0.</tt><tt class="py-op">;</tt> <tt class="py-name">sum_ent_2</tt> <tt class="py-op">=</tt> <tt class="py-number">0.</tt> </tt> <a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-315" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-315', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">key_list_1</tt><tt class="py-op">:</tt> </tt> <a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-316" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-316', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">key_list_2</tt><tt class="py-op">:</tt> </tt> <a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-name">key_list</tt><tt class="py-op">.</tt><tt id="link-317" 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-317', 'append', 'link-277');">append</a></tt><tt class="py-op">(</tt><tt id="link-318" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-318', 'i', 'link-18');">i</a></tt><tt class="py-op">)</tt> </tt> <a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">key_list_1</tt><tt class="py-op">)</tt> <tt class="py-op"><></tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">key_list_2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> </tt> <a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">.</tt><tt id="link-319" class="py-name"><a title="Bio.AlignAce.Motif.Motif.write Bio.AlignIO.write Bio.EUtils.sourcegen.SourceFile.write Bio.EUtils.sourcegen.SourceGen.write Bio.NeuralNetwork.Gene.Pattern.PatternIO.write Bio.SeqIO.write Bio.Writer.Writer.write Bio.writers.SeqRecord.embl.WriteEmbl.write Bio.writers.SeqRecord.fasta.WriteFasta.write" class="py-name" href="#" onclick="return doclink('link-319', 'write', 'link-146');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"Warning:first matrix has more entries than the second\n"</tt><tt class="py-op">)</tt> </tt> <a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key_list_1</tt> <tt class="py-op"><></tt> <tt class="py-name">key_list_2</tt><tt class="py-op">:</tt> </tt> <a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stderr</tt><tt class="py-op">.</tt><tt id="link-320" class="py-name"><a title="Bio.AlignAce.Motif.Motif.write Bio.AlignIO.write Bio.EUtils.sourcegen.SourceFile.write Bio.EUtils.sourcegen.SourceGen.write Bio.NeuralNetwork.Gene.Pattern.PatternIO.write Bio.SeqIO.write Bio.Writer.Writer.write Bio.writers.SeqRecord.embl.WriteEmbl.write Bio.writers.SeqRecord.fasta.WriteFasta.write" class="py-name" href="#" onclick="return doclink('link-320', 'write', 'link-146');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"Warning: indices not the same between matrices\n"</tt><tt class="py-op">)</tt> </tt> <a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-321" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-321', 'key', 'link-69');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">key_list</tt><tt class="py-op">:</tt> </tt> <a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">diag</tt> <tt class="py-op">==</tt> <tt id="link-322" class="py-name"><a title="Bio.SubsMat.diagNO" class="py-name" href="#" onclick="return doclink('link-322', 'diagNO', 'link-307');">diagNO</a></tt> <tt class="py-keyword">and</tt> <tt id="link-323" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-323', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt id="link-324" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-324', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt> <a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">diag</tt> <tt class="py-op">==</tt> <tt id="link-325" class="py-name"><a title="Bio.SubsMat.diagONLY" class="py-name" href="#" onclick="return doclink('link-325', 'diagONLY', 'link-308');">diagONLY</a></tt> <tt class="py-keyword">and</tt> <tt id="link-326" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-326', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op"><></tt> <tt id="link-327" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-327', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt> <a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">mat_1</tt><tt class="py-op">[</tt><tt id="link-328" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-328', 'key', 'link-69');">key</a></tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt id="link-329" class="py-name"><a title="Bio.SubsMat.EPSILON" class="py-name" href="#" onclick="return doclink('link-329', 'EPSILON', 'link-14');">EPSILON</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">mat_2</tt><tt class="py-op">[</tt><tt id="link-330" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-330', 'key', 'link-69');">key</a></tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt id="link-331" class="py-name"><a title="Bio.SubsMat.EPSILON" class="py-name" href="#" onclick="return doclink('link-331', 'EPSILON', 'link-14');">EPSILON</a></tt><tt class="py-op">:</tt> </tt> <a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-name">sum_ent_1</tt> <tt class="py-op">+=</tt> <tt class="py-name">mat_1</tt><tt class="py-op">[</tt><tt id="link-332" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-332', 'key', 'link-69');">key</a></tt><tt class="py-op">]</tt> </tt> <a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-name">sum_ent_2</tt> <tt class="py-op">+=</tt> <tt class="py-name">mat_2</tt><tt class="py-op">[</tt><tt id="link-333" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-333', 'key', 'link-69');">key</a></tt><tt class="py-op">]</tt> </tt> <a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> </tt> <a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-334" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-334', 'key', 'link-69');">key</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">key_list</tt><tt class="py-op">:</tt> </tt> <a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">diag</tt> <tt class="py-op">==</tt> <tt id="link-335" class="py-name"><a title="Bio.SubsMat.diagNO" class="py-name" href="#" onclick="return doclink('link-335', 'diagNO', 'link-307');">diagNO</a></tt> <tt class="py-keyword">and</tt> <tt id="link-336" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-336', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt id="link-337" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-337', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt> <a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">diag</tt> <tt class="py-op">==</tt> <tt id="link-338" class="py-name"><a title="Bio.SubsMat.diagONLY" class="py-name" href="#" onclick="return doclink('link-338', 'diagONLY', 'link-308');">diagONLY</a></tt> <tt class="py-keyword">and</tt> <tt id="link-339" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-339', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op"><></tt> <tt id="link-340" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-340', 'key', 'link-69');">key</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt> <a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt> <a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">mat_1</tt><tt class="py-op">[</tt><tt id="link-341" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-341', 'key', 'link-69');">key</a></tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt id="link-342" class="py-name"><a title="Bio.SubsMat.EPSILON" class="py-name" href="#" onclick="return doclink('link-342', 'EPSILON', 'link-14');">EPSILON</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">mat_2</tt><tt class="py-op">[</tt><tt id="link-343" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-343', 'key', 'link-69');">key</a></tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt id="link-344" class="py-name"><a title="Bio.SubsMat.EPSILON" class="py-name" href="#" onclick="return doclink('link-344', 'EPSILON', 'link-14');">EPSILON</a></tt><tt class="py-op">:</tt> </tt> <a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> <tt class="py-name">val_1</tt> <tt class="py-op">=</tt> <tt class="py-name">mat_1</tt><tt class="py-op">[</tt><tt id="link-345" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-345', 'key', 'link-69');">key</a></tt><tt class="py-op">]</tt> <tt class="py-op">/</tt> <tt class="py-name">sum_ent_1</tt> </tt> <a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> <tt class="py-name">val_2</tt> <tt class="py-op">=</tt> <tt class="py-name">mat_2</tt><tt class="py-op">[</tt><tt id="link-346" class="py-name"><a title="Bio.Translate.key" class="py-name" href="#" onclick="return doclink('link-346', 'key', 'link-69');">key</a></tt><tt class="py-op">]</tt> <tt class="py-op">/</tt> <tt class="py-name">sum_ent_2</tt> </tt> <a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"><tt class="py-comment"># rel_ent += mat_1[key] * log(mat_1[key]/mat_2[key])/log(logbase)</tt> </tt> <a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">rel_ent</tt> <tt class="py-op">+=</tt> <tt class="py-name">val_1</tt> <tt class="py-op">*</tt> <tt id="link-347" class="py-name"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-347', 'log', 'link-6');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">val_1</tt><tt class="py-op">/</tt><tt class="py-name">val_2</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt id="link-348" class="py-name"><a title="Bio.Affy.CelFile.log Bio.LogisticRegression.log Bio.MarkovModel.log Bio.MaxEntropy.log Bio.NaiveBayes.log Bio.Statistics.lowess.log Bio.distance.log Bio.kNN.log" class="py-name" href="#" onclick="return doclink('link-348', 'log', 'link-6');">log</a></tt><tt class="py-op">(</tt><tt class="py-name">logbase</tt><tt class="py-op">)</tt> </tt> <a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">rel_ent</tt> </tt> </div><a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> </tt> <a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"><tt class="py-comment">## Gives the linear correlation coefficient between two matrices</tt> </tt> <a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#def two_mat_correlation(mat_1, mat_2):</tt> </tt> <a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Wait for the statistical package before uncommenting this</tt> </tt> <a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt> <a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># corr_list = []</tt> </tt> <a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># assert mat_1.ab_list == mat_2.ab_list</tt> </tt> <a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># for ab_pair in mat_1.keys():</tt> </tt> <a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># try:</tt> </tt> <a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># corr_list.append((mat_1[ab_pair], mat_2[ab_pair]))</tt> </tt> <a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># except KeyError:</tt> </tt> <a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># sys.stderr.write("Error:two_mat_correlation: %s is not a common key\n" %</tt> </tt> <a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># mat_1)</tt> </tt> <a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># return statfns.corr(corr_list)</tt> </tt> <a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"><tt class="py-comment"># Jensen-Shannon Distance</tt> </tt> <a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># Need to input observed frequency matrices</tt> </tt> <a name="two_mat_DJS"></a><div id="two_mat_DJS-def"><a name="L547"></a><tt class="py-lineno">547</tt> <a class="py-toggle" href="#" id="two_mat_DJS-toggle" onclick="return toggle('two_mat_DJS');">-</a><tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.SubsMat-module.html#two_mat_DJS">two_mat_DJS</a><tt class="py-op">(</tt><tt class="py-param">mat_1</tt><tt class="py-op">,</tt><tt class="py-param">mat_2</tt><tt class="py-op">,</tt><tt class="py-param">pi_1</tt><tt class="py-op">=</tt><tt class="py-number">0.5</tt><tt class="py-op">,</tt><tt class="py-param">pi_2</tt><tt class="py-op">=</tt><tt class="py-number">0.5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="two_mat_DJS-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="two_mat_DJS-expanded"><a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">mat_1</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt> <tt class="py-op">==</tt> <tt class="py-name">mat_2</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt> </tt> <a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">pi_1</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">pi_2</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">pi_1</tt><tt class="py-op"><</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> <tt class="py-name">pi_2</tt> <tt class="py-op"><</tt><tt class="py-number">1</tt> </tt> <a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">pi_1</tt> <tt class="py-op">+</tt> <tt class="py-name">pi_2</tt> <tt class="py-op">-</tt> <tt class="py-number">1.0</tt> <tt class="py-op">></tt> <tt id="link-349" class="py-name"><a title="Bio.SubsMat.EPSILON" class="py-name" href="#" onclick="return doclink('link-349', 'EPSILON', 'link-14');">EPSILON</a></tt><tt class="py-op">)</tt> </tt> <a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-name">sum_mat</tt> <tt class="py-op">=</tt> <tt id="link-350" class="py-name"><a title="Bio.SubsMat.SeqMat" class="py-name" href="#" onclick="return doclink('link-350', 'SeqMat', 'link-197');">SeqMat</a></tt><tt class="py-op">(</tt><tt class="py-name">build_later</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt> <a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> <tt class="py-name">sum_mat</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt> <tt class="py-op">=</tt> <tt class="py-name">mat_1</tt><tt class="py-op">.</tt><tt class="py-name">ab_list</tt> </tt> <a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-351" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-351', 'i', 'link-18');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">mat_1</tt><tt class="py-op">.</tt><tt id="link-352" class="py-name"><a title="Bio.Crystal.Crystal.keys Bio.EUtils.MultiDict._BaseMultiDict.keys Bio.GenBank.NCBIDictionary.keys Bio.Mindy.BaseDB.DictLookup.keys Bio.Mindy.BaseDB.OpenDB.keys Bio.Mindy.BerkeleyDB.PrimaryNamespace.keys Bio.Mindy.BerkeleyDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.PrimaryNamespace.keys Bio.Mindy.FlatDB.PrimaryTable.keys Bio.Mindy.FlatDB.SecondaryNamespace.keys Bio.Mindy.FlatDB.SecondaryTable.keys Bio.PDB.AbstractPropertyMap.AbstractPropertyMap.keys Bio.Prosite.ExPASyDictionary.keys Bio.Prosite.Prodoc.ExPASyDictionary.keys Bio.PubMed.Dictionary.keys Bio.SwissProt.SProt.Dictionary.keys Bio.SwissProt.SProt.ExPASyDictionary.keys Bio.config.Registry.Registry.keys BioSQL.BioSeqDatabase.BioSeqDatabase.keys BioSQL.BioSeqDatabase.DBServer.keys Martel.Parser.MartelAttributeList.keys" class="py-name" href="#" onclick="return doclink('link-352', 'keys', 'link-19');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-name">sum_mat</tt><tt class="py-op">[</tt><tt id="link-353" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-353', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">pi_1</tt> <tt class="py-op">*</tt> <tt class="py-name">mat_1</tt><tt class="py-op">[</tt><tt id="link-354" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-354', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">pi_2</tt> <tt class="py-op">*</tt> <tt class="py-name">mat_2</tt><tt class="py-op">[</tt><tt id="link-355" class="py-name"><a title="Bio.PDB.Polypeptide.i" class="py-name" href="#" onclick="return doclink('link-355', 'i', 'link-18');">i</a></tt><tt class="py-op">]</tt> </tt> <a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-name">sum_mat</tt><tt class="py-op">.</tt><tt id="link-356" class="py-name" targets="Method Bio.SubsMat.SeqMat.make_entropy()=Bio.SubsMat.SeqMat-class.html#make_entropy"><a title="Bio.SubsMat.SeqMat.make_entropy" class="py-name" href="#" onclick="return doclink('link-356', 'make_entropy', 'link-356');">make_entropy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-name">mat_1</tt><tt class="py-op">.</tt><tt id="link-357" class="py-name"><a title="Bio.SubsMat.SeqMat.make_entropy" class="py-name" href="#" onclick="return doclink('link-357', 'make_entropy', 'link-356');">make_entropy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-name">mat_2</tt><tt class="py-op">.</tt><tt id="link-358" class="py-name"><a title="Bio.SubsMat.SeqMat.make_entropy" class="py-name" href="#" onclick="return doclink('link-358', 'make_entropy', 'link-356');">make_entropy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-comment"># print mat_1.entropy, mat_2.entropy</tt> </tt> <a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-name">dJS</tt> <tt class="py-op">=</tt> <tt class="py-name">sum_mat</tt><tt class="py-op">.</tt><tt class="py-name">entropy</tt> <tt class="py-op">-</tt> <tt class="py-name">pi_1</tt> <tt class="py-op">*</tt> <tt class="py-name">mat_1</tt><tt class="py-op">.</tt><tt class="py-name">entropy</tt> <tt class="py-op">-</tt> <tt class="py-name">pi_2</tt> <tt class="py-op">*</tt><tt class="py-name">mat_2</tt><tt class="py-op">.</tt><tt class="py-name">entropy</tt> </tt> <a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">dJS</tt> </tt> </div><a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> </tt> <a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"><tt class="py-string">"""</tt> </tt> <a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"><tt class="py-string">This isn't working yet. Boo hoo!</tt> </tt> <a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"><tt class="py-string">def two_mat_print(mat_1, mat_2, f=None,alphabet=None,factor_1=1, factor_2=1,</tt> </tt> <a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"><tt class="py-string"> format="%4d",bottomformat="%4s",topformat="%4s",</tt> </tt> <a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"><tt class="py-string"> topindent=7*" ", bottomindent=1*" "):</tt> </tt> <a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"><tt class="py-string"> f = f or sys.stdout</tt> </tt> <a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"><tt class="py-string"> if not alphabet:</tt> </tt> <a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"><tt class="py-string"> assert mat_1.ab_list == mat_2.ab_list</tt> </tt> <a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"><tt class="py-string"> alphabet = mat_1.ab_list</tt> </tt> <a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"><tt class="py-string"> len_alphabet = len(alphabet)</tt> </tt> <a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"><tt class="py-string"> print_mat = {}</tt> </tt> <a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"><tt class="py-string"> topline = topindent</tt> </tt> <a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"><tt class="py-string"> bottomline = bottomindent</tt> </tt> <a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"><tt class="py-string"> for i in alphabet:</tt> </tt> <a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"><tt class="py-string"> bottomline += bottomformat % i</tt> </tt> <a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"><tt class="py-string"> topline += topformat % alphabet[len_alphabet-alphabet.index(i)-1]</tt> </tt> <a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"><tt class="py-string"> topline += '\n'</tt> </tt> <a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"><tt class="py-string"> bottomline += '\n'</tt> </tt> <a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"><tt class="py-string"> f.write(topline)</tt> </tt> <a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"><tt class="py-string"> for i in alphabet:</tt> </tt> <a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"><tt class="py-string"> for j in alphabet:</tt> </tt> <a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"><tt class="py-string"> print_mat[i,j] = -999</tt> </tt> <a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"><tt class="py-string"> diag_1 = {}; diag_2 = {}</tt> </tt> <a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"><tt class="py-string"> for i in alphabet:</tt> </tt> <a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"><tt class="py-string"> for j in alphabet[:alphabet.index(i)+1]:</tt> </tt> <a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"><tt class="py-string"> if i == j:</tt> </tt> <a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"><tt class="py-string"> diag_1[i] = mat_1[(i,i)] </tt> </tt> <a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"><tt class="py-string"> diag_2[i] = mat_2[(alphabet[len_alphabet-alphabet.index(i)-1],</tt> </tt> <a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"><tt class="py-string"> alphabet[len_alphabet-alphabet.index(i)-1])]</tt> </tt> <a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"><tt class="py-string"> else:</tt> </tt> <a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"><tt class="py-string"> if i > j:</tt> </tt> <a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"><tt class="py-string"> key = (j,i)</tt> </tt> <a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"><tt class="py-string"> else:</tt> </tt> <a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"><tt class="py-string"> key = (i,j)</tt> </tt> <a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"><tt class="py-string"> mat_2_key = [alphabet[len_alphabet-alphabet.index(key[0])-1],</tt> </tt> <a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"><tt class="py-string"> alphabet[len_alphabet-alphabet.index(key[1])-1]]</tt> </tt> <a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"><tt class="py-string"> # print mat_2_key</tt> </tt> <a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"><tt class="py-string"> mat_2_key.sort(); mat_2_key = tuple(mat_2_key)</tt> </tt> <a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"><tt class="py-string"> # print key ,"||", mat_2_key</tt> </tt> <a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"><tt class="py-string"> print_mat[key] = mat_2[mat_2_key] </tt> </tt> <a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"><tt class="py-string"> print_mat[(key[1],key[0])] = mat_1[key]</tt> </tt> <a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"><tt class="py-string"> for i in alphabet:</tt> </tt> <a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"><tt class="py-string"> outline = i</tt> </tt> <a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"><tt class="py-string"> for j in alphabet:</tt> </tt> <a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"><tt class="py-string"> if i == j:</tt> </tt> <a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"><tt class="py-string"> if diag_1[i] == -999:</tt> </tt> <a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"><tt class="py-string"> val_1 = ' ND'</tt> </tt> <a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"><tt class="py-string"> else:</tt> </tt> <a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"><tt class="py-string"> val_1 = format % (diag_1[i]*factor_1)</tt> </tt> <a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"><tt class="py-string"> if diag_2[i] == -999:</tt> </tt> <a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"><tt class="py-string"> val_2 = ' ND'</tt> </tt> <a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"><tt class="py-string"> else:</tt> </tt> <a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"><tt class="py-string"> val_2 = format % (diag_2[i]*factor_2)</tt> </tt> <a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"><tt class="py-string"> cur_str = val_1 + " " + val_2</tt> </tt> <a name="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"><tt class="py-string"> else:</tt> </tt> <a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"><tt class="py-string"> if print_mat[(i,j)] == -999:</tt> </tt> <a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"><tt class="py-string"> val = ' ND'</tt> </tt> <a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"><tt class="py-string"> elif alphabet.index(i) > alphabet.index(j):</tt> </tt> <a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"><tt class="py-string"> val = format % (print_mat[(i,j)]*factor_1)</tt> </tt> <a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"><tt class="py-string"> else:</tt> </tt> <a name="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"><tt class="py-string"> val = format % (print_mat[(i,j)]*factor_2)</tt> </tt> <a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"><tt class="py-string"> cur_str = val</tt> </tt> <a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"><tt class="py-string"> outline += cur_str</tt> </tt> <a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"><tt class="py-string"> outline += bottomformat % (alphabet[len_alphabet-alphabet.index(i)-1] +</tt> </tt> <a name="L626"></a><tt class="py-lineno">626</tt> <tt class="py-line"><tt class="py-string"> '\n')</tt> </tt> <a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"><tt class="py-string"> f.write(outline)</tt> </tt> <a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"><tt class="py-string"> f.write(bottomline)</tt> </tt> <a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"><tt class="py-string">"""</tt> </tt> <a name="L630"></a><tt class="py-lineno">630</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:27:02 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>