Sophie

Sophie

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

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.Mutation.Simple</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.Mutation-module.html">Package&nbsp;Mutation</a> ::
        Module&nbsp;Simple
      </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.Mutation.Simple-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.Mutation.Simple-module.html">Module Bio.GA.Mutation.Simple</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno"> 1</tt>  <tt class="py-line"><tt class="py-docstring">"""Perform Simple mutations on an organism's genome.</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-comment"># standard modules</tt> </tt>
<a name="L4"></a><tt class="py-lineno"> 4</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="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"> </tt>
<a name="SinglePositionMutation"></a><div id="SinglePositionMutation-def"><a name="L6"></a><tt class="py-lineno"> 6</tt> <a class="py-toggle" href="#" id="SinglePositionMutation-toggle" onclick="return toggle('SinglePositionMutation');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="Bio.GA.Mutation.Simple.SinglePositionMutation-class.html">SinglePositionMutation</a><tt class="py-op">:</tt> </tt>
</div><div id="SinglePositionMutation-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="SinglePositionMutation-expanded"><a name="L7"></a><tt class="py-lineno"> 7</tt>  <tt class="py-line">    <tt class="py-docstring">"""Perform a conversion mutation, but only at a single point in the genome.</tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt>  <tt class="py-line"><tt class="py-docstring">    This does not randomize the genome as much as ConversionMutation, since</tt> </tt>
<a name="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line"><tt class="py-docstring">    only one change is allowed per genome at the specified mutation rate.</tt> </tt>
<a name="L11"></a><tt class="py-lineno">11</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="SinglePositionMutation.__init__"></a><div id="SinglePositionMutation.__init__-def"><a name="L12"></a><tt class="py-lineno">12</tt> <a class="py-toggle" href="#" id="SinglePositionMutation.__init__-toggle" onclick="return toggle('SinglePositionMutation.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.GA.Mutation.Simple.SinglePositionMutation-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">mutation_rate</tt> <tt class="py-op">=</tt> <tt class="py-number">0.001</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SinglePositionMutation.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SinglePositionMutation.__init__-expanded"><a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line">        <tt class="py-docstring">"""Initialize a mutator.</tt> </tt>
<a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-docstring">        Arguments:</tt> </tt>
<a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-docstring">        o mutation_rate - The chance of a mutation happening once in the</tt> </tt>
<a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-docstring">        genome.</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mutation_rate</tt> <tt class="py-op">=</tt> <tt class="py-name">mutation_rate</tt> </tt>
<a name="L21"></a><tt class="py-lineno">21</tt>  <tt class="py-line">        <tt class="py-comment"># a random number generator to test if we have a mutation</tt> </tt>
<a name="L22"></a><tt class="py-lineno">22</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">_mutation_rand</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">Random</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L23"></a><tt class="py-lineno">23</tt>  <tt class="py-line">        <tt class="py-comment"># a random number generator to switch to a new alphabet letter</tt> </tt>
<a name="L24"></a><tt class="py-lineno">24</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">_switch_rand</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">Random</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L25"></a><tt class="py-lineno">25</tt>  <tt class="py-line">        <tt class="py-comment"># a random number generator to find the mutation position</tt> </tt>
<a name="L26"></a><tt class="py-lineno">26</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">_pos_rand</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">Random</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"> </tt>
<a name="SinglePositionMutation.mutate"></a><div id="SinglePositionMutation.mutate-def"><a name="L28"></a><tt class="py-lineno">28</tt> <a class="py-toggle" href="#" id="SinglePositionMutation.mutate-toggle" onclick="return toggle('SinglePositionMutation.mutate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.GA.Mutation.Simple.SinglePositionMutation-class.html#mutate">mutate</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="SinglePositionMutation.mutate-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="SinglePositionMutation.mutate-expanded"><a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">        <tt class="py-docstring">"""Mutate the organisms genome.</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-name">mutated_org</tt> <tt class="py-op">=</tt> <tt id="link-0" 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-0', 'organism', 'link-0');">organism</a></tt><tt class="py-op">.</tt><tt id="link-1" 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-1', 'copy', 'link-1');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">        <tt class="py-name">gene_choices</tt> <tt class="py-op">=</tt> <tt class="py-name">mutated_org</tt><tt class="py-op">.</tt><tt class="py-name">genome</tt><tt class="py-op">.</tt><tt id="link-2" 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-2', 'alphabet', 'link-2');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-3" 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-3', 'letters', 'link-3');">letters</a></tt> </tt>
<a name="L33"></a><tt class="py-lineno">33</tt>  <tt class="py-line"> </tt>
<a name="L34"></a><tt class="py-lineno">34</tt>  <tt class="py-line">        <tt class="py-name">mutation_chance</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mutation_rand</tt><tt class="py-op">.</tt><tt class="py-name">random</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">mutation_chance</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mutation_rate</tt><tt class="py-op">:</tt> </tt>
<a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">            <tt class="py-comment"># pick a gene position to mutate at</tt> </tt>
<a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">mutation_pos</tt> <tt class="py-op">=</tt> \ </tt>
<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">                         <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pos_rand</tt><tt class="py-op">.</tt><tt class="py-name">choice</tt><tt class="py-op">(</tt><tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">mutated_org</tt><tt class="py-op">.</tt><tt class="py-name">genome</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line">             </tt>
<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line">            <tt class="py-comment"># get a new letter to replace the position at</tt> </tt>
<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-name">new_letter</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_switch_rand</tt><tt class="py-op">.</tt><tt class="py-name">choice</tt><tt class="py-op">(</tt><tt class="py-name">gene_choices</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-name">mutated_org</tt><tt class="py-op">.</tt><tt class="py-name">genome</tt><tt class="py-op">[</tt><tt class="py-name">mutation_pos</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">new_letter</tt> </tt>
<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line"> </tt>
<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">mutated_org</tt> </tt>
</div></div><a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"> </tt>
<a name="ConversionMutation"></a><div id="ConversionMutation-def"><a name="L47"></a><tt class="py-lineno">47</tt> <a class="py-toggle" href="#" id="ConversionMutation-toggle" onclick="return toggle('ConversionMutation');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="Bio.GA.Mutation.Simple.ConversionMutation-class.html">ConversionMutation</a><tt class="py-op">:</tt> </tt>
</div><div id="ConversionMutation-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="ConversionMutation-expanded"><a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">    <tt class="py-docstring">"""Potentially mutate any item to another in the alphabet.</tt> </tt>
<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"><tt class="py-docstring">    This just performs switching mutation -- changing one gene of a genome</tt> </tt>
<a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"><tt class="py-docstring">    to any other potential gene, at some defined frequency. If the organism</tt> </tt>
<a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"><tt class="py-docstring">    is determined to mutate, then the alphabet item it is equally likely</tt> </tt>
<a name="L53"></a><tt class="py-lineno">53</tt>  <tt class="py-line"><tt class="py-docstring">    to switch to any other letter in the alphabet.</tt> </tt>
<a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="ConversionMutation.__init__"></a><div id="ConversionMutation.__init__-def"><a name="L55"></a><tt class="py-lineno">55</tt> <a class="py-toggle" href="#" id="ConversionMutation.__init__-toggle" onclick="return toggle('ConversionMutation.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.GA.Mutation.Simple.ConversionMutation-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">mutation_rate</tt> <tt class="py-op">=</tt> <tt class="py-number">0.001</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="ConversionMutation.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ConversionMutation.__init__-expanded"><a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">        <tt class="py-docstring">"""Inititialize a mutator.</tt> </tt>
<a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line"><tt class="py-docstring">        Arguments:</tt> </tt>
<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line"><tt class="py-docstring">        o mutation_rate -- The chance of a mutation happening at any</tt> </tt>
<a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line"><tt class="py-docstring">        position in the genome.</tt> </tt>
<a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mutation_rate</tt> <tt class="py-op">=</tt> <tt class="py-name">mutation_rate</tt> </tt>
<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">        <tt class="py-comment"># a random number generator to test if we have a mutation</tt> </tt>
<a name="L65"></a><tt class="py-lineno">65</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">_mutation_rand</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">Random</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">        <tt class="py-comment"># a random number generator to switch to a new alphabet letter</tt> </tt>
<a name="L67"></a><tt class="py-lineno">67</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">_switch_rand</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">Random</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line"> </tt>
<a name="ConversionMutation.mutate"></a><div id="ConversionMutation.mutate-def"><a name="L69"></a><tt class="py-lineno">69</tt> <a class="py-toggle" href="#" id="ConversionMutation.mutate-toggle" onclick="return toggle('ConversionMutation.mutate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.GA.Mutation.Simple.ConversionMutation-class.html#mutate">mutate</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="ConversionMutation.mutate-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ConversionMutation.mutate-expanded"><a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line">        <tt class="py-docstring">"""Mutate the organisms genome.</tt> </tt>
<a name="L71"></a><tt class="py-lineno">71</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line">        <tt class="py-name">mutated_org</tt> <tt class="py-op">=</tt> <tt id="link-4" class="py-name"><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-4', 'organism', 'link-0');">organism</a></tt><tt class="py-op">.</tt><tt id="link-5" 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-5', 'copy', 'link-1');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line">         </tt>
<a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line">        <tt class="py-name">gene_choices</tt> <tt class="py-op">=</tt> <tt class="py-name">mutated_org</tt><tt class="py-op">.</tt><tt class="py-name">genome</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="Bio.Prosite.Pattern.Prosite.alphabet
Bio.Std.alphabet" class="py-name" href="#" onclick="return doclink('link-6', 'alphabet', 'link-2');">alphabet</a></tt><tt class="py-op">.</tt><tt id="link-7" 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-7', 'letters', 'link-3');">letters</a></tt> </tt>
<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line">         </tt>
<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line">        <tt class="py-comment"># potentially mutate any gene in the genome</tt> </tt>
<a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">for</tt> <tt class="py-name">gene_index</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">mutated_org</tt><tt class="py-op">.</tt><tt class="py-name">genome</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 class="py-name">mutation_chance</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mutation_rand</tt><tt class="py-op">.</tt><tt class="py-name">random</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line">            <tt class="py-comment"># if we have a mutation</tt> </tt>
<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt class="py-keyword">if</tt> <tt class="py-name">mutation_chance</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mutation_rate</tt><tt class="py-op">:</tt> </tt>
<a name="L81"></a><tt class="py-lineno">81</tt>  <tt class="py-line">                <tt class="py-comment"># get a new letter</tt> </tt>
<a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-name">new_letter</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_switch_rand</tt><tt class="py-op">.</tt><tt class="py-name">choice</tt><tt class="py-op">(</tt><tt class="py-name">gene_choices</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">mutated_org</tt><tt class="py-op">.</tt><tt class="py-name">genome</tt><tt class="py-op">[</tt><tt class="py-name">gene_index</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">new_letter</tt> </tt>
<a name="L84"></a><tt class="py-lineno">84</tt>  <tt class="py-line"> </tt>
<a name="L85"></a><tt class="py-lineno">85</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">mutated_org</tt> </tt>
</div></div><a name="L86"></a><tt class="py-lineno">86</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:26:49 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>