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

Updated documentation

parent dd465a80
Branches
Tags
No related merge requests found
...@@ -52,8 +52,9 @@ ...@@ -52,8 +52,9 @@
<div class="body" role="main"> <div class="body" role="main">
<h1>Source code for promod3.rawmodel._closegaps</h1><div class="highlight"><pre> <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">&#39;&#39;&#39;Functions to be &#39;injected&#39; into the RawModellingResult class in the</span>
<span class="sd">__init__.py file.</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="sd">&#39;&#39;&#39;</span>
<span class="kn">import</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="nn">ost</span>
...@@ -207,7 +208,82 @@ ...@@ -207,7 +208,82 @@
<span class="k">return</span> <span class="n">scorer</span> <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> <span class="c"># LocalWords: modeling stereochemically param</span>
</pre></div> </pre></div>
......
...@@ -95,6 +95,8 @@ Raw Coordinate Modeling API ...@@ -95,6 +95,8 @@ Raw Coordinate Modeling API
.. automethod:: CloseSmallDeletions .. automethod:: CloseSmallDeletions
.. automethod:: MergeGapsByDistance
.. LocalWords: currentmodule promod aln AttachView BuildRawModel pdb calpha .. LocalWords: currentmodule promod aln AttachView BuildRawModel pdb calpha
.. LocalWords: RawModelingResult StructuralGapList rawmodel Modeling os ost .. LocalWords: RawModelingResult StructuralGapList rawmodel Modeling os ost
.. LocalWords: testcode tempfile io LoadAlignment LoadPDB fh fn doctest API .. LocalWords: testcode tempfile io LoadAlignment LoadPDB fh fn doctest API
......
...@@ -1157,6 +1157,10 @@ ...@@ -1157,6 +1157,10 @@
</dl></dd> </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><a href="rawmodel/index.html#promod3.rawmodel.RawModelingResult.model">model (promod3.rawmodel.RawModelingResult attribute)</a>
</dt> </dt>
......
No preview for this file type
...@@ -200,6 +200,37 @@ returned.</p> ...@@ -200,6 +200,37 @@ returned.</p>
</table> </table>
</dd></dl> </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> </dd></dl>
</div> </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