|
77 | 77 | <li class="toctree-l4"><a class="reference internal" href="#adding-alignments">Adding alignments</a></li> |
78 | 78 | <li class="toctree-l4"><a class="reference internal" href="#mapping-a-pairwise-sequence-alignment">Mapping a pairwise sequence alignment</a></li> |
79 | 79 | <li class="toctree-l4"><a class="reference internal" href="#mapping-a-multiple-sequence-alignment">Mapping a multiple sequence alignment</a></li> |
| 80 | +<li class="toctree-l4"><a class="reference internal" href="#using-from-alignments-with-same-reference">Using from_alignments_with_same_reference</a></li> |
80 | 81 | </ul> |
81 | 82 | </li> |
82 | 83 | <li class="toctree-l3"><a class="reference internal" href="#the-alignments-class">The Alignments class</a></li> |
@@ -1523,6 +1524,52 @@ <h3>Mapping a multiple sequence alignment<a class="headerlink" href="#mapping-a- |
1523 | 1524 | <span class="go">rn7.chr2 174256650</span> |
1524 | 1525 | </pre></div> |
1525 | 1526 | </div> |
| 1527 | +</section> |
| 1528 | +<section id="using-from-alignments-with-same-reference"> |
| 1529 | +<h3>Using from_alignments_with_same_reference<a class="headerlink" href="#using-from-alignments-with-same-reference" title="Link to this heading"></a></h3> |
| 1530 | +<p>The <a class="reference internal" href="../api/Bio.Align.html#Bio.Align.Alignment.from_alignments_with_same_reference" title="Bio.Align.Alignment.from_alignments_with_same_reference"><code class="xref py py-meth docutils literal notranslate"><span class="pre">from_alignments_with_same_reference()</span></code></a> method |
| 1531 | +constructs a new multiple sequence alignment from a collection of pairwise |
| 1532 | +alignments that all share the same reference sequence. This is useful when you |
| 1533 | +have aligned several sequences independently to the same reference and want to |
| 1534 | +combine those results into a single multiple alignment.</p> |
| 1535 | +<p>Suppose you have a pairwise alignment of a reference sequence to sequence A and |
| 1536 | +a multiple alignment of sequences B and C to the same reference. To merge |
| 1537 | +these into a single multiple alignment of the reference and sequences A, B, and C, |
| 1538 | +you can use the <code class="docutils literal notranslate"><span class="pre">from_alignments_with_same_reference</span></code> method as follows:</p> |
| 1539 | +<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">Bio.Seq</span><span class="w"> </span><span class="kn">import</span> <span class="n">Seq</span> |
| 1540 | +<span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">Bio.Align</span><span class="w"> </span><span class="kn">import</span> <span class="n">PairwiseAligner</span><span class="p">,</span> <span class="n">Alignment</span> |
| 1541 | +<span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span> |
| 1542 | + |
| 1543 | +<span class="gp">>>> </span><span class="n">reference_str</span> <span class="o">=</span> <span class="s2">"ACGT"</span> |
| 1544 | +<span class="gp">>>> </span><span class="n">seq1_str</span> <span class="o">=</span> <span class="s2">"ACT"</span> |
| 1545 | +<span class="gp">>>> </span><span class="n">seq2_str</span> <span class="o">=</span> <span class="s2">"ACGGT"</span> |
| 1546 | +<span class="gp">>>> </span><span class="n">seq3_str</span> <span class="o">=</span> <span class="s2">"AT"</span> |
| 1547 | + |
| 1548 | +<span class="gp">>>> </span><span class="n">aligner</span> <span class="o">=</span> <span class="n">PairwiseAligner</span><span class="p">()</span> |
| 1549 | +<span class="gp">>>> </span><span class="n">alignment_1</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">aligner</span><span class="o">.</span><span class="n">align</span><span class="p">(</span><span class="n">reference_str</span><span class="p">,</span> <span class="n">seq1_str</span><span class="p">))</span> |
| 1550 | + |
| 1551 | +<span class="gp">>>> </span><span class="n">coords</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">]])</span> |
| 1552 | +<span class="gp">>>> </span><span class="n">alignment_2</span> <span class="o">=</span> <span class="n">Alignment</span><span class="p">([</span><span class="n">reference_str</span><span class="p">,</span> <span class="n">seq2_str</span><span class="p">,</span> <span class="n">seq3_str</span><span class="p">],</span> <span class="n">coords</span><span class="p">)</span> |
| 1553 | + |
| 1554 | +<span class="gp">>>> </span><span class="n">combined_alignment</span> <span class="o">=</span> <span class="n">Alignment</span><span class="o">.</span><span class="n">from_alignments_with_same_reference</span><span class="p">(</span> |
| 1555 | +<span class="gp">... </span> <span class="p">[</span><span class="n">alignment_1</span><span class="p">,</span> <span class="n">alignment_2</span><span class="p">]</span> |
| 1556 | +<span class="gp">... </span><span class="p">)</span> |
| 1557 | +<span class="gp">>>> </span><span class="nb">str</span><span class="p">(</span><span class="n">combined_alignment</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> |
| 1558 | +<span class="go">'ACG-T'</span> |
| 1559 | +<span class="gp">>>> </span><span class="nb">str</span><span class="p">(</span><span class="n">combined_alignment</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> |
| 1560 | +<span class="go">'AC--T'</span> |
| 1561 | +<span class="gp">>>> </span><span class="nb">str</span><span class="p">(</span><span class="n">combined_alignment</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> |
| 1562 | +<span class="go">'ACGGT'</span> |
| 1563 | +<span class="gp">>>> </span><span class="nb">str</span><span class="p">(</span><span class="n">combined_alignment</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> |
| 1564 | +<span class="go">'A---T'</span> |
| 1565 | +</pre></div> |
| 1566 | +</div> |
| 1567 | +<p>The resulting alignment contains all sequences aligned to the shared reference. |
| 1568 | +This method differs from <a class="reference internal" href="../api/Bio.Align.html#Bio.Align.Alignment.map" title="Bio.Align.Alignment.map"><code class="xref py py-meth docutils literal notranslate"><span class="pre">map()</span></code></a> and |
| 1569 | +<a class="reference internal" href="../api/Bio.Align.html#Bio.Align.Alignment.mapall" title="Bio.Align.Alignment.mapall"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mapall()</span></code></a> in that it <em>builds</em> a new multiple alignment |
| 1570 | +directly from a set of pairwise alignments, rather than transforming an existing |
| 1571 | +multiple alignment using mappings. Each input alignment must have the same |
| 1572 | +reference sequence (in the same orientation), otherwise an error is raised.</p> |
1526 | 1573 | <p>The <code class="docutils literal notranslate"><span class="pre">mapall</span></code> method can also be used to create a multiple alignment of |
1527 | 1574 | codon sequences from a multiple sequence alignment of the corresponding |
1528 | 1575 | amino acid sequences (see Section <a class="reference internal" href="chapter_pairwise.html#sec-msa-codons"><span class="std std-ref">Generating a multiple sequence alignment of codon sequences</span></a> |
|
0 commit comments