Sophie

Sophie

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

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.Selection.Diversity</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.Selection-module.html">Package&nbsp;Selection</a> ::
        Module&nbsp;Diversity
      </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.Selection.Diversity-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.Selection.Diversity-module.html">Module Bio.GA.Selection.Diversity</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-docstring">"""Select individuals into a new population trying to maintain diversity.</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">This selection mechanism seeks to try and get both high fitness levels</tt> </tt>
<a name="L4"></a><tt class="py-lineno"> 4</tt>  <tt class="py-line"><tt class="py-docstring">and high diversity levels in the population.</tt> </tt>
<a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L6"></a><tt class="py-lineno"> 6</tt>  <tt class="py-line"><tt class="py-comment"># standard modules</tt> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</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="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">math</tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"> </tt>
<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-comment"># biopython</tt> </tt>
<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package Bio=Bio-module.html"><a title="Bio" class="py-name" href="#" onclick="return doclink('link-0', 'Bio', 'link-0');">Bio</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Module Bio.Seq=Bio.Seq-module.html,Class Bio.Seq.Seq=Bio.Seq.Seq-class.html,Class Martel.Expression.Seq=Martel.Expression.Seq-class.html,Function Martel.Seq()=Martel-module.html#Seq"><a title="Bio.Seq
Bio.Seq.Seq
Martel.Expression.Seq
Martel.Seq" class="py-name" href="#" onclick="return doclink('link-1', 'Seq', 'link-1');">Seq</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class Bio.Seq.MutableSeq=Bio.Seq.MutableSeq-class.html"><a title="Bio.Seq.MutableSeq" class="py-name" href="#" onclick="return doclink('link-2', 'MutableSeq', 'link-2');">MutableSeq</a></tt> </tt>
<a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"> </tt>
<a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"># local modules</tt> </tt>
<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name" targets="Module Bio.GA.Selection.Abstract=Bio.GA.Selection.Abstract-module.html"><a title="Bio.GA.Selection.Abstract" class="py-name" href="#" onclick="return doclink('link-3', 'Abstract', 'link-3');">Abstract</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class Bio.GA.Selection.Abstract.AbstractSelection=Bio.GA.Selection.Abstract.AbstractSelection-class.html"><a title="Bio.GA.Selection.Abstract.AbstractSelection" class="py-name" href="#" onclick="return doclink('link-4', 'AbstractSelection', 'link-4');">AbstractSelection</a></tt> </tt>
<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name" targets="Module Bio.GA.Selection.Tournament=Bio.GA.Selection.Tournament-module.html"><a title="Bio.GA.Selection.Tournament" class="py-name" href="#" onclick="return doclink('link-5', 'Tournament', 'link-5');">Tournament</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class Bio.GA.Selection.Tournament.TournamentSelection=Bio.GA.Selection.Tournament.TournamentSelection-class.html"><a title="Bio.GA.Selection.Tournament.TournamentSelection" class="py-name" href="#" onclick="return doclink('link-6', 'TournamentSelection', 'link-6');">TournamentSelection</a></tt> </tt>
<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"> </tt>
<a name="DiversitySelection"></a><div id="DiversitySelection-def"><a name="L17"></a><tt class="py-lineno">17</tt> <a class="py-toggle" href="#" id="DiversitySelection-toggle" onclick="return toggle('DiversitySelection');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="Bio.GA.Selection.Diversity.DiversitySelection-class.html">DiversitySelection</a><tt class="py-op">(</tt><tt class="py-base-class">AbstractSelection</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DiversitySelection-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="DiversitySelection-expanded"><a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line">    <tt class="py-docstring">"""Implement diversity selection.</tt> </tt>
<a name="L19"></a><tt class="py-lineno">19</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L20"></a><tt class="py-lineno">20</tt>  <tt class="py-line"><tt class="py-docstring">    Diversity selection is performed by trying to select individuals</tt> </tt>
<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-docstring">    from the population that aren't already in the new_population. A group</tt> </tt>
<a name="L22"></a><tt class="py-lineno">22</tt>  <tt class="py-line"><tt class="py-docstring">    of selected individuals is then subjected to selection using</tt> </tt>
<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-docstring">    a passed selection routine.</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">    If new individuals can not be selected, new individuals will be</tt> </tt>
<a name="L26"></a><tt class="py-lineno">26</tt>  <tt class="py-line"><tt class="py-docstring">    randomly generated and inserted into the population.</tt> </tt>
<a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="DiversitySelection.__init__"></a><div id="DiversitySelection.__init__-def"><a name="L28"></a><tt class="py-lineno">28</tt> <a class="py-toggle" href="#" id="DiversitySelection.__init__-toggle" onclick="return toggle('DiversitySelection.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.GA.Selection.Diversity.DiversitySelection-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">internal_selector</tt><tt class="py-op">,</tt> <tt class="py-param">genome_generator</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DiversitySelection.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="DiversitySelection.__init__-expanded"><a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">        <tt class="py-docstring">"""Initialize a diversity selector.</tt> </tt>
<a name="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"><tt class="py-docstring">        Arguments:</tt> </tt>
<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"><tt class="py-docstring">        o internal_selector - A selection object that will be used to select</tt> </tt>
<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line"><tt class="py-docstring">        individuals based on fitness, perform crossover, mutation and repair.</tt> </tt>
<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line"><tt class="py-docstring">        o genome_generator - A function that, when called, will return a</tt> </tt>
<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"><tt class="py-docstring">        genome to be used for a new organism. The genome returned must</tt> </tt>
<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"><tt class="py-docstring">        be a MutableSeq() object.</tt> </tt>
<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_internal_selector</tt> <tt class="py-op">=</tt> <tt class="py-name">internal_selector</tt> </tt>
<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_genome_generator</tt> <tt class="py-op">=</tt> <tt class="py-name">genome_generator</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sub_pop_percent</tt> <tt class="py-op">=</tt> <tt class="py-number">.1</tt> </tt>
<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">random_tries</tt> <tt class="py-op">=</tt> <tt class="py-number">10</tt> </tt>
</div><a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"> </tt>
<a name="DiversitySelection._get_new_organism"></a><div id="DiversitySelection._get_new_organism-def"><a name="L46"></a><tt class="py-lineno">46</tt> <a class="py-toggle" href="#" id="DiversitySelection._get_new_organism-toggle" onclick="return toggle('DiversitySelection._get_new_organism');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.GA.Selection.Diversity.DiversitySelection-class.html#_get_new_organism">_get_new_organism</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">new_pop</tt><tt class="py-op">,</tt> <tt class="py-param">old_pop</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DiversitySelection._get_new_organism-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="DiversitySelection._get_new_organism-expanded"><a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-docstring">"""Get a new organism from old_pop that isn't in new_pop.</tt> </tt>
<a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line"><tt class="py-docstring">        This attempts to select an organism from old_pop that isn't in</tt> </tt>
<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"><tt class="py-docstring">        new_pop. If we can't do this in the number of tries specified</tt> </tt>
<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt class="py-docstring">        by the class attribute random_tries, we generate a new random</tt> </tt>
<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"><tt class="py-docstring">        organism and return that.</tt> </tt>
<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">        <tt class="py-comment"># try to pick an organism that isn't in the population</tt> </tt>
<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-name">new_org</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">        <tt class="py-name">num_tries</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">new_org</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">num_tries</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">random_tries</tt><tt class="py-op">:</tt> </tt>
<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">            <tt class="py-name">chance_org</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">old_pop</tt><tt class="py-op">)</tt> </tt>
<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line"> </tt>
<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">chance_org</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">new_pop</tt><tt class="py-op">:</tt> </tt>
<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line">                <tt class="py-name">new_org</tt> <tt class="py-op">=</tt> <tt class="py-name">chance_org</tt> </tt>
<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line"> </tt>
<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">            <tt class="py-name">num_tries</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line"> </tt>
<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">        <tt class="py-comment"># if we don't get an organism, generate a random one</tt> </tt>
<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">new_org</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">            <tt class="py-name">new_org</tt> <tt class="py-op">=</tt> <tt class="py-name">old_pop</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-7" 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-7', 'copy', 'link-7');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">            <tt class="py-name">random_genome</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_genome_generator</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line">            <tt class="py-name">new_org</tt><tt class="py-op">.</tt><tt class="py-name">genome</tt> <tt class="py-op">=</tt> <tt class="py-name">random_genome</tt> </tt>
<a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">            <tt class="py-name">new_org</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method Bio.GA.Organism.Organism.recalculate_fitness()=Bio.GA.Organism.Organism-class.html#recalculate_fitness"><a title="Bio.GA.Organism.Organism.recalculate_fitness" class="py-name" href="#" onclick="return doclink('link-8', 'recalculate_fitness', 'link-8');">recalculate_fitness</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line"> </tt>
<a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">new_org</tt> </tt>
</div><a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line">     </tt>
<a name="DiversitySelection.select"></a><div id="DiversitySelection.select-def"><a name="L74"></a><tt class="py-lineno">74</tt> <a class="py-toggle" href="#" id="DiversitySelection.select-toggle" onclick="return toggle('DiversitySelection.select');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.GA.Selection.Diversity.DiversitySelection-class.html#select">select</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">population</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DiversitySelection.select-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="DiversitySelection.select-expanded"><a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line">        <tt class="py-docstring">"""Perform selection on the current population, encouraging diversity.</tt> </tt>
<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line">        <tt class="py-name">new_population</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L78"></a><tt class="py-lineno">78</tt>  <tt class="py-line"> </tt>
<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">new_population</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">population</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line">            <tt class="py-comment"># generate a sub population</tt> </tt>
<a name="L81"></a><tt class="py-lineno">81</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">sub_pop_size</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">math</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Variable Bio.Affy.CelFile.ceil=Bio.Affy.CelFile-module.html#ceil,Variable Bio.LogisticRegression.ceil=Bio.LogisticRegression-module.html#ceil,Variable Bio.MarkovModel.ceil=Bio.MarkovModel-module.html#ceil,Variable Bio.MaxEntropy.ceil=Bio.MaxEntropy-module.html#ceil,Variable Bio.NaiveBayes.ceil=Bio.NaiveBayes-module.html#ceil,Variable Bio.Statistics.lowess.ceil=Bio.Statistics.lowess-module.html#ceil,Variable Bio.distance.ceil=Bio.distance-module.html#ceil,Variable Bio.kNN.ceil=Bio.kNN-module.html#ceil"><a title="Bio.Affy.CelFile.ceil
Bio.LogisticRegression.ceil
Bio.MarkovModel.ceil
Bio.MaxEntropy.ceil
Bio.NaiveBayes.ceil
Bio.Statistics.lowess.ceil
Bio.distance.ceil
Bio.kNN.ceil" class="py-name" href="#" onclick="return doclink('link-9', 'ceil', 'link-9');">ceil</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">population</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> </tt>
<a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line">                                         <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sub_pop_percent</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L83"></a><tt class="py-lineno">83</tt>  <tt class="py-line">            <tt class="py-name">sub_pop</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L84"></a><tt class="py-lineno">84</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-10" class="py-name" targets="Method Bio.PopGen.GenePop._RecordConsumer.individual()=Bio.PopGen.GenePop._RecordConsumer-class.html#individual"><a title="Bio.PopGen.GenePop._RecordConsumer.individual" class="py-name" href="#" onclick="return doclink('link-10', 'individual', 'link-10');">individual</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">sub_pop_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L85"></a><tt class="py-lineno">85</tt>  <tt class="py-line">                <tt class="py-name">new_org</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method Bio.GA.Selection.Diversity.DiversitySelection._get_new_organism()=Bio.GA.Selection.Diversity.DiversitySelection-class.html#_get_new_organism"><a title="Bio.GA.Selection.Diversity.DiversitySelection._get_new_organism" class="py-name" href="#" onclick="return doclink('link-11', '_get_new_organism', 'link-11');">_get_new_organism</a></tt><tt class="py-op">(</tt><tt class="py-name">new_population</tt><tt class="py-op">,</tt> <tt class="py-name">population</tt><tt class="py-op">)</tt> </tt>
<a name="L86"></a><tt class="py-lineno">86</tt>  <tt class="py-line">                <tt class="py-name">sub_pop</tt><tt class="py-op">.</tt><tt id="link-12" 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-12', 'append', 'link-12');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">new_org</tt><tt class="py-op">)</tt> </tt>
<a name="L87"></a><tt class="py-lineno">87</tt>  <tt class="py-line"> </tt>
<a name="L88"></a><tt class="py-lineno">88</tt>  <tt class="py-line">            <tt class="py-comment"># put the new sub population through selection, mutation</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"># and all of that good stuff</tt> </tt>
<a name="L90"></a><tt class="py-lineno">90</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">new_sub_pop</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_internal_selector</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method Bio.GA.Selection.Abstract.AbstractSelection.select()=Bio.GA.Selection.Abstract.AbstractSelection-class.html#select,Method Bio.GA.Selection.Diversity.DiversitySelection.select()=Bio.GA.Selection.Diversity.DiversitySelection-class.html#select,Method Bio.GA.Selection.RouletteWheel.RouletteWheelSelection.select()=Bio.GA.Selection.RouletteWheel.RouletteWheelSelection-class.html#select,Method Bio.GA.Selection.Tournament.TournamentSelection.select()=Bio.GA.Selection.Tournament.TournamentSelection-class.html#select"><a title="Bio.GA.Selection.Abstract.AbstractSelection.select
Bio.GA.Selection.Diversity.DiversitySelection.select
Bio.GA.Selection.RouletteWheel.RouletteWheelSelection.select
Bio.GA.Selection.Tournament.TournamentSelection.select" class="py-name" href="#" onclick="return doclink('link-13', 'select', 'link-13');">select</a></tt><tt class="py-op">(</tt><tt class="py-name">sub_pop</tt><tt class="py-op">)</tt> </tt>
<a name="L91"></a><tt class="py-lineno">91</tt>  <tt class="py-line"> </tt>
<a name="L92"></a><tt class="py-lineno">92</tt>  <tt class="py-line">            <tt class="py-name">new_population</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method Bio.EUtils.POM.ElementNode.extend()=Bio.EUtils.POM.ElementNode-class.html#extend,Method Bio.SCOP.Raf.SeqMap.extend()=Bio.SCOP.Raf.SeqMap-class.html#extend,Method Bio.Seq.MutableSeq.extend()=Bio.Seq.MutableSeq-class.html#extend"><a title="Bio.EUtils.POM.ElementNode.extend
Bio.SCOP.Raf.SeqMap.extend
Bio.Seq.MutableSeq.extend" class="py-name" href="#" onclick="return doclink('link-14', 'extend', 'link-14');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">new_sub_pop</tt><tt class="py-op">)</tt> </tt>
<a name="L93"></a><tt class="py-lineno">93</tt>  <tt class="py-line"> </tt>
<a name="L94"></a><tt class="py-lineno">94</tt>  <tt class="py-line">        <tt class="py-comment"># return the new population, which should have the same number</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"># of individuals we started with.</tt> </tt>
<a name="L96"></a><tt class="py-lineno">96</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">return</tt> <tt class="py-name">new_population</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">population</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
</div></div><a name="L97"></a><tt class="py-lineno">97</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:27:00 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>