Skip to content

Commit 765ffaa

Browse files
author
Sphinx
committed
Automated update 6dfefa86f1eccc7df68ec14d932bb96e343d05cc
1 parent 8ad69e3 commit 765ffaa

6 files changed

Lines changed: 133 additions & 1 deletion

File tree

dev/Tutorial/chapter_align.html

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
<li class="toctree-l4"><a class="reference internal" href="#adding-alignments">Adding alignments</a></li>
7878
<li class="toctree-l4"><a class="reference internal" href="#mapping-a-pairwise-sequence-alignment">Mapping a pairwise sequence alignment</a></li>
7979
<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>
8081
</ul>
8182
</li>
8283
<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-
15231524
<span class="go">rn7.chr2 174256650</span>
15241525
</pre></div>
15251526
</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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">reference_str</span> <span class="o">=</span> <span class="s2">&quot;ACGT&quot;</span>
1544+
<span class="gp">&gt;&gt;&gt; </span><span class="n">seq1_str</span> <span class="o">=</span> <span class="s2">&quot;ACT&quot;</span>
1545+
<span class="gp">&gt;&gt;&gt; </span><span class="n">seq2_str</span> <span class="o">=</span> <span class="s2">&quot;ACGGT&quot;</span>
1546+
<span class="gp">&gt;&gt;&gt; </span><span class="n">seq3_str</span> <span class="o">=</span> <span class="s2">&quot;AT&quot;</span>
1547+
1548+
<span class="gp">&gt;&gt;&gt; </span><span class="n">aligner</span> <span class="o">=</span> <span class="n">PairwiseAligner</span><span class="p">()</span>
1549+
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&#39;ACG-T&#39;</span>
1559+
<span class="gp">&gt;&gt;&gt; </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">&#39;AC--T&#39;</span>
1561+
<span class="gp">&gt;&gt;&gt; </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">&#39;ACGGT&#39;</span>
1563+
<span class="gp">&gt;&gt;&gt; </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">&#39;A---T&#39;</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>
15261573
<p>The <code class="docutils literal notranslate"><span class="pre">mapall</span></code> method can also be used to create a multiple alignment of
15271574
codon sequences from a multiple sequence alignment of the corresponding
15281575
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>

dev/api/Bio.Align.html

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1339,6 +1339,88 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
13391339
</div>
13401340
</dd></dl>
13411341

1342+
<dl class="py method">
1343+
<dt class="sig sig-object py" id="Bio.Align.Alignment.from_alignments_with_same_reference">
1344+
<em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_alignments_with_same_reference</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">alignments</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#Bio.Align.Alignment" title="Bio.Align.Alignment"><span class="pre">Alignment</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#Bio.Align.Alignment" title="Bio.Align.Alignment"><span class="pre">Alignment</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="#Bio.Align.Alignment" title="Bio.Align.Alignment"><span class="pre">Alignment</span></a></span></span><a class="headerlink" href="#Bio.Align.Alignment.from_alignments_with_same_reference" title="Link to this definition"></a></dt>
1345+
<dd><p>Create an Alignment from a list of alignments in which the first sequence is the same (reference sequence).</p>
1346+
<p>This method combines multiple alignments into a single multiple sequence alignment.
1347+
All alignments must share the same reference sequence (ignoring gaps).</p>
1348+
<dl>
1349+
<dt>Args:</dt><dd><p>alignments: A list or tuple of Alignment objects.</p>
1350+
</dd>
1351+
<dt>Returns:</dt><dd><p>An Alignment object representing a multiple sequence alignment.</p>
1352+
</dd>
1353+
<dt>Raises:</dt><dd><p>ValueError: If no alignments are provided or if the reference
1354+
sequences do not match across all alignments.</p>
1355+
</dd>
1356+
<dt>Example 1: Basic Usage with Strings</dt><dd><div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </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>
1357+
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">Bio.SeqRecord</span><span class="w"> </span><span class="kn">import</span> <span class="n">SeqRecord</span>
1358+
<span class="gp">&gt;&gt;&gt; </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>
1359+
<span class="gp">&gt;&gt;&gt; </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>
1360+
</pre></div>
1361+
</div>
1362+
<p>Consider the following reference and sequences:
1363+
&gt;&gt;&gt; reference_str = “ACGT”
1364+
&gt;&gt;&gt; seq1_str = “ACT”
1365+
&gt;&gt;&gt; seq2_str = “ACGGT”
1366+
&gt;&gt;&gt; seq3_str = “AT”</p>
1367+
<p>To produce a pairwise alignment:
1368+
&gt;&gt;&gt; aligner = PairwiseAligner()
1369+
&gt;&gt;&gt; pwa = next(aligner.align(reference_str, seq1_str))</p>
1370+
<p>To produce a three sequence alignment:
1371+
&gt;&gt;&gt; coords = np.array([
1372+
… [0, 1, 2, 3, 3, 4],
1373+
… [0, 1, 2, 3, 4, 5],
1374+
… [0, 1, 1, 1, 1, 2]
1375+
… ])</p>
1376+
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">not_pwa</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>
1377+
</pre></div>
1378+
</div>
1379+
<p>The pairwise alignment would look like
1380+
&gt;&gt;&gt; print(f”Reference: {pwa[0]}”)
1381+
Reference: ACGT
1382+
&gt;&gt;&gt; print(f”Seq1: {pwa[1]}”)
1383+
Seq1: AC-T</p>
1384+
<p>The three sequence alignment would look like
1385+
&gt;&gt;&gt; str(not_pwa[0])
1386+
‘ACG-T’
1387+
&gt;&gt;&gt; str(not_pwa[1])
1388+
‘ACGGT’
1389+
&gt;&gt;&gt; str(not_pwa[2])
1390+
‘A—T’</p>
1391+
<p>Now, we can combine these alignments into a multiple sequence alignment:
1392+
&gt;&gt;&gt; msa = Alignment.from_alignments_with_same_reference([pwa, not_pwa])
1393+
&gt;&gt;&gt; str(msa[0])
1394+
‘ACG-T’
1395+
&gt;&gt;&gt; str(msa[1])
1396+
‘AC–T’
1397+
&gt;&gt;&gt; str(msa[2])
1398+
‘ACGGT’
1399+
&gt;&gt;&gt; str(msa[3])
1400+
‘A—T’</p>
1401+
</dd>
1402+
<dt>Example 2: Using SeqRecord Objects with Metadata</dt><dd><p>Consider the following reference and sequences with metadata:
1403+
&gt;&gt;&gt; reference_seqr = SeqRecord(Seq(“ACGT”), id=”reference”, description=”desc 1”)
1404+
&gt;&gt;&gt; seq1 = SeqRecord(Seq(“ACGGT”), id=”seq1”, description=”desc 2”)
1405+
&gt;&gt;&gt; seq2 = SeqRecord(Seq(“AT”), id=”seq2”, description=”desc 3”)</p>
1406+
<p>To produce pairwise alignments:
1407+
&gt;&gt;&gt; aligner = PairwiseAligner()
1408+
&gt;&gt;&gt; pwa1 = next(aligner.align(reference_seqr, seq1))
1409+
&gt;&gt;&gt; pwa2 = next(aligner.align(reference_seqr, seq2))</p>
1410+
<p>The msa retains the metadata from the original SeqRecord objects:
1411+
&gt;&gt;&gt; msa = Alignment.from_alignments_with_same_reference([pwa1, pwa2])
1412+
&gt;&gt;&gt; print(msa.format(“fasta”))
1413+
&gt;reference desc 1
1414+
ACG-T
1415+
&gt;seq1 desc 2
1416+
ACGGT
1417+
&gt;seq2 desc 3
1418+
A—T
1419+
&lt;BLANKLINE&gt;</p>
1420+
</dd>
1421+
</dl>
1422+
</dd></dl>
1423+
13421424
<dl class="py method">
13431425
<dt class="sig sig-object py" id="Bio.Align.Alignment.__init__">
13441426
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sequences</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coordinates</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#Bio.Align.Alignment.__init__" title="Link to this definition"></a></dt>

