Skip to content
Snippets Groups Projects
Commit bf5fc150 authored by Bienchen's avatar Bienchen
Browse files

Updated documentation

parent dd465a80
No related branches found
No related tags found
No related merge requests found
......@@ -52,8 +52,9 @@
<div class="body" role="main">
<h1>Source code for promod3.rawmodel._closegaps</h1><div class="highlight"><pre>
<span class="sd">&#39;&#39;&#39;Single function to be &#39;injected&#39; into the RawModellingResult class in the</span>
<span class="sd">__init__.py file.</span>
<span class="sd">&#39;&#39;&#39;Functions to be &#39;injected&#39; into the RawModellingResult class in the</span>
<span class="sd">__init__.py file. Do not use directly, they belong to the RawModellingResult</span>
<span class="sd">class and are to be called as class method, for instances of this class.</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="kn">import</span> <span class="nn">ost</span>
......@@ -207,7 +208,82 @@
<span class="k">return</span> <span class="n">scorer</span>
<span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;_CloseSmallDeletions&#39;</span><span class="p">]</span>
<span class="k">def</span> <span class="nf">_MergeGapsByDistance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distance</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;Merge 2 neighbouring gaps by deleting residues in-between.</span>
<span class="sd"> Check if two neighbouring gaps are at max. *distance* residues apart from</span>
<span class="sd"> each other. Then delete the residues and store a new gap spanning the whole</span>
<span class="sd"> stretch of original gaps and the deleted region. Original gaps will be</span>
<span class="sd"> removed. Stem residues count to the gap, so **A-A-A** has a distance of 0.</span>
<span class="sd"> .. testcode:: mergegapsbydist</span>
<span class="sd"> :hide:</span>
<span class="sd"> from promod3 import rawmodel</span>
<span class="sd"> tpl = ost.io.LoadPDB(&#39;../tests/rawmodel/data/raw-modeling/1mcg.pdb&#39;)</span>
<span class="sd"> aln = ost.seq.CreateAlignment(ost.seq.CreateSequence(&#39;trg&#39;,</span>
<span class="sd"> &#39;DDFAGDTKNLGHN&#39;),</span>
<span class="sd"> ost.seq.CreateSequence(&#39;tpl&#39;,</span>
<span class="sd"> &#39;NN----A----LF&#39;))</span>
<span class="sd"> aln.AttachView(1, tpl.CreateFullView())</span>
<span class="sd"> rmodel = rawmodel.BuildRawModel(aln)</span>
<span class="sd"> assert len(rmodel.gaps) == 2</span>
<span class="sd"> rmodel.MergeGapsByDistance(0)</span>
<span class="sd"> assert len(rmodel.gaps) == 1</span>
<span class="sd"> .. doctest:: mergegapsbydist</span>
<span class="sd"> import ost</span>
<span class="sd"> from promod3 import rawmodel</span>
<span class="sd"> tpl = ost.io.LoadPDB(&#39;1mcg.pdb&#39;)</span>
<span class="sd"> aln = ost.io.LoadAlignment(&#39;1mcg_aln.fasta&#39;)</span>
<span class="sd"> aln.AttachView(1, tpl.CreateFullView())</span>
<span class="sd"> rmodel = rawmodel.BuildRawModel(aln)</span>
<span class="sd"> rmodel.MergeGapsByDistance(0)</span>
<span class="sd"> :param distance: The max. no. of residues between two gaps up to which</span>
<span class="sd"> merge happens.</span>
<span class="sd"> :type distance: :class:`int`</span>
<span class="sd"> :return: Nothing.</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="c"># IMPORTANT: the assumption is that RawModelingResult stores gaps</span>
<span class="c"># sequentially</span>
<span class="c"># indicate if we merged gaps and should check for more</span>
<span class="n">try_again</span> <span class="o">=</span> <span class="bp">True</span>
<span class="c"># The number of gaps changes on merge, so we cannot just iterate them.</span>
<span class="c"># If we merged gaps, we do not know if this was the last one so try_again</span>
<span class="c"># is set to True. If no more gaps were merged, we stop by leaving try_again</span>
<span class="c"># as False.</span>
<span class="k">while</span> <span class="n">try_again</span><span class="p">:</span>
<span class="n">try_again</span> <span class="o">=</span> <span class="bp">False</span>
<span class="c"># iterate all but the last gap, since we are always looking ahead</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">gaps</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">):</span>
<span class="n">current_gap</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">gaps</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="n">next_gap</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">gaps</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span>
<span class="c"># check that we are on the same chain</span>
<span class="k">if</span> <span class="n">current_gap</span><span class="o">.</span><span class="n">GetChain</span><span class="p">()</span> <span class="o">!=</span> <span class="n">next_gap</span><span class="o">.</span><span class="n">GetChain</span><span class="p">():</span>
<span class="k">continue</span>
<span class="c"># no merging of gaps at the end AND the start :)</span>
<span class="k">if</span> <span class="n">current_gap</span><span class="o">.</span><span class="n">IsNTerminal</span><span class="p">()</span> <span class="ow">and</span> <span class="n">next_gap</span><span class="o">.</span><span class="n">IsCTerminal</span><span class="p">():</span>
<span class="k">continue</span>
<span class="c"># get the distance between the gaps</span>
<span class="n">dist</span> <span class="o">=</span> <span class="n">next_gap</span><span class="o">.</span><span class="n">before</span><span class="o">.</span><span class="n">GetNumber</span><span class="p">()</span><span class="o">.</span><span class="n">GetNum</span><span class="p">()</span> \
<span class="o">-</span> <span class="n">current_gap</span><span class="o">.</span><span class="n">after</span><span class="o">.</span><span class="n">GetNumber</span><span class="p">()</span><span class="o">.</span><span class="n">GetNum</span><span class="p">()</span>
<span class="k">if</span> <span class="n">dist</span> <span class="o">&lt;=</span> <span class="n">distance</span><span class="p">:</span>
<span class="c"># gaps are close enough, combine! combine!</span>
<span class="bp">self</span><span class="o">.</span><span class="n">MergeGaps</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="n">ost</span><span class="o">.</span><span class="n">LogVerbose</span><span class="p">(</span><span class="s">&quot;Merged gap </span><span class="si">%s</span><span class="s"> and </span><span class="si">%s</span><span class="s"> into </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> \
<span class="p">(</span><span class="n">current_gap</span><span class="p">,</span> <span class="n">next_gap</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">gaps</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span>
<span class="n">try_again</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">break</span>
<span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;_CloseSmallDeletions&#39;</span><span class="p">,</span> <span class="s">&#39;_MergeGapsByDistance&#39;</span><span class="p">]</span>
<span class="c"># LocalWords: modeling stereochemically param</span>
</pre></div>
......
......@@ -95,6 +95,8 @@ Raw Coordinate Modeling API
.. automethod:: CloseSmallDeletions
.. automethod:: MergeGapsByDistance
.. LocalWords: currentmodule promod aln AttachView BuildRawModel pdb calpha
.. LocalWords: RawModelingResult StructuralGapList rawmodel Modeling os ost
.. LocalWords: testcode tempfile io LoadAlignment LoadPDB fh fn doctest API
......
......@@ -1157,6 +1157,10 @@
</dl></dd>
<dt><a href="rawmodel/index.html#promod3.rawmodel.RawModelingResult.MergeGapsByDistance">MergeGapsByDistance() (promod3.rawmodel.RawModelingResult method)</a>
</dt>
<dt><a href="rawmodel/index.html#promod3.rawmodel.RawModelingResult.model">model (promod3.rawmodel.RawModelingResult attribute)</a>
</dt>
......
No preview for this file type
......@@ -200,6 +200,37 @@ returned.</p>
</table>
</dd></dl>
<dl class="method">
<dt id="promod3.rawmodel.RawModelingResult.MergeGapsByDistance">
<code class="descname">MergeGapsByDistance</code><span class="sig-paren">(</span><em>distance</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.rawmodel.RawModelingResult.MergeGapsByDistance" title="Permalink to this definition"></a></dt>
<dd><p>Merge 2 neighbouring gaps by deleting residues in-between.</p>
<p>Check if two neighbouring gaps are at max. <em>distance</em> residues apart from
each other. Then delete the residues and store a new gap spanning the whole
stretch of original gaps and the deleted region. Original gaps will be
removed. Stem residues count to the gap, so <strong>A-A-A</strong> has a distance of 0.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">ost</span>
<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">rawmodel</span>
<span class="n">tpl</span> <span class="o">=</span> <span class="n">ost</span><span class="o">.</span><span class="n">io</span><span class="o">.</span><span class="n">LoadPDB</span><span class="p">(</span><span class="s">&#39;1mcg.pdb&#39;</span><span class="p">)</span>
<span class="n">aln</span> <span class="o">=</span> <span class="n">ost</span><span class="o">.</span><span class="n">io</span><span class="o">.</span><span class="n">LoadAlignment</span><span class="p">(</span><span class="s">&#39;1mcg_aln.fasta&#39;</span><span class="p">)</span>
<span class="n">aln</span><span class="o">.</span><span class="n">AttachView</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">tpl</span><span class="o">.</span><span class="n">CreateFullView</span><span class="p">())</span>
<span class="n">rmodel</span> <span class="o">=</span> <span class="n">rawmodel</span><span class="o">.</span><span class="n">BuildRawModel</span><span class="p">(</span><span class="n">aln</span><span class="p">)</span>
<span class="n">rmodel</span><span class="o">.</span><span class="n">MergeGapsByDistance</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
</pre></div>
</div>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>distance</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#int" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a>) &#8211; The max. no. of residues between two gaps up to which
merge happens.</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Nothing.</td>
</tr>
</tbody>
</table>
</dd></dl>
</dd></dl>
</div>
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment