Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 763d6289e1351f2d34257ce697a3ccb7 > files > 652

biopython-doc-1.47-2mdv2008.1.x86_64.rpm

<?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.GA.Repair.Stabilizing</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>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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&nbsp;Bio</a> ::
        <a href="Bio.GA-module.html">Package&nbsp;GA</a> ::
        <a href="Bio.GA.Repair-module.html">Package&nbsp;Repair</a> ::
        Module&nbsp;Stabilizing
      </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&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="Bio.GA.Repair.Stabilizing-pysrc.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<h1 class="epydoc">Source Code for <a href="Bio.GA.Repair.Stabilizing-module.html">Module Bio.GA.Repair.Stabilizing</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-docstring">"""Methods for performing repairs that will Stabilize genomes.</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-docstring">These methods perform repair to keep chromosomes from drifting too far in</tt> </tt>
<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-docstring">any direction -- ie. bring them back to a stabilizing center. This may be</tt> </tt>
<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-docstring">useful in cases where fitness functions alone won't keep chromosomes in</tt> </tt>
<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-docstring">check.</tt> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-comment"># standard library</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">import</tt> <tt class="py-name">random</tt> </tt>
<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"> </tt>
<a name="AmbiguousRepair"></a><div id="AmbiguousRepair-def"><a name="L11"></a><tt class="py-lineno">11</tt> <a class="py-toggle" href="#" id="AmbiguousRepair-toggle" onclick="return toggle('AmbiguousRepair');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="Bio.GA.Repair.Stabilizing.AmbiguousRepair-class.html">AmbiguousRepair</a><tt class="py-op">:</tt> </tt>
</div><div id="AmbiguousRepair-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="AmbiguousRepair-expanded"><a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line">    <tt class="py-docstring">"""Perform repair to reduce the number of Ambiguous genes in a genome.</tt> </tt>
<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-docstring">    In cases where ambiguous genes are allowed in a genome (for example,</tt> </tt>
<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-docstring">    where you have a wild card character like '*' that will match</tt> </tt>
<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-docstring">    anything), these can come to dominate a genome since, really, the</tt> </tt>
<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-docstring">    best fitness is someting like '*******'. This repair protects against</tt> </tt>
<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-docstring">    that by changing ambiguous characters into some non-ambiguous gene.</tt> </tt>
<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="AmbiguousRepair.__init__"></a><div id="AmbiguousRepair.__init__-def"><a name="L20"></a><tt class="py-lineno">20</tt> <a class="py-toggle" href="#" id="AmbiguousRepair.__init__-toggle" onclick="return toggle('AmbiguousRepair.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.GA.Repair.Stabilizing.AmbiguousRepair-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">ambig_finder</tt><tt class="py-op">,</tt> <tt class="py-param">num_ambiguous</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="AmbiguousRepair.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="AmbiguousRepair.__init__-expanded"><a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line">        <tt class="py-docstring">"""Initialize the repair class.</tt> </tt>
<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-docstring">        Arguments:</tt> </tt>
<a name="L24"></a><tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line"><tt class="py-docstring">        o ambig_finder - A class implementing the function find_ambiguous</tt> </tt>
<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt class="py-docstring">        which will return a list of all ambiguous positions in a sequence.</tt> </tt>
<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt class="py-docstring">        It also must have the function all_unambiguous, which will return</tt> </tt>
<a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line"><tt class="py-docstring">        all allowed unambiguous letters.</tt> </tt>
<a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"><tt class="py-docstring">        o num_ambiguous - The minimum number of ambiguous items that are</tt> </tt>
<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"><tt class="py-docstring">        allowed in a genome. If there are more than this present, repair</tt> </tt>
<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line"><tt class="py-docstring">        will be performed.</tt> </tt>
<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ambig_finder</tt> <tt class="py-op">=</tt> <tt class="py-name">ambig_finder</tt> </tt>
<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_num_ambiguous</tt> <tt class="py-op">=</tt> <tt id="link-0" class="py-name" targets="Method Bio.NeuralNetwork.Gene.Schema.Schema.num_ambiguous()=Bio.NeuralNetwork.Gene.Schema.Schema-class.html#num_ambiguous"><a title="Bio.NeuralNetwork.Gene.Schema.Schema.num_ambiguous" class="py-name" href="#" onclick="return doclink('link-0', 'num_ambiguous', 'link-0');">num_ambiguous</a></tt> </tt>
<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_alphabet_letters</tt> <tt class="py-op">=</tt> <tt class="py-name">ambig_finder</tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Method Bio.NeuralNetwork.Gene.Schema.Schema.all_unambiguous()=Bio.NeuralNetwork.Gene.Schema.Schema-class.html#all_unambiguous"><a title="Bio.NeuralNetwork.Gene.Schema.Schema.all_unambiguous" class="py-name" href="#" onclick="return doclink('link-1', 'all_unambiguous', 'link-1');">all_unambiguous</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"> </tt>
<a name="AmbiguousRepair.repair"></a><div id="AmbiguousRepair.repair-def"><a name="L38"></a><tt class="py-lineno">38</tt> <a class="py-toggle" href="#" id="AmbiguousRepair.repair-toggle" onclick="return toggle('AmbiguousRepair.repair');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.GA.Repair.Stabilizing.AmbiguousRepair-class.html#repair">repair</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">organism</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="AmbiguousRepair.repair-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="AmbiguousRepair.repair-expanded"><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">        <tt class="py-docstring">"""Perform a repair to remove excess ambiguous genes.</tt> </tt>
<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">        <tt class="py-name">new_org</tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name" targets="Method Bio.GenBank._FeatureConsumer.organism()=Bio.GenBank._FeatureConsumer-class.html#organism,Method Bio.GenBank._RecordConsumer.organism()=Bio.GenBank._RecordConsumer-class.html#organism,Variable Bio.expressions.embl.embl65.organism=Bio.expressions.embl.embl65-module.html#organism,Variable Bio.expressions.genbank.organism=Bio.expressions.genbank-module.html#organism"><a title="Bio.GenBank._FeatureConsumer.organism
Bio.GenBank._RecordConsumer.organism
Bio.expressions.embl.embl65.organism
Bio.expressions.genbank.organism" class="py-name" href="#" onclick="return doclink('link-2', 'organism', 'link-2');">organism</a></tt><tt class="py-op">.</tt><tt id="link-3" 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-3', 'copy', 'link-3');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">         </tt>
<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">        <tt class="py-comment"># start getting rid of ambiguous items</tt> </tt>
<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">            <tt class="py-comment"># first find all of the ambigous items</tt> </tt>
<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">seq_genome</tt> <tt class="py-op">=</tt> <tt class="py-name">new_org</tt><tt class="py-op">.</tt><tt class="py-name">genome</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Method Bio.Seq.MutableSeq.toseq()=Bio.Seq.MutableSeq-class.html#toseq"><a title="Bio.Seq.MutableSeq.toseq" class="py-name" href="#" onclick="return doclink('link-4', 'toseq', 'link-4');">toseq</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">            <tt class="py-name">all_ambiguous</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ambig_finder</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method Bio.NeuralNetwork.Gene.Schema.Schema.find_ambiguous()=Bio.NeuralNetwork.Gene.Schema.Schema-class.html#find_ambiguous"><a title="Bio.NeuralNetwork.Gene.Schema.Schema.find_ambiguous" class="py-name" href="#" onclick="return doclink('link-5', 'find_ambiguous', 'link-5');">find_ambiguous</a></tt><tt class="py-op">(</tt><tt class="py-name">seq_genome</tt><tt class="py-op">.</tt><tt id="link-6" 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-6', 'data', 'link-6');">data</a></tt><tt class="py-op">)</tt> </tt>
<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"> </tt>
<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">            <tt class="py-comment"># if we have less then the number of ambiguous allowed, stop</tt> </tt>
<a name="L50"></a><tt class="py-lineno">50</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">all_ambiguous</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_num_ambiguous</tt><tt class="py-op">:</tt> </tt>
<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line">                <tt class="py-keyword">break</tt> </tt>
<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"> </tt>
<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line">            <tt class="py-comment"># remove an ambiguous item and replace it with a non-ambiguous</tt> </tt>
<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">to_change</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">choice</tt><tt class="py-op">(</tt><tt class="py-name">all_ambiguous</tt><tt class="py-op">)</tt> </tt>
<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">            <tt class="py-name">new_gene</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">choice</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_alphabet_letters</tt><tt class="py-op">)</tt> </tt>
<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">            <tt class="py-name">new_org</tt><tt class="py-op">.</tt><tt class="py-name">genome</tt><tt class="py-op">[</tt><tt class="py-name">to_change</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">new_gene</tt> </tt>
<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line"> </tt>
<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">new_org</tt> </tt>
</div></div><a name="L59"></a><tt class="py-lineno">59</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>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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:28:13 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>