dev/api/Bio.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Link to this hea
310310
</li>
311311
<li class="toctree-l3"><a class="reference internal" href="Bio.Align.html#Bio.Align.Alignment"><code class="docutils literal notranslate"><span class="pre">Alignment</span></code></a><ul>
312312
<li class="toctree-l4"><a class="reference internal" href="Bio.Align.html#Bio.Align.Alignment.parse_printed_alignment"><code class="docutils literal notranslate"><span class="pre">Alignment.parse_printed_alignment()</span></code></a></li>
313+
<li class="toctree-l4"><a class="reference internal" href="Bio.Align.html#Bio.Align.Alignment.from_alignments_with_same_reference"><code class="docutils literal notranslate"><span class="pre">Alignment.from_alignments_with_same_reference()</span></code></a></li>
313314
<li class="toctree-l4"><a class="reference internal" href="Bio.Align.html#Bio.Align.Alignment.__init__"><code class="docutils literal notranslate"><span class="pre">Alignment.__init__()</span></code></a></li>
314315
<li class="toctree-l4"><a class="reference internal" href="Bio.Align.html#Bio.Align.Alignment.__array__"><code class="docutils literal notranslate"><span class="pre">Alignment.__array__()</span></code></a></li>
315316
<li class="toctree-l4"><a class="reference internal" href="Bio.Align.html#Bio.Align.Alignment.__add__"><code class="docutils literal notranslate"><span class="pre">Alignment.__add__()</span></code></a></li>

dev/genindex.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6533,6 +6533,8 @@ <h2 id="F">F</h2>
65336533
<li><a href="api/Bio.Align.html#Bio.Align.Alignment.frequencies">frequencies (Bio.Align.Alignment property)</a>
65346534
</li>
65356535
<li><a href="api/Bio.motifs.matrix.html#Bio.motifs.matrix.FrequencyPositionMatrix">FrequencyPositionMatrix (class in Bio.motifs.matrix)</a>
6536+
</li>
6537+
<li><a href="api/Bio.Align.html#Bio.Align.Alignment.from_alignments_with_same_reference">from_alignments_with_same_reference() (Bio.Align.Alignment class method)</a>
65366538
</li>
65376539
<li><a href="api/Bio.Align.bigbed.html#Bio.Align.bigbed.AutoSQLTable.from_bytes">from_bytes() (Bio.Align.bigbed.AutoSQLTable class method)</a>
65386540
</li>

dev/objects.inv

24 Bytes
Binary file not shown.

dev/searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)