diff --git a/conf-scripts/bc2-conf b/conf-scripts/bc2-conf
index 187c593cba312968d0eb3fe0bd7e3697d7ae7bfd..cceec6bf2db05176c847657c58c60043cf75cb60 100755
--- a/conf-scripts/bc2-conf
+++ b/conf-scripts/bc2-conf
@@ -6,9 +6,8 @@
 function usage_centos5
 {
   echo 'usage:'  
-  echo '  bc2-conf <OST_ROOT> <QMEAN_ROOT> <EIGEN3_INCLUDE_DIR> [OPTIONS]'
+  echo '  bc2-conf <OST_ROOT> <EIGEN3_INCLUDE_DIR> [OPTIONS]'
   echo '  OST_ROOT is the staging directory of OST.'
-  echo '  QMEAN_ROOT is the staging directory of QMEAN.'
   echo '  Valid options are anything that CMake accepts.'
   exit 1
 }
@@ -16,8 +15,7 @@ function usage_centos5
 function usage_centos6
 {
   echo 'usage:'
-  echo '  bc2-conf <QMEAN_ROOT> [OPTIONS]'
-  echo '  QMEAN_ROOT is the staging directory of QMEAN.'
+  echo '  bc2-conf [OPTIONS]'
   echo '  Valid options are anything that CMake accepts.'
   exit 1
 }
@@ -32,26 +30,18 @@ PROMOD3_SRC=${PROMOD3_SRC}/..
 
 if test "$CENTOS_RELEASE" == "6.5"; then
     # configuration for the new environment
-    if test "$NUM_PARAMS" -lt "1"; then
-        echo 'You must specify the location of QMEAN.';
-        usage_centos6
-    fi
-
-    QMEAN_ROOT=$(cd $1; pwd)
-    shift
 
     # load required modules
     module purge
     module load CMake/2.8.12-goolf-1.4.10
-    module load OpenStructure/1.4.0-goolf-1.4.10_20150306
+    #module load OpenStructure/1.4.0-goolf-1.4.10_20150306
     module load Boost/1.47.0-goolf-1.4.10-Python-2.7.5
     module load Python/2.7.5-goolf-1.4.10
     module load OpenBLAS/0.2.6-gompi-1.4.10-LAPACK-3.4.2
     module load Eigen/3.2.1-goolf-1.4.10
     # run cmake
     cmake $PROMOD3_SRC                                            \
-        -DOST_ROOT=$EBROOTOPENSTRUCTURE                           \
-        -DQMEAN_ROOT=$QMEAN_ROOT                                  \
+        -DOST_ROOT=/import/bc2/home/schwede/bienert/git/ost_newenv.git/build_mm/stage \
         -DBOOST_ROOT=$EBROOTBOOST                                 \
         -DPYTHON_ROOT=$EBROOTPYTHON                               \
         -DEIGEN3_INCLUDE_DIR=${EBROOTEIGEN}/include               \
@@ -59,22 +49,19 @@ if test "$CENTOS_RELEASE" == "6.5"; then
         $@
 else
     # configuration for old BC2
-    if test "$NUM_PARAMS" -lt "3"; then
-        echo 'You must specify the locations of OST, QMEAN and Eigen3 (in'\
+    if test "$NUM_PARAMS" -lt "2"; then
+        echo 'You must specify the locations of OST and Eigen3 (in'\
              'that order).';
         usage_centos5
     fi
 
     OST_ROOT=$(cd $1; pwd)
     shift
-    QMEAN_ROOT=$(cd $1; pwd)
-    shift
     EIGEN3_INCLUDE_DIR=$(cd $1; pwd)
     shift
 
     /import/bc2/soft/app/cmake/2.8.7/Linux/bin/cmake $PROMOD3_SRC \
         -DOST_ROOT=$OST_ROOT                                      \
-        -DQMEAN_ROOT=$QMEAN_ROOT                                  \
         -DEIGEN3_INCLUDE_DIR=$EIGEN3_INCLUDE_DIR                  \
         -DBOOST_ROOT=/import/bc2/soft/app/boost/1.47.0/Linux/     \
         -DPYTHON_ROOT=/import/bc2/soft/app/Python/2.7.5/Linux     \
@@ -88,4 +75,4 @@ fi
 # End:
 
 #  LocalWords:  SRC OST promod CMake NUM PARAMS lt fi cd dir centos bc EIGEN
-#  LocalWords:  pwd dirname cmake DPYTHON DBOOST conf Eigen DQMEAN DEIGEN
+#  LocalWords:  pwd dirname cmake DPYTHON DBOOST conf Eigen DEIGEN
diff --git a/doc/html/_modules/index.html b/doc/html/_modules/index.html
index 71f48a347297969fa05bf47a58c120918316f7a2..79ce0d60a744cde6b7438fb2fd18f49d207df877 100644
--- a/doc/html/_modules/index.html
+++ b/doc/html/_modules/index.html
@@ -49,10 +49,40 @@
           <div class="body" role="main">
             
   <h1>All modules for which code is available</h1>
-<ul><li><a href="promod3.html">promod3</a></li>
+<ul><li><a href="BBDepRotamerLib.html">BBDepRotamerLib</a></li>
+<li><a href="Backbone.html">Backbone</a></li>
+<li><a href="BackboneList.html">BackboneList</a></li>
+<li><a href="BackboneLoopScorer.html">BackboneLoopScorer</a></li>
+<li><a href="BackboneRelaxer.html">BackboneRelaxer</a></li>
+<li><a href="CCDCloser.html">CCDCloser</a></li>
+<li><a href="DirtyCCDCloser.html">DirtyCCDCloser</a></li>
+<li><a href="ExponentialCooler.html">ExponentialCooler</a></li>
+<li><a href="FRMRotamer.html">FRMRotamer</a></li>
+<li><a href="FRMRotamerGroup.html">FRMRotamerGroup</a></li>
+<li><a href="FragDB.html">FragDB</a></li>
+<li><a href="Fragger.html">Fragger</a></li>
+<li><a href="Frame.html">Frame</a></li>
+<li><a href="FrameResidue.html">FrameResidue</a></li>
+<li><a href="Graph.html">Graph</a></li>
+<li><a href="KICCloser.html">KICCloser</a></li>
+<li><a href="LinearScorer.html">LinearScorer</a></li>
+<li><a href="LoopCandidate.html">LoopCandidate</a></li>
+<li><a href="LoopCandidates.html">LoopCandidates</a></li>
+<li><a href="Particle.html">Particle</a></li>
+<li><a href="PhiPsiSampler.html">PhiPsiSampler</a></li>
+<li><a href="RRMRotamer.html">RRMRotamer</a></li>
+<li><a href="RRMRotamerGroup.html">RRMRotamerGroup</a></li>
+<li><a href="RotamerLibEntry.html">RotamerLibEntry</a></li>
+<li><a href="SoftSampler.html">SoftSampler</a></li>
+<li><a href="StructureDB.html">StructureDB</a></li>
+<li><a href="TorsionSampler.html">TorsionSampler</a></li>
+<li><a href="promod3.html">promod3</a></li>
 <ul><li><a href="promod3/core/helper.html">promod3.core.helper</a></li>
 <li><a href="promod3/core/pm3argparse.html">promod3.core.pm3argparse</a></li>
+<li><a href="promod3/loop/_loop.html">promod3.loop._loop</a></li>
 <li><a href="promod3/rawmodel/_rawmodel.html">promod3.rawmodel._rawmodel</a></li>
+<li><a href="promod3/sidechain/_sidechain.html">promod3.sidechain._sidechain</a></li>
+<li><a href="promod3/sidechain/reconstruct_sidechains.html">promod3.sidechain.reconstruct_sidechains</a></li>
 </ul><li><a href="test_actions.html">test_actions</a></li>
 </ul>
 
diff --git a/doc/html/_modules/promod3.html b/doc/html/_modules/promod3.html
index 952276bf7e790c266131a2ecf65785ede4b31dbd..401f21a8a4c1d6e86f05b49bd8216a494148ff20 100644
--- a/doc/html/_modules/promod3.html
+++ b/doc/html/_modules/promod3.html
@@ -59,7 +59,7 @@
 <span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">conop</span>
 <span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span>
 
-<div class="viewcode-block" id="SetCompoundsChemlib"><a class="viewcode-back" href="../core/setcompoundschemlib.html#promod3.SetCompoundsChemlib">[docs]</a><span class="k">def</span> <span class="nf">SetCompoundsChemlib</span><span class="p">(</span><span class="n">path_to_chemlib</span><span class="o">=</span><span class="s">&quot;/import/bc2/apps/OpenStructure/1.4.0-goolf-1.4.10_20150306/share/openstructure/compounds.chemlib&quot;</span><span class="p">):</span>
+<div class="viewcode-block" id="SetCompoundsChemlib"><a class="viewcode-back" href="../core/setcompoundschemlib.html#promod3.SetCompoundsChemlib">[docs]</a><span class="k">def</span> <span class="nf">SetCompoundsChemlib</span><span class="p">(</span><span class="n">path_to_chemlib</span><span class="o">=</span><span class="s">&quot;/import/bc2/home/schwede/bienert/git/naccess_smtl.git/compounds.chemlib&quot;</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;SetCompoundsChemlib(path_to_chemlib)</span>
 <span class="sd">    Load a compounds library. Does not return anything, the library is just</span>
 <span class="sd">    enabled globally.</span>
@@ -76,7 +76,7 @@
 <span class="k">try</span><span class="p">:</span>
     <span class="n">ost</span><span class="o">.</span><span class="n">GetSharedDataPath</span><span class="p">()</span>
 <span class="k">except</span> <span class="ne">RuntimeError</span><span class="p">,</span> <span class="n">rt_err</span><span class="p">:</span>
-    <span class="n">ost</span><span class="o">.</span><span class="n">SetPrefixPath</span><span class="p">(</span><span class="s">&quot;/import/bc2/apps/OpenStructure/1.4.0-goolf-1.4.10_20150306&quot;</span><span class="p">)</span>
+    <span class="n">ost</span><span class="o">.</span><span class="n">SetPrefixPath</span><span class="p">(</span><span class="s">&quot;/import/bc2/home/schwede/bienert/git/ost_newenv.git/build_mm/stage&quot;</span><span class="p">)</span>
 <span class="k">except</span><span class="p">:</span>
     <span class="k">raise</span>
 
diff --git a/doc/html/_modules/promod3/core/argcheck.html b/doc/html/_modules/promod3/core/argcheck.html
deleted file mode 100644
index 50017dc813347127cb9ac2f883d3be02be587ea0..0000000000000000000000000000000000000000
--- a/doc/html/_modules/promod3/core/argcheck.html
+++ /dev/null
@@ -1,202 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>promod3.core.argcheck &mdash; ProMod3 0 documentation</title>
-    
-    <link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../../../',
-        VERSION:     '0',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../../../_static/jquery.js"></script>
-    <script type="text/javascript" src="../../../_static/underscore.js"></script>
-    <script type="text/javascript" src="../../../_static/doctools.js"></script>
-    <link rel="top" title="ProMod3 0 documentation" href="../../../index.html" />
-    <link rel="up" title="promod3" href="../../promod3.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../../../genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="../../../py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li><a href="../../../index.html">ProMod3 0 documentation</a> &raquo;</li>
-          <li><a href="../../index.html" >Module code</a> &raquo;</li>
-          <li><a href="../../promod3.html" accesskey="U">promod3</a> &raquo;</li> 
-      </ul>
-    </div>  
-
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  <h1>Source code for promod3.core.argcheck</h1><div class="highlight"><pre>
-<span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">Basic helpers for arguments.</span>
-<span class="sd">&quot;&quot;&quot;</span>
-
-<span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">sys</span>
-<span class="kn">import</span> <span class="nn">ost</span>
-<span class="kn">import</span> <span class="nn">helper</span>
-
-<div class="viewcode-block" id="FileExists"><a class="viewcode-back" href="../../../core/argcheck.html#promod3.core.argcheck.FileExists">[docs]</a><span class="k">def</span> <span class="nf">FileExists</span><span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">exit_status</span><span class="p">,</span> <span class="nb">file</span><span class="p">):</span>
-  <span class="sd">&#39;&#39;&#39;</span>
-<span class="sd">  Checks if a file exists, terminates if not. The error message displayed is</span>
-<span class="sd">  fixed and only needs a *prefix* describing the specimen of file.</span>
-
-<span class="sd">  :param prefix: String to put in front of the failure-message</span>
-<span class="sd">                 &quot;file does not exist: ``file``&quot;.</span>
-<span class="sd">  :type prefix: :class:`str`</span>
-
-<span class="sd">  :param exit_status: Exit code on missing file, ends up in ``$?`` in the</span>
-<span class="sd">         shell. ``0`` is traditionally reserved to successful commands.</span>
-<span class="sd">  :type exit_status: :class:`int`</span>
-
-<span class="sd">  :param file: Path including file name to be checked.</span>
-<span class="sd">  :type file: :class:`str`</span>
-
-<span class="sd">  :returns: No return value, exits script with value ``exit_status`` if file is</span>
-<span class="sd">            missing.</span>
-<span class="sd">  &#39;&#39;&#39;</span>
-  <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="nb">file</span><span class="p">):</span>
-    <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&#39;</span><span class="si">%s</span><span class="s"> file does not exist: </span><span class="si">%s</span><span class="se">\n</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="nb">file</span><span class="p">),</span>
-                     <span class="n">exit_status</span><span class="p">)</span>
-</div>
-<div class="viewcode-block" id="FileExtension"><a class="viewcode-back" href="../../../core/argcheck.html#promod3.core.argcheck.FileExtension">[docs]</a><span class="k">def</span> <span class="nf">FileExtension</span><span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">exit_status</span><span class="p">,</span> <span class="nb">file</span><span class="p">,</span> <span class="n">extensions</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
-  <span class="sd">&#39;&#39;&#39;</span>
-<span class="sd">  Checks a file to carry a known extension given by a list of strings. Since</span>
-<span class="sd">  files are very often compressed these days, an additional &quot;gz&quot; suffix can be</span>
-<span class="sd">  tracked automatically by this function. Thus, the list of *extensions* only</span>
-<span class="sd">  needs to contain what you are really looking for, e.g. (&quot;pdb&quot;) instead of</span>
-<span class="sd">  (&quot;pdb&quot;, &quot;pdb.gz&quot;). The *gz* flag also determines the output of this function.</span>
-<span class="sd">  If enabled, a triple is returned: name of the file without extension, its</span>
-<span class="sd">  extension and a Boolean to tell whether the file carries the gzip extension</span>
-<span class="sd">  or not. If *gz* detection is turned of, only a tuple is returned: file name</span>
-<span class="sd">  and extension. If the tested file name has an unrecognised extension, this</span>
-<span class="sd">  function terminates the script.</span>
-
-<span class="sd">  :param prefix: String to put in front of the failure-message</span>
-<span class="sd">                 &quot;file extension not supported: ``file``&quot;.</span>
-<span class="sd">  :type prefix: :class:`str`</span>
-
-<span class="sd">  :param exit_status: Exit code on missing file, ends up in ``$?`` in the</span>
-<span class="sd">         shell. ``0`` is traditionally reserved to successful commands.</span>
-<span class="sd">  :type exit_status: :class:`int`</span>
-
-<span class="sd">  :param file: Path including file name to be checked.</span>
-<span class="sd">  :type file: :class:`str`</span>
-
-<span class="sd">  :param extensions: List of strings without a leading &quot;.&quot;.</span>
-<span class="sd">  :type extensions: :class:`list`</span>
-
-<span class="sd">  :param gz: Indicates whether to check for an additional &quot;gz&quot; extension.</span>
-<span class="sd">  :type gz: :class:`bool`</span>
-
-<span class="sd">  :returns: (base name of ``file`` (:class:`str`), extension of file without a</span>
-<span class="sd">            &quot;.gz&quot; (:class:`str`), flag to indicate an additional &quot;.gz&quot;</span>
-<span class="sd">            (:class:`bool`)) **if** ``gz`` is set, (base name of ``file``</span>
-<span class="sd">            (:class:`str`), extension of file) **if not**.</span>
-<span class="sd">  &#39;&#39;&#39;</span>
-  <span class="n">filename</span><span class="p">,</span> <span class="n">fileext</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="nb">file</span><span class="p">)</span>
-  <span class="n">is_gz</span> <span class="o">=</span> <span class="bp">False</span>
-  <span class="k">if</span> <span class="n">fileext</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&#39;.gz&#39;</span><span class="p">:</span>
-    <span class="n">is_gz</span> <span class="o">=</span> <span class="bp">True</span>
-    <span class="n">filename</span><span class="p">,</span> <span class="n">fileext</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
-    <span class="k">if</span> <span class="ow">not</span> <span class="n">gz</span><span class="p">:</span>
-      <span class="n">extension_string</span> <span class="o">=</span> <span class="s">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">extensions</span><span class="p">)</span>
-      <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&#39;</span><span class="si">%s</span><span class="s"> file extension not supported: </span><span class="si">%s</span><span class="s">. &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span>
-                                                                        <span class="nb">file</span><span class="p">)</span><span class="o">+</span>
-                       <span class="s">&#39;Allowed extensions are: </span><span class="si">%s</span><span class="se">\n</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">extension_string</span><span class="p">,</span>
-                       <span class="n">exit_status</span><span class="p">)</span>
-  <span class="k">if</span> <span class="n">fileext</span> <span class="o">==</span> <span class="s">&#39;&#39;</span><span class="p">:</span>
-    <span class="n">extension_string</span> <span class="o">=</span> <span class="s">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">extensions</span><span class="p">)</span>
-    <span class="k">if</span> <span class="n">gz</span><span class="p">:</span>
-      <span class="n">extension_string</span> <span class="o">+=</span> <span class="s">&#39;, &#39;</span> <span class="o">+</span> <span class="s">&#39;.gz, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">extensions</span><span class="p">)</span> <span class="o">+</span> <span class="s">&#39;.gz&#39;</span>
-      <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&#39;</span><span class="si">%s</span><span class="s"> file extension not supported: </span><span class="si">%s</span><span class="s">. &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span>
-                                                                        <span class="nb">file</span><span class="p">)</span><span class="o">+</span>
-                       <span class="s">&#39;Allowed extensions are: </span><span class="si">%s</span><span class="se">\n</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">extension_string</span><span class="p">,</span>
-                       <span class="n">exit_status</span><span class="p">)</span>
-  <span class="n">fileext</span> <span class="o">=</span> <span class="n">fileext</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
-  <span class="k">for</span> <span class="n">ext</span> <span class="ow">in</span> <span class="n">extensions</span><span class="p">:</span>
-    <span class="k">if</span> <span class="n">fileext</span> <span class="o">==</span> <span class="n">ext</span><span class="o">.</span><span class="n">lower</span><span class="p">():</span>
-      <span class="k">if</span> <span class="n">gz</span><span class="p">:</span>
-        <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">filename</span><span class="p">),</span> <span class="n">fileext</span><span class="p">,</span> <span class="n">is_gz</span>
-      <span class="k">else</span><span class="p">:</span>
-        <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">filename</span><span class="p">),</span> <span class="n">fileext</span>
-  <span class="n">extension_string</span> <span class="o">=</span> <span class="s">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">extensions</span><span class="p">)</span>
-  <span class="k">if</span> <span class="n">gz</span><span class="p">:</span>
-    <span class="n">extension_string</span> <span class="o">+=</span> <span class="s">&#39;, &#39;</span> <span class="o">+</span> <span class="s">&#39;.gz, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">extensions</span><span class="p">)</span> <span class="o">+</span> <span class="s">&#39;.gz&#39;</span>
-  <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&#39;</span><span class="si">%s</span><span class="s"> file extension not supported: </span><span class="si">%s</span><span class="s">. &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span>
-                                                                    <span class="nb">file</span><span class="p">)</span><span class="o">+</span>
-                   <span class="s">&#39;Allowed extensions are: </span><span class="si">%s</span><span class="se">\n</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">extension_string</span><span class="p">,</span>
-                   <span class="n">exit_status</span><span class="p">)</span>
-</div>
-<span class="n">__all__</span> <span class="o">=</span> <span class="p">(</span>
-  <span class="s">&#39;FileExists&#39;</span><span class="p">,</span>
-  <span class="s">&#39;FileExtension&#39;</span><span class="p">,</span>
-<span class="p">)</span>
-
-<span class="c">#  LocalWords:  gz pdb gzip bool os sys FileExists FileExtension filename</span>
-<span class="c">#  LocalWords:  fileext</span>
-</pre></div>
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-<div id="searchbox" style="display: none">
-  <h3>Quick search</h3>
-    <form class="search" action="../../../search.html" method="get">
-      <input type="text" name="q" />
-      <input type="submit" value="Go" />
-      <input type="hidden" name="check_keywords" value="yes" />
-      <input type="hidden" name="area" value="default" />
-    </form>
-    <p class="searchtip" style="font-size: 90%">
-    Enter search terms or a module, class or function name.
-    </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="../../../genindex.html" title="General Index"
-             >index</a></li>
-        <li class="right" >
-          <a href="../../../py-modindex.html" title="Python Module Index"
-             >modules</a> |</li>
-        <li><a href="../../../index.html">ProMod3 0 documentation</a> &raquo;</li>
-          <li><a href="../../index.html" >Module code</a> &raquo;</li>
-          <li><a href="../../promod3.html" >promod3</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-        &copy; Copyright 2014, Bienchen.
-      Last updated on Mar 24 17:42, 2015.
-      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
-    </div>
-  </body>
-</html>
diff --git a/doc/html/_modules/promod3/core/pm3argparse.html b/doc/html/_modules/promod3/core/pm3argparse.html
index 01998d8b3af979496130c526ccfb522fe7b1ebd1..212e0bae5bc5a9b7f5a4cce34a71b4eee1ab5d21 100644
--- a/doc/html/_modules/promod3/core/pm3argparse.html
+++ b/doc/html/_modules/promod3/core/pm3argparse.html
@@ -61,12 +61,233 @@
 <span class="kn">import</span> <span class="nn">os</span>
 <span class="kn">import</span> <span class="nn">gzip</span>
 <span class="kn">import</span> <span class="nn">tempfile</span>
+<span class="c">#try:</span>
+<span class="c">#    import ujson as json</span>
+<span class="c">#except ImportError:</span>
+<span class="kn">import</span> <span class="nn">json</span>
 
 <span class="kn">import</span> <span class="nn">ost</span>
 <span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">io</span><span class="p">,</span> <span class="n">seq</span>
 
 <span class="kn">from</span> <span class="nn">promod3.core</span> <span class="kn">import</span> <span class="n">helper</span>
 
+<span class="k">def</span> <span class="nf">_TmpForGZip</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">suffix</span><span class="p">,</span> <span class="n">msg_prefix</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Unpack a file to a tmp file if gzipped.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">helper</span><span class="o">.</span><span class="n">FileExists</span><span class="p">(</span><span class="n">msg_prefix</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
+    <span class="n">zip_fh</span> <span class="o">=</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+    <span class="n">unzip_str</span> <span class="o">=</span> <span class="n">zip_fh</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+    <span class="n">zip_fh</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+    <span class="n">unzip_file</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">NamedTemporaryFile</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="s">&#39;w&#39;</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="n">suffix</span><span class="p">)</span>
+    <span class="n">unzip_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">unzip_str</span><span class="p">)</span>
+    <span class="n">unzip_file</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
+    <span class="k">return</span> <span class="n">unzip_file</span>
+
+<span class="k">def</span> <span class="nf">_CheckJSONAlnSeqKeyType</span><span class="p">(</span><span class="n">key_name</span><span class="p">,</span> <span class="n">val_type</span><span class="p">,</span> <span class="n">json_aln</span><span class="p">,</span> <span class="n">seqtype</span><span class="p">,</span> <span class="n">json_source</span><span class="p">):</span>
+    <span class="sd">&#39;&#39;&#39;Check a key/ value in a sequence exists and is of certain type.</span>
+<span class="sd">    &#39;&#39;&#39;</span>
+    <span class="k">if</span> <span class="n">key_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">json_aln</span><span class="p">[</span><span class="n">seqtype</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+        <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;JSON &#39;alignmentlist&#39; &#39;</span><span class="si">%s</span><span class="s">&#39; &quot;</span> <span class="o">%</span> <span class="n">seqtype</span><span class="o">+</span>
+                               <span class="s">&quot;from &#39;</span><span class="si">%s</span><span class="s">&#39; is &quot;</span> <span class="o">%</span> <span class="n">json_source</span><span class="o">+</span>
+                               <span class="s">&quot;missing the &#39;</span><span class="si">%s</span><span class="s">&#39; key&quot;</span> <span class="o">%</span> <span class="n">key_name</span><span class="p">,</span> <span class="mi">27</span><span class="p">)</span>
+    <span class="n">altype</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">json_aln</span><span class="p">[</span><span class="n">seqtype</span><span class="p">][</span><span class="n">key_name</span><span class="p">])</span>
+
+    <span class="k">if</span> <span class="n">val_type</span> <span class="ow">is</span> <span class="nb">str</span> <span class="ow">or</span> <span class="n">val_type</span> <span class="ow">is</span> <span class="nb">unicode</span><span class="p">:</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">altype</span> <span class="ow">is</span> <span class="nb">unicode</span> <span class="ow">or</span> <span class="n">altype</span> <span class="ow">is</span> <span class="nb">str</span><span class="p">):</span>
+            <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;JSON &#39;alignmentlist&#39; &#39;</span><span class="si">%s</span><span class="s">&#39; &quot;</span> <span class="o">%</span> <span class="n">seqtype</span><span class="o">+</span>
+                                   <span class="s">&quot;&#39;</span><span class="si">%s</span><span class="s">&#39; from&quot;</span> <span class="o">%</span> <span class="n">key_name</span><span class="o">+</span>
+                                   <span class="s">&quot;&#39;</span><span class="si">%s</span><span class="s">&#39; is not a &quot;</span> <span class="o">%</span> <span class="n">json_source</span><span class="o">+</span>
+                                   <span class="s">&quot;</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">val_type</span><span class="p">),</span> <span class="mi">28</span><span class="p">)</span>
+    <span class="k">elif</span> <span class="ow">not</span> <span class="n">altype</span> <span class="ow">is</span> <span class="n">val_type</span><span class="p">:</span>
+        <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;JSON &#39;alignmentlist&#39; &#39;</span><span class="si">%s</span><span class="s">&#39; &quot;</span> <span class="o">%</span> <span class="n">seqtype</span><span class="o">+</span>
+                               <span class="s">&quot;&#39;</span><span class="si">%s</span><span class="s">&#39; from&quot;</span> <span class="o">%</span> <span class="n">key_name</span><span class="o">+</span>
+                               <span class="s">&quot;&#39;</span><span class="si">%s</span><span class="s">&#39; is not a &quot;</span> <span class="o">%</span> <span class="n">json_source</span><span class="o">+</span>
+                               <span class="s">&quot;</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">val_type</span><span class="p">),</span> <span class="mi">28</span><span class="p">)</span>
+
+<span class="k">def</span> <span class="nf">_CreateNewAln</span><span class="p">(</span><span class="n">trg_name</span><span class="p">,</span> <span class="n">trg_seq</span><span class="p">,</span> <span class="n">trg_start</span><span class="p">,</span> <span class="n">trg_end</span><span class="p">,</span> <span class="n">tpl_name</span><span class="p">,</span> <span class="n">tpl_seq</span><span class="p">,</span>
+                  <span class="n">tpl_offset</span><span class="p">):</span>
+    <span class="c"># iternal function to makes things easier in other places, pylint ignored</span>
+    <span class="c">#pylint: disable=too-many-arguments</span>
+    <span class="sd">&#39;&#39;&#39;Produce a new target-template alignment</span>
+<span class="sd">    &#39;&#39;&#39;</span>
+    <span class="n">new_aln</span> <span class="o">=</span> <span class="n">seq</span><span class="o">.</span><span class="n">CreateAlignment</span><span class="p">(</span><span class="n">seq</span><span class="o">.</span><span class="n">CreateSequence</span><span class="p">(</span>\
+                                                    <span class="n">trg_name</span><span class="p">,</span>
+                                                    <span class="n">trg_seq</span><span class="p">[</span><span class="n">trg_start</span><span class="p">:</span><span class="n">trg_end</span><span class="p">]),</span>
+                                  <span class="n">seq</span><span class="o">.</span><span class="n">CreateSequence</span><span class="p">(</span><span class="n">tpl_name</span><span class="p">,</span> <span class="n">tpl_seq</span><span class="p">))</span>
+    <span class="n">new_aln</span><span class="o">.</span><span class="n">SetSequenceRole</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s">&#39;TARGET&#39;</span><span class="p">)</span>
+    <span class="n">new_aln</span><span class="o">.</span><span class="n">SetSequenceRole</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;TEMPLATE&#39;</span><span class="p">)</span>
+    <span class="n">new_aln</span><span class="o">.</span><span class="n">SetSequenceOffset</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">tpl_offset</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">new_aln</span>
+
+<span class="k">def</span> <span class="nf">_GetAlnFromJSON</span><span class="p">(</span><span class="n">json_object</span><span class="p">,</span> <span class="n">json_source</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Create alignments from a JSON object.</span>
+
+<span class="sd">    Iterate the alignments in a JSON object and deliver OST alignments via the</span>
+<span class="sd">    yield operator.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c"># alignments are stored via the &#39;alignmentlist&#39; key</span>
+    <span class="k">if</span> <span class="s">&#39;alignmentlist&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">json_object</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+        <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;JSON object from &#39;</span><span class="si">%s</span><span class="s">&#39; does not &quot;</span> <span class="o">%</span> <span class="n">json_source</span><span class="o">+</span>
+                               <span class="s">&quot;provide an &#39;alignmentlist&#39; key.&quot;</span><span class="p">,</span> <span class="mi">21</span><span class="p">)</span>
+    <span class="c"># alignments come as lists, to enable hetero oligos</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">json_object</span><span class="p">[</span><span class="s">&#39;alignmentlist&#39;</span><span class="p">])</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
+        <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;JSON object from &#39;</span><span class="si">%s</span><span class="s">&#39; does not&quot;</span> <span class="o">%</span> <span class="n">json_source</span><span class="o">+</span>
+                               <span class="s">&quot;provide a list behind &#39;alignmentlist&#39;.&quot;</span><span class="p">,</span> <span class="mi">24</span><span class="p">)</span>
+    <span class="c"># take the alignments apart, each alignment is a dictionary</span>
+    <span class="k">for</span> <span class="n">json_aln</span> <span class="ow">in</span> <span class="n">json_object</span><span class="p">[</span><span class="s">&#39;alignmentlist&#39;</span><span class="p">]:</span>
+        <span class="c"># json_aln needs to be a dictionary</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">json_aln</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">dict</span><span class="p">:</span>
+            <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;JSON &#39;alignmentlist&#39; member from &quot;</span><span class="o">+</span>
+                                   <span class="s">&quot;&#39;</span><span class="si">%s</span><span class="s">&#39; is not a &#39; &quot;</span> <span class="o">%</span>  <span class="n">json_source</span><span class="o">+</span>
+                                   <span class="s">&quot; dictionary: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">json_aln</span><span class="p">,</span> <span class="mi">25</span><span class="p">)</span>
+        <span class="c"># an alignment has a &#39;target&#39; and a &#39;template&#39; dictionary</span>
+        <span class="c"># each of them has a &#39;name&#39; and a &#39;seqres&#39; pair</span>
+        <span class="k">for</span> <span class="n">flav</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;target&#39;</span><span class="p">,</span> <span class="s">&#39;template&#39;</span><span class="p">]:</span>
+            <span class="k">if</span> <span class="n">flav</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">json_aln</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+                <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;JSON &#39;alignmentlist&#39; from &quot;</span><span class="o">+</span>
+                                       <span class="s">&quot;&#39;</span><span class="si">%s</span><span class="s">&#39; does not &quot;</span> <span class="o">%</span> <span class="n">json_source</span><span class="o">+</span>
+                                       <span class="s">&quot;provide a &#39;</span><span class="si">%s</span><span class="s">&#39; key.&quot;</span> <span class="o">%</span> <span class="n">flav</span><span class="p">,</span> <span class="mi">22</span><span class="p">)</span>
+            <span class="c"># check sequence to be dictionary</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">json_aln</span><span class="p">[</span><span class="n">flav</span><span class="p">])</span> <span class="ow">is</span> <span class="nb">dict</span><span class="p">:</span>
+                <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;JSON &#39;alignmentlist&#39; &#39;</span><span class="si">%s</span><span class="s">&#39; from&quot;</span> <span class="o">%</span> <span class="n">flav</span><span class="o">+</span>
+                                       <span class="s">&quot;&#39;</span><span class="si">%s</span><span class="s">&#39; is not a &quot;</span> <span class="o">%</span> <span class="n">json_source</span><span class="o">+</span>
+                                       <span class="s">&quot;dictionary: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">json_aln</span><span class="p">[</span><span class="n">flav</span><span class="p">],</span> <span class="mi">26</span><span class="p">)</span>
+            <span class="c"># check for keys needed by both sequences:</span>
+            <span class="k">for</span> <span class="n">aln_key</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;name&#39;</span><span class="p">,</span> <span class="s">&#39;seqres&#39;</span><span class="p">]:</span>
+                <span class="n">_CheckJSONAlnSeqKeyType</span><span class="p">(</span><span class="n">aln_key</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">json_aln</span><span class="p">,</span> <span class="n">flav</span><span class="p">,</span>
+                                        <span class="n">json_source</span><span class="p">)</span>
+        <span class="n">_CheckJSONAlnSeqKeyType</span><span class="p">(</span><span class="s">&#39;offset&#39;</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="n">json_aln</span><span class="p">,</span> <span class="s">&#39;template&#39;</span><span class="p">,</span>
+                                <span class="n">json_source</span><span class="p">)</span>
+
+        <span class="k">yield</span> <span class="n">_CreateNewAln</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">json_aln</span><span class="p">[</span><span class="s">&#39;target&#39;</span><span class="p">][</span><span class="s">&#39;name&#39;</span><span class="p">])</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
+                            <span class="nb">str</span><span class="p">(</span><span class="n">json_aln</span><span class="p">[</span><span class="s">&#39;target&#39;</span><span class="p">][</span><span class="s">&#39;seqres&#39;</span><span class="p">]),</span>
+                            <span class="mi">0</span><span class="p">,</span>
+                            <span class="nb">len</span><span class="p">(</span><span class="n">json_aln</span><span class="p">[</span><span class="s">&#39;target&#39;</span><span class="p">][</span><span class="s">&#39;seqres&#39;</span><span class="p">]),</span>
+                            <span class="nb">str</span><span class="p">(</span><span class="n">json_aln</span><span class="p">[</span><span class="s">&#39;template&#39;</span><span class="p">][</span><span class="s">&#39;name&#39;</span><span class="p">])</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
+                            <span class="nb">str</span><span class="p">(</span><span class="n">json_aln</span><span class="p">[</span><span class="s">&#39;template&#39;</span><span class="p">][</span><span class="s">&#39;seqres&#39;</span><span class="p">]),</span>
+                            <span class="n">json_aln</span><span class="p">[</span><span class="s">&#39;template&#39;</span><span class="p">][</span><span class="s">&#39;offset&#39;</span><span class="p">])</span>
+
+<span class="k">def</span> <span class="nf">_GetJSONOBject</span><span class="p">(</span><span class="n">json_input</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Get a JSON object out of a string which may be an object or a path.</span>
+
+<span class="sd">    If the input string starts with &#39;{&#39;, we assume its a JSON object. File names</span>
+<span class="sd">    starting with &#39;{&#39; would be a bit weird.</span>
+
+<span class="sd">    If we are looking at a file, check and load it.</span>
+
+<span class="sd">    For a JSON object, check that everything is there. No checks for</span>
+<span class="sd">    superfluous stuff.</span>
+
+<span class="sd">    As returnvalue we only use JSON objects.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">if</span> <span class="n">json_input</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;{&#39;</span><span class="p">:</span>
+        <span class="n">is_gz</span> <span class="o">=</span> <span class="n">helper</span><span class="o">.</span><span class="n">FileGzip</span><span class="p">(</span><span class="s">&quot;JSON alignment&quot;</span><span class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span class="n">json_input</span><span class="p">)</span>
+        <span class="n">readfile</span> <span class="o">=</span> <span class="n">json_input</span>
+        <span class="k">if</span> <span class="n">is_gz</span><span class="p">:</span>
+            <span class="n">unzip_file</span> <span class="o">=</span> <span class="n">_TmpForGZip</span><span class="p">(</span><span class="n">json_input</span><span class="p">,</span> <span class="s">&#39;.json&#39;</span><span class="p">,</span> <span class="s">&quot;JSON alignment&quot;</span><span class="p">)</span>
+            <span class="n">readfile</span> <span class="o">=</span> <span class="n">unzip_file</span><span class="o">.</span><span class="n">name</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">jfh</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">readfile</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">IOError</span><span class="p">,</span> <span class="n">ioe</span><span class="p">:</span>
+            <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--json&#39; file &#39;</span><span class="si">%s</span><span class="s">&#39; &quot;</span> <span class="o">%</span> <span class="n">json_input</span><span class="o">+</span>
+                                   <span class="s">&quot;can not be processed: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">ioe</span><span class="o">.</span><span class="n">strerror</span><span class="p">,</span>
+                                   <span class="mi">19</span><span class="p">)</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">json_object</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">jfh</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="n">vae</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">vae</span><span class="o">.</span><span class="n">message</span> <span class="o">==</span> <span class="s">&#39;No JSON object could be decoded&#39;</span><span class="p">:</span>
+                <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--json&#39; file &#39;</span><span class="si">%s</span><span class="s">&#39; could &quot;</span> <span class="o">%</span> <span class="n">json_input</span><span class="o">+</span>
+                                       <span class="s">&quot;not be processed into a JSON object, &quot;</span><span class="o">+</span>
+                                       <span class="s">&quot;probably it&#39;s empty.&quot;</span><span class="p">,</span> <span class="mi">20</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="k">raise</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">raise</span>
+        <span class="n">jfh</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">json_object</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">json_input</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="n">vae</span><span class="p">:</span>
+            <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--json&#39; string &#39;</span><span class="si">%s</span><span class="s">&#39; &quot;</span> <span class="o">%</span> <span class="n">json_input</span><span class="o">+</span>\
+                                   <span class="s">&quot;could not be decoded: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">vae</span><span class="o">.</span><span class="n">message</span><span class="p">,</span> <span class="mi">23</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">json_object</span>
+
+<span class="k">def</span> <span class="nf">_GetTrgNameSeqFile</span><span class="p">(</span><span class="n">argstr</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Sort out what is target name and what is the sequence file name.</span>
+
+<span class="sd">    With only two items in the argument string to &#39;--fasta&#39; we allow arbitrary</span>
+<span class="sd">    orders. So we have to check for the &#39;trg:&#39; prefix. With this, sequence files</span>
+<span class="sd">    names may not start with &#39;trg:&#39;.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">if</span> <span class="n">argstr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&#39;trg:&#39;</span><span class="p">):</span>
+        <span class="n">trgname</span> <span class="o">=</span> <span class="n">argstr</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">4</span><span class="p">:]</span>
+        <span class="n">seqfile</span> <span class="o">=</span> <span class="n">argstr</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+    <span class="k">elif</span> <span class="n">argstr</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&#39;trg:&#39;</span><span class="p">):</span>
+        <span class="n">trgname</span> <span class="o">=</span> <span class="n">argstr</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">4</span><span class="p">:]</span>
+        <span class="n">seqfile</span> <span class="o">=</span> <span class="n">argstr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta </span><span class="si">%s</span><span class="s">&#39; requires &quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">argstr</span><span class="p">)</span><span class="o">+</span>
+                               <span class="s">&quot;one argument prefixed with &#39;trg:&#39; marking &quot;</span><span class="o">+</span>
+                               <span class="s">&quot;the target sequence name&quot;</span><span class="p">,</span> <span class="mi">11</span><span class="p">)</span>
+    <span class="c"># check that &#39;trg:&#39; has a string attached</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">trgname</span><span class="p">):</span>
+        <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta </span><span class="si">%s</span><span class="s">&#39; requires &quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">argstr</span><span class="p">)</span><span class="o">+</span>
+                               <span class="s">&quot;argument &#39;trg:&#39; defining the &quot;</span><span class="o">+</span>
+                               <span class="s">&quot;target sequence name, empty one &quot;</span><span class="o">+</span>
+                               <span class="s">&quot;found: &#39;</span><span class="si">%s</span><span class="s">&#39;&quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">argstr</span><span class="p">),</span> <span class="mi">14</span><span class="p">)</span>
+    <span class="n">helper</span><span class="o">.</span><span class="n">FileExists</span><span class="p">(</span><span class="s">&quot;Alignment&quot;</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="n">seqfile</span><span class="p">)</span>
+
+    <span class="k">return</span> <span class="n">trgname</span><span class="p">,</span> <span class="n">seqfile</span>
+
+<span class="k">def</span> <span class="nf">_FetchAlnFromFastaOpt</span><span class="p">(</span><span class="n">argstr</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Dissasemble an argument to &#39;--fasta&#39; into an alignment and return.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">trgname</span><span class="p">,</span> <span class="n">seqfile</span> <span class="o">=</span> <span class="n">_GetTrgNameSeqFile</span><span class="p">(</span><span class="n">argstr</span><span class="p">)</span>
+    <span class="c"># checking if alignment file has &#39;gz&#39; extension</span>
+    <span class="n">is_gz</span> <span class="o">=</span> <span class="n">helper</span><span class="o">.</span><span class="n">FileGzip</span><span class="p">(</span><span class="s">&quot;Alignment&quot;</span><span class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span class="n">seqfile</span><span class="p">)</span>
+    <span class="c"># loading the alignment, switch for gzip</span>
+    <span class="n">readfile</span> <span class="o">=</span> <span class="n">seqfile</span>
+    <span class="k">if</span> <span class="n">is_gz</span><span class="p">:</span>
+        <span class="n">unzip_file</span> <span class="o">=</span> <span class="n">_TmpForGZip</span><span class="p">(</span><span class="n">seqfile</span><span class="p">,</span> <span class="s">&#39;.fas&#39;</span><span class="p">,</span> <span class="s">&quot;Alignment&quot;</span><span class="p">)</span>
+        <span class="n">readfile</span> <span class="o">=</span> <span class="n">unzip_file</span><span class="o">.</span><span class="n">name</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">aln</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="n">readfile</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">&quot;fasta&quot;</span><span class="p">)</span>
+    <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">exc</span><span class="p">:</span> <span class="c">#pylint: disable=broad-except</span>
+        <span class="k">if</span> <span class="n">exc</span><span class="o">.</span><span class="n">message</span> <span class="o">==</span> <span class="s">&#39;Bad FASTA file: File is empty&#39;</span><span class="p">:</span>
+            <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta </span><span class="si">%s</span><span class="s">&#39; &quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">argstr</span><span class="p">)</span><span class="o">+</span>
+                                   <span class="s">&quot;refers to an empty file or its in the &quot;</span><span class="o">+</span>
+                                   <span class="s">&quot;wrong format.&quot;</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">exc</span><span class="o">.</span><span class="n">message</span> <span class="o">==</span> <span class="s">&#39;sequences have different lengths&#39;</span><span class="p">:</span>
+            <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta </span><span class="si">%s</span><span class="s">&#39;: &quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">argstr</span><span class="p">)</span><span class="o">+</span>
+                                   <span class="s">&quot;sequences in the alignment &quot;</span><span class="o">+</span>
+                                   <span class="s">&quot;have different length.&quot;</span><span class="p">,</span> <span class="mi">18</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">raise</span>
+    <span class="k">finally</span><span class="p">:</span>
+        <span class="k">if</span> <span class="n">is_gz</span><span class="p">:</span>
+            <span class="n">unzip_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+    <span class="c"># checking the alignment: only 2 sequences allowed, target name must be</span>
+    <span class="c"># the name of one of the sequences</span>
+    <span class="n">nos</span> <span class="o">=</span> <span class="n">aln</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
+    <span class="k">if</span> <span class="n">nos</span> <span class="o">&gt;</span> <span class="mi">2</span><span class="p">:</span>
+        <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta </span><span class="si">%s</span><span class="s">&#39; points to &quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">argstr</span><span class="p">)</span><span class="o">+</span>
+                               <span class="s">&quot;an alignment with more than 2 sequences.&quot;</span><span class="p">,</span>
+                               <span class="mi">16</span><span class="p">)</span>
+    <span class="n">fst_seq</span> <span class="o">=</span> <span class="n">aln</span><span class="o">.</span><span class="n">GetSequence</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+    <span class="n">snd_seq</span> <span class="o">=</span> <span class="n">aln</span><span class="o">.</span><span class="n">GetSequence</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">fst_seq</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="n">trgname</span><span class="p">:</span>
+        <span class="n">new_aln</span> <span class="o">=</span> <span class="n">_AssembleTrgTplAln</span><span class="p">(</span><span class="n">fst_seq</span><span class="p">,</span> <span class="n">snd_seq</span><span class="p">)</span>
+    <span class="k">elif</span> <span class="n">snd_seq</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="n">trgname</span><span class="p">:</span>
+        <span class="n">new_aln</span> <span class="o">=</span> <span class="n">_AssembleTrgTplAln</span><span class="p">(</span><span class="n">snd_seq</span><span class="p">,</span> <span class="n">fst_seq</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta </span><span class="si">%s</span><span class="s">&#39; does not &quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">argstr</span><span class="p">)</span><span class="o">+</span>
+                               <span class="s">&quot;define a target name found in the &quot;</span><span class="o">+</span>
+                               <span class="s">&quot;alignment.&quot;</span><span class="p">,</span> <span class="mi">17</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">seqfile</span><span class="p">,</span> <span class="n">new_aln</span>
+
 <span class="k">def</span> <span class="nf">_AssembleTrgTplAln</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">template</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Internal function: Assemble a target-template alignment without leading/</span>
@@ -88,12 +309,20 @@
     <span class="n">tpl_str</span> <span class="o">=</span> <span class="s">&#39;&#39;</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="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">):</span>
         <span class="n">tpl_str</span> <span class="o">+=</span> <span class="n">template</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
-    <span class="n">new_aln</span> <span class="o">=</span> <span class="n">seq</span><span class="o">.</span><span class="n">CreateAlignment</span><span class="p">(</span><span class="n">seq</span><span class="o">.</span><span class="n">CreateSequence</span><span class="p">(</span><span class="n">target</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
-                                                     <span class="nb">str</span><span class="p">(</span><span class="n">target</span><span class="p">)[</span><span class="n">start</span><span class="p">:</span><span class="n">end</span><span class="p">]),</span>
-                                  <span class="n">seq</span><span class="o">.</span><span class="n">CreateSequence</span><span class="p">(</span><span class="n">template</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
-                                                     <span class="n">tpl_str</span><span class="p">))</span>
-    <span class="n">new_aln</span><span class="o">.</span><span class="n">SetSequenceOffset</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">start</span><span class="p">)</span>
-    <span class="k">return</span> <span class="n">new_aln</span>
+    <span class="k">return</span> <span class="n">_CreateNewAln</span><span class="p">(</span><span class="n">target</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="nb">str</span><span class="p">(</span><span class="n">target</span><span class="p">),</span> <span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">,</span>
+                         <span class="n">template</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="n">tpl_str</span><span class="p">,</span> <span class="n">start</span><span class="p">)</span>
+
+
+<span class="k">class</span> <span class="nc">PM3StoreOnceAction</span><span class="p">(</span><span class="n">argparse</span><span class="o">.</span><span class="n">Action</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;Action for argument parsing to prevent multiple calls to an option.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c">#pylint: disable=too-few-public-methods</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="nb">super</span><span class="p">(</span><span class="n">PM3StoreOnceAction</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+    <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">namespace</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">option_string</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+        <span class="k">if</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">namespace</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dest</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentError</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">&#39;may only be used once.&#39;</span><span class="p">)</span>
+        <span class="nb">setattr</span><span class="p">(</span><span class="n">namespace</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dest</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
 
 <div class="viewcode-block" id="PM3ArgumentParser"><a class="viewcode-back" href="../../../core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser">[docs]</a><span class="k">class</span> <span class="nc">PM3ArgumentParser</span><span class="p">(</span><span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
@@ -169,7 +398,7 @@
 <span class="sd">        :param args: The argument string. As default |sysargv|_ is used.</span>
 <span class="sd">        :type args: :class:`list`</span>
 
-<span class="sd">        :returns: :class:`promod3.cor.pm3argparse.PM3OptionsNamespace`.</span>
+<span class="sd">        :returns: :class:`promod3.core.pm3argparse.PM3OptionsNamespace`.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">opts</span> <span class="o">=</span> <span class="n">PM3OptionsNamespace</span><span class="p">()</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">parse_args</span><span class="p">(</span><span class="n">args</span><span class="o">=</span><span class="n">args</span><span class="p">,</span> <span class="n">namespace</span><span class="o">=</span><span class="n">opts</span><span class="p">)</span>
@@ -189,7 +418,8 @@
             <span class="bp">self</span><span class="o">.</span><span class="n">_AssembleAlignment</span><span class="p">()</span>
 </div>
 <div class="viewcode-block" id="PM3ArgumentParser.AddAlignment"><a class="viewcode-back" href="../../../core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AddAlignment">[docs]</a>    <span class="k">def</span> <span class="nf">AddAlignment</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;</span>
+        <span class="sd">&quot;&quot;&quot;Commandline options for alignments.</span>
+
 <span class="sd">        Add everything needed to load alignments to the argument parser. Creates</span>
 <span class="sd">        several options/ arguments and adds some checks for post processing.</span>
 <span class="sd">        This method only adds a flag to the parser to add alignment options on</span>
@@ -198,12 +428,18 @@
 
 <span class="sd">        Options/ arguments added:</span>
 
-<span class="sd">        * ``--fasta trg:&lt;NAME&gt; &lt;FILE&gt;`` - describing a target-template alignment</span>
-<span class="sd">          with ``trg:`` marking the target sequence inside :file:`&lt;FILE&gt;`</span>
+<span class="sd">        * ``-f/ --fasta trg:&lt;NAME&gt; &lt;FILE&gt;`` - describing a target-template</span>
+<span class="sd">          alignment with ``trg:`` marking the target sequence inside</span>
+<span class="sd">          :file:`&lt;FILE&gt;`. The order of arguments is arbitrary which means file</span>
+<span class="sd">          names starting with :file:`trg:` will not work.</span>
+
+<span class="sd">        * ``-j/ --json &lt;OBJECT&gt;|&lt;FILE&gt;`` - target-template alignments in JSON</span>
+<span class="sd">          format. Either an object string or a file name. The string variant is</span>
+<span class="sd">          limited to how many characters your command line can gobble.</span>
 
 <span class="sd">        Exit codes related to alignment input:</span>
 
-<span class="sd">        * 11 - no prefix ``trg:`` found for an argument to &#39;--fasta&#39;</span>
+<span class="sd">        * 11 - no prefix ``trg:`` found for an argument to ``--fasta``</span>
 
 <span class="sd">        * 12 - a given alignment file does not exist</span>
 
@@ -219,14 +455,43 @@
 
 <span class="sd">        * 18 - sequences in the alignment have different length</span>
 
+<span class="sd">        * 19 - problem with a JSON formatted file handed over to ``--json``</span>
+
+<span class="sd">        * 20 - JSON file could not be decoded into a JSON object</span>
+
+<span class="sd">        * 21 - JSON object has no &#39;alignmentlist&#39; key</span>
+
+<span class="sd">        * 22 - JSON object has no &#39;target&#39;/ &#39;template&#39; in the &#39;alignmentlist&#39;</span>
+
+<span class="sd">        * 23 - JSON string could not be decoded</span>
+
+<span class="sd">        * 24 - JSON object &#39;alignmentlist&#39; does not point to a list</span>
+
+<span class="sd">        * 25 - JSON object &#39;alignmentlist&#39; member is not a dictionary</span>
+
+<span class="sd">        * 26 - JSON object &#39;alignmentlist&#39; &#39;target&#39;/ &#39;template&#39; does not point</span>
+<span class="sd">               to a dictionary</span>
+
+<span class="sd">        * 27 - JSON  object &#39;alignmentlist&#39; &#39;target&#39;/ &#39;template&#39; does not have</span>
+<span class="sd">               a needed key</span>
+
+<span class="sd">        * 28 - JSON  object &#39;alignmentlist&#39; &#39;target&#39;/ &#39;template&#39; has a value of</span>
+<span class="sd">               wrong type</span>
+
 <span class="sd">        Attributes added to the namespace returned by</span>
 <span class="sd">        :meth:`Parse`:</span>
 
-<span class="sd">        * :attr:`fasta` - filled with the input of the &#39;--fasta&#39; argument, a</span>
+<span class="sd">        * :attr:`fasta` - filled with the input of the ``--fasta`` option, a</span>
 <span class="sd">                          :class:`list` with multiple :class:`list` objects</span>
 
+<span class="sd">        * :attr:`json` - argument of the ``--json`` option, :class:`str`. May</span>
+<span class="sd">                         be a filename of a JSON object string.</span>
+
 <span class="sd">        * :attr:`alignments` - :class:`ost.AlignmentList`, same order as</span>
-<span class="sd">                               :attr:`fasta`</span>
+<span class="sd">                               :attr:`fasta`, likely to **not** follow the order</span>
+<span class="sd">                               of JSON input; first sequence of the alignment is</span>
+<span class="sd">                               the target sequence, if in doubt, check for</span>
+<span class="sd">                               sequence roles ``TARGET`` or ``TEMPLATE``</span>
 
 <span class="sd">        * :attr:`aln_sources` - the original source of the alignment, may be</span>
 <span class="sd">                                filename(s) or a string in JSON format,</span>
@@ -238,20 +503,30 @@
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Actually add alignment arguments/ options</span>
 <span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">aln_grp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">add_mutually_exclusive_group</span><span class="p">(</span><span class="n">required</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
         <span class="c"># FastA input: - always pairwise alignments</span>
         <span class="c">#              - callable multiple times</span>
         <span class="c">#              - goes by &#39;trg:&lt;SEQNAME&gt; &lt;FILE&gt;&#39;</span>
         <span class="c">#              - excludes JSON file/ object</span>
-        <span class="c">#              - leading whitespaces will be deleted</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;-f&#39;</span><span class="p">,</span> <span class="s">&#39;--fasta&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;append&#39;</span><span class="p">,</span>
-                          <span class="n">metavar</span><span class="o">=</span><span class="p">(</span><span class="s">&#39;trg:&lt;NAME&gt;&#39;</span><span class="p">,</span> <span class="s">&#39;&lt;FILE&gt;&#39;</span><span class="p">),</span>
-                          <span class="n">help</span><span class="o">=</span><span class="s">&#39;Pairwise alignment in FastA format, needs to &#39;</span><span class="o">+</span>
-                          <span class="s">&#39;declare what is the target sequence.&#39;</span><span class="p">)</span>
-        <span class="c"># input: FastA/ JSON</span>
-        <span class="c"># determined by extension: if we are wrong, the whole loading fails</span>
-        <span class="c"># possibility to add JSON: mention limitation!</span>
+        <span class="c">#              - leading whitespaces of FastA headers will be deleted</span>
+        <span class="n">aln_grp</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;-f&#39;</span><span class="p">,</span> <span class="s">&#39;--fasta&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;append&#39;</span><span class="p">,</span>
+                             <span class="n">metavar</span><span class="o">=</span><span class="p">(</span><span class="s">&#39;trg:&lt;NAME&gt;&#39;</span><span class="p">,</span> <span class="s">&#39;&lt;FILE&gt;&#39;</span><span class="p">),</span>
+                             <span class="n">help</span><span class="o">=</span><span class="s">&#39;Pairwise alignment in FastA format, needs &#39;</span><span class="o">+</span>
+                             <span class="s">&#39;to declare what is the target sequence.&#39;</span><span class="p">)</span>
+        <span class="c"># JSON input: - right as string or file</span>
+        <span class="c">#             - object starts with {, so not allowed for files</span>
+        <span class="c">#             - callable only ONCE: should include everything needed</span>
+        <span class="c">#             - fields/ objects used: ...</span>
+        <span class="c">#             - goes by &#39;--json &lt;OBJECT&gt;|&lt;FILE&gt;&#39;</span>
+        <span class="c">#             - excludes &#39;--fasta&#39;</span>
+        <span class="c">#             - leading whitespaces of sequence names will be deleted</span>
+        <span class="n">aln_grp</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;-j&#39;</span><span class="p">,</span> <span class="s">&#39;--json&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;OBJECT&gt;|&lt;FILE&gt;&#39;</span><span class="p">,</span>
+                             <span class="n">help</span><span class="o">=</span><span class="s">&#39;Alignments provided as JSON file/ object.&#39;</span><span class="p">,</span>
+                             <span class="n">action</span><span class="o">=</span><span class="n">PM3StoreOnceAction</span><span class="p">)</span>
 </div>
 <span class="k">class</span> <span class="nc">PM3OptionsNamespace</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+    <span class="c"># class will grow, so for the moment pylint is ignored</span>
+    <span class="c">#pylint: disable=too-few-public-methods</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    This one is mainly for internal use. You can use it like everything that</span>
 <span class="sd">    comes out of :meth:`argparse.ArgumentParser.parse_args`. Attributes are</span>
@@ -277,68 +552,17 @@
         <span class="bp">self</span><span class="o">.</span><span class="n">alignments</span> <span class="o">=</span> <span class="n">seq</span><span class="o">.</span><span class="n">AlignmentList</span><span class="p">()</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">fasta</span><span class="p">:</span>
             <span class="k">for</span> <span class="n">src</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">fasta</span><span class="p">:</span>
-                <span class="k">if</span> <span class="n">src</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&#39;trg:&#39;</span><span class="p">):</span>
-                    <span class="n">trgname</span> <span class="o">=</span> <span class="n">src</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">4</span><span class="p">:]</span>
-                    <span class="n">seqfile</span> <span class="o">=</span> <span class="n">src</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
-                <span class="k">elif</span> <span class="n">src</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&#39;trg:&#39;</span><span class="p">):</span>
-                    <span class="n">trgname</span> <span class="o">=</span> <span class="n">src</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">4</span><span class="p">:]</span>
-                    <span class="n">seqfile</span> <span class="o">=</span> <span class="n">src</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
-                <span class="k">else</span><span class="p">:</span>
-                    <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta&#39; requires one argument &quot;</span><span class="o">+</span>
-                                           <span class="s">&quot;prefixed with &#39;trg:&#39; marking the &quot;</span><span class="o">+</span>
-                                           <span class="s">&quot;target sequence name&quot;</span><span class="p">,</span> <span class="mi">11</span><span class="p">)</span>
-                <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">trgname</span><span class="p">):</span>
-                    <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta&#39; requires argument &quot;</span><span class="o">+</span>
-                                           <span class="s">&quot;&#39;trg:&#39; defining the &quot;</span><span class="o">+</span>
-                                           <span class="s">&quot;target sequence name, empty one &quot;</span><span class="o">+</span>
-                                           <span class="s">&quot;found: &#39;</span><span class="si">%s</span><span class="s">&#39;&quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src</span><span class="p">),</span> <span class="mi">14</span><span class="p">)</span>
-                <span class="n">helper</span><span class="o">.</span><span class="n">FileExists</span><span class="p">(</span><span class="s">&quot;Alignment&quot;</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="n">seqfile</span><span class="p">)</span>
-                <span class="n">is_gz</span> <span class="o">=</span> <span class="n">helper</span><span class="o">.</span><span class="n">FileGzip</span><span class="p">(</span><span class="s">&quot;Alignment&quot;</span><span class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span class="n">seqfile</span><span class="p">)</span>
-                <span class="n">readfile</span> <span class="o">=</span> <span class="n">seqfile</span>
-                <span class="k">if</span> <span class="n">is_gz</span><span class="p">:</span>
-                    <span class="n">zip_fh</span> <span class="o">=</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">seqfile</span><span class="p">)</span>
-                    <span class="n">unzip_str</span> <span class="o">=</span> <span class="n">zip_fh</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
-                    <span class="n">zip_fh</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-                    <span class="n">unzip_file</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">NamedTemporaryFile</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="s">&#39;w&#39;</span><span class="p">,</span>
-                                                             <span class="n">suffix</span><span class="o">=</span><span class="s">&#39;.fas&#39;</span><span class="p">)</span>
-                    <span class="n">unzip_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">unzip_str</span><span class="p">)</span>
-                    <span class="n">unzip_file</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
-                    <span class="n">readfile</span> <span class="o">=</span> <span class="n">unzip_file</span><span class="o">.</span><span class="n">name</span>
-                <span class="k">try</span><span class="p">:</span>
-                    <span class="n">aln</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="n">readfile</span><span class="p">,</span> <span class="n">format</span><span class="o">=</span><span class="s">&quot;fasta&quot;</span><span class="p">)</span>
-                <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">exc</span><span class="p">:</span> <span class="c">#pylint: disable=broad-except</span>
-                    <span class="k">if</span> <span class="n">exc</span><span class="o">.</span><span class="n">message</span> <span class="o">==</span> <span class="s">&#39;Bad FASTA file: File is empty&#39;</span><span class="p">:</span>
-                        <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta&#39; refers to an empty &quot;</span><span class="o">+</span>\
-                                               <span class="s">&quot;file or its in the wrong &quot;</span><span class="o">+</span>
-                                               <span class="s">&quot;format: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">seqfile</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
-                    <span class="k">elif</span> <span class="n">exc</span><span class="o">.</span><span class="n">message</span> <span class="o">==</span> <span class="s">&#39;sequences have different lengths&#39;</span><span class="p">:</span>
-                        <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta </span><span class="si">%s</span><span class="s">&#39;: &quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src</span><span class="p">)</span><span class="o">+</span>
-                                               <span class="s">&quot;sequences in the alignment &quot;</span><span class="o">+</span>
-                                               <span class="s">&quot;have different length.&quot;</span><span class="p">,</span> <span class="mi">18</span><span class="p">)</span>
-                    <span class="k">else</span><span class="p">:</span>
-                        <span class="k">raise</span>
-                <span class="k">finally</span><span class="p">:</span>
-                    <span class="k">if</span> <span class="n">is_gz</span><span class="p">:</span>
-                        <span class="n">unzip_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-                <span class="c"># check alignment</span>
-                <span class="n">nos</span> <span class="o">=</span> <span class="n">aln</span><span class="o">.</span><span class="n">GetCount</span><span class="p">()</span>
-                <span class="k">if</span> <span class="n">nos</span> <span class="o">&gt;</span> <span class="mi">2</span><span class="p">:</span>
-                    <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta </span><span class="si">%s</span><span class="s">&#39; &quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src</span><span class="p">)</span><span class="o">+</span>
-                                           <span class="s">&quot;points to an alignment with &quot;</span><span class="o">+</span>
-                                           <span class="s">&quot;more than 2 sequences.&quot;</span><span class="p">,</span> <span class="mi">16</span><span class="p">)</span>
-                <span class="n">fst_seq</span> <span class="o">=</span> <span class="n">aln</span><span class="o">.</span><span class="n">GetSequence</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
-                <span class="n">snd_seq</span> <span class="o">=</span> <span class="n">aln</span><span class="o">.</span><span class="n">GetSequence</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
-                <span class="k">if</span> <span class="n">fst_seq</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="n">trgname</span><span class="p">:</span>
-                    <span class="n">new_aln</span> <span class="o">=</span> <span class="n">_AssembleTrgTplAln</span><span class="p">(</span><span class="n">fst_seq</span><span class="p">,</span> <span class="n">snd_seq</span><span class="p">)</span>
-                <span class="k">elif</span> <span class="n">snd_seq</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="n">trgname</span><span class="p">:</span>
-                    <span class="n">new_aln</span> <span class="o">=</span> <span class="n">_AssembleTrgTplAln</span><span class="p">(</span><span class="n">snd_seq</span><span class="p">,</span> <span class="n">fst_seq</span><span class="p">)</span>
-                <span class="k">else</span><span class="p">:</span>
-                    <span class="n">helper</span><span class="o">.</span><span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">&quot;&#39;--fasta </span><span class="si">%s</span><span class="s">&#39; &quot;</span> <span class="o">%</span> <span class="s">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src</span><span class="p">)</span><span class="o">+</span>
-                                           <span class="s">&quot;does not define a target name &quot;</span><span class="o">+</span>
-                                           <span class="s">&quot;found in the alignment.&quot;</span><span class="p">,</span> <span class="mi">17</span><span class="p">)</span>
-
+                <span class="n">seqfile</span><span class="p">,</span> <span class="n">new_aln</span> <span class="o">=</span> <span class="n">_FetchAlnFromFastaOpt</span><span class="p">(</span><span class="n">src</span><span class="p">)</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">alignments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_aln</span><span class="p">)</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">aln_sources</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">seqfile</span><span class="p">)</span>
+            <span class="k">return</span>
+        <span class="c"># Now for JSON input. Since one of the options needs to be given and</span>
+        <span class="c"># we already checked for FastA, no need to open a new branch, here.</span>
+        <span class="c"># decide if file or object</span>
+        <span class="n">json_obj</span> <span class="o">=</span> <span class="n">_GetJSONOBject</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">json</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">aln</span> <span class="ow">in</span> <span class="n">_GetAlnFromJSON</span><span class="p">(</span><span class="n">json_obj</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">json</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">alignments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">aln</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">aln_sources</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">json</span><span class="p">)</span>
 
 <span class="c">#  LocalWords:  param attr prog argparse ArgumentParser bool sys os init str</span>
 <span class="c">#  LocalWords:  progattr descattr argpinit argv formatter meth args namespace</span>
diff --git a/doc/html/_modules/promod3/sidechain/reconstruct_sidechains.html b/doc/html/_modules/promod3/sidechain/reconstruct_sidechains.html
new file mode 100644
index 0000000000000000000000000000000000000000..a8b80d59240acbbca393a538cfda75de7838d33c
--- /dev/null
+++ b/doc/html/_modules/promod3/sidechain/reconstruct_sidechains.html
@@ -0,0 +1,420 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>promod3.sidechain.reconstruct_sidechains &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../../../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../../../index.html" />
+    <link rel="up" title="promod3" href="../../promod3.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../../../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../../../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../../../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../../index.html" >Module code</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="../../promod3.html" accesskey="U">promod3</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1>Source code for promod3.sidechain.reconstruct_sidechains</h1><div class="highlight"><pre>
+<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">sidechain</span>
+<span class="kn">from</span> <span class="nn">ost</span> <span class="kn">import</span> <span class="n">geom</span>
+
+<div class="viewcode-block" id="Reconstruct"><a class="viewcode-back" href="../../../sidechain/index.html#promod3.sidechain.reconstruct_sidechains.Reconstruct">[docs]</a><span class="k">def</span> <span class="nf">Reconstruct</span><span class="p">(</span><span class="n">ent</span><span class="p">,</span> <span class="n">keep_sidechains</span> <span class="o">=</span> <span class="bp">False</span><span class="p">,</span> <span class="n">build_disulfids</span> <span class="o">=</span> <span class="bp">True</span><span class="p">,</span> 
+                <span class="n">rotamer_model</span> <span class="o">=</span> <span class="s">&quot;frm&quot;</span><span class="p">,</span> <span class="n">consider_hbonds</span> <span class="o">=</span> <span class="bp">True</span><span class="p">,</span>
+                <span class="n">rotamer_library</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span><span class="n">add_all_polar_hydrogens</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
+
+    <span class="n">name_id_mapper</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;ARG&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ARG</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;ASN&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ASN</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;ASP&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ASP</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;GLN&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">GLN</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;GLU&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">GLU</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;LYS&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">LYS</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;SER&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">SER</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;CYS&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">CYS</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;MET&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">MET</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;TRP&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">TRP</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;TYR&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">TYR</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;THR&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">THR</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;VAL&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">VAL</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;ILE&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ILE</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;LEU&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">LEU</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;PRO&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">PRO</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;HSD&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">HSD</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;HSE&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">HSE</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;HIS&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">HIS</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;PHE&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">PHE</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;ALA&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ALA</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;GLY&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">GLY</span>
+    <span class="n">name_id_mapper</span><span class="p">[</span><span class="s">&quot;MSE&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">MET</span>
+
+    <span class="k">if</span> <span class="n">rotamer_model</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;frm&quot;</span><span class="p">:</span>
+        <span class="n">use_frm</span> <span class="o">=</span> <span class="bp">True</span>
+    <span class="k">elif</span> <span class="n">rotamer_model</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;rrm&quot;</span><span class="p">:</span>
+        <span class="n">use_frm</span> <span class="o">=</span> <span class="bp">False</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">&quot;Only </span><span class="se">\&quot;</span><span class="s">rrm</span><span class="se">\&quot;</span><span class="s"> and </span><span class="se">\&quot;</span><span class="s">frm</span><span class="se">\&quot;</span><span class="s"> allowed for rotamer_model!&quot;</span><span class="p">)</span>
+
+
+    <span class="n">rotamer_settings</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">RotamerSettings</span><span class="p">()</span>
+    <span class="n">rotamer_settings</span><span class="o">.</span><span class="n">consider_hbonds</span> <span class="o">=</span> <span class="n">consider_hbonds</span>
+    <span class="k">if</span> <span class="n">rotamer_library</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span> 
+        <span class="n">rotamer_library</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">LoadDunbrackLib</span><span class="p">()</span>
+    <span class="n">residues_with_rotamer_group</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+    <span class="n">rotamer_groups</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+    <span class="n">prot</span> <span class="o">=</span> <span class="n">ent</span><span class="o">.</span><span class="n">Select</span><span class="p">(</span><span class="s">&quot;peptide=true&quot;</span><span class="p">)</span>
+    <span class="n">incomplete_sidechains</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+
+
+    <span class="c">#extract dihedral angles</span>
+    <span class="n">phi_angles</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.0</span><span class="p">]</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">)</span>
+    <span class="n">psi_angles</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.0</span><span class="p">]</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">)</span>
+  
+    <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">):</span>
+        <span class="n">phi</span> <span class="o">=</span> <span class="o">-</span><span class="mf">1.0472</span> 
+        <span class="n">psi</span> <span class="o">=</span> <span class="o">-</span><span class="mf">0.7854</span>
+  
+        <span class="n">tor</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">GetPhiTorsion</span><span class="p">()</span>
+        <span class="k">if</span> <span class="n">tor</span><span class="o">.</span><span class="n">IsValid</span><span class="p">():</span>
+            <span class="n">phi</span> <span class="o">=</span> <span class="n">tor</span><span class="o">.</span><span class="n">GetAngle</span><span class="p">()</span>
+      
+        <span class="n">tor</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">GetPsiTorsion</span><span class="p">()</span>
+        <span class="k">if</span> <span class="n">tor</span><span class="o">.</span><span class="n">IsValid</span><span class="p">():</span>
+            <span class="n">psi</span> <span class="o">=</span> <span class="n">tor</span><span class="o">.</span><span class="n">GetAngle</span><span class="p">()</span>
+  
+        <span class="n">phi_angles</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">phi</span>
+        <span class="n">psi_angles</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">psi</span>
+
+
+    <span class="c">#set nter and cter</span>
+    <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">prot</span><span class="o">.</span><span class="n">chains</span><span class="p">:</span>
+        <span class="n">c</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">SetIntProp</span><span class="p">(</span><span class="s">&quot;n_ter&quot;</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
+        <span class="n">c</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">SetIntProp</span><span class="p">(</span><span class="s">&quot;c_ter&quot;</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
+
+
+    <span class="c">#build up frame and cysteins</span>
+    <span class="n">frame_residues</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+
+    <span class="c">#build up backbone frame</span>
+    <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">rot_id</span> <span class="o">=</span> <span class="n">name_id_mapper</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">GetName</span><span class="p">()]</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="n">rot_id</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ALA</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">frame_residue</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructBackboneFrameResidue</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span><span class="n">rot_id</span><span class="p">,</span>
+                                                                    <span class="n">i</span><span class="p">,</span><span class="n">rotamer_settings</span><span class="p">,</span>
+                                                                    <span class="n">phi_angles</span><span class="p">[</span><span class="n">i</span><span class="p">],</span>
+                                                                    <span class="n">r</span><span class="o">.</span><span class="n">HasProp</span><span class="p">(</span><span class="s">&quot;n_ter&quot;</span><span class="p">),</span>
+                                                                    <span class="n">r</span><span class="o">.</span><span class="n">HasProp</span><span class="p">(</span><span class="s">&quot;c_ter&quot;</span><span class="p">))</span>
+            <span class="n">frame_residues</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">frame_residue</span><span class="p">)</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">continue</span>
+
+    <span class="k">if</span> <span class="n">keep_sidechains</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">):</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">rot_id</span> <span class="o">=</span> <span class="n">name_id_mapper</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">GetName</span><span class="p">()]</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="k">if</span> <span class="n">rot_id</span> <span class="o">==</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">CYS</span><span class="p">:</span>
+                <span class="k">continue</span> <span class="c">#cysteins will be handled seperately</span>
+            <span class="k">if</span> <span class="n">rot_id</span> <span class="o">==</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ALA</span> <span class="ow">or</span> <span class="n">rot_id</span> <span class="o">==</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">GLY</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">frame_residue</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructSidechainFrameResidue</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span><span class="n">rot_id</span><span class="p">,</span>
+                                                                         <span class="n">i</span><span class="p">,</span><span class="n">rotamer_settings</span><span class="p">)</span>
+                <span class="n">frame_residues</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">frame_residue</span><span class="p">)</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="n">incomplete_sidechains</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">):</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">rot_id</span> <span class="o">=</span> <span class="n">name_id_mapper</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">GetName</span><span class="p">()]</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="k">if</span> <span class="n">rot_id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="n">sidechain</span><span class="o">.</span><span class="n">GLY</span><span class="p">,</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ALA</span><span class="p">]:</span>
+                <span class="n">incomplete_sidechains</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+
+
+    <span class="c">#look for cysteins and evaluate potential disulfid bonds</span>
+    <span class="n">final_disulfid_indices</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+    <span class="k">if</span> <span class="n">build_disulfids</span><span class="p">:</span>
+        <span class="n">cystein_info</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">):</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">rot_id</span> <span class="o">=</span> <span class="n">name_id_mapper</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">GetName</span><span class="p">()]</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="k">continue</span>
+
+            <span class="k">if</span> <span class="n">rot_id</span> <span class="o">==</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">CYS</span><span class="p">:</span>
+                <span class="n">ca</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">FindAtom</span><span class="p">(</span><span class="s">&quot;CA&quot;</span><span class="p">)</span>
+                <span class="n">cb</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">FindAtom</span><span class="p">(</span><span class="s">&quot;CB&quot;</span><span class="p">)</span>
+                <span class="k">if</span> <span class="n">ca</span><span class="o">.</span><span class="n">IsValid</span><span class="p">()</span> <span class="ow">and</span> <span class="n">cb</span><span class="o">.</span><span class="n">IsValid</span><span class="p">():</span>
+                    <span class="n">cystein_info</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">ca</span><span class="o">.</span><span class="n">GetPos</span><span class="p">(),</span><span class="n">cb</span><span class="o">.</span><span class="n">GetPos</span><span class="p">(),</span><span class="n">i</span><span class="p">))</span>
+
+        <span class="n">frame</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">frame_residues</span><span class="p">)</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="n">cystein_info</span><span class="p">)):</span>
+
+            <span class="k">if</span> <span class="n">cystein_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span> <span class="ow">in</span> <span class="n">final_disulfid_indices</span><span class="p">:</span>
+                <span class="k">continue</span>
+
+            <span class="n">complete_i</span> <span class="o">=</span> <span class="n">keep_sidechains</span> <span class="ow">and</span> <span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]]</span><span class="o">.</span><span class="n">FindAtom</span><span class="p">(</span><span class="s">&quot;SG&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">IsValid</span><span class="p">()</span>
+            <span class="n">i_ca_pos</span> <span class="o">=</span> <span class="n">cystein_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
+            <span class="n">i_cb_pos</span> <span class="o">=</span> <span class="n">cystein_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
+            <span class="n">i_index</span> <span class="o">=</span> <span class="n">cystein_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span>
+
+            <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</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="nb">len</span><span class="p">(</span><span class="n">cystein_info</span><span class="p">)):</span>
+
+                <span class="k">if</span> <span class="n">cystein_info</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span> <span class="ow">in</span> <span class="n">final_disulfid_indices</span><span class="p">:</span>
+                    <span class="k">continue</span>
+                 
+                <span class="n">complete_j</span> <span class="o">=</span> <span class="n">keep_sidechains</span> <span class="ow">and</span> <span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">2</span><span class="p">]]</span><span class="o">.</span><span class="n">FindAtom</span><span class="p">(</span><span class="s">&quot;SG&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">IsValid</span><span class="p">()</span>
+
+                <span class="k">if</span> <span class="n">complete_i</span> <span class="ow">and</span> <span class="n">complete_j</span><span class="p">:</span>
+                    <span class="k">continue</span> <span class="c">#they&#39;re already there</span>
+
+                <span class="k">if</span> <span class="n">geom</span><span class="o">.</span><span class="n">Distance</span><span class="p">(</span><span class="n">i_ca_pos</span><span class="p">,</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span> <span class="o">&lt;</span> <span class="mi">8</span><span class="p">:</span>
+                    <span class="n">j_ca_pos</span> <span class="o">=</span> <span class="n">cystein_info</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
+                    <span class="n">j_cb_pos</span> <span class="o">=</span> <span class="n">cystein_info</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
+                    <span class="n">j_index</span> <span class="o">=</span> <span class="n">cystein_info</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span>
+
+
+                    <span class="k">if</span> <span class="n">use_frm</span><span class="p">:</span>
+                      <span class="n">rot_group_one</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructFRMRotamerGroup</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]]</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span>
+                                                                         <span class="n">sidechain</span><span class="o">.</span><span class="n">CYD</span><span class="p">,</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">],</span>
+                                                                         <span class="n">rotamer_library</span><span class="p">,</span><span class="n">rotamer_settings</span><span class="p">,</span>
+                                                                         <span class="n">phi_angles</span><span class="p">[</span><span class="n">i_index</span><span class="p">],</span><span class="n">psi_angles</span><span class="p">[</span><span class="n">i_index</span><span class="p">])</span>
+
+                      <span class="n">rot_group_two</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructFRMRotamerGroup</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">2</span><span class="p">]]</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span>
+                                                                         <span class="n">sidechain</span><span class="o">.</span><span class="n">CYD</span><span class="p">,</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">2</span><span class="p">],</span>
+                                                                         <span class="n">rotamer_library</span><span class="p">,</span><span class="n">rotamer_settings</span><span class="p">,</span>
+                                                                         <span class="n">phi_angles</span><span class="p">[</span><span class="n">j_index</span><span class="p">],</span><span class="n">psi_angles</span><span class="p">[</span><span class="n">j_index</span><span class="p">])</span>
+                    <span class="k">else</span><span class="p">:</span>
+                      <span class="n">rot_group_one</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructRRMRotamerGroup</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]]</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span>
+                                                                         <span class="n">sidechain</span><span class="o">.</span><span class="n">CYD</span><span class="p">,</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">],</span>
+                                                                         <span class="n">rotamer_library</span><span class="p">,</span><span class="n">rotamer_settings</span><span class="p">,</span>
+                                                                         <span class="n">phi_angles</span><span class="p">[</span><span class="n">i_index</span><span class="p">],</span><span class="n">psi_angles</span><span class="p">[</span><span class="n">i_index</span><span class="p">])</span>
+
+                      <span class="n">rot_group_two</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructRRMRotamerGroup</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">2</span><span class="p">]]</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span>
+                                                                         <span class="n">sidechain</span><span class="o">.</span><span class="n">CYD</span><span class="p">,</span><span class="n">cystein_info</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="mi">2</span><span class="p">],</span>
+                                                                         <span class="n">rotamer_library</span><span class="p">,</span><span class="n">rotamer_settings</span><span class="p">,</span>
+                                                                         <span class="n">phi_angles</span><span class="p">[</span><span class="n">j_index</span><span class="p">],</span><span class="n">psi_angles</span><span class="p">[</span><span class="n">j_index</span><span class="p">])</span>
+
+
+                    <span class="n">frame</span><span class="o">.</span><span class="n">AddFrameEnergy</span><span class="p">(</span><span class="n">rot_group_one</span><span class="p">)</span>
+                    <span class="n">frame</span><span class="o">.</span><span class="n">AddFrameEnergy</span><span class="p">(</span><span class="n">rot_group_two</span><span class="p">)</span>
+                   
+                    <span class="n">min_index_k</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+                    <span class="n">min_index_l</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
+                    <span class="n">min_score</span> <span class="o">=</span> <span class="mi">10000000</span>
+
+                    <span class="k">for</span> <span class="n">k</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="n">rot_group_one</span><span class="p">)):</span>
+                        <span class="k">for</span> <span class="n">l</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="n">rot_group_two</span><span class="p">)):</span>
+                            <span class="n">score</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">DisulfidScore</span><span class="p">(</span><span class="n">rot_group_one</span><span class="p">[</span><span class="n">k</span><span class="p">],</span><span class="n">rot_group_two</span><span class="p">[</span><span class="n">l</span><span class="p">],</span>
+                                                            <span class="n">i_ca_pos</span><span class="p">,</span><span class="n">i_cb_pos</span><span class="p">,</span><span class="n">j_ca_pos</span><span class="p">,</span><span class="n">j_cb_pos</span><span class="p">)</span>
+                            <span class="k">if</span> <span class="n">score</span> <span class="o">&lt;</span> <span class="n">min_score</span><span class="p">:</span>
+                                <span class="n">min_index_k</span> <span class="o">=</span> <span class="n">k</span>
+                                <span class="n">min_index_l</span> <span class="o">=</span> <span class="n">l</span>
+                                <span class="n">min_score</span> <span class="o">=</span> <span class="n">score</span>
+
+                    <span class="k">if</span> <span class="n">min_score</span> <span class="o">&lt;</span> <span class="mi">45</span><span class="p">:</span>
+                        <span class="n">final_disulfid_indices</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i_index</span><span class="p">)</span>
+                        <span class="n">final_disulfid_indices</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">j_index</span><span class="p">)</span>
+                        <span class="c">#create new frame residue...</span>
+                        <span class="n">particle_list</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+                        <span class="n">particle_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rot_group_one</span><span class="p">[</span><span class="n">min_index_k</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
+                        <span class="n">particle_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rot_group_two</span><span class="p">[</span><span class="n">min_index_l</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
+                        <span class="n">new_frame_residue</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">FrameResidue</span><span class="p">(</span><span class="n">particle_list</span><span class="p">,</span><span class="mi">100000</span><span class="p">)</span>
+                        <span class="n">frame_residues</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_frame_residue</span><span class="p">)</span>
+                        <span class="c">#set the position in the proteins residues</span>
+                        <span class="n">rot_group_one</span><span class="p">[</span><span class="n">min_index_k</span><span class="p">]</span><span class="o">.</span><span class="n">ApplyOnResidue</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">i_index</span><span class="p">]</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">())</span>
+                        <span class="n">rot_group_two</span><span class="p">[</span><span class="n">min_index_l</span><span class="p">]</span><span class="o">.</span><span class="n">ApplyOnResidue</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">j_index</span><span class="p">]</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">())</span>
+
+        <span class="c">#we still have to add the cysteins, that are complete, even though</span>
+        <span class="c">#they&#39;re not participating in a disulfid bond</span>
+        <span class="k">if</span> <span class="n">keep_sidechains</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">):</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">rot_id</span> <span class="o">=</span> <span class="n">name_id_mapper</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">GetName</span><span class="p">()]</span>
+                <span class="k">except</span><span class="p">:</span>
+                    <span class="k">continue</span>
+                <span class="k">if</span> <span class="n">rot_id</span> <span class="o">!=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">CYS</span><span class="p">:</span>
+                    <span class="k">continue</span> <span class="c">#all other sidechains are already handled</span>
+                <span class="k">if</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">final_disulfid_indices</span><span class="p">:</span>
+                    <span class="k">continue</span> <span class="c">#already added to the frame residues</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">frame_residue</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructSidechainFrameResidue</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span><span class="n">rot_id</span><span class="p">,</span>
+                                                                             <span class="n">i</span><span class="p">,</span><span class="n">rotamer_settings</span><span class="p">)</span>
+                    <span class="n">frame_residues</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">frame_residue</span><span class="p">)</span>
+                <span class="k">except</span><span class="p">:</span>
+                    <span class="n">incomplete_sidechains</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="c">#The disulfid cysteins must be removed from incomplete sidechains</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">final_disulfid_indices</span><span class="p">:</span>
+                <span class="k">try</span><span class="p">:</span>
+                    <span class="n">incomplete_sidechains</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+                <span class="k">except</span><span class="p">:</span>
+                    <span class="k">pass</span> <span class="c">#it&#39;s not there anyway, so we don&#39;t have to remove it</span>
+
+    <span class="k">elif</span> <span class="n">keep_sidechains</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">):</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">rot_id</span> <span class="o">=</span> <span class="n">name_id_mapper</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">GetName</span><span class="p">()]</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="k">if</span> <span class="n">rot_id</span> <span class="o">!=</span> <span class="n">CYS</span><span class="p">:</span>
+                <span class="k">continue</span> <span class="c">#all other sidechains are already handled</span>
+            <span class="k">try</span><span class="p">:</span>
+                <span class="n">frame_residue</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructSidechainFrameResidue</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span><span class="n">rot_id</span><span class="p">,</span>
+                                                                         <span class="n">i</span><span class="p">,</span><span class="n">rotamer_settings</span><span class="p">)</span>
+                <span class="n">frame_residues</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">frame_residue</span><span class="p">)</span>
+            <span class="k">except</span><span class="p">:</span>
+                <span class="n">incomplete_sidechains</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+
+
+    <span class="c">#finally build complete frame</span>
+    <span class="n">frame</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">frame_residues</span><span class="p">)</span>
+
+    <span class="c">#build rotamers</span>
+
+    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">incomplete_sidechains</span><span class="p">:</span>
+
+        <span class="n">r</span> <span class="o">=</span> <span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
+
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">rot_id</span> <span class="o">=</span> <span class="n">name_id_mapper</span><span class="p">[</span><span class="n">r</span><span class="o">.</span><span class="n">GetName</span><span class="p">()]</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">continue</span>
+        
+        <span class="k">if</span><span class="p">(</span><span class="n">rot_id</span> <span class="o">==</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ALA</span> <span class="ow">or</span> <span class="n">rot_id</span> <span class="o">==</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">GLY</span><span class="p">):</span>
+            <span class="k">continue</span>
+
+        <span class="k">if</span> <span class="n">rot_id</span> <span class="o">==</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">CYS</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">final_disulfid_indices</span><span class="p">:</span>
+                <span class="k">continue</span>
+            <span class="n">rot_id</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">CYH</span>
+
+        <span class="k">if</span> <span class="n">rot_id</span> <span class="o">==</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">PRO</span><span class="p">:</span>
+            <span class="n">tor</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">GetOmegaTorsion</span><span class="p">()</span>
+            <span class="k">if</span> <span class="n">tor</span><span class="o">.</span><span class="n">IsValid</span><span class="p">():</span>
+                <span class="k">if</span> <span class="nb">abs</span><span class="p">(</span><span class="n">tor</span><span class="o">.</span><span class="n">GetAngle</span><span class="p">())</span> <span class="o">&lt;</span> <span class="mf">1.57</span><span class="p">:</span>
+                    <span class="n">rot_id</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">CPR</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">rot_id</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">TPR</span>
+
+        <span class="k">try</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">use_frm</span><span class="p">:</span>
+                <span class="n">rot_group</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructFRMRotamerGroup</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span><span class="n">rot_id</span><span class="p">,</span><span class="n">i</span><span class="p">,</span>
+                                                               <span class="n">rotamer_library</span><span class="p">,</span><span class="n">rotamer_settings</span><span class="p">,</span>
+                                                               <span class="n">phi_angles</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="n">psi_angles</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">rot_group</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructRRMRotamerGroup</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span><span class="n">rot_id</span><span class="p">,</span><span class="n">i</span><span class="p">,</span>
+                                                               <span class="n">rotamer_library</span><span class="p">,</span><span class="n">rotamer_settings</span><span class="p">,</span>
+                                                               <span class="n">phi_angles</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="n">psi_angles</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">continue</span>
+        <span class="n">rot_group</span><span class="o">.</span><span class="n">CalculateInternalEnergies</span><span class="p">()</span>
+        <span class="n">frame</span><span class="o">.</span><span class="n">SetFrameEnergy</span><span class="p">(</span><span class="n">rot_group</span><span class="p">)</span>
+        <span class="n">rot_group</span><span class="o">.</span><span class="n">ApplySelfEnergyThresh</span><span class="p">()</span>
+        <span class="n">rotamer_groups</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rot_group</span><span class="p">)</span>
+        <span class="n">residues_with_rotamer_group</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>   
+
+
+    <span class="k">if</span> <span class="n">use_frm</span><span class="p">:</span>
+        <span class="n">graph</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">Graph</span><span class="o">.</span><span class="n">CreateFromFRMList</span><span class="p">(</span><span class="n">rotamer_groups</span><span class="p">)</span>
+    <span class="k">else</span><span class="p">:</span>
+        <span class="n">graph</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">Graph</span><span class="o">.</span><span class="n">CreateFromRRMList</span><span class="p">(</span><span class="n">rotamer_groups</span><span class="p">)</span>
+
+
+    <span class="n">solution</span> <span class="o">=</span> <span class="n">graph</span><span class="o">.</span><span class="n">Solve</span><span class="p">(</span><span class="mi">100000000</span><span class="p">,</span><span class="mf">0.02</span><span class="p">)</span>
+
+
+    <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">rot_group</span><span class="p">,</span><span class="n">sol</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">residues_with_rotamer_group</span><span class="p">,</span><span class="n">rotamer_groups</span><span class="p">,</span><span class="n">solution</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">rot_group</span><span class="p">[</span><span class="n">sol</span><span class="p">]</span><span class="o">.</span><span class="n">ApplyOnResidue</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">(),</span><span class="n">consider_hydrogens</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="k">print</span> <span class="s">&quot;there is a backbone atom missing... &quot;</span><span class="p">,</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">GetQualifiedName</span><span class="p">()</span>
+
+    <span class="k">if</span> <span class="n">add_all_polar_hydrogens</span><span class="p">:</span>
+        <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">frame_residues</span><span class="p">:</span>
+            <span class="n">i</span><span class="o">=</span><span class="n">r</span><span class="o">.</span><span class="n">GetResidueIndex</span><span class="p">()</span>
+            <span class="k">if</span> <span class="n">i</span><span class="o">==</span><span class="mi">100000</span><span class="p">:</span><span class="k">continue</span><span class="c">#These are cysteins that were already handled</span>
+            <span class="n">rh</span><span class="o">=</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">GetHandle</span><span class="p">()</span>
+            <span class="n">r</span><span class="o">.</span><span class="n">ApplyOnResidue</span><span class="p">(</span><span class="n">rh</span><span class="p">,</span><span class="bp">True</span><span class="p">)</span>
+</pre></div></div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../../../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/_sources/cmake/index.txt b/doc/html/_sources/cmake/index.txt
index ea65a5c067d967303f0b7707915b48f695c69290..a104b61a5a6b2a871aa303263af13b93ed47f156 100644
--- a/doc/html/_sources/cmake/index.txt
+++ b/doc/html/_sources/cmake/index.txt
@@ -1,5 +1,6 @@
 .. _pm3-cmake-doc:
 
+
 |project|'s Share Of |cmake|
 ===============================================================================
 
diff --git a/doc/html/_sources/core/pm3argparse.txt b/doc/html/_sources/core/pm3argparse.txt
index b787f1144335b62a4c102dab7464675678d1242e..a20dbf70a86524e322c3561ac2dd7293d2a4c305 100644
--- a/doc/html/_sources/core/pm3argparse.txt
+++ b/doc/html/_sources/core/pm3argparse.txt
@@ -18,7 +18,35 @@ simplification. It provides a set of standard arguments you just need to
 activate for your action plus it comes with some verification functionality for
 input.
 
-.. synopsis/ example
+.. testcode:: helper
+  :hide:
+
+  from promod3.core import pm3argparse
+
+  parser = pm3argparse.PM3ArgumentParser('Dummy')
+  parser.AddAlignment()
+  parser.AssembleParser()
+
+  try:
+    opts = parser.Parse(['-h'])
+  except SystemExit, sysex:
+    if sysex.code == 0:
+      pass
+
+.. doctest:: pm3argparse
+
+  '''\
+  Place the description of your script right in the file and import
+  it via '__doc__' as description to the parser ('-h', '--help').\
+  '''
+
+  from promod3.core import pm3argparse
+
+  parser = pm3argparse.PM3ArgumentParser(__doc__)
+  parser.AddAlignment()
+  parser.AssembleParser()
+  opts = parser.Parse()
+
 
 Argument Parser
 --------------------------------------------------------------------------------
diff --git a/doc/html/_sources/developers.txt b/doc/html/_sources/developers.txt
index 84b8f7022d642da56710f574abb8139f6cd15ce2..387c9b0a510c06a37cedacf69b3f4caa319805ec 100644
--- a/doc/html/_sources/developers.txt
+++ b/doc/html/_sources/developers.txt
@@ -12,6 +12,8 @@ Contents:
    core/setcompoundschemlib
    core/index
    rawmodel/index
+   loop/index
+   sidechain/index
    actions/index_dev
    buildsystem
    contributing
diff --git a/doc/html/_sources/loop/backbone.txt b/doc/html/_sources/loop/backbone.txt
new file mode 100644
index 0000000000000000000000000000000000000000..923b4790649d7071c84a32ca8a4763f5d067753b
--- /dev/null
+++ b/doc/html/_sources/loop/backbone.txt
@@ -0,0 +1,377 @@
+Backbone
+================================================================================
+
+.. currentmodule:: promod3.loop
+
+
+The most simple representation of structural information in PROMOD3 is the
+:class:`Backbone`. It provides a way to store the backbone positions of
+a residue. For simple structural manipulations they can be gathered to a
+:class:`BackboneList` that can be inserted into or converted to a 
+:class:`ost.mol.EntityHandle` at any time.
+
+.. code-block:: python
+
+  from promod3 import loop
+
+  sequence = "AAAAAAAA"
+
+  #The backbone gets initially constructed with backbone dihedrals
+  #typical for helices
+  bb_list = loop.BackboneList(sequence)
+
+  #let's have a look at the set dihedral angles
+  for i in range(len(bb_list)):
+    print "Looking at position ",i
+    if i > 0:
+      print "phi: ", bb_list.GetPhiTorsion(i)
+    if i < len(bb_list)-1:
+      print "psi: ", bb_list.GetPsiTorsion(i)
+
+
+  #we now use a TorsionSampler to set random dihedral angles
+  torsion_sampler = loop.LoadTorsionSampler()
+  idx = torsion_sampler.GetHistogramIndex("ALA","ALA","ALA")
+  for i in range(len(bb_list)):
+    dihedrals = torsion_sampler.Draw(idx)
+    if i > 0:
+      bb_list.SetPhiTorsion(i,dihedrals[0])
+    if i < len(bb_list)-1:
+      bb_list.SetPsiTorsion(i,dihedrals[1])
+
+  #let's save down the randomized fragment
+  io.SavePDB(bb_list.ToEntity(),"randomized_fragment.pdb")
+
+
+
+The basic building blocks
+--------------------------------------------------------------------------------
+
+
+.. class:: DihedralPair()
+
+  The DihedralPair class only serves as a helper to initialize a
+  :class:`BackboneList` given consecutive dihedral angles.
+
+  .. method:: DihedralPair(phi,psi)
+
+  :param phi:           Phi dihedral angle
+  :param psi:           Psi dihedral angle
+
+
+.. class:: Backbone()
+  
+  Container for the positions of the backbone atoms (N,CA,CB,C and O) of a residue.
+
+  .. method:: Backbone(n,ca,c,o,olc)
+
+    :param n:       Position of nitrogen
+    :param ca:      Position of alpha carbon
+    :param c:       Position of carbon
+    :param o:       Position of oxygen
+    :param olc:     One letter code of the residue
+    :type n:        :class:`~ost.geom.Vec3`
+    :type ca:       :class:`~ost.geom.Vec3`
+    :type c:        :class:`~ost.geom.Vec3`
+    :type o:        :class:`~ost.geom.Vec3`
+    :type olc:      :class:`char`
+
+  .. method:: Backbone(n,ca,c,o,cb,olc)
+
+    :param n:       Position of nitrogen
+    :param ca:      Position of alpha carbon
+    :param c:       Position of carbon
+    :param o:       Position of oxygen
+    :param cb:      Position of beta carbon
+    :param olc:     One letter code of the residue
+    :type n:        :class:`~ost.geom.Vec3`
+    :type ca:       :class:`~ost.geom.Vec3`
+    :type c:        :class:`~ost.geom.Vec3`
+    :type o:        :class:`~ost.geom.Vec3`
+    :type cb:       :class:`~ost.geom.Vec3`
+    :type olc:      :class:`char`
+
+  .. method:: Backbone(res,olc)
+
+    :param res:     Residue from which to extract backbone atom positions
+    :param olc:     One letter code of the residue
+    :type res:      :class:`~ost.mol.ResidueHandle`
+    :type olc:      :class:`char`
+
+  .. attribute:: n_coord
+
+    Coordinate of the nitrogen atom (:class:`ost.geom.Vec3`)
+
+  .. attribute:: ca_coord
+
+    Coordinate of the C-alpha carbon atom (:class:`ost.geom.Vec3`)
+
+  .. attribute:: c_coord
+
+    Coordinate of the C carbon atom (:class:`ost.geom.Vec3`)
+
+  .. attribute:: o_coord
+
+    Coordinate of the oxygen atom (:class:`ost.geom.Vec3`)
+
+  .. attribute:: cb_coord
+
+    Coordinate of the C-beta carbon atom (:class:`ost.geom.Vec3`)
+
+  .. attribute:: one_letter_code
+
+    One letter code of the residue (:class:`char`)  
+
+  .. attribute:: aa
+
+    Amino acid type of the residue (:class:`ost.conop.AminoAcid`)
+
+  .. method:: ApplyTransform(transformation_matrix)
+
+    Applies a transformation to the coordinates of the backbone
+
+    :param transformation_matrix:       The transformation
+    :type transformation_matrix:        :class:`ost.geom.Mat4`
+
+  .. method:: GetTransform()
+
+    :returns:         The transformation currently applied on the backbone
+    :rtype:           :class:`ost.geom.Mat4`
+
+
+
+Editing full stretches of backbone residues
+--------------------------------------------------------------------------------
+
+.. class:: BackboneList()
+  
+  Container for the positions of the backbone atoms (N,CA,CB,C and O) of a segment. This object basically contains a list of :class:`Backbone` and allows setting or modifying the positions of the atoms by setting/changing torsion angles.
+
+  .. method:: BackboneList()
+
+    Creates empty BackboneList
+
+  .. method:: BackboneList(sequence)
+
+    Creates a helical BackboneList from given sequence
+
+    :param sequence:    Sequence of created BackboneList
+
+    :type sequence:     :class:`str`
+
+  .. method:: BackboneList(sequence, dihedral_angles)
+
+    Creates a BackboneList from given **sequence** and **dihedral_angles**
+
+    :param sequence:    Sequence of created BackboneList
+    :param dihedral_angles: List of :class:`DihedralAngle` objects defining the phi/psi
+                            angles of created BackboneList
+
+    :type sequence:     :class:`str`
+    :type dihedral_angles: :class:`list`
+
+    :raises:            :class:`RuntimeError` If **sequence** and **dihedral_angles**
+                        are inconsistent in size.   
+
+  .. method:: BackboneList(sequence, residues)
+
+    Creates a BackboneList from given **sequence** and positions extracted from
+    **residues**
+
+    :param sequence:    Sequence of created BackboneList
+    :param residues:    List of :class:`ost.mol.ResidueHandle` objects from which the
+                        backbone positions are extracted.
+
+    :type sequence:     :class:`str`
+    :type residues:     :class:`list`
+
+    :raises:            :class:`RuntimeError` If **sequence** and **residues**
+                        are inconsistent in size or when there is a residue not
+                        providing all necessary positions. 
+
+
+  .. method:: ToEntity()
+
+  Transforms the backbone list into an :class:`ost.mol.EntityHandle`.
+
+    :return:          The entity
+    :rtype:           :class:`ost.mol.EntityHandle`
+
+  .. method:: GetSequence()
+
+    :return:            The amino acid sequence
+
+  .. method:: InsertInto(chain,n_stem,c_stem [,reset_stem_positions=True])
+
+    Inserts the backbone list into the **chain**. If the residues corresponding to the :class:`BackboneList` are already present in the entity, they will be replaced, otherwise they will be added to the entity.
+
+    :param chain:                 The chain
+    :param n_stem:                The residue number of the n_stem
+    :param c_stem:                The residue number of the c_stem
+    :param reset_stem_positions:  Whether *n_stem* and *c_stem* residues'positions whould be set to the positions of the :class:`BackboneList`
+    :type entity:     :class:`ost.mol.ChainHandle`
+    :type n_stem:     :class:`ost.mol.ResNum`
+    :type c_stem:     :class:`ost.mol.ResNum`
+    :type reset_stem_positions:     :class:`Bool`
+
+
+  .. method:: ApplyTransform(transformation_matrix)
+
+    Applies a transformation to the positions of the the :class:`BackboneList`.
+
+    :param transformation_matrix:       The transformation
+    :type transformation_matrix:        :class:`ost.geom.Mat4`
+
+  .. method:: ApplyTransform(transform)
+
+    Applies a transformation to the positions of the the :class:`BackboneList`.
+
+    :param transform:            The transformation
+    :type transform:        :class:`ost.geom.Transform`
+
+  .. method:: SetPhiTorsion(index,angle[,sequential=False])
+
+    Sets the *phi* torsion angle of the backbone at position **index** in the :class:`BackboneList`.
+
+    :param index:                The index of the residue in the :class:`BackboneList` for which the angle shout be set.
+    :param angle:                The angle
+    :param sequential:           If *True*, the rotation will be propagated to all residues after the one with **index**. Otherwise it will be propagated in the direction where it will affect the least number of residues.
+
+    :type index:             :class:`int`
+    :type angle:             :class:`float`
+    :type sequential:         :class:`bool`
+
+  .. method:: SetPsiTorsion(index,angle[,sequential=False])
+
+    Sets the *psi* torsion angle of the backbone at position **index** in the :class:`BackboneList`.
+
+    :param index:                The index of the residue in the :class:`BackboneList` for which the angle shout be set.
+    :param angle:                The angle
+    :param sequential:           If *True*, the rotation will be propagated to all residues after the one with **index**. Otherwise it will be propagated in the direction where it will affect the least number of residues.
+
+    :type index:             :class:`int`
+    :type angle:             :class:`float`
+    :type sequential:         :class:`bool`
+
+  .. method:: SetOmegaTorsion(index,angle[,sequential=False])
+
+    Sets the *omega* torsion angle of the backbone at position **index** in the :class:`BackboneList`.
+
+    :param index:                The index of the residue in the :class:`BackboneList` for which the angle shout be set.
+    :param angle:                The angle
+    :param sequential:           If *True*, the rotation will be propagated to all residues after the one with **index**. Otherwise it will be propagated in the direction where it will affect the least number of residues.
+
+    :type index:             :class:`int`
+    :type angle:             :class:`float`
+    :type sequential:         :class:`bool`
+
+  .. method:: RotateAroundPhiTorsion(index,angle[,sequential=False])
+
+    Rotates the *phi* torsion angle of the backbone at position **index** in the :class:`BackboneList` by **angle**.
+
+    :param index:                The index of the residue in the :class:`BackboneList` for which the angle shout be set.
+    :param angle:                The angle
+    :param sequential:           If *True*, the rotation will be propagated to all residues after the one with **index**. Otherwise it will be propagated in the direction where it will affect the least number of residues.
+
+    :type index:             :class:`int`
+    :type angle:             :class:`float`
+    :type sequential:         :class:`bool`
+
+  .. method:: RotateAroundPsiTorsion(index,angle[,sequential=False])
+
+    Rotates the *psi* torsion angle of the backbone at position **index** in the :class:`BackboneList` by **angle**.
+
+    :param index:                The index of the residue in the :class:`BackboneList` for which the angle shout be set.
+    :param angle:                The angle
+    :param sequential:           If *True*, the rotation will be propagated to all residues after the one with **index**. Otherwise it will be propagated in the direction where it will affect the least number of residues.
+
+    :type index:             :class:`int`
+    :type angle:             :class:`float`
+    :type sequential:         :class:`bool`
+
+  .. method:: RotateAroundOmegaTorsion(index,angle[,sequential=False])
+
+    Rotates the *omega* torsion angle of the backbone at position **index** in the :class:`BackboneList` by **angle**.
+
+    :param index:                The index of the residue in the :class:`BackboneList` for which the angle shout be set.
+    :param angle:                The angle
+    :param sequential:           If *True*, the rotation will be propagated to all residues after the one with **index**. Otherwise it will be propagated in the direction where it will affect the least number of residues.
+
+    :type index:             :class:`int`
+    :type angle:             :class:`float`
+    :type sequential:         :class:`bool`
+
+  .. method:: GetPhiTorsion(index)
+
+    Get the *phi* torsion angle of the residue with **index** in the :class:`BackboneList`
+
+    :param index:           The index
+    :type index:            :class:`int`
+
+  .. method:: GetPsiTorsion(index)
+
+    Get the *psi* torsion angle of the residue with **index** in the :class:`BackboneList`
+
+    :param index:           The index
+    :type index:            :class:`int`
+
+  .. method:: GetOmegaTorsion(index)
+
+    Get the *omega* torsion angle of the residue with **index** in the :class:`BackboneList`
+
+    :param index:           The index
+    :type index:            :class:`int`
+
+  .. method:: ReplaceFragment(sub_fragment,index)
+
+    Replaces a fragment of the :class:`BackboneList` starting at position **index** by the **sub_fragment**.
+
+    :param sub_fragment:          The fragment to be inserted
+    :param index:                 The position at which the fragment replacement will begin
+    :type sub_fragment:           :class:`BackboneList`
+    :type index:                  :class:`int`
+
+  .. method:: CARMSD(other[,superposed_rmsd=False])
+
+    Calculates the C-alpha RMSD between this :class:`BackboneList` and an **other** backbone list.
+    
+    :param other:             Other backbone list
+    :param superposed_rmsd:   whether to superpose before calculating the RMSD
+
+    :type other:              :class:`BackboneList`
+    :type superposed_rmsd:    :class:`bool`
+
+  .. method:: RMSD(other[,superposed_rmsd=False])
+
+    Calculates the RMSD between this :class:`BackboneList` and an **other** backbone list.
+    
+    :param other:             Other backbone list
+    :param superposed_rmsd:   whether to superpose before calculating the RMSD
+
+    :type other:              :class:`BackboneList`
+    :type superposed_rmsd:    :class:`bool`
+
+  .. method:: SuperposeOnto(other)
+
+    Superposes this :class:`BackboneList` onto another one
+
+    :param other:       The other backbone list
+    :type other:        :class:`BackboneList`
+
+  .. method:: insert(index,bb)
+
+    Insert the backbone **bb** into the :class:`BackboneList` at position **index**.
+
+    :param index:         The index
+    :param bb:            The backbone
+    :type index:          :class:`int`
+    :type bb:             :class:`Backbone`
+
+  .. method:: append(bb)
+
+    Appends the backbone **bb** at the end of the :class:`BackboneList`.
+
+    :param bb:            The backbone
+    :type bb:             :class:`Backbone`
+
+
diff --git a/doc/html/_sources/loop/backbone_loop_score.txt b/doc/html/_sources/loop/backbone_loop_score.txt
new file mode 100644
index 0000000000000000000000000000000000000000..61d20f16b4a5af8e84b60a4fd1338a954f33dd39
--- /dev/null
+++ b/doc/html/_sources/loop/backbone_loop_score.txt
@@ -0,0 +1,418 @@
+Loop Scoring
+================================================================================
+
+.. currentmodule:: promod3.loop
+
+
+PROMOD3 provides several terms to assess a loop conformations plausibility.
+This is done using the :class:`BackboneLoopScorer`. To be used, the scorer 
+must be initialized with a seqres. After initialization the structural 
+environment can be set. This environment defines the particles a certain 
+loop interacts with and can be reset/extended at any time in the modelling
+process. All values of the different scores can be set manually. Once the
+scores are set, the scorer can be saved/loaded from/to disk. 
+Some of the available scores are statistical potential based.
+When setting up an empty scorer, the parametrization and the score values
+of these potentials have to be set manually. 
+
+
+
+
+
+
+
+The BackboneLoopScorer
+--------------------------------------------------------------------------------
+
+.. class:: BackboneLoopScorer
+
+  .. method:: Save(filename)
+
+    :param filename:    Name of file, the scorer will be dumped into.
+                        All model specific information is lost.
+
+
+    :type filename:     :class:`str`
+
+  .. method:: Load(filename)
+
+    :param filename:    Name of file, the scorer will be loaded from.
+
+    :type filename:     :class:`str`
+
+    :raises:            :class:`RuntimeError` if file doesn't exist
+
+  .. method:: SetCBetaPotentialParameters(cbeta_cutoff, cbeta_bins, cbeta_seq_sep)
+
+    Parametrizes a pairwise distance dependent statistical potential considering
+    pairwise distances between cbeta atoms.
+
+    :param cbeta_cutoff: The maximum distance of two cbeta atoms to be 
+                         considered
+
+    :param cbeta_bins:  Number of equally sized bins to describe the
+                        cbeta distances in a discrete manner.
+
+    :param cbeta_seq_sep: Minimal separation in sequence two cbeta atoms must
+                          have to be considered
+
+    :type cbeta_cutoff: :class:`float`
+    :type cbeta_bins:   :class:`int`
+    :type cbeta_seq_sep: :class:`int`
+
+    :raises:            :class:`RuntimeError` if *cbeta_cutoff* is negative or
+                        *cbeta_bins* is <= 0
+
+  .. method:: SetTorsionPotentialParameters(group_definitions, torsion_bins)
+
+    Parametrizes a torsion statistical potential, that assigns energies based
+    on the identity of three consecutive residues and the phi/psi dihedral
+    angles of the central residue. The group definitions are the same as they
+    are used in the :class:`TorsionSampler`.
+
+    :param group_definitions: List of strings describing groups of residues
+                                  for which separate phi/psi dependent energies
+                                  can be set.
+    :param torsion_bins: Number of equally sized bins to describe the
+                             torsion angles in a discrete manner.
+
+    :type group_definitions: :class:`list`
+    :type torsion_bins: :class:`int`
+
+    :raises:            :class:`RuntimeError` if torsion_bins is <= 0 or 
+                        one possible combination of the 20 standard amino
+                        acids is not covered by any entry of *group_definitions* 
+
+
+  .. method:: SetCBPackingPotentialParameters(cb_packing_cutoff, cb_packing_max_count)
+
+    Parametrizes a cb packing statistical potential, that assigns energies
+    based on the number of other cbeta atoms in the environment.
+
+    :param cb_packing_cutoff: Radius in which other cbeta atoms are counted
+    :param cb_packing_max_count: If number of other cbeta atoms exceeds
+                                 *cb_packing_max_count*, it will be set to
+                                 this number.
+
+    :type cb_packing_cutoff: :class:`float`
+    :type cb_packing_max_count: :class:`int`
+
+    :raises:            :class:`RuntimeError` if *cb_packing_cutoff* is < 0 or
+                        *cb_packing_max_count* is <= 0
+
+  .. method:: SetHBondPotentialParameters(hb_min_d, hb_max_d, hb_min_alpha, hb_max_alpha, hb_min_beta, hb_max_beta, hb_min_gamma, hb_max_gamma, hb_d_bins, hb_alpha_bins, hb_beta_bins, hb_gamma_bins)
+
+    Parametrizes an HBond potential similar to the one defined in the Rosetta
+    energy function. It considers the CA, C and O positions from the hbond 
+    acceptor as well as the N and H positions from the hbond donor.
+    4 Parameters describe their relative orientation.
+    d is the H-O distance, alpha is the angle O-H-N, beta is the angle  C-N-H
+    and gamma is the dihedral between CA-C-O-H. An energy function for these
+    parameters is built for three different states. State 1 for helical
+    residues, state 2 for extended residues and state 0 for other residues.
+    If the state of two interacting particles is the same, thats the one
+    from which the energy is extracted. In all other cases, the energy is
+    extracted from the 0 state.
+
+    :param hb_min_d:    Minimal H-O distance, that interaction gets considered.
+    :param hb_max_d:    Maximal H-O distance, that interaction gets considered.
+    :param hb_min_alpha: Minimal O-H-N angle, that interaction gets considered.
+    :param hb_max_alpha: Maximal O-H-N angle, that interaction gets considered.
+    :param hb_min_beta: Minimal C-N-H angle, that interaction gets considered.
+    :param hb_max_beta: Maximal C-N-H angle, that interaction gets considered.
+    :param hb_min_gamma: Minimal CA-C-O-H dihedral, that interaction gets 
+                         considered.
+    :param hb_max_gamma: Maximal CA-C-O-H dihedral, that interaction gets 
+                         considered.
+    :param hb_d_bins: Number of equally sized bins to describe the H-O distance 
+                      in a discrete manner.  
+    :param hb_alpha_bins: Number of equally sized bins to describe the O-H-N 
+                          angle in a discrete angle.
+    :param hb_beta_bins: Number of equally sized bins to describe the C-N-H
+                         angle in a discrete angle.
+    :param hb_gamma_bins: Number of equally sized bins to describe the CA-C-O-H 
+                          dihedral in a discrete angle.
+
+    :type hb_min_d:     :class:`float`  
+    :type hb_max_d:     :class:`float`
+    :type hb_min_alpha: :class:`float`
+    :type hb_max_alpha: :class:`float`
+    :type hb_min_beta:  :class:`float`
+    :type hb_max_beta:  :class:`float`
+    :type hb_min_gamma: :class:`float`
+    :type hb_max_gamma: :class:`float`
+    :type hb_d_bins:    :class:`int`
+    :type hb_alpha_bins: :class:`int`
+    :type hb_beta_bins: :class:`int`
+    :type hb_gamma_bins: :class:`int`
+
+    :raises:            :class:`RuntimeError` if one of the bin parameters is <= 0
+                        or a max parameter is smaller than its min counterpart.
+
+
+  .. method:: SetCBetaEnergy(a, b, bin, e)
+
+    :param a:           Identity of first interaction partner.          
+    :param b:           Identity of second interaction partner. 
+    :param bin:         Discrete bin describing the interaction distance based
+                        on the previously defined *cbeta_cutoff* and 
+                        *cbeta_bins*.
+    :param e:           Energy to be set         
+
+    :type a:            :class:`ost.conop.AminoAcid`                 
+    :type b:            :class:`ost.conop.AminoAcid`
+    :type bin:          :class:`int`
+    :type e:            :class:`float`
+
+    :raises:            :class:`RuntimeError` if invalid bin or amino acid is 
+                        given
+
+  .. method:: SetTorsionEnergy(group_id_idx, phi_bin, psi_bin, e)
+
+    :param group_id_idx: Index of group identifier given at setting up the 
+                         torsion potential.
+    :param phi_bin:     Discrete bin describing the phi angle based on
+                        the previously defined *torsion_bins*
+    :param psi_bin:     Discrete bin describing the psi angle based on
+                        the previously defined *torsion_bins*
+    :param e:           Energy to be set
+
+    :type group_id_idx: :class:`int`
+    :type phi_bin:      :class:`int`
+    :type psi_bin:      :class:`int`
+    :type e:            :class:`float`
+
+    :raises:            :class:`RuntimeError` if invalid angle bin or 
+                        group_id_idx is given.
+
+  .. method:: SetCBPackingEnergy(a, count, e)
+
+    :param a:           Identity of amino acid
+    :param count:       Number of surrounding cb positions
+    :param e:           Energy to be set
+
+    :type a:            :class:`ost.conop.AminoAcid` 
+    :type count:        :class:`int`
+    :type e:            :class:`float`
+
+    :raises:            :class:`RuntimeError` if *a* is invalid or *count*
+                        exceeds previously defined *max_count*
+
+  .. method:: SetHBondEnergy(state, d_bin, alpha_bin, beta_bin, gamma_bin, e)
+
+    :param state:       State describing the actual secondary structure 
+                        (1:helical, 2:extended, 0: other)
+    :param d_bin:       Discrete bin describing the H-O distance based on
+                        the previously set parametrization.
+    :param alpha_bin:   Discrete bin describing the O-H-N angle based on the
+                        previously set parametrization.
+    :param beta_bin:    Discrete bin describing the C-N-H angle based on the
+                        previously set parametrization. 
+    :param gamma_bin:   Discrete bin describing the CA-C-O-H dihedral based on 
+                        the previously set parametrization.
+    :param e:           Energy to be set
+
+    :type state:        :class:`int`
+    :type d_bin:        :class:`int`
+    :type alpha_bin:    :class:`int`
+    :type beta_bin:     :class:`int`
+    :type gamma_bin:    :class:`int`
+    :type e:            :class:`float`
+
+    :raises:            :class:`RuntimeError` if state is not in [0,1,2] or one
+                        of the bins is invalid.
+
+  .. method:: Initialize(seqres)
+
+    Set up internal scorer with given seqres
+
+    :param seqres:      Internal SEQRES to be set. Whenever setting structural
+                        data, consistency with this SEQRES is encorced.
+    :type seqres:       :class:`str`
+
+    :raises:            :class:`RuntimeError` when *seqres* contains invalid 
+                        one letter code
+
+  .. method:: Initialize(seqres_list)
+
+    Set up internal scorer with given seqres_list
+
+    :param seqres_list: Internal SEQRES to be set. Every entry in the list 
+                        represents one chain. Whenever setting structural
+                        data, consistency with these SEQRES is encorced.
+    :type seqres_list:       :class:`list`
+
+    :raises:            :class:`RuntimeError` when *seqres_list* contains
+                        element with invalid one letter code
+
+  .. method:: SetEnvironment(env)
+
+    Sets structural environment with which loops to be scored interact.
+    If structural data for specific residues is already set, the
+    data gets resetted for these positions.
+
+    :param env:         Structral data to be set as environment. The chains
+                        in *env* are expected to be in the same order as the
+                        provided SEQRES items.
+    :type env:          :class:`ost.mol.EntityView`
+
+    :raises:            :class:`RuntimeError` if scorer has never been
+                        initialized with a SEQRES or when *env* is inconsistent
+                        with previously set SEQRES. This can be because of 
+                        corrupt residue numbers or sequence mismatches.
+
+  .. method:: SetEnvironment(bb_list, start_resnum, [chain_index=0])
+
+    Sets structural environment with which loops to be scored interact.
+    If structural data for specific residues is already set, the
+    data gets resetted for these positions.
+
+    :param bb_list:     Structural data to be set as environment.
+    :param start_resnum: ResNum defining the position in the SEQRES
+                         (first element starts with one!)
+    :param chain_index: Index of chain the structural data belongs to.
+
+    :type bb_list:      :class:`BackboneList`
+    :type start_resnum: :class:`int`
+    :type chain_index:  :class:`int`
+
+    :raises:            :class:`RuntimeError` if sequence of *bb_list* is
+                        inconsistent with previously provided SEQRES or
+                        when either start_resnum or chain_index point to
+                        invalid positions in the SEQRES.
+
+  .. method:: CalculateClashScore(bb_list, start_resnum, [chain_index=0])
+
+    :param bb_list:     Loop to calculate the clash score
+    :param start_resnum: ResNum defining the position in the SEQRES
+                         (first element starts with one!)
+    :param chain_index: Index of the chain the loop belongs to
+
+    :type bb_list:      :class:`BackboneList`
+    :type start_resnum: :class:`int`
+    :type chain_index:  :class:`int`
+
+    :returns: clash score
+
+    :raises:            :class:`RuntimeError` if size of *bb_list* is smaller
+                        than 3, the *chain_index*/*start_resnum* lead to
+                        invalid positions in the SEQRES or the scorer
+                        has never been initialized with a SEQRES.
+
+  .. method:: CalculateCBetaScore(bb_list, start_resnum, [chain_index=0])
+
+    :param bb_list:     Loop to calculate the cbeta score
+    :param start_resnum: ResNum defining the position in the SEQRES
+                         (first element starts with one!)
+    :param chain_index: Index of the chain the loop belongs to
+
+    :type bb_list:      :class:`BackboneList`
+    :type start_resnum: :class:`int`
+    :type chain_index:  :class:`int`
+
+    :returns: cbeta score
+
+    :raises:            :class:`RuntimeError` if size of *bb_list* is smaller
+                        than 3, the *chain_index*/*start_resnum* lead to
+                        invalid positions in the SEQRES or when the 
+                        according potential or scorer have never been properly
+                        initialized.
+
+  .. method:: CalculateTorsionScore(bb_list, start_resnum, [chain_index=0])
+
+    :param bb_list:     Loop to calculate the torsion score
+    :param start_resnum: ResNum defining the position in the SEQRES
+                         (first element starts with one!)
+    :param chain_index: Index of the chain the loop belongs to
+
+    :type bb_list:      :class:`BackboneList`
+    :type start_resnum: :class:`int`
+    :type chain_index:  :class:`int`
+
+    :returns: torsion score
+
+    :raises:            :class:`RuntimeError` if size of *bb_list* is smaller
+                        than 3, the *chain_index*/*start_resnum* lead to
+                        invalid positions in the SEQRES or when the 
+                        according potential or scorer have never been properly
+                        initialized.
+
+  .. method:: CalculateCBPackingScore(bb_list, start_resnum, [chain_index=0])
+
+    :param bb_list:     Loop to calculate the packing score
+    :param start_resnum: ResNum defining the position in the SEQRES
+                         (first element starts with one!)
+    :param chain_index: Index of the chain the loop belongs to
+
+    :type bb_list:      :class:`BackboneList`
+    :type start_resnum: :class:`int`
+    :type chain_index:  :class:`int`
+
+    :returns: packing score
+
+    :raises:            :class:`RuntimeError` if size of *bb_list* is smaller
+                        than 3, the *chain_index*/*start_resnum* lead to
+                        invalid positions in the SEQRES or when the 
+                        according potential or scorer have never been properly
+                        initialized.
+
+  .. method:: CalculateHBondScore(bb_list, start_resnum, [chain_index=0])
+
+    :param bb_list:     Loop to calculate the hbond score
+    :param start_resnum: ResNum defining the position in the SEQRES
+                         (first element starts with one!)
+    :param chain_index: Index of the chain the loop belongs to
+
+    :type bb_list:      :class:`BackboneList`
+    :type start_resnum: :class:`int`
+    :type chain_index:  :class:`int`
+
+    :returns: hbond score
+
+    :raises:            :class:`RuntimeError` if size of *bb_list* is smaller
+                        than 3, the *chain_index*/*start_resnum* lead to
+                        invalid positions in the SEQRES or when the 
+                        according potential or scorer have never been properly
+                        initialized.
+
+  .. method:: CalculateDSSPHBondScore(bb_list, start_resnum, [chain_index=0])
+
+    Instead of calculate an hbond score based on a statistical potential,
+    an the DSSP hbond energy function gets evaluated in this function.
+
+    :param bb_list:     Loop to calculate the hbond score
+    :param start_resnum: ResNum defining the position in the SEQRES
+                         (first element starts with one!)
+    :param chain_index: Index of the chain the loop belongs to
+
+    :type bb_list:      :class:`BackboneList`
+    :type start_resnum: :class:`int`
+    :type chain_index:  :class:`int`
+
+    :returns: hbond score
+
+    :raises:            :class:`RuntimeError` if size of *bb_list* is smaller
+                        than 3, the *chain_index*/*start_resnum* lead to
+                        invalid positions in the SEQRES or when the 
+                        scorer has never been properly initialized.
+
+  .. method:: TransOmegaTorsions(bb_list, [thresh = 20/180*pi, allow_prepro_cis=True])
+
+    Checks whether *bb_list* only contains trans omega torsion angles.
+
+    :param bb_list:     Loop to check
+    :param thresh:      Allowed deviation from ideal trans angle (pi)
+    :param allow_prepro_cis: Flag, whether cis-omega torsions should be
+                             allowed in case of a subsequent proline.
+
+    :type bb_list:      :class:`BackboneList`
+    :type thresh:       :class:`float`
+    :type allowe_prepro_cis: :class:`bool`
+
+    :returns:           :class:`bool` whether *bb_list* only contains
+                        trans-omega torsions.
+
+    :raises:            :class:`RuntimeError` if size of *bb_list* is
+                        smaller than 3.
+
+
diff --git a/doc/html/_sources/loop/index.txt b/doc/html/_sources/loop/index.txt
new file mode 100644
index 0000000000000000000000000000000000000000..121692f633e26bd0f2cb4280dc7fd5f37afbc99a
--- /dev/null
+++ b/doc/html/_sources/loop/index.txt
@@ -0,0 +1,23 @@
+:mod:`~promod3.loop` - Loop Modelling
+================================================================================
+
+.. module:: promod3.loop
+  :synopsis: Loop Modelling
+
+.. currentmodule:: promod3.loop
+
+Tools and algorithms to for loop modelling.
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+
+   Representing Loops <backbone>
+   Have a closer look at backbone dihedral angles <torsion_sampler>
+   A dump for structural data <structure_db>
+   Closing Loops - adapt them to the environment <loop_closing>
+   Loop Scoring <backbone_loop_score>
+   Generating Loops DeNovo <monte_carlo>
+   Handle several loop candidates at once <loop_candidate>
+   Loading Precomputed Loop Objects <load_loop_objects>
diff --git a/doc/html/_sources/loop/load_loop_objects.txt b/doc/html/_sources/loop/load_loop_objects.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9cff788d79f8c6449c6b249b31ae2aec56c3bcaf
--- /dev/null
+++ b/doc/html/_sources/loop/load_loop_objects.txt
@@ -0,0 +1,101 @@
+Load Loop Objects
+================================================================================
+
+.. currentmodule:: promod3.loop
+
+
+Several data objects are used throughout the loop module.
+PROMOD3 offers to load precomputed instances for direct usage.
+
+.. method:: LoadTorsionSampler([seed = 0])
+
+  Loads and returns a torsion sampler with an amino acid grouping
+  as defined by Solis & Rachovsky [1] that has been trained on 
+  non-redundant protein structures.
+
+  :param seed:          Seed for internal random number generator
+  :type seed:           :class:`int`
+
+  :returns:             The torsion sampler
+
+  :rtype:               :class:`TorsionSampler`
+
+
+.. method:: LoadTorsionSamplerCoil([seed = 0])
+
+  Loads and returns a torsion sampler with an amino acid grouping
+  as defined by Solis & Rachovsky [1] that has been trained on coil
+  residues of  non-redundant protein structures.
+
+  :param seed:          Seed for internal random number generator
+  :type seed:           :class:`int`
+
+  :returns:             The torsion sampler
+
+  :rtype:               :class:`TorsionSampler`
+
+
+.. method:: LoadTorsionSamplerHelical([seed = 0])
+
+  Loads and returns a torsion sampler with an amino acid grouping
+  as defined by Solis & Rachovsky [1] that has been trained on helical
+  residues of  non-redundant protein structures.
+
+  :param seed:          Seed for internal random number generator
+  :type seed:           :class:`int`
+
+  :returns:             The torsion sampler
+
+  :rtype:               :class:`TorsionSampler`
+
+
+.. method:: LoadTorsionSamplerExtended([seed = 0])
+
+  Loads and returns a torsion sampler with an amino acid grouping
+  as defined by Solis & Rachovsky [1] that has been trained on extended
+  residues of  non-redundant protein structures.
+
+  :param seed:          Seed for internal random number generator
+  :type seed:           :class:`int`
+
+  :returns:             The torsion sampler
+
+  :rtype:               :class:`TorsionSampler`
+
+
+.. method:: LoadFragDB()
+
+  Loads and returns a FragDB with the default StructureDB attached.
+
+  :returns:             The Fragment database
+  :rtype:               :class:`FragDB`
+
+.. method:: LoadStructureDB([load_frequencies=False])
+
+  Loads and returns a structure db containing roughly 24000 chains form the
+  PDB with redundancy cutoff of 90%
+
+  :param load_frequencies: If True, the full database including profile
+                           information for every position gets loaded.
+                           A database without profiles loads faster and 
+                           requires less memory. But it's not possible
+                           to add new coordinates or call one of the
+                           profile dependent functions.
+
+  :type load_frequencies: :class:`bool`
+
+  :returns:             The structure db
+  :rtype:               :class:`StructureDB`
+
+
+.. method:: LoadBackboneLoopScorer()
+
+  Loads and returns a backbone loop scorer with already set statistical 
+  potentials.
+
+  :returns:             The scorer
+  :rtype:               :class:`BackboneLoopScore`
+
+[1] A. D. Solis and S. Rackovsky. Improvement of statistical potentials and     
+    threading score functions using information maximization. 
+    Proteins, 62(4):892–908, Mar 2006.
diff --git a/doc/html/_sources/loop/loop_candidate.txt b/doc/html/_sources/loop/loop_candidate.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e5c970ac83fa209022f9c51e9ff262876a97171b
--- /dev/null
+++ b/doc/html/_sources/loop/loop_candidate.txt
@@ -0,0 +1,405 @@
+Loop Candidates
+================================================================================
+
+.. currentmodule:: promod3.loop
+
+.. class:: LoopCandidate(backbone_list)
+  
+  Object representing a possible configuration of the backbone of a particular loop being modelled. Apart from the positions, stored in a :class:`BackboneList`, it also has attributes storing different scores associated with the candidate (will be set by calling the corresponding scoring function in :class:`LoopCandidates`) as well as some information on the original structure from which this particular loop configuration was taken (in the case when the configuration was taken from the structural database).
+
+  :param backbone_list:  Positions of the backbone atoms
+
+  :type backbone_list:   :class:`BackboneList`
+
+  .. method:: CARMSD(other)
+
+    Calculates the C-alpha RMSD between this loop candidate and an *other* loop candidate, after superposition.
+    
+    :param other:        Other loop
+
+    :type other:         :class:`LoopCandidate`
+
+  .. method:: RMSD(other)
+
+    Calculates the RMSD between this loop candidate and an *other* loop candidate, after superposition.
+    
+    :param other:        Other loop
+
+    :type other:         :class:`LoopCandidate`  
+
+  .. method:: GetoriginalSequence()
+
+    Returns the sequence of the original loop from the structural database, i.e. the sequence of the piece of structure from which the loop was taken.
+
+    :returns:           A sequence
+
+    :rtype:             :class:`str`
+    
+  .. method:: GetoriginalDSSPState()
+
+    Returns the secondary structure of the original loop from the structural database, i.e. the secondary structure of the piece of structure from which the loop was taken.
+    
+    :returns:           The secondary structure code as given in DSSP
+
+    :rtype:             :class:`str` 
+
+  .. attribute:: bb_list
+
+    The backbone list containing the positions of the backbone atoms
+
+    :type: :class:`BackboneList`
+
+  .. attribute:: stem_rmsd
+
+    The backbone RMSD of the two stem residues of the loop candidate relative to the stem residues for which the loop is being modelled. This is a measure of how well the loop candidate fits in the structure where it is being added.
+
+    :type: :class:`float`
+
+  .. attribute:: clash_score
+
+    The clash score of the loop candidate
+
+    :type: :class:`float`
+
+  .. attribute:: cbeta_score
+
+    The C-beta score of the loop candidate
+
+    :type: :class:`float`
+
+  .. attribute:: torsion_score
+
+    The torsion score of the loop candidate
+
+    :type: :class:`float`
+
+  .. attribute:: packing_score
+
+    The packing score of the loop candidate
+
+    :type: :class:`float`
+
+  .. attribute:: hbond_score
+
+    The H-bond score of the loop candidate
+    
+    :type: :class:`float`
+
+  .. attribute:: dssp_hbond_score
+
+    The DSSP H-bond of the loop candidate
+
+    :type: :class:`float`
+
+
+.. class:: LoopCandidates(n_stem,c_stem,seq)
+
+  The *LoopCandidates* is the basic object used for loop modelling. It contains the positions of the two anchor residues, the *n_stem* and *c_stem* residues, and thes sequence of the residues to be modelled in between these anchor residues.
+  It also contains a list of :class:`LoopCandidate`, which are possible conformations of the backbone between the stem residues.
+
+
+  :param n_stem:         The residue at the N-terminal end of the loop 
+  :param c_stem:         The residue at the C-terminal end of the loop 
+  :param seq:            The sequence of residues to be added between the *n_stem* and *c_stem*
+
+  :type n_stem:          :class:`ost.mol.ResidueHandle`
+  :type c_stem:          :class:`ost.mol.ResidueHandle`
+  :type sequence:        :class:`str`
+
+
+  .. method:: FillFromDatabase(n_stem, c_stem, seq, frag_db, structural_db, [extended_search=False])
+    
+    Searches for loop candidates matching the length (number of residues in *seq*) and geometry (of *n_stem* and *c_stem*) of the loop to be modelled in a fragment database.
+
+    :param n_stem:         The residue at the N-terminal end of the loop 
+    :param c_stem:         The residue at the C-terminal end of the loop 
+    :param seq:            The sequence of residues to be added between the *n_stem* and *c_stem*
+    :param frag_db:        The fragment database
+    :param structural_db:  The according structural database
+    :param extended_search: Wether search should be extended to fragments matching the geometry of the *n_stem* and *c_stem* a bit less precisely.
+
+    :type n_stem:          :class:`ost.mol.ResidueHandle`
+    :type c_stem:          :class:`ost.mol.ResidueHandle`
+    :type seq:             :class:`str`
+    :type frag_db:         :class:`FragDB`
+    :type structure_db:    :class:`StructureDB`
+    :type extended_search: :class:`Bool`
+
+    :returns:              A list of loop candidates
+    :rtype:                :class:`LoopCandidates`
+
+  .. method:: FillFromMonteCarloSampler(n_stem, c_stem, initial_bb, seq, num_loops, steps, sampler, closer, scorer, cooler)
+    
+    Uses Monte Carlo simulated annealing to sample the loop to be modelled.
+
+    :param n_stem:         The residue at the N-terminal end of the loop 
+    :param c_stem:         The residue at the C-terminal end of the loop 
+    :param initial_bb:     Initial configuration used for the sampling
+    :param seq:            The sequence of residues to be added between the *n_stem* and *c_stem*
+    :param num_loops:      Number of loop candidates to return
+    :param steps:          Number of MC steps to perform for each loop candidate generated.
+    :param cooler:         Controls the temperature profile of the simulated annealing
+    :param scorer:         Used to score the generated configurations at each MC step.
+    :param sampler:        Used to generate a new configuration at each MC step.
+    :param closer:         Used to close the loop (make it match the *n_stem* and *c_stem* geometry) after each MC step. 
+
+    :type n_stem:           :class:`ost.mol.ResidueHandle`
+    :type c_stem:           :class:`ost.mol.ResidueHandle`
+    :type seq:              :class:`str`
+    :type initial_bb:       :class:`BackboneList`
+    :type num_loops:        :class:`int`
+    :type steps:            :class:`int`
+    :type sampler:          :class:`MonteCarloSampler`
+    :type closer:           :class:`MonteCarloCloser`
+    :type scorer:           :class:`MonteCarloScorer`
+    :type cooler:           :class:`MonteCarloCooler`
+
+    :returns:              A list of loop candidates
+    :rtype:                :class:`LoopCandidates`
+
+  .. method:: FillFromMonteCarloSampler(n_stem, c_stem, seq, num_loops, steps, sampler, closer, scorer, cooler)
+    
+    Uses Monte Carlo simulated annealing to sample the loop to be modelled.
+
+    :param n_stem:         The residue at the N-terminal end of the loop 
+    :param c_stem:         The residue at the C-terminal end of the loop 
+    :param seq:            The sequence of residues to be added between the *n_stem* and *c_stem*
+    :param num_loops:      Number of loop candidates to return
+    :param steps:          Number of MC steps to perform for each loop candidate generated.
+    :param cooler:         Controls the temperature profile of the simulated annealing
+    :param scorer:         Used to score the generated configurations at each MC step.
+    :param sampler:        Used to generate a new configuration at each MC step.
+    :param closer:         Used to close the loop (make it match the *n_stem* and *c_stem* geometry) after each MC step. 
+
+    :type n_stem:           :class:`ost.mol.ResidueHandle`
+    :type c_stem:           :class:`ost.mol.ResidueHandle`
+    :type seq:              :class:`str`
+    :type num_loops:        :class:`int`
+    :type steps:            :class:`int`
+    :type sampler:          :class:`MonteCarloSampler`
+    :type closer:           :class:`MonteCarloCloser`
+    :type scorer:           :class:`MonteCarloScorer`
+    :type cooler:           :class:`MonteCarloCooler`
+
+    :returns:              A list of loop candidates
+    :rtype:                :class:`LoopCandidates`
+
+  .. method:: ClusterCandidates()
+
+    Clusters the loop candidates according to their pairwise CA-RMSD using a FLAME (fuzzy clustering by local approximation fo memberships) clustering algorithm.
+
+    :returns:              A list of :class:`LoopCandidates`. Each element in the list corresponds to the candidates in one cluster.
+
+  .. method:: ApplyCCD(torsion_sampler, [max_iterations=1000, rmsd_cutoff=0.1, keep_non_converged=false, random_seed=0, step_size=1.0])
+
+    Closes all :class:`LoopCandidate` in :class:`LoopCandidates` (i.e. modifies the :class:`LoopCandidate` so that its stem residues match those of the :class:`LoopCandidates`, which are the stem residues of the loop being modelled), using the CCD algorithm. CCD (cyclic coordinate descent) is an iterative minimization algorithm. At each step of the closing the *torsion_sampler* is used to calculate the probability of the proposed move and accepted or not depending on a metropolis criterium.
+
+    :param torsion_sampler:      The torsion sampler
+    :param max_iterations:       Maximum number of iteration
+    :param rmsd_cutoff:          Cutoff in stem residue RMSD used to determine convergence
+    :param keep_non_converged:   Wether to keep loop candidates for which the closing did not converged
+    :param random_seed:          seed for random number generator
+    :param step_size:            size of the steps taken during loop closing.
+
+    :type torsion_sampler:      :class:`TorsionSampler`
+    :type max_iterations:       :class:`int`
+    :type rmsd_cutoff:          :class:`float`
+    :type keep_non_converged:   :class:`bool`
+    :type random_seed:          :class:`int`
+    :type step_size:             :class:`float`
+
+  .. method:: ApplyCCD(torsion_samplers, [max_iterations=1000, rmsd_cutoff=0.1, keep_non_converged=false, random_seed=0, step_size=1.0])
+
+    Closes all :class:`LoopCandidate` in :class:`LoopCandidates` (i.e. modifies the :class:`LoopCandidate` so that its stem residues match those of the :class:`LoopCandidates`, which are the stem residues of the loop being modelled) using the CCD algorithm. CCD (cyclic coordinate descent) is an iterative minimization algorithm. At each step of the closing the *torsion_sampler* is used to calculate the probability of the proposed move and accepted or not depending on a metropolis criterium.
+
+    :param torsion_sampler:      A list containing one torsion sampler for each residue in the loop.
+    :param max_iterations:       Maximum number of iteration
+    :param rmsd_cutoff:          Cutoff in stem residue RMSD used to determine convergence
+    :param keep_non_converged:   Wether to keep loop candidates for which the closing did not converged
+    :param random_seed:          seed for random number generator
+    :param step_size:            size of the steps taken during loop closing.
+
+    :type torsion_samplers:      :class:`TorsionSampler`
+    :type max_iterations:       :class:`int`
+    :type rmsd_cutoff:          :class:`float`
+    :type keep_non_converged:   :class:`bool`
+    :type random_seed:          :class:`int`
+    :type step_size:             :class:`float`
+
+
+  .. method:: ApplyCCD([max_iterations=1000, rmsd_cutoff=0.1, keep_non_converged=false, random_seed=0, step_size=1.0])
+
+    Closes all :class:`LoopCandidate` in :class:`LoopCandidates` (i.e. modifies the :class:`LoopCandidate` so that its stem residues match those of the :class:`LoopCandidates`, which are the stem residues of the loop being modelled), using the CCD algorithm. CCD (cyclic coordinate descent) is an iterative minimization algorithm.
+
+    :param max_iterations:       Maximum number of iteration
+    :param rmsd_cutoff:          Cutoff in stem residue RMSD used to determine convergence
+    :param keep_non_converged:   Wether to keep loop candidates for which the closing did not converged
+    :param random_seed:          seed for random number generator
+    :param step_size:            size of the steps taken during loop closing.
+
+    :type max_iterations:       :class:`int`
+    :type rmsd_cutoff:          :class:`float`
+    :type keep_non_converged:   :class:`bool`
+    :type random_seed:          :class:`int`
+    :type step_size:             :class:`float`
+
+  .. method:: ApplyKIC(pivot_one,pivot_two,pivot_three)
+
+    Closes all :class:`LoopCandidate` in :class:`LoopCandidates` (i.e. modifies the :class:`LoopCandidate` so that its stem residues match those of the :class:`LoopCandidates`, which are the stem residues of the loop being modelled), using the KIC algorithm. This algorithm finds analytical solutions for closing the loop by modifying the torsion angles of just three pivot residues.
+
+    :param pivot_one:       Maximum number of iteration
+    :param pivot_two:          Cutoff in stem residue RMSD used 
+    :param pivot_three:   Wether to keep loop candidates for 
+
+    :type max_iterations:       :class:`int`
+    :type rmsd_cutoff:          :class:`float`
+    :type keep_non_converged:   :class:`bool`
+    :type random_seed:          :class:`int`
+    :type step_size:             :class:`float`
+
+  .. method:: ToEntity(index)
+
+    Transforms the loop candidate with index *index* in the list of candidates into an :class:`ost.mol.EntityHandle`.
+
+    :param index:             The index of the :class:`LoopCandidate` that will be transformed into an class:`ost.mol.EntityHandle`
+    :type index:      :class:`int`
+
+    :returns:         An class:`ost.mol.EntityHandle`
+
+  .. method:: InsertInto(entity,index)
+
+    Inserts the loop candidate with index *index* in the list of candidates into the *entity*.
+
+    :param index:             The index of the :class:`LoopCandidate`
+    :param entity:            The entity
+
+    :type index:      :class:`int`
+    :type entity:     class:`ost.mol.EntityHandle`
+
+  .. method:: CalculateClasScores([chain_index=0])
+
+    Calculates and assigns the clash score for each :class:`LoopCandidate`. Scores include interactions within the loop and between the loop and the environment (set in the scorer).
+
+    :param chain_index:     The index of the chain to which the loop belongs (index relative to the entity forming the environment in the :class:`BackboneScorer`)
+    :type chain_index:      :class:`int`       
+
+
+  .. method:: CalculateBetaScores([chain_index=0])
+
+    Calculates and assigns the C-beta score for each :class:`LoopCandidate`. Scores include interactions within the loop and between the loop and the environment (set in the scorer).
+    This score is a pairwise statistical potential based only on C-beta positions.
+
+    :param chain_index:     The index of the chain to which the loop belongs (index relative to the entity forming the environment in the :class:`BackboneScorer`)
+    :type chain_index:      :class:`int`  
+
+  .. method:: CalculateTorsionScores([chain_index=0])
+
+    Calculates and assigns the torsion score for each :class:`LoopCandidate`. This score only includes contributions from the torsion angles of the :class:`LoopCandidate`.
+
+    This score is a statistical potential based only on backbone dihedral angles specific for triplet of residues (torsion potential depends on the identity of the residue and its two neighbors).
+
+    :param chain_index:     The index of the chain to which the loop belongs (index relative to the entity forming the environment in the :class:`BackboneScorer`)
+    :type chain_index:      :class:`int`  
+
+  .. method:: CalculatePackingScores([chain_index=0])
+
+    Calculates and assigns the packing score for each :class:`LoopCandidate`. Scores include interactions within the loop and between the loop and the environment (set in the scorer).
+    This score is a statistical potential measuring and scoring the solvent exposure of the residues.
+
+    :param chain_index:     The index of the chain to which the loop belongs (index relative to the entity forming the environment in the :class:`BackboneScorer`)
+    :type chain_index:      :class:`int`  
+
+  .. method:: CalculateHBondcores([chain_index=0])
+
+    Calculates and assigns the HBond score for each :class:`LoopCandidate`. Scores include interactions within the loop and between the loop and the environment (set in the scorer).
+    This score measures the energy of H-bonds.
+
+    :param chain_index:     The index of the chain to which the loop belongs (index relative to the entity forming the environment in the :class:`BackboneScorer`)
+    :type chain_index:      :class:`int`  
+
+  .. method:: CalculateDSSPHBondScores([chain_index=0])
+
+    Calculates and assigns the C-beta score for each :class:`LoopCandidate`. Scores include interactions within the loop and between the loop and the environment (set in the scorer).
+    This score measures the energy of H-bonds as defined by DSSP.
+
+    :param chain_index:     The index of the chain to which the loop belongs (index relative to the entity forming the environment in the :class:`BackboneScorer`)
+    :type chain_index:      :class:`int`  
+
+  .. method:: CalculateStemRMSD()
+
+    Calculates and assigns the stem RMSD (i.e. the RMSD between the stem residues of the loop candidate and the stem residues of the loop being modelled) for each :class:`LoopCandidate`.
+
+  .. method:: GetAVGClasScore()
+
+    :return:      The average of the clash scores of all :class:`LoopCandidate`.
+    :rtype:       float
+
+  .. method:: GetAVGCBetaScore()
+
+    :return:      The average of the C-beta scores of all :class:`LoopCandidate`.
+    :rtype:       float
+
+  .. method:: GetAVGTorsionScore()
+
+    :return:      The average of the torsion scores of all :class:`LoopCandidate`.
+    :rtype:       float
+
+  .. method:: GetAVGPackingScore()
+
+    :return:      The average of the packing scores of all :class:`LoopCandidate`.
+    :rtype:       float
+
+  .. method:: GetAVGHBondcore()
+
+    :return:      The average of the H-bond scores of all :class:`LoopCandidate`.
+    :rtype:       float
+
+  .. method:: GetAVGDSSPHBondScore()
+
+    :return:      The average of the DSSP H-bond scores of all :class:`LoopCandidate`.
+    :rtype:       float
+
+  .. method:: GetAVGStemRMSD()
+
+    :return:      The average of the stem RMSDs of all :class:`LoopCandidate`.
+    :rtype:       float
+
+  .. method:: GetNStem()
+
+    :return:      The N-stem of loop being modelled
+    :rtype:       :class:`ost.mol.EntityHandle`
+
+  .. method:: GetCStem()
+
+    :return:      The C-stem of loop being modelled
+    :rtype:       :class:`ost.mol.EntityHandle`
+
+  .. method:: Add(loop_candidate)
+
+    Add a loop candidate to the list of candidates
+
+    :param loop_candidate:                 The loop candidate
+    :type loop_candidate:   :class:`LoopCandidate`
+
+  .. method:: Add(bb_list)
+
+    Add a loop candidate to the list of candidates from a list of backbone positions
+
+    :param bb_list:                 The backbone list
+    :type bb_list:                  :class:`BackboneList`
+ 
+  .. method:: Remove(index)
+
+    Remove a loop candidate from the list of candidates.
+
+    :param index:         The index of the candidate that will be removed
+    :type index:          :class:`int`
+
+  .. method:: AttachScorer(scorer)
+
+    Attaches a scorer to the :class:`LoopCandidates`. The scorer contains the information about the environment of the loop candidates and is mandatory to calculate the different scores for the loop candidates.
+
+    :param scorer:            The scorer
+    :type scorer:             :class:`BackboneLoopScorer`
+
+
diff --git a/doc/html/_sources/loop/loop_closing.txt b/doc/html/_sources/loop/loop_closing.txt
new file mode 100644
index 0000000000000000000000000000000000000000..96f09ba05ce14c857d42c16497245fa1e62784c5
--- /dev/null
+++ b/doc/html/_sources/loop/loop_closing.txt
@@ -0,0 +1,330 @@
+Loop Closing
+================================================================================
+
+.. currentmodule:: promod3.loop
+
+
+Loops, represented as :class:`BackboneList` objects, often need to undergo
+conformational changes to fit into gaps defined by stem residues.
+PROMOD3 implements two algorithms performing this task.
+
+There is cyclic coordinate descent (CCD):
+Adrian A. Canutescu and Roland L. Dunbrack Jr. "Cyclic coordinate descent: A robotics algorithm for protein loop closure." Protein Sci. 12(5):963–972. (2003)
+
+and kinematic closure (KIC):
+Mandell DJ, Coutsias EA and Kortemme T. "Sub-angstrom accuracy in protein loop reconstruction by robotics-inspired conformational sampling." Nat Methods. 6(8):551-2. (2009)
+
+In case of small gaps or small issues in the :class:`BackboneList` you might
+also consider the :class:`BackboneRelaxer`.
+
+
+
+
+
+CCD
+--------------------------------------------------------------------------------
+The PROMOD3 implementation of the cyclic coordinate descent first superposes
+the n-stem of the input :class:`BackboneList` with the provided n-stem
+positions. In every iteration of the algorithm, one residue of the 
+:class:`BackboneList` gets randomly selected. If the residue is not the n-stem,
+the ideal phi angle, that minimizes the RMSD between the :class:`BackboneList` 
+c-stem and the target c-stem positions gets calculated and directly applied. 
+The same thing is done for the psi angle if the selected residue is not the
+c-stem. Iterations continue until a c-stem RMSD threshold is reached or number
+of iterations hit a limit.
+By performing CCD, unfavourable backbone dihedral pairs can be introduced.
+It is therefore optionally possible to use :class:`TorsionSampler` to guide the
+iterative process. 
+In this case, the algorithm calculates the probablity of observing the dihedral
+pair before and after performing the phi/psi update. If the fraction 
+after/before is smaller than a random number in range [0;1[, the proposed
+dihedral pair gets rejected and the next iteration starts. Please note, that
+this increases the probability of non-convergence.
+
+.. method:: CCD(bb_list, n_stem, c_stem, [max_steps=1000,rmsd_cutoff=0.1,random_seed=0])
+
+  :param bb_list:       Loop to be closed
+  :param n_stem:        Residue from which the desired n-stem positions are
+                        extracted
+  :param c_stem:        Residue from which the desired c-stem positions are
+                        extracted
+  :param max_steps:     Max number of iterations
+  :param rmsd_cutoff:   Iterations abort when this RMSD between the c-stem of
+                        the loop and the desired c-stem is reached
+  :param random_seed:   Seed for internal randomness
+
+  :type bb_list:        :class:`BackboneList`
+  :type n_stem:         :class:`ost.mol.ResidueHandle`
+  :type c_stem:         :class:`ost.mol.ResidueHandle`
+  :type max_steps:      :class:`int`
+  :type rmsd_cutoff:    :class:`float`
+  :type random_seed:    :class:`int`
+
+  :returns:             :class:`bool` whether the RMSD threshold has been reached
+
+
+.. method:: CCD(bb_list, n_stem_pos, c_stem_pos, [max_steps=1000,rmsd_cutoff=0.1,random_seed=0])
+
+  :param bb_list:       Loop to be closed
+  :param n_stem_pos:    3 positions describing the desired 
+                        N, CA and C positions of the n_stem
+  :param c_stem_pos:    3 positions describing the desired 
+                        N, CA and C positions of the c_stem
+  :param max_steps:     Max number of iterations
+  :param rmsd_cutoff:   Iterations abort when this RMSD between the c-stem of
+                        the loop and the desired c-stem is reached
+  :param random_seed:   Seed for internal randomness
+
+  :type bb_list:        :class:`BackboneList`
+  :type n_stem_pos:     :class:`ost.geom.Vec3List`
+  :type c_stem_pos:     :class:`ost.geom.Vec3List`
+  :type max_steps:      :class:`int`
+  :type rmsd_cutoff:    :class:`float`
+  :type random_seed:    :class:`int`
+
+  :returns:             :class:`bool` whether the RMSD threshold has been reached
+
+
+
+
+.. method:: CCD(bb_list, n_stem, c_stem, torsion_sampler [max_steps=1000,rmsd_cutoff=0.1,random_seed=0])
+
+  :param bb_list:       Loop to be closed
+  :param n_stem:        Residue from which the desired n-stem positions are
+                        extracted
+  :param c_stem:        Residue from which the desired c-stem positions are
+                        extracted
+  :param torsion_sampler: For extracting probabilities to decide whether a new
+                        dihedral pair should be accepted or not. This sampler
+                        gets applied to all residues of the loop.
+  :param max_steps:     Max number of iterations
+  :param rmsd_cutoff:   Iterations abort when this RMSD between the c-stem of
+                        the loop and the desired c-stem is reached
+  :param random_seed:   Seed for internal randomness
+
+  :type bb_list:        :class:`BackboneList`
+  :type n_stem:         :class:`ost.mol.ResidueHandle`
+  :type c_stem:         :class:`ost.mol.ResidueHandle`
+  :type torsion_sampler: :class:`TorsionSampler`
+  :type max_steps:      :class:`int`
+  :type rmsd_cutoff:    :class:`float`
+  :type random_seed:    :class:`int`
+
+  :returns:             :class:`bool` whether the RMSD threshold has been reached
+
+  :raises:              :class:`RuntimeError` when assigining of histogram 
+                        indices for torsion sampler fails. This is the case
+                        when the residue before the given n-stem or the 
+                        residue after the given c-stem is not present.
+
+
+.. method:: CCD(bb_list, n_stem, c_stem, torsion_sampler[max_steps=1000,rmsd_cutoff=0.1,random_seed=0])
+
+  :param bb_list:       Loop to be closed
+  :param n_stem:        Residue from which the desired n-stem positions are
+                        extracted
+  :param c_stem:        Residue from which the desired c-stem positions are
+                        extracted
+  :param torsion_sampler: List of :class:`TorsionSampler` For extracting 
+                        probabilities to decide whether a new dihedral pair 
+                        should be accepted or not. There must be one sampler 
+                        for every residue.
+  :param max_steps:     Max number of iterations
+  :param rmsd_cutoff:   Iterations abort when this RMSD between the c-stem of
+                        the loop and the desired c-stem is reached
+  :param random_seed:   Seed for internal randomness
+
+  :type bb_list:        :class:`BackboneList`
+  :type n_stem:         :class:`ost.mol.ResidueHandle`
+  :type c_stem:         :class:`ost.mol.ResidueHandle`
+  :type torsion_sampler: :class:`list`
+  :type max_steps:      :class:`int`
+  :type rmsd_cutoff:    :class:`float`
+  :type random_seed:    :class:`int`
+
+  :returns:             :class:`bool` whether the RMSD threshold has been 
+                        reached
+
+  :raises:              :class:`RuntimeError` when assigining of histogram 
+                        indices for torsion sampler fails. This is the case
+                        when the residue before the given n-stem or the 
+                        residue after the given c-stem is not present.
+
+
+.. method:: CCD(bb_list, n_stem_pos, c_stem_pos, torsion_sampler, dihedral_indices[max_steps=1000,rmsd_cutoff=0.1,random_seed=0])
+
+  :param bb_list:       Loop to be closed
+  :param n_stem_pos:    3 positions describing the desired 
+                        N, CA and C positions of the n_stem
+  :param c_stem_pos:    3 positions describing the desired 
+                        N, CA and C positions of the c_stem
+  :param torsion_sampler: List of :class:`TorsionSampler` For extracting 
+                        probabilities to decide whether a new dihedral pair 
+                        should be accepted or not. There must be one sampler 
+                        for every residue.
+  :param dihedral_indices: If no stem residues are given, there is no
+                        possibility to figure out the torsion sampler indices
+                        for the stem residues. All indices must therefore be
+                        given.
+  :param max_steps:     Max number of iterations
+  :param rmsd_cutoff:   Iterations abort when this RMSD between the c-stem of
+                        the loop and the desired c-stem is reached
+  :param random_seed:   Seed for internal randomness
+
+  :type bb_list:        :class:`BackboneList`
+  :type n_stem_pos:     :class:`ost.geom.Vec3List`
+  :type c_stem_pos:     :class:`ost.geom.Vec3List`
+  :type torsion_sampler: :class:`TorsionSampler`
+  :param dihedral_indices: :class:`list`
+  :type max_steps:      :class:`int`
+  :type rmsd_cutoff:    :class:`float`
+  :type random_seed:    :class:`int`
+
+  :returns:             :class:`bool` whether the RMSD threshold has been 
+                        reached
+
+
+.. method:: CCD(bb_list, n_stem_pos, c_stem_pos, torsion_sampler, dihedral_indices[max_steps=1000,rmsd_cutoff=0.1,random_seed=0])
+
+  :param bb_list:       Loop to be closed
+  :param n_stem_pos:    3 positions describing the desired 
+                        N, CA and C positions of the n_stem
+  :param c_stem_pos:    3 positions describing the desired 
+                        N, CA and C positions of the c_stem
+  :param torsion_sampler: For extracting probabilities to decide whether a new
+                        dihedral pair should be accepted or not. This sampler
+                        gets applied to all residues of the loop.
+  :param dihedral_indices: If no stem residues are given, there is no
+                        possibility to figure out the torsion sampler indices
+                        for the stem residues. All indices must therefore be
+                        given.
+  :param max_steps:     Max number of iterations
+  :param rmsd_cutoff:   Iterations abort when this RMSD between the c-stem of
+                        the loop and the desired c-stem is reached
+  :param random_seed:   Seed for internal randomness
+
+  :type bb_list:        :class:`BackboneList`
+  :type n_stem_pos:     :class:`ost.geom.Vec3List`
+  :type c_stem_pos:     :class:`ost.geom.Vec3List`
+  :type torsion_sampler: :class:`list`
+  :param dihedral_indices: :class:`list`
+  :type max_steps:      :class:`int`
+  :type rmsd_cutoff:    :class:`float`
+  :type random_seed:    :class:`int`
+
+  :returns:             :class:`bool` whether the RMSD threshold has been 
+                        reached
+
+
+
+KIC
+--------------------------------------------------------------------------------
+The kinematic closure leads to a fragmentation of the loop based on given
+pivot residues. It then calculates possible relative orientations
+of these fragments by considering constraints of bond length and bond angles
+at these pivot residues. Due to the internal mathematical formalism, up to
+16 solutions can be found for a given loop closing problem.
+
+
+.. method:: KIC(bb_list, n_stem, c_stem, pivot_one, pivot_two, pivot_three)
+
+  :param bb_list:       Loop to be closed       
+  :param n_stem:        Residue from which the desired n-stem positions are
+                        extracted
+  :param c_stem:        Residue from which the desired c-stem positions are
+                        extracted
+  :param pivot_one:     Index of first pivot residue
+  :param pivot_two:     Index of second pivot residue
+  :param pivot_three:   Index of third pivot residue
+
+  :type bb_list:        :class:`BackboneList`
+  :type n_stem:         :class:`ost.mol.ResidueHandle`
+  :type c_stem:         :class:`ost.mol.ResidueHandle`
+  :type pivot_one:      :class:`int`
+  :type pivot_two:      :class:`int`
+  :type pivot_three:    :class:`int`
+
+
+  :returns:             List of :class:`BackboneList` objects representing
+                        the closed loops. There is a maximum of 16 entries.
+
+  :raises:              :class:`RuntimeError` in case of invalid pivot indices.
+
+
+.. method:: KIC(bb_list, n_stem_pos, c_stem_pos, pivot_one, pivot_two, pivot_three)
+
+  :param bb_list:       Loop to be closed      
+
+
+  :param n_stem_pos:    3 positions describing the desired 
+                        N, CA and C positions of the n_stem
+  :param c_stem_pos:    3 positions describing the desired 
+                        N, CA and C positions of the c_stem
+  :param pivot_one:     Index of first pivot residue
+  :param pivot_two:     Index of second pivot residue
+  :param pivot_three:   Index of third pivot residue
+
+  :type bb_list:        :class:`BackboneList`
+  :type n_stem_pos:     :class:`ost.geom.Vec3List`
+  :type c_stem_pos:     :class:`ost.geom.Vec3List`
+  :type pivot_one:      :class:`int`
+  :type pivot_two:      :class:`int`
+  :type pivot_three:    :class:`int`
+
+
+  :returns:             List of :class:`BackboneList` objects representing
+                        the closed loops. There is a maximum of 16 entries.
+
+  :raises:              :class:`RuntimeError` in case of invalid pivot indices.
+
+
+
+
+Relaxing Backbones
+--------------------------------------------------------------------------------
+
+In many cases one wants to quickly relax a :class:`BackboneList`. This
+can be useful to close small gaps in the backbone or resolve the most
+severe clashes. The :class:`BackboneRelaxer` internally sets up a topology
+for the input :class:`BackboneList` based on the CHARMM27 forcefield.
+Once setup, every :class:`BackboneList` of same length and sequence
+can be relaxed by the relaxer.
+
+
+.. class:: BackboneRelaxer(bb_list, [fix_nterm=True, fix_cterm=True])
+
+  Sets up a molecular mechanics topology for given **bb_list**. Every
+  :class:`BackboneList` of same length and sequence can then be
+  relaxed.
+
+  :param bb_list:       Basis for topology creation
+  :param fix_nterm:     Whether n-terminal backbone positions should kept
+                        rigid during relaxation.
+  :param fix_cterm:     Whether c-termainl backbone positions should kept
+                        rigid during relaxation.
+
+  :type bb_list:        :class:`BackboneList`
+  :type fix_nterm:      :class:`bool`
+  :type fix_cterm:      :class:`bool`
+
+  :raises:              :class:`RuntimeError` if size of **bb_list** is below 2
+
+
+  .. method:: Run(bb_list, [steps = 100, stop_criterion = 0.01])
+
+    Performs steepest descent on given BackboneList.
+
+    :param bb_list:     To be relaxed
+    :param steps:       number of steepest descent steps
+    :param stop_criterion:  If maximum force acting on a particle
+                            falls below that threshold, the
+                            relaxation aborts.
+
+    :type bb_list:      :class:`BackboneList`
+    :type steps:        :class:`steps`
+    :type stop_criterion: :class:`float`
+
+    :returns:           Forcefield energy
+
+    :raises:            :class:`RuntimeError` if **bb_list** has not the same
+                        size or sequence as the initial one.
diff --git a/doc/html/_sources/loop/monte_carlo.txt b/doc/html/_sources/loop/monte_carlo.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3fbcc4070ea6b8fcf4d48ce099686c60b469e5af
--- /dev/null
+++ b/doc/html/_sources/loop/monte_carlo.txt
@@ -0,0 +1,462 @@
+Monte Carlo Sampling
+================================================================================
+
+.. currentmodule:: promod3.loop
+
+The monte carlo capabilities of PROMOD3 are mainly targeted at generating de 
+novo structure candidates for loops or N-/C-Termini. Every iteration of the
+sampling process consists basically of four steps.
+
+* Propose new conformation
+* Adapt new conformation to the environment
+* Score the new conformation
+* Accept/Reject new conformation based on the score and a temperature controlled metropolis criterion
+
+These steps are performed by sampler, closer, scorer and cooler objects, that 
+can be arbitrarily combined to generate custom monte carlo sampling pipelines.
+This combination either happens manually or by using a convenient function
+provided by PROMOD3.
+
+
+
+.. method:: MonteCarloSampler(sampler,closer,scorer,cooler,steps,bb_list,initialize,seed)
+
+  A convenient function to perform monte carlo sampling using a simulated
+  annealing scheme. In every iteration, a new loop conformation gets proposed by
+  the provided **sampler** and closed by the **closer**. Upon scoring, this new
+  conformation gets accepted/rejected using a metropolis criterion based on the
+  temperature given by the **cooler** 
+  => acceptance probability: exp(-delta_score/T)
+
+  :param cooler:        Cooler object to control the temperature of the 
+                        monte carlo trajectory
+  :param scorer:        Scorer object to score new loop conformations
+  :param sampler:       Sampler object capable of initializing and altering
+                        conformations.
+  :param closer:        Closer object to adapt a new conformation to
+                        the environment
+  :param steps:         Number of monte carlo iterations to be performed
+  :param bb_list:       The lowest scoring conformation of the trajectory
+                        gets stored in here
+  :param initialize:    Whether a new bb_list should be generated as starting
+                        point, based on the samplers Initialize function.
+                        The input **bb_list** gets used otherwise.
+  :param seed:          Seed for internal random number generator.
+
+  :type cooler:         :class:`CoolerObject`
+  :type scorer:         :class:`ScorerObject`
+  :type sampler:        :class:`SamplerObject`
+  :type closer:         :class:`CloserObject`
+  :type steps:          :class:`int`
+  :type bb_list:        :class:`BackboneList`
+  :type initialize:     :class:`bool`
+  :type seed:           :class:`int`
+
+
+
+
+
+.. code-block:: python
+
+
+  #Example script, that applies monte-carlo sampling to the n-terminal
+  #part of crambin
+
+  from promod3 import loop
+  import numpy as np
+
+  prot = io.LoadPDB("1crn",remote=True)
+
+  chain_index = 0
+  start_resnum = 1
+  n_terminal_length = 8  
+
+  seqres = ''.join([r.one_letter_code for r in prot.residues])
+  terminal_sequence = seqres[:n_terminal_length]
+
+
+  #setup mc_sampler
+  torsion_sampler = loop.LoadTorsionSampler()
+  mc_sampler = loop.SoftSampler(terminal_sequence,torsion_sampler,20.0/180*np.pi)
+
+  #setup mc_closer
+  mc_closer = loop.NTerminalCloser(prot.residues[n_terminal_length-1])
+
+  #set up mc_scorer
+  scorer = loop.LoadBackboneLoopScorer()
+  scorer.Initialize(seqres)
+  scorer.SetEnvironment(prot)
+
+  weights = dict()
+  weights["cbeta"]=10.0
+  weights["cb_packing"]=1.0
+  weights["clash"]=0.1
+  mc_scorer = loop.LinearScorer(scorer,start_resnum,chain_index,weights)
+
+  #setup mc_cooler
+  mc_cooler = loop.ExponentialCooler(100,100,0.9)
+
+  #create BackboneList from n-terminus
+  bb_list = loop.BackboneList(terminal_sequence,prot.residues[:n_terminal_length])
+
+  #shake it!
+  loop.MonteCarloLoopSampler(mc_sampler, mc_closer, mc_scorer, mc_cooler, 10000,bb_list,False,0)
+
+  #save down the result
+  io.SavePDB(bb_list.ToEntity(),"sampled_frag.pdb")
+
+
+
+
+Sampler Objects
+--------------------------------------------------------------------------------
+
+The sampler objects can be used to generate initial conformations and
+propose new conformations for a sequence of interest. They build the basis
+for any monte carlo sampling pipeline.
+
+.. class:: PhiPsiSampler(sequence,torsion_sampler,[n_stem_phi=-1.0472,c_stem_psi=-0.78540,prev_aa='A',next_aa='A',seed=0])
+
+  The PhiPsiSampler randomly draws and sets phi/psi dihedral angles from
+  a distribution provided by the **torsion_sampler**.
+
+  :param sequence:      Sequence that should be sampled
+  :param torsion_sampler: Sampler, from which the phi/psi pairs are drawn. It
+                          is also possible to pass a list of samplers with same
+                          size as the sequence to assign a specific sampler per
+                          residue.
+  :param n_stem_phi:    Phi angle of the n_stem. This angle is not defined in
+                        the sampling region. If the first residue gets selected
+                        for changing the dihedral angles, it draws a psi angle
+                        given **n_stem_phi**.   
+  :param c_stem_psi:    Psi angle of c_stem. This angle is not defined in
+                        the sampling region. If the last residue gets selected
+                        for changing the dihedral angles, it draws a phi angle
+                        given **c_stem_psi**.
+  :param prev_aa:       This parameter is necessary to extract the according
+                        histogram index for the first residue from the 
+                        **torsion_sampler**. (Remember: The torsion sampler
+                        always considers triplets)   
+  :param next_aa:       This parameter is necessary to extract the according
+                        histogram index for the last residue from the 
+                        **torsion_sampler**. (Remember: The torsion sampler
+                        always considers triplets)   
+  :param seed:          Seed for the internal random number generators.
+
+  :type sequence:       :class:`str`
+  :type torsion_sampler: :class:`TorsionSampler`
+  :type n_stem_phi:     :class:`float`
+  :type c_stem_psi:     :class:`float`
+  :type prev_aa:        :class:`str`
+  :type next_aa:        :class:`str`
+  :type seed:           :class:`int`
+
+
+
+  .. method:: Initialize(bb_list)
+
+    Sets up a new :class:`BackboneList` by randomly drawing phi/psi dihedral
+    angles.
+
+    :param bb_list:     The newly created conformation gets stored in here
+    :type bb_list:      :class:`BackboneList`
+
+  .. method:: ProposeStep(actual_positions, proposed_position)
+
+    Randomly selects one of the residues and resets its phi/psi values
+    according to a random draw from the internal torsion samplers.
+    In case of the first residue, only a psi given phi is drawn. Same
+    principle also applies for the last residue.
+
+    :param actual_positions: Conformation to be changed
+    :param proposed_positions: Changed conformation gets stored in here  
+
+    :type actual_positions: :class:`BackboneList`
+    :type proposed_positions: :class:`BackboneList`
+
+    :raises:            :class:`RuntimeError` If size of **actual_positions**
+                        is not consistent with the internal sequence. Note,
+                        that the sequence itself doesn't get checked for
+                        efficiency reasons. 
+
+
+
+.. class:: SoftSampler(sequence,torsion_sampler,max_dev,[n_stem_phi=-1.0472,c_stem_psi=-0.78540,prev_aa='A',next_aa='A',seed=0])
+
+  Instead of drawing completely new values for a residues phi/psi angles,
+  only one angle gets altered by a maximum value of **max_dev** in the 
+  SoftSampler.
+
+  :param sequence:      Sequence that should be sampled
+  :param torsion_sampler: Sampler, from which the phi/psi probablities are 
+                          extracted. It is also possible to pass a list of 
+                          samplers with same size as the sequence to assign 
+                          a specific sampler per residue.
+  :param max_dev:       Maximal deviation of dihedral angle from its original 
+                        value per sampling step.
+  :param n_stem_phi:    Phi angle of the n_stem. This angle is not defined in
+                        the sampling region. If the psi angle of the first
+                        residue gets selected to be changed, **n_stem_phi** is
+                        used to calculate the phi/psi probability to estimate
+                        the acceptance probability.  
+  :param c_stem_psi:    Psi angle of c_stem. This angle is not defined in
+                        the sampling region. If the phi angle of the last 
+                        residue gets selected to be changed, **c_stem_psi** is
+                        used to calculate the phi/psi probability to estimate
+                        the acceptance probability.
+  :param prev_aa:       This parameter is necessary to extract the according
+                        histogram index for the first residue from the 
+                        **torsion_sampler**. (Remember: The torsion sampler
+                        always considers triplets)   
+  :param next_aa:       This parameter is necessary to extract the according
+                        histogram index for the last residue from the 
+                        **torsion_sampler**. (Remember: The torsion sampler
+                        always considers triplets)   
+  :param seed:          Seed for the internal random number generators.
+
+  :type sequence:       :class:`str`
+  :type torsion_sampler: :class:`TorsionSampler`
+  :type n_stem_phi:     :class:`float`
+  :type c_stem_psi:     :class:`float`
+  :type prev_aa:        :class:`str`
+  :type next_aa:        :class:`str`
+  :type seed:           :class:`int`
+
+
+
+  .. method:: Initialize(bb_list)
+
+    Sets up a new :class:`BackboneList` by randomly drawing phi/psi dihedral
+    angles.
+
+    :param bb_list:     The newly created conformation gets stored in here
+    :type bb_list:      :class:`BackboneList`
+
+  .. method:: ProposeStep(actual_positions, proposed_position)
+
+    In an iterative process, the SoftSampler randomly selects one of the 
+    possible dihedral angles in a conformation and changes it by a random value 
+    in [-**max_dev**,**max_dev**]. The acceptance probability of this change is
+    the fraction of the phi/psi probability before and after changing the 
+    single angle in the particular residue. There is a maximum of 100 
+    iterations. It is therefore theoretically possible, that nothing happens 
+    when a new step should be proposed
+
+    :param actual_positions: Conformation to be changed
+    :param proposed_positions: Changed conformation gets stored in here  
+
+    :type actual_positions: :class:`BackboneList`
+    :type proposed_positions: :class:`BackboneList`
+
+    :raises:            :class:`RuntimeError` If size of **actual_positions**
+                        is not consistent with the internal sequence. Note,
+                        that the sequence itself doesn't get checked for
+                        efficiency reasons. 
+
+
+
+Closer Objects
+--------------------------------------------------------------------------------
+
+After the proposal of new conformations by the sampler objects, the
+conformations typically have to undergo some structural changes, so they
+fit to a given environment. This can either be structural changes, that
+the stems of the sampled conformation overlap with given stem residues or
+or simple stem superposition in case of terminal sampling.
+
+.. class:: CCDCloser(n_stem, c_stem, sequence, torsion_sampler, seed)
+
+  The CCDCloser applies the CCD algorithm to the sampled conformation 
+  to enforce the match between the conformations stem residue and
+  the stems given by the closer. The **torsion_sampler** is used to
+  avoid moving into unfavourable phi/psi ranges.
+
+  :param n_stem:        Defining stem positions the closed conformation
+                        should adapt.
+
+  :param c_stem:        Defining stem positions the closed conformation
+                        should adapt.
+
+  :param sequence:      Sequence of the conformation to be closed.
+  :param torsion_sampler: To enforce valid phi/psi ranges. Alternatively
+                          you can also pass a list of :class:`TorsionSampler`
+                          objects to assign a unique torsion sampler to
+                          every residue of the conformation to be closed.
+  :param seed:          Seed for internal random generators.
+
+  :type n_stem:         :class:`ost.mol.ResidueHandle`
+  :type c_stem:         :class:`ost.mol.ResidueHandle`
+  :type sequence:       :class:`str`
+  :type torsion_sampler: :class:`TorsionSampler`
+  :type seed:           :class:`int`
+
+  :raises:              :class:`RuntimeError` if the residues before **n_stem**
+                        and after c_stem cannot be accessed. This is necessary
+                        to extract the histogram indices for the torsion 
+                        sampler and to calculate the phi/psi angles of the
+                        stems.
+
+  .. method:: Close(actual_positions,closed_positions)
+    
+    :param actual_positions: Conformation to be closed.
+    :param closed_positions: Closed conformation gets stored in here.
+
+    :type actual_positions: :class:`BackboneList`
+    :type closed_positions: :class:`BackboneList`
+
+    :returns: Whether CCD converged
+
+
+.. class:: DirtyCCDCloser(n_stem, c_stem, seed)
+
+  The DirtyCCDCloser applies the CCD algorithm to the sampled conformation 
+  to enforce the match between the conformations stem residue and
+  the stems given by the closer. 
+
+  :param n_stem:        Defining stem positions the closed conformation
+                        should adapt.
+
+  :param c_stem:        Defining stem positions the closed conformation
+                        should adapt.
+
+  :param seed:          Seed for internal random generators.
+
+  :type n_stem:         :class:`ost.mol.ResidueHandle`
+  :type c_stem:         :class:`ost.mol.ResidueHandle`
+  :type seed:           :class:`int`
+
+  .. method:: Close(actual_positions,closed_positions)
+    
+    :param actual_positions: Conformation to be closed.
+    :param closed_positions: Closed conformation gets stored in here.
+
+    :type actual_positions: :class:`BackboneList`
+    :type closed_positions: :class:`BackboneList`
+
+    :returns: Whether CCD converged
+
+
+.. class:: KICCloser(n_stem, c_stem, seed)
+
+  The KIC closer randomly picks three pivot residues in the conformation
+  to be closed and applies the KIC algorithm. KIC gives up to 16 possible
+  solutions. The KICCloser simply picks the first one.
+
+  :param n_stem:        Defining stem positions the closed conformation should
+                        adapt.
+  :param c_stem:        Defining stem positions the closed conformation should
+                        adapt.
+  :param seed:          Seed for internal random generators.
+
+  :type n_stem:         :class:`ost.mol.ResidueHandle`
+  :type n_stem:         :class:`ost.mol.ResidueHandle`
+  :type seed:           :class:`int`
+
+  .. method:: Close(actual_positions,closed_positions)
+    
+    :param actual_positions: Conformation to be closed.
+    :param closed_positions: Closed conformation gets stored in here.
+
+    :type actual_positions: :class:`BackboneList`
+    :type closed_positions: :class:`BackboneList`
+
+    :returns: Whether KIC found a solution
+
+
+.. class:: NTerminalCloser(c_stem)
+
+  The NTerminalCloser simply takes the conformation and closes by superposing
+  the c_stem with the desired positions.
+
+  :param c_stem:        Defining stem positions the closed conformation should
+                        adapt.
+  :type c_stem:         :class:`ost.mol.ResidueHandle`
+
+  :returns:             Whether closing was successful
+
+
+.. class:: CTerminalCloser(n_stem)
+
+  The CTerminalCloser simply takes the conformation and closes by superposing
+  the n_stem with the desired positions.
+
+  :param n_stem:        Defining stem positions the closed conformation should
+                        adapt.
+  :type n_stem:         :class:`ost.mol.ResidueHandle`
+
+  :returns:             Whether closing was successful
+
+        
+
+Scorer Objects
+--------------------------------------------------------------------------------
+
+The scorer asses a proposed conformation and are intended to return a pseudo
+energy, the lower the better.
+
+
+.. class:: LinearScorer(scorer,start_resnum,chain_index,weights)
+
+  The LinearScorer allows to combine the scores availabler from
+  :class:`BackboneLoopScorer` in a linear manner.
+
+  :param scorer:        Scorer Object with set environment for the particular loop
+                        modelling problem.
+  :param start_resnum:  The starting residue number of the loop. Note, that the
+                        residue numbers start from one.
+  :param chain_index:   The chain the loop belongs to.
+  :param weights:       Assigns every score, that should be combined a linear
+                        weight. Key of dict is a score name and can be any of:
+                        ["cbeta", "clash", "torsion", "cb_packing", "hbond", "dssp_hbond"].
+                        An additional possible key is: "intercept".
+
+  :type scorer:         :class:`BackboneLoopScorer`
+  :type start_resnum:   :class:`int`
+  :type chain_index:    :class:`int`
+  :type weights:        :class:`dict`
+
+  :raises:              :class:`RuntimeError` If there is an invalid weight name.
+
+
+  .. method:: GetScore(temperature, bb_list)
+
+    :param temperature: Current temperature in the monte carlo trajectory.
+                        This has no effect on the score of the LinearScorer
+                        and is only there to fulfill the requirements of the
+                        abstract baseclass.
+    :param bb_list:     Current loop conformation to be scored.
+
+    :type temperature:  :class:`float`
+    :type bb_list:      :class:`BackboneList`
+
+    :returns:           A linear combination of the scores
+
+
+Cooler Objects
+--------------------------------------------------------------------------------
+
+The cooler objects control the temperature of the monte carlo trajectory.
+They're intended to deliver steadily decreasing temperatures with calls
+to their GetTemperature function.
+
+.. class:: ExponentialCooler(change_frequency, start_temperature, cooling_factor)
+
+  The exponential cooler starts with a given **start_temperature** and counts the
+  calls to its GetTemperature function. According to the **change_frequency**, 
+  the returned temperature gets multiplied by the **cooling_factor**.
+
+  :param change_frequency: Frequency to change temperature
+  :param start_temperature: temperature to start with
+  :param cooling_factor:    Factor to decrease temperature
+
+  :type change_frequency: :class:`int`
+  :type start_temperature: :class:`float`
+  :type cooling_factor: :class:`float`
+
+  .. method:: GetTemperature()
+
+    :returns:           current temperature
+
+  .. method:: Reset()
+
+    Sets current temperature back to **start_temperature**
diff --git a/doc/html/_sources/loop/structure_db.txt b/doc/html/_sources/loop/structure_db.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3031a4c49fd8d91b1a711144b96d0fc5a389b7c4
--- /dev/null
+++ b/doc/html/_sources/loop/structure_db.txt
@@ -0,0 +1,617 @@
+Structural Database
+================================================================================
+
+.. currentmodule:: promod3.loop
+
+The structural database serves as a container for structural backbone
+and profile data. It can be filled with chains of pdb structures with their
+corresponding profiles as they are produced by the HHSuite tools. 
+
+
+Defining Chains and Fragments
+--------------------------------------------------------------------------------
+
+.. class:: CoordInfo()
+
+  The CoordInfo gets automatically generated when new chains are added to
+  the structural database. It contains internal information of how
+  the according chain is stored in the database.
+
+  .. attribute:: pdb_id
+
+    A character residue string containing the 4 character pdb_id and the
+    1 character chain_id. 
+
+  .. attribute:: offset
+
+    All residues of the added structures are stored in a linear memory layout.
+    The offset parameter tells us where it exactly starts...
+
+  .. attribute:: size
+
+    The length of the stretch of residues.
+
+
+.. class:: FragmentInfo(chain_index, offset, length)
+
+  The FragmentInfo defines a fragment in the structural database.
+
+  :param chain_index:   The index of the chain in the structure db this particle
+                        belongs to.
+
+  :param offset:        Index of residue in **chain** the fragment starts.
+
+  :param length:        Length of the fragment, which is limited to 255
+
+  .. attribute:: chain_index
+  .. attribute:: offset
+  .. attribute:: length
+
+  
+
+The Database
+--------------------------------------------------------------------------------
+ 
+.. class:: StructureDB()
+
+  .. method:: Load(filename,[load_frequencies=False])
+
+    :param filename:      path to the file from which to load the database.
+    :param load_frequencies: If True, the full database including profile
+                             information for every position gets loaded.
+                             A database without profiles loads faster and 
+                             requires less memory. But it's not possible
+                             to add new coordinates or call one of the
+                             profile dependent functions.
+
+    :type filename:       :class:`str`
+    :type load_frequencies: :class:`bool`
+
+    :returns:             The loaded StructureDB
+
+    :raises:            :class:`RuntimeError` If **filename** does not exist.
+
+  .. method:: Save(filename)
+
+    :param filename:      path to the file where the database will be saved
+
+    :type filename:       :class:`str`
+
+    :raises:            :class:`RuntimeError` If db has been loaded with 
+                        load_frequencies=False. This enforces only complete
+                        databases to be saved down.
+
+
+  .. method:: AddCoordinates(pdb_id, chain_name, chain, hmm)
+
+    This method takes a structural chain and searches the longest stretch of
+    connected residues containing all necessary backbone atoms. This stretch
+    gets then added to the database. Due to technical reasons, The maximal
+    extent along one of the base axis cannot exceed 650 A.
+
+    :param pdb_id:      4-letter code of the structure the chain belongs to
+    :param chain_name:  Name of the chain consisting of one letter
+    :param chain:       The actual chain 
+    :param hmm:         An HMM containing profile information.
+
+    :type pdb_id:       :class:`String`
+    :type chain_name:   :class:'String`
+    :type chain:        :class:`ost.mol.ChainView`
+    :type hmm:          :class:`ost.seq.HMM`
+
+    :returns:           DB Index of added chain.
+
+    :raises:            :class:`RuntimeError` If size of chain is too large, when
+                        db has been loaded with load_frequencies=False or when
+                        the ATOMSEQ form the **chain** can't be aligned with the
+                        SEQRES from the **hmm**.
+
+  .. method:: GetCoordIndex(pdb_id, chain_name)
+
+    :param pdb_id:      4-letter code of the structure the chain belongs to
+    :param chain_name:  Name of the chain consisting of one letter
+
+    :type pdb_id:       :class:`str`      
+    :type chain_name:   :class:`str` 
+
+    :returns:           The StructureDB index of the chain of interest, -1 if
+                        if can't be found.
+
+  .. method:: GetCoordInfo(idx)
+
+    :param idx:         The StructureDB index 
+
+    :returns:           The :class:`CoordInfo` object describing the chain with
+                        index **idx**. 
+
+
+  .. method:: FillBackbone(bb_list, fragment)
+
+    
+    :param bb_list:     Structural data will be filled in here.
+    :param fragment:    Description of the fragment from which a 
+                        :class:`BackboneList` should be built.
+
+    :type bb_list:      :class:`BackboneList`
+    :type fragment:     :class:`FragmentInfo`
+
+    :raises:            :class:`RuntimeError` If fragment is invalid. This is
+                        the case when the fragment does not fully fit into one
+                        of chains in the database.
+
+
+  .. method:: FillBackbone(bb_list, n_stem, c_stem, fragment)
+
+    
+    :param bb_list:     Structural data will be filled in here.
+    :param n_stem:      Positions on which the bb_list n-terminus should be 
+                        superposed onto.
+    :param c_stem:      Positions on which th ebb_list c_terminus should be
+                        superposed onto.
+    :param fragment:    Description of the fragment from which a 
+                        :class:`BackboneList` should be built.
+
+    :type bb_list:      :class:`BackboneList`
+    :type n_stem:       :class:`ost.mol.ResidueHandle`
+    :type c_stem:       :class:`ost.mol.ResidueHandle`
+    :type fragment:     :class:`FragmentInfo`
+
+    :raises:            :class:`RuntimeError` If fragment is invalid. This is
+                        the case when the fragment does not fully fit into one
+                        of chains in the database.
+
+
+  .. method:: GetNumCoords()
+
+    :returns:           Number of chains, that have been added to the database.
+
+
+  .. method:: PrindStatistics()
+
+    Prints out some information about the db.
+
+
+  .. method:: GetSequence(fragment)
+
+    :param fragment:    Fragment definition from which to extract the sequence.
+    :type fragment:     :class:`FragmentInfo`
+
+    :returns:           The sequence of **fragment**
+
+    :raises:            :class:`RuntimeError` If fragment is invalid. This is
+                        the case when the fragment does not fully fit into one
+                        of chains in the database.
+
+
+  .. method:: GetDSSPStates(fragment)
+
+    :param fragment:    Fragment definition from which to extract the states.
+    :type fragment:     :class:`FragmentInfo`
+
+    :returns:           The dssp states of **fragment**
+
+    :raises:            :class:`RuntimeError` If fragment is invalid. This is
+                        the case when the fragment does not fully fit into one
+                        of chains in the database.
+
+
+  .. method:: GetDihedralAngles(fragment)
+
+    :param fragment:    Fragment definition from which to extract the dihedrals.
+    :type fragment:     :class:`FragmentInfo`
+
+    :returns:           A list of pairs containing the dihedral angles of every
+                        residue of the **fragment**.
+
+    :raises:            :class:`RuntimeError` If fragment is invalid. This is
+                        the case when the fragment does not fully fit into one
+                        of chains in the database.
+
+  .. method:: GetSeqSim(fragment, seq, subst_matrix)
+
+    :param fragment:    Fragment from the database.
+    :param seq:         The sequence to which the sequence similarity should be
+                        calculated.
+    :param subst_matrix: Source for substitution scores.
+
+    :type fragment:     :class:`FragmentInfo`
+    :type seq:          :class:`str`
+    :type subst_matrix: :class:`ost.seq.alg.SubstWeightMatrix`
+
+    :returns:           Sequence similarity between **fragment** and **seq**
+                        normalized to a range [0,1]
+
+    :raises:            :class:`RuntimeError` If fragment is invalid. This is
+                        the case when the fragment does not fully fit into one
+                        of chains in the database.
+
+  .. method:: GetSeqID(fragment, seq)
+
+    :param fragment:    Fragment from the database.
+    :param seq:         The sequence to which the sequence identity should be
+                        calculated.
+
+    :type fragment:     :class:`FragmentInfo`
+    :type seq:          :class:`str`
+
+    :returns:           Sequence identity between **fragment** and **seq**
+
+    :raises:            :class:`RuntimeError` If fragment is invalid. This is
+                        the case when the fragment does not fully fit into one
+                        of chains in the database.
+
+  .. method:: GetSSAgreement(fragment,predicted_ss, confidence)
+
+    :param fragment:    Fragment from the database.
+    :param predicted_ss: Predicted secondary structure from psipred with
+                         every element being in ['H','E','C'].
+    :param confidence:  Confidence values of psipred predictions,
+                        with every element being in range [0,9].
+
+    :type fragment:     :class:`FragmentInfo`
+    :type predicted_ss: :class:`list`
+    :type confidence:   :class:`list`
+
+    :returns:           Average sequence similarity with parameters also used 
+                        in QMEAN.
+
+    :raises:            :class:`RuntimeError` If fragment is invalid. This is
+                        the case when the fragment does not fully fit into one
+                        of chains in the database. It also throws an error if
+                        one of the psipred values is invalid.
+
+
+  .. method:: GetTorsionProbability(fragment, seq, torsion_sampler)
+
+    :param fragment:    Fragment from the database
+    :param seq:         Sequence the fragment is assumed to have.
+    :param torsion_sampler: The source of the probability
+
+    :type fragment:     :class:`FragmentInfo`
+    :type seq:          :class:`str`
+    :type torsion_sampler: :class:`TorsionSampler`
+
+    :returns:           The average probablity of observing the dihedral angles
+                        from **fragment** assuming the sequence **seq**.
+                        Note, that the torsion sampler considers amino acid
+                        triplets, the torsion angles of the flanking residues
+                        are therefore neglected.
+
+
+    :raises:            :class:`RuntimeError` If fragment is invalid. This is
+                        the case when the fragment does not fully fit into one
+                        of chains in the database.
+
+
+  .. method:: GetProfileScore(fragment, hmm)
+
+    :param fragment:    Fragment from the database
+    :param hmm:         Hmm to be aligned with fragment.
+
+    :type fragment:     :class:`FragmentInfo`
+    :type hmm:          :class:`ost.seq.HMM`
+
+    :returns:           The average column alignment score between the columns
+                        in the **hmm** and the corresponding positions in
+                        the database.
+
+
+    :raises:            :class:`RuntimeError` If fragment is invalid. This is
+                        the case when the fragment does not fully fit into one
+                        of chains in the database. The function also raises
+                        and error if the database has been loaded with 
+                        load_frequencies=False.
+
+
+
+Finding Fragments based on Geometric Features
+--------------------------------------------------------------------------------
+
+The fragment database allows to organize, search and access the information
+stored in a structural database (:class:`StructureDB`). 
+In its current form it groups fragments in bins according to their length
+and the geometry of their N-stem and C-stem (described by 4 angles and the
+distance between the N-stem C atom and the C-stem N atom). It can therefore
+be searched for fragments matching a certain geometry of N and C stems. 
+The bins are accessed through a hash table, making searching the database
+ultra fast.
+
+ 
+.. class:: FragDB()
+
+  .. method:: Load(filename)
+
+    :param filename:      path to the file from which to load the database.
+
+    :type filename:       :class:`str`
+
+    :returns:             The loaded database
+
+    :rtype:               :class:`FragDB`
+
+    :raises:            :class:`RuntimeError` If **filename** does not exist.
+
+  .. method:: Save(filename)
+
+    :param filename:      path to the file where the database will be saved
+
+    :type filename:       :class:`str`
+
+
+  .. method:: GetAngularBinSize()
+
+    The size of the bins for the 4 angles describing the stem geometry and used to organize the fragments in the database.
+
+    :return:    The bin size in degrees
+    :rtype:     :class:`int`
+
+  .. method:: GetDistBinSize()
+
+    The size of the bins for the distance describing the stem geometry and used to organize the fragments in the database.
+
+    :return:    The bin size
+    :rtype:     :class:`float`
+
+  .. method:: AddFragments(fragment_length, rmsd_cutoff, structure_db)
+
+    Iterates over all fragments of length **fragment_length** in the given structural database and adds them to the fragment database. Fragments will be skipped if there is already a fragment in the database that has an RMSD to the one being added smaller than **rmsd_cutoff**.
+    As the fragments are added they are organized in bins described by their length and the geometry of their N and C stem.
+
+    :param fragment_length:    The length of the fragments that should be added to the databse
+    :param rmsd_cutoff:        The minimal RMSD between two fragments in the fragment database
+    :param structure_db:       Database delivering the structural info
+    :type fragment_length:     :class:`int`
+    :type rmsd_cutoff:         :class:`float`
+    :type structure_db:        :class:`StructureDB`
+
+
+  .. method:: PrintStatistics()
+
+    Prints statistics about the fragment databse, notably:
+    1. the number of different stem groups (number of bins used to group the fragments according to the geometry of their stem residues)
+    2. The total number of fragments in the databse
+    3. The minimal and maximal number of fragments found in a stem group.
+
+
+  .. method:: GetNumStemPairs()
+
+    Returns the number of stem groups (number of bins used to group the fragments according to the geometry of their stem residues).
+    
+    :returns:   The number of groups
+    :rtype:     :class:`int`
+    :param loop_length: The length of the fragments
+
+  .. method:: GetNumStemPairs(loop_length)
+    
+    Returns the number of stem groups (number of bins used to group the fragments according to the geometry of their stem residues) for fragments of a given length.
+    
+    :param loop_length:   The length of the fragments
+    :type loop_length:    :class:`int`
+
+    :returns:   The number of groups
+    :rtype:     :class:`int`
+        
+
+  .. method:: GetNumFragments()
+
+    Returns the number of fragments in the database.
+
+    :returns: Number of fragments
+    :rtype:   :class:`int`
+
+  .. method:: GetNumFragments(loop_length)
+
+    Returns the number of fragments of length **loop_length** in the database.
+
+    :param loop_length:   The length of the fragments
+    :type loop_length:    :class:`int`
+
+    :returns: Number of fragments
+    :rtype:   :class:`int`
+
+  .. method:: SearchDB(n_stem, c_stem,frag_size,[extended_search=False])
+
+    Search the database for fragments matching the geometry of the **n_stem** and **c_stem** and of the same length as the **sequence**.
+
+    :param n_stem:    The N-stem
+    :param c_stem:    The C-stem
+    :param frag_size: The length of the fragment
+    :param extended_search: Whether an extended search should be performed, which will include fragments from bins surrounding the bin describing the  **n_stem** and **c_stem** geometry.
+
+    :type n_stem:              :class:`ost.mol.ResidueHandle`
+    :type c_stem:              :class:`ost.mol.ResidueHandle`
+    :type frag_size:           :class:`float`
+    :type extended_search:     :class:`bool`
+
+    :returns: A list of :class:`FragmentInfo` objects. These objects are related to the
+              structural database with which you called the AddFragments function.
+
+
+
+
+
+Finding Fragments based on Sequence Features
+--------------------------------------------------------------------------------
+
+In some cases you might want to use the :class:`StructureDB` to search 
+for fragments that possibly represent the structural conformation of interest.
+The :class:`Fragger` allows to perform this task for several different 
+features. It searches a :class:`StructureDB` for n fragments, that maximize
+a certain score and gathers a set of fragments with a guaranteed structural
+diversity based on an rmsd_threshold. The final score gets built using an 
+arbitrary linear combination of the available scores as controlled by
+the :class:`FraggerScoreParameters`. There are three scores available:
+
+* **SequenceSimilarityScore**: Takes a substitution matrix and calculates for
+  every possible fragment the normalized sequence similarity in a range [0,1].
+
+* **SequenceIdentityScore**: Calculates for every possible fragment the 
+  sequence identity.
+
+* **SSAgreementScore**: Takes the predicted secondary structure by PSIPRED
+  with its confidence and calculates an agreement score based on the
+  actually observed secondary structure in the :class:`StructureDB`.
+
+* **TorsionProbabilityScore**: Calculates for every possible fragment the 
+  average probablity of the  backbone dihedral angles in the 
+  :class:`StructureDB` given the input sequence.
+
+* **ProfileScore**: Calculates for every possible fragment the profile-profile
+  alignment score given an input :class:`ost.seq.HMM` and the amino acid 
+  frequencies in the :class:`StructureDB`.
+
+
+
+
+.. code-block:: python
+
+  from promod3 import loop
+
+  #load an example structure
+  prot = io.LoadPDB("1crn",remote=True)
+
+  #extract some additional information
+  seq = ''.join([r.one_letter_code for r in prot.residues])
+  frag_pos = 35
+  frag_length = 9
+  frag_seq = seq[frag_pos:frag_pos+frag_length]
+  frag_residues = prot.residues[frag_pos:frag_pos+frag_length]
+  ref_backbone = loop.BackboneList(frag_seq,frag_residues)
+  
+  #let's load the StructureDB and a substitution matrix
+  db = loop.LoadStructureDB()
+  subst_matrix = ost.seq.alg.BLOSUM62
+  
+  #to fill the fragger we need a list of parameters
+  #we only add a parametrization for the sequence similarity
+  parameters = list()
+  parameters.append(loop.FraggerScoreParameters(frag_seq,subst_matrix,1.0))
+  
+  #let's finally fill the fragger
+  fragger = loop.Fragger()
+  fragger.Fill(db,parameters,1.0,100)
+  
+  #let's see how good the fragments are...
+  below_three = 0
+  for i in range(len(fragger)):
+    ca_rmsd = fragger[i].CARMSD(ref_backbone,True)
+    print "Fragment ",i, " has CA RMSD of ",ca_rmsd
+    if ca_rmsd < 3.0:
+      below_three += 1
+  
+  print "Fraction of fragments below 3A: ", float(below_three)/len(fragger)
+
+
+.. class:: FraggerScoreParameters
+
+  Controls the parametrization and linear weights of the available
+  fragger scores.
+
+  .. method:: FraggerScoreParameters(seq, matrix, w)
+
+    Parametrization of sequence similarity score
+
+    :param seq:         Sequence of fragment
+    :param matrix:      Source of substitution scores
+    :param w:           Linear weight for sequence similarity score
+
+    :type seq:          :class:`str`
+    :type matrix:       :class:`ost.seq.alg.SubstWeightMatrix`
+    :type w:            :class:`float`
+
+
+  .. method:: FraggerScoreParameters(seq, w)
+
+    Parametrization of sequence identity score
+
+    :param seq:         Sequence of fragment
+    :param w:           Linear weight for sequence identity score
+
+    :type seq:          :class:`str`
+    :type w:            :class:`float`
+
+
+  .. method:: FraggerScoreParameters(seq, psipred_prediction, psipred_confidence, w)
+
+    Parametrization of secondary structure agreement score
+
+    :param seq:         Sequence of fragment
+    :param psipred_prediction:  Per AA psipred prediction, every element
+                                must be in ['H','E','C']
+    :param psipred_confidence:  Per AA psipred confidence values, every element
+                                must be in [0,9]
+    :param w:           Linear weight for secondary structure agreement score
+
+    :type seq:          :class:`str`
+    :type psipred_prediction: :class:`list`
+    :type psipred_confidence: :class:`list`
+    :type w:            :class:`float`
+
+
+  .. method:: FraggerScoreParameters(seq, torsion_sampler, w)
+
+    Parametrization of torsion angle probablity score
+
+    :param seq:         Sequence of fragment
+    :param torsion_sampler: Torsion sampler to get sequence specific backbone
+                            dihedral probabilities
+    :param w:           Linear weight for torsion probability score
+
+    :type seq:          :class:`str`
+    :type torsion_sampler: :class:`TorsionSampler`
+    :type w:            :class:`float`
+
+
+  .. method:: FraggerScoreParameters(seq, hmm, w)
+
+    Parametrization of profile score
+
+    :param seq:         Sequence of fragment
+    :param hmm:         HMM of same size as the sequence to extract
+                        the according amino acid frequencies
+    :param w:           Linear weight for profile score
+
+    :type seq:          :class:`str`
+    :type hmm:          :class:`ost.seq.HMM`
+    :type w:            :class:`float`
+
+
+.. class:: Fragger
+
+  .. method:: Fill(db, parameters, rmsd_thresh, num_fragments)
+
+    Searches **db** for **num_fragments** fragments with maximal 
+    score as defined by the **parameters**.
+    There will be no pair of fragments with RMSD below
+    **rmsd_thresh**.
+
+    :param db:          Source of structural data
+    :param parameters:  Parameters to build a per fragment score
+    :param rmsd_thresh: To guarantee structural diversity
+    :param num_fragments: Number of fragments to be extracted
+
+    :type db:           :class:`StructureDB`
+    :type parameters:   :class:`list`
+    :type rmsd_thresh:  :class:`float`
+    :type num_fragments: :class:`int`
+
+  .. method:: __len__()
+
+    :returns:           Number of fragments stored in fragger.
+
+  .. method:: __getitem__(index)
+
+    :param index:       Item to extract
+
+    :returns:           Fragment at given position
+
+  .. method:: GetScore(index)
+
+    :param index:       Item to get score from
+
+    :returns:           Score of Fragment at given position as it has been
+                        estimated in the according Fill method.
+
+
+
+
diff --git a/doc/html/_sources/loop/torsion_sampler.txt b/doc/html/_sources/loop/torsion_sampler.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4a5a4ebe60333408b71c1ff133fe413f40bd8dde
--- /dev/null
+++ b/doc/html/_sources/loop/torsion_sampler.txt
@@ -0,0 +1,287 @@
+Torsion Sampler
+================================================================================
+
+.. currentmodule:: promod3.loop
+
+
+The torsion sampler is the basic object used to sample the backbone torsion 
+angles phi and psi. It can be used to calculate the probability distributions 
+of backbone torsion angles from structures and save them, as well as loading 
+distributions and drawing from them.
+It uses distributions specific for triplets of residues, so that when drawing 
+a phi/psi pair for a certain residue, the distribution from which the pair is 
+drawn also depends on the identity of the residues before and after the residue 
+in question.
+The distributions of the sampler are stored in a vector, so that 
+most methods which need to access a specific distribution can either take 3 
+residue names or an index as input.
+
+
+Defining Amino Acid triplets
+--------------------------------------------------------------------------------
+
+Since the torsion sampler considers triplets of amino acids, we need to define
+them. This is done with the so called torsion group definitions.
+Three strings represent the according positions of the consecu-
+tive amino acids. They are combined by "-". It is either possible to
+use the keyword "all", or write out all allowed amino acids by their
+three letter code and separate them by ",". An example would be: "all-
+VAL,ILE-PRO". There are cases where a tripeptide can match several
+group definitions. The group definitions are stored internally as a
+list. This list is iterated at
+every evaluation of three consecutive amino acids and the first hit is
+decisive.
+
+
+
+The Torsion Sampler Class
+--------------------------------------------------------------------------------
+
+.. class:: TorsionSampler(group_definitions, bin_size,seed)
+
+    
+    :param group_definitions:  List of group definitions defining
+                               amino acid triplets.
+    :param bin_size:           Size of bins in distributions
+    :param seed:                
+
+    :type bin_size:            :class:`float`
+    :raises:                   :class:`RuntimeException` when there is a
+                               possible combination of the 20 standard amino
+                               acids not matching any of the group definitions.
+
+  .. method:: ExtractStatistics(view)
+    
+    Extracts backbone torsion angles from the structure and adds them to the appropriate histograms in the sampler.
+
+    :param view:          structure from which parameters will be extracted
+
+    :type view:           :class:`ost.mol.EntityView`
+
+  .. method:: UpdateDistributions()
+    
+    Recalculates the probability distributions from the histograms.
+
+  .. method:: Load(filename)
+
+    :param filename:      path to the file from which to load the sampler.
+
+    :type filename:       :class:`str`
+
+    :returns:             A torsion sampler
+
+    :rtype:               :class:`TorsionSampler`
+
+  .. method:: Save(filename)
+
+    :param filename:      path to the file where the sampler will be saved
+
+    :type filename:       :class:`str`
+
+  .. method:: GetHistogramIndex(before,central,after)
+
+    :param before:        Name (3 letter code) of the residue before *central*
+    :param central:       Name (3 letter code) of the residue for the central residue
+    :param after:         Name (3 letter code) of the residue after *central*
+
+    :returns:             The index of the histogram corresponding to the triplet of residues specified.
+
+  .. method:: GetHistogramIndices(sequence)
+
+    :param sequence:      Sequence of length n from which histogram indices
+                          should created.
+
+    :type sequence:       :class:`str`
+
+    :returns:             List of length n-2 containing histogram indices of
+                          all consecutive amino acid triplets in **sequence**
+
+    :raises:              :class:`RuntimeError` if **sequence** contains non
+                          standard amino acid
+
+
+  .. method:: Draw(before,central,after)
+    
+    Draws a pair of dihedral angles for the *central* residue from the distribution specific for such a triplet of residues.
+
+    :param before:        Name (3 letter code) of the residue before *central*
+    :param central:       Name (3 letter code) of the residue for which torsion angles will be drawn
+    :param after:         Name (3 letter code) of the residue after *central*
+    :type before:         :class:`str`
+    :type central:        :class:`str`
+    :type after:          :class:`str`
+
+    :returns:           A pair of phi/psi angles
+
+  .. method:: Draw(index)
+
+    Draws a pair of dihedral angles from the distribution specified by the *index*.
+
+    :param index:         The index of the distribution from which a phi/psi pair will be drawn.
+
+    :type index:          :class:`int`
+
+    :returns:           A pair of phi/psi angles
+
+
+  .. method:: DrawPhiGivenPsi(before,central,after,psi)
+    
+    Draws a *phi* angle for the *central* residue from the conditional distribution P(*phi*|*psi*) specific for such a triplet of residues.
+
+    :param before:        Name (3 letter code) of the residue before *central*
+    :param central:       Name (3 letter code) of the residue for which the *phi* will be drawn
+    :param after:         Name (3 letter code) of the residue after *central*
+    :param psi:           *psi* angle
+
+    :type before:         :class:`str`
+    :type central:        :class:`str`
+    :type after:          :class:`str`
+    :type psi:            :class:`float`
+
+    :returns:           An angle
+
+  .. method:: DrawPhiGivenPsi(index,psi)
+
+    Draws a *phi* angle from the conditional distribution P(*phi*|*psi*) specified by the *index*.
+
+    :param index:         The index of the distribution from which a *phi* angle will be drawn.
+    :param psi:           *psi* angle
+
+    :type index:          :class:`int`
+    :type psi:            :class:`float`
+
+    :returns:           An angle
+
+  .. method:: DrawPsiGivenPhi(before,central,after,phi)
+    
+    Draws a *phi* angle for the *central* residue from the conditional distribution P(*psi*|*phi*) specific for such a triplet of residues.
+
+    :param before:        Name (3 letter code) of the residue before *central*
+    :param central:       Name (3 letter code) of the residue for which the *psi* angle will be drawn
+    :param after:         Name (3 letter code) of the residue after *central*
+    :param phi:           *phi* angle
+
+    :type before:         :class:`str`
+    :type central:        :class:`str`
+    :type after:          :class:`str`
+    :type phi:            :class:`float`
+
+    :returns:           An angle
+
+  .. method:: DrawPsiGivenPhi(index,phi)
+
+    Draws a *phi* angle from the conditional distribution P(*psi*|*phi*) specified by the *index*.
+
+    :param index:         The index of the distribution from which a psi angle will be drawn.
+    :param phi:           *phi* angle
+
+    :type index:          :class:`int`
+    :type phi:            :class:`float`
+
+    :returns:           An angle
+
+  .. method:: GetProbability(before,central,after,dihedrals)
+    
+    Returns the probability of a specific pair of phi/psi dihedrals for the central residue from the corresponding distribution.
+
+    :param before:        Name (3 letter code) of the residue before *central*
+    :param central:       Name (3 letter code) of the residue for which the probability is calculated.
+    :param after:         Name (3 letter code) of the residue after *central*
+    :param dihedrals:     pair of phi/psi angles
+
+    :type before:         :class:`str`
+    :type central:        :class:`str`
+    :type after:          :class:`str`
+    :type dihedrals:      (:class:`float`, :class:`float`)
+
+    :returns:             A probability
+
+  .. method:: GetProbability(index,dihedrals)
+    
+    Returns the probability of a specific pair of phi/psi dihedrals calulated form the distribution specified by *index*.
+
+    :param index:         The index of the distribution.
+    :param dihedrals:     pair of phi/psi angles
+
+    :type index:          :class:`int`
+    :type dihedrals:      (:class:`float`, :class:`float`)
+
+    :returns:             A probability
+
+  .. method:: GetPhiProbabilityGivenPsi(before,central,after,phi,psi)
+    
+    Returns P(*phi*|*psi*) for the central residue from the corresponding distribution.
+
+    :param before:        Name (3 letter code) of the residue before *central*
+    :param central:       Name (3 letter code) of the residue for which the probability is calculated.
+    :param after:         Name (3 letter code) of the residue after *central*
+    :param phi:           phi angle
+    :param psi:           psi angle
+
+    :type before:         :class:`str`
+    :type central:        :class:`str`
+    :type after:          :class:`str`
+    :type phi:            :class:`float`
+    :type psi:            :class:`float`
+
+    :returns:             A probability
+
+  .. method:: GetPsiProbabilityGivenPhi(before,central,after,psi,phi)
+    
+    Returns P(*psi*|*phi*) for the central residue from the corresponding distribution.
+
+    :param before:        Name (3 letter code) of the residue before *central*
+    :param central:       Name (3 letter code) of the residue for which the probability is calculated.
+    :param after:         Name (3 letter code) of the residue after *central*
+    :param psi:           phi angle
+    :param phi:           psi angle
+
+    :type before:         :class:`str`
+    :type central:        :class:`str`
+    :type after:          :class:`str`
+    :type phi:            :class:`float`
+    :type psi:            :class:`float`
+
+    :returns:             A probability
+
+
+  .. method:: GetPhiProbabilityGivenPsi(index,phi,psi)
+    
+    Returns P(*phi*|*psi*) for the central residue from the corresponding distribution.
+
+    :param index:         The index of the distribution.
+    :param psi:           phi angle
+    :param phi:           psi angle
+
+    :type phi:            :class:`float`
+    :type psi:            :class:`float`
+    :type index:          :class:`int`
+
+    :returns:             A probability
+
+  .. method:: GetPsiProbabilityGivenPhi(index,psi,phi)
+    
+    Returns P(*psi*|*phi*) for the central residue from the corresponding distribution.
+
+    :param index:         The index of the distribution.
+    :param psi:           phi angle
+    :param phi:           psi angle
+
+
+    :type phi:            :class:`float`
+    :type psi:            :class:`float`
+    :type index:          :class:`int`
+
+    :returns:             A probability
+
+  .. method:: GetBinsPerDimension()
+    
+    Returns the number of bins in one dimension of the distributions.
+
+    :rtype:               :class:`int`    
+
+  .. method:: GetBinSize()
+
+    Returns the size of the bins of the distributions.
+
+    :rtype:               :class:`float`  
diff --git a/doc/html/_sources/sidechain/disulfid.txt b/doc/html/_sources/sidechain/disulfid.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b86b5152f471daf949a4f2933a7971dd7f742537
--- /dev/null
+++ b/doc/html/_sources/sidechain/disulfid.txt
@@ -0,0 +1,69 @@
+Disulfid Bond Evaluation
+================================================================================
+
+.. currentmodule:: promod3.sidechain
+
+When calculating the pairwise interaction energy between two rotamers building
+a disulfid bond, one would get an unfavourable energy due to "clashes" between
+the sulfur atoms. It is possible to improve performance in sidechain
+reconstruction regarding cysteins when finding and separately handle
+disulfid bonds. PROMOD3 implements a simple geometrical description of
+disulfid bonds described in:
+
+Canutescu AA, Shelenkov AA, Dunbrack RL Jr.
+A graph-theory algorithm for rapid protein side-chain prediction.
+Protein Sci (2003).
+
+Two methods are implemented to evaluate this disulfid score on either rigid of 
+flexible rotamers. The above paper proposes two rotamers to be in a disulfid
+bonded state, if the resulting score is below 45.
+
+.. method:: DisulfidScore(rotamer_one,rotamer_two,ca_pos_one,cb_pos_one,ca_pos_two,cb_pos_two)
+
+  :param rotamer_one:   First rotamer
+  :param rotamer_two:   Second rotamer
+  :param ca_pos_one:    CA position of first rotamer
+  :param cb_pos_one:    CB position of first rotamer
+  :param ca_pos_two:    CA position of second rotamer
+  :param cb_pos_two:    CB position of second rotamer
+
+  :type rotamer_one:    :class:`RRMRotamer`
+  :type rotamer_two:    :class:`RRMRotamer`
+  :type ca_pos_one:     :class:`ost.geom.Vec3`
+  :type cb_pos_one:     :class:`ost.geom.Vec3`
+  :type ca_pos_two:     :class:`ost.geom.Vec3`
+  :type cb_pos_two:     :class:`ost.geom.Vec3`
+
+  :raises:              :class:`RuntimeError` if given rotamers do not contain
+                        exactly one particle representing the gamma sulfur.
+
+  :returns:             The disulfid score based on geometric features.
+
+
+.. method:: DisulfidScore(rotamer_one,rotamer_two,ca_pos_one,cb_pos_one,ca_pos_two,cb_pos_two)  
+
+  :param rotamer_one:   First rotamer
+  :param rotamer_two:   Second rotamer
+  :param ca_pos_one:    CA position of first rotamer
+  :param cb_pos_one:    CB position of first rotamer
+  :param ca_pos_two:    CA position of second rotamer
+  :param cb_pos_two:    CB position of second rotamer
+
+  :type rotamer_one:    :class:`FRMRotamer`
+  :type rotamer_two:    :class:`FRMRotamer`
+  :type ca_pos_one:     :class:`ost.geom.Vec3`
+  :type cb_pos_one:     :class:`ost.geom.Vec3`
+  :type ca_pos_two:     :class:`ost.geom.Vec3`
+  :type cb_pos_two:     :class:`ost.geom.Vec3`
+
+  :raises:              :class:`RuntimeError` if given subrotamers do not contain
+                        exactly one particle representing the gamma sulfur.
+
+  :returns:             The disulfid score based on geometric features. Scores
+                        are calculated for all possible subrotamer combinations
+                        and the minimal score gets returned.
+
+
+
+
+
diff --git a/doc/html/_sources/sidechain/frame.txt b/doc/html/_sources/sidechain/frame.txt
new file mode 100644
index 0000000000000000000000000000000000000000..eff17bab505ec61fad8542cf9c031e5d5b7153b1
--- /dev/null
+++ b/doc/html/_sources/sidechain/frame.txt
@@ -0,0 +1,212 @@
+Frame
+================================================================================
+
+.. currentmodule:: promod3.sidechain
+
+In contrast to the rotamers, the frame is a rigid object. It either
+represents the protein backbone or sidechains kept rigid during the 
+sidechain modelling process. Regions, that should not be occupied by
+any sidechain atoms can also be blocked by adding particles to the frame.
+The frame is built using single frame residues, all of them associated to
+a residues index. If a rotamer associated to the same residue index
+enters the frame energy calculation, all interaction with particles 
+belonging to the frame residue with the same residue index are neglected.
+
+
+Convenient functions for constructing frame residues
+--------------------------------------------------------------------------------
+
+PROMOD3 offers some functionality to construct frame residues for standard
+residues. The functions distinguish between backbone frame residue
+and sidechain frame residues.
+
+.. method:: ConstructBackboneFrameResidue(n_pos,ca_pos,c_pos,o_pos,cb_pos,id,residue_index,settings,phi,[n_ter=False, c_ter=False])
+
+  :param n_pos:         Position of backbone nitrogen atom
+  :param ca_pos:        Position of backbone c-alpha carbon atom
+  :param c_pos:         Position of backbone carbon atom
+  :param o_pos:         Position of backbone oxygen atom
+  :param cb_pos:        Position of backbone c-beta carbon atom
+  :param id:            Type of :class:`FrameResidue`
+  :param residue_index: Index this :class:`FrameResidue` belongs to.
+                        Interactions to rotamers associated to the same
+                        index are neglected.
+  :param settings:      Settings to control parametrization of the single 
+                        particles.
+  :param phi:           Phi backbone torsion angle required to construct the
+                        backbone hydrogen if hbonds get considered.
+  :param n_ter:         Flag, whether residue is n-terminal. If yes, the 
+                        according backbone hydrogens get constructed if
+                        hbonds get considered.
+  :param c_ter:         Flag, whether residue is c-terminal. If yes, the
+                        according backbone oxygen gets constructed if 
+                        hbonds get considered. 
+
+
+  :type n_pos:          :class:`ost.geom.Vec3`
+  :type ca_pos:         :class:`ost.geom.Vec3`
+  :type c_pos:          :class:`ost.geom.Vec3`
+  :type o_pos:          :class:`ost.geom.Vec3`
+  :type cb_pos:         :class:`ost.geom.Vec3`
+  :type id:             :class:`RotamerID`
+  :type residue_index:  :class:`int`
+  :type settings:       :class:`RotamerSettings`
+  :type phi:            :class:`float`
+  :type n_ter:          :class:`bool`
+  :type c_ter:          :class:`bool`
+
+  :returns:             :class:`FrameResidue`
+
+
+
+.. method:: ConstructBackboneFrameResidue(residue,id,residue_index,settings,phi,[n_ter=False, c_ter=False])
+
+  :param residue:       Residue from which the backbone atoms are extracted.
+  :param id:            Type of :class:`FrameResidue`
+  :param residue_index: Index this :class:`FrameResidue` belongs to.
+                        Interactions to rotamers associated to the same
+                        index are neglected.
+  :param settings:      Settings to control parametrization of the single 
+                        particles.
+  :param phi:           Phi backbone torsion angle required to construct the
+                        backbone hydrogen if hbonds get considered.
+  :param n_ter:         Flag, whether residue is n-terminal. If yes, the 
+                        according backbone hydrogens get constructed if
+                        hbonds get considered.
+  :param c_ter:         Flag, whether residue is c-terminal. If yes, the
+                        according backbone oxygen gets constructed if 
+                        hbonds get considered. 
+
+
+  :type residue:        :class:`ost.mol.ResidueHandle`
+  :type id:             :class:`RotamerID`
+  :type residue_index:  :class:`int`
+  :type settings:       :class:`RotamerSettings`
+  :type phi:            :class:`float`
+  :type n_ter:          :class:`bool`
+  :type c_ter:          :class:`bool`
+
+  :raises:              :class:`RuntimeError` when not all required backbone
+                        atoms are present in **residue**
+
+  :returns:             :class:`FrameResidue`
+
+.. method:: ConstructSidechainFrameResidue(residue,id,residue_index,settings)
+
+  :param residue:       Residue from which the sidechain atoms are extracted.
+  :param id:            Type of :class:`FrameResidue`
+  :param residue_index: Index this :class:`FrameResidue` belongs to.
+  :param settings:      Settings to control parametrization of the single
+                        particles.
+
+  :type residue:        :class:`ost.mol.ResidueHandle`
+  :type id:             :class:`RotamerID`
+  :type residue_index:  :class:`int`
+  :type settings:       :class:`RotamerSettings`
+
+  :raises:              :class:`RuntimeError` when not all required atoms
+                        atoms are present in **residue** 
+
+.. method:: ConstructFrameResidue(residue,residue_index,settings,[radius=[],emin=[]])
+
+  Constructs a :class:`FrameResidue` from a :class:`ost.mol.ResidueHandle`.
+  This can be useful to mark a region occupied by a ligand. Note, that
+  there won't be any parametrization of hbonds in this function.
+  
+
+  :param residue:       Reside from which all atoms will be taken to
+                        construct a :class:`FrameResidue`.
+  :param residue_index: Index this :class:`FrameResidue` belongs to.
+  :param settings:      Settings to control parametrization of the single
+                        particles.
+  :param radius:        Radius for pseudo Lennard-Jones term in energy 
+                        evaluation for every particle. If left empty, 
+                        radius of carbon will be used for all particles.
+
+  :param emin:          Min energy for pseudo Lennard-Jones term in energy 
+                        evaluation for every particle. If left empty, 
+                        emin of carbon will be used for all particles.
+
+  :type residue:        :class:`ost.mol.ResidueHandle`
+  :type residue_index:  :class:`int`
+  :type settings:       :class:`RotamerSettings`
+  :type radius:         :class:`list`
+  :type emin:           :class:`list`
+
+  :raises:              :class:`RuntimeError` if size of radius and emin is not
+                        consistent.
+
+The Frame Objects
+--------------------------------------------------------------------------------
+
+.. class:: FrameResidue(particles, residue_index)
+  
+  The most simple way of constructing a frame residue is the usage
+  of the convenient functions provided by PROMOD3.
+
+  :param particles:     :class:`list` of :class:`Particle` objects building 
+                        up the :class:`FrameResidue`
+  :param residue_index: Interaction energies between the constructed frame
+                        residue and any rotamer associated to the same 
+                        residue index are neglected.
+
+  .. method:: __len__()   
+
+    :returns:           Number of particles in :class:`FrameResidue`
+
+
+  .. method:: __getitem__(index)
+
+    :param index:       :class:`Particle` index
+    
+    :returns:           :class:`Particle` at position **index**
+
+    :raises:            :class:`RuntimeError` if index is invalid
+
+
+ 
+.. class:: Frame(frame_residues)
+
+  :param frame_residues:  
+
+  :type frame_residues: 
+
+  The :class:`Frame` object allows to calculate frame energies for rotamers.
+  Due to technical reasons, this is only possible if the rotamers are
+  part of rotamer groups.
+
+  .. method:: SetFrameEnergy(rotamer_group)
+
+    Calculates and sets frame energies
+
+    :param rotamer_group: group of rotamers for energy calculation
+
+    :type rotamer_group: :class:`RRMRotamerGroup`
+
+  .. method:: SetFrameEnergy(rotamer_group)
+
+    Calculates and sets frame energies
+
+    :param rotamer_group: group of rotamers for energy calculation
+
+    :type rotamer_group: :class:`FRMRotamerGroup`
+
+  .. method:: AddFrameEnergy(rotamer_group)
+
+    Calculates and adds frame energies to the already existing frame
+    energy values. This might be useful if you have several :class:`Frame`
+    objects.
+
+    :param rotamer_group: group of rotamers for energy calculation
+
+    :type rotamer_group: :class:`RRMRotamerGroup`
+
+  .. method:: AddFrameEnergy(rotamer_group)
+
+    Calculates and adds frame energies to the already existing frame
+    energy values. This might be useful if you have several :class:`Frame`
+    objects.
+
+    :param rotamer_group: group of rotamers for energy calculation
+
+    :type rotamer_group: :class:`FRMRotamerGroup`
diff --git a/doc/html/_sources/sidechain/graph.txt b/doc/html/_sources/sidechain/graph.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0797b9312003d03db85dcab10e879173404aa3ce
--- /dev/null
+++ b/doc/html/_sources/sidechain/graph.txt
@@ -0,0 +1,112 @@
+Coming to a solution
+================================================================================
+
+.. currentmodule:: promod3.sidechain
+
+Once having a frame representing the rigid parts, the internal energies in
+rotamer groups can be calculated. To come to a final solution of the sidechain
+modelling problem, the pairwise energies also have to be evaluated and an
+overall solution has to be found. PROMOD3 implements an interaction graph that
+takes a list of rotamer groups, calculates the pairwise energies, does edge
+decomposition and dead end elimination, decomposes the graph in a tree form
+and finally comes back with a solution.
+
+
+The Interaction Graph
+--------------------------------------------------------------------------------
+
+.. class:: Graph
+
+  The Graph object has no constructor exported to python. It is meant to be
+  constructed using the static create functions.
+
+  .. method:: CreateFromRRMList(rotamer_groups)
+
+    :param rotamer_groups: :class:`RRMRotamerGroup` objects representing the
+                           possible sidechain conformations for every amino
+                           acid position.
+
+    :type rotamer_groups: :class:`list`
+
+
+  .. method:: CreateFromFRMList(rotamer_groups)
+
+    :param rotamer_groups: :class:`FRMRotamerGroup` objects representing the
+                           possible sidechain conformations for every amino
+                           acid position.
+
+    :type rotamer_groups: :class:`list`
+
+
+  .. method:: Solve([max_complexity=inf, initial_epsilon=0.02])
+
+    The method solves a graph by iteratively performing dead end elimination
+    and edge decomposition until the number of possible permutations, that
+    have to be enumerated in the resulting tree, fall below 
+    **max_complecity**. In every iteration the epsilon value gets doubled to
+    enforce more edges to be approximated by edge decomposition.
+
+    :param max_complexity: Max number of possible permutations, that have to 
+                           be enumerated in the resulting tree after tree
+                           decomposition.
+
+    :param initial_epsilon: The initial energy threshold to perform edge
+                            decomposition.
+
+    :type max_complexity: :class:`int`
+    :type initial_epsilon: :class:`float`
+
+    :returns:           Indices representing the single rotamers minimizing
+                        the overall energy functions from every rotamer group.
+
+
+  
+  .. method:: Prune(epsilon, [consider_all_nodes=False])
+
+    Performs edge decomposition followed by dead end elimination in an
+    iterative manner until no changes can be observed anymore given 
+    **epsilon**.
+
+    :param epsilon:     The energy threshold to perform edge decomposition.
+
+    :param consider_all_nodes: Flag, wether the dead end elimination should be
+                               applied to all nodes, or only those who are
+                               connected with an edge removed by edge 
+                               decomposition. This is useful if already a Prune
+                               operation has been performed => only those nodes
+                               connected to a removed edge have the chance for
+                               successful dead end elimination.
+
+  .. method Reset()
+
+    Resets the graph by undoing any pruning operations
+
+  .. method:: GetNumNodes()
+
+    :returns:           The number of nodes in the graph
+                        => every rotamer group is a node
+
+  .. method:: GetNumEdges()
+
+    :returns:           The number of edges in the graph, representing
+                        connections between nodes with at least one
+                        nonzero interaction
+
+  .. method:: GetNumActiveNodes()
+
+    :returns:           The number of nodes havind at least one edge, even
+                        after performing pruning operations
+
+  .. method:: GetNumActiveEdges()
+
+    :returns:           The number of edges representing nonzero interactions,
+                        even after performing pruning operations
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/_sources/sidechain/index.txt b/doc/html/_sources/sidechain/index.txt
new file mode 100644
index 0000000000000000000000000000000000000000..78a1a2ce2a570874ca8e8523ee7ae04dde273c23
--- /dev/null
+++ b/doc/html/_sources/sidechain/index.txt
@@ -0,0 +1,164 @@
+:mod:`~promod3.sidechain` - Sidechain Modelling
+================================================================================
+
+.. module:: promod3.sidechain
+  :synopsis: Sidechain Modelling
+
+.. currentmodule:: promod3.sidechain
+
+Tools and algorithms to model sidechains given backbone coordinates. 
+The full module is heavily based on SCWRL4:
+
+G. G. Krivov, M. V. Shapovalov, and R. L. Dunbrack, Jr. 
+Improved prediction of protein side-chain conformations with SCWRL4. 
+Proteins (2009). 
+
+The paper describes the modelling of sidechains using two different rotamer 
+models. A rigid model, as well as a flexible model. Both models are implemented
+in PROMOD3 and can be applied in flexible ways.
+
+The most simple way though is the usage of following function:
+
+.. currentmodule:: promod3.sidechain.reconstruct_sidechains
+
+.. method:: Reconstruct(prot,[,keep_sidechains=False,build_disulfids,rotamer_model="frm",consider_hbonds=True,rotamer_library=None])
+
+  .. currentmodule:: promod3.sidechain
+
+  The function takes a structure and reconstructs its sidechains given the input 
+  parameters.
+
+  :param prot:          Structure for sidechain reconstruction. Note, that the
+                        sidechain reconstruction gets directly applied on the
+                        structure itself.
+
+  :param keep_sidechains: Flag, whether sidechains containing all required 
+                          should be kept rigid and directly be added to the
+                          frame.
+
+  :param build_disulfids: Flag, whether possible disulfid bonds should be 
+                          searched. If a disulfid bond is found, the two
+                          participating cysteins are fixed and added to
+                          the frame.
+
+  :param rotamer_model: Rotamer model to be used, can either be "frm" or "rrm"
+
+  :param consider_hbonds: Flag, whether hbonds should be evaluated in the energy
+                          function. If set to False, no hydrogens will be built
+                          when building rotamers and frame.
+
+  :param rotamer_library: A backbone dependent rotamer library to extract the 
+                          rotamers from.
+
+  :type prot:           :class:`ost.mol.EntityHandle`
+  :type keep_sidechains: :class:`bool`
+  :type build_disulfids: :class:`bool`
+  :type rotamer_model:  :class:`str`
+  :type consider_hbonds: :class:`bool`
+  :type rotamer_library: :class:`BBDepRotamerLib`
+
+
+Following code fragment shows an example of a basic sidechain reconstruction
+algorithm using the functionality in the module. Note, that this code will
+crash as soon as you have structures containing all the weirdness the PDB throws
+at us. In this case you should use the Reconstruct function above. An overview
+of the full provided functionality can be found at the bottom of this page.
+
+.. code-block:: python
+    
+  from promod3 import sidechain
+
+  #load a protein, the rotamer library and the settings with default values
+  prot= io.LoadPDB('1eye',remote=True)
+  settings = sidechain.RotamerSettings()
+  library = sidechain.LoadDunbrackLib()
+
+  #let's create a new entity from the protein only containing the amino acids
+  prot = ost.mol.CreateEntityFromView(prot.Select("peptide=true"),True)
+
+  #gather some data, the rotamer ids and backbone torsion angles
+  torsion_angles = list()
+  rotamer_ids = list()
+
+  for r in prot.residues:
+      rotamer_ids.append(sidechain.TLCToRotID(r.GetName()))
+      phi_handle = r.GetPhiTorsion()
+      psi_handle = r.GetPsiTorsion()
+
+      #set typical default values for an alpha helix...
+      phi = -1.0472 
+      psi = -0.7854
+      if phi_handle.IsValid():
+          phi = phi_handle.GetAngle()
+      if psi_handle.IsValid():
+          psi = psi_handle.GetAngle()
+
+      torsion_angles.append((phi,psi))
+
+  #lets first build a frame representing the rigid parts including the cystein
+  #sidechains
+  frame_residues = list()
+  for i,r in enumerate(prot.residues):
+      frame_residue = sidechain.ConstructBackboneFrameResidue(r,rotamer_ids[i],i,
+                                                              settings,
+                                                              torsion_angles[i][0],
+                                                              i == 1, 
+                                                              i == (len(rotamer_ids)-1))
+
+      frame_residues.append(frame_residue)
+
+
+  frame = sidechain.Frame(frame_residues)
+
+
+  #let's build up rotamer groups
+  rotamer_groups = list()
+  aa_with_rotamers = list()
+  for i,r in enumerate(prot.residues):
+
+      if r.GetName() == "ALA" or r.GetName() == "GLY":
+        continue
+
+      rot_group = sidechain.ConstructFRMRotamerGroup(r,rotamer_ids[i],i,
+                                                     library,settings,
+                                                     torsion_angles[i][0],
+                                                     torsion_angles[i][1])
+
+      #internal and frame energy have to be calculated directly
+      rot_group.CalculateInternalEnergies()
+      frame.SetFrameEnergy(rot_group)
+      #remove supper unlikely rotamer in rotamer group 
+      #e.g. those who clash with the frame
+      rot_group.ApplySelfEnergyThresh()
+      #finally add it and keep track of the indices
+      rotamer_groups.append(rot_group)
+      aa_with_rotamers.append(i)
+
+
+  #buildup a graph given the rotamer groups
+  graph = sidechain.Graph.CreateFromFRMList(rotamer_groups)
+
+  #and get a solution out of it
+  solution = graph.Solve()
+
+  #let's finally apply the solution to the residues
+  for i,rot_group,sol in zip(aa_with_rotamers,rotamer_groups,solution):
+      rot_group[sol].ApplyOnResidue(prot.residues[i])
+
+  io.SavePDB(prot,"example_reconstruction.pdb")
+
+
+
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+
+   RotamerID <rotamer_id>
+   Rotamers <rotamer>
+   Frame <frame>
+   Rotamer Library <rotamer_lib>
+   Graph <graph>
+   The Settings - Control Things... <sidechain_settings>
+   Disulfid Bond Evaluation <disulfid>
diff --git a/doc/html/_sources/sidechain/rotamer.txt b/doc/html/_sources/sidechain/rotamer.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3ba2b20e36c9297923c962e424e115a755e2cfb5
--- /dev/null
+++ b/doc/html/_sources/sidechain/rotamer.txt
@@ -0,0 +1,861 @@
+Rotamers
+================================================================================
+
+.. currentmodule:: promod3.sidechain
+
+The rotamers in PROMOD3 are heavily based on the definitions from SCWRL4.
+A rotamer is basically a set of :class:`Particle` and exists in two types.
+The :class:`RRMRotamer` and :class:`FRMRotamer`. Pairwise energies between
+rotamer instances get calculated according to the definitions from SCWRL4.
+To gather all possible rotamers for one particular sidechain position,
+PROMOD3 has the :class:`RRMRotamerGroup` and :class:`FRMRotamerGroup`.
+Rotamers are not intended to be built from scratch.  
+PROMOD3 offers a built-in construction function, directly accessing a 
+:class:`BBDepRotamerLib`.
+
+
+Convenient functions for constructing rotamers
+--------------------------------------------------------------------------------
+
+PROMOD3 offers some functionality to directly access a 
+:class:`BBDepRotamerLibrary` and build single rotamers as well as 
+rotamer groups.
+
+.. method:: ConstructRRMRotamer(n_pos,ca_pos,cb_pos,rotamer_id,settings,probability,[chi1=NaN,chi2=NaN,chi3=NaN,chi4=NaN])
+
+  :param n_pos:         Position of nitrogen used as anchor for the rotamer
+  :param ca_pos:        Position of alpha carbon used as anchor for the rotamer
+  :param cb_pos:        Position of beta carbon used as anchor for the rotamer
+  :param rotamer_id:    Type of :class:`RRMRotamer`
+  :param settings:      Settings to control parametrization of the single
+                        particles.
+  :param probability:   Probability of occurence of this particular rotamer.
+  :param chi1:          First sidechain dihedral angle
+  :param chi2:          Second sidechain dihedral angle
+  :param chi3:          Third sidechain dihedral angle
+  :param chi4:          Fourth sidechain dihedral angle
+
+  :type n_pos:          :class:`ost.geom.Vec3`
+  :type ca_pos:         :class:`ost.geom.Vec3`
+  :type cb_pos:         :class:`ost.geom.Vec3`
+  :type rotamer_id:     :class:`RotamerID`
+  :type settings:       :class:`RotamerSettings`
+  :type probability:    :class:`float`
+  :type chi1:           :class:`float`
+  :type chi2:           :class:`float`
+  :type chi3:           :class:`float`
+  :type chi4:           :class:`float`
+
+  :raises:              :class:`RuntimeError` if not all required chi angles
+                        for this particular **id** are given.
+
+
+.. method:: ConstructRRMRotamer(residue,rotamer_id,settings,probability,[chi1=NaN,chi2=NaN,chi3=NaN,chi4=NaN])
+
+  :param residue:       Residue from which the anchor positions will be 
+                        extracted
+  :param rotamer_id:    Type of :class:`RRMRotamer`
+  :param settings:      Settings to control parametrization of the single
+                        particles.
+  :param probability:   Probability of occurence of this particular rotamer.
+  :param chi1:          First sidechain dihedral angle
+  :param chi2:          Second sidechain dihedral angle
+  :param chi3:          Third sidechain dihedral angle
+  :param chi4:          Fourth sidechain dihedral angle
+
+  :type residue:        :class:`ost.mol.ResideHandle`
+  :type rotamer_id:     :class:`RotamerID`
+  :type settings:       :class:`RotamerSettings`
+  :type probability:    :class:`float`
+  :type chi1:           :class:`float`
+  :type chi2:           :class:`float`
+  :type chi3:           :class:`float`
+  :type chi4:           :class:`float`
+
+  :raises:              :class:`RuntimeError` if not all required chi angles
+                        for this particular **id** are given or when not
+                        all required anchor atoms are present in
+                        **residue**.
+
+
+.. method:: ConstructFRMRotamer(n_pos,ca_pos,cb_pos,rotamer_id,settings,probability,[chi1=NaN,sig1=NaN,chi2=NaN,sig2=NaN,chi3=NaN,sig3=NaN,chi4=NaN,sig4=NaN])
+
+  :param n_pos:         Position of nitrogen used as anchor for the rotamer
+  :param ca_pos:        Position of alpha carbon used as anchor for the rotamer
+  :param cb_pos:        Position of beta carbon used as anchor for the rotamer
+  :param rotamer_id:    Type of :class:`FRMRotamer`
+  :param settings:      Settings to control parametrization of the single
+                        particles.
+  :param probability:   Probability of occurence of this particular rotamer.
+  :param chi1:          First sidechain dihedral angle
+  :param sig1:          Standard deviation of first dihedral angle
+  :param chi2:          Second sidechain dihedral angle
+  :param sig2:          Standard deviation of second dihedral angle
+  :param chi3:          Third sidechain dihedral angle
+  :param sig3:          Standard deviation of third dihedral angle
+  :param chi4:          Fourth sidechain dihedral angle
+  :param sig4:          Standard deviation of fourth dihedral angle
+
+
+  :type n_pos:          :class:`ost.geom.Vec3`
+  :type ca_pos:         :class:`ost.geom.Vec3`
+  :type cb_pos:         :class:`ost.geom.Vec3`
+  :type rotamer_id:     :class:`RotamerID`
+  :type settings:       :class:`RotamerSettings`
+  :type probability:    :class:`float`
+  :type chi1:           :class:`float`
+  :type sig1:           :class:`float`
+  :type chi2:           :class:`float`
+  :type sig2:           :class:`float`
+  :type chi3:           :class:`float`
+  :type sig3:           :class:`float`
+  :type chi4:           :class:`float`
+  :type sig4:           :class:`float`
+
+  :raises:              :class:`RuntimeError` if not all required chi angles
+                        for this particular **id** are given.
+
+
+.. method:: ConstructFRMRotamer(residue,rotamer_id,settings,probability,[chi1=NaN,sig1=NaN,chi2=NaN,sig2=NaN,chi3=NaN,sig3=NaN,chi4=NaN,sig4=NaN])
+
+  :param residue:       Residue from which the anchor positions will be 
+                        extracted
+  :param rotamer_id:    Type of :class:`FRMRotamer`
+  :param settings:      Settings to control parametrization of the single
+                        particles.
+  :param probability:   Probability of occurence of this particular rotamer.
+  :param chi1:          First sidechain dihedral angle
+  :param sig1:          Standard deviation of first dihedral angle
+  :param chi2:          Second sidechain dihedral angle
+  :param sig2:          Standard deviation of second dihedral angle
+  :param chi3:          Third sidechain dihedral angle
+  :param sig3:          Standard deviation of third dihedral angle
+  :param chi4:          Fourth sidechain dihedral angle
+  :param sig4:          Standard deviation of fourth dihedral angle
+
+  :type residue:        :class:`ost.mol.ResideHandle`
+  :type rotamer_id:     :class:`RotamerID`
+  :type settings:       :class:`RotamerSettings`
+  :type probability:    :class:`float`
+  :type chi1:           :class:`float`
+  :type sig1:           :class:`float`
+  :type chi2:           :class:`float`
+  :type sig2:           :class:`float`
+  :type chi3:           :class:`float`
+  :type sig3:           :class:`float`
+  :type chi4:           :class:`float`
+  :type sig4:           :class:`float`
+
+  :raises:              :class:`RuntimeError` if not all required chi angles
+                        or standard deviations for this particular **id** 
+                        are given or when not all required anchor atoms are present in
+                        **residue**.
+
+
+Convenient functions for constructing rotamer groups
+--------------------------------------------------------------------------------
+
+Instead of building single rotamers, following convenient functions query a 
+rotamer library and build all possible rotamers for a particular residue 
+position. If hbond scoring is enabled (**settings**) several rotamers might be 
+constructed and added to the group per library instance:
+
+#. SER construct three rotamers with hydrogen chi angles 180,-60 and 60 
+#. THR construct three rotamers with hydrogen chi angles 180,-60 and 60
+#. TYR construct two rotamers with hydrogen chi angles 180 and 0
+#. HIS construct both possible protonation states (HSE,HSD)  
+
+.. _rotamer_group_construction_label:
+
+.. method:: ConstructRRMRotamerGroup(n_pos,ca_pos,cb_pos,rotamer_id,residue_index,rot_lib,settings,[phi=-1.0472,psi=1.0472])
+
+  Constructs a full group of :class:`RRMRotamer` objects. It extracts rotamers
+  from *rot_lib* and adds them to the group until the summed probability
+  reaches the probability cutoff defined in **settings**.
+
+  :param n_pos:         Position of nitrogen used as anchor for the rotamers
+  :param ca_pos:        Position of alpha carbon used as anchor for the rotamers
+  :param cb_pos:        Position of beta carbon used as anchor for the rotamers
+  :param rotamer_id:    Type of of the constructed :class:`RRMRotamer`
+  :param residue_index: Index of :class:`RRMRotamer` objects in constructed
+                        :class:`RRMRotamerGroup`. This matters for calculating
+                        the frame energy. Interactions to frame residues with
+                        same index get neglected.
+  :param rot_lib:       Library from which the data is taken to construct the 
+                        rotamers.
+  :param settings:      Settings to control parametrization of the single
+                        particles.
+  :param phi:           Phi backbone dihedral angle used as input for backbone
+                        dependent rotamer library. Default value is a typical
+                        alpha helical value.
+  :param psi:           Psi backbone dihedral angle used as input for backbone
+                        dependent rotamer library. Default value is a typical
+                        alpha helical value.
+
+  :type n_pos:          :class:`ost.geom.Vec3`
+  :type ca_pos:         :class:`ost.geom.Vec3`
+  :type cb_pos:         :class:`ost.geom.Vec3`
+  :type rotamer_id:     :class:`RotamerID`
+  :type residue_index:  :class:`int`
+  :type rot_lib:        :class:`BBDepRotamerLib`
+  :type settings:       :class:`RotamerSettings`
+  :type phi:            :class:`float`
+  :type psi:            :class:`float`
+
+
+.. method:: ConstructRRMRotamerGroup(residue,rotamer_id,residue_index,rot_lib,settings,[phi=-1.0472,psi=1.0472])
+
+  Constructs a full group of :class:`RRMRotamer` objects. It extracts rotamers
+  from *rot_lib* and adds them to the group until the summed probability
+  reaches the probability cutoff defined in **settings**.
+
+
+  :param residue:       Residue from which the anchor positions will be 
+                        extracted     
+  :param rotamer_id:    Type of of the constructed :class:`RRMRotamer`
+  :param residue_index: Index of :class:`RRMRotamer` objects in constructed
+                        :class:`RRMRotamerGroup`. This matters for calculating
+                        the frame energy. Interactions to frame residues with
+                        same index get neglected.
+  :param rot_lib:       Library from which the data is taken to construct the 
+                        rotamers.
+  :param settings:      Settings to control parametrization of the single
+                        particles.
+  :param phi:           Phi backbone dihedral angle used as input for backbone
+                        dependent rotamer library. Default value is a typical
+                        alpha helical value.
+  :param psi:           Psi backbone dihedral angle used as input for backbone
+                        dependent rotamer library. Default value is a typical
+                        alpha helical value.
+
+  :type n_pos:          :class:`ost.geom.Vec3`
+  :type ca_pos:         :class:`ost.geom.Vec3`
+  :type cb_pos:         :class:`ost.geom.Vec3`
+  :type rotamer_id:     :class:`RotamerID`
+  :type residue_index:  :class:`int`
+  :type rot_lib:        :class:`BBDepRotamerLib`
+  :type settings:       :class:`RotamerSettings`
+  :type phi:            :class:`float`
+  :type psi:            :class:`float`
+
+  :raises:              :class:`RuntimeError` if not all required anchor atoms 
+                        are present in **residue**.
+
+
+.. method:: ConstructFRMRotamerGroup(n_pos,ca_pos,cb_pos,rotamer_id,residue_index,rot_lib,settings,[phi=-1.0472,psi=1.0472])
+
+  Constructs a full group of :class:`FRMRotamer` objects. It extracts rotamers
+  from *rot_lib* and adds them to the group until the summed probability
+  reaches the probability cutoff defined in **settings**.
+
+  :param n_pos:         Position of nitrogen used as anchor for the rotamers
+  :param ca_pos:        Position of alpha carbon used as anchor for the rotamers
+  :param cb_pos:        Position of beta carbon used as anchor for the rotamers
+  :param rotamer_id:    Type of of the constructed :class:`FRMRotamer`
+  :param residue_index: Index of :class:`FRMRotamer` objects in constructed
+                        :class:`RRMRotamerGroup`. This matters for calculating
+                        the frame energy. Interactions to frame residues with
+                        same index get neglected.
+  :param rot_lib:       Library from which the data is taken to construct the 
+                        rotamers.
+  :param settings:      Settings to control parametrization of the single
+                        particles.
+  :param phi:           Phi backbone dihedral angle used as input for backbone
+                        dependent rotamer library. Default value is a typical
+                        alpha helical value.
+  :param psi:           Psi backbone dihedral angle used as input for backbone
+                        dependent rotamer library. Default value is a typical
+                        alpha helical value.
+
+  :type n_pos:          :class:`ost.geom.Vec3`
+  :type ca_pos:         :class:`ost.geom.Vec3`
+  :type cb_pos:         :class:`ost.geom.Vec3`
+  :type rotamer_id:     :class:`RotamerID`
+  :type residue_index:  :class:`int`
+  :type rot_lib:        :class:`BBDepRotamerLib`
+  :type settings:       :class:`RotamerSettings`
+  :type phi:            :class:`float`
+  :type psi:            :class:`float`
+
+
+.. method:: ConstructFRMRotamerGroup(residue,rotamer_id,residue_index,rot_lib,settings,[phi=-1.0472,psi=1.0472])
+
+  Constructs a full group of :class:`FRMRotamer` objects. It extracts rotamers
+  from *rot_lib* and adds them to the group until the summed probability
+  reaches the probability cutoff defined in **settings**.
+
+  :param residue:       Residue from which the anchor positions will be 
+                        extracted     
+  :param rotamer_id:    Type of of the constructed :class:`FRMRotamer`
+  :param residue_index: Index of :class:`FRMRotamer` objects in constructed
+                        :class:`RRMRotamerGroup`. This matters for calculating
+                        the frame energy. Interactions to frame residues with
+                        same index get neglected.
+  :param rot_lib:       Library from which the data is taken to construct the 
+                        rotamers.
+  :param settings:      Settings to control parametrization of the single
+                        particles.
+  :param phi:           Phi backbone dihedral angle used as input for backbone
+                        dependent rotamer library. Default value is a typical
+                        alpha helical value.
+  :param psi:           Psi backbone dihedral angle used as input for backbone
+                        dependent rotamer library. Default value is a typical
+                        alpha helical value.
+
+  :type n_pos:          :class:`ost.geom.Vec3`
+  :type ca_pos:         :class:`ost.geom.Vec3`
+  :type cb_pos:         :class:`ost.geom.Vec3`
+  :type rotamer_id:     :class:`RotamerID`
+  :type residue_index:  :class:`int`
+  :type rot_lib:        :class:`BBDepRotamerLib`
+  :type settings:       :class:`RotamerSettings`
+  :type phi:            :class:`float`
+  :type psi:            :class:`float`
+
+  :raises:              :class:`RuntimeError` if not all required anchor atoms 
+                        are present in **residue**.
+
+
+
+
+The Smallest Building Block - The Particle
+--------------------------------------------------------------------------------
+
+.. class:: Particle(pos, radius, r, emin, charge, name)
+
+  :param pos:           Positions of particle
+  :param radius:        Expected distance, this particle gives
+                        raise to nonzero interactions. This parameter is used
+                        for the internal collision detection algorithm.
+                        If two particles have a nonzero interaction energy up to
+                        3 Angstrom, their radius should be at least 1.5.
+  :param r:             Distance for pseudo Lennard-Jones interaction term
+  :param emin:          Emin for pseudo Lennard-Jones interaction term
+  :param charge:        Charge of particle, will be used in case H-Bonds
+  :param name:          Name of particle. This name will be given to an actual
+                        :class:`ost.mol.AtomHandle` if a rotamer gets applied
+                        to a :class:`ost.mol.ResidueHandle`
+
+  :type pos:            :class:`ost.geom.Vec3`
+  :type radius:         :class:`float`
+  :type r:              :class:`float`
+  :type emin:           :class:`float`
+  :type charge:         :class:`float`
+  :type name:           :class:`str`
+
+  .. method:: PairwiseEnergy(other)
+
+    Calculates the interaction energy between two particles.
+
+    :param other:       Interaction partner
+
+    :type other:        :class:`Particle`
+
+    :returns:           the interaction energy
+
+
+  .. method:: GetPos()
+
+    :returns:           The Particle position
+
+
+  .. method:: GetRadius()
+
+    :returns:           The distance of pseudo Lennard-Jones Term
+
+
+  .. method:: GetEMin()
+
+    :returns:           EMin of pseudo Lennart-Jones Term
+
+
+  .. method:: GetCharge()
+
+    :returns:           Charge of particle used for HBond term
+
+
+  .. method:: GetName()
+
+    :returns:           Name of particle
+
+
+  .. method:: IsHBondDonor()
+
+    :returns:           Whether particle has defined polar direction
+
+
+  .. method:: IsHBondAcceptor()
+
+    :returns:           Whether particle has defined lone pairs
+
+
+  .. method:: AddLonePair(lone_pair)
+
+    Adds lone pair, that gets evaluated in the HBond term.
+
+    :param lone_pair:   Lone pair direction
+
+    :type lone_pair:    :class:`ost.geom.Vec3`
+
+
+  .. method:: SetPolarDirection(polar_direction)
+
+    Sets the polar direction of particle. In case of backbone
+    hydrogen, this would be the direction of backbone-N to backbone-H.
+
+    :param polar_direction: Polar direction of particle
+
+    :type polar_direction:  :class:`ost.geom.Vec3` 
+
+
+Rotamers
+--------------------------------------------------------------------------------
+
+
+.. class:: RRMRotamer
+
+  The RRMRotamer represents a rotamer of the so called rigid rotamer model.
+  The class has no constructor exported to python, the rotamer is expected to
+  be constructed with the convenient functions provided by PROMOD3.
+
+  .. method:: __getitem__(index)
+
+    Access particle at specified index
+
+    :param index:       Index of particle of interest
+
+    :type index:        :class:`int`
+
+    :returns:           :class:`Particle` at specified index
+
+    :raises:            :class:`RuntimeError` if index is invalid
+
+
+  .. method:: __len__()
+
+    :returns:           Number of particles the rotamer contains
+
+  .. method:: ApplyOnResidue(res,[consider_hydrogens=False,new_res_name=""])
+
+    Strips all sidechain atom positions of given residue and reconstructs the
+    full sidechain given the positions of the particles in the rotamer.
+
+    :param res:         Residue to be reconstructed
+    :param consider_hydrogens: Flag, whether polar hydrogens should be added to 
+                               the sidechain
+    :param new_res_name: New name of residue. Nothing happens in case of the 
+                         default value ("")
+
+    :type res:          :class:`ost.mol.ResidueHandle`
+    :type consider_hydrogens: :class:`bool`
+    :type new_res_name: :class:`str`
+
+    :raises:            :class:`RuntimeError` if not all required backbone atoms
+                        are present in **res**
+
+
+  .. method:: GetTransformedCopy(transform)
+
+    Transforms all particle positions including their lone pair and polar 
+    directions.
+
+    :param transform:   Transformation to be applied
+
+    :type transform:    :class:`ost.geom.Transform`
+
+    :returns:           :class:`RRMRotamer` with all particles transformed
+
+
+  .. method:: CalculateInternalEnergy(normalization_factor)
+    
+    Calculates and sets the rotamer internal energy of the form:
+    -prefactor*log(probability/normalization_factor)
+
+    :param normalization_factor: Normalization factor for internal probability
+
+    :type normalization_factor: :class:`float`
+
+
+  .. method:: GetInternalEnergy()
+
+    :returns:           Internal Energy if calculated, 0.0 otherwise 
+
+
+  .. method:: GetInternalEnergyPrefactor()
+
+    :returns:           Prefactor used in internal energy calculation
+
+
+  .. method:: GetFrameEnergy()
+
+    Returns previously calculated frame energy, this energy has to be calculated
+    using a :class:`Frame`.
+
+    :returns: Frame energy if calculated, 0.0 otherwise 
+
+
+  .. method:: GetSelfEnergy()
+
+    :returns:           Self energy consisting of internal plus frame energy
+
+
+  .. method:: GetProbability()
+
+    :returns:           probability of this rotamer
+
+
+  .. method:: SetInternalEnergy(energy)
+
+    :param energy:      Internal energy to be set
+
+    :type energy:       :class:`float`
+
+
+  .. method:: SetInternalEnergyPrefactor(prefactor)
+
+    :param energy:      Internal energy prefactor to be set
+
+    :type energy:       :class:`float`
+
+
+  .. method:: SetFrameEnergy(energy)
+
+    :param energy:      Frame energy to be set
+
+    :type energy:       :class:`float`
+
+
+  .. method:: SetProbability(probability)
+
+    :param energy:      Internal probability to be set
+
+    :type energy:       :class:`float`
+
+
+
+.. class:: FRMRotamer
+
+  The FRMRotamer represents a rotamer of the so called flexible rotamer model.
+  The class has no constructor exported to python, the rotamer is expected to
+  be constructed with the convenient functions provided by PROMOD3.
+  The flexible rotamer contains several so called subrotamers. The internal data
+  layout is a list of particles and a list of subrotamer definitions in form
+  of particle indices.
+
+
+  .. method:: __getitem__(index)
+
+    Access particle at specified index
+
+    :param index:       Index of particle of interest
+
+    :type index:        :class:`int`
+
+    :returns:           :class:`Particle` at specified index
+
+    :raises:            :class:`RuntimeError` if index is invalid
+
+
+  .. method:: __len__()
+
+    :returns:           Number of particles the rotamer contains
+
+
+  .. method:: GetNumSubrotamers()
+
+    :returns:           Number of subrotamers
+
+
+  .. method:: GetSubrotamerDefinition(index)
+
+    :param index:       Index of subrotamer
+
+    :type index:        :class:`int`
+
+    :returns:           :class:`list` of particle indices belonging to this
+                        particular subrotamer
+
+    :raises:            :class:`RuntimeError` if index is invalid
+
+
+  .. method:: GetSubrotamerAssociations(index)
+
+    :param index:       Index of particle
+
+    :type index:        :class:`int`
+
+    :returns:           :class:`list` of subrotamer indices this particle is 
+                        associated with
+
+    :raises:            :class:`RuntimeError` if index is invalid
+
+
+  .. method:: ApplyOnResidue(res,[consider_hydrogens=False,new_res_name=""])
+
+    Strips all sidechain atom positions of given residue and reconstructs the
+    full sidechain given the positions of the particles in the rotamer.
+
+    :param res:         Residue to be reconstructed
+    :param consider_hydrogens: Flag, whether polar hydrogens should be added to 
+                               the sidechain
+    :param new_res_name: New name of residue. Nothing happens in case of the 
+                         default value ("")
+
+    :type res:          :class:`ost.mol.ResidueHandle`
+    :type consider_hydrogens: :class:`bool`
+    :type new_res_name: :class:`str`
+
+    :raises:            :class:`RuntimeError` if not all required backbone atoms
+                        are present in **res**
+
+
+  .. method:: GetTransformedCopy(transform)
+
+    Transforms all particle positions including their lone pair and polar 
+    directions.
+
+    :param transform:   Transformation to be applied
+
+    :type transform:    :class:`ost.geom.Transform`
+
+    :returns:           :class:`FRMRotamer` with all particles transformed
+
+
+  .. method:: CalculateInternalEnergy(normalization_factor)
+    
+    Calculates and sets the rotamer internal energy of the form:
+    -prefactor*log(probability/normalization_factor)
+
+    :param normalization_factor: Normalization factor for internal probability
+
+    :type normalization_factor: :class:`float`
+
+
+  .. method:: GetInternalEnergy()
+
+    :returns:           Internal Energy if calculated, 0.0 otherwise 
+
+
+  .. method:: GetInternalEnergyPrefactor()
+
+    :returns:           Prefactor used in internal energy calculation
+
+
+  .. method:: GetFrameEnergy()
+
+    Returns previously calculated frame energy of the full FRMRotamer, this 
+    energy has to be calculated using a :class:`Frame`.
+
+    :returns: Frame energy if calculated, 0.0 otherwise 
+
+
+  .. method:: GetFrameEnergy(index)
+
+    Returns previously calculated frame energy of the subrotamer specified by 
+    **index**, this energy has to be calculated using a :class:`Frame`.
+
+    :param index:       Index of subrotamer you want the frame energy from
+
+    :type index:        :class:`int`
+
+    :returns: Frame energy if calculated, 0.0 otherwise 
+
+    :raises:            :class:`RuntimeError` if index is invalid
+
+
+  .. method:: GetSelfEnergy()
+
+    :returns:           Self energy consisting of internal plus frame energy
+
+
+  .. method:: GetTemperature()
+
+    :returns:           The temperature factor for this rotamer
+
+
+  .. method:: GetProbability()
+
+    :returns:           Probability of this rotamer
+
+
+  .. method:: SetInternalEnergy(energy)
+
+    :param energy:      Internal energy to be set
+
+    :type energy:       :class:`float`
+
+
+  .. method:: SetInternalEnergyPrefactor(prefactor)
+
+    :param energy:      Internal energy prefactor to be set
+
+    :type energy:       :class:`float`
+
+
+  .. method:: SetFrameEnergy(energy)
+
+    :param energy:      Frame energy for full rotamer to be set to be set
+
+    :type energy:       :class:`float`
+
+
+  .. method:: SetFrameEnergy(energy, index)
+
+    :param energy:      Frame energy for single  subrotamer to be set to be set
+    :param index:       Index of subrotamer
+
+    :type energy:       :class:`float`
+    :type index:        :class:
+
+
+  .. method:: SetTemperature(temperature)
+
+    :param temperature: Temperature factor for this rotamer
+
+    :type temperature:  :class:`float`
+
+  .. method:: SetProbability(probability)
+
+    :param energy:      Internal probability to be set
+
+    :type energy:       :class:`float`
+
+
+
+Rotamer Groups
+--------------------------------------------------------------------------------
+
+
+.. class:: RRMRotamerGroup(rotamers)
+
+  The RRMRotamerGroup groups several :class:`RRMRotamer` objects for the same
+  residue position. It can either be constructed by providing a list of
+  :class:`RRMRotamer` objects or by convenience functions provided by PROMOD3.
+
+  :param rotamers: A list of :class:`RRMRotamer` objects
+
+  :type rotamers:       :class:`list`
+
+  :raises:              :class:`RuntimeError` if provided **rotamers** is empty
+
+
+  .. method:: __len__()
+
+    :returns:           Number of rotamers in group
+
+
+  .. method:: __getitem__(index)
+
+    :returns:           :class:`RRMRotamer` at given **index**
+
+    :raises:            :class:`RuntimeError` if **index** is invalid
+
+
+  .. method:: ApplyOneResidue(index,res,[consider_hydrogens=False,new_res_name=""])
+
+    Calls ApplyOnResidue function on rotamer at position **index**
+
+    :param index:       Rotamer index
+    :param res:         Residue to be reconstructed
+    :param consider_hydrogens: Flag, whether polar hydrogens should be added to 
+                               the sidechain
+    :param new_res_name: New name of residue. Nothing happens in case of the 
+                         default value ("")
+
+    :type index:        :class:`int`
+    :type res:          :class:`ost.mol.ResidueHandle`
+    :type consider_hydrogens: :class:`bool`
+    :type new_res_name: :class:`str`
+
+    :raises:            :class:`RuntimeError` if not all required backbone atoms
+                        are present in **res** or when **index** is invalid
+
+
+  .. method:: Merge(other)
+
+    Adds all rotamers in **other** to current :class:`RRMRotamerGroup`
+
+    :param other:       RotamerGroup to be merged in
+
+    :type other:        :class:`RRMRotamerGroup`
+
+
+  .. CalculateInternalEnergies()
+
+    Calculates internal energies of all rotamers in group
+
+  .. ApplySelfEnergyThres([thresh=30])
+
+    Searches rotamer with lowest self energy **l_e** and deletes all
+    rotamers with **self_energy** > **l_e** + **thresh**
+
+
+.. class:: FRMRotamerGroup(rotamers)
+
+  The FRMRotamerGroup groups several :class:`FRMRotamer` objects for the same
+  residue position. It can either be constructed by providing a list of
+  :class:`FRMRotamer` objects or by convenience functions provided by PROMOD3.
+
+  :param rotamers: A list of :class:`FRMRotamer` objects
+
+  :type rotamers:       :class:`list`
+
+  :raises:              :class:`RuntimeError` if provided **rotamers** is empty
+
+
+  .. method:: __len__()
+
+    :returns:           Number of rotamers in group
+
+
+  .. method:: __getitem__(index)
+
+    :returns:           :class:`FRMRotamer` at given **index**
+
+    :raises:            :class:`RuntimeError` if **index** is invalid
+
+
+  .. method:: ApplyOneResidue(index,res,[consider_hydrogens=False,new_res_name=""])
+
+    Calls ApplyOnResidue function on rotamer at position **index**
+
+    :param index:       Rotamer index
+    :param res:         Residue to be reconstructed
+    :param consider_hydrogens: Flag, whether polar hydrogens should be added to 
+                               the sidechain
+    :param new_res_name: New name of residue. Nothing happens in case of the 
+                         default value ("")
+
+    :type index:        :class:`int`
+    :type res:          :class:`ost.mol.ResidueHandle`
+    :type consider_hydrogens: :class:`bool`
+    :type new_res_name: :class:`str`
+
+    :raises:            :class:`RuntimeError` if not all required backbone atoms
+                        are present in **res** or when **index** is invalid
+
+
+  .. method:: Merge(other)
+
+    Adds all rotamers in **other** to current :class:`FRMRotamerGroup`
+
+    :param other:       RotamerGroup to be merged in
+
+    :type other:        :class:`FRMRotamerGroup`
+
+
+  .. method:: CalculateInternalEnergies()
+
+    Calculates internal energies of all rotamers in group
+
+  .. method:: ApplySelfEnergyThres([thresh=30])
+
+    Searches rotamer with lowest self energy **l_e** and deletes all
+    rotamers with **self_energy** > **l_e** + **thresh**
+
+
+
+
+  
+
+    
\ No newline at end of file
diff --git a/doc/html/_sources/sidechain/rotamer_id.txt b/doc/html/_sources/sidechain/rotamer_id.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5cb57818f11ec4cb08dc01a78c7b2a84eb1263ea
--- /dev/null
+++ b/doc/html/_sources/sidechain/rotamer_id.txt
@@ -0,0 +1,82 @@
+RotamerID
+================================================================================
+
+.. currentmodule:: promod3.sidechain
+
+The sidechain module has its own definition of amino acids to satisfy custom 
+requirements for the implemented sidechain construction algorithms. 
+As an example there are histidine in two possible protonation states, 
+that affect the hbond term or different versions of proline/cysteine. 
+
+
+The RotamerID
+--------------------------------------------------------------------------------
+
+* ARG - Arginine
+* ASN - Asparagine
+* ASP - Aspartate
+* GLN - Glutamine
+* GLU - Glutamate
+* LYS - Lysine
+* SER - Serine
+* CYS - Cystein
+* CYH - "free" Cystein
+* CYD - disulfid bonded Cystein
+* MET - Methionine
+* TRP - Tryptophane
+* TYR - Tyrosine
+* THR - Threonine
+* VAL - Valine
+* ILE - Isoleucine
+* LEU - Leucine
+* PRO - Proline
+* CPR - cis-Proline
+* TPR - trans-Proline
+* HIS - Histidine
+* HSD - d-protonated Histidine
+* HSE - e-protonated Histidine
+* PHE - Phenylalanine
+* GLY - Glycine
+* ALA - Alanine
+* XXX - Invalid
+
+  
+How can I get an ID?
+--------------------------------------------------------------------------------
+The RotamerID enum can directly be accessed from Python. Two convenient
+functions exist to get RotamerIDs from the ost.conop.AminoAcid enum
+or from amino acid three letter codes.
+
+.. method:: TLCToRotID(tlc)
+
+  Directly translates the three letter code into a RotamerID. Following
+  exactly the naming convention defined above.  
+
+  :param tlc:           Three letter code of amino acid
+  :type tlc:            :class:`str`
+
+  :returns:             :class:`RotamerID`, XXX if **tlc** cannot be recoginzed.
+
+
+.. method:: AAToRotID(aa)
+
+  Directly translates **aa** into a RotamerID. Note, that it is not possible
+  to generate special IDs this way 
+  (e.g. HSD, HSE or the special prolines/cysteins) since they're simply not
+  defined in :class:`ost.conop.AminoAcid` 
+
+  :param aa:            AA enum of amino acid
+  :type  aa:            :class:`ost.conop.AminoAcid`
+
+  :returns:             :class:`RotamerID`, XXX if **aa** is invalid.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/_sources/sidechain/rotamer_lib.txt b/doc/html/_sources/sidechain/rotamer_lib.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0b1ca5356f552a260f44e73f44c9cde776a4d10f
--- /dev/null
+++ b/doc/html/_sources/sidechain/rotamer_lib.txt
@@ -0,0 +1,331 @@
+Rotamer Library
+================================================================================
+
+.. currentmodule:: promod3.sidechain
+
+
+With angles and bonds being rather rigid, the conformation of an amino acid
+sidechain can completely be described in terms of dihedral angles. Preferred
+combinations of such dihedral angles are a result of steric properties and
+can be gathered in rotamer libraries. Different libraries exist in the field
+and their main difference is, whether the provided sidechain conformations 
+are dependent on their backbone or not. PROMOD3 provides you with a 
+:class:`BBDepRotamerLib` organizing rotamers for the different aminoacids 
+in equidistant phi/psi bins.
+
+
+The Backbone Dependent Rotamer Library
+--------------------------------------------------------------------------------
+
+The PROMOD3 :class:`BBDepRotamerLib` is a container for :class:`RotamerLibEntry` 
+and is optimized for fast writing/loading from/to disk. 
+Once initialized, the library is in a dynamic mode where
+rotamers can be added. No rotamers can be read at this stage. As soon as
+all required rotamers are added, the library can be made static. This is the
+mode you can get the rotamers out of it or dump it to disk.
+
+
+.. class:: BBDepRotamerLib(phi_bins,psi_bins)
+  
+  Backbone dependent rotamer library
+
+  :param phi_bins:      number of bins for phi backbone dihedral
+  :param psi_bins:      number of bins for psi backbone dihedral
+
+  :type phi_bins:       :class:`int`
+  :type psi_bins:       :class:`int`
+
+  .. method:: Save(filename)
+
+    :param filename:    Name of file, the library will be dumped into
+
+    :type filename:     :class:`str`
+
+  .. method:: Load(filename)
+
+    :param filename:    Name of file, the library will be loaded from
+
+    :type filename:     :class:`str`
+
+    :raises:            :class:`RuntimeError` if file doesn't exist
+
+  .. method:: AddRotamer(id, r1, r2, r3, r4, phi_bin, psi_bin, rotamer)
+
+    :param id:          Identity of rotamer to be added
+    :param r1:          Configuration of chi1
+    :param r2:          Configuration of chi2
+    :param r3:          Configuration of chi3
+    :param r4:          Configuration of chi4
+    :param phi_bin:     Phi backbone dihedral description
+    :param psi_bin:     Psi backbone dihedral description
+    :param rotamer:     the rotamer to be added
+
+    :type id:           :class:`RotamerID`
+    :type r1:           :class:`int`
+    :type r2:           :class:`int`
+    :type r3:           :class:`int`
+    :type r4:           :class:`int`
+    :type phi_bin:      :class:`int`
+    :type psi_bin:      :class:`int`
+    :type rotamer:      :class:`RotamerLibEntry`
+
+    :raises:            :class:`RuntimeError` if an invalid backbone angle bin
+                        is given or when the library is already static.
+
+  .. method:: QueryLib(id, phi, psi)
+
+    The returned rotamers are either directly returned in the form as they are 
+    added to the library or can be interpolated.
+    In the first option, *phi* and *psi* simply get transformed to the 
+    according bin using following formalism: bin = int((angle + pi)/bin_size).
+    In case of interpolation, the chi angles and the according standard 
+    deviations of the rotamers get bilinearly interpolated using the 
+    corresponding rotamers with same configuration from the neighbouring bins. 
+    This behaviour can be controlled with the SetInterpolate function.
+    The query function follows following strategies in case of 
+    special *id* requests.
+
+    * if id = HSD (d-protonated HIS) try to find HSD, fallback to HIS in case of failure
+
+    * if id = HSE (e-protonated HIS) try to find HSE, fallback to HIS in case of failure
+
+    * if id = CYH ("free" CYS) try to find CYH, fallback to CYS in case of failure
+
+    * if id = CYD ("disulfid" CYS) try to find CYD, fallback to CYS in case of failure
+
+    * if id = CPR (cis-PRO) try to find CPR, fallback to PRO in case of failure
+
+    * if id = TPR (trans-PRO) try to find TPR, fallback to PRO in case of failure
+
+    :param id:          Identity of rotamer of interest
+    :param phi:         Phi backbone dihedral angle in range [-pi,pi[
+    :param psi:         Psi backbone dihedral angle in range [-pi,pi[
+
+    :type id:           :class:`RotamerID`
+    :type phi:          :class:`float`
+    :type psi:          :class:`float`
+
+    :returns:           :class:`list` of :class:`RotamerLibEntry` of nonzero
+                        probability for given phi/psi pair
+
+    :raises:            :class:`RuntimeError` if no entries for *id* can be 
+                        found
+
+  .. method:: MakeStatic()
+    
+    Once all rotamers are added, the library can be made static to become readable
+    and ready for io. Several things get checked during this process
+
+    * For every phi/psi bin combination of a particular :class:`RotamerID`, 
+      the same number of rotamers must have been added
+
+    * All configuration combinations of the added rotamers in one phi/psi bin
+      of a particular :class:`RotamerID` must be unique
+
+    * The configuration combinations of a particular :class:`RotamerID` must
+      be consistent across all phi/psi bins
+
+    :raises:              :class:`RuntimeError` if one of the points above is
+                          not fulfilled
+
+  .. method:: SetInterpolate(interpolate)
+
+    :param interpolate: Controls behaviour when QueryLib function gets called
+
+    :type interpolate:  :class:`bool`    
+
+
+
+The Library Entry Type   
+--------------------------------------------------------------------------------
+
+The entries for the rotamer libraries provide a basic container for rotamer    
+dihedral angles and their corresponding standard deviations. They can be
+constructed by directly providing the values, but also by some static 
+convenience functions. For analytical purposes they provide some comparison 
+functionalities.
+
+.. class:: RotamerLibEntry()
+
+.. class:: RotamerLibEntry(p, chi1, chi2, chi3, chi4, sig1, sig2, sig3, sig4)   
+
+  :param p:             Probability of rotamer
+  :param chi1:          Chi1 dihedral in range [-pi,pi[
+  :param chi2:          Chi2 dihedral in range [-pi,pi[
+  :param chi3:          Chi3 dihedral in range [-pi,pi[
+  :param chi4:          Chi4 dihedral in range [-pi,pi[
+  :param sig1:          Standard deviation for Chi1 dihedral
+  :param sig2:          Standard deviation for Chi2 dihedral
+  :param sig3:          Standard deviation for Chi3 dihedral
+  :param sig4:          Standard deviation for Chi4 dihedral
+
+  :type p:              :class:`float`
+  :type chi1:           :class:`float`
+  :type chi2:           :class:`float`
+  :type chi3:           :class:`float`
+  :type chi4:           :class:`float`
+  :type sig1:           :class:`float`
+  :type sig2:           :class:`float`
+  :type sig3:           :class:`float`
+  :type sig4:           :class:`float`
+
+  **Attributes:**
+
+  .. attribute:: probability
+
+    probability of rotamer
+
+  .. attribute:: chi1
+
+    Chi1 dihedral in range [-pi,pi[, NaN if not defined
+
+  .. attribute:: chi2
+
+    Chi2 dihedral in range [-pi,pi[, NaN if not defined
+
+  .. attribute:: chi3
+
+    Chi3 dihedral in range [-pi,pi[, NaN if not defined
+
+  .. attribute:: chi4
+
+    Chi4 dihedral in range [-pi,pi[, NaN if not defined
+
+  .. attribute:: sig1
+
+    Standard deviation of Chi1 Dihedral, NaN if not defined
+
+  .. attribute:: sig2
+
+    Standard deviation of Chi2 Dihedral, NaN if not defined
+
+  .. attribute:: sig3
+
+    Standard deviation of Chi3 Dihedral, NaN if not defined
+
+  .. attribute:: sig4
+
+    Standard deviation of Chi4 Dihedral, NaN if not defined
+
+
+  .. staticmethod:: FromResidue(res)
+
+    Creates a :class:`RotamerLibEntry` from the given *res*.
+    The function tries to automatically identify the :class:`RotamerID` based
+    on the residue name. The probability gets set to zero and the standard 
+    deviations to 0. All not required chi angles with their corresponding 
+    standard deviations are NaN.
+
+    :param res:         Source of dihedral angles
+
+    :type res:          :class:`ost.mol.ResidueHandle`
+
+    :returns:           :class:`RotamerLibEntry`
+
+    :raises:            :class:`RuntimeError` if residue name cannot be
+                        translated to :class:`RotamerID` or when not all 
+                        required atoms are present in *res*.
+
+  .. staticmethod:: FromResidue(res, id)
+
+    Creates a :class:`RotamerLibEntry` from the given *res*.
+    The probability gets set to zero and the standard deviations to 0.  
+    All not required chi angles with their corresponding standard deviations 
+    are NaN.
+
+    :param res:         Source of dihedral angles
+    :param id:          The identity of the returned :class:`RotamerLibEntry`
+
+    :type res:          :class:`ost.mol.ResidueHandle`
+    :type id:           :class:`RotamerID`
+
+    :returns:           :class:`RotamerLibEntry`
+
+    :raises:            :class:`RuntimeError` if not all 
+                        required atoms are present in *res*.
+
+  .. method:: IsSimilar(other, thresh)
+
+    Compares two RotamerLibEntries for their similarity in dihedral angles.
+    The function goes from chi1 to chi4 and checks one after the other
+    for similarity. The function doesn't know the identity of the entries
+    and can therefore not specifically treat symmetric/ambiguous rotamers 
+    (TYR,VAL,PHE,ASP,GLU)
+
+    :param other:       The Entry you want to compare with
+    :param thresh:      The max difference between two dihedrals to be 
+                        considered similar
+
+    :type other:        :class:`RotamerLibEntry`
+    :type thresh:       :class:`float`
+
+    :returns:           :class:`bool` Whether the two entries have the same
+                        amount of defined chi angles (not NaN) and whether
+                        they are within the specified threshold.
+
+
+  .. method:: IsSimilar(other, thresh, id)
+
+    Compares two RotamerLibEntries for their similarity in dihedral angles.
+    The function goes from chi1 to chi4 and checks one after the other
+    for similarity. Sidechains with ambigous naming (TYR,VAL,PHE,ASP,GLU) 
+    get treated specifically. E.g. in case of aspartate, the chi2 is checked
+    for its actual value, but also for its flipped state.
+
+    :param other:       The Entry you want to compare with
+    :param thresh:      The max difference between two dihedrals to be 
+                        considered similar
+    :param id:          Identity of the entries to be compared
+
+    :type other:        :class:`RotamerLibEntry`
+    :type thresh:       :class:`float`
+    :type id:           :class:`RotamerID`
+
+    :returns:           :class:`bool` Whether the two entries have the same
+                        amount of defined chi angles (not NaN) and whether
+                        they are within the specified threshold.
+
+  .. method:: SimilarDihedral(other, dihedral_idx, thresh)
+
+    Compares a specific dihedral angle. 
+    The function doesn't know the identity of the entries and can therefore 
+    not specifically treat symmetric/ambiguous rotamers 
+    (TYR,VAL,PHE,ASP,GLU)
+
+    :param other:       The Entry you want to compare with
+    :param dihedral_idx: Index of the dihedral to be checked
+                         (0 for chi1, 3 for chi4)
+    :param thresh:      The max difference between two dihedrals to be 
+                        considered similar
+
+    :type other:        :class:`RotamerLibEntry`
+    :type dihedral_idx: :class:`int`
+    :type thresh:       :class:`float`
+
+    :returns:           :class:`bool` Whether both dihedrals are defined 
+                        (not NaN) and within the specified threshold
+
+
+  .. method:: SimilarDihedral(other, dihedral_idx, thresh, id)
+
+    Compares a specific dihedral angle.
+    Sidechains with ambigous naming (TYR,VAL,PHE,ASP,GLU) 
+    get treated specifically. E.g. in case of aspartate, the chi2 is checked
+    for its actual value, but also for its flipped state.
+
+    :param other:       The Entry you want to compare with
+    :param dihedral_idx: Index of the dihedral to be checked 
+                         (0 for chi1, 3 for chi4)
+    :param thresh:      The max difference between two dihedrals to be 
+                        considered similar
+    :param id:          Identity of the entries to be compared
+
+    :type other:        :class:`RotamerLibEntry`
+    :type dihedral_idx: :class:`int`
+    :type thresh:       :class:`float`
+    :type id:           :class:`RotamerID`
+
+    :returns:           :class:`bool` Whether both dihedrals are defined 
+                        (not NaN) and within the specified threshold
+
+
diff --git a/doc/html/_sources/sidechain/sidechain_settings.txt b/doc/html/_sources/sidechain/sidechain_settings.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5fe161afdbe7fa04d99a9c7f41d5e8d278042036
--- /dev/null
+++ b/doc/html/_sources/sidechain/sidechain_settings.txt
@@ -0,0 +1,212 @@
+Rotamer Settings
+================================================================================
+
+.. currentmodule:: promod3.sidechain
+
+The rotamer settings control the sidechain modelling algorithms at different
+stages. Most of the parameters that can be set are related to the flexible
+rotamer model (temperature factor and delta factors to control the
+variability of the subrotamers in the flexible rotamer model) 
+or the internal energy prefactor used for the different amino
+acids. Other parameters include the radius influencing the pseudo Lennard
+Jones term for the different atom types and the max interaction radius.
+The max interaction radius is more a technical thing and is used by a 
+collision detection algorithm to define the collision distance, i.e.
+two particles with max radii a,b collide/interact if the distance between 
+them is smaller than a+b. The last three parameters control the buildup of the
+rotamers. It is possible to deactivate the hbond term, resulting in
+no hydrogens being constructed. The sampling of polar hydrogens can also
+be controlled resulting in several rotamers per rotamer lib entry for
+Ser,Thr and Tyr when using the convenient functions for constructing full
+rotamer groups of them (see :ref:`here <rotamer_group_construction_label>`).
+Constructing the rotamer groups can further be controlled by assigning a max
+summed probability resulting in less very unlikely rotamers added to the
+rotamer group(see :ref:`here <rotamer_group_construction_label>`).
+
+.. class:: RotamerSettings
+  
+  .. attribute:: FRM_T_ARG default: 1.23
+
+  .. attribute:: FRM_T_ASN default: 1.41
+
+  .. attribute:: FRM_T_ASP default: 1.48
+
+  .. attribute:: FRM_T_GLN default: 1.32
+
+  .. attribute:: FRM_T_GLU default: 0.94
+
+  .. attribute:: FRM_T_LYS default: 1.27
+
+  .. attribute:: FRM_T_SER default: 3.53
+
+  .. attribute:: FRM_T_CYS default: 1.69
+
+  .. attribute:: FRM_T_MET default: 1.77
+
+  .. attribute:: FRM_T_TRP default: 0.99
+
+  .. attribute:: FRM_T_TYR default: 1.96
+
+  .. attribute:: FRM_T_THR default: 1.11
+
+  .. attribute:: FRM_T_VAL default: 2.20
+
+  .. attribute:: FRM_T_ILE default: 2.03
+
+  .. attribute:: FRM_T_LEU default: 2.55
+
+  .. attribute:: FRM_T_PRO default: 2.62
+
+  .. attribute:: FRM_T_HIS default: 1.35
+
+  .. attribute:: FRM_T_PHE default: 1.07
+
+  .. attribute:: FRM_delta1_ARG default: 0.87
+
+  .. attribute:: FRM_delta2_ARG default: 1.62
+
+  .. attribute:: FRM_delta3_ARG default: 1.67
+
+  .. attribute:: FRM_delta4_ARG default: 0.78
+
+  .. attribute:: FRM_delta1_ASN default: 0.62
+
+  .. attribute:: FRM_delta2_ASN default: 1.93
+
+  .. attribute:: FRM_delta1_ASP default: 1.59
+
+  .. attribute:: FRM_delta2_ASP default: 0.63
+
+  .. attribute:: FRM_delta1_GLN default: 1.55
+
+  .. attribute:: FRM_delta2_GLN default: 0.68
+
+  .. attribute:: FRM_delta3_GLN default: 1.88
+
+  .. attribute:: FRM_delta1_GLU default: 0.82
+
+  .. attribute:: FRM_delta2_GLU default: 1.57
+
+  .. attribute:: FRM_delta3_GLU default: 0.78
+
+  .. attribute:: FRM_delta1_LYS default: 1.62
+
+  .. attribute:: FRM_delta2_LYS default: 0.99
+
+  .. attribute:: FRM_delta3_LYS default: 0.96
+
+  .. attribute:: FRM_delta4_LYS default: 1.48
+
+  .. attribute:: FRM_delta1_SER default: 0.65
+
+  .. attribute:: FRM_delta2_SER default: 2.98
+
+  .. attribute:: FRM_delta1_CYS default: 1.69
+
+  .. attribute:: FRM_delta1_MET default: 0.97
+
+  .. attribute:: FRM_delta2_MET default: 1.54
+
+  .. attribute:: FRM_delta3_MET default: 1.21
+
+  .. attribute:: FRM_delta1_TRP default: 1.28
+
+  .. attribute:: FRM_delta2_TRP default: 1.48
+
+  .. attribute:: FRM_delta1_TYR default: 1.48
+
+  .. attribute:: FRM_delta2_TYR default: 0.73
+
+  .. attribute:: FRM_delta3_TYR default: 0.96
+
+  .. attribute:: FRM_delta1_THR default: 0.88
+
+  .. attribute:: FRM_delta2_THR default: 0.88
+
+  .. attribute:: FRM_delta1_VAL default: 2.08
+
+  .. attribute:: FRM_delta1_ILE default: 1.23
+
+  .. attribute:: FRM_delta2_ILE default: 0.98
+
+  .. attribute:: FRM_delta1_LEU default: 1.15
+
+  .. attribute:: FRM_delta2_LEU default: 1.48
+
+  .. attribute:: FRM_delta1_PRO default: 0.78
+
+  .. attribute:: FRM_delta2_PRO default: 1.27
+
+  .. attribute:: FRM_delta1_HIS default: 1.84
+
+  .. attribute:: FRM_delta2_HIS default: 0.85
+
+  .. attribute:: FRM_delta1_PHE default: 1.45
+
+  .. attribute:: FRM_delta2_PHE default: 1.35
+
+  .. attribute:: internal_e_prefactor_ARG default: 2.27
+
+  .. attribute:: internal_e_prefactor_ASN default: 1.80
+
+  .. attribute:: internal_e_prefactor_ASP default: 2.44
+
+  .. attribute:: internal_e_prefactor_GLN default: 1.61
+
+  .. attribute:: internal_e_prefactor_GLU default: 1.85
+
+  .. attribute:: internal_e_prefactor_LYS default: 2.13
+
+  .. attribute:: internal_e_prefactor_SER default: 2.78
+
+  .. attribute:: internal_e_prefactor_CYS default: 4.07
+
+  .. attribute:: internal_e_prefactor_MET default: 1.95
+
+  .. attribute:: internal_e_prefactor_TRP default: 3.24
+
+  .. attribute:: internal_e_prefactor_TYR default: 2.00
+
+  .. attribute:: internal_e_prefactor_THR default: 2.96
+
+  .. attribute:: internal_e_prefactor_VAL default: 1.62
+
+  .. attribute:: internal_e_prefactor_ILE default: 2.18
+
+  .. attribute:: internal_e_prefactor_LEU default: 2.25
+
+  .. attribute:: internal_e_prefactor_PRO default: 0.76
+
+  .. attribute:: internal_e_prefactor_HIS default: 2.01
+
+  .. attribute:: internal_e_prefactor_PHE default: 1.71
+
+  .. attribute:: probability_cutoff default: 0.98
+
+  .. attribute:: consider_hbonds default: True
+
+  .. attribute:: sample_polar_hydrogens default: True
+
+  .. attribute:: H_radius default: 0.49
+
+  .. attribute:: C_radius default: 1.68
+
+  .. attribute:: S_radius default: 1.71
+
+  .. attribute:: N_radius default: 1.28
+
+  .. attribute:: O_radius default: 1.29
+
+  .. attribute:: H_max_radius default: 1.0300
+  
+  .. attribute:: C_max_radius default: 2.2400
+  
+  .. attribute:: S_max_radius default: 2.2800
+  
+  .. attribute:: N_max_radius default: 1.7067
+  
+  .. attribute:: O_max_radius default: 1.7200
+  
+
+
+
diff --git a/doc/html/actions/index_dev.html b/doc/html/actions/index_dev.html
index fa4141b36ec709e7325354fdf1640c94d3a52c18..e46d68283dd5eb2831485e88ca7cee77e3619dda 100644
--- a/doc/html/actions/index_dev.html
+++ b/doc/html/actions/index_dev.html
@@ -26,7 +26,7 @@
     <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
     <link rel="up" title="Documentation For Developes" href="../developers.html" />
     <link rel="next" title="Building ProMod3" href="../buildsystem.html" />
-    <link rel="prev" title="rawmodel - Coordinate Modeling" href="../rawmodel/index.html" />
+    <link rel="prev" title="Disulfid Bond Evaluation" href="../sidechain/disulfid.html" />
    
   
   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
@@ -46,7 +46,7 @@
           <a href="../buildsystem.html" title="Building ProMod3"
              accesskey="N">next</a> |</li>
         <li class="right" >
-          <a href="../rawmodel/index.html" title="rawmodel - Coordinate Modeling"
+          <a href="../sidechain/disulfid.html" title="Disulfid Bond Evaluation"
              accesskey="P">previous</a> |</li>
         <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
           <li class="nav-item nav-item-1"><a href="../developers.html" accesskey="U">Documentation For Developes</a> &raquo;</li> 
@@ -393,8 +393,8 @@ file (also complains if a directory is found instead).</p>
 </ul>
 
   <h4>Previous topic</h4>
-  <p class="topless"><a href="../rawmodel/index.html"
-                        title="previous chapter"><code class="docutils literal"><span class="pre">rawmodel</span></code> - Coordinate Modeling</a></p>
+  <p class="topless"><a href="../sidechain/disulfid.html"
+                        title="previous chapter">Disulfid Bond Evaluation</a></p>
   <h4>Next topic</h4>
   <p class="topless"><a href="../buildsystem.html"
                         title="next chapter">Building ProMod3</a></p>
diff --git a/doc/html/contributing.html b/doc/html/contributing.html
index 41ffd2b8963a5e1124901adfcb44626433698d5f..9fe77cccca1e1ff200178a70836dee1ce944d163 100644
--- a/doc/html/contributing.html
+++ b/doc/html/contributing.html
@@ -524,7 +524,8 @@ top level <code class="file docutils literal"><span class="pre">CMakeLists.txt</
 116
 117
 118
-119</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#-------------------------------------------------------------------------------</span>
+119
+120</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#-------------------------------------------------------------------------------</span>
 <span class="c"># Author: Bienchen</span>
 <span class="c">#-------------------------------------------------------------------------------</span>
 <span class="c"># Options to CMake:</span>
@@ -626,9 +627,9 @@ top level <code class="file docutils literal"><span class="pre">CMakeLists.txt</
 <span class="c">## e.g. add_subdirectory(src), subdirs have their own CMakeLists.txt</span>
 <span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">config</span><span class="p">)</span>
 <span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">core</span><span class="p">)</span>
-<span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">rawmodel</span><span class="p">)</span>
-<span class="hll"><span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">sidechains</span><span class="p">)</span>
-</span><span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">loop</span><span class="p">)</span>
+<span class="hll"><span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">rawmodel</span><span class="p">)</span>
+</span><span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">sidechains</span><span class="p">)</span>
+<span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">loop</span><span class="p">)</span>
 <span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">scripts</span><span class="p">)</span>
 <span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">actions</span><span class="p">)</span>
 <span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">extras</span><span class="p">)</span>
diff --git a/doc/html/core/pm3argparse.html b/doc/html/core/pm3argparse.html
index fab963bfc644a5ff418865940df66bbcf9153b8d..5315053e80e4c5d87db2adc5d893c451b277feb6 100644
--- a/doc/html/core/pm3argparse.html
+++ b/doc/html/core/pm3argparse.html
@@ -72,6 +72,19 @@ There <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentP
 simplification. It provides a set of standard arguments you just need to
 activate for your action plus it comes with some verification functionality for
 input.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="sd">&#39;&#39;&#39;\</span>
+<span class="sd">Place the description of your script right in the file and import</span>
+<span class="sd">it via &#39;__doc__&#39; as description to the parser (&#39;-h&#39;, &#39;--help&#39;).\</span>
+<span class="sd">&#39;&#39;&#39;</span>
+
+<span class="kn">from</span> <span class="nn">promod3.core</span> <span class="kn">import</span> <span class="n">pm3argparse</span>
+
+<span class="n">parser</span> <span class="o">=</span> <span class="n">pm3argparse</span><span class="o">.</span><span class="n">PM3ArgumentParser</span><span class="p">(</span><span class="n">__doc__</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span class="n">AddAlignment</span><span class="p">()</span>
+<span class="n">parser</span><span class="o">.</span><span class="n">AssembleParser</span><span class="p">()</span>
+<span class="n">opts</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parse</span><span class="p">()</span>
+</pre></div>
+</div>
 </div>
 <div class="section" id="argument-parser">
 <h2>Argument Parser<a class="headerlink" href="#argument-parser" title="Permalink to this headline">¶</a></h2>
@@ -133,39 +146,94 @@ first 3 characters of the file name of the script. If
 <dl class="method">
 <dt id="promod3.core.pm3argparse.PM3ArgumentParser.AddAlignment">
 <code class="descname">AddAlignment</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/promod3/core/pm3argparse.html#PM3ArgumentParser.AddAlignment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#promod3.core.pm3argparse.PM3ArgumentParser.AddAlignment" title="Permalink to this definition">¶</a></dt>
-<dd><p>Add everything needed to load alignments to the argument parser. Creates
+<dd><p>Commandline options for alignments.</p>
+<p>Add everything needed to load alignments to the argument parser. Creates
 several options/ arguments and adds some checks for post processing.
 This method only adds a flag to the parser to add alignment options on
 <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser" title="promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser"><code class="xref py py-meth docutils literal"><span class="pre">AssembleParser()</span></code></a>. Depending on which options you activate, things
 need to be added in a different order or have other constraints.</p>
 <p>Options/ arguments added:</p>
 <ul class="simple">
-<li><code class="docutils literal"><span class="pre">--fasta</span> <span class="pre">trg:&lt;NAME&gt;</span> <span class="pre">&lt;FILE&gt;</span></code> - describing a target-template alignment
-with <code class="docutils literal"><span class="pre">trg:</span></code> marking the target sequence inside <code class="file docutils literal"><span class="pre">&lt;FILE&gt;</span></code></li>
+<li><code class="docutils literal"><span class="pre">-f/</span> <span class="pre">--fasta</span> <span class="pre">trg:&lt;NAME&gt;</span> <span class="pre">&lt;FILE&gt;</span></code> - describing a target-template
+alignment with <code class="docutils literal"><span class="pre">trg:</span></code> marking the target sequence inside
+<code class="file docutils literal"><span class="pre">&lt;FILE&gt;</span></code>. The order of arguments is arbitrary which means file
+names starting with <code class="file docutils literal"><span class="pre">trg:</span></code> will not work.</li>
+<li><code class="docutils literal"><span class="pre">-j/</span> <span class="pre">--json</span> <span class="pre">&lt;OBJECT&gt;|&lt;FILE&gt;</span></code> - target-template alignments in JSON
+format. Either an object string or a file name. The string variant is
+limited to how many characters your command line can gobble.</li>
 </ul>
 <p>Exit codes related to alignment input:</p>
-<ul class="simple">
-<li>11 - no prefix <code class="docutils literal"><span class="pre">trg:</span></code> found for an argument to &#8216;&#8211;fasta&#8217;</li>
-<li>12 - a given alignment file does not exist</li>
-<li>13 - never raised (parameter for checking gzip files)</li>
-<li>14 - empty target name found (<code class="docutils literal"><span class="pre">trg:</span></code>)</li>
-<li>15 - found an empty alignment file</li>
-<li>16 - alignment with more than 2 sequences found</li>
-<li>17 - target sequence name not found in alignment</li>
-<li>18 - sequences in the alignment have different length</li>
+<ul>
+<li><p class="first">11 - no prefix <code class="docutils literal"><span class="pre">trg:</span></code> found for an argument to <code class="docutils literal"><span class="pre">--fasta</span></code></p>
+</li>
+<li><p class="first">12 - a given alignment file does not exist</p>
+</li>
+<li><p class="first">13 - never raised (parameter for checking gzip files)</p>
+</li>
+<li><p class="first">14 - empty target name found (<code class="docutils literal"><span class="pre">trg:</span></code>)</p>
+</li>
+<li><p class="first">15 - found an empty alignment file</p>
+</li>
+<li><p class="first">16 - alignment with more than 2 sequences found</p>
+</li>
+<li><p class="first">17 - target sequence name not found in alignment</p>
+</li>
+<li><p class="first">18 - sequences in the alignment have different length</p>
+</li>
+<li><p class="first">19 - problem with a JSON formatted file handed over to <code class="docutils literal"><span class="pre">--json</span></code></p>
+</li>
+<li><p class="first">20 - JSON file could not be decoded into a JSON object</p>
+</li>
+<li><p class="first">21 - JSON object has no &#8216;alignmentlist&#8217; key</p>
+</li>
+<li><p class="first">22 - JSON object has no &#8216;target&#8217;/ &#8216;template&#8217; in the &#8216;alignmentlist&#8217;</p>
+</li>
+<li><p class="first">23 - JSON string could not be decoded</p>
+</li>
+<li><p class="first">24 - JSON object &#8216;alignmentlist&#8217; does not point to a list</p>
+</li>
+<li><p class="first">25 - JSON object &#8216;alignmentlist&#8217; member is not a dictionary</p>
+</li>
+<li><dl class="first docutils">
+<dt>26 - JSON object &#8216;alignmentlist&#8217; &#8216;target&#8217;/ &#8216;template&#8217; does not point</dt>
+<dd><p class="first last">to a dictionary</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>27 - JSON  object &#8216;alignmentlist&#8217; &#8216;target&#8217;/ &#8216;template&#8217; does not have</dt>
+<dd><p class="first last">a needed key</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>28 - JSON  object &#8216;alignmentlist&#8217; &#8216;target&#8217;/ &#8216;template&#8217; has a value of</dt>
+<dd><p class="first last">wrong type</p>
+</dd>
+</dl>
+</li>
 </ul>
 <p>Attributes added to the namespace returned by
 <a class="reference internal" href="#promod3.core.pm3argparse.PM3ArgumentParser.Parse" title="promod3.core.pm3argparse.PM3ArgumentParser.Parse"><code class="xref py py-meth docutils literal"><span class="pre">Parse()</span></code></a>:</p>
 <ul>
 <li><dl class="first docutils">
-<dt><code class="xref py py-attr docutils literal"><span class="pre">fasta</span></code> - filled with the input of the &#8216;&#8211;fasta&#8217; argument, a</dt>
+<dt><code class="xref py py-attr docutils literal"><span class="pre">fasta</span></code> - filled with the input of the <code class="docutils literal"><span class="pre">--fasta</span></code> option, a</dt>
 <dd><p class="first last"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> with multiple <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> objects</p>
 </dd>
 </dl>
 </li>
 <li><dl class="first docutils">
+<dt><code class="xref py py-attr docutils literal"><span class="pre">json</span></code> - argument of the <code class="docutils literal"><span class="pre">--json</span></code> option, <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>. May</dt>
+<dd><p class="first last">be a filename of a JSON object string.</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
 <dt><code class="xref py py-attr docutils literal"><span class="pre">alignments</span></code> - <code class="xref py py-class docutils literal"><span class="pre">ost.AlignmentList</span></code>, same order as</dt>
-<dd><p class="first last"><code class="xref py py-attr docutils literal"><span class="pre">fasta</span></code></p>
+<dd><p class="first last"><code class="xref py py-attr docutils literal"><span class="pre">fasta</span></code>, likely to <strong>not</strong> follow the order
+of JSON input; first sequence of the alignment is
+the target sequence, if in doubt, check for
+sequence roles <code class="docutils literal"><span class="pre">TARGET</span></code> or <code class="docutils literal"><span class="pre">TEMPLATE</span></code></p>
 </dd>
 </dl>
 </li>
@@ -199,7 +267,7 @@ and with the right constraints.</p>
 <tbody valign="top">
 <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>args</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; The argument string. As default <a class="reference external" href="https://docs.python.org/2.7/library/sys.html#sys.argv"><code class="xref py py-attr docutils literal"><span class="pre">sys.argv</span></code></a> is used.</td>
 </tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">promod3.cor.pm3argparse.PM3OptionsNamespace</span></code>.</td>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">promod3.core.pm3argparse.PM3OptionsNamespace</span></code>.</td>
 </tr>
 </tbody>
 </table>
diff --git a/doc/html/developers.html b/doc/html/developers.html
index bffc7cd96b0898f4af66076ee2f949ee1b7d857f..fda5a23f13e8615656491dede2fe5302ea58a755 100644
--- a/doc/html/developers.html
+++ b/doc/html/developers.html
@@ -71,6 +71,27 @@
 <li class="toctree-l2"><a class="reference internal" href="rawmodel/index.html#raw-coordinate-modeling-api">Raw Coordinate Modeling API</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="loop/index.html"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="loop/backbone.html">Representing Loops</a></li>
+<li class="toctree-l2"><a class="reference internal" href="loop/torsion_sampler.html">Have a closer look at backbone dihedral angles</a></li>
+<li class="toctree-l2"><a class="reference internal" href="loop/structure_db.html">A dump for structural data</a></li>
+<li class="toctree-l2"><a class="reference internal" href="loop/loop_closing.html">Closing Loops - adapt them to the environment</a></li>
+<li class="toctree-l2"><a class="reference internal" href="loop/backbone_loop_score.html">Loop Scoring</a></li>
+<li class="toctree-l2"><a class="reference internal" href="loop/monte_carlo.html">Generating Loops DeNovo</a></li>
+<li class="toctree-l2"><a class="reference internal" href="loop/loop_candidate.html">Handle several loop candidates at once</a></li>
+<li class="toctree-l2"><a class="reference internal" href="loop/load_loop_objects.html">Loading Precomputed Loop Objects</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="sidechain/index.html"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="sidechain/rotamer_id.html">RotamerID</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sidechain/rotamer.html">Rotamers</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sidechain/frame.html">Frame</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sidechain/rotamer_lib.html">Rotamer Library</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sidechain/graph.html">Graph</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sidechain/sidechain_settings.html">The Settings - Control Things...</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sidechain/disulfid.html">Disulfid Bond Evaluation</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="actions/index_dev.html"><code class="docutils literal"><span class="pre">test_actions.ActionTestCase</span></code> - Testing Actions</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="actions/index_dev.html#creating-an-action-unit-test-script">Creating an Action Unit Test Script</a></li>
 <li class="toctree-l2"><a class="reference internal" href="actions/index_dev.html#unit-test-actions-api">Unit Test Actions API</a></li>
diff --git a/doc/html/genindex.html b/doc/html/genindex.html
index d53636a956ff9a11027dfb087325003083d64b85..4b1f61a0e32e1081fbf280bbf4b469ce3dfc0543 100644
--- a/doc/html/genindex.html
+++ b/doc/html/genindex.html
@@ -57,29 +57,101 @@
  | <a href="#A"><strong>A</strong></a>
  | <a href="#B"><strong>B</strong></a>
  | <a href="#C"><strong>C</strong></a>
+ | <a href="#D"><strong>D</strong></a>
+ | <a href="#E"><strong>E</strong></a>
  | <a href="#F"><strong>F</strong></a>
  | <a href="#G"><strong>G</strong></a>
+ | <a href="#H"><strong>H</strong></a>
+ | <a href="#I"><strong>I</strong></a>
+ | <a href="#K"><strong>K</strong></a>
+ | <a href="#L"><strong>L</strong></a>
  | <a href="#M"><strong>M</strong></a>
+ | <a href="#N"><strong>N</strong></a>
+ | <a href="#O"><strong>O</strong></a>
  | <a href="#P"><strong>P</strong></a>
+ | <a href="#Q"><strong>Q</strong></a>
  | <a href="#R"><strong>R</strong></a>
  | <a href="#S"><strong>S</strong></a>
  | <a href="#T"><strong>T</strong></a>
+ | <a href="#U"><strong>U</strong></a>
  
 </div>
 <h2 id="_">_</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
+  <dt><a href="loop/structure_db.html#promod3.loop.Fragger.__getitem__">__getitem__() (promod3.loop.Fragger method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.__getitem__">(promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.__getitem__">(promod3.sidechain.FRMRotamerGroup method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/frame.html#promod3.sidechain.FrameResidue.__getitem__">(promod3.sidechain.FrameResidue method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.__getitem__">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.__getitem__">(promod3.sidechain.RRMRotamerGroup method)</a>
+  </dt>
+
+      </dl></dd>
+      
   <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.__init__">__init__() (promod3.core.pm3argparse.PM3ArgumentParser method)</a>
   </dt>
 
   </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.Fragger.__len__">__len__() (promod3.loop.Fragger method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.__len__">(promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.__len__">(promod3.sidechain.FRMRotamerGroup method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/frame.html#promod3.sidechain.FrameResidue.__len__">(promod3.sidechain.FrameResidue method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.__len__">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.__len__">(promod3.sidechain.RRMRotamerGroup method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
 </tr></table>
 
 <h2 id="A">A</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone.aa">aa (promod3.loop.Backbone attribute)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_id.html#promod3.sidechain.AAToRotID">AAToRotID() (in module promod3.sidechain)</a>
+  </dt>
+
+      
   <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.action">action (promod3.core.pm3argparse.PM3ArgumentParser attribute)</a>
   </dt>
 
@@ -88,6 +160,10 @@
   </dt>
 
       
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.Add">Add() (promod3.loop.LoopCandidates method)</a>, <a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.Add">[1]</a>
+  </dt>
+
+      
   <dt>
     add_doc_dependency
   </dt>
@@ -98,8 +174,6 @@
   </dt>
 
       </dl></dd>
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
   <dt>
     add_doc_source
@@ -116,220 +190,1456 @@
   </dt>
 
       
-  <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser">AssembleParser() (promod3.core.pm3argparse.PM3ArgumentParser method)</a>
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.AddCoordinates">AddCoordinates() (promod3.loop.StructureDB method)</a>
   </dt>
 
-  </dl></td>
-</tr></table>
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FragDB.AddFragments">AddFragments() (promod3.loop.FragDB method)</a>
+  </dt>
 
-<h2 id="B">B</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="rawmodel/index.html#promod3.rawmodel.BuildRawModel">BuildRawModel() (in module promod3.rawmodel)</a>
+  <dt><a href="sidechain/frame.html#promod3.sidechain.Frame.AddFrameEnergy">AddFrameEnergy() (promod3.sidechain.Frame method)</a>, <a href="sidechain/frame.html#promod3.sidechain.Frame.AddFrameEnergy">[1]</a>
   </dt>
 
   </dl></td>
-</tr></table>
-
-<h2 id="C">C</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt>
-    command
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.AddLonePair">AddLonePair() (promod3.sidechain.Particle method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.AddRotamer">AddRotamer() (promod3.sidechain.BBDepRotamerLib method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.append">append() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.ApplyCCD">ApplyCCD() (promod3.loop.LoopCandidates method)</a>, <a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.ApplyCCD">[1]</a>, <a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.ApplyCCD">[2]</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.ApplyKIC">ApplyKIC() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.ApplyOneResidue">ApplyOneResidue() (promod3.sidechain.FRMRotamerGroup method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="cmake/index.html#command:add_doc_dependency"><strong>add_doc_dependency</strong></a>
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.ApplyOneResidue">(promod3.sidechain.RRMRotamerGroup method)</a>
   </dt>
 
-        
-  <dt><a href="cmake/index.html#index-0-command:add_doc_source">add_doc_source</a>, <a href="cmake/index.html#index-1-command:add_doc_source">[1]</a>, <a href="cmake/index.html#command:add_doc_source"><strong>[2]</strong></a>
+      </dl></dd>
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.ApplyOnResidue">ApplyOnResidue() (promod3.sidechain.FRMRotamer method)</a>
   </dt>
 
+      <dd><dl>
         
-  <dt><a href="contributing.html#index-0-command:pm_action">pm_action</a>, <a href="cmake/index.html#command:pm_action"><strong>[1]</strong></a>
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.ApplyOnResidue">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.ApplySelfEnergyThres">ApplySelfEnergyThres() (promod3.sidechain.FRMRotamerGroup method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone.ApplyTransform">ApplyTransform() (promod3.loop.Backbone method)</a>
   </dt>
 
+      <dd><dl>
         
-  <dt><a href="cmake/index.html#index-0-command:promod3_unittest">promod3_unittest</a>, <a href="cmake/index.html#index-1-command:promod3_unittest">[1]</a>, <a href="cmake/index.html#command:promod3_unittest"><strong>[2]</strong></a>
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.ApplyTransform">(promod3.loop.BackboneList method)</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.ApplyTransform">[1]</a>
   </dt>
 
       </dl></dd>
+      
+  <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.AssembleParser">AssembleParser() (promod3.core.pm3argparse.PM3ArgumentParser method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.AttachScorer">AttachScorer() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
   </dl></td>
 </tr></table>
 
-<h2 id="F">F</h2>
+<h2 id="B">B</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="core/helper.html#promod3.core.helper.FileExists">FileExists() (in module promod3.core.helper)</a>
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone">Backbone (class in promod3.loop)</a>
   </dt>
 
       
-  <dt><a href="core/helper.html#promod3.core.helper.FileExtension">FileExtension() (in module promod3.core.helper)</a>
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone.Backbone">Backbone() (promod3.loop.Backbone method)</a>, <a href="loop/backbone.html#promod3.loop.Backbone.Backbone">[1]</a>, <a href="loop/backbone.html#promod3.loop.Backbone.Backbone">[2]</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList">BackboneList (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.BackboneList">BackboneList() (promod3.loop.BackboneList method)</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.BackboneList">[1]</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.BackboneList">[2]</a>, <a href="loop/backbone.html#promod3.loop.BackboneList.BackboneList">[3]</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer">BackboneLoopScorer (class in promod3.loop)</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="core/helper.html#promod3.core.helper.FileGzip">FileGzip() (in module promod3.core.helper)</a>
+  <dt><a href="loop/loop_closing.html#promod3.loop.BackboneRelaxer">BackboneRelaxer (class in promod3.loop)</a>
   </dt>
 
-  </dl></td>
-</tr></table>
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.bb_list">bb_list (promod3.loop.LoopCandidate attribute)</a>
+  </dt>
 
-<h2 id="G">G</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="rawmodel/index.html#promod3.rawmodel.RawModelingResult.gaps">gaps (promod3.rawmodel.RawModelingResult attribute)</a>
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib">BBDepRotamerLib (class in promod3.sidechain)</a>
+  </dt>
+
+      
+  <dt><a href="rawmodel/index.html#promod3.rawmodel.BuildRawModel">BuildRawModel() (in module promod3.rawmodel)</a>
   </dt>
 
   </dl></td>
 </tr></table>
 
-<h2 id="M">M</h2>
+<h2 id="C">C</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="buildsystem.html#index-1">make check</a>
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone.c_coord">c_coord (promod3.loop.Backbone attribute)</a>
   </dt>
 
       
-  <dt><a href="buildsystem.html#index-4">make doc</a>
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone.ca_coord">ca_coord (promod3.loop.Backbone attribute)</a>
   </dt>
 
       
-  <dt><a href="buildsystem.html#index-5">make help</a>
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.CalculateBetaScores">CalculateBetaScores() (promod3.loop.LoopCandidates method)</a>
   </dt>
 
       
-  <dt><a href="buildsystem.html#index-2">make html</a>
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.CalculateCBetaScore">CalculateCBetaScore() (promod3.loop.BackboneLoopScorer method)</a>
   </dt>
 
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="buildsystem.html#index-3">make man</a>
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.CalculateCBPackingScore">CalculateCBPackingScore() (promod3.loop.BackboneLoopScorer method)</a>
   </dt>
 
       
-  <dt><a href="buildsystem.html#index-0">Make targets</a>
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.CalculateClashScore">CalculateClashScore() (promod3.loop.BackboneLoopScorer method)</a>
   </dt>
 
       
-  <dt><a href="rawmodel/index.html#promod3.rawmodel.RawModelingResult.model">model (promod3.rawmodel.RawModelingResult attribute)</a>
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.CalculateClasScores">CalculateClasScores() (promod3.loop.LoopCandidates method)</a>
   </dt>
 
       
-  <dt><a href="core/helper.html#promod3.core.helper.MsgErrorAndExit">MsgErrorAndExit() (in module promod3.core.helper)</a>
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.CalculateDSSPHBondScore">CalculateDSSPHBondScore() (promod3.loop.BackboneLoopScorer method)</a>
   </dt>
 
-  </dl></td>
-</tr></table>
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.CalculateDSSPHBondScores">CalculateDSSPHBondScores() (promod3.loop.LoopCandidates method)</a>
+  </dt>
 
-<h2 id="P">P</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.Parse">Parse() (promod3.core.pm3argparse.PM3ArgumentParser method)</a>
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.CalculateHBondcores">CalculateHBondcores() (promod3.loop.LoopCandidates method)</a>
   </dt>
 
       
-  <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser">PM3ArgumentParser (class in promod3.core.pm3argparse)</a>
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.CalculateHBondScore">CalculateHBondScore() (promod3.loop.BackboneLoopScorer method)</a>
   </dt>
 
       
-  <dt>
-    pm_action
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.CalculateInternalEnergies">CalculateInternalEnergies() (promod3.sidechain.FRMRotamerGroup method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.CalculateInternalEnergy">CalculateInternalEnergy() (promod3.sidechain.FRMRotamer method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="contributing.html#index-0-command:pm_action">command</a>, <a href="cmake/index.html#command:pm_action"><strong>[1]</strong></a>
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.CalculateInternalEnergy">(promod3.sidechain.RRMRotamer method)</a>
   </dt>
 
       </dl></dd>
       
-  <dt><a href="actions/index_dev.html#test_actions.ActionTestCase.pm_action">pm_action (test_actions.ActionTestCase attribute)</a>
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.CalculatePackingScores">CalculatePackingScores() (promod3.loop.LoopCandidates method)</a>
   </dt>
 
       
-  <dt><a href="actions/index_dev.html#test_actions.ActionTestCase.pm_bin">pm_bin (test_actions.ActionTestCase attribute)</a>
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.CalculateStemRMSD">CalculateStemRMSD() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.CalculateTorsionScore">CalculateTorsionScore() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.CalculateTorsionScores">CalculateTorsionScores() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.CARMSD">CARMSD() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.CARMSD">(promod3.loop.LoopCandidate method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone.cb_coord">cb_coord (promod3.loop.Backbone attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.cbeta_score">cbeta_score (promod3.loop.LoopCandidate attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_closing.html#promod3.loop.CCD">CCD() (in module promod3.loop)</a>, <a href="loop/loop_closing.html#promod3.loop.CCD">[1]</a>, <a href="loop/loop_closing.html#promod3.loop.CCD">[2]</a>, <a href="loop/loop_closing.html#promod3.loop.CCD">[3]</a>, <a href="loop/loop_closing.html#promod3.loop.CCD">[4]</a>, <a href="loop/loop_closing.html#promod3.loop.CCD">[5]</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="core/index.html#module-promod3.core">promod3.core (module)</a>
+  <dt><a href="loop/monte_carlo.html#promod3.loop.CCDCloser">CCDCloser (class in promod3.loop)</a>
   </dt>
 
       
-  <dt><a href="core/pm3argparse.html#module-promod3.core.pm3argparse">promod3.core.pm3argparse (module)</a>
+  <dt><a href="loop/structure_db.html#promod3.loop.FragmentInfo.chain_index">chain_index (promod3.loop.FragmentInfo attribute)</a>
   </dt>
 
       
-  <dt><a href="rawmodel/index.html#module-promod3.rawmodel">promod3.rawmodel (module)</a>
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.chi1">chi1 (promod3.sidechain.RotamerLibEntry attribute)</a>
   </dt>
 
       
-  <dt>
-    promod3_unittest
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.chi2">chi2 (promod3.sidechain.RotamerLibEntry attribute)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.chi3">chi3 (promod3.sidechain.RotamerLibEntry attribute)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.chi4">chi4 (promod3.sidechain.RotamerLibEntry attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.clash_score">clash_score (promod3.loop.LoopCandidate attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.CCDCloser.Close">Close() (promod3.loop.CCDCloser method)</a>
   </dt>
 
       <dd><dl>
         
-  <dt><a href="cmake/index.html#index-0-command:promod3_unittest">command</a>, <a href="cmake/index.html#index-1-command:promod3_unittest">[1]</a>, <a href="cmake/index.html#command:promod3_unittest"><strong>[2]</strong></a>
+  <dt><a href="loop/monte_carlo.html#promod3.loop.DirtyCCDCloser.Close">(promod3.loop.DirtyCCDCloser method)</a>
+  </dt>
+
+        
+  <dt><a href="loop/monte_carlo.html#promod3.loop.KICCloser.Close">(promod3.loop.KICCloser method)</a>
   </dt>
 
       </dl></dd>
-  </dl></td>
-</tr></table>
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.ClusterCandidates">ClusterCandidates() (promod3.loop.LoopCandidates method)</a>
+  </dt>
 
-<h2 id="R">R</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="rawmodel/index.html#promod3.rawmodel.RawModelingResult">RawModelingResult (class in promod3.rawmodel)</a>
+  <dt>
+    command
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="cmake/index.html#command:add_doc_dependency"><strong>add_doc_dependency</strong></a>
+  </dt>
+
+        
+  <dt><a href="cmake/index.html#index-0-command:add_doc_source">add_doc_source</a>, <a href="cmake/index.html#index-1-command:add_doc_source">[1]</a>, <a href="cmake/index.html#command:add_doc_source"><strong>[2]</strong></a>
   </dt>
 
+        
+  <dt><a href="contributing.html#index-0-command:pm_action">pm_action</a>, <a href="cmake/index.html#command:pm_action"><strong>[1]</strong></a>
+  </dt>
+
+        
+  <dt><a href="cmake/index.html#index-0-command:promod3_unittest">promod3_unittest</a>, <a href="cmake/index.html#index-1-command:promod3_unittest">[1]</a>, <a href="cmake/index.html#command:promod3_unittest"><strong>[2]</strong></a>
+  </dt>
+
+      </dl></dd>
       
-  <dt><a href="actions/index_dev.html#test_actions.ActionTestCase.RunAction">RunAction() (test_actions.ActionTestCase method)</a>
+  <dt><a href="sidechain/frame.html#promod3.sidechain.ConstructBackboneFrameResidue">ConstructBackboneFrameResidue() (in module promod3.sidechain)</a>, <a href="sidechain/frame.html#promod3.sidechain.ConstructBackboneFrameResidue">[1]</a>
   </dt>
 
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="actions/index_dev.html#test_actions.ActionTestCase.RunExitStatusTest">RunExitStatusTest() (test_actions.ActionTestCase method)</a>
+  <dt><a href="sidechain/frame.html#promod3.sidechain.ConstructFrameResidue">ConstructFrameResidue() (in module promod3.sidechain)</a>
   </dt>
 
-  </dl></td>
-</tr></table>
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.ConstructFRMRotamer">ConstructFRMRotamer() (in module promod3.sidechain)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.ConstructFRMRotamer">[1]</a>
+  </dt>
 
-<h2 id="S">S</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="core/setcompoundschemlib.html#promod3.SetCompoundsChemlib">SetCompoundsChemlib() (in module promod3)</a>
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.ConstructFRMRotamerGroup">ConstructFRMRotamerGroup() (in module promod3.sidechain)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.ConstructFRMRotamerGroup">[1]</a>
   </dt>
 
-  </dl></td>
-</tr></table>
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.ConstructRRMRotamer">ConstructRRMRotamer() (in module promod3.sidechain)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.ConstructRRMRotamer">[1]</a>
+  </dt>
 
-<h2 id="T">T</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="actions/index_dev.html#module-test_actions">test_actions (module)</a>
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.ConstructRRMRotamerGroup">ConstructRRMRotamerGroup() (in module promod3.sidechain)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.ConstructRRMRotamerGroup">[1]</a>
   </dt>
 
-  </dl></td>
-  <td style="width: 33%" valign="top"><dl>
       
-  <dt><a href="actions/index_dev.html#test_actions.ActionTestCase.testPMExists">testPMExists() (test_actions.ActionTestCase method)</a>
+  <dt><a href="sidechain/frame.html#promod3.sidechain.ConstructSidechainFrameResidue">ConstructSidechainFrameResidue() (in module promod3.sidechain)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.CoordInfo">CoordInfo (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/graph.html#promod3.sidechain.Graph.CreateFromFRMList">CreateFromFRMList() (promod3.sidechain.Graph method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/graph.html#promod3.sidechain.Graph.CreateFromRRMList">CreateFromRRMList() (promod3.sidechain.Graph method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.CTerminalCloser">CTerminalCloser (class in promod3.loop)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="D">D</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/backbone.html#promod3.loop.DihedralPair">DihedralPair (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.DihedralPair.DihedralPair">DihedralPair() (promod3.loop.DihedralPair method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.DirtyCCDCloser">DirtyCCDCloser (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/disulfid.html#promod3.sidechain.DisulfidScore">DisulfidScore() (in module promod3.sidechain)</a>, <a href="sidechain/disulfid.html#promod3.sidechain.DisulfidScore">[1]</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.Draw">Draw() (promod3.loop.TorsionSampler method)</a>, <a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.Draw">[1]</a>
+  </dt>
+
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.DrawPhiGivenPsi">DrawPhiGivenPsi() (promod3.loop.TorsionSampler method)</a>, <a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.DrawPhiGivenPsi">[1]</a>
+  </dt>
+
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.DrawPsiGivenPhi">DrawPsiGivenPhi() (promod3.loop.TorsionSampler method)</a>, <a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.DrawPsiGivenPhi">[1]</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.dssp_hbond_score">dssp_hbond_score (promod3.loop.LoopCandidate attribute)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="E">E</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.ExponentialCooler">ExponentialCooler (class in promod3.loop)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.ExtractStatistics">ExtractStatistics() (promod3.loop.TorsionSampler method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="F">F</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="core/helper.html#promod3.core.helper.FileExists">FileExists() (in module promod3.core.helper)</a>
+  </dt>
+
+      
+  <dt><a href="core/helper.html#promod3.core.helper.FileExtension">FileExtension() (in module promod3.core.helper)</a>
+  </dt>
+
+      
+  <dt><a href="core/helper.html#promod3.core.helper.FileGzip">FileGzip() (in module promod3.core.helper)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.Fragger.Fill">Fill() (promod3.loop.Fragger method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.FillBackbone">FillBackbone() (promod3.loop.StructureDB method)</a>, <a href="loop/structure_db.html#promod3.loop.StructureDB.FillBackbone">[1]</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.FillFromDatabase">FillFromDatabase() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.FillFromMonteCarloSampler">FillFromMonteCarloSampler() (promod3.loop.LoopCandidates method)</a>, <a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.FillFromMonteCarloSampler">[1]</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FragDB">FragDB (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.Fragger">Fragger (class in promod3.loop)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FraggerScoreParameters">FraggerScoreParameters (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FraggerScoreParameters.FraggerScoreParameters">FraggerScoreParameters() (promod3.loop.FraggerScoreParameters method)</a>, <a href="loop/structure_db.html#promod3.loop.FraggerScoreParameters.FraggerScoreParameters">[1]</a>, <a href="loop/structure_db.html#promod3.loop.FraggerScoreParameters.FraggerScoreParameters">[2]</a>, <a href="loop/structure_db.html#promod3.loop.FraggerScoreParameters.FraggerScoreParameters">[3]</a>, <a href="loop/structure_db.html#promod3.loop.FraggerScoreParameters.FraggerScoreParameters">[4]</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FragmentInfo">FragmentInfo (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/frame.html#promod3.sidechain.Frame">Frame (class in promod3.sidechain)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/frame.html#promod3.sidechain.FrameResidue">FrameResidue (class in promod3.sidechain)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer">FRMRotamer (class in promod3.sidechain)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup">FRMRotamerGroup (class in promod3.sidechain)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.FromResidue">FromResidue() (promod3.sidechain.RotamerLibEntry static method)</a>, <a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.FromResidue">[1]</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="G">G</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="rawmodel/index.html#promod3.rawmodel.RawModelingResult.gaps">gaps (promod3.rawmodel.RawModelingResult attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FragDB.GetAngularBinSize">GetAngularBinSize() (promod3.loop.FragDB method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.GetAVGCBetaScore">GetAVGCBetaScore() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.GetAVGClasScore">GetAVGClasScore() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.GetAVGDSSPHBondScore">GetAVGDSSPHBondScore() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.GetAVGHBondcore">GetAVGHBondcore() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.GetAVGPackingScore">GetAVGPackingScore() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.GetAVGStemRMSD">GetAVGStemRMSD() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.GetAVGTorsionScore">GetAVGTorsionScore() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetBinSize">GetBinSize() (promod3.loop.TorsionSampler method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetBinsPerDimension">GetBinsPerDimension() (promod3.loop.TorsionSampler method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetCharge">GetCharge() (promod3.sidechain.Particle method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetCoordIndex">GetCoordIndex() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetCoordInfo">GetCoordInfo() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.GetCStem">GetCStem() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetDihedralAngles">GetDihedralAngles() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FragDB.GetDistBinSize">GetDistBinSize() (promod3.loop.FragDB method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetDSSPStates">GetDSSPStates() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetEMin">GetEMin() (promod3.sidechain.Particle method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetFrameEnergy">GetFrameEnergy() (promod3.sidechain.FRMRotamer method)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetFrameEnergy">[1]</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetFrameEnergy">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetHistogramIndex">GetHistogramIndex() (promod3.loop.TorsionSampler method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetHistogramIndices">GetHistogramIndices() (promod3.loop.TorsionSampler method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetInternalEnergy">GetInternalEnergy() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetInternalEnergy">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetInternalEnergyPrefactor">GetInternalEnergyPrefactor() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetInternalEnergyPrefactor">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetName">GetName() (promod3.sidechain.Particle method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.GetNStem">GetNStem() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/graph.html#promod3.sidechain.Graph.GetNumActiveEdges">GetNumActiveEdges() (promod3.sidechain.Graph method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/graph.html#promod3.sidechain.Graph.GetNumActiveNodes">GetNumActiveNodes() (promod3.sidechain.Graph method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetNumCoords">GetNumCoords() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="sidechain/graph.html#promod3.sidechain.Graph.GetNumEdges">GetNumEdges() (promod3.sidechain.Graph method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FragDB.GetNumFragments">GetNumFragments() (promod3.loop.FragDB method)</a>, <a href="loop/structure_db.html#promod3.loop.FragDB.GetNumFragments">[1]</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/graph.html#promod3.sidechain.Graph.GetNumNodes">GetNumNodes() (promod3.sidechain.Graph method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FragDB.GetNumStemPairs">GetNumStemPairs() (promod3.loop.FragDB method)</a>, <a href="loop/structure_db.html#promod3.loop.FragDB.GetNumStemPairs">[1]</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetNumSubrotamers">GetNumSubrotamers() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetOmegaTorsion">GetOmegaTorsion() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.GetoriginalDSSPState">GetoriginalDSSPState() (promod3.loop.LoopCandidate method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.GetoriginalSequence">GetoriginalSequence() (promod3.loop.LoopCandidate method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetPhiProbabilityGivenPsi">GetPhiProbabilityGivenPsi() (promod3.loop.TorsionSampler method)</a>, <a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetPhiProbabilityGivenPsi">[1]</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetPhiTorsion">GetPhiTorsion() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetPos">GetPos() (promod3.sidechain.Particle method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetProbability">GetProbability() (promod3.loop.TorsionSampler method)</a>, <a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetProbability">[1]</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetProbability">(promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetProbability">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetProfileScore">GetProfileScore() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetPsiProbabilityGivenPhi">GetPsiProbabilityGivenPhi() (promod3.loop.TorsionSampler method)</a>, <a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.GetPsiProbabilityGivenPhi">[1]</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetPsiTorsion">GetPsiTorsion() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.GetRadius">GetRadius() (promod3.sidechain.Particle method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.Fragger.GetScore">GetScore() (promod3.loop.Fragger method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/monte_carlo.html#promod3.loop.LinearScorer.GetScore">(promod3.loop.LinearScorer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetSelfEnergy">GetSelfEnergy() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetSelfEnergy">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSeqID">GetSeqID() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSeqSim">GetSeqSim() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.GetSequence">GetSequence() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSequence">(promod3.loop.StructureDB method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetSSAgreement">GetSSAgreement() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetSubrotamerAssociations">GetSubrotamerAssociations() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetSubrotamerDefinition">GetSubrotamerDefinition() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.ExponentialCooler.GetTemperature">GetTemperature() (promod3.loop.ExponentialCooler method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetTemperature">(promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.GetTorsionProbability">GetTorsionProbability() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone.GetTransform">GetTransform() (promod3.loop.Backbone method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.GetTransformedCopy">GetTransformedCopy() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.GetTransformedCopy">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="sidechain/graph.html#promod3.sidechain.Graph">Graph (class in promod3.sidechain)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="H">H</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.hbond_score">hbond_score (promod3.loop.LoopCandidate attribute)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="I">I</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.Initialize">Initialize() (promod3.loop.BackboneLoopScorer method)</a>, <a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.Initialize">[1]</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/monte_carlo.html#promod3.loop.PhiPsiSampler.Initialize">(promod3.loop.PhiPsiSampler method)</a>
+  </dt>
+
+        
+  <dt><a href="loop/monte_carlo.html#promod3.loop.SoftSampler.Initialize">(promod3.loop.SoftSampler method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.insert">insert() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.InsertInto">InsertInto() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.InsertInto">(promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.IsHBondAcceptor">IsHBondAcceptor() (promod3.sidechain.Particle method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.IsHBondDonor">IsHBondDonor() (promod3.sidechain.Particle method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.IsSimilar">IsSimilar() (promod3.sidechain.RotamerLibEntry method)</a>, <a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.IsSimilar">[1]</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="K">K</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/loop_closing.html#promod3.loop.KIC">KIC() (in module promod3.loop)</a>, <a href="loop/loop_closing.html#promod3.loop.KIC">[1]</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.KICCloser">KICCloser (class in promod3.loop)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="L">L</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FragmentInfo.length">length (promod3.loop.FragmentInfo attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.LinearScorer">LinearScorer (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.Load">Load() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/structure_db.html#promod3.loop.FragDB.Load">(promod3.loop.FragDB method)</a>
+  </dt>
+
+        
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.Load">(promod3.loop.StructureDB method)</a>
+  </dt>
+
+        
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.Load">(promod3.loop.TorsionSampler method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.Load">(promod3.sidechain.BBDepRotamerLib method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/load_loop_objects.html#promod3.loop.LoadBackboneLoopScorer">LoadBackboneLoopScorer() (in module promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/load_loop_objects.html#promod3.loop.LoadFragDB">LoadFragDB() (in module promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/load_loop_objects.html#promod3.loop.LoadStructureDB">LoadStructureDB() (in module promod3.loop)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/load_loop_objects.html#promod3.loop.LoadTorsionSampler">LoadTorsionSampler() (in module promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/load_loop_objects.html#promod3.loop.LoadTorsionSamplerCoil">LoadTorsionSamplerCoil() (in module promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/load_loop_objects.html#promod3.loop.LoadTorsionSamplerExtended">LoadTorsionSamplerExtended() (in module promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/load_loop_objects.html#promod3.loop.LoadTorsionSamplerHelical">LoadTorsionSamplerHelical() (in module promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate">LoopCandidate (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates">LoopCandidates (class in promod3.loop)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="M">M</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="buildsystem.html#index-1">make check</a>
+  </dt>
+
+      
+  <dt><a href="buildsystem.html#index-4">make doc</a>
+  </dt>
+
+      
+  <dt><a href="buildsystem.html#index-5">make help</a>
+  </dt>
+
+      
+  <dt><a href="buildsystem.html#index-2">make html</a>
+  </dt>
+
+      
+  <dt><a href="buildsystem.html#index-3">make man</a>
+  </dt>
+
+      
+  <dt><a href="buildsystem.html#index-0">Make targets</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.MakeStatic">MakeStatic() (promod3.sidechain.BBDepRotamerLib method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamerGroup.Merge">Merge() (promod3.sidechain.FRMRotamerGroup method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup.Merge">(promod3.sidechain.RRMRotamerGroup method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="rawmodel/index.html#promod3.rawmodel.RawModelingResult.model">model (promod3.rawmodel.RawModelingResult attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.MonteCarloSampler">MonteCarloSampler() (in module promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="core/helper.html#promod3.core.helper.MsgErrorAndExit">MsgErrorAndExit() (in module promod3.core.helper)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="N">N</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone.n_coord">n_coord (promod3.loop.Backbone attribute)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.NTerminalCloser">NTerminalCloser (class in promod3.loop)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="O">O</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone.o_coord">o_coord (promod3.loop.Backbone attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.CoordInfo.offset">offset (promod3.loop.CoordInfo attribute)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/structure_db.html#promod3.loop.FragmentInfo.offset">(promod3.loop.FragmentInfo attribute)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/backbone.html#promod3.loop.Backbone.one_letter_code">one_letter_code (promod3.loop.Backbone attribute)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="P">P</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.packing_score">packing_score (promod3.loop.LoopCandidate attribute)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.PairwiseEnergy">PairwiseEnergy() (promod3.sidechain.Particle method)</a>
+  </dt>
+
+      
+  <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser.Parse">Parse() (promod3.core.pm3argparse.PM3ArgumentParser method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle">Particle (class in promod3.sidechain)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.CoordInfo.pdb_id">pdb_id (promod3.loop.CoordInfo attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.PhiPsiSampler">PhiPsiSampler (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="core/pm3argparse.html#promod3.core.pm3argparse.PM3ArgumentParser">PM3ArgumentParser (class in promod3.core.pm3argparse)</a>
+  </dt>
+
+      
+  <dt>
+    pm_action
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="contributing.html#index-0-command:pm_action">command</a>, <a href="cmake/index.html#command:pm_action"><strong>[1]</strong></a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="actions/index_dev.html#test_actions.ActionTestCase.pm_action">pm_action (test_actions.ActionTestCase attribute)</a>
+  </dt>
+
+      
+  <dt><a href="actions/index_dev.html#test_actions.ActionTestCase.pm_bin">pm_bin (test_actions.ActionTestCase attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.PrindStatistics">PrindStatistics() (promod3.loop.StructureDB method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FragDB.PrintStatistics">PrintStatistics() (promod3.loop.FragDB method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.probability">probability (promod3.sidechain.RotamerLibEntry attribute)</a>
+  </dt>
+
+      
+  <dt><a href="core/index.html#module-promod3.core">promod3.core (module)</a>
+  </dt>
+
+      
+  <dt><a href="core/pm3argparse.html#module-promod3.core.pm3argparse">promod3.core.pm3argparse (module)</a>
+  </dt>
+
+      
+  <dt><a href="loop/index.html#module-promod3.loop">promod3.loop (module)</a>
+  </dt>
+
+      
+  <dt><a href="rawmodel/index.html#module-promod3.rawmodel">promod3.rawmodel (module)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/index.html#module-promod3.sidechain">promod3.sidechain (module)</a>
+  </dt>
+
+      
+  <dt>
+    promod3_unittest
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="cmake/index.html#index-0-command:promod3_unittest">command</a>, <a href="cmake/index.html#index-1-command:promod3_unittest">[1]</a>, <a href="cmake/index.html#command:promod3_unittest"><strong>[2]</strong></a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.PhiPsiSampler.ProposeStep">ProposeStep() (promod3.loop.PhiPsiSampler method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/monte_carlo.html#promod3.loop.SoftSampler.ProposeStep">(promod3.loop.SoftSampler method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="sidechain/graph.html#promod3.sidechain.Graph.Prune">Prune() (promod3.sidechain.Graph method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="Q">Q</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.QueryLib">QueryLib() (promod3.sidechain.BBDepRotamerLib method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="R">R</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="rawmodel/index.html#promod3.rawmodel.RawModelingResult">RawModelingResult (class in promod3.rawmodel)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/index.html#promod3.sidechain.reconstruct_sidechains.Reconstruct">Reconstruct() (in module promod3.sidechain.reconstruct_sidechains)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.Remove">Remove() (promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.ReplaceFragment">ReplaceFragment() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.ExponentialCooler.Reset">Reset() (promod3.loop.ExponentialCooler method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.RMSD">RMSD() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.RMSD">(promod3.loop.LoopCandidate method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry">RotamerLibEntry (class in promod3.sidechain)</a>, <a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry">[1]</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/sidechain_settings.html#promod3.sidechain.RotamerSettings">RotamerSettings (class in promod3.sidechain)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.RotateAroundOmegaTorsion">RotateAroundOmegaTorsion() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.RotateAroundPhiTorsion">RotateAroundPhiTorsion() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.RotateAroundPsiTorsion">RotateAroundPsiTorsion() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer">RRMRotamer (class in promod3.sidechain)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamerGroup">RRMRotamerGroup (class in promod3.sidechain)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_closing.html#promod3.loop.BackboneRelaxer.Run">Run() (promod3.loop.BackboneRelaxer method)</a>
+  </dt>
+
+      
+  <dt><a href="actions/index_dev.html#test_actions.ActionTestCase.RunAction">RunAction() (test_actions.ActionTestCase method)</a>
+  </dt>
+
+      
+  <dt><a href="actions/index_dev.html#test_actions.ActionTestCase.RunExitStatusTest">RunExitStatusTest() (test_actions.ActionTestCase method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="S">S</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.Save">Save() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/structure_db.html#promod3.loop.FragDB.Save">(promod3.loop.FragDB method)</a>
+  </dt>
+
+        
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB.Save">(promod3.loop.StructureDB method)</a>
+  </dt>
+
+        
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.Save">(promod3.loop.TorsionSampler method)</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.Save">(promod3.sidechain.BBDepRotamerLib method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.FragDB.SearchDB">SearchDB() (promod3.loop.FragDB method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.SetCBetaEnergy">SetCBetaEnergy() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.SetCBetaPotentialParameters">SetCBetaPotentialParameters() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.SetCBPackingEnergy">SetCBPackingEnergy() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.SetCBPackingPotentialParameters">SetCBPackingPotentialParameters() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      
+  <dt><a href="core/setcompoundschemlib.html#promod3.SetCompoundsChemlib">SetCompoundsChemlib() (in module promod3)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.SetEnvironment">SetEnvironment() (promod3.loop.BackboneLoopScorer method)</a>, <a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.SetEnvironment">[1]</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/frame.html#promod3.sidechain.Frame.SetFrameEnergy">SetFrameEnergy() (promod3.sidechain.Frame method)</a>, <a href="sidechain/frame.html#promod3.sidechain.Frame.SetFrameEnergy">[1]</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetFrameEnergy">(promod3.sidechain.FRMRotamer method)</a>, <a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetFrameEnergy">[1]</a>
+  </dt>
+
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.SetFrameEnergy">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.SetHBondEnergy">SetHBondEnergy() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.SetHBondPotentialParameters">SetHBondPotentialParameters() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetInternalEnergy">SetInternalEnergy() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.SetInternalEnergy">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetInternalEnergyPrefactor">SetInternalEnergyPrefactor() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.SetInternalEnergyPrefactor">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.BBDepRotamerLib.SetInterpolate">SetInterpolate() (promod3.sidechain.BBDepRotamerLib method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetOmegaTorsion">SetOmegaTorsion() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetPhiTorsion">SetPhiTorsion() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.Particle.SetPolarDirection">SetPolarDirection() (promod3.sidechain.Particle method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetProbability">SetProbability() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.RRMRotamer.SetProbability">(promod3.sidechain.RRMRotamer method)</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SetPsiTorsion">SetPsiTorsion() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer.html#promod3.sidechain.FRMRotamer.SetTemperature">SetTemperature() (promod3.sidechain.FRMRotamer method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.SetTorsionEnergy">SetTorsionEnergy() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.SetTorsionPotentialParameters">SetTorsionPotentialParameters() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.sig1">sig1 (promod3.sidechain.RotamerLibEntry attribute)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.sig2">sig2 (promod3.sidechain.RotamerLibEntry attribute)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.sig3">sig3 (promod3.sidechain.RotamerLibEntry attribute)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.sig4">sig4 (promod3.sidechain.RotamerLibEntry attribute)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.SimilarDihedral">SimilarDihedral() (promod3.sidechain.RotamerLibEntry method)</a>, <a href="sidechain/rotamer_lib.html#promod3.sidechain.RotamerLibEntry.SimilarDihedral">[1]</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.CoordInfo.size">size (promod3.loop.CoordInfo attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/monte_carlo.html#promod3.loop.SoftSampler">SoftSampler (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/graph.html#promod3.sidechain.Graph.Solve">Solve() (promod3.sidechain.Graph method)</a>
+  </dt>
+
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.stem_rmsd">stem_rmsd (promod3.loop.LoopCandidate attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/structure_db.html#promod3.loop.StructureDB">StructureDB (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.SuperposeOnto">SuperposeOnto() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="T">T</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="actions/index_dev.html#module-test_actions">test_actions (module)</a>
+  </dt>
+
+      
+  <dt><a href="actions/index_dev.html#test_actions.ActionTestCase.testPMExists">testPMExists() (test_actions.ActionTestCase method)</a>
+  </dt>
+
+      
+  <dt><a href="sidechain/rotamer_id.html#promod3.sidechain.TLCToRotID">TLCToRotID() (in module promod3.sidechain)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone.html#promod3.loop.BackboneList.ToEntity">ToEntity() (promod3.loop.BackboneList method)</a>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidates.ToEntity">(promod3.loop.LoopCandidates method)</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/loop_candidate.html#promod3.loop.LoopCandidate.torsion_score">torsion_score (promod3.loop.LoopCandidate attribute)</a>
+  </dt>
+
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler">TorsionSampler (class in promod3.loop)</a>
+  </dt>
+
+      
+  <dt><a href="loop/backbone_loop_score.html#promod3.loop.BackboneLoopScorer.TransOmegaTorsions">TransOmegaTorsions() (promod3.loop.BackboneLoopScorer method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="U">U</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="loop/torsion_sampler.html#promod3.loop.TorsionSampler.UpdateDistributions">UpdateDistributions() (promod3.loop.TorsionSampler method)</a>
   </dt>
 
   </dl></td>
diff --git a/doc/html/index.html b/doc/html/index.html
index 48254575ac08fe6e1f353ffcd173283460e8b4fe..9b487eccbb4524dd5919a8b61cd743b98692eedb 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -62,6 +62,8 @@
 <li class="toctree-l2"><a class="reference internal" href="core/setcompoundschemlib.html"><code class="docutils literal"><span class="pre">SetCompoundsChemlib()</span></code></a></li>
 <li class="toctree-l2"><a class="reference internal" href="core/index.html"><code class="docutils literal"><span class="pre">core</span></code> - ProMod3 Core Functionality</a></li>
 <li class="toctree-l2"><a class="reference internal" href="rawmodel/index.html"><code class="docutils literal"><span class="pre">rawmodel</span></code> - Coordinate Modeling</a></li>
+<li class="toctree-l2"><a class="reference internal" href="loop/index.html"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sidechain/index.html"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></li>
 <li class="toctree-l2"><a class="reference internal" href="actions/index_dev.html"><code class="docutils literal"><span class="pre">test_actions.ActionTestCase</span></code> - Testing Actions</a></li>
 <li class="toctree-l2"><a class="reference internal" href="buildsystem.html">Building ProMod3</a></li>
 <li class="toctree-l2"><a class="reference internal" href="contributing.html">Contributing</a></li>
diff --git a/doc/html/loop/backbone.html b/doc/html/loop/backbone.html
new file mode 100644
index 0000000000000000000000000000000000000000..8658b4b42582062f7a20250b0f570f308c102eb6
--- /dev/null
+++ b/doc/html/loop/backbone.html
@@ -0,0 +1,737 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Backbone &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="loop - Loop Modelling" href="index.html" />
+    <link rel="next" title="Torsion Sampler" href="torsion_sampler.html" />
+    <link rel="prev" title="loop - Loop Modelling" href="index.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="torsion_sampler.html" title="Torsion Sampler"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="loop - Loop Modelling"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="backbone">
+<h1>Backbone<a class="headerlink" href="#backbone" title="Permalink to this headline">¶</a></h1>
+<p>The most simple representation of structural information in PROMOD3 is the
+<a class="reference internal" href="#promod3.loop.Backbone" title="promod3.loop.Backbone"><code class="xref py py-class docutils literal"><span class="pre">Backbone</span></code></a>. It provides a way to store the backbone positions of
+a residue. For simple structural manipulations they can be gathered to a
+<a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> that can be inserted into or converted to a
+<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a> at any time.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span>
+
+<span class="n">sequence</span> <span class="o">=</span> <span class="s">&quot;AAAAAAAA&quot;</span>
+
+<span class="c">#The backbone gets initially constructed with backbone dihedrals</span>
+<span class="c">#typical for helices</span>
+<span class="n">bb_list</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">BackboneList</span><span class="p">(</span><span class="n">sequence</span><span class="p">)</span>
+
+<span class="c">#let&#39;s have a look at the set dihedral angles</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="n">bb_list</span><span class="p">)):</span>
+  <span class="k">print</span> <span class="s">&quot;Looking at position &quot;</span><span class="p">,</span><span class="n">i</span>
+  <span class="k">if</span> <span class="n">i</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+    <span class="k">print</span> <span class="s">&quot;phi: &quot;</span><span class="p">,</span> <span class="n">bb_list</span><span class="o">.</span><span class="n">GetPhiTorsion</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+  <span class="k">if</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">bb_list</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+    <span class="k">print</span> <span class="s">&quot;psi: &quot;</span><span class="p">,</span> <span class="n">bb_list</span><span class="o">.</span><span class="n">GetPsiTorsion</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+
+
+<span class="c">#we now use a TorsionSampler to set random dihedral angles</span>
+<span class="n">torsion_sampler</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">LoadTorsionSampler</span><span class="p">()</span>
+<span class="n">idx</span> <span class="o">=</span> <span class="n">torsion_sampler</span><span class="o">.</span><span class="n">GetHistogramIndex</span><span class="p">(</span><span class="s">&quot;ALA&quot;</span><span class="p">,</span><span class="s">&quot;ALA&quot;</span><span class="p">,</span><span class="s">&quot;ALA&quot;</span><span class="p">)</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="n">bb_list</span><span class="p">)):</span>
+  <span class="n">dihedrals</span> <span class="o">=</span> <span class="n">torsion_sampler</span><span class="o">.</span><span class="n">Draw</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span>
+  <span class="k">if</span> <span class="n">i</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+    <span class="n">bb_list</span><span class="o">.</span><span class="n">SetPhiTorsion</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="n">dihedrals</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+  <span class="k">if</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">bb_list</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+    <span class="n">bb_list</span><span class="o">.</span><span class="n">SetPsiTorsion</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="n">dihedrals</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
+
+<span class="c">#let&#39;s save down the randomized fragment</span>
+<span class="n">io</span><span class="o">.</span><span class="n">SavePDB</span><span class="p">(</span><span class="n">bb_list</span><span class="o">.</span><span class="n">ToEntity</span><span class="p">(),</span><span class="s">&quot;randomized_fragment.pdb&quot;</span><span class="p">)</span>
+</pre></div>
+</div>
+<div class="section" id="the-basic-building-blocks">
+<h2>The basic building blocks<a class="headerlink" href="#the-basic-building-blocks" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.loop.DihedralPair">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">DihedralPair</code><a class="headerlink" href="#promod3.loop.DihedralPair" title="Permalink to this definition">¶</a></dt>
+<dd><p>The DihedralPair class only serves as a helper to initialize a
+<a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> given consecutive dihedral angles.</p>
+<dl class="method">
+<dt id="promod3.loop.DihedralPair.DihedralPair">
+<code class="descname">DihedralPair</code><span class="sig-paren">(</span><em>phi</em>, <em>psi</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.DihedralPair.DihedralPair" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<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"><ul class="first last simple">
+<li><strong>phi</strong> &#8211; Phi dihedral angle</li>
+<li><strong>psi</strong> &#8211; Psi dihedral angle</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.loop.Backbone">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">Backbone</code><a class="headerlink" href="#promod3.loop.Backbone" title="Permalink to this definition">¶</a></dt>
+<dd><p>Container for the positions of the backbone atoms (N,CA,CB,C and O) of a residue.</p>
+<dl class="method">
+<dt id="promod3.loop.Backbone.Backbone">
+<code class="descname">Backbone</code><span class="sig-paren">(</span><em>n</em>, <em>ca</em>, <em>c</em>, <em>o</em>, <em>olc</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.Backbone.Backbone" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first last simple">
+<li><strong>n</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) &#8211; Position of nitrogen</li>
+<li><strong>ca</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) &#8211; Position of alpha carbon</li>
+<li><strong>c</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) &#8211; Position of carbon</li>
+<li><strong>o</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) &#8211; Position of oxygen</li>
+<li><strong>olc</strong> (<code class="xref py py-class docutils literal"><span class="pre">char</span></code>) &#8211; One letter code of the residue</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">Backbone</code><span class="sig-paren">(</span><em>n</em>, <em>ca</em>, <em>c</em>, <em>o</em>, <em>cb</em>, <em>olc</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first last simple">
+<li><strong>n</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) &#8211; Position of nitrogen</li>
+<li><strong>ca</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) &#8211; Position of alpha carbon</li>
+<li><strong>c</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) &#8211; Position of carbon</li>
+<li><strong>o</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) &#8211; Position of oxygen</li>
+<li><strong>cb</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">Vec3</span></code></a>) &#8211; Position of beta carbon</li>
+<li><strong>olc</strong> (<code class="xref py py-class docutils literal"><span class="pre">char</span></code>) &#8211; One letter code of the residue</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">Backbone</code><span class="sig-paren">(</span><em>res</em>, <em>olc</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first last simple">
+<li><strong>res</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ResidueHandle</span></code></a>) &#8211; Residue from which to extract backbone atom positions</li>
+<li><strong>olc</strong> (<code class="xref py py-class docutils literal"><span class="pre">char</span></code>) &#8211; One letter code of the residue</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.Backbone.n_coord">
+<code class="descname">n_coord</code><a class="headerlink" href="#promod3.loop.Backbone.n_coord" title="Permalink to this definition">¶</a></dt>
+<dd><p>Coordinate of the nitrogen atom (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>)</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.Backbone.ca_coord">
+<code class="descname">ca_coord</code><a class="headerlink" href="#promod3.loop.Backbone.ca_coord" title="Permalink to this definition">¶</a></dt>
+<dd><p>Coordinate of the C-alpha carbon atom (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>)</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.Backbone.c_coord">
+<code class="descname">c_coord</code><a class="headerlink" href="#promod3.loop.Backbone.c_coord" title="Permalink to this definition">¶</a></dt>
+<dd><p>Coordinate of the C carbon atom (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>)</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.Backbone.o_coord">
+<code class="descname">o_coord</code><a class="headerlink" href="#promod3.loop.Backbone.o_coord" title="Permalink to this definition">¶</a></dt>
+<dd><p>Coordinate of the oxygen atom (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>)</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.Backbone.cb_coord">
+<code class="descname">cb_coord</code><a class="headerlink" href="#promod3.loop.Backbone.cb_coord" title="Permalink to this definition">¶</a></dt>
+<dd><p>Coordinate of the C-beta carbon atom (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>)</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.Backbone.one_letter_code">
+<code class="descname">one_letter_code</code><a class="headerlink" href="#promod3.loop.Backbone.one_letter_code" title="Permalink to this definition">¶</a></dt>
+<dd><p>One letter code of the residue (<code class="xref py py-class docutils literal"><span class="pre">char</span></code>)</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.Backbone.aa">
+<code class="descname">aa</code><a class="headerlink" href="#promod3.loop.Backbone.aa" title="Permalink to this definition">¶</a></dt>
+<dd><p>Amino acid type of the residue (<code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code>)</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.Backbone.ApplyTransform">
+<code class="descname">ApplyTransform</code><span class="sig-paren">(</span><em>transformation_matrix</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.Backbone.ApplyTransform" title="Permalink to this definition">¶</a></dt>
+<dd><p>Applies a transformation to the coordinates of the backbone</p>
+<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>transformation_matrix</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a>) &#8211; The transformation</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.Backbone.GetTransform">
+<code class="descname">GetTransform</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.Backbone.GetTransform" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The transformation currently applied on the backbone</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="editing-full-stretches-of-backbone-residues">
+<h2>Editing full stretches of backbone residues<a class="headerlink" href="#editing-full-stretches-of-backbone-residues" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.loop.BackboneList">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">BackboneList</code><a class="headerlink" href="#promod3.loop.BackboneList" title="Permalink to this definition">¶</a></dt>
+<dd><p>Container for the positions of the backbone atoms (N,CA,CB,C and O) of a segment. This object basically contains a list of <a class="reference internal" href="#promod3.loop.Backbone" title="promod3.loop.Backbone"><code class="xref py py-class docutils literal"><span class="pre">Backbone</span></code></a> and allows setting or modifying the positions of the atoms by setting/changing torsion angles.</p>
+<dl class="method">
+<dt id="promod3.loop.BackboneList.BackboneList">
+<code class="descname">BackboneList</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.BackboneList" title="Permalink to this definition">¶</a></dt>
+<dd><p>Creates empty BackboneList</p>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">BackboneList</code><span class="sig-paren">(</span><em>sequence</em><span class="sig-paren">)</span></dt>
+<dd><p>Creates a helical BackboneList from given sequence</p>
+<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>sequence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence of created BackboneList</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">BackboneList</code><span class="sig-paren">(</span><em>sequence</em>, <em>dihedral_angles</em><span class="sig-paren">)</span></dt>
+<dd><p>Creates a BackboneList from given <strong>sequence</strong> and <strong>dihedral_angles</strong></p>
+<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"><ul class="first simple">
+<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence of created BackboneList</li>
+<li><strong>dihedral_angles</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; List of <code class="xref py py-class docutils literal"><span class="pre">DihedralAngle</span></code> objects defining the phi/psi
+angles of created BackboneList</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If <strong>sequence</strong> and <strong>dihedral_angles</strong>
+are inconsistent in size.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">BackboneList</code><span class="sig-paren">(</span><em>sequence</em>, <em>residues</em><span class="sig-paren">)</span></dt>
+<dd><p>Creates a BackboneList from given <strong>sequence</strong> and positions extracted from
+<strong>residues</strong></p>
+<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"><ul class="first simple">
+<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence of created BackboneList</li>
+<li><strong>residues</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; List of <a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a> objects from which the
+backbone positions are extracted.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If <strong>sequence</strong> and <strong>residues</strong>
+are inconsistent in size or when there is a residue not
+providing all necessary positions.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.ToEntity">
+<code class="descname">ToEntity</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.ToEntity" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>Transforms the backbone list into an <a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a>.</p>
+<blockquote>
+<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">return:</th><td class="field-body">The entity</td>
+</tr>
+<tr class="field-even field"><th class="field-name">rtype:</th><td class="field-body"><a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</div></blockquote>
+<dl class="method">
+<dt id="promod3.loop.BackboneList.GetSequence">
+<code class="descname">GetSequence</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.GetSequence" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The amino acid sequence</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.InsertInto">
+<code class="descname">InsertInto</code><span class="sig-paren">(</span><em>chain</em>, <em>n_stem</em>, <em>c_stem</em><span class="optional">[</span>, <em>reset_stem_positions=True</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.InsertInto" title="Permalink to this definition">¶</a></dt>
+<dd><p>Inserts the backbone list into the <strong>chain</strong>. If the residues corresponding to the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> are already present in the entity, they will be replaced, otherwise they will be added to the entity.</p>
+<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"><ul class="first last simple">
+<li><strong>chain</strong> &#8211; The chain</li>
+<li><strong>n_stem</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResNum</span></code>) &#8211; The residue number of the n_stem</li>
+<li><strong>c_stem</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResNum</span></code>) &#8211; The residue number of the c_stem</li>
+<li><strong>reset_stem_positions</strong> (<code class="xref py py-class docutils literal"><span class="pre">Bool</span></code>) &#8211; Whether <em>n_stem</em> and <em>c_stem</em> residues&#8217;positions whould be set to the positions of the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a></li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.ApplyTransform">
+<code class="descname">ApplyTransform</code><span class="sig-paren">(</span><em>transformation_matrix</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.ApplyTransform" title="Permalink to this definition">¶</a></dt>
+<dd><p>Applies a transformation to the positions of the the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>.</p>
+<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>transformation_matrix</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/mat/#ost.geom.Mat4" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Mat4</span></code></a>) &#8211; The transformation</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">ApplyTransform</code><span class="sig-paren">(</span><em>transform</em><span class="sig-paren">)</span></dt>
+<dd><p>Applies a transformation to the positions of the the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>.</p>
+<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>transform</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Transform</span></code>) &#8211; The transformation</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.SetPhiTorsion">
+<code class="descname">SetPhiTorsion</code><span class="sig-paren">(</span><em>index</em>, <em>angle</em><span class="optional">[</span>, <em>sequential=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.SetPhiTorsion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the <em>phi</em> torsion angle of the backbone at position <strong>index</strong> in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>.</p>
+<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"><ul class="first last simple">
+<li><strong>index</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 index of the residue in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> for which the angle shout be set.</li>
+<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The angle</li>
+<li><strong>sequential</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; If <em>True</em>, the rotation will be propagated to all residues after the one with <strong>index</strong>. Otherwise it will be propagated in the direction where it will affect the least number of residues.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.SetPsiTorsion">
+<code class="descname">SetPsiTorsion</code><span class="sig-paren">(</span><em>index</em>, <em>angle</em><span class="optional">[</span>, <em>sequential=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.SetPsiTorsion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the <em>psi</em> torsion angle of the backbone at position <strong>index</strong> in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>.</p>
+<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"><ul class="first last simple">
+<li><strong>index</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 index of the residue in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> for which the angle shout be set.</li>
+<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The angle</li>
+<li><strong>sequential</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; If <em>True</em>, the rotation will be propagated to all residues after the one with <strong>index</strong>. Otherwise it will be propagated in the direction where it will affect the least number of residues.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.SetOmegaTorsion">
+<code class="descname">SetOmegaTorsion</code><span class="sig-paren">(</span><em>index</em>, <em>angle</em><span class="optional">[</span>, <em>sequential=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.SetOmegaTorsion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the <em>omega</em> torsion angle of the backbone at position <strong>index</strong> in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>.</p>
+<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"><ul class="first last simple">
+<li><strong>index</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 index of the residue in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> for which the angle shout be set.</li>
+<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The angle</li>
+<li><strong>sequential</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; If <em>True</em>, the rotation will be propagated to all residues after the one with <strong>index</strong>. Otherwise it will be propagated in the direction where it will affect the least number of residues.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.RotateAroundPhiTorsion">
+<code class="descname">RotateAroundPhiTorsion</code><span class="sig-paren">(</span><em>index</em>, <em>angle</em><span class="optional">[</span>, <em>sequential=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.RotateAroundPhiTorsion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Rotates the <em>phi</em> torsion angle of the backbone at position <strong>index</strong> in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> by <strong>angle</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>index</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 index of the residue in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> for which the angle shout be set.</li>
+<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The angle</li>
+<li><strong>sequential</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; If <em>True</em>, the rotation will be propagated to all residues after the one with <strong>index</strong>. Otherwise it will be propagated in the direction where it will affect the least number of residues.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.RotateAroundPsiTorsion">
+<code class="descname">RotateAroundPsiTorsion</code><span class="sig-paren">(</span><em>index</em>, <em>angle</em><span class="optional">[</span>, <em>sequential=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.RotateAroundPsiTorsion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Rotates the <em>psi</em> torsion angle of the backbone at position <strong>index</strong> in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> by <strong>angle</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>index</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 index of the residue in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> for which the angle shout be set.</li>
+<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The angle</li>
+<li><strong>sequential</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; If <em>True</em>, the rotation will be propagated to all residues after the one with <strong>index</strong>. Otherwise it will be propagated in the direction where it will affect the least number of residues.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.RotateAroundOmegaTorsion">
+<code class="descname">RotateAroundOmegaTorsion</code><span class="sig-paren">(</span><em>index</em>, <em>angle</em><span class="optional">[</span>, <em>sequential=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.RotateAroundOmegaTorsion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Rotates the <em>omega</em> torsion angle of the backbone at position <strong>index</strong> in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> by <strong>angle</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>index</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 index of the residue in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> for which the angle shout be set.</li>
+<li><strong>angle</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The angle</li>
+<li><strong>sequential</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; If <em>True</em>, the rotation will be propagated to all residues after the one with <strong>index</strong>. Otherwise it will be propagated in the direction where it will affect the least number of residues.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.GetPhiTorsion">
+<code class="descname">GetPhiTorsion</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.GetPhiTorsion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the <em>phi</em> torsion angle of the residue with <strong>index</strong> in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a></p>
+<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>index</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 index</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.GetPsiTorsion">
+<code class="descname">GetPsiTorsion</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.GetPsiTorsion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the <em>psi</em> torsion angle of the residue with <strong>index</strong> in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a></p>
+<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>index</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 index</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.GetOmegaTorsion">
+<code class="descname">GetOmegaTorsion</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.GetOmegaTorsion" title="Permalink to this definition">¶</a></dt>
+<dd><p>Get the <em>omega</em> torsion angle of the residue with <strong>index</strong> in the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a></p>
+<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>index</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 index</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.ReplaceFragment">
+<code class="descname">ReplaceFragment</code><span class="sig-paren">(</span><em>sub_fragment</em>, <em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.ReplaceFragment" title="Permalink to this definition">¶</a></dt>
+<dd><p>Replaces a fragment of the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> starting at position <strong>index</strong> by the <strong>sub_fragment</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>sub_fragment</strong> (<a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; The fragment to be inserted</li>
+<li><strong>index</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 position at which the fragment replacement will begin</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.CARMSD">
+<code class="descname">CARMSD</code><span class="sig-paren">(</span><em>other</em><span class="optional">[</span>, <em>superposed_rmsd=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.CARMSD" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates the C-alpha RMSD between this <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> and an <strong>other</strong> backbone list.</p>
+<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"><ul class="first last simple">
+<li><strong>other</strong> (<a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Other backbone list</li>
+<li><strong>superposed_rmsd</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; whether to superpose before calculating the RMSD</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.RMSD">
+<code class="descname">RMSD</code><span class="sig-paren">(</span><em>other</em><span class="optional">[</span>, <em>superposed_rmsd=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.RMSD" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates the RMSD between this <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> and an <strong>other</strong> backbone list.</p>
+<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"><ul class="first last simple">
+<li><strong>other</strong> (<a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Other backbone list</li>
+<li><strong>superposed_rmsd</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; whether to superpose before calculating the RMSD</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.SuperposeOnto">
+<code class="descname">SuperposeOnto</code><span class="sig-paren">(</span><em>other</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.SuperposeOnto" title="Permalink to this definition">¶</a></dt>
+<dd><p>Superposes this <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> onto another one</p>
+<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>other</strong> (<a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; The other backbone list</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.insert">
+<code class="descname">insert</code><span class="sig-paren">(</span><em>index</em>, <em>bb</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.insert" title="Permalink to this definition">¶</a></dt>
+<dd><p>Insert the backbone <strong>bb</strong> into the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> at position <strong>index</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>index</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 index</li>
+<li><strong>bb</strong> (<a class="reference internal" href="#promod3.loop.Backbone" title="promod3.loop.Backbone"><code class="xref py py-class docutils literal"><span class="pre">Backbone</span></code></a>) &#8211; The backbone</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneList.append">
+<code class="descname">append</code><span class="sig-paren">(</span><em>bb</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneList.append" title="Permalink to this definition">¶</a></dt>
+<dd><p>Appends the backbone <strong>bb</strong> at the end of the <a class="reference internal" href="#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>.</p>
+<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>bb</strong> (<a class="reference internal" href="#promod3.loop.Backbone" title="promod3.loop.Backbone"><code class="xref py py-class docutils literal"><span class="pre">Backbone</span></code></a>) &#8211; The backbone</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Backbone</a><ul>
+<li><a class="reference internal" href="#the-basic-building-blocks">The basic building blocks</a></li>
+<li><a class="reference internal" href="#editing-full-stretches-of-backbone-residues">Editing full stretches of backbone residues</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="index.html"
+                        title="previous chapter"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="torsion_sampler.html"
+                        title="next chapter">Torsion Sampler</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/loop/backbone.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/loop/backbone.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/loop/backbone_loop_score.html b/doc/html/loop/backbone_loop_score.html
new file mode 100644
index 0000000000000000000000000000000000000000..25097d04474229b184459aa89087cb43dea32b80
--- /dev/null
+++ b/doc/html/loop/backbone_loop_score.html
@@ -0,0 +1,695 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Loop Scoring &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="loop - Loop Modelling" href="index.html" />
+    <link rel="next" title="Monte Carlo Sampling" href="monte_carlo.html" />
+    <link rel="prev" title="Loop Closing" href="loop_closing.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="monte_carlo.html" title="Monte Carlo Sampling"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="loop_closing.html" title="Loop Closing"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="loop-scoring">
+<h1>Loop Scoring<a class="headerlink" href="#loop-scoring" title="Permalink to this headline">¶</a></h1>
+<p>PROMOD3 provides several terms to assess a loop conformations plausibility.
+This is done using the <a class="reference internal" href="#promod3.loop.BackboneLoopScorer" title="promod3.loop.BackboneLoopScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneLoopScorer</span></code></a>. To be used, the scorer
+must be initialized with a seqres. After initialization the structural
+environment can be set. This environment defines the particles a certain
+loop interacts with and can be reset/extended at any time in the modelling
+process. All values of the different scores can be set manually. Once the
+scores are set, the scorer can be saved/loaded from/to disk.
+Some of the available scores are statistical potential based.
+When setting up an empty scorer, the parametrization and the score values
+of these potentials have to be set manually.</p>
+<div class="section" id="the-backboneloopscorer">
+<h2>The BackboneLoopScorer<a class="headerlink" href="#the-backboneloopscorer" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.loop.BackboneLoopScorer">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">BackboneLoopScorer</code><a class="headerlink" href="#promod3.loop.BackboneLoopScorer" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.Save">
+<code class="descname">Save</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.Save" title="Permalink to this definition">¶</a></dt>
+<dd><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>filename</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name of file, the scorer will be dumped into.
+All model specific information is lost.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.Load">
+<code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.Load" title="Permalink to this definition">¶</a></dt>
+<dd><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>filename</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name of file, the scorer will be loaded from.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if file doesn&#8217;t exist</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.SetCBetaPotentialParameters">
+<code class="descname">SetCBetaPotentialParameters</code><span class="sig-paren">(</span><em>cbeta_cutoff</em>, <em>cbeta_bins</em>, <em>cbeta_seq_sep</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.SetCBetaPotentialParameters" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parametrizes a pairwise distance dependent statistical potential considering
+pairwise distances between cbeta atoms.</p>
+<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"><ul class="first simple">
+<li><strong>cbeta_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The maximum distance of two cbeta atoms to be
+considered</li>
+<li><strong>cbeta_bins</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; Number of equally sized bins to describe the
+cbeta distances in a discrete manner.</li>
+<li><strong>cbeta_seq_sep</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; Minimal separation in sequence two cbeta atoms must
+have to be considered</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if <em>cbeta_cutoff</em> is negative or
+<em>cbeta_bins</em> is &lt;= 0</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.SetTorsionPotentialParameters">
+<code class="descname">SetTorsionPotentialParameters</code><span class="sig-paren">(</span><em>group_definitions</em>, <em>torsion_bins</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.SetTorsionPotentialParameters" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parametrizes a torsion statistical potential, that assigns energies based
+on the identity of three consecutive residues and the phi/psi dihedral
+angles of the central residue. The group definitions are the same as they
+are used in the <a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a>.</p>
+<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"><ul class="first simple">
+<li><strong>group_definitions</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; List of strings describing groups of residues
+for which separate phi/psi dependent energies
+can be set.</li>
+<li><strong>torsion_bins</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; Number of equally sized bins to describe the
+torsion angles in a discrete manner.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if torsion_bins is &lt;= 0 or
+one possible combination of the 20 standard amino
+acids is not covered by any entry of <em>group_definitions</em></p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.SetCBPackingPotentialParameters">
+<code class="descname">SetCBPackingPotentialParameters</code><span class="sig-paren">(</span><em>cb_packing_cutoff</em>, <em>cb_packing_max_count</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.SetCBPackingPotentialParameters" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parametrizes a cb packing statistical potential, that assigns energies
+based on the number of other cbeta atoms in the environment.</p>
+<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"><ul class="first simple">
+<li><strong>cb_packing_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Radius in which other cbeta atoms are counted</li>
+<li><strong>cb_packing_max_count</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; If number of other cbeta atoms exceeds
+<em>cb_packing_max_count</em>, it will be set to
+this number.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if <em>cb_packing_cutoff</em> is &lt; 0 or
+<em>cb_packing_max_count</em> is &lt;= 0</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.SetHBondPotentialParameters">
+<code class="descname">SetHBondPotentialParameters</code><span class="sig-paren">(</span><em>hb_min_d</em>, <em>hb_max_d</em>, <em>hb_min_alpha</em>, <em>hb_max_alpha</em>, <em>hb_min_beta</em>, <em>hb_max_beta</em>, <em>hb_min_gamma</em>, <em>hb_max_gamma</em>, <em>hb_d_bins</em>, <em>hb_alpha_bins</em>, <em>hb_beta_bins</em>, <em>hb_gamma_bins</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.SetHBondPotentialParameters" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parametrizes an HBond potential similar to the one defined in the Rosetta
+energy function. It considers the CA, C and O positions from the hbond
+acceptor as well as the N and H positions from the hbond donor.
+4 Parameters describe their relative orientation.
+d is the H-O distance, alpha is the angle O-H-N, beta is the angle  C-N-H
+and gamma is the dihedral between CA-C-O-H. An energy function for these
+parameters is built for three different states. State 1 for helical
+residues, state 2 for extended residues and state 0 for other residues.
+If the state of two interacting particles is the same, thats the one
+from which the energy is extracted. In all other cases, the energy is
+extracted from the 0 state.</p>
+<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"><ul class="first simple">
+<li><strong>hb_min_d</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Minimal H-O distance, that interaction gets considered.</li>
+<li><strong>hb_max_d</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Maximal H-O distance, that interaction gets considered.</li>
+<li><strong>hb_min_alpha</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Minimal O-H-N angle, that interaction gets considered.</li>
+<li><strong>hb_max_alpha</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Maximal O-H-N angle, that interaction gets considered.</li>
+<li><strong>hb_min_beta</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Minimal C-N-H angle, that interaction gets considered.</li>
+<li><strong>hb_max_beta</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Maximal C-N-H angle, that interaction gets considered.</li>
+<li><strong>hb_min_gamma</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Minimal CA-C-O-H dihedral, that interaction gets
+considered.</li>
+<li><strong>hb_max_gamma</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Maximal CA-C-O-H dihedral, that interaction gets
+considered.</li>
+<li><strong>hb_d_bins</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; Number of equally sized bins to describe the H-O distance
+in a discrete manner.</li>
+<li><strong>hb_alpha_bins</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; Number of equally sized bins to describe the O-H-N
+angle in a discrete angle.</li>
+<li><strong>hb_beta_bins</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; Number of equally sized bins to describe the C-N-H
+angle in a discrete angle.</li>
+<li><strong>hb_gamma_bins</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; Number of equally sized bins to describe the CA-C-O-H
+dihedral in a discrete angle.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if one of the bin parameters is &lt;= 0
+or a max parameter is smaller than its min counterpart.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.SetCBetaEnergy">
+<code class="descname">SetCBetaEnergy</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>bin</em>, <em>e</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.SetCBetaEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>a</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code>) &#8211; Identity of first interaction partner.</li>
+<li><strong>b</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code>) &#8211; Identity of second interaction partner.</li>
+<li><strong>bin</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; Discrete bin describing the interaction distance based
+on the previously defined <em>cbeta_cutoff</em> and
+<em>cbeta_bins</em>.</li>
+<li><strong>e</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Energy to be set</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if invalid bin or amino acid is
+given</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.SetTorsionEnergy">
+<code class="descname">SetTorsionEnergy</code><span class="sig-paren">(</span><em>group_id_idx</em>, <em>phi_bin</em>, <em>psi_bin</em>, <em>e</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.SetTorsionEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>group_id_idx</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; Index of group identifier given at setting up the
+torsion potential.</li>
+<li><strong>phi_bin</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; Discrete bin describing the phi angle based on
+the previously defined <em>torsion_bins</em></li>
+<li><strong>psi_bin</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; Discrete bin describing the psi angle based on
+the previously defined <em>torsion_bins</em></li>
+<li><strong>e</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Energy to be set</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if invalid angle bin or
+group_id_idx is given.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.SetCBPackingEnergy">
+<code class="descname">SetCBPackingEnergy</code><span class="sig-paren">(</span><em>a</em>, <em>count</em>, <em>e</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.SetCBPackingEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>a</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code>) &#8211; Identity of amino acid</li>
+<li><strong>count</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; Number of surrounding cb positions</li>
+<li><strong>e</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Energy to be set</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if <em>a</em> is invalid or <em>count</em>
+exceeds previously defined <em>max_count</em></p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.SetHBondEnergy">
+<code class="descname">SetHBondEnergy</code><span class="sig-paren">(</span><em>state</em>, <em>d_bin</em>, <em>alpha_bin</em>, <em>beta_bin</em>, <em>gamma_bin</em>, <em>e</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.SetHBondEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>state</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; State describing the actual secondary structure
+(1:helical, 2:extended, 0: other)</li>
+<li><strong>d_bin</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; Discrete bin describing the H-O distance based on
+the previously set parametrization.</li>
+<li><strong>alpha_bin</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; Discrete bin describing the O-H-N angle based on the
+previously set parametrization.</li>
+<li><strong>beta_bin</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; Discrete bin describing the C-N-H angle based on the
+previously set parametrization.</li>
+<li><strong>gamma_bin</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; Discrete bin describing the CA-C-O-H dihedral based on
+the previously set parametrization.</li>
+<li><strong>e</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Energy to be set</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if state is not in [0,1,2] or one
+of the bins is invalid.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.Initialize">
+<code class="descname">Initialize</code><span class="sig-paren">(</span><em>seqres</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.Initialize" title="Permalink to this definition">¶</a></dt>
+<dd><p>Set up internal scorer with given seqres</p>
+<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>seqres</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Internal SEQRES to be set. Whenever setting structural
+data, consistency with this SEQRES is encorced.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> when <em>seqres</em> contains invalid
+one letter code</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">Initialize</code><span class="sig-paren">(</span><em>seqres_list</em><span class="sig-paren">)</span></dt>
+<dd><p>Set up internal scorer with given seqres_list</p>
+<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>seqres_list</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; Internal SEQRES to be set. Every entry in the list
+represents one chain. Whenever setting structural
+data, consistency with these SEQRES is encorced.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> when <em>seqres_list</em> contains
+element with invalid one letter code</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.SetEnvironment">
+<code class="descname">SetEnvironment</code><span class="sig-paren">(</span><em>env</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.SetEnvironment" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets structural environment with which loops to be scored interact.
+If structural data for specific residues is already set, the
+data gets resetted for these positions.</p>
+<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>env</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityView</span></code></a>) &#8211; Structral data to be set as environment. The chains
+in <em>env</em> are expected to be in the same order as the
+provided SEQRES items.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if scorer has never been
+initialized with a SEQRES or when <em>env</em> is inconsistent
+with previously set SEQRES. This can be because of
+corrupt residue numbers or sequence mismatches.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">SetEnvironment</code><span class="sig-paren">(</span><em>bb_list</em>, <em>start_resnum</em><span class="optional">[</span>, <em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span></dt>
+<dd><p>Sets structural environment with which loops to be scored interact.
+If structural data for specific residues is already set, the
+data gets resetted for these positions.</p>
+<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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Structural data to be set as environment.</li>
+<li><strong>start_resnum</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; ResNum defining the position in the SEQRES
+(first element starts with one!)</li>
+<li><strong>chain_index</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; Index of chain the structural data belongs to.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if sequence of <em>bb_list</em> is
+inconsistent with previously provided SEQRES or
+when either start_resnum or chain_index point to
+invalid positions in the SEQRES.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.CalculateClashScore">
+<code class="descname">CalculateClashScore</code><span class="sig-paren">(</span><em>bb_list</em>, <em>start_resnum</em><span class="optional">[</span>, <em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.CalculateClashScore" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to calculate the clash score</li>
+<li><strong>start_resnum</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; ResNum defining the position in the SEQRES
+(first element starts with one!)</li>
+<li><strong>chain_index</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; Index of the chain the loop belongs to</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">clash score</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if size of <em>bb_list</em> is smaller
+than 3, the <em>chain_index</em>/<em>start_resnum</em> lead to
+invalid positions in the SEQRES or the scorer
+has never been initialized with a SEQRES.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.CalculateCBetaScore">
+<code class="descname">CalculateCBetaScore</code><span class="sig-paren">(</span><em>bb_list</em>, <em>start_resnum</em><span class="optional">[</span>, <em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.CalculateCBetaScore" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to calculate the cbeta score</li>
+<li><strong>start_resnum</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; ResNum defining the position in the SEQRES
+(first element starts with one!)</li>
+<li><strong>chain_index</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; Index of the chain the loop belongs to</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">cbeta score</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if size of <em>bb_list</em> is smaller
+than 3, the <em>chain_index</em>/<em>start_resnum</em> lead to
+invalid positions in the SEQRES or when the
+according potential or scorer have never been properly
+initialized.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.CalculateTorsionScore">
+<code class="descname">CalculateTorsionScore</code><span class="sig-paren">(</span><em>bb_list</em>, <em>start_resnum</em><span class="optional">[</span>, <em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.CalculateTorsionScore" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to calculate the torsion score</li>
+<li><strong>start_resnum</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; ResNum defining the position in the SEQRES
+(first element starts with one!)</li>
+<li><strong>chain_index</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; Index of the chain the loop belongs to</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">torsion score</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if size of <em>bb_list</em> is smaller
+than 3, the <em>chain_index</em>/<em>start_resnum</em> lead to
+invalid positions in the SEQRES or when the
+according potential or scorer have never been properly
+initialized.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.CalculateCBPackingScore">
+<code class="descname">CalculateCBPackingScore</code><span class="sig-paren">(</span><em>bb_list</em>, <em>start_resnum</em><span class="optional">[</span>, <em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.CalculateCBPackingScore" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to calculate the packing score</li>
+<li><strong>start_resnum</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; ResNum defining the position in the SEQRES
+(first element starts with one!)</li>
+<li><strong>chain_index</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; Index of the chain the loop belongs to</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">packing score</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if size of <em>bb_list</em> is smaller
+than 3, the <em>chain_index</em>/<em>start_resnum</em> lead to
+invalid positions in the SEQRES or when the
+according potential or scorer have never been properly
+initialized.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.CalculateHBondScore">
+<code class="descname">CalculateHBondScore</code><span class="sig-paren">(</span><em>bb_list</em>, <em>start_resnum</em><span class="optional">[</span>, <em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.CalculateHBondScore" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to calculate the hbond score</li>
+<li><strong>start_resnum</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; ResNum defining the position in the SEQRES
+(first element starts with one!)</li>
+<li><strong>chain_index</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; Index of the chain the loop belongs to</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">hbond score</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if size of <em>bb_list</em> is smaller
+than 3, the <em>chain_index</em>/<em>start_resnum</em> lead to
+invalid positions in the SEQRES or when the
+according potential or scorer have never been properly
+initialized.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.CalculateDSSPHBondScore">
+<code class="descname">CalculateDSSPHBondScore</code><span class="sig-paren">(</span><em>bb_list</em>, <em>start_resnum</em><span class="optional">[</span>, <em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.CalculateDSSPHBondScore" title="Permalink to this definition">¶</a></dt>
+<dd><p>Instead of calculate an hbond score based on a statistical potential,
+an the DSSP hbond energy function gets evaluated in this function.</p>
+<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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to calculate the hbond score</li>
+<li><strong>start_resnum</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; ResNum defining the position in the SEQRES
+(first element starts with one!)</li>
+<li><strong>chain_index</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; Index of the chain the loop belongs to</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">hbond score</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if size of <em>bb_list</em> is smaller
+than 3, the <em>chain_index</em>/<em>start_resnum</em> lead to
+invalid positions in the SEQRES or when the
+scorer has never been properly initialized.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.BackboneLoopScorer.TransOmegaTorsions">
+<code class="descname">TransOmegaTorsions</code><span class="sig-paren">(</span><em>bb_list</em><span class="optional">[</span>, <em>thresh = 20/180*pi</em>, <em>allow_prepro_cis=True</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneLoopScorer.TransOmegaTorsions" title="Permalink to this definition">¶</a></dt>
+<dd><p>Checks whether <em>bb_list</em> only contains trans omega torsion angles.</p>
+<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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to check</li>
+<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Allowed deviation from ideal trans angle (pi)</li>
+<li><strong>allow_prepro_cis</strong> &#8211; Flag, whether cis-omega torsions should be
+allowed in case of a subsequent proline.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> whether <em>bb_list</em> only contains
+trans-omega torsions.</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if size of <em>bb_list</em> is
+smaller than 3.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Loop Scoring</a><ul>
+<li><a class="reference internal" href="#the-backboneloopscorer">The BackboneLoopScorer</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="loop_closing.html"
+                        title="previous chapter">Loop Closing</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="monte_carlo.html"
+                        title="next chapter">Monte Carlo Sampling</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/loop/backbone_loop_score.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/loop/backbone_loop_score.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/loop/index.html b/doc/html/loop/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..8c9c026b5aa1b5914ce29f677c5325ea54644315
--- /dev/null
+++ b/doc/html/loop/index.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>loop - Loop Modelling &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="Documentation For Developes" href="../developers.html" />
+    <link rel="next" title="Backbone" href="backbone.html" />
+    <link rel="prev" title="rawmodel - Coordinate Modeling" href="../rawmodel/index.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="backbone.html" title="Backbone"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="../rawmodel/index.html" title="rawmodel - Coordinate Modeling"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" accesskey="U">Documentation For Developes</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="module-promod3.loop">
+<span id="loop-loop-modelling"></span><h1><a class="reference internal" href="#module-promod3.loop" title="promod3.loop: Loop Modelling"><code class="xref py py-mod docutils literal"><span class="pre">loop</span></code></a> - Loop Modelling<a class="headerlink" href="#module-promod3.loop" title="Permalink to this headline">¶</a></h1>
+<p>Tools and algorithms to for loop modelling.</p>
+<p>Contents:</p>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="backbone.html">Representing Loops</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="backbone.html#the-basic-building-blocks">The basic building blocks</a></li>
+<li class="toctree-l2"><a class="reference internal" href="backbone.html#editing-full-stretches-of-backbone-residues">Editing full stretches of backbone residues</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="torsion_sampler.html">Have a closer look at backbone dihedral angles</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="torsion_sampler.html#defining-amino-acid-triplets">Defining Amino Acid triplets</a></li>
+<li class="toctree-l2"><a class="reference internal" href="torsion_sampler.html#the-torsion-sampler-class">The Torsion Sampler Class</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="structure_db.html">A dump for structural data</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="structure_db.html#defining-chains-and-fragments">Defining Chains and Fragments</a></li>
+<li class="toctree-l2"><a class="reference internal" href="structure_db.html#the-database">The Database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="structure_db.html#finding-fragments-based-on-geometric-features">Finding Fragments based on Geometric Features</a></li>
+<li class="toctree-l2"><a class="reference internal" href="structure_db.html#finding-fragments-based-on-sequence-features">Finding Fragments based on Sequence Features</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="loop_closing.html">Closing Loops - adapt them to the environment</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="loop_closing.html#ccd">CCD</a></li>
+<li class="toctree-l2"><a class="reference internal" href="loop_closing.html#kic">KIC</a></li>
+<li class="toctree-l2"><a class="reference internal" href="loop_closing.html#relaxing-backbones">Relaxing Backbones</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="backbone_loop_score.html">Loop Scoring</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="backbone_loop_score.html#the-backboneloopscorer">The BackboneLoopScorer</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="monte_carlo.html">Generating Loops DeNovo</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="monte_carlo.html#sampler-objects">Sampler Objects</a></li>
+<li class="toctree-l2"><a class="reference internal" href="monte_carlo.html#closer-objects">Closer Objects</a></li>
+<li class="toctree-l2"><a class="reference internal" href="monte_carlo.html#scorer-objects">Scorer Objects</a></li>
+<li class="toctree-l2"><a class="reference internal" href="monte_carlo.html#cooler-objects">Cooler Objects</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="loop_candidate.html">Handle several loop candidates at once</a></li>
+<li class="toctree-l1"><a class="reference internal" href="load_loop_objects.html">Loading Precomputed Loop Objects</a></li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="../rawmodel/index.html"
+                        title="previous chapter"><code class="docutils literal"><span class="pre">rawmodel</span></code> - Coordinate Modeling</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="backbone.html"
+                        title="next chapter">Backbone</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/loop/index.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/loop/index.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/loop/load_loop_objects.html b/doc/html/loop/load_loop_objects.html
new file mode 100644
index 0000000000000000000000000000000000000000..f4e6d44fda1d6d0297d477362328450df176edb7
--- /dev/null
+++ b/doc/html/loop/load_loop_objects.html
@@ -0,0 +1,262 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Load Loop Objects &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="loop - Loop Modelling" href="index.html" />
+    <link rel="next" title="sidechain - Sidechain Modelling" href="../sidechain/index.html" />
+    <link rel="prev" title="Loop Candidates" href="loop_candidate.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="../sidechain/index.html" title="sidechain - Sidechain Modelling"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="loop_candidate.html" title="Loop Candidates"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="load-loop-objects">
+<h1>Load Loop Objects<a class="headerlink" href="#load-loop-objects" title="Permalink to this headline">¶</a></h1>
+<p>Several data objects are used throughout the loop module.
+PROMOD3 offers to load precomputed instances for direct usage.</p>
+<dl class="method">
+<dt id="promod3.loop.LoadTorsionSampler">
+<code class="descclassname">promod3.loop.</code><code class="descname">LoadTorsionSampler</code><span class="sig-paren">(</span><span class="optional">[</span><em>seed = 0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoadTorsionSampler" title="Permalink to this definition">¶</a></dt>
+<dd><p>Loads and returns a torsion sampler with an amino acid grouping
+as defined by Solis &amp; Rachovsky [1] that has been trained on
+non-redundant protein structures.</p>
+<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>seed</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; Seed for internal random number generator</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The torsion sampler</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoadTorsionSamplerCoil">
+<code class="descclassname">promod3.loop.</code><code class="descname">LoadTorsionSamplerCoil</code><span class="sig-paren">(</span><span class="optional">[</span><em>seed = 0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoadTorsionSamplerCoil" title="Permalink to this definition">¶</a></dt>
+<dd><p>Loads and returns a torsion sampler with an amino acid grouping
+as defined by Solis &amp; Rachovsky [1] that has been trained on coil
+residues of  non-redundant protein structures.</p>
+<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>seed</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; Seed for internal random number generator</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The torsion sampler</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoadTorsionSamplerHelical">
+<code class="descclassname">promod3.loop.</code><code class="descname">LoadTorsionSamplerHelical</code><span class="sig-paren">(</span><span class="optional">[</span><em>seed = 0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoadTorsionSamplerHelical" title="Permalink to this definition">¶</a></dt>
+<dd><p>Loads and returns a torsion sampler with an amino acid grouping
+as defined by Solis &amp; Rachovsky [1] that has been trained on helical
+residues of  non-redundant protein structures.</p>
+<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>seed</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; Seed for internal random number generator</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The torsion sampler</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoadTorsionSamplerExtended">
+<code class="descclassname">promod3.loop.</code><code class="descname">LoadTorsionSamplerExtended</code><span class="sig-paren">(</span><span class="optional">[</span><em>seed = 0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoadTorsionSamplerExtended" title="Permalink to this definition">¶</a></dt>
+<dd><p>Loads and returns a torsion sampler with an amino acid grouping
+as defined by Solis &amp; Rachovsky [1] that has been trained on extended
+residues of  non-redundant protein structures.</p>
+<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>seed</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; Seed for internal random number generator</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The torsion sampler</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoadFragDB">
+<code class="descclassname">promod3.loop.</code><code class="descname">LoadFragDB</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoadFragDB" title="Permalink to this definition">¶</a></dt>
+<dd><p>Loads and returns a FragDB with the default StructureDB attached.</p>
+<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">Returns:</th><td class="field-body">The Fragment database</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="structure_db.html#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal"><span class="pre">FragDB</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoadStructureDB">
+<code class="descclassname">promod3.loop.</code><code class="descname">LoadStructureDB</code><span class="sig-paren">(</span><span class="optional">[</span><em>load_frequencies=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoadStructureDB" title="Permalink to this definition">¶</a></dt>
+<dd><p>Loads and returns a structure db containing roughly 24000 chains form the
+PDB with redundancy cutoff of 90%</p>
+<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>load_frequencies</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; If True, the full database including profile
+information for every position gets loaded.
+A database without profiles loads faster and
+requires less memory. But it&#8217;s not possible
+to add new coordinates or call one of the
+profile dependent functions.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The structure db</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="structure_db.html#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">StructureDB</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoadBackboneLoopScorer">
+<code class="descclassname">promod3.loop.</code><code class="descname">LoadBackboneLoopScorer</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoadBackboneLoopScorer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Loads and returns a backbone loop scorer with already set statistical
+potentials.</p>
+<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">Returns:</th><td class="field-body">The scorer</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">BackboneLoopScore</span></code></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="docutils">
+<dt>[1] A. D. Solis and S. Rackovsky. Improvement of statistical potentials and</dt>
+<dd>threading score functions using information maximization.
+Proteins, 62(4):892–908, Mar 2006.</dd>
+</dl>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="loop_candidate.html"
+                        title="previous chapter">Loop Candidates</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="../sidechain/index.html"
+                        title="next chapter"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/loop/load_loop_objects.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/loop/load_loop_objects.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/loop/loop_candidate.html b/doc/html/loop/loop_candidate.html
new file mode 100644
index 0000000000000000000000000000000000000000..e196c126eaeed2549d5c1ff93b64ab3d3ca4df03
--- /dev/null
+++ b/doc/html/loop/loop_candidate.html
@@ -0,0 +1,833 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Loop Candidates &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="loop - Loop Modelling" href="index.html" />
+    <link rel="next" title="Load Loop Objects" href="load_loop_objects.html" />
+    <link rel="prev" title="Monte Carlo Sampling" href="monte_carlo.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="load_loop_objects.html" title="Load Loop Objects"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="monte_carlo.html" title="Monte Carlo Sampling"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="loop-candidates">
+<h1>Loop Candidates<a class="headerlink" href="#loop-candidates" title="Permalink to this headline">¶</a></h1>
+<dl class="class">
+<dt id="promod3.loop.LoopCandidate">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">LoopCandidate</code><span class="sig-paren">(</span><em>backbone_list</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidate" title="Permalink to this definition">¶</a></dt>
+<dd><p>Object representing a possible configuration of the backbone of a particular loop being modelled. Apart from the positions, stored in a <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>, it also has attributes storing different scores associated with the candidate (will be set by calling the corresponding scoring function in <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a>) as well as some information on the original structure from which this particular loop configuration was taken (in the case when the configuration was taken from the structural database).</p>
+<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>backbone_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Positions of the backbone atoms</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.loop.LoopCandidate.CARMSD">
+<code class="descname">CARMSD</code><span class="sig-paren">(</span><em>other</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidate.CARMSD" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates the C-alpha RMSD between this loop candidate and an <em>other</em> loop candidate, after superposition.</p>
+<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>other</strong> (<a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>) &#8211; Other loop</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidate.RMSD">
+<code class="descname">RMSD</code><span class="sig-paren">(</span><em>other</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidate.RMSD" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates the RMSD between this loop candidate and an <em>other</em> loop candidate, after superposition.</p>
+<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>other</strong> (<a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>) &#8211; Other loop</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidate.GetoriginalSequence">
+<code class="descname">GetoriginalSequence</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidate.GetoriginalSequence" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the sequence of the original loop from the structural database, i.e. the sequence of the piece of structure from which the loop was taken.</p>
+<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">Returns:</th><td class="field-body">A sequence</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidate.GetoriginalDSSPState">
+<code class="descname">GetoriginalDSSPState</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidate.GetoriginalDSSPState" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the secondary structure of the original loop from the structural database, i.e. the secondary structure of the piece of structure from which the loop was taken.</p>
+<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">Returns:</th><td class="field-body">The secondary structure code as given in DSSP</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.LoopCandidate.bb_list">
+<code class="descname">bb_list</code><a class="headerlink" href="#promod3.loop.LoopCandidate.bb_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>The backbone list containing the positions of the backbone atoms</p>
+<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">Type:</th><td class="field-body"><a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.LoopCandidate.stem_rmsd">
+<code class="descname">stem_rmsd</code><a class="headerlink" href="#promod3.loop.LoopCandidate.stem_rmsd" title="Permalink to this definition">¶</a></dt>
+<dd><p>The backbone RMSD of the two stem residues of the loop candidate relative to the stem residues for which the loop is being modelled. This is a measure of how well the loop candidate fits in the structure where it is being added.</p>
+<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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.LoopCandidate.clash_score">
+<code class="descname">clash_score</code><a class="headerlink" href="#promod3.loop.LoopCandidate.clash_score" title="Permalink to this definition">¶</a></dt>
+<dd><p>The clash score of the loop candidate</p>
+<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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.LoopCandidate.cbeta_score">
+<code class="descname">cbeta_score</code><a class="headerlink" href="#promod3.loop.LoopCandidate.cbeta_score" title="Permalink to this definition">¶</a></dt>
+<dd><p>The C-beta score of the loop candidate</p>
+<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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.LoopCandidate.torsion_score">
+<code class="descname">torsion_score</code><a class="headerlink" href="#promod3.loop.LoopCandidate.torsion_score" title="Permalink to this definition">¶</a></dt>
+<dd><p>The torsion score of the loop candidate</p>
+<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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.LoopCandidate.packing_score">
+<code class="descname">packing_score</code><a class="headerlink" href="#promod3.loop.LoopCandidate.packing_score" title="Permalink to this definition">¶</a></dt>
+<dd><p>The packing score of the loop candidate</p>
+<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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.LoopCandidate.hbond_score">
+<code class="descname">hbond_score</code><a class="headerlink" href="#promod3.loop.LoopCandidate.hbond_score" title="Permalink to this definition">¶</a></dt>
+<dd><p>The H-bond score of the loop candidate</p>
+<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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.LoopCandidate.dssp_hbond_score">
+<code class="descname">dssp_hbond_score</code><a class="headerlink" href="#promod3.loop.LoopCandidate.dssp_hbond_score" title="Permalink to this definition">¶</a></dt>
+<dd><p>The DSSP H-bond of the loop candidate</p>
+<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">Type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.loop.LoopCandidates">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">LoopCandidates</code><span class="sig-paren">(</span><em>n_stem</em>, <em>c_stem</em>, <em>seq</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates" title="Permalink to this definition">¶</a></dt>
+<dd><p>The <em>LoopCandidates</em> is the basic object used for loop modelling. It contains the positions of the two anchor residues, the <em>n_stem</em> and <em>c_stem</em> residues, and thes sequence of the residues to be modelled in between these anchor residues.
+It also contains a list of <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>, which are possible conformations of the backbone between the stem residues.</p>
+<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"><ul class="first last simple">
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; The residue at the N-terminal end of the loop</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; The residue at the C-terminal end of the loop</li>
+<li><strong>seq</strong> &#8211; The sequence of residues to be added between the <em>n_stem</em> and <em>c_stem</em></li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.FillFromDatabase">
+<code class="descname">FillFromDatabase</code><span class="sig-paren">(</span><em>n_stem</em>, <em>c_stem</em>, <em>seq</em>, <em>frag_db</em>, <em>structural_db</em><span class="optional">[</span>, <em>extended_search=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.FillFromDatabase" title="Permalink to this definition">¶</a></dt>
+<dd><p>Searches for loop candidates matching the length (number of residues in <em>seq</em>) and geometry (of <em>n_stem</em> and <em>c_stem</em>) of the loop to be modelled in a fragment database.</p>
+<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"><ul class="first simple">
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; The residue at the N-terminal end of the loop</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; The residue at the C-terminal end of the loop</li>
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; The sequence of residues to be added between the <em>n_stem</em> and <em>c_stem</em></li>
+<li><strong>frag_db</strong> (<a class="reference internal" href="structure_db.html#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal"><span class="pre">FragDB</span></code></a>) &#8211; The fragment database</li>
+<li><strong>structural_db</strong> &#8211; The according structural database</li>
+<li><strong>extended_search</strong> (<code class="xref py py-class docutils literal"><span class="pre">Bool</span></code>) &#8211; Wether search should be extended to fragments matching the geometry of the <em>n_stem</em> and <em>c_stem</em> a bit less precisely.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">A list of loop candidates</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a></p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.FillFromMonteCarloSampler">
+<code class="descname">FillFromMonteCarloSampler</code><span class="sig-paren">(</span><em>n_stem</em>, <em>c_stem</em>, <em>initial_bb</em>, <em>seq</em>, <em>num_loops</em>, <em>steps</em>, <em>sampler</em>, <em>closer</em>, <em>scorer</em>, <em>cooler</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.FillFromMonteCarloSampler" title="Permalink to this definition">¶</a></dt>
+<dd><p>Uses Monte Carlo simulated annealing to sample the loop to be modelled.</p>
+<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"><ul class="first simple">
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; The residue at the N-terminal end of the loop</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; The residue at the C-terminal end of the loop</li>
+<li><strong>initial_bb</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Initial configuration used for the sampling</li>
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; The sequence of residues to be added between the <em>n_stem</em> and <em>c_stem</em></li>
+<li><strong>num_loops</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; Number of loop candidates to return</li>
+<li><strong>steps</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; Number of MC steps to perform for each loop candidate generated.</li>
+<li><strong>cooler</strong> (<code class="xref py py-class docutils literal"><span class="pre">MonteCarloCooler</span></code>) &#8211; Controls the temperature profile of the simulated annealing</li>
+<li><strong>scorer</strong> (<code class="xref py py-class docutils literal"><span class="pre">MonteCarloScorer</span></code>) &#8211; Used to score the generated configurations at each MC step.</li>
+<li><strong>sampler</strong> (<a class="reference internal" href="monte_carlo.html#promod3.loop.MonteCarloSampler" title="promod3.loop.MonteCarloSampler"><code class="xref py py-class docutils literal"><span class="pre">MonteCarloSampler</span></code></a>) &#8211; Used to generate a new configuration at each MC step.</li>
+<li><strong>closer</strong> (<code class="xref py py-class docutils literal"><span class="pre">MonteCarloCloser</span></code>) &#8211; Used to close the loop (make it match the <em>n_stem</em> and <em>c_stem</em> geometry) after each MC step.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">A list of loop candidates</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a></p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">FillFromMonteCarloSampler</code><span class="sig-paren">(</span><em>n_stem</em>, <em>c_stem</em>, <em>seq</em>, <em>num_loops</em>, <em>steps</em>, <em>sampler</em>, <em>closer</em>, <em>scorer</em>, <em>cooler</em><span class="sig-paren">)</span></dt>
+<dd><p>Uses Monte Carlo simulated annealing to sample the loop to be modelled.</p>
+<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"><ul class="first simple">
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; The residue at the N-terminal end of the loop</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; The residue at the C-terminal end of the loop</li>
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; The sequence of residues to be added between the <em>n_stem</em> and <em>c_stem</em></li>
+<li><strong>num_loops</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; Number of loop candidates to return</li>
+<li><strong>steps</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; Number of MC steps to perform for each loop candidate generated.</li>
+<li><strong>cooler</strong> (<code class="xref py py-class docutils literal"><span class="pre">MonteCarloCooler</span></code>) &#8211; Controls the temperature profile of the simulated annealing</li>
+<li><strong>scorer</strong> (<code class="xref py py-class docutils literal"><span class="pre">MonteCarloScorer</span></code>) &#8211; Used to score the generated configurations at each MC step.</li>
+<li><strong>sampler</strong> (<a class="reference internal" href="monte_carlo.html#promod3.loop.MonteCarloSampler" title="promod3.loop.MonteCarloSampler"><code class="xref py py-class docutils literal"><span class="pre">MonteCarloSampler</span></code></a>) &#8211; Used to generate a new configuration at each MC step.</li>
+<li><strong>closer</strong> (<code class="xref py py-class docutils literal"><span class="pre">MonteCarloCloser</span></code>) &#8211; Used to close the loop (make it match the <em>n_stem</em> and <em>c_stem</em> geometry) after each MC step.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">A list of loop candidates</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a></p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.ClusterCandidates">
+<code class="descname">ClusterCandidates</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.ClusterCandidates" title="Permalink to this definition">¶</a></dt>
+<dd><p>Clusters the loop candidates according to their pairwise CA-RMSD using a FLAME (fuzzy clustering by local approximation fo memberships) clustering algorithm.</p>
+<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">Returns:</th><td class="field-body">A list of <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a>. Each element in the list corresponds to the candidates in one cluster.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.ApplyCCD">
+<code class="descname">ApplyCCD</code><span class="sig-paren">(</span><em>torsion_sampler</em><span class="optional">[</span>, <em>max_iterations=1000</em>, <em>rmsd_cutoff=0.1</em>, <em>keep_non_converged=false</em>, <em>random_seed=0</em>, <em>step_size=1.0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.ApplyCCD" title="Permalink to this definition">¶</a></dt>
+<dd><p>Closes all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a> in <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a> (i.e. modifies the <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a> so that its stem residues match those of the <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a>, which are the stem residues of the loop being modelled), using the CCD algorithm. CCD (cyclic coordinate descent) is an iterative minimization algorithm. At each step of the closing the <em>torsion_sampler</em> is used to calculate the probability of the proposed move and accepted or not depending on a metropolis criterium.</p>
+<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"><ul class="first last simple">
+<li><strong>torsion_sampler</strong> (<a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a>) &#8211; The torsion sampler</li>
+<li><strong>max_iterations</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; Maximum number of iteration</li>
+<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Cutoff in stem residue RMSD used to determine convergence</li>
+<li><strong>keep_non_converged</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Wether to keep loop candidates for which the closing did not converged</li>
+<li><strong>random_seed</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; seed for random number generator</li>
+<li><strong>step_size</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; size of the steps taken during loop closing.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">ApplyCCD</code><span class="sig-paren">(</span><em>torsion_samplers</em><span class="optional">[</span>, <em>max_iterations=1000</em>, <em>rmsd_cutoff=0.1</em>, <em>keep_non_converged=false</em>, <em>random_seed=0</em>, <em>step_size=1.0</em><span class="optional">]</span><span class="sig-paren">)</span></dt>
+<dd><p>Closes all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a> in <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a> (i.e. modifies the <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a> so that its stem residues match those of the <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a>, which are the stem residues of the loop being modelled) using the CCD algorithm. CCD (cyclic coordinate descent) is an iterative minimization algorithm. At each step of the closing the <em>torsion_sampler</em> is used to calculate the probability of the proposed move and accepted or not depending on a metropolis criterium.</p>
+<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"><ul class="first last simple">
+<li><strong>torsion_sampler</strong> &#8211; A list containing one torsion sampler for each residue in the loop.</li>
+<li><strong>max_iterations</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; Maximum number of iteration</li>
+<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Cutoff in stem residue RMSD used to determine convergence</li>
+<li><strong>keep_non_converged</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Wether to keep loop candidates for which the closing did not converged</li>
+<li><strong>random_seed</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; seed for random number generator</li>
+<li><strong>step_size</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; size of the steps taken during loop closing.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">ApplyCCD</code><span class="sig-paren">(</span><span class="optional">[</span><em>max_iterations=1000</em>, <em>rmsd_cutoff=0.1</em>, <em>keep_non_converged=false</em>, <em>random_seed=0</em>, <em>step_size=1.0</em><span class="optional">]</span><span class="sig-paren">)</span></dt>
+<dd><p>Closes all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a> in <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a> (i.e. modifies the <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a> so that its stem residues match those of the <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a>, which are the stem residues of the loop being modelled), using the CCD algorithm. CCD (cyclic coordinate descent) is an iterative minimization algorithm.</p>
+<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"><ul class="first last simple">
+<li><strong>max_iterations</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; Maximum number of iteration</li>
+<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Cutoff in stem residue RMSD used to determine convergence</li>
+<li><strong>keep_non_converged</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Wether to keep loop candidates for which the closing did not converged</li>
+<li><strong>random_seed</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; seed for random number generator</li>
+<li><strong>step_size</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; size of the steps taken during loop closing.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.ApplyKIC">
+<code class="descname">ApplyKIC</code><span class="sig-paren">(</span><em>pivot_one</em>, <em>pivot_two</em>, <em>pivot_three</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.ApplyKIC" title="Permalink to this definition">¶</a></dt>
+<dd><p>Closes all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a> in <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a> (i.e. modifies the <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a> so that its stem residues match those of the <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a>, which are the stem residues of the loop being modelled), using the KIC algorithm. This algorithm finds analytical solutions for closing the loop by modifying the torsion angles of just three pivot residues.</p>
+<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"><ul class="first last simple">
+<li><strong>pivot_one</strong> &#8211; Maximum number of iteration</li>
+<li><strong>pivot_two</strong> &#8211; Cutoff in stem residue RMSD used</li>
+<li><strong>pivot_three</strong> &#8211; Wether to keep loop candidates for</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.ToEntity">
+<code class="descname">ToEntity</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.ToEntity" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms the loop candidate with index <em>index</em> in the list of candidates into an <a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a>.</p>
+<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>index</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 index of the <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a> that will be transformed into an class:<cite>ost.mol.EntityHandle</cite></td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">An class:<cite>ost.mol.EntityHandle</cite></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.InsertInto">
+<code class="descname">InsertInto</code><span class="sig-paren">(</span><em>entity</em>, <em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.InsertInto" title="Permalink to this definition">¶</a></dt>
+<dd><p>Inserts the loop candidate with index <em>index</em> in the list of candidates into the <em>entity</em>.</p>
+<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"><ul class="first last simple">
+<li><strong>index</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 index of the <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a></li>
+<li><strong>entity</strong> (class:<cite>ost.mol.EntityHandle</cite>) &#8211; The entity</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.CalculateClasScores">
+<code class="descname">CalculateClasScores</code><span class="sig-paren">(</span><span class="optional">[</span><em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.CalculateClasScores" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and assigns the clash score for each <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>. Scores include interactions within the loop and between the loop and the environment (set in the scorer).</p>
+<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>chain_index</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 index of the chain to which the loop belongs (index relative to the entity forming the environment in the <code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code>)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.CalculateBetaScores">
+<code class="descname">CalculateBetaScores</code><span class="sig-paren">(</span><span class="optional">[</span><em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.CalculateBetaScores" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and assigns the C-beta score for each <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>. Scores include interactions within the loop and between the loop and the environment (set in the scorer).
+This score is a pairwise statistical potential based only on C-beta positions.</p>
+<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>chain_index</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 index of the chain to which the loop belongs (index relative to the entity forming the environment in the <code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code>)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.CalculateTorsionScores">
+<code class="descname">CalculateTorsionScores</code><span class="sig-paren">(</span><span class="optional">[</span><em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.CalculateTorsionScores" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and assigns the torsion score for each <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>. This score only includes contributions from the torsion angles of the <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>.</p>
+<p>This score is a statistical potential based only on backbone dihedral angles specific for triplet of residues (torsion potential depends on the identity of the residue and its two neighbors).</p>
+<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>chain_index</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 index of the chain to which the loop belongs (index relative to the entity forming the environment in the <code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code>)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.CalculatePackingScores">
+<code class="descname">CalculatePackingScores</code><span class="sig-paren">(</span><span class="optional">[</span><em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.CalculatePackingScores" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and assigns the packing score for each <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>. Scores include interactions within the loop and between the loop and the environment (set in the scorer).
+This score is a statistical potential measuring and scoring the solvent exposure of the residues.</p>
+<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>chain_index</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 index of the chain to which the loop belongs (index relative to the entity forming the environment in the <code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code>)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.CalculateHBondcores">
+<code class="descname">CalculateHBondcores</code><span class="sig-paren">(</span><span class="optional">[</span><em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.CalculateHBondcores" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and assigns the HBond score for each <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>. Scores include interactions within the loop and between the loop and the environment (set in the scorer).
+This score measures the energy of H-bonds.</p>
+<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>chain_index</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 index of the chain to which the loop belongs (index relative to the entity forming the environment in the <code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code>)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.CalculateDSSPHBondScores">
+<code class="descname">CalculateDSSPHBondScores</code><span class="sig-paren">(</span><span class="optional">[</span><em>chain_index=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.CalculateDSSPHBondScores" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and assigns the C-beta score for each <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>. Scores include interactions within the loop and between the loop and the environment (set in the scorer).
+This score measures the energy of H-bonds as defined by DSSP.</p>
+<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>chain_index</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 index of the chain to which the loop belongs (index relative to the entity forming the environment in the <code class="xref py py-class docutils literal"><span class="pre">BackboneScorer</span></code>)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.CalculateStemRMSD">
+<code class="descname">CalculateStemRMSD</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.CalculateStemRMSD" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and assigns the stem RMSD (i.e. the RMSD between the stem residues of the loop candidate and the stem residues of the loop being modelled) for each <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.GetAVGClasScore">
+<code class="descname">GetAVGClasScore</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.GetAVGClasScore" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The average of the clash scores of all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)">float</a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.GetAVGCBetaScore">
+<code class="descname">GetAVGCBetaScore</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.GetAVGCBetaScore" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The average of the C-beta scores of all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)">float</a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.GetAVGTorsionScore">
+<code class="descname">GetAVGTorsionScore</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.GetAVGTorsionScore" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The average of the torsion scores of all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)">float</a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.GetAVGPackingScore">
+<code class="descname">GetAVGPackingScore</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.GetAVGPackingScore" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The average of the packing scores of all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)">float</a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.GetAVGHBondcore">
+<code class="descname">GetAVGHBondcore</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.GetAVGHBondcore" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The average of the H-bond scores of all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)">float</a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.GetAVGDSSPHBondScore">
+<code class="descname">GetAVGDSSPHBondScore</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.GetAVGDSSPHBondScore" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The average of the DSSP H-bond scores of all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)">float</a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.GetAVGStemRMSD">
+<code class="descname">GetAVGStemRMSD</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.GetAVGStemRMSD" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The average of the stem RMSDs of all <a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)">float</a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.GetNStem">
+<code class="descname">GetNStem</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.GetNStem" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The N-stem of loop being modelled</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.GetCStem">
+<code class="descname">GetCStem</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.GetCStem" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The C-stem of loop being modelled</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.Add">
+<code class="descname">Add</code><span class="sig-paren">(</span><em>loop_candidate</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.Add" title="Permalink to this definition">¶</a></dt>
+<dd><p>Add a loop candidate to the list of candidates</p>
+<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>loop_candidate</strong> (<a class="reference internal" href="#promod3.loop.LoopCandidate" title="promod3.loop.LoopCandidate"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidate</span></code></a>) &#8211; The loop candidate</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">Add</code><span class="sig-paren">(</span><em>bb_list</em><span class="sig-paren">)</span></dt>
+<dd><p>Add a loop candidate to the list of candidates from a list of backbone positions</p>
+<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>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; The backbone list</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.Remove">
+<code class="descname">Remove</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.Remove" title="Permalink to this definition">¶</a></dt>
+<dd><p>Remove a loop candidate from the list of candidates.</p>
+<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>index</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 index of the candidate that will be removed</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.LoopCandidates.AttachScorer">
+<code class="descname">AttachScorer</code><span class="sig-paren">(</span><em>scorer</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LoopCandidates.AttachScorer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Attaches a scorer to the <a class="reference internal" href="#promod3.loop.LoopCandidates" title="promod3.loop.LoopCandidates"><code class="xref py py-class docutils literal"><span class="pre">LoopCandidates</span></code></a>. The scorer contains the information about the environment of the loop candidates and is mandatory to calculate the different scores for the loop candidates.</p>
+<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>scorer</strong> (<a class="reference internal" href="backbone_loop_score.html#promod3.loop.BackboneLoopScorer" title="promod3.loop.BackboneLoopScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneLoopScorer</span></code></a>) &#8211; The scorer</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="monte_carlo.html"
+                        title="previous chapter">Monte Carlo Sampling</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="load_loop_objects.html"
+                        title="next chapter">Load Loop Objects</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/loop/loop_candidate.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/loop/loop_candidate.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/loop/loop_closing.html b/doc/html/loop/loop_closing.html
new file mode 100644
index 0000000000000000000000000000000000000000..928b1947d59e6dbf8f945ccccfe192ce563556c2
--- /dev/null
+++ b/doc/html/loop/loop_closing.html
@@ -0,0 +1,489 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Loop Closing &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="loop - Loop Modelling" href="index.html" />
+    <link rel="next" title="Loop Scoring" href="backbone_loop_score.html" />
+    <link rel="prev" title="Structural Database" href="structure_db.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="backbone_loop_score.html" title="Loop Scoring"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="structure_db.html" title="Structural Database"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="loop-closing">
+<h1>Loop Closing<a class="headerlink" href="#loop-closing" title="Permalink to this headline">¶</a></h1>
+<p>Loops, represented as <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> objects, often need to undergo
+conformational changes to fit into gaps defined by stem residues.
+PROMOD3 implements two algorithms performing this task.</p>
+<p>There is cyclic coordinate descent (CCD):
+Adrian A. Canutescu and Roland L. Dunbrack Jr. &#8220;Cyclic coordinate descent: A robotics algorithm for protein loop closure.&#8221; Protein Sci. 12(5):963–972. (2003)</p>
+<p>and kinematic closure (KIC):
+Mandell DJ, Coutsias EA and Kortemme T. &#8220;Sub-angstrom accuracy in protein loop reconstruction by robotics-inspired conformational sampling.&#8221; Nat Methods. 6(8):551-2. (2009)</p>
+<p>In case of small gaps or small issues in the <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> you might
+also consider the <a class="reference internal" href="#promod3.loop.BackboneRelaxer" title="promod3.loop.BackboneRelaxer"><code class="xref py py-class docutils literal"><span class="pre">BackboneRelaxer</span></code></a>.</p>
+<div class="section" id="ccd">
+<h2>CCD<a class="headerlink" href="#ccd" title="Permalink to this headline">¶</a></h2>
+<p>The PROMOD3 implementation of the cyclic coordinate descent first superposes
+the n-stem of the input <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> with the provided n-stem
+positions. In every iteration of the algorithm, one residue of the
+<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> gets randomly selected. If the residue is not the n-stem,
+the ideal phi angle, that minimizes the RMSD between the <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>
+c-stem and the target c-stem positions gets calculated and directly applied.
+The same thing is done for the psi angle if the selected residue is not the
+c-stem. Iterations continue until a c-stem RMSD threshold is reached or number
+of iterations hit a limit.
+By performing CCD, unfavourable backbone dihedral pairs can be introduced.
+It is therefore optionally possible to use <a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a> to guide the
+iterative process.
+In this case, the algorithm calculates the probablity of observing the dihedral
+pair before and after performing the phi/psi update. If the fraction
+after/before is smaller than a random number in range [0;1[, the proposed
+dihedral pair gets rejected and the next iteration starts. Please note, that
+this increases the probability of non-convergence.</p>
+<dl class="method">
+<dt id="promod3.loop.CCD">
+<code class="descclassname">promod3.loop.</code><code class="descname">CCD</code><span class="sig-paren">(</span><em>bb_list</em>, <em>n_stem</em>, <em>c_stem</em><span class="optional">[</span>, <em>max_steps=1000</em>, <em>rmsd_cutoff=0.1</em>, <em>random_seed=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.CCD" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to be closed</li>
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue from which the desired n-stem positions are
+extracted</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue from which the desired c-stem positions are
+extracted</li>
+<li><strong>max_steps</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; Max number of iterations</li>
+<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Iterations abort when this RMSD between the c-stem of
+the loop and the desired c-stem is reached</li>
+<li><strong>random_seed</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; Seed for internal randomness</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> whether the RMSD threshold has been reached</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.loop.</code><code class="descname">CCD</code><span class="sig-paren">(</span><em>bb_list</em>, <em>n_stem_pos</em>, <em>c_stem_pos</em><span class="optional">[</span>, <em>max_steps=1000</em>, <em>rmsd_cutoff=0.1</em>, <em>random_seed=0</em><span class="optional">]</span><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to be closed</li>
+<li><strong>n_stem_pos</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) &#8211; 3 positions describing the desired
+N, CA and C positions of the n_stem</li>
+<li><strong>c_stem_pos</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) &#8211; 3 positions describing the desired
+N, CA and C positions of the c_stem</li>
+<li><strong>max_steps</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; Max number of iterations</li>
+<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Iterations abort when this RMSD between the c-stem of
+the loop and the desired c-stem is reached</li>
+<li><strong>random_seed</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; Seed for internal randomness</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> whether the RMSD threshold has been reached</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.loop.</code><code class="descname">CCD</code><span class="sig-paren">(</span><em>bb_list, n_stem, c_stem, torsion_sampler [max_steps=1000,rmsd_cutoff=0.1,random_seed=0]</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to be closed</li>
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue from which the desired n-stem positions are
+extracted</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue from which the desired c-stem positions are
+extracted</li>
+<li><strong>torsion_sampler</strong> (<a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a>) &#8211; For extracting probabilities to decide whether a new
+dihedral pair should be accepted or not. This sampler
+gets applied to all residues of the loop.</li>
+<li><strong>max_steps</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; Max number of iterations</li>
+<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Iterations abort when this RMSD between the c-stem of
+the loop and the desired c-stem is reached</li>
+<li><strong>random_seed</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; Seed for internal randomness</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> whether the RMSD threshold has been reached</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> when assigining of histogram
+indices for torsion sampler fails. This is the case
+when the residue before the given n-stem or the
+residue after the given c-stem is not present.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.loop.</code><code class="descname">CCD</code><span class="sig-paren">(</span><em>bb_list, n_stem, c_stem, torsion_sampler[max_steps=1000,rmsd_cutoff=0.1,random_seed=0]</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to be closed</li>
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue from which the desired n-stem positions are
+extracted</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue from which the desired c-stem positions are
+extracted</li>
+<li><strong>torsion_sampler</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; List of <a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a> For extracting
+probabilities to decide whether a new dihedral pair
+should be accepted or not. There must be one sampler
+for every residue.</li>
+<li><strong>max_steps</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; Max number of iterations</li>
+<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Iterations abort when this RMSD between the c-stem of
+the loop and the desired c-stem is reached</li>
+<li><strong>random_seed</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; Seed for internal randomness</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> whether the RMSD threshold has been
+reached</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> when assigining of histogram
+indices for torsion sampler fails. This is the case
+when the residue before the given n-stem or the
+residue after the given c-stem is not present.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.loop.</code><code class="descname">CCD</code><span class="sig-paren">(</span><em>bb_list, n_stem_pos, c_stem_pos, torsion_sampler, dihedral_indices[max_steps=1000,rmsd_cutoff=0.1,random_seed=0]</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to be closed</li>
+<li><strong>n_stem_pos</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) &#8211; 3 positions describing the desired
+N, CA and C positions of the n_stem</li>
+<li><strong>c_stem_pos</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) &#8211; 3 positions describing the desired
+N, CA and C positions of the c_stem</li>
+<li><strong>torsion_sampler</strong> (<a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a>) &#8211; List of <a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a> For extracting
+probabilities to decide whether a new dihedral pair
+should be accepted or not. There must be one sampler
+for every residue.</li>
+<li><strong>dihedral_indices</strong> &#8211; If no stem residues are given, there is no
+possibility to figure out the torsion sampler indices
+for the stem residues. All indices must therefore be
+given.</li>
+<li><strong>max_steps</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; Max number of iterations</li>
+<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Iterations abort when this RMSD between the c-stem of
+the loop and the desired c-stem is reached</li>
+<li><strong>random_seed</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; Seed for internal randomness</li>
+<li><strong>dihedral_indices</strong> &#8211; <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a></li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> whether the RMSD threshold has been
+reached</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.loop.</code><code class="descname">CCD</code><span class="sig-paren">(</span><em>bb_list, n_stem_pos, c_stem_pos, torsion_sampler, dihedral_indices[max_steps=1000,rmsd_cutoff=0.1,random_seed=0]</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to be closed</li>
+<li><strong>n_stem_pos</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) &#8211; 3 positions describing the desired
+N, CA and C positions of the n_stem</li>
+<li><strong>c_stem_pos</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) &#8211; 3 positions describing the desired
+N, CA and C positions of the c_stem</li>
+<li><strong>torsion_sampler</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; For extracting probabilities to decide whether a new
+dihedral pair should be accepted or not. This sampler
+gets applied to all residues of the loop.</li>
+<li><strong>dihedral_indices</strong> &#8211; If no stem residues are given, there is no
+possibility to figure out the torsion sampler indices
+for the stem residues. All indices must therefore be
+given.</li>
+<li><strong>max_steps</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; Max number of iterations</li>
+<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Iterations abort when this RMSD between the c-stem of
+the loop and the desired c-stem is reached</li>
+<li><strong>random_seed</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; Seed for internal randomness</li>
+<li><strong>dihedral_indices</strong> &#8211; <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a></li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> whether the RMSD threshold has been
+reached</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="kic">
+<h2>KIC<a class="headerlink" href="#kic" title="Permalink to this headline">¶</a></h2>
+<p>The kinematic closure leads to a fragmentation of the loop based on given
+pivot residues. It then calculates possible relative orientations
+of these fragments by considering constraints of bond length and bond angles
+at these pivot residues. Due to the internal mathematical formalism, up to
+16 solutions can be found for a given loop closing problem.</p>
+<dl class="method">
+<dt id="promod3.loop.KIC">
+<code class="descclassname">promod3.loop.</code><code class="descname">KIC</code><span class="sig-paren">(</span><em>bb_list</em>, <em>n_stem</em>, <em>c_stem</em>, <em>pivot_one</em>, <em>pivot_two</em>, <em>pivot_three</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.KIC" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to be closed</li>
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue from which the desired n-stem positions are
+extracted</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue from which the desired c-stem positions are
+extracted</li>
+<li><strong>pivot_one</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; Index of first pivot residue</li>
+<li><strong>pivot_two</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; Index of second pivot residue</li>
+<li><strong>pivot_three</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; Index of third pivot residue</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">List of <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> objects representing
+the closed loops. There is a maximum of 16 entries.</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> in case of invalid pivot indices.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.loop.</code><code class="descname">KIC</code><span class="sig-paren">(</span><em>bb_list</em>, <em>n_stem_pos</em>, <em>c_stem_pos</em>, <em>pivot_one</em>, <em>pivot_two</em>, <em>pivot_three</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Loop to be closed</li>
+<li><strong>n_stem_pos</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) &#8211; 3 positions describing the desired
+N, CA and C positions of the n_stem</li>
+<li><strong>c_stem_pos</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3List</span></code>) &#8211; 3 positions describing the desired
+N, CA and C positions of the c_stem</li>
+<li><strong>pivot_one</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; Index of first pivot residue</li>
+<li><strong>pivot_two</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; Index of second pivot residue</li>
+<li><strong>pivot_three</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; Index of third pivot residue</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">List of <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> objects representing
+the closed loops. There is a maximum of 16 entries.</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> in case of invalid pivot indices.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="relaxing-backbones">
+<h2>Relaxing Backbones<a class="headerlink" href="#relaxing-backbones" title="Permalink to this headline">¶</a></h2>
+<p>In many cases one wants to quickly relax a <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>. This
+can be useful to close small gaps in the backbone or resolve the most
+severe clashes. The <a class="reference internal" href="#promod3.loop.BackboneRelaxer" title="promod3.loop.BackboneRelaxer"><code class="xref py py-class docutils literal"><span class="pre">BackboneRelaxer</span></code></a> internally sets up a topology
+for the input <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> based on the CHARMM27 forcefield.
+Once setup, every <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> of same length and sequence
+can be relaxed by the relaxer.</p>
+<dl class="class">
+<dt id="promod3.loop.BackboneRelaxer">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">BackboneRelaxer</code><span class="sig-paren">(</span><em>bb_list</em><span class="optional">[</span>, <em>fix_nterm=True</em>, <em>fix_cterm=True</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneRelaxer" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets up a molecular mechanics topology for given <strong>bb_list</strong>. Every
+<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> of same length and sequence can then be
+relaxed.</p>
+<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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Basis for topology creation</li>
+<li><strong>fix_nterm</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Whether n-terminal backbone positions should kept
+rigid during relaxation.</li>
+<li><strong>fix_cterm</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Whether c-termainl backbone positions should kept
+rigid during relaxation.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if size of <strong>bb_list</strong> is below 2</p>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.loop.BackboneRelaxer.Run">
+<code class="descname">Run</code><span class="sig-paren">(</span><em>bb_list</em><span class="optional">[</span>, <em>steps = 100</em>, <em>stop_criterion = 0.01</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.BackboneRelaxer.Run" title="Permalink to this definition">¶</a></dt>
+<dd><p>Performs steepest descent on given BackboneList.</p>
+<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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; To be relaxed</li>
+<li><strong>steps</strong> (<code class="xref py py-class docutils literal"><span class="pre">steps</span></code>) &#8211; number of steepest descent steps</li>
+<li><strong>stop_criterion</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; If maximum force acting on a particle
+falls below that threshold, the
+relaxation aborts.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Forcefield energy</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if <strong>bb_list</strong> has not the same
+size or sequence as the initial one.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Loop Closing</a><ul>
+<li><a class="reference internal" href="#ccd">CCD</a></li>
+<li><a class="reference internal" href="#kic">KIC</a></li>
+<li><a class="reference internal" href="#relaxing-backbones">Relaxing Backbones</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="structure_db.html"
+                        title="previous chapter">Structural Database</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="backbone_loop_score.html"
+                        title="next chapter">Loop Scoring</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/loop/loop_closing.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/loop/loop_closing.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/loop/monte_carlo.html b/doc/html/loop/monte_carlo.html
new file mode 100644
index 0000000000000000000000000000000000000000..21b47f57392dcc5fc8ec87b86ba6df08200ffd93
--- /dev/null
+++ b/doc/html/loop/monte_carlo.html
@@ -0,0 +1,689 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Monte Carlo Sampling &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="loop - Loop Modelling" href="index.html" />
+    <link rel="next" title="Loop Candidates" href="loop_candidate.html" />
+    <link rel="prev" title="Loop Scoring" href="backbone_loop_score.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="loop_candidate.html" title="Loop Candidates"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="backbone_loop_score.html" title="Loop Scoring"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="monte-carlo-sampling">
+<h1>Monte Carlo Sampling<a class="headerlink" href="#monte-carlo-sampling" title="Permalink to this headline">¶</a></h1>
+<p>The monte carlo capabilities of PROMOD3 are mainly targeted at generating de
+novo structure candidates for loops or N-/C-Termini. Every iteration of the
+sampling process consists basically of four steps.</p>
+<ul class="simple">
+<li>Propose new conformation</li>
+<li>Adapt new conformation to the environment</li>
+<li>Score the new conformation</li>
+<li>Accept/Reject new conformation based on the score and a temperature controlled metropolis criterion</li>
+</ul>
+<p>These steps are performed by sampler, closer, scorer and cooler objects, that
+can be arbitrarily combined to generate custom monte carlo sampling pipelines.
+This combination either happens manually or by using a convenient function
+provided by PROMOD3.</p>
+<dl class="method">
+<dt id="promod3.loop.MonteCarloSampler">
+<code class="descclassname">promod3.loop.</code><code class="descname">MonteCarloSampler</code><span class="sig-paren">(</span><em>sampler</em>, <em>closer</em>, <em>scorer</em>, <em>cooler</em>, <em>steps</em>, <em>bb_list</em>, <em>initialize</em>, <em>seed</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.MonteCarloSampler" title="Permalink to this definition">¶</a></dt>
+<dd><p>A convenient function to perform monte carlo sampling using a simulated
+annealing scheme. In every iteration, a new loop conformation gets proposed by
+the provided <strong>sampler</strong> and closed by the <strong>closer</strong>. Upon scoring, this new
+conformation gets accepted/rejected using a metropolis criterion based on the
+temperature given by the <strong>cooler</strong>
+=&gt; acceptance probability: exp(-delta_score/T)</p>
+<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"><ul class="first last simple">
+<li><strong>cooler</strong> (<code class="xref py py-class docutils literal"><span class="pre">CoolerObject</span></code>) &#8211; Cooler object to control the temperature of the
+monte carlo trajectory</li>
+<li><strong>scorer</strong> (<code class="xref py py-class docutils literal"><span class="pre">ScorerObject</span></code>) &#8211; Scorer object to score new loop conformations</li>
+<li><strong>sampler</strong> (<code class="xref py py-class docutils literal"><span class="pre">SamplerObject</span></code>) &#8211; Sampler object capable of initializing and altering
+conformations.</li>
+<li><strong>closer</strong> (<code class="xref py py-class docutils literal"><span class="pre">CloserObject</span></code>) &#8211; Closer object to adapt a new conformation to
+the environment</li>
+<li><strong>steps</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; Number of monte carlo iterations to be performed</li>
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; The lowest scoring conformation of the trajectory
+gets stored in here</li>
+<li><strong>initialize</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Whether a new bb_list should be generated as starting
+point, based on the samplers Initialize function.
+The input <strong>bb_list</strong> gets used otherwise.</li>
+<li><strong>seed</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; Seed for internal random number generator.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<div class="highlight-python"><div class="highlight"><pre><span class="c">#Example script, that applies monte-carlo sampling to the n-terminal</span>
+<span class="c">#part of crambin</span>
+
+<span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span>
+<span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
+
+<span class="n">prot</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">&quot;1crn&quot;</span><span class="p">,</span><span class="n">remote</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+<span class="n">chain_index</span> <span class="o">=</span> <span class="mi">0</span>
+<span class="n">start_resnum</span> <span class="o">=</span> <span class="mi">1</span>
+<span class="n">n_terminal_length</span> <span class="o">=</span> <span class="mi">8</span>
+
+<span class="n">seqres</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">r</span><span class="o">.</span><span class="n">one_letter_code</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">])</span>
+<span class="n">terminal_sequence</span> <span class="o">=</span> <span class="n">seqres</span><span class="p">[:</span><span class="n">n_terminal_length</span><span class="p">]</span>
+
+
+<span class="c">#setup mc_sampler</span>
+<span class="n">torsion_sampler</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">LoadTorsionSampler</span><span class="p">()</span>
+<span class="n">mc_sampler</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">SoftSampler</span><span class="p">(</span><span class="n">terminal_sequence</span><span class="p">,</span><span class="n">torsion_sampler</span><span class="p">,</span><span class="mf">20.0</span><span class="o">/</span><span class="mi">180</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">)</span>
+
+<span class="c">#setup mc_closer</span>
+<span class="n">mc_closer</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">NTerminalCloser</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">n_terminal_length</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
+
+<span class="c">#set up mc_scorer</span>
+<span class="n">scorer</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">LoadBackboneLoopScorer</span><span class="p">()</span>
+<span class="n">scorer</span><span class="o">.</span><span class="n">Initialize</span><span class="p">(</span><span class="n">seqres</span><span class="p">)</span>
+<span class="n">scorer</span><span class="o">.</span><span class="n">SetEnvironment</span><span class="p">(</span><span class="n">prot</span><span class="p">)</span>
+
+<span class="n">weights</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
+<span class="n">weights</span><span class="p">[</span><span class="s">&quot;cbeta&quot;</span><span class="p">]</span><span class="o">=</span><span class="mf">10.0</span>
+<span class="n">weights</span><span class="p">[</span><span class="s">&quot;cb_packing&quot;</span><span class="p">]</span><span class="o">=</span><span class="mf">1.0</span>
+<span class="n">weights</span><span class="p">[</span><span class="s">&quot;clash&quot;</span><span class="p">]</span><span class="o">=</span><span class="mf">0.1</span>
+<span class="n">mc_scorer</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">LinearScorer</span><span class="p">(</span><span class="n">scorer</span><span class="p">,</span><span class="n">start_resnum</span><span class="p">,</span><span class="n">chain_index</span><span class="p">,</span><span class="n">weights</span><span class="p">)</span>
+
+<span class="c">#setup mc_cooler</span>
+<span class="n">mc_cooler</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">ExponentialCooler</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mf">0.9</span><span class="p">)</span>
+
+<span class="c">#create BackboneList from n-terminus</span>
+<span class="n">bb_list</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">BackboneList</span><span class="p">(</span><span class="n">terminal_sequence</span><span class="p">,</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[:</span><span class="n">n_terminal_length</span><span class="p">])</span>
+
+<span class="c">#shake it!</span>
+<span class="n">loop</span><span class="o">.</span><span class="n">MonteCarloLoopSampler</span><span class="p">(</span><span class="n">mc_sampler</span><span class="p">,</span> <span class="n">mc_closer</span><span class="p">,</span> <span class="n">mc_scorer</span><span class="p">,</span> <span class="n">mc_cooler</span><span class="p">,</span> <span class="mi">10000</span><span class="p">,</span><span class="n">bb_list</span><span class="p">,</span><span class="bp">False</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
+
+<span class="c">#save down the result</span>
+<span class="n">io</span><span class="o">.</span><span class="n">SavePDB</span><span class="p">(</span><span class="n">bb_list</span><span class="o">.</span><span class="n">ToEntity</span><span class="p">(),</span><span class="s">&quot;sampled_frag.pdb&quot;</span><span class="p">)</span>
+</pre></div>
+</div>
+<div class="section" id="sampler-objects">
+<h2>Sampler Objects<a class="headerlink" href="#sampler-objects" title="Permalink to this headline">¶</a></h2>
+<p>The sampler objects can be used to generate initial conformations and
+propose new conformations for a sequence of interest. They build the basis
+for any monte carlo sampling pipeline.</p>
+<dl class="class">
+<dt id="promod3.loop.PhiPsiSampler">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">PhiPsiSampler</code><span class="sig-paren">(</span><em>sequence</em>, <em>torsion_sampler</em><span class="optional">[</span>, <em>n_stem_phi=-1.0472</em>, <em>c_stem_psi=-0.78540</em>, <em>prev_aa='A'</em>, <em>next_aa='A'</em>, <em>seed=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.PhiPsiSampler" title="Permalink to this definition">¶</a></dt>
+<dd><p>The PhiPsiSampler randomly draws and sets phi/psi dihedral angles from
+a distribution provided by the <strong>torsion_sampler</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence that should be sampled</li>
+<li><strong>torsion_sampler</strong> (<a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a>) &#8211; Sampler, from which the phi/psi pairs are drawn. It
+is also possible to pass a list of samplers with same
+size as the sequence to assign a specific sampler per
+residue.</li>
+<li><strong>n_stem_phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Phi angle of the n_stem. This angle is not defined in
+the sampling region. If the first residue gets selected
+for changing the dihedral angles, it draws a psi angle
+given <strong>n_stem_phi</strong>.</li>
+<li><strong>c_stem_psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Psi angle of c_stem. This angle is not defined in
+the sampling region. If the last residue gets selected
+for changing the dihedral angles, it draws a phi angle
+given <strong>c_stem_psi</strong>.</li>
+<li><strong>prev_aa</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; This parameter is necessary to extract the according
+histogram index for the first residue from the
+<strong>torsion_sampler</strong>. (Remember: The torsion sampler
+always considers triplets)</li>
+<li><strong>next_aa</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; This parameter is necessary to extract the according
+histogram index for the last residue from the
+<strong>torsion_sampler</strong>. (Remember: The torsion sampler
+always considers triplets)</li>
+<li><strong>seed</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; Seed for the internal random number generators.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.loop.PhiPsiSampler.Initialize">
+<code class="descname">Initialize</code><span class="sig-paren">(</span><em>bb_list</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.PhiPsiSampler.Initialize" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets up a new <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> by randomly drawing phi/psi dihedral
+angles.</p>
+<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>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; The newly created conformation gets stored in here</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.PhiPsiSampler.ProposeStep">
+<code class="descname">ProposeStep</code><span class="sig-paren">(</span><em>actual_positions</em>, <em>proposed_position</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.PhiPsiSampler.ProposeStep" title="Permalink to this definition">¶</a></dt>
+<dd><p>Randomly selects one of the residues and resets its phi/psi values
+according to a random draw from the internal torsion samplers.
+In case of the first residue, only a psi given phi is drawn. Same
+principle also applies for the last residue.</p>
+<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"><ul class="first simple">
+<li><strong>actual_positions</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Conformation to be changed</li>
+<li><strong>proposed_positions</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Changed conformation gets stored in here</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If size of <strong>actual_positions</strong>
+is not consistent with the internal sequence. Note,
+that the sequence itself doesn&#8217;t get checked for
+efficiency reasons.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.loop.SoftSampler">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">SoftSampler</code><span class="sig-paren">(</span><em>sequence</em>, <em>torsion_sampler</em>, <em>max_dev</em><span class="optional">[</span>, <em>n_stem_phi=-1.0472</em>, <em>c_stem_psi=-0.78540</em>, <em>prev_aa='A'</em>, <em>next_aa='A'</em>, <em>seed=0</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.SoftSampler" title="Permalink to this definition">¶</a></dt>
+<dd><p>Instead of drawing completely new values for a residues phi/psi angles,
+only one angle gets altered by a maximum value of <strong>max_dev</strong> in the
+SoftSampler.</p>
+<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"><ul class="first last simple">
+<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence that should be sampled</li>
+<li><strong>torsion_sampler</strong> (<a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a>) &#8211; Sampler, from which the phi/psi probablities are
+extracted. It is also possible to pass a list of
+samplers with same size as the sequence to assign
+a specific sampler per residue.</li>
+<li><strong>max_dev</strong> &#8211; Maximal deviation of dihedral angle from its original
+value per sampling step.</li>
+<li><strong>n_stem_phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Phi angle of the n_stem. This angle is not defined in
+the sampling region. If the psi angle of the first
+residue gets selected to be changed, <strong>n_stem_phi</strong> is
+used to calculate the phi/psi probability to estimate
+the acceptance probability.</li>
+<li><strong>c_stem_psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Psi angle of c_stem. This angle is not defined in
+the sampling region. If the phi angle of the last
+residue gets selected to be changed, <strong>c_stem_psi</strong> is
+used to calculate the phi/psi probability to estimate
+the acceptance probability.</li>
+<li><strong>prev_aa</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; This parameter is necessary to extract the according
+histogram index for the first residue from the
+<strong>torsion_sampler</strong>. (Remember: The torsion sampler
+always considers triplets)</li>
+<li><strong>next_aa</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; This parameter is necessary to extract the according
+histogram index for the last residue from the
+<strong>torsion_sampler</strong>. (Remember: The torsion sampler
+always considers triplets)</li>
+<li><strong>seed</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; Seed for the internal random number generators.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.loop.SoftSampler.Initialize">
+<code class="descname">Initialize</code><span class="sig-paren">(</span><em>bb_list</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.SoftSampler.Initialize" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets up a new <a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> by randomly drawing phi/psi dihedral
+angles.</p>
+<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>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; The newly created conformation gets stored in here</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.SoftSampler.ProposeStep">
+<code class="descname">ProposeStep</code><span class="sig-paren">(</span><em>actual_positions</em>, <em>proposed_position</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.SoftSampler.ProposeStep" title="Permalink to this definition">¶</a></dt>
+<dd><p>In an iterative process, the SoftSampler randomly selects one of the
+possible dihedral angles in a conformation and changes it by a random value
+in [-<strong>max_dev</strong>,**max_dev**]. The acceptance probability of this change is
+the fraction of the phi/psi probability before and after changing the
+single angle in the particular residue. There is a maximum of 100
+iterations. It is therefore theoretically possible, that nothing happens
+when a new step should be proposed</p>
+<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"><ul class="first simple">
+<li><strong>actual_positions</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Conformation to be changed</li>
+<li><strong>proposed_positions</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Changed conformation gets stored in here</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If size of <strong>actual_positions</strong>
+is not consistent with the internal sequence. Note,
+that the sequence itself doesn&#8217;t get checked for
+efficiency reasons.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="closer-objects">
+<h2>Closer Objects<a class="headerlink" href="#closer-objects" title="Permalink to this headline">¶</a></h2>
+<p>After the proposal of new conformations by the sampler objects, the
+conformations typically have to undergo some structural changes, so they
+fit to a given environment. This can either be structural changes, that
+the stems of the sampled conformation overlap with given stem residues or
+or simple stem superposition in case of terminal sampling.</p>
+<dl class="class">
+<dt id="promod3.loop.CCDCloser">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">CCDCloser</code><span class="sig-paren">(</span><em>n_stem</em>, <em>c_stem</em>, <em>sequence</em>, <em>torsion_sampler</em>, <em>seed</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.CCDCloser" title="Permalink to this definition">¶</a></dt>
+<dd><p>The CCDCloser applies the CCD algorithm to the sampled conformation
+to enforce the match between the conformations stem residue and
+the stems given by the closer. The <strong>torsion_sampler</strong> is used to
+avoid moving into unfavourable phi/psi ranges.</p>
+<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"><ul class="first simple">
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Defining stem positions the closed conformation
+should adapt.</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Defining stem positions the closed conformation
+should adapt.</li>
+<li><strong>sequence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence of the conformation to be closed.</li>
+<li><strong>torsion_sampler</strong> (<a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a>) &#8211; To enforce valid phi/psi ranges. Alternatively
+you can also pass a list of <a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a>
+objects to assign a unique torsion sampler to
+every residue of the conformation to be closed.</li>
+<li><strong>seed</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; Seed for internal random generators.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if the residues before <strong>n_stem</strong>
+and after c_stem cannot be accessed. This is necessary
+to extract the histogram indices for the torsion
+sampler and to calculate the phi/psi angles of the
+stems.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.loop.CCDCloser.Close">
+<code class="descname">Close</code><span class="sig-paren">(</span><em>actual_positions</em>, <em>closed_positions</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.CCDCloser.Close" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>actual_positions</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Conformation to be closed.</li>
+<li><strong>closed_positions</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Closed conformation gets stored in here.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Whether CCD converged</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.loop.DirtyCCDCloser">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">DirtyCCDCloser</code><span class="sig-paren">(</span><em>n_stem</em>, <em>c_stem</em>, <em>seed</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.DirtyCCDCloser" title="Permalink to this definition">¶</a></dt>
+<dd><p>The DirtyCCDCloser applies the CCD algorithm to the sampled conformation
+to enforce the match between the conformations stem residue and
+the stems given by the closer.</p>
+<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"><ul class="first last simple">
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Defining stem positions the closed conformation
+should adapt.</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Defining stem positions the closed conformation
+should adapt.</li>
+<li><strong>seed</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; Seed for internal random generators.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.loop.DirtyCCDCloser.Close">
+<code class="descname">Close</code><span class="sig-paren">(</span><em>actual_positions</em>, <em>closed_positions</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.DirtyCCDCloser.Close" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>actual_positions</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Conformation to be closed.</li>
+<li><strong>closed_positions</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Closed conformation gets stored in here.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Whether CCD converged</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.loop.KICCloser">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">KICCloser</code><span class="sig-paren">(</span><em>n_stem</em>, <em>c_stem</em>, <em>seed</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.KICCloser" title="Permalink to this definition">¶</a></dt>
+<dd><p>The KIC closer randomly picks three pivot residues in the conformation
+to be closed and applies the KIC algorithm. KIC gives up to 16 possible
+solutions. The KICCloser simply picks the first one.</p>
+<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"><ul class="first last simple">
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Defining stem positions the closed conformation should
+adapt.</li>
+<li><strong>c_stem</strong> &#8211; Defining stem positions the closed conformation should
+adapt.</li>
+<li><strong>seed</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; Seed for internal random generators.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.loop.KICCloser.Close">
+<code class="descname">Close</code><span class="sig-paren">(</span><em>actual_positions</em>, <em>closed_positions</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.KICCloser.Close" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>actual_positions</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Conformation to be closed.</li>
+<li><strong>closed_positions</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Closed conformation gets stored in here.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Whether KIC found a solution</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.loop.NTerminalCloser">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">NTerminalCloser</code><span class="sig-paren">(</span><em>c_stem</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.NTerminalCloser" title="Permalink to this definition">¶</a></dt>
+<dd><p>The NTerminalCloser simply takes the conformation and closes by superposing
+the c_stem with the desired positions.</p>
+<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>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Defining stem positions the closed conformation should
+adapt.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Whether closing was successful</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.loop.CTerminalCloser">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">CTerminalCloser</code><span class="sig-paren">(</span><em>n_stem</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.CTerminalCloser" title="Permalink to this definition">¶</a></dt>
+<dd><p>The CTerminalCloser simply takes the conformation and closes by superposing
+the n_stem with the desired positions.</p>
+<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>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Defining stem positions the closed conformation should
+adapt.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Whether closing was successful</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="scorer-objects">
+<h2>Scorer Objects<a class="headerlink" href="#scorer-objects" title="Permalink to this headline">¶</a></h2>
+<p>The scorer asses a proposed conformation and are intended to return a pseudo
+energy, the lower the better.</p>
+<dl class="class">
+<dt id="promod3.loop.LinearScorer">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">LinearScorer</code><span class="sig-paren">(</span><em>scorer</em>, <em>start_resnum</em>, <em>chain_index</em>, <em>weights</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LinearScorer" title="Permalink to this definition">¶</a></dt>
+<dd><p>The LinearScorer allows to combine the scores availabler from
+<a class="reference internal" href="backbone_loop_score.html#promod3.loop.BackboneLoopScorer" title="promod3.loop.BackboneLoopScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneLoopScorer</span></code></a> in a linear manner.</p>
+<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"><ul class="first simple">
+<li><strong>scorer</strong> (<a class="reference internal" href="backbone_loop_score.html#promod3.loop.BackboneLoopScorer" title="promod3.loop.BackboneLoopScorer"><code class="xref py py-class docutils literal"><span class="pre">BackboneLoopScorer</span></code></a>) &#8211; Scorer Object with set environment for the particular loop
+modelling problem.</li>
+<li><strong>start_resnum</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 starting residue number of the loop. Note, that the
+residue numbers start from one.</li>
+<li><strong>chain_index</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 chain the loop belongs to.</li>
+<li><strong>weights</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/stdtypes.html#dict" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">dict</span></code></a>) &#8211; Assigns every score, that should be combined a linear
+weight. Key of dict is a score name and can be any of:
+[&#8220;cbeta&#8221;, &#8220;clash&#8221;, &#8220;torsion&#8221;, &#8220;cb_packing&#8221;, &#8220;hbond&#8221;, &#8220;dssp_hbond&#8221;].
+An additional possible key is: &#8220;intercept&#8221;.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If there is an invalid weight name.</p>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.loop.LinearScorer.GetScore">
+<code class="descname">GetScore</code><span class="sig-paren">(</span><em>temperature</em>, <em>bb_list</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.LinearScorer.GetScore" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>temperature</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Current temperature in the monte carlo trajectory.
+This has no effect on the score of the LinearScorer
+and is only there to fulfill the requirements of the
+abstract baseclass.</li>
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Current loop conformation to be scored.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A linear combination of the scores</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="cooler-objects">
+<h2>Cooler Objects<a class="headerlink" href="#cooler-objects" title="Permalink to this headline">¶</a></h2>
+<p>The cooler objects control the temperature of the monte carlo trajectory.
+They&#8217;re intended to deliver steadily decreasing temperatures with calls
+to their GetTemperature function.</p>
+<dl class="class">
+<dt id="promod3.loop.ExponentialCooler">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">ExponentialCooler</code><span class="sig-paren">(</span><em>change_frequency</em>, <em>start_temperature</em>, <em>cooling_factor</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ExponentialCooler" title="Permalink to this definition">¶</a></dt>
+<dd><p>The exponential cooler starts with a given <strong>start_temperature</strong> and counts the
+calls to its GetTemperature function. According to the <strong>change_frequency</strong>,
+the returned temperature gets multiplied by the <strong>cooling_factor</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>change_frequency</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; Frequency to change temperature</li>
+<li><strong>start_temperature</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; temperature to start with</li>
+<li><strong>cooling_factor</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Factor to decrease temperature</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.loop.ExponentialCooler.GetTemperature">
+<code class="descname">GetTemperature</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ExponentialCooler.GetTemperature" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">current temperature</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.ExponentialCooler.Reset">
+<code class="descname">Reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.ExponentialCooler.Reset" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets current temperature back to <strong>start_temperature</strong></p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Monte Carlo Sampling</a><ul>
+<li><a class="reference internal" href="#sampler-objects">Sampler Objects</a></li>
+<li><a class="reference internal" href="#closer-objects">Closer Objects</a></li>
+<li><a class="reference internal" href="#scorer-objects">Scorer Objects</a></li>
+<li><a class="reference internal" href="#cooler-objects">Cooler Objects</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="backbone_loop_score.html"
+                        title="previous chapter">Loop Scoring</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="loop_candidate.html"
+                        title="next chapter">Loop Candidates</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/loop/monte_carlo.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/loop/monte_carlo.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/loop/structure_db.html b/doc/html/loop/structure_db.html
new file mode 100644
index 0000000000000000000000000000000000000000..75fa4b6277fe094e1ac6548f93c71be8058a4306
--- /dev/null
+++ b/doc/html/loop/structure_db.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Structural Database &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="loop - Loop Modelling" href="index.html" />
+    <link rel="next" title="Loop Closing" href="loop_closing.html" />
+    <link rel="prev" title="Torsion Sampler" href="torsion_sampler.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="loop_closing.html" title="Loop Closing"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="torsion_sampler.html" title="Torsion Sampler"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="structural-database">
+<h1>Structural Database<a class="headerlink" href="#structural-database" title="Permalink to this headline">¶</a></h1>
+<p>The structural database serves as a container for structural backbone
+and profile data. It can be filled with chains of pdb structures with their
+corresponding profiles as they are produced by the HHSuite tools.</p>
+<div class="section" id="defining-chains-and-fragments">
+<h2>Defining Chains and Fragments<a class="headerlink" href="#defining-chains-and-fragments" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.loop.CoordInfo">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">CoordInfo</code><a class="headerlink" href="#promod3.loop.CoordInfo" title="Permalink to this definition">¶</a></dt>
+<dd><p>The CoordInfo gets automatically generated when new chains are added to
+the structural database. It contains internal information of how
+the according chain is stored in the database.</p>
+<dl class="attribute">
+<dt id="promod3.loop.CoordInfo.pdb_id">
+<code class="descname">pdb_id</code><a class="headerlink" href="#promod3.loop.CoordInfo.pdb_id" title="Permalink to this definition">¶</a></dt>
+<dd><p>A character residue string containing the 4 character pdb_id and the
+1 character chain_id.</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.CoordInfo.offset">
+<code class="descname">offset</code><a class="headerlink" href="#promod3.loop.CoordInfo.offset" title="Permalink to this definition">¶</a></dt>
+<dd><p>All residues of the added structures are stored in a linear memory layout.
+The offset parameter tells us where it exactly starts...</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.CoordInfo.size">
+<code class="descname">size</code><a class="headerlink" href="#promod3.loop.CoordInfo.size" title="Permalink to this definition">¶</a></dt>
+<dd><p>The length of the stretch of residues.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.loop.FragmentInfo">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">FragmentInfo</code><span class="sig-paren">(</span><em>chain_index</em>, <em>offset</em>, <em>length</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragmentInfo" title="Permalink to this definition">¶</a></dt>
+<dd><p>The FragmentInfo defines a fragment in the structural database.</p>
+<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"><ul class="first last simple">
+<li><strong>chain_index</strong> &#8211; The index of the chain in the structure db this particle
+belongs to.</li>
+<li><strong>offset</strong> &#8211; Index of residue in <strong>chain</strong> the fragment starts.</li>
+<li><strong>length</strong> &#8211; Length of the fragment, which is limited to 255</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="attribute">
+<dt id="promod3.loop.FragmentInfo.chain_index">
+<code class="descname">chain_index</code><a class="headerlink" href="#promod3.loop.FragmentInfo.chain_index" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.FragmentInfo.offset">
+<code class="descname">offset</code><a class="headerlink" href="#promod3.loop.FragmentInfo.offset" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.loop.FragmentInfo.length">
+<code class="descname">length</code><a class="headerlink" href="#promod3.loop.FragmentInfo.length" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="the-database">
+<h2>The Database<a class="headerlink" href="#the-database" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.loop.StructureDB">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">StructureDB</code><a class="headerlink" href="#promod3.loop.StructureDB" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="promod3.loop.StructureDB.Load">
+<code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="optional">[</span>, <em>load_frequencies=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.Load" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>filename</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; path to the file from which to load the database.</li>
+<li><strong>load_frequencies</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; If True, the full database including profile
+information for every position gets loaded.
+A database without profiles loads faster and
+requires less memory. But it&#8217;s not possible
+to add new coordinates or call one of the
+profile dependent functions.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The loaded StructureDB</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If <strong>filename</strong> does not exist.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.Save">
+<code class="descname">Save</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.Save" title="Permalink to this definition">¶</a></dt>
+<dd><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>filename</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; path to the file where the database will be saved</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If db has been loaded with
+load_frequencies=False. This enforces only complete
+databases to be saved down.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.AddCoordinates">
+<code class="descname">AddCoordinates</code><span class="sig-paren">(</span><em>pdb_id</em>, <em>chain_name</em>, <em>chain</em>, <em>hmm</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.AddCoordinates" title="Permalink to this definition">¶</a></dt>
+<dd><p>This method takes a structural chain and searches the longest stretch of
+connected residues containing all necessary backbone atoms. This stretch
+gets then added to the database. Due to technical reasons, The maximal
+extent along one of the base axis cannot exceed 650 A.</p>
+<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"><ul class="first simple">
+<li><strong>pdb_id</strong> (<code class="xref py py-class docutils literal"><span class="pre">String</span></code>) &#8211; 4-letter code of the structure the chain belongs to</li>
+<li><strong>chain_name</strong> (<em>:class:&#8217;String`</em>) &#8211; Name of the chain consisting of one letter</li>
+<li><strong>chain</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ChainView" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ChainView</span></code></a>) &#8211; The actual chain</li>
+<li><strong>hmm</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.seq.HMM</span></code>) &#8211; An HMM containing profile information.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">DB Index of added chain.</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If size of chain is too large, when
+db has been loaded with load_frequencies=False or when
+the ATOMSEQ form the <strong>chain</strong> can&#8217;t be aligned with the
+SEQRES from the <strong>hmm</strong>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetCoordIndex">
+<code class="descname">GetCoordIndex</code><span class="sig-paren">(</span><em>pdb_id</em>, <em>chain_name</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetCoordIndex" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>pdb_id</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; 4-letter code of the structure the chain belongs to</li>
+<li><strong>chain_name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name of the chain consisting of one letter</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The StructureDB index of the chain of interest, -1 if
+if can&#8217;t be found.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetCoordInfo">
+<code class="descname">GetCoordInfo</code><span class="sig-paren">(</span><em>idx</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetCoordInfo" title="Permalink to this definition">¶</a></dt>
+<dd><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>idx</strong> &#8211; The StructureDB index</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The <a class="reference internal" href="#promod3.loop.CoordInfo" title="promod3.loop.CoordInfo"><code class="xref py py-class docutils literal"><span class="pre">CoordInfo</span></code></a> object describing the chain with
+index <strong>idx</strong>.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.FillBackbone">
+<code class="descname">FillBackbone</code><span class="sig-paren">(</span><em>bb_list</em>, <em>fragment</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.FillBackbone" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Structural data will be filled in here.</li>
+<li><strong>fragment</strong> (<a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) &#8211; Description of the fragment from which a
+<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> should be built.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If fragment is invalid. This is
+the case when the fragment does not fully fit into one
+of chains in the database.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">FillBackbone</code><span class="sig-paren">(</span><em>bb_list</em>, <em>n_stem</em>, <em>c_stem</em>, <em>fragment</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>bb_list</strong> (<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a>) &#8211; Structural data will be filled in here.</li>
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Positions on which the bb_list n-terminus should be
+superposed onto.</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Positions on which th ebb_list c_terminus should be
+superposed onto.</li>
+<li><strong>fragment</strong> (<a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) &#8211; Description of the fragment from which a
+<a class="reference internal" href="backbone.html#promod3.loop.BackboneList" title="promod3.loop.BackboneList"><code class="xref py py-class docutils literal"><span class="pre">BackboneList</span></code></a> should be built.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If fragment is invalid. This is
+the case when the fragment does not fully fit into one
+of chains in the database.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetNumCoords">
+<code class="descname">GetNumCoords</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetNumCoords" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Number of chains, that have been added to the database.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.PrindStatistics">
+<code class="descname">PrindStatistics</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.PrindStatistics" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prints out some information about the db.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetSequence">
+<code class="descname">GetSequence</code><span class="sig-paren">(</span><em>fragment</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetSequence" title="Permalink to this definition">¶</a></dt>
+<dd><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>fragment</strong> (<a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) &#8211; Fragment definition from which to extract the sequence.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The sequence of <strong>fragment</strong></td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If fragment is invalid. This is
+the case when the fragment does not fully fit into one
+of chains in the database.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetDSSPStates">
+<code class="descname">GetDSSPStates</code><span class="sig-paren">(</span><em>fragment</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetDSSPStates" title="Permalink to this definition">¶</a></dt>
+<dd><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>fragment</strong> (<a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) &#8211; Fragment definition from which to extract the states.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The dssp states of <strong>fragment</strong></td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If fragment is invalid. This is
+the case when the fragment does not fully fit into one
+of chains in the database.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetDihedralAngles">
+<code class="descname">GetDihedralAngles</code><span class="sig-paren">(</span><em>fragment</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetDihedralAngles" title="Permalink to this definition">¶</a></dt>
+<dd><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>fragment</strong> (<a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) &#8211; Fragment definition from which to extract the dihedrals.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A list of pairs containing the dihedral angles of every
+residue of the <strong>fragment</strong>.</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If fragment is invalid. This is
+the case when the fragment does not fully fit into one
+of chains in the database.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetSeqSim">
+<code class="descname">GetSeqSim</code><span class="sig-paren">(</span><em>fragment</em>, <em>seq</em>, <em>subst_matrix</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetSeqSim" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>fragment</strong> (<a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) &#8211; Fragment from the database.</li>
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; The sequence to which the sequence similarity should be
+calculated.</li>
+<li><strong>subst_matrix</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.seq.alg.SubstWeightMatrix</span></code>) &#8211; Source for substitution scores.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Sequence similarity between <strong>fragment</strong> and <strong>seq</strong>
+normalized to a range [0,1]</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If fragment is invalid. This is
+the case when the fragment does not fully fit into one
+of chains in the database.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetSeqID">
+<code class="descname">GetSeqID</code><span class="sig-paren">(</span><em>fragment</em>, <em>seq</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetSeqID" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>fragment</strong> (<a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) &#8211; Fragment from the database.</li>
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; The sequence to which the sequence identity should be
+calculated.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Sequence identity between <strong>fragment</strong> and <strong>seq</strong></p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If fragment is invalid. This is
+the case when the fragment does not fully fit into one
+of chains in the database.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetSSAgreement">
+<code class="descname">GetSSAgreement</code><span class="sig-paren">(</span><em>fragment</em>, <em>predicted_ss</em>, <em>confidence</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetSSAgreement" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>fragment</strong> (<a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) &#8211; Fragment from the database.</li>
+<li><strong>predicted_ss</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; Predicted secondary structure from psipred with
+every element being in [&#8216;H&#8217;,&#8217;E&#8217;,&#8217;C&#8217;].</li>
+<li><strong>confidence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; Confidence values of psipred predictions,
+with every element being in range [0,9].</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Average sequence similarity with parameters also used
+in QMEAN.</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If fragment is invalid. This is
+the case when the fragment does not fully fit into one
+of chains in the database. It also throws an error if
+one of the psipred values is invalid.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetTorsionProbability">
+<code class="descname">GetTorsionProbability</code><span class="sig-paren">(</span><em>fragment</em>, <em>seq</em>, <em>torsion_sampler</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetTorsionProbability" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>fragment</strong> (<a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) &#8211; Fragment from the database</li>
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence the fragment is assumed to have.</li>
+<li><strong>torsion_sampler</strong> (<a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a>) &#8211; The source of the probability</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The average probablity of observing the dihedral angles
+from <strong>fragment</strong> assuming the sequence <strong>seq</strong>.
+Note, that the torsion sampler considers amino acid
+triplets, the torsion angles of the flanking residues
+are therefore neglected.</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If fragment is invalid. This is
+the case when the fragment does not fully fit into one
+of chains in the database.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.StructureDB.GetProfileScore">
+<code class="descname">GetProfileScore</code><span class="sig-paren">(</span><em>fragment</em>, <em>hmm</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.StructureDB.GetProfileScore" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>fragment</strong> (<a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a>) &#8211; Fragment from the database</li>
+<li><strong>hmm</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.seq.HMM</span></code>) &#8211; Hmm to be aligned with fragment.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The average column alignment score between the columns
+in the <strong>hmm</strong> and the corresponding positions in
+the database.</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If fragment is invalid. This is
+the case when the fragment does not fully fit into one
+of chains in the database. The function also raises
+and error if the database has been loaded with
+load_frequencies=False.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="finding-fragments-based-on-geometric-features">
+<h2>Finding Fragments based on Geometric Features<a class="headerlink" href="#finding-fragments-based-on-geometric-features" title="Permalink to this headline">¶</a></h2>
+<p>The fragment database allows to organize, search and access the information
+stored in a structural database (<a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">StructureDB</span></code></a>).
+In its current form it groups fragments in bins according to their length
+and the geometry of their N-stem and C-stem (described by 4 angles and the
+distance between the N-stem C atom and the C-stem N atom). It can therefore
+be searched for fragments matching a certain geometry of N and C stems.
+The bins are accessed through a hash table, making searching the database
+ultra fast.</p>
+<dl class="class">
+<dt id="promod3.loop.FragDB">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">FragDB</code><a class="headerlink" href="#promod3.loop.FragDB" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="promod3.loop.FragDB.Load">
+<code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragDB.Load" title="Permalink to this definition">¶</a></dt>
+<dd><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>filename</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; path to the file from which to load the database.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The loaded database</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.FragDB" title="promod3.loop.FragDB"><code class="xref py py-class docutils literal"><span class="pre">FragDB</span></code></a></td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> If <strong>filename</strong> does not exist.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.FragDB.Save">
+<code class="descname">Save</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragDB.Save" title="Permalink to this definition">¶</a></dt>
+<dd><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>filename</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; path to the file where the database will be saved</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.FragDB.GetAngularBinSize">
+<code class="descname">GetAngularBinSize</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragDB.GetAngularBinSize" title="Permalink to this definition">¶</a></dt>
+<dd><p>The size of the bins for the 4 angles describing the stem geometry and used to organize the fragments in the database.</p>
+<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">Returns:</th><td class="field-body">The bin size in degrees</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><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></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.FragDB.GetDistBinSize">
+<code class="descname">GetDistBinSize</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragDB.GetDistBinSize" title="Permalink to this definition">¶</a></dt>
+<dd><p>The size of the bins for the distance describing the stem geometry and used to organize the fragments in the database.</p>
+<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">Returns:</th><td class="field-body">The bin size</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.FragDB.AddFragments">
+<code class="descname">AddFragments</code><span class="sig-paren">(</span><em>fragment_length</em>, <em>rmsd_cutoff</em>, <em>structure_db</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragDB.AddFragments" title="Permalink to this definition">¶</a></dt>
+<dd><p>Iterates over all fragments of length <strong>fragment_length</strong> in the given structural database and adds them to the fragment database. Fragments will be skipped if there is already a fragment in the database that has an RMSD to the one being added smaller than <strong>rmsd_cutoff</strong>.
+As the fragments are added they are organized in bins described by their length and the geometry of their N and C stem.</p>
+<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"><ul class="first last simple">
+<li><strong>fragment_length</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 length of the fragments that should be added to the databse</li>
+<li><strong>rmsd_cutoff</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The minimal RMSD between two fragments in the fragment database</li>
+<li><strong>structure_db</strong> (<a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">StructureDB</span></code></a>) &#8211; Database delivering the structural info</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.FragDB.PrintStatistics">
+<code class="descname">PrintStatistics</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragDB.PrintStatistics" title="Permalink to this definition">¶</a></dt>
+<dd><p>Prints statistics about the fragment databse, notably:
+1. the number of different stem groups (number of bins used to group the fragments according to the geometry of their stem residues)
+2. The total number of fragments in the databse
+3. The minimal and maximal number of fragments found in a stem group.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.FragDB.GetNumStemPairs">
+<code class="descname">GetNumStemPairs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragDB.GetNumStemPairs" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the number of stem groups (number of bins used to group the fragments according to the geometry of their stem residues).</p>
+<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">Returns:</th><td class="field-body">The number of groups</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><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></td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>loop_length</strong> &#8211; The length of the fragments</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">GetNumStemPairs</code><span class="sig-paren">(</span><em>loop_length</em><span class="sig-paren">)</span></dt>
+<dd><p>Returns the number of stem groups (number of bins used to group the fragments according to the geometry of their stem residues) for fragments of a given length.</p>
+<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>loop_length</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 length of the fragments</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The number of groups</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><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></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.FragDB.GetNumFragments">
+<code class="descname">GetNumFragments</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragDB.GetNumFragments" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the number of fragments in the database.</p>
+<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">Returns:</th><td class="field-body">Number of fragments</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><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></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">GetNumFragments</code><span class="sig-paren">(</span><em>loop_length</em><span class="sig-paren">)</span></dt>
+<dd><p>Returns the number of fragments of length <strong>loop_length</strong> in the database.</p>
+<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>loop_length</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 length of the fragments</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Number of fragments</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><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></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.FragDB.SearchDB">
+<code class="descname">SearchDB</code><span class="sig-paren">(</span><em>n_stem</em>, <em>c_stem</em>, <em>frag_size</em><span class="optional">[</span>, <em>extended_search=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FragDB.SearchDB" title="Permalink to this definition">¶</a></dt>
+<dd><p>Search the database for fragments matching the geometry of the <strong>n_stem</strong> and <strong>c_stem</strong> and of the same length as the <strong>sequence</strong>.</p>
+<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"><ul class="first simple">
+<li><strong>n_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; The N-stem</li>
+<li><strong>c_stem</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; The C-stem</li>
+<li><strong>frag_size</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The length of the fragment</li>
+<li><strong>extended_search</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Whether an extended search should be performed, which will include fragments from bins surrounding the bin describing the  <strong>n_stem</strong> and <strong>c_stem</strong> geometry.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A list of <a class="reference internal" href="#promod3.loop.FragmentInfo" title="promod3.loop.FragmentInfo"><code class="xref py py-class docutils literal"><span class="pre">FragmentInfo</span></code></a> objects. These objects are related to the
+structural database with which you called the AddFragments function.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="finding-fragments-based-on-sequence-features">
+<h2>Finding Fragments based on Sequence Features<a class="headerlink" href="#finding-fragments-based-on-sequence-features" title="Permalink to this headline">¶</a></h2>
+<p>In some cases you might want to use the <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">StructureDB</span></code></a> to search
+for fragments that possibly represent the structural conformation of interest.
+The <a class="reference internal" href="#promod3.loop.Fragger" title="promod3.loop.Fragger"><code class="xref py py-class docutils literal"><span class="pre">Fragger</span></code></a> allows to perform this task for several different
+features. It searches a <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">StructureDB</span></code></a> for n fragments, that maximize
+a certain score and gathers a set of fragments with a guaranteed structural
+diversity based on an rmsd_threshold. The final score gets built using an
+arbitrary linear combination of the available scores as controlled by
+the <a class="reference internal" href="#promod3.loop.FraggerScoreParameters" title="promod3.loop.FraggerScoreParameters"><code class="xref py py-class docutils literal"><span class="pre">FraggerScoreParameters</span></code></a>. There are three scores available:</p>
+<ul class="simple">
+<li><strong>SequenceSimilarityScore</strong>: Takes a substitution matrix and calculates for
+every possible fragment the normalized sequence similarity in a range [0,1].</li>
+<li><strong>SequenceIdentityScore</strong>: Calculates for every possible fragment the
+sequence identity.</li>
+<li><strong>SSAgreementScore</strong>: Takes the predicted secondary structure by PSIPRED
+with its confidence and calculates an agreement score based on the
+actually observed secondary structure in the <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">StructureDB</span></code></a>.</li>
+<li><strong>TorsionProbabilityScore</strong>: Calculates for every possible fragment the
+average probablity of the  backbone dihedral angles in the
+<a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">StructureDB</span></code></a> given the input sequence.</li>
+<li><strong>ProfileScore</strong>: Calculates for every possible fragment the profile-profile
+alignment score given an input <code class="xref py py-class docutils literal"><span class="pre">ost.seq.HMM</span></code> and the amino acid
+frequencies in the <a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">StructureDB</span></code></a>.</li>
+</ul>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">loop</span>
+
+<span class="c">#load an example structure</span>
+<span class="n">prot</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">&quot;1crn&quot;</span><span class="p">,</span><span class="n">remote</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+
+<span class="c">#extract some additional information</span>
+<span class="n">seq</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">r</span><span class="o">.</span><span class="n">one_letter_code</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">])</span>
+<span class="n">frag_pos</span> <span class="o">=</span> <span class="mi">35</span>
+<span class="n">frag_length</span> <span class="o">=</span> <span class="mi">9</span>
+<span class="n">frag_seq</span> <span class="o">=</span> <span class="n">seq</span><span class="p">[</span><span class="n">frag_pos</span><span class="p">:</span><span class="n">frag_pos</span><span class="o">+</span><span class="n">frag_length</span><span class="p">]</span>
+<span class="n">frag_residues</span> <span class="o">=</span> <span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">frag_pos</span><span class="p">:</span><span class="n">frag_pos</span><span class="o">+</span><span class="n">frag_length</span><span class="p">]</span>
+<span class="n">ref_backbone</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">BackboneList</span><span class="p">(</span><span class="n">frag_seq</span><span class="p">,</span><span class="n">frag_residues</span><span class="p">)</span>
+
+<span class="c">#let&#39;s load the StructureDB and a substitution matrix</span>
+<span class="n">db</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">LoadStructureDB</span><span class="p">()</span>
+<span class="n">subst_matrix</span> <span class="o">=</span> <span class="n">ost</span><span class="o">.</span><span class="n">seq</span><span class="o">.</span><span class="n">alg</span><span class="o">.</span><span class="n">BLOSUM62</span>
+
+<span class="c">#to fill the fragger we need a list of parameters</span>
+<span class="c">#we only add a parametrization for the sequence similarity</span>
+<span class="n">parameters</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+<span class="n">parameters</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">loop</span><span class="o">.</span><span class="n">FraggerScoreParameters</span><span class="p">(</span><span class="n">frag_seq</span><span class="p">,</span><span class="n">subst_matrix</span><span class="p">,</span><span class="mf">1.0</span><span class="p">))</span>
+
+<span class="c">#let&#39;s finally fill the fragger</span>
+<span class="n">fragger</span> <span class="o">=</span> <span class="n">loop</span><span class="o">.</span><span class="n">Fragger</span><span class="p">()</span>
+<span class="n">fragger</span><span class="o">.</span><span class="n">Fill</span><span class="p">(</span><span class="n">db</span><span class="p">,</span><span class="n">parameters</span><span class="p">,</span><span class="mf">1.0</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span>
+
+<span class="c">#let&#39;s see how good the fragments are...</span>
+<span class="n">below_three</span> <span class="o">=</span> <span class="mi">0</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="n">fragger</span><span class="p">)):</span>
+  <span class="n">ca_rmsd</span> <span class="o">=</span> <span class="n">fragger</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">CARMSD</span><span class="p">(</span><span class="n">ref_backbone</span><span class="p">,</span><span class="bp">True</span><span class="p">)</span>
+  <span class="k">print</span> <span class="s">&quot;Fragment &quot;</span><span class="p">,</span><span class="n">i</span><span class="p">,</span> <span class="s">&quot; has CA RMSD of &quot;</span><span class="p">,</span><span class="n">ca_rmsd</span>
+  <span class="k">if</span> <span class="n">ca_rmsd</span> <span class="o">&lt;</span> <span class="mf">3.0</span><span class="p">:</span>
+    <span class="n">below_three</span> <span class="o">+=</span> <span class="mi">1</span>
+
+<span class="k">print</span> <span class="s">&quot;Fraction of fragments below 3A: &quot;</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="n">below_three</span><span class="p">)</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">fragger</span><span class="p">)</span>
+</pre></div>
+</div>
+<dl class="class">
+<dt id="promod3.loop.FraggerScoreParameters">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">FraggerScoreParameters</code><a class="headerlink" href="#promod3.loop.FraggerScoreParameters" title="Permalink to this definition">¶</a></dt>
+<dd><p>Controls the parametrization and linear weights of the available
+fragger scores.</p>
+<dl class="method">
+<dt id="promod3.loop.FraggerScoreParameters.FraggerScoreParameters">
+<code class="descname">FraggerScoreParameters</code><span class="sig-paren">(</span><em>seq</em>, <em>matrix</em>, <em>w</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.FraggerScoreParameters.FraggerScoreParameters" title="Permalink to this definition">¶</a></dt>
+<dd><p>Parametrization of sequence similarity score</p>
+<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"><ul class="first last simple">
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence of fragment</li>
+<li><strong>matrix</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.seq.alg.SubstWeightMatrix</span></code>) &#8211; Source of substitution scores</li>
+<li><strong>w</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Linear weight for sequence similarity score</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">FraggerScoreParameters</code><span class="sig-paren">(</span><em>seq</em>, <em>w</em><span class="sig-paren">)</span></dt>
+<dd><p>Parametrization of sequence identity score</p>
+<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"><ul class="first last simple">
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence of fragment</li>
+<li><strong>w</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Linear weight for sequence identity score</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">FraggerScoreParameters</code><span class="sig-paren">(</span><em>seq</em>, <em>psipred_prediction</em>, <em>psipred_confidence</em>, <em>w</em><span class="sig-paren">)</span></dt>
+<dd><p>Parametrization of secondary structure agreement score</p>
+<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"><ul class="first last simple">
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence of fragment</li>
+<li><strong>psipred_prediction</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; Per AA psipred prediction, every element
+must be in [&#8216;H&#8217;,&#8217;E&#8217;,&#8217;C&#8217;]</li>
+<li><strong>psipred_confidence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; Per AA psipred confidence values, every element
+must be in [0,9]</li>
+<li><strong>w</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Linear weight for secondary structure agreement score</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">FraggerScoreParameters</code><span class="sig-paren">(</span><em>seq</em>, <em>torsion_sampler</em>, <em>w</em><span class="sig-paren">)</span></dt>
+<dd><p>Parametrization of torsion angle probablity score</p>
+<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"><ul class="first last simple">
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence of fragment</li>
+<li><strong>torsion_sampler</strong> (<a class="reference internal" href="torsion_sampler.html#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a>) &#8211; Torsion sampler to get sequence specific backbone
+dihedral probabilities</li>
+<li><strong>w</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Linear weight for torsion probability score</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">FraggerScoreParameters</code><span class="sig-paren">(</span><em>seq</em>, <em>hmm</em>, <em>w</em><span class="sig-paren">)</span></dt>
+<dd><p>Parametrization of profile score</p>
+<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"><ul class="first last simple">
+<li><strong>seq</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence of fragment</li>
+<li><strong>hmm</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.seq.HMM</span></code>) &#8211; HMM of same size as the sequence to extract
+the according amino acid frequencies</li>
+<li><strong>w</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Linear weight for profile score</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.loop.Fragger">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">Fragger</code><a class="headerlink" href="#promod3.loop.Fragger" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="method">
+<dt id="promod3.loop.Fragger.Fill">
+<code class="descname">Fill</code><span class="sig-paren">(</span><em>db</em>, <em>parameters</em>, <em>rmsd_thresh</em>, <em>num_fragments</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.Fragger.Fill" title="Permalink to this definition">¶</a></dt>
+<dd><p>Searches <strong>db</strong> for <strong>num_fragments</strong> fragments with maximal
+score as defined by the <strong>parameters</strong>.
+There will be no pair of fragments with RMSD below
+<strong>rmsd_thresh</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>db</strong> (<a class="reference internal" href="#promod3.loop.StructureDB" title="promod3.loop.StructureDB"><code class="xref py py-class docutils literal"><span class="pre">StructureDB</span></code></a>) &#8211; Source of structural data</li>
+<li><strong>parameters</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; Parameters to build a per fragment score</li>
+<li><strong>rmsd_thresh</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; To guarantee structural diversity</li>
+<li><strong>num_fragments</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; Number of fragments to be extracted</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.Fragger.__len__">
+<code class="descname">__len__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.Fragger.__len__" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Number of fragments stored in fragger.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.Fragger.__getitem__">
+<code class="descname">__getitem__</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.Fragger.__getitem__" title="Permalink to this definition">¶</a></dt>
+<dd><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>index</strong> &#8211; Item to extract</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Fragment at given position</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.Fragger.GetScore">
+<code class="descname">GetScore</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.Fragger.GetScore" title="Permalink to this definition">¶</a></dt>
+<dd><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>index</strong> &#8211; Item to get score from</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Score of Fragment at given position as it has been
+estimated in the according Fill method.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Structural Database</a><ul>
+<li><a class="reference internal" href="#defining-chains-and-fragments">Defining Chains and Fragments</a></li>
+<li><a class="reference internal" href="#the-database">The Database</a></li>
+<li><a class="reference internal" href="#finding-fragments-based-on-geometric-features">Finding Fragments based on Geometric Features</a></li>
+<li><a class="reference internal" href="#finding-fragments-based-on-sequence-features">Finding Fragments based on Sequence Features</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="torsion_sampler.html"
+                        title="previous chapter">Torsion Sampler</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="loop_closing.html"
+                        title="next chapter">Loop Closing</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/loop/structure_db.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/loop/structure_db.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/loop/torsion_sampler.html b/doc/html/loop/torsion_sampler.html
new file mode 100644
index 0000000000000000000000000000000000000000..476550a941fdd856c0fd2d14f9e3e310bd6038d5
--- /dev/null
+++ b/doc/html/loop/torsion_sampler.html
@@ -0,0 +1,563 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Torsion Sampler &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="loop - Loop Modelling" href="index.html" />
+    <link rel="next" title="Structural Database" href="structure_db.html" />
+    <link rel="prev" title="Backbone" href="backbone.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="structure_db.html" title="Structural Database"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="backbone.html" title="Backbone"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="torsion-sampler">
+<h1>Torsion Sampler<a class="headerlink" href="#torsion-sampler" title="Permalink to this headline">¶</a></h1>
+<p>The torsion sampler is the basic object used to sample the backbone torsion
+angles phi and psi. It can be used to calculate the probability distributions
+of backbone torsion angles from structures and save them, as well as loading
+distributions and drawing from them.
+It uses distributions specific for triplets of residues, so that when drawing
+a phi/psi pair for a certain residue, the distribution from which the pair is
+drawn also depends on the identity of the residues before and after the residue
+in question.
+The distributions of the sampler are stored in a vector, so that
+most methods which need to access a specific distribution can either take 3
+residue names or an index as input.</p>
+<div class="section" id="defining-amino-acid-triplets">
+<h2>Defining Amino Acid triplets<a class="headerlink" href="#defining-amino-acid-triplets" title="Permalink to this headline">¶</a></h2>
+<p>Since the torsion sampler considers triplets of amino acids, we need to define
+them. This is done with the so called torsion group definitions.
+Three strings represent the according positions of the consecu-
+tive amino acids. They are combined by &#8220;-&#8221;. It is either possible to
+use the keyword &#8220;all&#8221;, or write out all allowed amino acids by their
+three letter code and separate them by &#8221;,&#8221;. An example would be: &#8220;all-
+VAL,ILE-PRO&#8221;. There are cases where a tripeptide can match several
+group definitions. The group definitions are stored internally as a
+list. This list is iterated at
+every evaluation of three consecutive amino acids and the first hit is
+decisive.</p>
+</div>
+<div class="section" id="the-torsion-sampler-class">
+<h2>The Torsion Sampler Class<a class="headerlink" href="#the-torsion-sampler-class" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.loop.TorsionSampler">
+<em class="property">class </em><code class="descclassname">promod3.loop.</code><code class="descname">TorsionSampler</code><span class="sig-paren">(</span><em>group_definitions</em>, <em>bin_size</em>, <em>seed</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler" title="Permalink to this definition">¶</a></dt>
+<dd><blockquote>
+<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" colspan="2">param group_definitions:</th></tr>
+<tr class="field-odd field"><td>&nbsp;</td><td class="field-body">List of group definitions defining
+amino acid triplets.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">param bin_size:</th><td class="field-body">Size of bins in distributions</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">param seed:</th><td class="field-body"></td>
+</tr>
+<tr class="field-even field"><th class="field-name">type bin_size:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td>
+</tr>
+<tr class="field-odd field"><th class="field-name">raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeException</span></code> when there is a
+possible combination of the 20 standard amino
+acids not matching any of the group definitions.</td>
+</tr>
+</tbody>
+</table>
+</div></blockquote>
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.ExtractStatistics">
+<code class="descname">ExtractStatistics</code><span class="sig-paren">(</span><em>view</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.ExtractStatistics" title="Permalink to this definition">¶</a></dt>
+<dd><p>Extracts backbone torsion angles from the structure and adds them to the appropriate histograms in the sampler.</p>
+<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>view</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.EntityView" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityView</span></code></a>) &#8211; structure from which parameters will be extracted</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.UpdateDistributions">
+<code class="descname">UpdateDistributions</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.UpdateDistributions" title="Permalink to this definition">¶</a></dt>
+<dd><p>Recalculates the probability distributions from the histograms.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.Load">
+<code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.Load" title="Permalink to this definition">¶</a></dt>
+<dd><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>filename</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; path to the file from which to load the sampler.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A torsion sampler</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference internal" href="#promod3.loop.TorsionSampler" title="promod3.loop.TorsionSampler"><code class="xref py py-class docutils literal"><span class="pre">TorsionSampler</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.Save">
+<code class="descname">Save</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.Save" title="Permalink to this definition">¶</a></dt>
+<dd><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>filename</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; path to the file where the sampler will be saved</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.GetHistogramIndex">
+<code class="descname">GetHistogramIndex</code><span class="sig-paren">(</span><em>before</em>, <em>central</em>, <em>after</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.GetHistogramIndex" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>before</strong> &#8211; Name (3 letter code) of the residue before <em>central</em></li>
+<li><strong>central</strong> &#8211; Name (3 letter code) of the residue for the central residue</li>
+<li><strong>after</strong> &#8211; Name (3 letter code) of the residue after <em>central</em></li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The index of the histogram corresponding to the triplet of residues specified.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.GetHistogramIndices">
+<code class="descname">GetHistogramIndices</code><span class="sig-paren">(</span><em>sequence</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.GetHistogramIndices" title="Permalink to this definition">¶</a></dt>
+<dd><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>sequence</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Sequence of length n from which histogram indices
+should created.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">List of length n-2 containing histogram indices of
+all consecutive amino acid triplets in <strong>sequence</strong></td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if <strong>sequence</strong> contains non
+standard amino acid</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.Draw">
+<code class="descname">Draw</code><span class="sig-paren">(</span><em>before</em>, <em>central</em>, <em>after</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.Draw" title="Permalink to this definition">¶</a></dt>
+<dd><p>Draws a pair of dihedral angles for the <em>central</em> residue from the distribution specific for such a triplet of residues.</p>
+<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"><ul class="first simple">
+<li><strong>before</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue before <em>central</em></li>
+<li><strong>central</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue for which torsion angles will be drawn</li>
+<li><strong>after</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue after <em>central</em></li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A pair of phi/psi angles</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">Draw</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span></dt>
+<dd><p>Draws a pair of dihedral angles from the distribution specified by the <em>index</em>.</p>
+<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>index</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 index of the distribution from which a phi/psi pair will be drawn.</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">A pair of phi/psi angles</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.DrawPhiGivenPsi">
+<code class="descname">DrawPhiGivenPsi</code><span class="sig-paren">(</span><em>before</em>, <em>central</em>, <em>after</em>, <em>psi</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.DrawPhiGivenPsi" title="Permalink to this definition">¶</a></dt>
+<dd><p>Draws a <em>phi</em> angle for the <em>central</em> residue from the conditional distribution P(<em>phi*|*psi</em>) specific for such a triplet of residues.</p>
+<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"><ul class="first simple">
+<li><strong>before</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue before <em>central</em></li>
+<li><strong>central</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue for which the <em>phi</em> will be drawn</li>
+<li><strong>after</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue after <em>central</em></li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; <em>psi</em> angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">An angle</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">DrawPhiGivenPsi</code><span class="sig-paren">(</span><em>index</em>, <em>psi</em><span class="sig-paren">)</span></dt>
+<dd><p>Draws a <em>phi</em> angle from the conditional distribution P(<em>phi*|*psi</em>) specified by the <em>index</em>.</p>
+<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"><ul class="first simple">
+<li><strong>index</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 index of the distribution from which a <em>phi</em> angle will be drawn.</li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; <em>psi</em> angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">An angle</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.DrawPsiGivenPhi">
+<code class="descname">DrawPsiGivenPhi</code><span class="sig-paren">(</span><em>before</em>, <em>central</em>, <em>after</em>, <em>phi</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.DrawPsiGivenPhi" title="Permalink to this definition">¶</a></dt>
+<dd><p>Draws a <em>phi</em> angle for the <em>central</em> residue from the conditional distribution P(<em>psi*|*phi</em>) specific for such a triplet of residues.</p>
+<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"><ul class="first simple">
+<li><strong>before</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue before <em>central</em></li>
+<li><strong>central</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue for which the <em>psi</em> angle will be drawn</li>
+<li><strong>after</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue after <em>central</em></li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; <em>phi</em> angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">An angle</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">DrawPsiGivenPhi</code><span class="sig-paren">(</span><em>index</em>, <em>phi</em><span class="sig-paren">)</span></dt>
+<dd><p>Draws a <em>phi</em> angle from the conditional distribution P(<em>psi*|*phi</em>) specified by the <em>index</em>.</p>
+<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"><ul class="first simple">
+<li><strong>index</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 index of the distribution from which a psi angle will be drawn.</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; <em>phi</em> angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">An angle</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.GetProbability">
+<code class="descname">GetProbability</code><span class="sig-paren">(</span><em>before</em>, <em>central</em>, <em>after</em>, <em>dihedrals</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.GetProbability" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the probability of a specific pair of phi/psi dihedrals for the central residue from the corresponding distribution.</p>
+<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"><ul class="first simple">
+<li><strong>before</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue before <em>central</em></li>
+<li><strong>central</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue for which the probability is calculated.</li>
+<li><strong>after</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue after <em>central</em></li>
+<li><strong>dihedrals</strong> ((<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>, <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)) &#8211; pair of phi/psi angles</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A probability</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">GetProbability</code><span class="sig-paren">(</span><em>index</em>, <em>dihedrals</em><span class="sig-paren">)</span></dt>
+<dd><p>Returns the probability of a specific pair of phi/psi dihedrals calulated form the distribution specified by <em>index</em>.</p>
+<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"><ul class="first simple">
+<li><strong>index</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 index of the distribution.</li>
+<li><strong>dihedrals</strong> ((<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>, <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>)) &#8211; pair of phi/psi angles</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A probability</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.GetPhiProbabilityGivenPsi">
+<code class="descname">GetPhiProbabilityGivenPsi</code><span class="sig-paren">(</span><em>before</em>, <em>central</em>, <em>after</em>, <em>phi</em>, <em>psi</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.GetPhiProbabilityGivenPsi" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns P(<em>phi*|*psi</em>) for the central residue from the corresponding distribution.</p>
+<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"><ul class="first simple">
+<li><strong>before</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue before <em>central</em></li>
+<li><strong>central</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue for which the probability is calculated.</li>
+<li><strong>after</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue after <em>central</em></li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; phi angle</li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; psi angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A probability</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.GetPsiProbabilityGivenPhi">
+<code class="descname">GetPsiProbabilityGivenPhi</code><span class="sig-paren">(</span><em>before</em>, <em>central</em>, <em>after</em>, <em>psi</em>, <em>phi</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.GetPsiProbabilityGivenPhi" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns P(<em>psi*|*phi</em>) for the central residue from the corresponding distribution.</p>
+<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"><ul class="first simple">
+<li><strong>before</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue before <em>central</em></li>
+<li><strong>central</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue for which the probability is calculated.</li>
+<li><strong>after</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name (3 letter code) of the residue after <em>central</em></li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; phi angle</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; psi angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A probability</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">GetPhiProbabilityGivenPsi</code><span class="sig-paren">(</span><em>index</em>, <em>phi</em>, <em>psi</em><span class="sig-paren">)</span></dt>
+<dd><p>Returns P(<em>phi*|*psi</em>) for the central residue from the corresponding distribution.</p>
+<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"><ul class="first simple">
+<li><strong>index</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 index of the distribution.</li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; phi angle</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; psi angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A probability</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">GetPsiProbabilityGivenPhi</code><span class="sig-paren">(</span><em>index</em>, <em>psi</em>, <em>phi</em><span class="sig-paren">)</span></dt>
+<dd><p>Returns P(<em>psi*|*phi</em>) for the central residue from the corresponding distribution.</p>
+<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"><ul class="first simple">
+<li><strong>index</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 index of the distribution.</li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; phi angle</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; psi angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A probability</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.GetBinsPerDimension">
+<code class="descname">GetBinsPerDimension</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.GetBinsPerDimension" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the number of bins in one dimension of the distributions.</p>
+<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">Return type:</th><td class="field-body"><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></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.loop.TorsionSampler.GetBinSize">
+<code class="descname">GetBinSize</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.loop.TorsionSampler.GetBinSize" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the size of the bins of the distributions.</p>
+<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">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Torsion Sampler</a><ul>
+<li><a class="reference internal" href="#defining-amino-acid-triplets">Defining Amino Acid triplets</a></li>
+<li><a class="reference internal" href="#the-torsion-sampler-class">The Torsion Sampler Class</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="backbone.html"
+                        title="previous chapter">Backbone</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="structure_db.html"
+                        title="next chapter">Structural Database</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/loop/torsion_sampler.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/loop/torsion_sampler.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/objects.inv b/doc/html/objects.inv
index 7fdd6319f5b28e8d6859a01771f2efd0c055a46b..9f59e59834c6be83762082dc76a1a354ce1e00cf 100644
Binary files a/doc/html/objects.inv and b/doc/html/objects.inv differ
diff --git a/doc/html/py-modindex.html b/doc/html/py-modindex.html
index f26f8cbf378161ed28c95d408117245fe4973c9b..f3fad5495f79353e7f8fcec9b348330d1b945cea 100644
--- a/doc/html/py-modindex.html
+++ b/doc/html/py-modindex.html
@@ -79,11 +79,21 @@
        <td>&nbsp;&nbsp;&nbsp;
        <a href="core/pm3argparse.html#module-promod3.core.pm3argparse"><code class="xref">promod3.core.pm3argparse</code></a></td><td>
        <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="loop/index.html#module-promod3.loop"><code class="xref">promod3.loop</code></a></td><td>
+       <em>Loop Modelling</em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&nbsp;&nbsp;&nbsp;
        <a href="rawmodel/index.html#module-promod3.rawmodel"><code class="xref">promod3.rawmodel</code></a></td><td>
        <em>Raw Coordinate Model</em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="sidechain/index.html#module-promod3.sidechain"><code class="xref">promod3.sidechain</code></a></td><td>
+       <em>Sidechain Modelling</em></td></tr>
      <tr class="pcap"><td></td><td>&nbsp;</td><td></td></tr>
      <tr class="cap" id="cap-t"><td></td><td>
        <strong>t</strong></td><td></td></tr>
diff --git a/doc/html/rawmodel/index.html b/doc/html/rawmodel/index.html
index 7b6a865d6f489690d5eb996e4ba5d80cdf735e59..1f3150676f9749b68076ddb3656241ad886c8903 100644
--- a/doc/html/rawmodel/index.html
+++ b/doc/html/rawmodel/index.html
@@ -25,7 +25,7 @@
     <script type="text/javascript" src="../_static/doctools.js"></script>
     <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
     <link rel="up" title="Documentation For Developes" href="../developers.html" />
-    <link rel="next" title="test_actions.ActionTestCase - Testing Actions" href="../actions/index_dev.html" />
+    <link rel="next" title="loop - Loop Modelling" href="../loop/index.html" />
     <link rel="prev" title="helper - Shared Functionality For the Everything" href="../core/helper.html" />
    
   
@@ -43,7 +43,7 @@
           <a href="../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
         <li class="right" >
-          <a href="../actions/index_dev.html" title="test_actions.ActionTestCase - Testing Actions"
+          <a href="../loop/index.html" title="loop - Loop Modelling"
              accesskey="N">next</a> |</li>
         <li class="right" >
           <a href="../core/helper.html" title="helper - Shared Functionality For the Everything"
@@ -173,8 +173,8 @@ missing or incomplete backbone coordinates in the template structure.</p>
   <p class="topless"><a href="../core/helper.html"
                         title="previous chapter"><code class="docutils literal"><span class="pre">helper</span></code> - Shared Functionality For the Everything</a></p>
   <h4>Next topic</h4>
-  <p class="topless"><a href="../actions/index_dev.html"
-                        title="next chapter"><code class="docutils literal"><span class="pre">test_actions.ActionTestCase</span></code> - Testing Actions</a></p>
+  <p class="topless"><a href="../loop/index.html"
+                        title="next chapter"><code class="docutils literal"><span class="pre">loop</span></code> - Loop Modelling</a></p>
   <div role="note" aria-label="source link">
     <h3>This Page</h3>
     <ul class="this-page-menu">
diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js
index f019de0bc054943222f4609aee650ba7cd99889a..c8a74c542aee4d39addd66c90fbe2844648a1f18 100644
--- a/doc/html/searchindex.js
+++ b/doc/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({envversion:46,filenames:["actions/index_dev","buildsystem","changelog","cmake/index","contributing","core/helper","core/index","core/pm3argparse","core/setcompoundschemlib","developers","index","rawmodel/index","users"],objects:{"":{"command:add_doc_dependency":[3,0,1,""],"command:add_doc_source":[3,0,1,""],"command:pm_action":[3,0,1,""],"command:promod3_unittest":[3,0,1,""],test_actions:[0,1,0,"-"]},"promod3.core":{pm3argparse:[7,1,0,"-"]},"promod3.core.helper":{FileExists:[5,3,1,""],FileExtension:[5,3,1,""],FileGzip:[5,3,1,""],MsgErrorAndExit:[5,3,1,""]},"promod3.core.pm3argparse":{PM3ArgumentParser:[7,5,1,""]},"promod3.core.pm3argparse.PM3ArgumentParser":{"__init__":[7,2,1,""],AddAlignment:[7,2,1,""],AssembleParser:[7,2,1,""],Parse:[7,2,1,""],action:[7,4,1,""]},"promod3.rawmodel":{BuildRawModel:[11,3,1,""],RawModelingResult:[11,5,1,""]},"promod3.rawmodel.RawModelingResult":{gaps:[11,4,1,""],model:[11,4,1,""]},"test_actions.ActionTestCase":{RunAction:[0,2,1,""],RunExitStatusTest:[0,2,1,""],pm_action:[0,4,1,""],pm_bin:[0,4,1,""],testPMExists:[0,2,1,""]},promod3:{SetCompoundsChemlib:[8,3,1,""],core:[6,1,0,"-"],rawmodel:[11,1,0,"-"]},test_actions:{ActionTestCase:[0,5,1,""]}},objnames:{"0":["cmake","command","CMake command"],"1":["py","module","Python module"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","attribute","Python attribute"],"5":["py","class","Python class"]},objtypes:{"0":"cmake:command","1":"py:module","2":"py:method","3":"py:function","4":"py:attribute","5":"py:class"},terms:{"2b1":1,"__doc__":5,"__init__":[0,4,7],"__main__":[0,4],"__name__":[0,4],"_opt":4,"_run":[0,3],"_xml":3,"boolean":5,"break":[3,4],"case":4,"class":[0,4,6,7,11],"default":[0,1,4,7,8],"final":[4,11],"function":0,"import":[0,1,4,5,11],"int":[0,5],"new":[0,4,7,11],"public":4,"return":[0,5,7,8,11],"short":4,"static":4,"switch":4,"throw":0,"true":[0,4,5,7,11],"try":[0,4],"while":[0,3,4],abil:4,abort:4,about:[0,3,4,11],abov:[0,4],absolut:3,academ:4,accord:4,achiev:4,acid:11,acknowledg:4,across:0,action_unit_test:0,actiontest:0,activ:[4,7],actual:[4,7],add:[0,3,4,7],add_argu:5,add_changelog_to_doc:4,add_custom_target:4,add_doc_depend:3,add_doc_sourc:[3,4],add_subdirectori:4,addalign:7,addit:[3,4,5],addition:[0,3],additional_make_clean_fil:4,admir:4,advic:4,advis:4,affect:4,after:[0,1,4,7],again:[1,4],ago:0,algorithm:[4,11],alias:4,align:[7,11],alignmentlist:7,all:[0,1,3,4,7,11],allow:[4,5],almost:3,aln:11,aln_sourc:7,alon:5,along:[0,4],alot:4,alreadi:[0,3,4],also:[0,1,3,4,5,11],alwai:[0,4],amino:11,ancient:8,ani:[0,3,4,8],announc:[0,4],anyth:[1,4,7,8],anywai:4,apart:0,appli:[4,5,8],applic:0,approach:4,arg:[0,4,7],argcheck:2,argpars:7,argument:[0,1],argumentpars:7,argv:7,around:[0,4],ask:4,assemblepars:7,assertequ:4,assum:[0,4],atom:11,attach:[3,11],attachview:11,attent:[0,4],attribut:[4,7],author:4,autom:3,automat:[0,4,5],automatis:4,avail:[0,1,4,8],avoid:[4,5,8],awai:4,awar:4,awesom:[0,4],awesomeactiontest:4,back:[0,4],backbon:11,background:1,base:[5,11],basi:[3,4],basic:[0,1,4,5,11],becaus:[1,4],been:4,befor:[0,3,4,7],begin:[0,4],behav:0,behaviour:7,behind:4,bell:4,belong:[3,4],below:4,besid:[1,3,7],best:3,between:0,beyond:7,bienchen:4,bin:[0,4],binari:[0,4],bit:[0,1,4],blank:4,bool:[0,5,7],boost:[0,1,2,3,4,5,6,7,8,9,10,11,12],boost_include_dir:4,boost_root:1,branch:3,branchnam:4,brew:3,briefli:4,bring:4,broken:0,bug:4,build:0,builder:1,buildrawmodel:11,built:[3,4],bunch:[0,4,7],bytecod:0,cach:[1,4],call:[0,1,3,4,7,8],calpha:11,calpha_onli:11,came:4,can:[0,1,4,5,7,8,11],cannot:4,captur:0,carri:[4,5],categori:3,caus:4,certain:[0,1,3,4],certainli:0,chain:[4,11],chanc:4,chang:0,chapter:4,charact:7,charg:4,check:[0,1,4,5,7],checkout:4,chemic:8,child:7,childclass:0,chmod:4,clean:[1,4],clip:7,clone:4,close:4,clutter:[0,4],cmake_build_typ:4,cmake_c_compiler_vers:4,cmake_compiler_is_gnucxx:4,cmake_current_source_dir:4,cmake_cxx_compiler_vers:4,cmake_cxx_flag:4,cmake_cxx_flags_releas:4,cmake_minimum_requir:4,cmake_module_path:4,cmake_source_dir:4,cmake_support:[3,4],cmakecach:1,cmakelist:[0,1,3,4],coars:4,code:[0,1,3,4,5,7,8],codetest:[3,4],collect:5,come:[0,3,4,5,7],command:[0,4],comment:4,commerci:4,commit:4,common:[4,7],compat:4,compil:[0,4],complain:0,complaint:4,complet:[4,11],complex:4,compon:[4,8],compound:8,compress:5,concept:4,condit:4,conf:[1,4],config:4,configur:[1,4],conflict:4,connect:[3,4],conop:4,conquer:4,consid:[3,4],consist:4,constraint:7,contain:[0,1,3,4,5,7,11],content:[4,9,10],continu:0,contribut:3,control:4,conveni:0,convent:0,convert:11,coordin:[],cope:4,copi:[3,4,11],cor:7,core:4,correspond:4,could:[0,3,4,11],coupl:[0,4],cours:4,cover:[0,4,6],croak:4,crucial:4,current:4,custom:4,cxx:4,dai:5,dare:3,data1:3,data2:3,data:[0,3,4],date:4,dbg:4,debug:4,decent:8,decid:4,declar:[3,4],dedic:[1,3,4],def:[0,4],defin:[0,3,8],definit:4,delet:11,deliv:0,dep:3,dependency1:3,dependency2:3,deriv:0,describ:[3,5,7],descript:[4,7],design:0,detail:[4,11],detect:5,determin:5,deuterium:11,develop:[0,4],devot:6,dictionari:8,did:4,differ:[0,1,3,4,7,8],dir:4,direct:4,directori:[0,1,3],dirti:0,disabl:[0,4],disable_disable_doctest:4,disable_disable_linkcheck:4,disable_doctest:[1,4],disable_document:[1,4],disable_linkcheck:[1,4],displai:5,distribut:[0,4],dive:4,diverg:4,doawesomeactiontest:0,doc:[1,3,4],doctest:[1,4],document:[0,1],doe:[0,3,4,5,7,8,11],don:[1,4],done:[0,4,5,7],dont_write_bytecod:[0,4],doptim:4,dost_root:[1,4],down:7,download:1,dqmean_root:[1,4],drawback:4,driven:4,drop:4,due:11,dure:0,each:4,easi:4,easier:[0,4],easili:[3,4],echo:4,editor:0,educ:4,effect:[3,4],eigen3:4,eigen3_found:4,eigen3_include_dir:[1,4],eigen:[1,4],eigenvalu:4,eigenvector:4,either:[4,11],elabor:4,element:0,els:4,emerg:0,emploi:4,empti:[4,5,7],enabl:[0,5,8],end:[0,1,3,4,5],endif:4,enough:4,entiti:4,entityhandl:11,entri:4,enumer:4,env:4,environ:[0,4],error:5,essenti:4,etc:[0,4],evalu:[3,4],even:[1,4],eventu:7,ever:4,everi:[0,4,11],everybodi:4,everyth:[0,4],exactli:1,exampl:[0,1,4,7,11],except:4,exclud:4,exclus:[0,4],exec_program:4,executable_output_path:4,exist:[0,3,4,5,7],exit:[0,5,7],exit_cod:0,exit_statu:5,exot:4,expand:4,expect:0,explain:4,explan:4,ext:5,extend:[0,3,4],extens:[5,7],extern:[3,4],extra:4,extract:4,fail:[0,4,5],failur:[4,5],fals:[0,4,5,7,11],fasta:[7,11],fatal_error:4,favourit:0,featur:4,fed:[3,4],fedora:4,feed:3,feel:4,fellow:4,fetch:4,few:[1,4,11],figur:4,file:[0,1,3,4],filecheck:4,fileexist:5,fileextens:5,filegzip:5,filenam:[4,5,7],files_to_be_remov:4,fill:[3,4,7],find:[3,4],find_packag:4,fine:4,fire:0,first:[0,2,4,7],fix:[4,5],flag1:3,flag2:3,flag:[3,4,5,7],flush:[0,4],fno:4,folder:4,follow:[0,4,11],forbidden:4,forg:4,forget:[0,1,4],format:[4,7],formatt:4,forward:4,found:[0,3,4,5,7],foundat:0,frame:4,framework:4,free:4,from:[0,1,2,3,4,5,11],front:[0,1,4,5],full:[0,4],fulli:4,functions_specific_to_your_act:4,funni:[1,4],gap:11,gather:[3,4,6],gcc:4,gener:[0,4],generalis:4,get:[0,1,4],git:[0,1,3],gitignor:4,give:[3,4],given:[0,3,5,7],global:8,gly:11,goal:0,goe:[1,4],good:[3,4],got:1,grain:4,grep:1,grow:11,gui:4,gzip:[5,7],hand:[1,3,7],handl:11,happen:[0,4],headach:4,header:[1,4],header_stage_path:4,headlin:4,help:[0,1,3,4,7],helper:3,henc:4,here:[0,1,3,4,5,7,11],hide:4,hierarchi:8,higher:1,highest:8,highli:1,hint:7,histori:4,hit:[0,4],hold:11,home:3,homolog:6,honour:11,host:[3,4],hotfix:4,hous:4,html:[1,2,4],http:4,hydrogen:11,hyphen:0,idea:[0,2,4],identifi:7,ignor:11,imagin:4,imaginari:0,immedi:[0,4,8],implement:4,implicit:1,includ:[2,4,5],include_directori:4,incomplet:11,inconveni:4,incred:11,index:[4,10],indic:[],influenc:7,inform:[4,7,11],inherit:0,init:4,initi:2,initialis:0,inlin:4,input:[0,7],insert:11,insid:[0,3,7],insight:4,instal:[1,4],instanc:7,instead:[0,1,3,4,5],intend:[0,4],interest:0,interfac:4,intermedi:4,intern:[0,3,4],internet:4,interpret:[4,5],intervent:4,introduc:[0,3,4],invok:[1,3,4,8],involv:4,item:[0,4,11],itself:[3,4],job:4,json:7,just:[0,1,4,7,8],keep:[0,3,4,7],kic:4,kick:7,kind:[0,4],know:1,known:[3,5],kwarg:[0,4],label:4,languag:3,lapack:[1,4],last:[0,3],later:[0,4],latest:1,latter:4,launcher:[3,4],lead:[4,5],least:[1,3,4],leav:0,left:5,legal:4,length:7,less:4,let:[0,4],level:[1,4,8],lib_stage_path:4,libexec:[3,4],libexec_stage_path:4,librari:[3,4,8],library1:3,library2:3,life:4,like:[0,1,3,4,11],line:[0,4],link:[1,3,4],linkcheck:[1,4],linker:3,list:[0,1,3,4,5,7,11],littl:[3,4],live:[3,4],load:[0,7,8],loadalign:11,loadpdb:11,locat:[1,3],log:[4,5],look:[4,5],loop:[4,11],loss:4,lost:[0,4],lot:[0,4,7],low:0,macro:[3,4],made:3,magic:4,mai:[0,1,3,4,5,7,11],maintain:4,major:4,make_directori:4,makefil:[1,4],malici:4,man:[1,4],manag:[3,4],mandatori:4,mani:5,manner:4,manual:[0,1,4],mark:7,markup:4,master:4,match:[3,4,11],materi:[0,4],matter:3,mean:[1,3,4,7],meld:2,member:[4,11],mention:0,merg:[2,4],mess:4,messag:4,messi:4,methionin:11,method:[0,7],middl:4,mind:[0,4],minimalist:11,miss:[5,11],mix:3,mkdir:4,mmcif:5,mod:4,mode:0,model:0,modif:11,modifi:[2,4,11],modul:0,mol:4,mol_alg:4,moment:4,monitor:0,monolith:4,mood:4,more:[0,1,3,4,7,11],most:[3,4,11],mostli:[3,4],move:4,msg:5,msgerrorandexit:5,much:[4,11],multipl:[4,7],name:[0,3,4,5,7],namespac:7,need:[0,1,3,4,5,7,8],neg:0,never:[4,7],nevertheless:4,next:[0,4],nice:4,nobodi:0,non:4,none:7,note:[4,7],noth:[3,4],notic:[0,3,4],now:[0,4,11],number:[0,11],object:7,obtain:11,obviou:4,off:[0,4,11],often:[4,5,7],onc:[0,4],onli:[0,3,4,5,7,8,11],onto:0,openstructur:[0,1,2,3,4,5,6,7,8,9,10,11,12],oper:4,opt:[4,5],optim:[1,4],optimis:4,option:[1,4,7],order:7,org:4,origin:[4,7],ost:[0,1,2,3,4,5,6,7,8,9,10,11,12],ost_doc_url:4,ost_double_precis:1,ost_include_dir:4,ost_root:[1,4],other:[0,1,4,7,11],otherwis:[0,3,4],our:[3,4],out:[0,1,3,4],output_vari:4,outsid:4,over:[1,3,4,11],overli:4,overview:4,own:[0,3],packag:[3,4],page:[1,4,10],pai:0,paragraph:[0,4],paramet:[0,3,5,7,8,11],parent:11,pars:[],parse_arg:7,parser:[],part:[0,4],particular:4,pass:4,past:4,path:[0,1,3,4,5],path_to_chemlib:8,pdb:[5,11],peopl:4,pep:[0,1,2,3,4,5,6,7,8,9,10,11,12],peptid:11,per:[3,4,6],perfect:4,perfectli:4,perform:4,permiss:4,phosphoserin:11,phrase:4,pictur:4,piec:4,place:[0,4,5,7],pleas:4,plu:[4,7,8],pm3_csc:4,pm3argpars:[],pm3argumentpars:[5,7],pm3optionsnamespac:7,pm_action:[0,3,4],pm_action_init:4,pm_bin:0,point:[1,4,8],pointer:1,pop:4,popul:[1,4],possibl:[4,7,11],post:7,practic:[3,4],pre:4,pre_commit:4,prefer:3,prefix:[0,3,4,5,7],prepar:4,prevent:[0,4],print:[0,1],privat:0,probabl:[1,3,4],problem:4,process:[0,4,7],produc:[0,1,3,4],product:[0,4],prog:7,program:[3,4,6],project:[3,4],project_binary_dir:4,project_nam:4,promod3:0,promod3_unittest:[0,3,4],promod3_version_major:4,promod3_version_minor:4,promod3_version_patch:4,promod3_version_str:4,promod_gcc_45:4,promot:4,propag:4,proper:4,properli:0,properti:4,protein:11,provid:[0,1,3,4,7],pseudo:11,pull:[1,4],punch:0,purpos:4,push:4,put:[0,1,3,4,5,7],py_run:[0,3,4],pyc:[0,4],pylint:4,pylintrc:4,pymod:4,python:[0,1,2,3,4,5,6,7,8,9,10,11,12],python_binari:4,python_doc_url:4,python_root:1,python_vers:4,qmean:[1,4],qmean_include_dir:4,qmean_root:[1,4],quickli:4,quit:[4,7],rais:[7,11],rare:4,rather:[4,5,7],raw:[],rawmodel:4,rawmodelingresult:11,read:4,readabl:4,reader:4,readi:1,real:[4,7],realli:[0,1,4,5],reappear:4,reason:4,rebas:4,rebuild:[1,4],recent:4,recognis:[0,4],recommend:1,record:0,refer:[0,3],regist:[3,4],rel:3,relat:[3,4,7],relev:[1,3],rememb:0,remov:1,renam:2,renumb:11,report:[0,4,11],repositori:[0,2,3,4],requir:[1,4],resembl:4,reserv:5,residu:11,resolv:4,respons:4,rest:[0,1,2,3,4,5,6,7,8,9,10,11,12],restrict:4,restrict_chain:11,restructuredtext:[0,1,2,3,4,5,6,7,8,9,10,11,12],result:[1,4,11],reus:11,review:4,reviv:4,rewrit:0,right:[0,1,4,7],root:[3,4],routin:0,rst1:3,rst2:3,rst:[3,4],rule:4,runact:0,runexitstatustest:[0,4],runnabl:4,runtest:[0,4],runtimeerror:11,same:[0,1,3,4,7],save:4,savepdb:11,scheme:[0,4,7],seamlessli:4,search:[1,4,10],second:11,secondli:4,section:[0,3],see:[0,4,5],seem:4,select:11,selenium:11,self:[0,4],send:5,separ:[0,4],seq:[4,11],seq_alg:4,sequenc:[7,11],serv:[0,7],servic:4,set:[0,1,3,4,5,7,8,11],set_directory_properti:4,setup:[2,4],setup_boost:4,setup_compiler_flag:4,setup_stag:4,sever:[1,4,7],shebang:4,shell:[0,1,4,5],should:[0,3,4,5,7],show:[0,4],shown:4,side:[4,11],sidechain:4,sidechains_pymod:4,sidechains_rst:4,sidechains_unit_test:4,silent:0,similar:[0,1,4],simplest:4,simplif:7,sinc:[0,1,3,4,5],singl:[3,4,11],sit:4,skip:[0,4],smallish:[1,4],smart:4,smng:2,softwar:4,sole:[0,4],solut:4,solv:4,solver:4,some:[0,1,3,4,7],someth:[0,4,5],somethingtest:4,sometim:4,somewher:3,soon:4,sort:[0,3],sound:4,sourc:[0,1,3,4,5,7,8],source1:[3,4],source2:[3,4],spawn:[0,4],special:[0,1,3,4],specif:0,specifi:3,specimen:5,spend:4,sphinx:[0,1,2,3,4,5,6,7,8,9,10,11,12],sport:4,src:4,stabl:4,stack:4,stage:[0,1],stage_dir:4,stai:[0,4],standard:[1,4,6,7],start:[0,1,3],starter:0,stash:4,state:[0,1,4],statu:[0,4],stderr:0,stdout:0,step:4,still:4,stop:0,store:[0,4,11],stori:4,str:[0,5,7,8],straight:4,strict:4,string:[5,7],strip:11,structuralgaplist:11,sub:4,subdir:4,subject:4,submodul:4,submodule1:4,subsequ:11,subtre:[3,4],success:5,suffix:5,suggest:4,suit:[0,4],supervis:0,support:[0,4,5],suppos:4,sure:4,system:[0,1,2,3,4],take:[4,11],talk:0,target:[0,1,3,4,7],task:4,tell:[0,4,5,7],templat:[0,7,11],template_structur:11,temporarili:4,term:4,termin:[0,5],test_:4,test_action_:0,test_action_awesom:4,test_action_do_awesom:0,test_action_help:0,test_awesome_featur:4,test_foo:3,test_sidechain:4,test_someth:4,test_submodule1:4,test_suite_:3,test_suite_your_module_run:4,test_your_modul:4,testcas:[0,4],testexit0:[0,4],testfileexistsfals:4,testpmexist:0,testutil:[0,4],text:[0,7],than:[4,7],thei:[1,4],them:[3,4],therefor:4,thi:[0,1,3,4,5,6,7,8,11],thing:[0,1,4,7],think:4,thoroughli:4,those:[0,1,3,4,7],three:[0,3,4],through:[0,4],throughout:[4,7],thu:5,tidi:4,tightli:4,time:[0,4,11],tini:4,togeth:4,too:4,tool:3,toolbox:4,top:[1,4,8],topic:[0,4],touch:[0,4],toward:4,track:5,tradit:7,tradition:5,treat:[4,11],tree:[0,3,4],trg:7,tri:11,trick:[0,4],trigger:[0,3,4],tripl:5,trustworthi:4,tupl:5,turn:[0,4,5],tutori:4,two:[0,4],txt:[0,1,3,4],type:[0,5,7,11],uncertain:4,under:[3,4],underscor:0,understand:4,unexpect:1,unfortun:4,unittest:[0,4],unix:4,unrecognis:[5,7],until:4,untrack:0,unus:4,updat:4,url:4,usabl:4,user:0,userlevel:0,usr:4,usual:[0,1,3,4,7],utilis:4,valid:4,valu:[1,5],vanish:4,vari:3,variabl:[0,1,4],variou:[0,1,3,4],verbos:0,veri:[0,4,5],verif:7,verifi:[0,4,5],version:[1,4],version_great:4,via:[0,4,7,8],view:4,virtual:4,wai:[0,1,3,4,7],wait:4,walk:[0,4],want:[0,1,4,8],warn:4,watch:4,web:[1,4],well:[1,3,4,11],went:4,were:4,what:[0,1,4,5,7],when:[0,3,4,7,11],whenev:4,where:[0,4,5],whether:5,which:[0,1,4,5,6,7,11],whistl:4,whole:[0,4,11],why:[0,4],wild:3,wise:3,within:[1,4],without:[0,3,4,5,11],wno:4,word:3,work:[0,1,3,4],worst:4,would:[0,1,4,5],wrapper:[0,4,8],wrong:1,www:4,year:0,you:[0,1,3,4,5,7,8],your:[0,1,3],your_modul:4,yourself:[1,4]},titles:["<code class=\"docutils literal\"><span class=\"pre\">test_actions.ActionTestCase</span></code> - Testing Actions","Building ProMod3","Changelog","ProMod3&#8216;s Share Of CMake","Contributing","<code class=\"docutils literal\"><span class=\"pre\">helper</span></code> - Shared Functionality For the Everything","<code class=\"docutils literal\"><span class=\"pre\">core</span></code> - ProMod3 Core Functionality","<code class=\"docutils literal\"><span class=\"pre\">pm3argparse</span></code> - Parsing Command Lines","<code class=\"docutils literal\"><span class=\"pre\">SetCompoundsChemlib()</span></code>","Documentation For Developes","Welcome To ProMod3&#8217;s Documentation!","<code class=\"docutils literal\"><span class=\"pre\">rawmodel</span></code> - Coordinate Modeling","Documentation For Users"],titleterms:{"function":[3,5,6],action:[0,3,4],actiontestcas:0,api:[0,11],argument:7,branch:4,build:1,chang:2,changelog:2,cmake:[0,1,3,4],command:7,contribut:4,coordin:11,core:6,creat:0,depend:1,develop:9,directori:4,document:[3,4,9,10,12],everyth:5,execut:0,file:5,git:4,have:0,helper:5,hook:4,how:4,indic:10,integr:0,introduct:[3,5,7],issu:4,licens:4,line:7,mainten:3,make:[0,1],messag:5,model:11,modul:[3,4],must:0,output:0,own:4,pars:7,parser:7,parti:4,pm3argpars:7,promod3:[1,3,6,10],raw:11,rawmodel:11,releas:2,run:[0,1],script:0,setcompoundschemlib:8,share:[3,5],stage:4,start:4,structur:4,subclass:0,tabl:10,test:[0,3,4,5],test_act:0,third:4,unit:[0,3,4],user:12,welcom:10,write:4,your:4}})
\ No newline at end of file
+Search.setIndex({envversion:46,filenames:["actions/index_dev","buildsystem","changelog","cmake/index","contributing","core/helper","core/index","core/pm3argparse","core/setcompoundschemlib","developers","index","loop/backbone","loop/backbone_loop_score","loop/index","loop/load_loop_objects","loop/loop_candidate","loop/loop_closing","loop/monte_carlo","loop/structure_db","loop/torsion_sampler","rawmodel/index","sidechain/disulfid","sidechain/frame","sidechain/graph","sidechain/index","sidechain/rotamer","sidechain/rotamer_id","sidechain/rotamer_lib","sidechain/sidechain_settings","users"],objects:{"":{"command:add_doc_dependency":[3,0,1,""],"command:add_doc_source":[3,0,1,""],"command:pm_action":[3,0,1,""],"command:promod3_unittest":[3,0,1,""],test_actions:[0,1,0,"-"]},"promod3.core":{pm3argparse:[7,1,0,"-"]},"promod3.core.helper":{FileExists:[5,5,1,""],FileExtension:[5,5,1,""],FileGzip:[5,5,1,""],MsgErrorAndExit:[5,5,1,""]},"promod3.core.pm3argparse":{PM3ArgumentParser:[7,4,1,""]},"promod3.core.pm3argparse.PM3ArgumentParser":{"__init__":[7,2,1,""],AddAlignment:[7,2,1,""],AssembleParser:[7,2,1,""],Parse:[7,2,1,""],action:[7,3,1,""]},"promod3.loop":{Backbone:[11,4,1,""],BackboneList:[11,4,1,""],BackboneLoopScorer:[12,4,1,""],BackboneRelaxer:[16,4,1,""],CCD:[16,2,1,""],CCDCloser:[17,4,1,""],CTerminalCloser:[17,4,1,""],CoordInfo:[18,4,1,""],DihedralPair:[11,4,1,""],DirtyCCDCloser:[17,4,1,""],ExponentialCooler:[17,4,1,""],FragDB:[18,4,1,""],Fragger:[18,4,1,""],FraggerScoreParameters:[18,4,1,""],FragmentInfo:[18,4,1,""],KIC:[16,2,1,""],KICCloser:[17,4,1,""],LinearScorer:[17,4,1,""],LoadBackboneLoopScorer:[14,2,1,""],LoadFragDB:[14,2,1,""],LoadStructureDB:[14,2,1,""],LoadTorsionSampler:[14,2,1,""],LoadTorsionSamplerCoil:[14,2,1,""],LoadTorsionSamplerExtended:[14,2,1,""],LoadTorsionSamplerHelical:[14,2,1,""],LoopCandidate:[15,4,1,""],LoopCandidates:[15,4,1,""],MonteCarloSampler:[17,2,1,""],NTerminalCloser:[17,4,1,""],PhiPsiSampler:[17,4,1,""],SoftSampler:[17,4,1,""],StructureDB:[18,4,1,""],TorsionSampler:[19,4,1,""]},"promod3.loop.Backbone":{ApplyTransform:[11,2,1,""],Backbone:[11,2,1,""],GetTransform:[11,2,1,""],aa:[11,3,1,""],c_coord:[11,3,1,""],ca_coord:[11,3,1,""],cb_coord:[11,3,1,""],n_coord:[11,3,1,""],o_coord:[11,3,1,""],one_letter_code:[11,3,1,""]},"promod3.loop.BackboneList":{ApplyTransform:[11,2,1,""],BackboneList:[11,2,1,""],CARMSD:[11,2,1,""],GetOmegaTorsion:[11,2,1,""],GetPhiTorsion:[11,2,1,""],GetPsiTorsion:[11,2,1,""],GetSequence:[11,2,1,""],InsertInto:[11,2,1,""],RMSD:[11,2,1,""],ReplaceFragment:[11,2,1,""],RotateAroundOmegaTorsion:[11,2,1,""],RotateAroundPhiTorsion:[11,2,1,""],RotateAroundPsiTorsion:[11,2,1,""],SetOmegaTorsion:[11,2,1,""],SetPhiTorsion:[11,2,1,""],SetPsiTorsion:[11,2,1,""],SuperposeOnto:[11,2,1,""],ToEntity:[11,2,1,""],append:[11,2,1,""],insert:[11,2,1,""]},"promod3.loop.BackboneLoopScorer":{CalculateCBPackingScore:[12,2,1,""],CalculateCBetaScore:[12,2,1,""],CalculateClashScore:[12,2,1,""],CalculateDSSPHBondScore:[12,2,1,""],CalculateHBondScore:[12,2,1,""],CalculateTorsionScore:[12,2,1,""],Initialize:[12,2,1,""],Load:[12,2,1,""],Save:[12,2,1,""],SetCBPackingEnergy:[12,2,1,""],SetCBPackingPotentialParameters:[12,2,1,""],SetCBetaEnergy:[12,2,1,""],SetCBetaPotentialParameters:[12,2,1,""],SetEnvironment:[12,2,1,""],SetHBondEnergy:[12,2,1,""],SetHBondPotentialParameters:[12,2,1,""],SetTorsionEnergy:[12,2,1,""],SetTorsionPotentialParameters:[12,2,1,""],TransOmegaTorsions:[12,2,1,""]},"promod3.loop.BackboneRelaxer":{Run:[16,2,1,""]},"promod3.loop.CCDCloser":{Close:[17,2,1,""]},"promod3.loop.CoordInfo":{offset:[18,3,1,""],pdb_id:[18,3,1,""],size:[18,3,1,""]},"promod3.loop.DihedralPair":{DihedralPair:[11,2,1,""]},"promod3.loop.DirtyCCDCloser":{Close:[17,2,1,""]},"promod3.loop.ExponentialCooler":{GetTemperature:[17,2,1,""],Reset:[17,2,1,""]},"promod3.loop.FragDB":{AddFragments:[18,2,1,""],GetAngularBinSize:[18,2,1,""],GetDistBinSize:[18,2,1,""],GetNumFragments:[18,2,1,""],GetNumStemPairs:[18,2,1,""],Load:[18,2,1,""],PrintStatistics:[18,2,1,""],Save:[18,2,1,""],SearchDB:[18,2,1,""]},"promod3.loop.Fragger":{"__getitem__":[18,2,1,""],"__len__":[18,2,1,""],Fill:[18,2,1,""],GetScore:[18,2,1,""]},"promod3.loop.FraggerScoreParameters":{FraggerScoreParameters:[18,2,1,""]},"promod3.loop.FragmentInfo":{chain_index:[18,3,1,""],length:[18,3,1,""],offset:[18,3,1,""]},"promod3.loop.KICCloser":{Close:[17,2,1,""]},"promod3.loop.LinearScorer":{GetScore:[17,2,1,""]},"promod3.loop.LoopCandidate":{CARMSD:[15,2,1,""],GetoriginalDSSPState:[15,2,1,""],GetoriginalSequence:[15,2,1,""],RMSD:[15,2,1,""],bb_list:[15,3,1,""],cbeta_score:[15,3,1,""],clash_score:[15,3,1,""],dssp_hbond_score:[15,3,1,""],hbond_score:[15,3,1,""],packing_score:[15,3,1,""],stem_rmsd:[15,3,1,""],torsion_score:[15,3,1,""]},"promod3.loop.LoopCandidates":{Add:[15,2,1,""],ApplyCCD:[15,2,1,""],ApplyKIC:[15,2,1,""],AttachScorer:[15,2,1,""],CalculateBetaScores:[15,2,1,""],CalculateClasScores:[15,2,1,""],CalculateDSSPHBondScores:[15,2,1,""],CalculateHBondcores:[15,2,1,""],CalculatePackingScores:[15,2,1,""],CalculateStemRMSD:[15,2,1,""],CalculateTorsionScores:[15,2,1,""],ClusterCandidates:[15,2,1,""],FillFromDatabase:[15,2,1,""],FillFromMonteCarloSampler:[15,2,1,""],GetAVGCBetaScore:[15,2,1,""],GetAVGClasScore:[15,2,1,""],GetAVGDSSPHBondScore:[15,2,1,""],GetAVGHBondcore:[15,2,1,""],GetAVGPackingScore:[15,2,1,""],GetAVGStemRMSD:[15,2,1,""],GetAVGTorsionScore:[15,2,1,""],GetCStem:[15,2,1,""],GetNStem:[15,2,1,""],InsertInto:[15,2,1,""],Remove:[15,2,1,""],ToEntity:[15,2,1,""]},"promod3.loop.PhiPsiSampler":{Initialize:[17,2,1,""],ProposeStep:[17,2,1,""]},"promod3.loop.SoftSampler":{Initialize:[17,2,1,""],ProposeStep:[17,2,1,""]},"promod3.loop.StructureDB":{AddCoordinates:[18,2,1,""],FillBackbone:[18,2,1,""],GetCoordIndex:[18,2,1,""],GetCoordInfo:[18,2,1,""],GetDSSPStates:[18,2,1,""],GetDihedralAngles:[18,2,1,""],GetNumCoords:[18,2,1,""],GetProfileScore:[18,2,1,""],GetSSAgreement:[18,2,1,""],GetSeqID:[18,2,1,""],GetSeqSim:[18,2,1,""],GetSequence:[18,2,1,""],GetTorsionProbability:[18,2,1,""],Load:[18,2,1,""],PrindStatistics:[18,2,1,""],Save:[18,2,1,""]},"promod3.loop.TorsionSampler":{Draw:[19,2,1,""],DrawPhiGivenPsi:[19,2,1,""],DrawPsiGivenPhi:[19,2,1,""],ExtractStatistics:[19,2,1,""],GetBinSize:[19,2,1,""],GetBinsPerDimension:[19,2,1,""],GetHistogramIndex:[19,2,1,""],GetHistogramIndices:[19,2,1,""],GetPhiProbabilityGivenPsi:[19,2,1,""],GetProbability:[19,2,1,""],GetPsiProbabilityGivenPhi:[19,2,1,""],Load:[19,2,1,""],Save:[19,2,1,""],UpdateDistributions:[19,2,1,""]},"promod3.rawmodel":{BuildRawModel:[20,5,1,""],RawModelingResult:[20,4,1,""]},"promod3.rawmodel.RawModelingResult":{gaps:[20,3,1,""],model:[20,3,1,""]},"promod3.sidechain":{AAToRotID:[26,2,1,""],BBDepRotamerLib:[27,4,1,""],ConstructBackboneFrameResidue:[22,2,1,""],ConstructFRMRotamer:[25,2,1,""],ConstructFRMRotamerGroup:[25,2,1,""],ConstructFrameResidue:[22,2,1,""],ConstructRRMRotamer:[25,2,1,""],ConstructRRMRotamerGroup:[25,2,1,""],ConstructSidechainFrameResidue:[22,2,1,""],DisulfidScore:[21,2,1,""],FRMRotamer:[25,4,1,""],FRMRotamerGroup:[25,4,1,""],Frame:[22,4,1,""],FrameResidue:[22,4,1,""],Graph:[23,4,1,""],Particle:[25,4,1,""],RRMRotamer:[25,4,1,""],RRMRotamerGroup:[25,4,1,""],RotamerLibEntry:[27,4,1,""],RotamerSettings:[28,4,1,""],TLCToRotID:[26,2,1,""]},"promod3.sidechain.BBDepRotamerLib":{AddRotamer:[27,2,1,""],Load:[27,2,1,""],MakeStatic:[27,2,1,""],QueryLib:[27,2,1,""],Save:[27,2,1,""],SetInterpolate:[27,2,1,""]},"promod3.sidechain.FRMRotamer":{"__getitem__":[25,2,1,""],"__len__":[25,2,1,""],ApplyOnResidue:[25,2,1,""],CalculateInternalEnergy:[25,2,1,""],GetFrameEnergy:[25,2,1,""],GetInternalEnergy:[25,2,1,""],GetInternalEnergyPrefactor:[25,2,1,""],GetNumSubrotamers:[25,2,1,""],GetProbability:[25,2,1,""],GetSelfEnergy:[25,2,1,""],GetSubrotamerAssociations:[25,2,1,""],GetSubrotamerDefinition:[25,2,1,""],GetTemperature:[25,2,1,""],GetTransformedCopy:[25,2,1,""],SetFrameEnergy:[25,2,1,""],SetInternalEnergy:[25,2,1,""],SetInternalEnergyPrefactor:[25,2,1,""],SetProbability:[25,2,1,""],SetTemperature:[25,2,1,""]},"promod3.sidechain.FRMRotamerGroup":{"__getitem__":[25,2,1,""],"__len__":[25,2,1,""],ApplyOneResidue:[25,2,1,""],ApplySelfEnergyThres:[25,2,1,""],CalculateInternalEnergies:[25,2,1,""],Merge:[25,2,1,""]},"promod3.sidechain.Frame":{AddFrameEnergy:[22,2,1,""],SetFrameEnergy:[22,2,1,""]},"promod3.sidechain.FrameResidue":{"__getitem__":[22,2,1,""],"__len__":[22,2,1,""]},"promod3.sidechain.Graph":{CreateFromFRMList:[23,2,1,""],CreateFromRRMList:[23,2,1,""],GetNumActiveEdges:[23,2,1,""],GetNumActiveNodes:[23,2,1,""],GetNumEdges:[23,2,1,""],GetNumNodes:[23,2,1,""],Prune:[23,2,1,""],Solve:[23,2,1,""]},"promod3.sidechain.Particle":{AddLonePair:[25,2,1,""],GetCharge:[25,2,1,""],GetEMin:[25,2,1,""],GetName:[25,2,1,""],GetPos:[25,2,1,""],GetRadius:[25,2,1,""],IsHBondAcceptor:[25,2,1,""],IsHBondDonor:[25,2,1,""],PairwiseEnergy:[25,2,1,""],SetPolarDirection:[25,2,1,""]},"promod3.sidechain.RRMRotamer":{"__getitem__":[25,2,1,""],"__len__":[25,2,1,""],ApplyOnResidue:[25,2,1,""],CalculateInternalEnergy:[25,2,1,""],GetFrameEnergy:[25,2,1,""],GetInternalEnergy:[25,2,1,""],GetInternalEnergyPrefactor:[25,2,1,""],GetProbability:[25,2,1,""],GetSelfEnergy:[25,2,1,""],GetTransformedCopy:[25,2,1,""],SetFrameEnergy:[25,2,1,""],SetInternalEnergy:[25,2,1,""],SetInternalEnergyPrefactor:[25,2,1,""],SetProbability:[25,2,1,""]},"promod3.sidechain.RRMRotamerGroup":{"__getitem__":[25,2,1,""],"__len__":[25,2,1,""],ApplyOneResidue:[25,2,1,""],Merge:[25,2,1,""]},"promod3.sidechain.RotamerLibEntry":{FromResidue:[27,6,1,""],IsSimilar:[27,2,1,""],SimilarDihedral:[27,2,1,""],chi1:[27,3,1,""],chi2:[27,3,1,""],chi3:[27,3,1,""],chi4:[27,3,1,""],probability:[27,3,1,""],sig1:[27,3,1,""],sig2:[27,3,1,""],sig3:[27,3,1,""],sig4:[27,3,1,""]},"promod3.sidechain.reconstruct_sidechains":{Reconstruct:[24,2,1,""]},"test_actions.ActionTestCase":{RunAction:[0,2,1,""],RunExitStatusTest:[0,2,1,""],pm_action:[0,3,1,""],pm_bin:[0,3,1,""],testPMExists:[0,2,1,""]},promod3:{SetCompoundsChemlib:[8,5,1,""],core:[6,1,0,"-"],loop:[13,1,0,"-"],rawmodel:[20,1,0,"-"],sidechain:[24,1,0,"-"]},test_actions:{ActionTestCase:[0,4,1,""]}},objnames:{"0":["cmake","command","CMake command"],"1":["py","module","Python module"],"2":["py","method","Python method"],"3":["py","attribute","Python attribute"],"4":["py","class","Python class"],"5":["py","function","Python function"],"6":["py","staticmethod","Python static method"]},objtypes:{"0":"cmake:command","1":"py:module","2":"py:method","3":"py:attribute","4":"py:class","5":"py:function","6":"py:staticmethod"},terms:{"1crn":[17,18],"1ey":24,"2b1":1,"__doc__":[5,7],"__getitem__":[18,22,25],"__init__":[0,4,7],"__len__":[18,22,25],"__main__":[0,4],"__name__":[0,4],"_opt":4,"_run":[0,3],"_xml":3,"abstract":17,"boolean":5,"break":[3,4],"case":[4,12,15,16,17,18,19,24,25,27],"char":11,"class":[0,4,6,7,11,12,13,15,16,17,18],"default":[0,1,4,7,8,14,24,25,28],"enum":26,"export":[23,25],"final":[4,18,20,23,24],"float":[11,12,15,16,17,18,19,22,23,25,27],"function":0,"import":[0,1,4,5,7,11,17,18,20,24],"int":[0,5,11,12,14,15,16,17,18,19,22,23,25,27],"new":[0,4,7,14,15,16,17,18,20,24,25],"public":4,"return":[0,5,7,8,11,12,14,15,16,17,18,19,20,21,22,23,25,26,27],"short":4,"static":[4,23,27],"switch":4,"throw":[0,18,24],"true":[0,4,5,7,11,12,14,16,17,18,20,24,28],"try":[0,4,27],"while":[0,3,4],aa_with_rotam:24,aaaaaaaa:11,aatorotid:26,abil:4,abort:[4,16],about:[0,3,4,15,18,20],abov:[0,4,21,24,26,27],absolut:3,academ:4,accept:[15,16,17],acceptor:12,access:[17,18,19,25,26],accord:[4,12,15,17,18,19,22,25,27],accuraci:16,achiev:4,acid:[11,12,13,14,18],acknowledg:4,across:[0,27],act:16,action_unit_test:0,actiontest:0,activ:[4,7],actual:[4,7,12,18,25,27],actual_posit:17,adapt:[9,13,17],add:[0,3,4,7,14,15,18,19,22,24,25],add_argu:5,add_changelog_to_doc:4,add_custom_target:4,add_doc_depend:3,add_doc_sourc:[3,4],add_subdirectori:4,addalign:7,addcoordin:18,addfrag:18,addframeenergi:22,addit:[3,4,5,17,18],addition:[0,3],additional_make_clean_fil:4,addlonepair:25,addrotam:27,admir:4,adrian:16,advic:4,advis:4,affect:[4,11,26],after:[0,1,4,7,11,12,15,16,17,19,23,27],again:[1,4],ago:0,agreement:18,ala:[11,24,26],alanin:26,alg:18,algorithm:[4,13,15,16,17,20,21,24,25,26,28],alias:4,align:[7,18,20],alignmentlist:7,all:[0,1,3,4,7,11,12,15,16,18,19,20,21,22,23,24,25,27],allow:[4,5,11,12,17,18,19,22],allow_prepro_ci:12,almost:3,aln:20,aln_sourc:7,alon:5,along:[0,4,18],alot:4,alpha:[11,12,15,22,24,25],alpha_bin:12,alreadi:[0,3,4,11,12,14,18,22,23,27],also:[0,1,3,4,5,15,16,17,18,19,20,22,23,27,28],alter:17,altern:17,alwai:[0,4,17],ambig:27,ambigu:27,amino:[11,12,13,14,18],aminoacid:[11,12,26,27],amount:27,analyt:[15,27],anchor:[15,25],ancient:8,angl:[9,11,12,13,15,16,17,18,19,22,24,25,27],angstrom:[16,25],ani:[0,3,4,8,11,12,17,19,22],anneal:[15,17],announc:[0,4],anoth:11,anymor:23,anyth:[1,4,7,8],anywai:4,apart:[0,15],append:[11,18,24],appli:[4,5,8,11,16,17,23,24,25],applic:0,applyccd:15,applyk:15,applyoneresidu:25,applyonresidu:[24,25],applyselfenergythr:25,applyselfenergythresh:24,applytransform:11,approach:4,appropri:19,approxim:[15,23],arbitrari:[7,18],arbitrarili:17,arg:[0,4,7,26],argcheck:2,arginin:26,argpars:7,argument:[0,1,6],argumentpars:7,argv:7,around:[0,4],ask:4,asn:26,asp:[26,27],asparagin:26,aspart:[26,27],ass:17,assemblepars:7,assertequ:4,assess:12,assigin:16,assign:[12,15,17,28],associ:[15,22,25],assum:[0,4,18],atom:[11,12,15,18,20,21,22,25,27,28],atomhandl:25,atomseq:18,attach:[3,14,15,20],attachscor:15,attachview:20,attent:[0,4],attribut:[4,7,15,27],author:4,autom:3,automat:[0,4,5,18,27],automatis:4,avail:[0,1,4,8,12,18],availabl:17,averag:[15,18],avoid:[4,5,8,17],awai:4,awar:4,awesom:[0,4],awesomeactiontest:4,axi:18,back:[0,4,17,23],backbon:9,backbone_list:15,backbonelist:[11,12,15,16,17,18],backbonerelax:16,backbonescor:15,background:1,base:[5,12,13,15,16,17],baseclass:17,basi:[3,4,16,17],basic:[0,1,4,5],bb_list:[11,12,15,16,17,18],bbdeprotamerlib:[24,25,27],bbdeprotamerlibrari:25,becaus:[1,4,12],becom:27,been:[4,12,14,16,18,23,27],befor:[0,3,4,7,11,16,17,19],begin:[0,4,11],behav:0,behaviour:[7,27],behind:4,bell:4,belong:[3,4,12,15,17,18,22,25],below:[4,16,18,21,23],below_thre:18,besid:[1,3,7],best:3,beta:[11,12,15,22,25],beta_bin:12,better:17,between:[0,11,12,15,16,17,18,21,22,23,25,27,28],beyond:7,bienchen:4,bilinearli:27,bin:[0,4,12,18,19,27],bin_siz:[19,27],binari:[0,4],bit:[0,1,4,15],blank:4,blosum62:18,bond:[9,15,16],bool:[0,5,7,11,12,14,15,16,17,18,22,24,25,27],boost:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],boost_include_dir:4,boost_root:1,both:[24,25,27],bottom:24,branch:3,branchnam:4,brew:3,briefli:4,bring:4,broken:0,bug:4,build:0,build_disulfid:24,builder:1,buildrawmodel:20,buildup:[24,28],built:[3,4,12,18,22,24,25],bunch:[0,4,7],bytecod:0,c_coord:11,c_max_radiu:28,c_po:22,c_radiu:28,c_stem:[11,15,16,17,18],c_stem_po:16,c_stem_psi:17,c_ter:22,c_terminu:18,ca_coord:11,ca_po:[22,25],ca_pos_on:21,ca_pos_two:21,ca_rmsd:18,cach:[1,4],calcul:[11,12,15,16,17,18,19,21,22,23,24,25],calculatebetascor:15,calculatecbetascor:12,calculatecbpackingscor:12,calculateclashscor:12,calculateclasscor:15,calculatedssphbondscor:[12,15],calculatehbondcor:15,calculatehbondscor:12,calculateinternalenergi:[24,25],calculatepackingscor:15,calculatestemrmsd:15,calculatetorsionscor:[12,15],call:[0,1,3,4,7,8,14,15,17,18,19,25,27],calpha:20,calpha_onli:20,calul:19,came:4,can:[0,1,4,5,7,8,11,12,16,17,18,19,20,22,23,24,25],candid:[9,13],cannot:[4,17,18,26,27],canutescu:[16,21],capabl:17,captur:0,carbon:[11,22,25],carlo:15,carmsd:[11,15,18],carri:[4,5],categori:3,caus:4,cb_coord:11,cb_pack:17,cb_packing_cutoff:12,cb_packing_max_count:12,cb_po:[22,25],cb_pos_on:21,cb_pos_two:21,cbeta:[12,17],cbeta_bin:12,cbeta_cutoff:12,cbeta_scor:15,cbeta_seq_sep:12,ccd:[13,15],ccdcloser:17,central:[12,19],certain:[0,1,3,4,12,18,19],certainli:0,chain:[4,11,12,13,14,15,17],chain_id:18,chain_index:[12,15,17,18],chain_nam:18,chainview:18,chanc:[4,23],chang:0,change_frequ:17,chapter:4,charact:[7,18],charg:[4,25],charmm27:16,check:[0,1,4,5,7,12,17,27],checkout:4,chemic:8,chi1:[25,27],chi2:[25,27],chi3:[25,27],chi4:[25,27],chi:[25,27],child:7,childclass:0,chmod:4,clash:[12,15,16,17,21,24],clash_scor:15,clean:[1,4],clip:7,clone:4,close:[4,9,13,15],closed_posit:17,closer:[9,13,15],closerobject:17,closur:16,cluster:15,clustercandid:15,clutter:[0,4],cmake_build_typ:4,cmake_c_compiler_vers:4,cmake_compiler_is_gnucxx:4,cmake_current_source_dir:4,cmake_cxx_compiler_vers:4,cmake_cxx_flag:4,cmake_cxx_flags_releas:4,cmake_minimum_requir:4,cmake_module_path:4,cmake_source_dir:4,cmake_support:[3,4],cmakecach:1,cmakelist:[0,1,3,4],coars:4,code:[0,1,3,4,5,7,8,11,12,15,18,19,24,26],codetest:[3,4],coil:14,collect:5,collid:28,collis:[25,28],column:18,combin:[12,17,18,19,21,27],come:[0,3,4,5,7],command:[0,4,5,6],commandlin:7,comment:4,commerci:4,commit:4,common:[4,7],compar:27,comparison:27,compat:4,compil:[0,4],complain:0,complaint:4,complet:[4,17,18,20,27],complex:4,compon:[4,8],compound:8,compress:5,concept:4,condit:[4,19],conf:[1,4],confid:18,config:4,configur:[1,4,15,27],conflict:4,conform:[12,15,16,17,18,23,24,27],connect:[3,4,18,23],conop:[4,11,12,26],conquer:4,consecu:19,consecut:[11,12,19],consid:[3,4,12,16,17,18,19,22,27],consider_all_nod:23,consider_hbond:[24,28],consider_hydrogen:25,consist:[4,12,17,18,22,25,27],constraint:[7,16],construct:11,constructbackboneframeresidu:[22,24],constructframeresidu:22,constructfrmrotam:25,constructfrmrotamergroup:[24,25],constructor:[23,25],constructrrmrotam:25,constructrrmrotamergroup:25,constructsidechainframeresidu:22,contain:[0,1,3,4,5,7,11,12,14,15,18,19,20,21,24,25,27],content:[4,9,10,13,24],continu:[0,16,24],contrast:22,contribut:3,control:[4,9,15,17,18,22,24,25,27,28],conveni:[0,17],convent:[0,26],converg:[15,16,17],convert:[11,20],cooler:[13,15],coolerobject:17,cooling_factor:17,coordin:[9,10,11,14,15,16,18],coordinfo:18,cope:4,copi:[3,4,20],core:[4,5],correspond:[4,11,15,18,19,27],corrupt:12,could:[0,3,4,7,20],count:[12,17],counterpart:12,coupl:[0,4],cours:4,coutsia:16,cover:[0,4,6,12],cpr:[26,27],crambin:17,crash:24,createentityfromview:24,createfromfrmlist:[23,24],createfromrrmlist:23,creation:16,criterion:17,criterium:15,croak:4,crucial:4,cterminalclos:17,current:[4,11,17,18,25],custom:[4,17,26],cutoff:[14,15,25],cxx:4,cyclic:[15,16],cyd:[26,27],cyh:[26,27],cystein:[21,24,26],d_bin:12,dai:5,dare:3,data1:3,data2:3,data:[0,3,4,9,12,13,14,18,24,25],databas:[13,14,15],databs:18,date:4,dbg:4,deactiv:28,dead:23,debug:4,decent:8,decid:[4,16],decis:19,declar:[3,4],decod:7,decompos:23,decomposit:23,decreas:17,dedic:[1,3,4],def:[0,4],defin:[0,3,8,11,12,13,14,15,16,17],definit:[4,12,18,19,25,26],degre:18,delet:[20,25],deliv:[0,17,18],delta:28,delta_scor:17,denovo:[9,13],dep:3,dependency1:3,dependency2:3,deriv:0,descent:[15,16],describ:[3,5,7,12,16,18,21,24,27],descript:[4,7,18,21,27],design:0,desir:[16,17],detail:[4,20],detect:[5,25,28],determin:[5,15],deuterium:20,develop:[0,4],deviat:[12,17,25,27],devot:6,dict:17,dictionari:[7,8],did:[4,15],differ:[0,1,3,4,7,8,12,15,18,24,26,27,28],dihedr:[9,11,12,13,15,16,17,18,19,25,27],dihedral_angl:11,dihedral_idx:27,dihedral_indic:16,dihedralangl:11,dihedralpair:11,dimens:19,dir:4,direct:[4,11,14,25],directli:[16,24,25,26,27],directori:[0,1,3],dirti:0,dirtyccdclos:17,disabl:[0,4],disable_disable_doctest:4,disable_disable_linkcheck:4,disable_doctest:[1,4],disable_document:[1,4],disable_linkcheck:[1,4],discret:12,disk:[12,27],displai:5,distanc:[12,18,25,28],distinguish:22,distribut:[0,4,17,19],disulfid:9,disulfidscor:21,dive:4,diverg:4,divers:18,doawesomeactiontest:0,doc:[1,3,4],doctest:[1,4],document:[0,1,2],doe:[0,3,4,5,7,8,18,20,23],doesn:[12,17,27],don:[1,4],done:[0,4,5,7,12,16,19],donor:12,dont_write_bytecod:[0,4],doptim:4,dost_root:[1,4],doubl:23,doubt:7,down:[7,11,17,18],download:1,dqmean_root:[1,4],draw:[11,17,19],drawback:4,drawn:[17,19],drawphigivenpsi:19,drawpsigivenphi:19,driven:4,drop:4,dssp:[12,15,18],dssp_hbond:17,dssp_hbond_scor:15,due:[16,18,20,21,22],dump:[9,12,13,27],dunbrack:[16,21,24],dure:[0,15,16,22,27],dynam:27,each:[4,15],easi:4,easier:[0,4],easili:[3,4],ebb_list:18,echo:4,edg:23,editor:0,educ:4,effect:[3,4,17],effici:17,eigen3:4,eigen3_found:4,eigen3_include_dir:[1,4],eigen:[1,4],eigenvalu:4,eigenvector:4,either:[4,7,12,17,19,20,21,22,24,25,27],elabor:4,element:[0,12,15,18],elimin:23,els:4,emerg:0,emin:[22,25],emploi:4,empti:[4,5,7,11,12,22,25],enabl:[0,5,8,25],encorc:12,end:[0,1,3,4,5,11,15,23],endif:4,energi:[12,15,16,17,21,22,23,24,25,28],enforc:[17,18,23],enough:4,enter:22,entiti:[4,11,15,24],entityhandl:[11,15,20,24],entityview:[12,19],entri:[4,12,16,24],enumer:[4,23,24],env:[4,12],environ:[0,4,9,12,13,15,17],epsilon:23,equal:12,equidist:27,error:[5,18],essenti:4,estim:[17,18],etc:[0,4],evalu:[3,4,9,12,19],even:[1,4,23],eventu:7,ever:4,everi:[0,4,12,14,16,17,18,19,20,22,23,27],everybodi:4,everyth:[0,4],exactli:[1,18,21,26],exampl:[0,1,4,7,17,18,19,20,24,26],example_reconstruct:24,exce:[12,18],except:4,exclud:4,exclus:[0,4],exec_program:4,executable_output_path:4,exist:[0,3,4,5,7,12,18,22,25,26,27],exit:[0,5,7],exit_cod:0,exit_statu:5,exot:4,exp:17,expand:4,expect:[0,12,25],explain:4,explan:4,exponenti:17,exponentialcool:17,exposur:15,ext:5,extend:[0,3,4,12,14,15,18],extended_search:[15,18],extens:[5,7],extent:18,extern:[3,4],extra:4,extract:[4,11,12,16,17,18,19,22,24,25],extractstatist:19,factor:[17,25,28],fail:[0,4,5,16],failur:[4,5,27],fall:[16,23],fallback:27,fals:[0,4,5,7,11,14,15,17,18,20,22,23,24,25],fast:[18,27],fasta:[7,20],faster:[14,18],fatal_error:4,favourit:0,featur:[4,13],fed:[3,4],fedora:4,feed:3,feel:4,fellow:4,fetch:4,few:[1,4,20],field:27,figur:[4,16],file:[0,1,3,4],filecheck:4,fileexist:5,fileextens:5,filegzip:5,filenam:[4,5,7,12,18,19,27],files_to_be_remov:4,fill:[3,4,7,18],fillbackbon:18,fillfromdatabas:15,fillfrommontecarlosampl:15,find:[3,4,13,15],find_packag:4,fine:4,fire:0,first:[0,2,4,7,12,16,17,19,21,24,25,27],fit:[15,16,17,18],fix:[4,5,24],fix_cterm:16,fix_nterm:16,flag1:3,flag2:3,flag:[3,4,5,7,12,22,23,24,25],flame:15,flank:18,flexibl:[21,24,25,28],flip:27,flush:[0,4],fno:4,folder:4,follow:[0,4,7,20,23,24,25,26,27],forbidden:4,forc:16,forcefield:16,forg:4,forget:[0,1,4],form:[14,15,18,19,23,25,27],formal:[16,27],format:[4,7],formatt:4,forward:4,found:[0,3,4,5,7,16,17,18,23,24,27],foundat:0,four:17,fourth:25,fraction:[16,17,18],frag_db:15,frag_length:18,frag_po:18,frag_residu:18,frag_seq:18,frag_siz:18,fragdb:[14,15,18],fragger:18,fraggerscoreparamet:18,fragment:[11,13,14,15,16],fragment_length:18,fragmentinfo:18,frame:[4,9],frame_residu:[22,24],frameresidu:22,framework:4,free:[4,26,27],frequenc:[17,18],frm:24,frm_delta1_arg:28,frm_delta1_asn:28,frm_delta1_asp:28,frm_delta1_ci:28,frm_delta1_gln:28,frm_delta1_glu:28,frm_delta1_hi:28,frm_delta1_il:28,frm_delta1_leu:28,frm_delta1_li:28,frm_delta1_met:28,frm_delta1_ph:28,frm_delta1_pro:28,frm_delta1_s:28,frm_delta1_thr:28,frm_delta1_trp:28,frm_delta1_tyr:28,frm_delta1_v:28,frm_delta2_arg:28,frm_delta2_asn:28,frm_delta2_asp:28,frm_delta2_gln:28,frm_delta2_glu:28,frm_delta2_hi:28,frm_delta2_il:28,frm_delta2_leu:28,frm_delta2_li:28,frm_delta2_met:28,frm_delta2_ph:28,frm_delta2_pro:28,frm_delta2_s:28,frm_delta2_thr:28,frm_delta2_trp:28,frm_delta2_tyr:28,frm_delta3_arg:28,frm_delta3_gln:28,frm_delta3_glu:28,frm_delta3_li:28,frm_delta3_met:28,frm_delta3_tyr:28,frm_delta4_arg:28,frm_delta4_li:28,frm_t_arg:28,frm_t_asn:28,frm_t_asp:28,frm_t_cy:28,frm_t_gln:28,frm_t_glu:28,frm_t_hi:28,frm_t_ile:28,frm_t_leu:28,frm_t_ly:28,frm_t_met:28,frm_t_phe:28,frm_t_pro:28,frm_t_ser:28,frm_t_thr:28,frm_t_trp:28,frm_t_tyr:28,frm_t_val:28,frmrotam:[21,25],frmrotamergroup:[22,23,25],from:[0,1,2,3,4,5,7,11,12,15,16,17,18,19,20,22,23,24,25,26,27],fromresidu:27,front:[0,1,4,5],fulfil:[17,27],full:[0,4],fulli:[4,18],functions_specific_to_your_act:4,funni:[1,4],further:28,fuzzi:15,gamma:[12,21],gamma_bin:12,gap:[16,20],gather:[3,4,6,11,18,24,25,27],gcc:4,gener:[0,4,9,13,14,15,17,18,26],generalis:4,geom:[11,16,21,22,25],geometr:13,geometri:[15,18],get:[0,1,4,11,12,14,16,17,18,21,22,23,24,25],getangl:24,getangularbins:18,getavgcbetascor:15,getavgclasscor:15,getavgdssphbondscor:15,getavghbondcor:15,getavgpackingscor:15,getavgstemrmsd:15,getavgtorsionscor:15,getbins:19,getbinsperdimens:19,getcharg:25,getcoordindex:18,getcoordinfo:18,getcstem:15,getdihedralangl:18,getdistbins:18,getdsspstat:18,getemin:25,getframeenergi:25,gethistogramindex:[11,19],gethistogramindic:19,getinternalenergi:25,getinternalenergyprefactor:25,getnam:[24,25],getnstem:15,getnumactiveedg:23,getnumactivenod:23,getnumcoord:18,getnumedg:23,getnumfrag:18,getnumnod:23,getnumstempair:18,getnumsubrotam:25,getomegators:11,getoriginaldsspst:15,getoriginalsequ:15,getphiprobabilitygivenpsi:19,getphitors:[11,24],getpo:25,getprob:[19,25],getprofilescor:18,getpsiprobabilitygivenphi:19,getpsitors:[11,24],getradiu:25,getscor:[17,18],getselfenergi:25,getseqid:18,getseqsim:18,getsequ:[11,18],getssagr:18,getsubrotamerassoci:25,getsubrotamerdefinit:25,gettemperatur:[17,25],gettorsionprob:18,gettransform:11,gettransformedcopi:25,git:[0,1,2,3],gitignor:4,give:[3,4,17,25],given:[0,3,5,7,11,12,15,16,17,18,21,23,24,25,27],gln:26,global:8,glu:[26,27],glutam:26,glutamin:26,gly:[20,24,26],glycin:26,goal:0,gobbl:7,goe:[1,4,27],good:[3,4,18],got:1,grain:4,graph:[9,21],grep:1,group:[12,14,18,19,22,23,24],group_definit:[12,19],group_id_idx:12,grow:20,guarante:18,gui:4,guid:16,gzip:[5,7],h_max_radiu:28,h_radiu:28,hand:[1,3,7],handl:[9,13,20,21],happen:[0,4,17,25],hash:18,havind:23,hb_alpha_bin:12,hb_beta_bin:12,hb_d_bin:12,hb_gamma_bin:12,hb_max_alpha:12,hb_max_beta:12,hb_max_d:12,hb_max_gamma:12,hb_min_alpha:12,hb_min_beta:12,hb_min_d:12,hb_min_gamma:12,hbond:[12,15,17,22,24,25,26,28],hbond_scor:15,headach:4,header:[1,4],header_stage_path:4,headlin:4,heavili:[24,25],helic:[11,12,14,25],helix:24,help:[0,1,3,4,7],helper:[2,3],henc:4,here:[0,1,3,4,5,7,17,18,20,28],hhsuit:18,hide:4,hierarchi:8,higher:1,highest:8,highli:1,hint:7,histidin:26,histogram:[16,17,19],histori:4,hit:[0,4,16,19],hmm:18,hold:20,home:3,homolog:6,honour:20,host:[3,4],hotfix:4,hous:4,hsd:[25,26,27],hse:[25,26,27],html:[1,2,4],http:4,hydrogen:[20,22,24,25,28],hyphen:0,idea:[0,2,4],ideal:[12,16],ident:[12,15,18,19,27],identifi:[7,12,27],idx:[11,18],ignor:20,imagin:4,imaginari:0,immedi:[0,4,8],implement:[4,16,21,23,24,26],implicit:1,improv:[14,21,24],includ:[2,4,5,14,15,18,24,25,28],include_directori:4,incomplet:20,inconsist:[11,12],inconveni:4,increas:16,incred:20,index:[4,10,11,12,15,16,17,18,19,22,25,27],indic:[5,7],inf:23,influenc:[7,28],info:18,inform:[4,7,11,12,14,15,18,20],inherit:0,init:4,initi:[2,11,12,15,16,17,23,27],initial_bb:15,initial_epsilon:23,initialis:0,inlin:4,input:[0,7,16,17,18,19,24,25],insert:[11,15,20],insertinto:[11,15],insid:[0,3,7],insight:4,inspir:16,instal:[1,4],instanc:[7,14,25],instead:[0,1,3,4,5,12,17,25],intend:[0,4,17,25],interact:[12,15,21,22],intercept:17,interest:[0,17,18,25,27],interfac:4,intermedi:4,intern:[0,3,4,12,14,16,17,18,19,23,24,25,28],internal_e_prefactor_arg:28,internal_e_prefactor_asn:28,internal_e_prefactor_asp:28,internal_e_prefactor_ci:28,internal_e_prefactor_gln:28,internal_e_prefactor_glu:28,internal_e_prefactor_hi:28,internal_e_prefactor_il:28,internal_e_prefactor_leu:28,internal_e_prefactor_li:28,internal_e_prefactor_met:28,internal_e_prefactor_ph:28,internal_e_prefactor_pro:28,internal_e_prefactor_s:28,internal_e_prefactor_thr:28,internal_e_prefactor_trp:28,internal_e_prefactor_tyr:28,internal_e_prefactor_v:28,internet:4,interpol:27,interpret:[4,5],intervent:4,introduc:[0,3,4,16],invalid:[12,16,17,18,22,25,26,27],invok:[1,3,4,8],involv:4,ishbondacceptor:25,ishbonddonor:25,isoleucin:26,issimilar:27,isvalid:24,item:[0,4,12,18,20],iter:[15,16,17,18,19,23],itself:[3,4,17,24],job:4,join:[17,18],jone:[22,25,28],json:7,just:[0,1,4,7,8,15],keep:[0,3,4,7,15,24],keep_non_converg:15,keep_sidechain:24,kei:[7,17],kept:[16,22,24],keyword:19,kic:[4,13,15],kicclos:17,kick:7,kind:[0,4],kinemat:16,know:[1,27],known:[3,5],kortemm:16,krivov:24,kwarg:[0,4],l_e:25,label:4,languag:3,lapack:[1,4],larg:18,last:[0,3,17,28],later:[0,4],latest:1,latter:4,launcher:[3,4],layout:[18,25],lead:[4,5,12,16],least:[1,3,4,11,23,25],leav:0,left:[5,22],legal:4,len:[11,18,24],length:[7,15,16,18,19],lennard:[22,25,28],lennart:25,less:[4,14,15,18,28],let:[0,4,11,18,24],letter:[11,12,18,19,26],leu:26,leucin:26,level:[1,4,8],lib:28,lib_stage_path:4,libexec:[3,4],libexec_stage_path:4,librari:[3,4,8,9,24,25],library1:3,library2:3,life:4,ligand:22,like:[0,1,3,4,7,20],limit:[7,16,18],line:[0,4,6],linear:[17,18],linearscor:17,link:[1,3,4],linkcheck:[1,4],linker:3,list:[0,1,3,4,5,7,11,12,15,16,17,18,19,20,22,23,24,25,27],littl:[3,4],live:[3,4],load:[0,7,8,9,12,13],load_frequ:[14,18],loadalign:20,loadbackboneloopscor:[14,17],loaddunbracklib:24,loadfragdb:14,loadpdb:[17,18,20,24],loadstructuredb:[14,18],loadtorsionsampl:[11,14,17],loadtorsionsamplercoil:14,loadtorsionsamplerextend:14,loadtorsionsamplerhel:14,local:15,locat:[1,3],log:[4,5,25],lone:25,lone_pair:25,longest:18,look:[4,5,9,11,13],loop:[4,9,10,11],loop_candid:15,loop_length:18,loopcandid:15,loss:4,lost:[0,4,12],lot:[0,4,7],low:0,lower:17,lowest:[17,25],lysin:26,macro:[3,4],made:[3,27],magic:4,mai:[0,1,3,4,5,7,20],main:27,mainli:17,maintain:4,major:4,make_directori:4,makefil:[1,4],makestat:27,malici:4,man:[1,4],manag:[3,4],mandatori:[4,15],mandel:16,mani:[5,7,16],manipul:11,manner:[4,12,17,23],manual:[0,1,4,12,17],mar:14,mark:[7,22],markup:4,master:4,mat4:11,match:[3,4,15,17,18,19,20],materi:[0,4],mathemat:16,matrix:18,matter:[3,25],max:[12,16,23,27,28],max_complec:23,max_complex:23,max_count:12,max_dev:17,max_iter:15,max_step:16,maxim:[12,14,17,18],maximum:[12,15,16,17],mc_closer:17,mc_cooler:17,mc_sampler:17,mc_scorer:17,mean:[1,3,4,7],meant:23,measur:15,mechan:16,meld:2,member:[4,7,20],membership:15,memori:[14,18],mention:0,merg:[2,4,25],mess:4,messag:4,messi:4,met:26,methionin:[20,26],method:[0,7,16,18,19,21,23],metropoli:[15,17],middl:4,might:[16,18,22,25],min:[12,22],mind:[0,4],minim:[12,15,16,18,21,23],minimalist:20,mismatch:12,miss:[5,20],mix:3,mkdir:4,mmcif:5,mod:4,mode:[0,27],model:[0,6,9,10,12],modif:20,modifi:[2,4,11,15,20],modul:[0,2],mol:[4,11,12,15,16,17,18,19,22,24,25,27],mol_alg:4,molecular:16,moment:4,monitor:0,monolith:4,mont:15,montecarloclos:15,montecarlocool:15,montecarloloopsampl:17,montecarlosampl:[15,17],montecarloscor:15,mood:4,more:[0,1,3,4,7,20,23,28],most:[3,4,11,16,19,20,22,24,28],mostli:[3,4],move:[4,15,17],msg:5,msgerrorandexit:5,much:[4,20],multipl:[4,7],multipli:17,n_coord:11,n_max_radiu:28,n_po:[22,25],n_radiu:28,n_stem:[11,15,16,17,18],n_stem_phi:17,n_stem_po:16,n_ter:22,n_terminal_length:17,name:[0,3,4,5,7,12,17,18,19,25,26,27],namespac:7,nan:[25,27],nat:16,necessari:[11,17,18],need:[0,1,3,4,5,7,8,16,18,19],neg:[0,12],neglect:[18,22,25],neighbor:15,neighbour:27,never:[4,7,12],nevertheless:4,new_res_nam:25,newli:17,next:[0,4,16],next_aa:17,nice:4,nitrogen:[11,22,25],nobodi:0,node:23,non:[4,14,16,19],none:[7,24],nonzero:[23,25,27],normal:[18,25],normalization_factor:25,notabl:18,note:[4,7,16,17,18,22,24,26],noth:[3,4,17,25],notic:[0,3,4],novo:17,now:[0,4,11,20],nterminalclos:17,num_frag:18,num_loop:15,number:[0,11,12,14,15,16,17,18,19,20,22,23,25,27],numpi:17,o_coord:11,o_max_radiu:28,o_po:22,o_radiu:28,object:[7,9,11,13],observ:[16,18,23],obtain:20,obviou:4,occupi:22,occur:25,off:[0,4,20],offer:[14,22,25],offset:18,often:[4,5,7,16],olc:11,omega:[11,12],onc:[0,4,9,12,13,16,23,27],one_letter_cod:[11,17,18],onli:[0,3,4,5,7,8,11,12,15,17,18,20,22,23,24],onto:[0,11,18],openstructur:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],oper:[4,23],opt:[4,5,7],optim:[1,4,27],optimis:4,option:[1,4,7,16,27],order:[7,12],org:4,organ:[18,27],orient:[12,16],origin:[4,7,15,17],ost:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],ost_doc_url:4,ost_double_precis:1,ost_include_dir:4,ost_root:[1,4],other:[0,1,4,7,11,12,15,20,25,27,28],otherwis:[0,3,4,11,17,25],our:[3,4],out:[0,1,3,4,16,18,19,24,27],output_vari:4,outsid:4,over:[1,3,4,7,18,20],overal:23,overlap:17,overli:4,overview:[4,24],own:[0,3],oxygen:[11,22],pack:[12,15],packag:[3,4],packing_scor:15,page:[1,4,10,24],pai:0,pair:[16,17,18,19,25,27],pairwis:[12,15,21,23,25],pairwiseenergi:25,paper:[21,24],paragraph:[0,4],param:19,paramet:[0,3,5,7,8,11,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28],parametr:[12,18,22,25],parent:20,pars:[5,6],parse_arg:7,parser:6,part:[0,4,17,22,23,24],particip:24,particl:[12,16,18,21,22,24],particular:[4,15,17,25,27],partner:[12,25],pass:[4,17],past:4,path:[0,1,3,4,5,18,19],path_to_chemlib:8,pdb:[5,11,14,17,18,20,24],pdb_id:18,peopl:4,pep:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],peptid:[20,24],per:[3,4,6,17,18,25,28],perfect:4,perfectli:4,perform:[4,15,16,17,18,21,23],permiss:4,permut:23,phe:[26,27],phenylalanin:26,phi:[11,12,16,17,19,22,24,25,27],phi_bin:[12,27],phi_handl:24,phipsisampl:17,phosphoserin:20,phrase:4,pick:17,pictur:4,piec:[4,15],pipelin:17,pivot:[15,16,17],pivot_on:[15,16],pivot_thre:[15,16],pivot_two:[15,16],place:[0,4,5,7],plausibl:12,pleas:[4,16],plu:[4,7,8,25],pm3_csc:4,pm3argpars:[5,6],pm3argumentpars:[5,7],pm3optionsnamespac:7,pm_action:[0,3,4],pm_action_init:4,pm_bin:0,point:[1,4,7,8,12,17,27],pointer:1,polar:[25,28],polar_direct:25,pop:4,popul:[1,4],posit:[11,12,14,15,16,17,18,19,21,22,23,25],possibl:[4,7,12,14,15,16,17,18,19,20,21,22,23,24,25,26,28],post:7,potenti:[12,14,15],practic:[3,4],pre:4,pre_commit:4,precis:15,precomput:[9,13,14],predict:[18,21,24],predicted_ss:18,prefactor:[25,28],prefer:[3,27],prefix:[0,3,4,5,7],prepar:4,present:[11,16,22,25,27],prev_aa:17,prevent:[0,4],previous:[12,25],principl:17,prindstatist:18,print:[0,1,11,18],printstatist:18,privat:0,pro:[19,26,27],probability_cutoff:28,probabl:[1,3,4,15,16,17,18,19,25,27,28],problem:[4,7,16,17,23],process:[0,4,7,12,16,17,22,27],produc:[0,1,3,4,18],product:[0,4],profil:[14,15,18],profilescor:18,prog:7,program:[3,4,6],project:[3,4],project_binary_dir:4,project_nam:4,prolin:[12,26],promod3:0,promod3_unittest:[0,3,4],promod3_version_major:4,promod3_version_minor:4,promod3_version_patch:4,promod3_version_str:4,promod_gcc_45:4,promot:4,propag:[4,11],proper:4,properli:[0,12],properti:[4,27],propos:[15,16,17,21],proposed_posit:17,proposestep:17,prot:[17,18,24],protein:[14,16,20,21,22,24],proton:[25,26,27],provid:[0,1,3,4,7,11,12,16,17,22,24,25,27],prune:23,pseudo:[17,20,22,25,28],psi:[11,12,16,17,19,24,25,27],psi_bin:[12,27],psi_handl:24,psipr:18,psipred_confid:18,psipred_predict:18,pull:[1,4],punch:0,purpos:[4,27],push:4,put:[0,1,3,4,5,7],py_run:[0,3,4],pyc:[0,4],pylint:4,pylintrc:4,pymod:4,python:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],python_binari:4,python_doc_url:4,python_root:1,python_vers:4,qmean:[1,4,18],qmean_include_dir:4,qmean_root:[1,4],queri:[25,27],querylib:27,question:19,quickli:[4,16],quit:[4,7],rachovski:14,rackovski:14,radii:28,radiu:[12,22,25,28],rais:[7,11,12,16,17,18,19,20,21,22,25,27],random:[11,14,15,16,17],random_se:[15,16],randomized_frag:11,randomli:[16,17],rang:[11,16,17,18,27],rapid:21,rare:4,rather:[4,5,7,27],raw:9,rawmodel:[2,4,9,10],rawmodelingresult:20,reach:[16,25],read:[4,27],readabl:[4,27],reader:4,readi:[1,27],real:[4,7],realli:[0,1,4,5],reappear:4,reason:[4,17,18,22],rebas:4,rebuild:[1,4],recalcul:19,recent:4,recoginz:26,recognis:[0,4],recommend:1,reconstruct:[16,21,24,25],reconstruct_sidechain:24,record:0,redund:14,ref_backbon:18,refer:[0,3],regard:21,region:[17,22],regist:[3,4],reject:[16,17],rel:[3,12,15,16],relat:[3,4,7,18,28],relax:13,relev:[1,3],rememb:[0,17],remot:[17,18,24],remov:[1,15,23,24],renam:2,renumb:20,replac:11,replacefrag:11,report:[0,4,20],repositori:[0,2,3,4],repres:[9,12,13,15,16,18,19,21,22,23,24,25],represent:11,request:27,requir:[1,4,14,17,18,22,24,25,26,27],resembl:4,reserv:5,reset:[12,17],reset_stem_posit:11,resid:22,residehandl:25,residue_index:[22,25],residuehandl:[11,15,16,17,18,22,25,27],resnum:[11,12],resolv:[4,16],respons:4,rest:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],restrict:4,restrict_chain:20,restructuredtext:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],result:[1,4,17,20,21,23,27,28],reus:20,review:4,reviv:4,rewrit:0,right:[0,1,4,7],rigid:[16,21,22,23,24,25,27],rmsd:[11,15,16,18],rmsd_cutoff:[15,16,18],rmsd_thresh:18,rmsd_threshold:18,robot:16,roland:16,role:7,root:[3,4],rosetta:12,rot_group:24,rot_lib:25,rotam:[9,21,22,23,24],rotamer_group:[22,23,24],rotamer_id:[24,25],rotamer_librari:24,rotamer_model:24,rotamer_on:21,rotamer_two:21,rotamergroup:25,rotamerid:[9,22,24,25],rotamerlibentri:27,rotamerset:[22,24,25,28],rotat:11,rotatearoundomegators:11,rotatearoundphitors:11,rotatearoundpsitors:11,roughli:14,routin:0,rrm:24,rrmrotam:[21,25],rrmrotamergroup:[22,23,25],rst1:3,rst2:3,rst:[3,4],rtype:11,rule:4,runact:0,runexitstatustest:[0,4],runnabl:4,runtest:[0,4],runtimeerror:[11,12,16,17,18,19,20,21,22,25,27],runtimeexcept:19,s_max_radiu:28,s_radiu:28,same:[0,1,3,4,7,12,16,17,18,22,25,27],sampl:[15,16],sample_polar_hydrogen:28,sampled_frag:17,sampler:[13,14,15,16],samplerobject:17,satisfi:26,save:[4,11,12,17,18,19,27],savepdb:[11,17,20,24],scheme:[0,4,7,17],sci:[16,21],score:9,scorer:[12,13,14,15],scorerobject:17,scratch:25,scwrl4:[24,25],seamlessli:4,search:[1,4,10,15,18,24,25],searchdb:18,second:[12,16,20,21,25],secondari:[12,15,18],secondli:4,section:[0,3],see:[0,4,5,18,28],seed:[14,15,16,17,19],seem:4,segment:11,select:[16,17,20,24],selenium:20,self:[0,4,25],self_energi:25,send:5,separ:[0,4,12,19,21],seq:[4,15,18,20],seq_alg:4,seqr:[12,17,18],seqres_list:12,sequenc:[7,11,12,13,15,16,17],sequenceidentityscor:18,sequencesimilarityscor:18,sequenti:11,ser:[25,26,28],serin:26,serv:[0,7,11,18],servic:4,set:[0,1,3,4,5,7,8,9,11,12,14,15,16,17,18,20,22,24,25,27],set_directory_properti:4,setcbetaenergi:12,setcbetapotentialparamet:12,setcbpackingenergi:12,setcbpackingpotentialparamet:12,setenviron:[12,17],setframeenergi:[22,24,25],sethbondenergi:12,sethbondpotentialparamet:12,setinternalenergi:25,setinternalenergyprefactor:25,setinterpol:27,setomegators:11,setphitors:11,setpolardirect:25,setprob:25,setpsitors:11,settemperatur:25,settorsionenergi:12,settorsionpotentialparamet:12,setup:[2,4,16,17],setup_boost:4,setup_compiler_flag:4,setup_stag:4,sever:[1,4,7,9,12,13,14,16,18,19,22,25,27,28],shake:17,shapovalov:24,shebang:4,shelenkov:21,shell:[0,1,4,5],should:[0,3,4,5,7,12,15,16,17,18,19,22,23,24,25],shout:11,show:[0,4,24],shown:4,side:[4,20,21,24],sidechain:[4,9,10,21,22,23],sidechains_pymod:4,sidechains_rst:4,sidechains_unit_test:4,sig1:[25,27],sig2:[25,27],sig3:[25,27],sig4:[25,27],silent:0,similar:[0,1,4,12,18,27],similardihedr:27,simpl:[11,17,21,22,24],simplest:4,simpli:[17,26,27],simplif:7,simul:[15,17],sinc:[0,1,3,4,5,19,26],singl:[3,4,17,20,22,23,25],sit:4,size:[11,12,15,16,17,18,19,22],skip:[0,4,18],small:16,smaller:[12,16,18,28],smallest:24,smallish:[1,4],smart:4,smng:2,softsampl:17,softwar:4,sol:24,sole:[0,4],soli:14,solut:[4,15,16,17],solv:[4,23,24],solvent:15,solver:4,some:[0,1,3,4,7,12,15,17,18,22,24,25,27],someth:[0,4,5],somethingtest:4,sometim:4,somewher:3,soon:[4,24,27],sort:[0,3],sound:4,sourc:[0,1,3,4,5,7,8,18,24,27],source1:[3,4],source2:[3,4],spawn:[0,4],special:[0,1,3,4,26,27],specif:[0,12,15,17,18,19,27],specifi:[3,19,25,27],specimen:5,spend:4,sphinx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],sport:4,src:4,ssagreementscor:18,stabl:4,stack:4,stage:[0,1],stage_dir:4,stai:[0,4],standard:[1,4,6,7,12,19,22,25,27],start:[0,1,3],start_resnum:[12,17],start_temperatur:17,starter:0,stash:4,state:[0,1,4,12,18,21,25,26,27],statist:[12,14,15,18],statu:[0,4],stderr:0,stdout:0,steadili:17,steepest:16,stem:[15,16,17,18],stem_rmsd:15,step:[4,15,16,17],step_siz:15,steric:27,still:4,stop:0,stop_criterion:16,store:[0,4,11,15,17,18,19,20],stori:4,str:[0,5,7,8,11,12,15,17,18,19,24,25,26,27],straight:4,strategi:27,strict:4,string:[5,7,12,18,19],strip:[20,25],structral:12,structural_db:15,structuralgaplist:20,structure_db:18,structuredb:[14,18],sub:[4,16],sub_frag:11,subdir:4,subject:4,submodul:4,submodule1:4,subrotam:[21,25,28],subsequ:[12,20],subst_matrix:18,substitut:18,substweightmatrix:18,subtre:[3,4],success:[5,17,23],suffix:5,suggest:4,suit:[0,4],sulfur:21,sum:[25,28],superpos:[11,16,17,18],superposed_rmsd:11,superposeonto:11,superposit:[15,17],supervis:0,supper:24,support:[0,4,5],suppos:4,sure:4,surround:[12,18],symmetr:27,system:[0,1,2,3,4],take:[4,17,18,19,20,23,24],taken:[15,22,25],talk:0,target:[0,1,3,4,7,16,17],task:[4,16,18],technic:[18,22,28],tell:[0,4,5,7,18],temperatur:[15,17,25,28],templat:[0,7,20],template_structur:20,temporarili:4,term:[4,12,22,25,26,27,28],termainl:16,termin:[0,5,15,16,17,22],terminal_sequ:17,termini:17,terminu:[17,18],test_:4,test_action_:0,test_action_awesom:4,test_action_do_awesom:0,test_action_help:0,test_awesome_featur:4,test_foo:3,test_sidechain:4,test_someth:4,test_submodule1:4,test_suite_:3,test_suite_your_module_run:4,test_your_modul:4,testcas:[0,4],testexit0:[0,4],testfileexistsfals:4,testpmexist:0,testutil:[0,4],text:[0,7],than:[4,7,12,16,18,28],thei:[1,4,11,12,17,18,19,26,27],them:[3,4,9,13,18,19,22,25,28],theoret:17,theori:21,therefor:[4,16,17,18,27],thi:[0,1,3,4,5,6,7,8,11,12,15,16,17,18,19,20,21,22,23,24,25,26,27],thing:[0,1,4,7,9,16,24,27,28],think:4,thoroughli:4,those:[0,1,3,4,7,15,23,24],though:24,thr:[25,26,28],thread:14,three:[0,3,4,12,15,17,18,19,25,26,28],threonin:26,thresh:[12,25,27],threshold:[16,23,27],through:[0,4,18],throughout:[4,7,14],thu:5,tidi:4,tightli:4,time:[0,4,11,12,20],tini:4,tive:19,tlc:26,tlctorotid:[24,26],toentiti:[11,15,17],togeth:4,too:[4,18],tool:[3,13,18,24],toolbox:4,top:[1,4,8],topic:[0,4],topolog:16,torsion:[11,12,13,14,15,16,17,18],torsion_angl:24,torsion_bin:12,torsion_sampl:[11,15,16,17,18],torsion_scor:15,torsionprobabilityscor:18,torsionsampl:[11,12,14,15,16,17,18,19],total:18,touch:[0,4],toward:4,tpr:[26,27],track:[5,24],tradit:7,tradition:5,train:14,trajectori:17,tran:[12,26,27],transform:[11,15,25,27],transformation_matrix:11,translat:[26,27],transomegators:12,treat:[4,20,27],tree:[0,3,4,23],trg:7,tri:[20,27],trick:[0,4],trigger:[0,3,4],tripeptid:19,tripl:5,triplet:[13,15,17,18],trp:26,trustworthi:4,tryptophan:26,tupl:5,turn:[0,4,5],tutori:4,two:[0,4,12,15,16,18,21,24,25,26,27,28],txt:[0,1,3,4],type:[0,5,7,11,14,15,18,19,20,22,24,25],typic:[11,17,24,25],tyr:[25,26,27,28],tyrosin:26,ultra:18,uncertain:4,under:[3,4],undergo:[16,17],underscor:0,understand:4,unexpect:1,unfavour:[16,17,21],unfortun:4,uniqu:[17,27],unittest:[0,4],unix:4,unlik:[24,28],unrecognis:[5,7],until:[4,16,23,25],untrack:0,unus:4,updat:[4,16],updatedistribut:19,upon:17,url:4,usabl:4,usag:[14,22,24],user:[0,10],userlevel:0,usr:4,usual:[0,1,3,4,7],utilis:4,val:[19,26,27],valid:[4,17],valin:26,valu:[1,5,7,12,17,18,22,23,24,25,27],vanish:4,vari:3,variabl:[0,1,4,28],variant:7,variou:[0,1,3,4],vec3:[11,21,22,25],vec3list:16,vector:19,verbos:0,veri:[0,4,5,28],verif:7,verifi:[0,4,5],version:[1,4,26],version_great:4,via:[0,4,7,8],view:[4,19],virtual:4,wai:[0,1,3,4,7,11,22,24,26],wait:4,walk:[0,4],want:[0,1,4,8,16,18,25,27],warn:4,watch:4,web:[1,4],weight:[17,18],weird:24,well:[1,3,4,12,15,19,20,24,25],went:4,were:4,wether:[15,23],what:[0,1,4,5,7],when:[0,3,4,7,11,12,15,16,17,18,19,20,21,22,24,25,27,28],whenev:[4,12],where:[0,4,5,11,15,18,19,27],whether:[5,11,12,16,17,18,22,24,25,27],which:[0,1,4,5,6,7,11,12,15,16,17,18,19,20,22,25],whistl:4,who:[23,24],whole:[0,4,20],whould:11,why:[0,4],wild:3,wise:3,within:[1,4,15,27],without:[0,3,4,5,14,18,20],wno:4,won:22,word:3,work:[0,1,3,4,7],worst:4,would:[0,1,4,5,19,21,25],wrapper:[0,4,8],wrong:[1,7],www:4,xxx:26,year:0,you:[0,1,3,4,5,7,8,16,17,18,22,24,25,27],your:[0,1,3],your_modul:4,yourself:[1,4],zero:27,zip:24},titles:["<code class=\"docutils literal\"><span class=\"pre\">test_actions.ActionTestCase</span></code> - Testing Actions","Building ProMod3","Changelog","ProMod3&#8216;s Share Of CMake","Contributing","<code class=\"docutils literal\"><span class=\"pre\">helper</span></code> - Shared Functionality For the Everything","<code class=\"docutils literal\"><span class=\"pre\">core</span></code> - ProMod3 Core Functionality","<code class=\"docutils literal\"><span class=\"pre\">pm3argparse</span></code> - Parsing Command Lines","<code class=\"docutils literal\"><span class=\"pre\">SetCompoundsChemlib()</span></code>","Documentation For Developes","Welcome To ProMod3&#8217;s Documentation!","Backbone","Loop Scoring","<code class=\"docutils literal\"><span class=\"pre\">loop</span></code> - Loop Modelling","Load Loop Objects","Loop Candidates","Loop Closing","Monte Carlo Sampling","Structural Database","Torsion Sampler","<code class=\"docutils literal\"><span class=\"pre\">rawmodel</span></code> - Coordinate Modeling","Disulfid Bond Evaluation","Frame","Coming to a solution","<code class=\"docutils literal\"><span class=\"pre\">sidechain</span></code> - Sidechain Modelling","Rotamers","RotamerID","Rotamer Library","Rotamer Settings","Documentation For Users"],titleterms:{"class":19,"function":[3,5,6,22,25],acid:19,action:[0,3,4],actiontestcas:0,amino:19,api:[0,20],argument:7,backbon:[11,16,27],backboneloopscor:12,base:18,basic:11,block:[11,25],bond:21,branch:4,build:[1,11,25],can:26,candid:15,carlo:17,ccd:16,chain:18,chang:2,changelog:2,close:16,closer:17,cmake:[0,1,3,4],come:23,command:7,construct:[22,25],contribut:4,conveni:[22,25],cooler:17,coordin:20,core:6,creat:0,databas:18,defin:[18,19],depend:[1,27],develop:9,directori:4,disulfid:21,document:[3,4,9,10,29],edit:11,entri:27,evalu:21,everyth:5,execut:0,featur:18,file:5,find:18,fragment:18,frame:22,full:11,geometr:18,get:26,git:4,graph:23,group:25,have:0,helper:5,hook:4,how:[4,26],indic:10,integr:0,interact:23,introduct:[3,5,7],issu:4,kic:16,librari:27,licens:4,line:7,load:14,loop:[12,13,14,15,16],mainten:3,make:[0,1],messag:5,model:[13,20,24],modul:[3,4],mont:17,must:0,object:[14,17,22],output:0,own:4,pars:7,parser:7,parti:4,particl:25,pm3argpars:7,promod3:[1,3,6,10],raw:20,rawmodel:20,relax:16,releas:2,residu:[11,22],rotam:[25,27,28],rotamerid:26,run:[0,1],sampl:17,sampler:[17,19],score:12,scorer:17,script:0,sequenc:18,set:28,setcompoundschemlib:8,share:[3,5],sidechain:24,smallest:25,solut:23,stage:4,start:4,stretch:11,structur:[4,18],subclass:0,tabl:10,test:[0,3,4,5],test_act:0,third:4,torsion:19,triplet:19,type:27,unit:[0,3,4],user:29,welcom:10,write:4,your:4}})
\ No newline at end of file
diff --git a/doc/html/sidechain/disulfid.html b/doc/html/sidechain/disulfid.html
new file mode 100644
index 0000000000000000000000000000000000000000..fa8db2c4cbb9c59df4f47861f73caba938960f08
--- /dev/null
+++ b/doc/html/sidechain/disulfid.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Disulfid Bond Evaluation &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" />
+    <link rel="next" title="test_actions.ActionTestCase - Testing Actions" href="../actions/index_dev.html" />
+    <link rel="prev" title="Rotamer Settings" href="sidechain_settings.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="../actions/index_dev.html" title="test_actions.ActionTestCase - Testing Actions"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="sidechain_settings.html" title="Rotamer Settings"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="disulfid-bond-evaluation">
+<h1>Disulfid Bond Evaluation<a class="headerlink" href="#disulfid-bond-evaluation" title="Permalink to this headline">¶</a></h1>
+<p>When calculating the pairwise interaction energy between two rotamers building
+a disulfid bond, one would get an unfavourable energy due to &#8220;clashes&#8221; between
+the sulfur atoms. It is possible to improve performance in sidechain
+reconstruction regarding cysteins when finding and separately handle
+disulfid bonds. PROMOD3 implements a simple geometrical description of
+disulfid bonds described in:</p>
+<p>Canutescu AA, Shelenkov AA, Dunbrack RL Jr.
+A graph-theory algorithm for rapid protein side-chain prediction.
+Protein Sci (2003).</p>
+<p>Two methods are implemented to evaluate this disulfid score on either rigid of
+flexible rotamers. The above paper proposes two rotamers to be in a disulfid
+bonded state, if the resulting score is below 45.</p>
+<dl class="method">
+<dt id="promod3.sidechain.DisulfidScore">
+<code class="descclassname">promod3.sidechain.</code><code class="descname">DisulfidScore</code><span class="sig-paren">(</span><em>rotamer_one</em>, <em>rotamer_two</em>, <em>ca_pos_one</em>, <em>cb_pos_one</em>, <em>ca_pos_two</em>, <em>cb_pos_two</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.DisulfidScore" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>rotamer_one</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a>) &#8211; First rotamer</li>
+<li><strong>rotamer_two</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a>) &#8211; Second rotamer</li>
+<li><strong>ca_pos_one</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; CA position of first rotamer</li>
+<li><strong>cb_pos_one</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; CB position of first rotamer</li>
+<li><strong>ca_pos_two</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; CA position of second rotamer</li>
+<li><strong>cb_pos_two</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; CB position of second rotamer</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if given rotamers do not contain
+exactly one particle representing the gamma sulfur.</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The disulfid score based on geometric features.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.sidechain.</code><code class="descname">DisulfidScore</code><span class="sig-paren">(</span><em>rotamer_one</em>, <em>rotamer_two</em>, <em>ca_pos_one</em>, <em>cb_pos_one</em>, <em>ca_pos_two</em>, <em>cb_pos_two</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>rotamer_one</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a>) &#8211; First rotamer</li>
+<li><strong>rotamer_two</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a>) &#8211; Second rotamer</li>
+<li><strong>ca_pos_one</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; CA position of first rotamer</li>
+<li><strong>cb_pos_one</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; CB position of first rotamer</li>
+<li><strong>ca_pos_two</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; CA position of second rotamer</li>
+<li><strong>cb_pos_two</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; CB position of second rotamer</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if given subrotamers do not contain
+exactly one particle representing the gamma sulfur.</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">The disulfid score based on geometric features. Scores
+are calculated for all possible subrotamer combinations
+and the minimal score gets returned.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="sidechain_settings.html"
+                        title="previous chapter">Rotamer Settings</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="../actions/index_dev.html"
+                        title="next chapter"><code class="docutils literal"><span class="pre">test_actions.ActionTestCase</span></code> - Testing Actions</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/sidechain/disulfid.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/sidechain/disulfid.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/sidechain/frame.html b/doc/html/sidechain/frame.html
new file mode 100644
index 0000000000000000000000000000000000000000..c935d1fac24e068ca8da8daffa392933cf6939c8
--- /dev/null
+++ b/doc/html/sidechain/frame.html
@@ -0,0 +1,403 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Frame &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" />
+    <link rel="next" title="Rotamer Library" href="rotamer_lib.html" />
+    <link rel="prev" title="Rotamers" href="rotamer.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="rotamer_lib.html" title="Rotamer Library"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="rotamer.html" title="Rotamers"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="frame">
+<h1>Frame<a class="headerlink" href="#frame" title="Permalink to this headline">¶</a></h1>
+<p>In contrast to the rotamers, the frame is a rigid object. It either
+represents the protein backbone or sidechains kept rigid during the
+sidechain modelling process. Regions, that should not be occupied by
+any sidechain atoms can also be blocked by adding particles to the frame.
+The frame is built using single frame residues, all of them associated to
+a residues index. If a rotamer associated to the same residue index
+enters the frame energy calculation, all interaction with particles
+belonging to the frame residue with the same residue index are neglected.</p>
+<div class="section" id="convenient-functions-for-constructing-frame-residues">
+<h2>Convenient functions for constructing frame residues<a class="headerlink" href="#convenient-functions-for-constructing-frame-residues" title="Permalink to this headline">¶</a></h2>
+<p>PROMOD3 offers some functionality to construct frame residues for standard
+residues. The functions distinguish between backbone frame residue
+and sidechain frame residues.</p>
+<dl class="method">
+<dt id="promod3.sidechain.ConstructBackboneFrameResidue">
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructBackboneFrameResidue</code><span class="sig-paren">(</span><em>n_pos</em>, <em>ca_pos</em>, <em>c_pos</em>, <em>o_pos</em>, <em>cb_pos</em>, <em>id</em>, <em>residue_index</em>, <em>settings</em>, <em>phi</em><span class="optional">[</span>, <em>n_ter=False</em>, <em>c_ter=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.ConstructBackboneFrameResidue" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>n_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of backbone nitrogen atom</li>
+<li><strong>ca_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of backbone c-alpha carbon atom</li>
+<li><strong>c_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of backbone carbon atom</li>
+<li><strong>o_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of backbone oxygen atom</li>
+<li><strong>cb_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of backbone c-beta carbon atom</li>
+<li><strong>id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a></li>
+<li><strong>residue_index</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; Index this <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a> belongs to.
+Interactions to rotamers associated to the same
+index are neglected.</li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Phi backbone torsion angle required to construct the
+backbone hydrogen if hbonds get considered.</li>
+<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether residue is n-terminal. If yes, the
+according backbone hydrogens get constructed if
+hbonds get considered.</li>
+<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether residue is c-terminal. If yes, the
+according backbone oxygen gets constructed if
+hbonds get considered.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a></p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructBackboneFrameResidue</code><span class="sig-paren">(</span><em>residue</em>, <em>id</em>, <em>residue_index</em>, <em>settings</em>, <em>phi</em><span class="optional">[</span>, <em>n_ter=False</em>, <em>c_ter=False</em><span class="optional">]</span><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>residue</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue from which the backbone atoms are extracted.</li>
+<li><strong>id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a></li>
+<li><strong>residue_index</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; Index this <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a> belongs to.
+Interactions to rotamers associated to the same
+index are neglected.</li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Phi backbone torsion angle required to construct the
+backbone hydrogen if hbonds get considered.</li>
+<li><strong>n_ter</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether residue is n-terminal. If yes, the
+according backbone hydrogens get constructed if
+hbonds get considered.</li>
+<li><strong>c_ter</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether residue is c-terminal. If yes, the
+according backbone oxygen gets constructed if
+hbonds get considered.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> when not all required backbone
+atoms are present in <strong>residue</strong></p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a></p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.ConstructSidechainFrameResidue">
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructSidechainFrameResidue</code><span class="sig-paren">(</span><em>residue</em>, <em>id</em>, <em>residue_index</em>, <em>settings</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.ConstructSidechainFrameResidue" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>residue</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue from which the sidechain atoms are extracted.</li>
+<li><strong>id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a></li>
+<li><strong>residue_index</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; Index this <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a> belongs to.</li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> when not all required atoms
+atoms are present in <strong>residue</strong></p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.ConstructFrameResidue">
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructFrameResidue</code><span class="sig-paren">(</span><em>residue</em>, <em>residue_index</em>, <em>settings</em><span class="optional">[</span>, <em>radius=[]</em>, <em>emin=[]</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.ConstructFrameResidue" title="Permalink to this definition">¶</a></dt>
+<dd><p>Constructs a <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a> from a <a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>.
+This can be useful to mark a region occupied by a ligand. Note, that
+there won&#8217;t be any parametrization of hbonds in this function.</p>
+<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"><ul class="first simple">
+<li><strong>residue</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Reside from which all atoms will be taken to
+construct a <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a>.</li>
+<li><strong>residue_index</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; Index this <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a> belongs to.</li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>radius</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; Radius for pseudo Lennard-Jones term in energy
+evaluation for every particle. If left empty,
+radius of carbon will be used for all particles.</li>
+<li><strong>emin</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; Min energy for pseudo Lennard-Jones term in energy
+evaluation for every particle. If left empty,
+emin of carbon will be used for all particles.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if size of radius and emin is not
+consistent.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="the-frame-objects">
+<h2>The Frame Objects<a class="headerlink" href="#the-frame-objects" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.sidechain.FrameResidue">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">FrameResidue</code><span class="sig-paren">(</span><em>particles</em>, <em>residue_index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FrameResidue" title="Permalink to this definition">¶</a></dt>
+<dd><p>The most simple way of constructing a frame residue is the usage
+of the convenient functions provided by PROMOD3.</p>
+<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"><ul class="first last simple">
+<li><strong>particles</strong> &#8211; <a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="rotamer.html#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal"><span class="pre">Particle</span></code></a> objects building
+up the <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a></li>
+<li><strong>residue_index</strong> &#8211; Interaction energies between the constructed frame
+residue and any rotamer associated to the same
+residue index are neglected.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.sidechain.FrameResidue.__len__">
+<code class="descname">__len__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FrameResidue.__len__" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Number of particles in <a class="reference internal" href="#promod3.sidechain.FrameResidue" title="promod3.sidechain.FrameResidue"><code class="xref py py-class docutils literal"><span class="pre">FrameResidue</span></code></a></td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FrameResidue.__getitem__">
+<code class="descname">__getitem__</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FrameResidue.__getitem__" title="Permalink to this definition">¶</a></dt>
+<dd><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>index</strong> &#8211; <a class="reference internal" href="rotamer.html#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal"><span class="pre">Particle</span></code></a> index</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="rotamer.html#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal"><span class="pre">Particle</span></code></a> at position <strong>index</strong></td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.sidechain.Frame">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">Frame</code><span class="sig-paren">(</span><em>frame_residues</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Frame" title="Permalink to this definition">¶</a></dt>
+<dd><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>frame_residues</strong> &#8211; </td>
+</tr>
+</tbody>
+</table>
+<p>The <a class="reference internal" href="#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal"><span class="pre">Frame</span></code></a> object allows to calculate frame energies for rotamers.
+Due to technical reasons, this is only possible if the rotamers are
+part of rotamer groups.</p>
+<dl class="method">
+<dt id="promod3.sidechain.Frame.SetFrameEnergy">
+<code class="descname">SetFrameEnergy</code><span class="sig-paren">(</span><em>rotamer_group</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Frame.SetFrameEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and sets frame energies</p>
+<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>rotamer_group</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamerGroup</span></code></a>) &#8211; group of rotamers for energy calculation</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">SetFrameEnergy</code><span class="sig-paren">(</span><em>rotamer_group</em><span class="sig-paren">)</span></dt>
+<dd><p>Calculates and sets frame energies</p>
+<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>rotamer_group</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamerGroup</span></code></a>) &#8211; group of rotamers for energy calculation</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Frame.AddFrameEnergy">
+<code class="descname">AddFrameEnergy</code><span class="sig-paren">(</span><em>rotamer_group</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Frame.AddFrameEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and adds frame energies to the already existing frame
+energy values. This might be useful if you have several <a class="reference internal" href="#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal"><span class="pre">Frame</span></code></a>
+objects.</p>
+<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>rotamer_group</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamerGroup</span></code></a>) &#8211; group of rotamers for energy calculation</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">AddFrameEnergy</code><span class="sig-paren">(</span><em>rotamer_group</em><span class="sig-paren">)</span></dt>
+<dd><p>Calculates and adds frame energies to the already existing frame
+energy values. This might be useful if you have several <a class="reference internal" href="#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal"><span class="pre">Frame</span></code></a>
+objects.</p>
+<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>rotamer_group</strong> (<a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamerGroup</span></code></a>) &#8211; group of rotamers for energy calculation</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Frame</a><ul>
+<li><a class="reference internal" href="#convenient-functions-for-constructing-frame-residues">Convenient functions for constructing frame residues</a></li>
+<li><a class="reference internal" href="#the-frame-objects">The Frame Objects</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="rotamer.html"
+                        title="previous chapter">Rotamers</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="rotamer_lib.html"
+                        title="next chapter">Rotamer Library</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/sidechain/frame.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/sidechain/frame.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/sidechain/graph.html b/doc/html/sidechain/graph.html
new file mode 100644
index 0000000000000000000000000000000000000000..e364e630098722b31ae499b1c8c101a9f3d06954
--- /dev/null
+++ b/doc/html/sidechain/graph.html
@@ -0,0 +1,285 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Coming to a solution &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" />
+    <link rel="next" title="Rotamer Settings" href="sidechain_settings.html" />
+    <link rel="prev" title="Rotamer Library" href="rotamer_lib.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="sidechain_settings.html" title="Rotamer Settings"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="rotamer_lib.html" title="Rotamer Library"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="coming-to-a-solution">
+<h1>Coming to a solution<a class="headerlink" href="#coming-to-a-solution" title="Permalink to this headline">¶</a></h1>
+<p>Once having a frame representing the rigid parts, the internal energies in
+rotamer groups can be calculated. To come to a final solution of the sidechain
+modelling problem, the pairwise energies also have to be evaluated and an
+overall solution has to be found. PROMOD3 implements an interaction graph that
+takes a list of rotamer groups, calculates the pairwise energies, does edge
+decomposition and dead end elimination, decomposes the graph in a tree form
+and finally comes back with a solution.</p>
+<div class="section" id="the-interaction-graph">
+<h2>The Interaction Graph<a class="headerlink" href="#the-interaction-graph" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.sidechain.Graph">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">Graph</code><a class="headerlink" href="#promod3.sidechain.Graph" title="Permalink to this definition">¶</a></dt>
+<dd><p>The Graph object has no constructor exported to python. It is meant to be
+constructed using the static create functions.</p>
+<dl class="method">
+<dt id="promod3.sidechain.Graph.CreateFromRRMList">
+<code class="descname">CreateFromRRMList</code><span class="sig-paren">(</span><em>rotamer_groups</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Graph.CreateFromRRMList" title="Permalink to this definition">¶</a></dt>
+<dd><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>rotamer_groups</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; <a class="reference internal" href="rotamer.html#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamerGroup</span></code></a> objects representing the
+possible sidechain conformations for every amino
+acid position.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Graph.CreateFromFRMList">
+<code class="descname">CreateFromFRMList</code><span class="sig-paren">(</span><em>rotamer_groups</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Graph.CreateFromFRMList" title="Permalink to this definition">¶</a></dt>
+<dd><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>rotamer_groups</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; <a class="reference internal" href="rotamer.html#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamerGroup</span></code></a> objects representing the
+possible sidechain conformations for every amino
+acid position.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Graph.Solve">
+<code class="descname">Solve</code><span class="sig-paren">(</span><span class="optional">[</span><em>max_complexity=inf</em>, <em>initial_epsilon=0.02</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Graph.Solve" title="Permalink to this definition">¶</a></dt>
+<dd><p>The method solves a graph by iteratively performing dead end elimination
+and edge decomposition until the number of possible permutations, that
+have to be enumerated in the resulting tree, fall below
+<strong>max_complecity</strong>. In every iteration the epsilon value gets doubled to
+enforce more edges to be approximated by edge decomposition.</p>
+<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"><ul class="first simple">
+<li><strong>max_complexity</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; Max number of possible permutations, that have to
+be enumerated in the resulting tree after tree
+decomposition.</li>
+<li><strong>initial_epsilon</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The initial energy threshold to perform edge
+decomposition.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Indices representing the single rotamers minimizing
+the overall energy functions from every rotamer group.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Graph.Prune">
+<code class="descname">Prune</code><span class="sig-paren">(</span><em>epsilon</em><span class="optional">[</span>, <em>consider_all_nodes=False</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Graph.Prune" title="Permalink to this definition">¶</a></dt>
+<dd><p>Performs edge decomposition followed by dead end elimination in an
+iterative manner until no changes can be observed anymore given
+<strong>epsilon</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>epsilon</strong> &#8211; The energy threshold to perform edge decomposition.</li>
+<li><strong>consider_all_nodes</strong> &#8211; Flag, wether the dead end elimination should be
+applied to all nodes, or only those who are
+connected with an edge removed by edge
+decomposition. This is useful if already a Prune
+operation has been performed =&gt; only those nodes
+connected to a removed edge have the chance for
+successful dead end elimination.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Graph.GetNumNodes">
+<code class="descname">GetNumNodes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Graph.GetNumNodes" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The number of nodes in the graph
+=&gt; every rotamer group is a node</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Graph.GetNumEdges">
+<code class="descname">GetNumEdges</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Graph.GetNumEdges" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The number of edges in the graph, representing
+connections between nodes with at least one
+nonzero interaction</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Graph.GetNumActiveNodes">
+<code class="descname">GetNumActiveNodes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Graph.GetNumActiveNodes" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The number of nodes havind at least one edge, even
+after performing pruning operations</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Graph.GetNumActiveEdges">
+<code class="descname">GetNumActiveEdges</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Graph.GetNumActiveEdges" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The number of edges representing nonzero interactions,
+even after performing pruning operations</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Coming to a solution</a><ul>
+<li><a class="reference internal" href="#the-interaction-graph">The Interaction Graph</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="rotamer_lib.html"
+                        title="previous chapter">Rotamer Library</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="sidechain_settings.html"
+                        title="next chapter">Rotamer Settings</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/sidechain/graph.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/sidechain/graph.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/sidechain/index.html b/doc/html/sidechain/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..9e7769fefc2b134aed00339937e448a230ba6304
--- /dev/null
+++ b/doc/html/sidechain/index.html
@@ -0,0 +1,280 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>sidechain - Sidechain Modelling &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="Documentation For Developes" href="../developers.html" />
+    <link rel="next" title="RotamerID" href="rotamer_id.html" />
+    <link rel="prev" title="Load Loop Objects" href="../loop/load_loop_objects.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="rotamer_id.html" title="RotamerID"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="../loop/load_loop_objects.html" title="Load Loop Objects"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" accesskey="U">Documentation For Developes</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="module-promod3.sidechain">
+<span id="sidechain-sidechain-modelling"></span><h1><a class="reference internal" href="#module-promod3.sidechain" title="promod3.sidechain: Sidechain Modelling"><code class="xref py py-mod docutils literal"><span class="pre">sidechain</span></code></a> - Sidechain Modelling<a class="headerlink" href="#module-promod3.sidechain" title="Permalink to this headline">¶</a></h1>
+<p>Tools and algorithms to model sidechains given backbone coordinates.
+The full module is heavily based on SCWRL4:</p>
+<p>G. G. Krivov, M. V. Shapovalov, and R. L. Dunbrack, Jr.
+Improved prediction of protein side-chain conformations with SCWRL4.
+Proteins (2009).</p>
+<p>The paper describes the modelling of sidechains using two different rotamer
+models. A rigid model, as well as a flexible model. Both models are implemented
+in PROMOD3 and can be applied in flexible ways.</p>
+<p>The most simple way though is the usage of following function:</p>
+<dl class="method">
+<dt id="promod3.sidechain.reconstruct_sidechains.Reconstruct">
+<code class="descclassname">promod3.sidechain.reconstruct_sidechains.</code><code class="descname">Reconstruct</code><span class="sig-paren">(</span><em>prot</em><span class="optional">[</span>, <em>keep_sidechains=False</em>, <em>build_disulfids</em>, <em>rotamer_model=&quot;frm&quot;</em>, <em>consider_hbonds=True</em>, <em>rotamer_library=None</em><span class="optional">]</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/promod3/sidechain/reconstruct_sidechains.html#Reconstruct"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#promod3.sidechain.reconstruct_sidechains.Reconstruct" title="Permalink to this definition">¶</a></dt>
+<dd><p>The function takes a structure and reconstructs its sidechains given the input
+parameters.</p>
+<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"><ul class="first last simple">
+<li><strong>prot</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.EntityHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.EntityHandle</span></code></a>) &#8211; Structure for sidechain reconstruction. Note, that the
+sidechain reconstruction gets directly applied on the
+structure itself.</li>
+<li><strong>keep_sidechains</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether sidechains containing all required
+should be kept rigid and directly be added to the
+frame.</li>
+<li><strong>build_disulfids</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether possible disulfid bonds should be
+searched. If a disulfid bond is found, the two
+participating cysteins are fixed and added to
+the frame.</li>
+<li><strong>rotamer_model</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Rotamer model to be used, can either be &#8220;frm&#8221; or &#8220;rrm&#8221;</li>
+<li><strong>consider_hbonds</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether hbonds should be evaluated in the energy
+function. If set to False, no hydrogens will be built
+when building rotamers and frame.</li>
+<li><strong>rotamer_library</strong> (<a class="reference internal" href="rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLib</span></code></a>) &#8211; A backbone dependent rotamer library to extract the
+rotamers from.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<p>Following code fragment shows an example of a basic sidechain reconstruction
+algorithm using the functionality in the module. Note, that this code will
+crash as soon as you have structures containing all the weirdness the PDB throws
+at us. In this case you should use the Reconstruct function above. An overview
+of the full provided functionality can be found at the bottom of this page.</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">promod3</span> <span class="kn">import</span> <span class="n">sidechain</span>
+
+<span class="c">#load a protein, the rotamer library and the settings with default values</span>
+<span class="n">prot</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;1eye&#39;</span><span class="p">,</span><span class="n">remote</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+<span class="n">settings</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">RotamerSettings</span><span class="p">()</span>
+<span class="n">library</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">LoadDunbrackLib</span><span class="p">()</span>
+
+<span class="c">#let&#39;s create a new entity from the protein only containing the amino acids</span>
+<span class="n">prot</span> <span class="o">=</span> <span class="n">ost</span><span class="o">.</span><span class="n">mol</span><span class="o">.</span><span class="n">CreateEntityFromView</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">Select</span><span class="p">(</span><span class="s">&quot;peptide=true&quot;</span><span class="p">),</span><span class="bp">True</span><span class="p">)</span>
+
+<span class="c">#gather some data, the rotamer ids and backbone torsion angles</span>
+<span class="n">torsion_angles</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+<span class="n">rotamer_ids</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+
+<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">:</span>
+    <span class="n">rotamer_ids</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sidechain</span><span class="o">.</span><span class="n">TLCToRotID</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">GetName</span><span class="p">()))</span>
+    <span class="n">phi_handle</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">GetPhiTorsion</span><span class="p">()</span>
+    <span class="n">psi_handle</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">GetPsiTorsion</span><span class="p">()</span>
+
+    <span class="c">#set typical default values for an alpha helix...</span>
+    <span class="n">phi</span> <span class="o">=</span> <span class="o">-</span><span class="mf">1.0472</span>
+    <span class="n">psi</span> <span class="o">=</span> <span class="o">-</span><span class="mf">0.7854</span>
+    <span class="k">if</span> <span class="n">phi_handle</span><span class="o">.</span><span class="n">IsValid</span><span class="p">():</span>
+        <span class="n">phi</span> <span class="o">=</span> <span class="n">phi_handle</span><span class="o">.</span><span class="n">GetAngle</span><span class="p">()</span>
+    <span class="k">if</span> <span class="n">psi_handle</span><span class="o">.</span><span class="n">IsValid</span><span class="p">():</span>
+        <span class="n">psi</span> <span class="o">=</span> <span class="n">psi_handle</span><span class="o">.</span><span class="n">GetAngle</span><span class="p">()</span>
+
+    <span class="n">torsion_angles</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">phi</span><span class="p">,</span><span class="n">psi</span><span class="p">))</span>
+
+<span class="c">#lets first build a frame representing the rigid parts including the cystein</span>
+<span class="c">#sidechains</span>
+<span class="n">frame_residues</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+<span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">):</span>
+    <span class="n">frame_residue</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructBackboneFrameResidue</span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="n">rotamer_ids</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="n">i</span><span class="p">,</span>
+                                                            <span class="n">settings</span><span class="p">,</span>
+                                                            <span class="n">torsion_angles</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</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="n">i</span> <span class="o">==</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">rotamer_ids</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
+
+    <span class="n">frame_residues</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">frame_residue</span><span class="p">)</span>
+
+
+<span class="n">frame</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">frame_residues</span><span class="p">)</span>
+
+
+<span class="c">#let&#39;s build up rotamer groups</span>
+<span class="n">rotamer_groups</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+<span class="n">aa_with_rotamers</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
+<span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">):</span>
+
+    <span class="k">if</span> <span class="n">r</span><span class="o">.</span><span class="n">GetName</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;ALA&quot;</span> <span class="ow">or</span> <span class="n">r</span><span class="o">.</span><span class="n">GetName</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;GLY&quot;</span><span class="p">:</span>
+      <span class="k">continue</span>
+
+    <span class="n">rot_group</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">ConstructFRMRotamerGroup</span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="n">rotamer_ids</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="n">i</span><span class="p">,</span>
+                                                   <span class="n">library</span><span class="p">,</span><span class="n">settings</span><span class="p">,</span>
+                                                   <span class="n">torsion_angles</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span>
+                                                   <span class="n">torsion_angles</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span>
+
+    <span class="c">#internal and frame energy have to be calculated directly</span>
+    <span class="n">rot_group</span><span class="o">.</span><span class="n">CalculateInternalEnergies</span><span class="p">()</span>
+    <span class="n">frame</span><span class="o">.</span><span class="n">SetFrameEnergy</span><span class="p">(</span><span class="n">rot_group</span><span class="p">)</span>
+    <span class="c">#remove supper unlikely rotamer in rotamer group</span>
+    <span class="c">#e.g. those who clash with the frame</span>
+    <span class="n">rot_group</span><span class="o">.</span><span class="n">ApplySelfEnergyThresh</span><span class="p">()</span>
+    <span class="c">#finally add it and keep track of the indices</span>
+    <span class="n">rotamer_groups</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rot_group</span><span class="p">)</span>
+    <span class="n">aa_with_rotamers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
+
+
+<span class="c">#buildup a graph given the rotamer groups</span>
+<span class="n">graph</span> <span class="o">=</span> <span class="n">sidechain</span><span class="o">.</span><span class="n">Graph</span><span class="o">.</span><span class="n">CreateFromFRMList</span><span class="p">(</span><span class="n">rotamer_groups</span><span class="p">)</span>
+
+<span class="c">#and get a solution out of it</span>
+<span class="n">solution</span> <span class="o">=</span> <span class="n">graph</span><span class="o">.</span><span class="n">Solve</span><span class="p">()</span>
+
+<span class="c">#let&#39;s finally apply the solution to the residues</span>
+<span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">rot_group</span><span class="p">,</span><span class="n">sol</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">aa_with_rotamers</span><span class="p">,</span><span class="n">rotamer_groups</span><span class="p">,</span><span class="n">solution</span><span class="p">):</span>
+    <span class="n">rot_group</span><span class="p">[</span><span class="n">sol</span><span class="p">]</span><span class="o">.</span><span class="n">ApplyOnResidue</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">residues</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
+
+<span class="n">io</span><span class="o">.</span><span class="n">SavePDB</span><span class="p">(</span><span class="n">prot</span><span class="p">,</span><span class="s">&quot;example_reconstruction.pdb&quot;</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>Contents:</p>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="rotamer_id.html">RotamerID</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="rotamer_id.html#the-rotamerid">The RotamerID</a></li>
+<li class="toctree-l2"><a class="reference internal" href="rotamer_id.html#how-can-i-get-an-id">How can I get an ID?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="rotamer.html">Rotamers</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="rotamer.html#convenient-functions-for-constructing-rotamers">Convenient functions for constructing rotamers</a></li>
+<li class="toctree-l2"><a class="reference internal" href="rotamer.html#convenient-functions-for-constructing-rotamer-groups">Convenient functions for constructing rotamer groups</a></li>
+<li class="toctree-l2"><a class="reference internal" href="rotamer.html#the-smallest-building-block-the-particle">The Smallest Building Block - The Particle</a></li>
+<li class="toctree-l2"><a class="reference internal" href="rotamer.html#id1">Rotamers</a></li>
+<li class="toctree-l2"><a class="reference internal" href="rotamer.html#rotamer-groups">Rotamer Groups</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="frame.html">Frame</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="frame.html#convenient-functions-for-constructing-frame-residues">Convenient functions for constructing frame residues</a></li>
+<li class="toctree-l2"><a class="reference internal" href="frame.html#the-frame-objects">The Frame Objects</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="rotamer_lib.html">Rotamer Library</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="rotamer_lib.html#the-backbone-dependent-rotamer-library">The Backbone Dependent Rotamer Library</a></li>
+<li class="toctree-l2"><a class="reference internal" href="rotamer_lib.html#the-library-entry-type">The Library Entry Type</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="graph.html">Graph</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="graph.html#the-interaction-graph">The Interaction Graph</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="sidechain_settings.html">The Settings - Control Things...</a></li>
+<li class="toctree-l1"><a class="reference internal" href="disulfid.html">Disulfid Bond Evaluation</a></li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="../loop/load_loop_objects.html"
+                        title="previous chapter">Load Loop Objects</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="rotamer_id.html"
+                        title="next chapter">RotamerID</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/sidechain/index.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/sidechain/index.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/sidechain/rotamer.html b/doc/html/sidechain/rotamer.html
new file mode 100644
index 0000000000000000000000000000000000000000..860bde8174fa0076c852dd329547b82c54b19cb7
--- /dev/null
+++ b/doc/html/sidechain/rotamer.html
@@ -0,0 +1,1341 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Rotamers &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" />
+    <link rel="next" title="Frame" href="frame.html" />
+    <link rel="prev" title="RotamerID" href="rotamer_id.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="frame.html" title="Frame"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="rotamer_id.html" title="RotamerID"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="rotamers">
+<h1>Rotamers<a class="headerlink" href="#rotamers" title="Permalink to this headline">¶</a></h1>
+<p>The rotamers in PROMOD3 are heavily based on the definitions from SCWRL4.
+A rotamer is basically a set of <a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal"><span class="pre">Particle</span></code></a> and exists in two types.
+The <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a> and <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a>. Pairwise energies between
+rotamer instances get calculated according to the definitions from SCWRL4.
+To gather all possible rotamers for one particular sidechain position,
+PROMOD3 has the <a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamerGroup</span></code></a> and <a class="reference internal" href="#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamerGroup</span></code></a>.
+Rotamers are not intended to be built from scratch.
+PROMOD3 offers a built-in construction function, directly accessing a
+<a class="reference internal" href="rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLib</span></code></a>.</p>
+<div class="section" id="convenient-functions-for-constructing-rotamers">
+<h2>Convenient functions for constructing rotamers<a class="headerlink" href="#convenient-functions-for-constructing-rotamers" title="Permalink to this headline">¶</a></h2>
+<p>PROMOD3 offers some functionality to directly access a
+<code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLibrary</span></code> and build single rotamers as well as
+rotamer groups.</p>
+<dl class="method">
+<dt id="promod3.sidechain.ConstructRRMRotamer">
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructRRMRotamer</code><span class="sig-paren">(</span><em>n_pos</em>, <em>ca_pos</em>, <em>cb_pos</em>, <em>rotamer_id</em>, <em>settings</em>, <em>probability</em><span class="optional">[</span>, <em>chi1=NaN</em>, <em>chi2=NaN</em>, <em>chi3=NaN</em>, <em>chi4=NaN</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.ConstructRRMRotamer" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>n_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of nitrogen used as anchor for the rotamer</li>
+<li><strong>ca_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of alpha carbon used as anchor for the rotamer</li>
+<li><strong>cb_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of beta carbon used as anchor for the rotamer</li>
+<li><strong>rotamer_id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a></li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>probability</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Probability of occurence of this particular rotamer.</li>
+<li><strong>chi1</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; First sidechain dihedral angle</li>
+<li><strong>chi2</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Second sidechain dihedral angle</li>
+<li><strong>chi3</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Third sidechain dihedral angle</li>
+<li><strong>chi4</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Fourth sidechain dihedral angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all required chi angles
+for this particular <strong>id</strong> are given.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructRRMRotamer</code><span class="sig-paren">(</span><em>residue</em>, <em>rotamer_id</em>, <em>settings</em>, <em>probability</em><span class="optional">[</span>, <em>chi1=NaN</em>, <em>chi2=NaN</em>, <em>chi3=NaN</em>, <em>chi4=NaN</em><span class="optional">]</span><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>residue</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResideHandle</span></code>) &#8211; Residue from which the anchor positions will be
+extracted</li>
+<li><strong>rotamer_id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a></li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>probability</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Probability of occurence of this particular rotamer.</li>
+<li><strong>chi1</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; First sidechain dihedral angle</li>
+<li><strong>chi2</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Second sidechain dihedral angle</li>
+<li><strong>chi3</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Third sidechain dihedral angle</li>
+<li><strong>chi4</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Fourth sidechain dihedral angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all required chi angles
+for this particular <strong>id</strong> are given or when not
+all required anchor atoms are present in
+<strong>residue</strong>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.ConstructFRMRotamer">
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructFRMRotamer</code><span class="sig-paren">(</span><em>n_pos</em>, <em>ca_pos</em>, <em>cb_pos</em>, <em>rotamer_id</em>, <em>settings</em>, <em>probability</em><span class="optional">[</span>, <em>chi1=NaN</em>, <em>sig1=NaN</em>, <em>chi2=NaN</em>, <em>sig2=NaN</em>, <em>chi3=NaN</em>, <em>sig3=NaN</em>, <em>chi4=NaN</em>, <em>sig4=NaN</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.ConstructFRMRotamer" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>n_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of nitrogen used as anchor for the rotamer</li>
+<li><strong>ca_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of alpha carbon used as anchor for the rotamer</li>
+<li><strong>cb_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of beta carbon used as anchor for the rotamer</li>
+<li><strong>rotamer_id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a></li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>probability</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Probability of occurence of this particular rotamer.</li>
+<li><strong>chi1</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; First sidechain dihedral angle</li>
+<li><strong>sig1</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation of first dihedral angle</li>
+<li><strong>chi2</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Second sidechain dihedral angle</li>
+<li><strong>sig2</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation of second dihedral angle</li>
+<li><strong>chi3</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Third sidechain dihedral angle</li>
+<li><strong>sig3</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation of third dihedral angle</li>
+<li><strong>chi4</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Fourth sidechain dihedral angle</li>
+<li><strong>sig4</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation of fourth dihedral angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all required chi angles
+for this particular <strong>id</strong> are given.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructFRMRotamer</code><span class="sig-paren">(</span><em>residue</em>, <em>rotamer_id</em>, <em>settings</em>, <em>probability</em><span class="optional">[</span>, <em>chi1=NaN</em>, <em>sig1=NaN</em>, <em>chi2=NaN</em>, <em>sig2=NaN</em>, <em>chi3=NaN</em>, <em>sig3=NaN</em>, <em>chi4=NaN</em>, <em>sig4=NaN</em><span class="optional">]</span><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first simple">
+<li><strong>residue</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResideHandle</span></code>) &#8211; Residue from which the anchor positions will be
+extracted</li>
+<li><strong>rotamer_id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a></li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>probability</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Probability of occurence of this particular rotamer.</li>
+<li><strong>chi1</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; First sidechain dihedral angle</li>
+<li><strong>sig1</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation of first dihedral angle</li>
+<li><strong>chi2</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Second sidechain dihedral angle</li>
+<li><strong>sig2</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation of second dihedral angle</li>
+<li><strong>chi3</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Third sidechain dihedral angle</li>
+<li><strong>sig3</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation of third dihedral angle</li>
+<li><strong>chi4</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Fourth sidechain dihedral angle</li>
+<li><strong>sig4</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation of fourth dihedral angle</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all required chi angles
+or standard deviations for this particular <strong>id</strong>
+are given or when not all required anchor atoms are present in
+<strong>residue</strong>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="convenient-functions-for-constructing-rotamer-groups">
+<h2>Convenient functions for constructing rotamer groups<a class="headerlink" href="#convenient-functions-for-constructing-rotamer-groups" title="Permalink to this headline">¶</a></h2>
+<p>Instead of building single rotamers, following convenient functions query a
+rotamer library and build all possible rotamers for a particular residue
+position. If hbond scoring is enabled (<strong>settings</strong>) several rotamers might be
+constructed and added to the group per library instance:</p>
+<ol class="arabic simple">
+<li>SER construct three rotamers with hydrogen chi angles 180,-60 and 60</li>
+<li>THR construct three rotamers with hydrogen chi angles 180,-60 and 60</li>
+<li>TYR construct two rotamers with hydrogen chi angles 180 and 0</li>
+<li>HIS construct both possible protonation states (HSE,HSD)</li>
+</ol>
+<span class="target" id="rotamer-group-construction-label"></span><dl class="method">
+<dt id="promod3.sidechain.ConstructRRMRotamerGroup">
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructRRMRotamerGroup</code><span class="sig-paren">(</span><em>n_pos</em>, <em>ca_pos</em>, <em>cb_pos</em>, <em>rotamer_id</em>, <em>residue_index</em>, <em>rot_lib</em>, <em>settings</em><span class="optional">[</span>, <em>phi=-1.0472</em>, <em>psi=1.0472</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.ConstructRRMRotamerGroup" title="Permalink to this definition">¶</a></dt>
+<dd><p>Constructs a full group of <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a> objects. It extracts rotamers
+from <em>rot_lib</em> and adds them to the group until the summed probability
+reaches the probability cutoff defined in <strong>settings</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>n_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of nitrogen used as anchor for the rotamers</li>
+<li><strong>ca_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of alpha carbon used as anchor for the rotamers</li>
+<li><strong>cb_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of beta carbon used as anchor for the rotamers</li>
+<li><strong>rotamer_id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of of the constructed <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a></li>
+<li><strong>residue_index</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; Index of <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a> objects in constructed
+<a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamerGroup</span></code></a>. This matters for calculating
+the frame energy. Interactions to frame residues with
+same index get neglected.</li>
+<li><strong>rot_lib</strong> (<a class="reference internal" href="rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLib</span></code></a>) &#8211; Library from which the data is taken to construct the
+rotamers.</li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Phi backbone dihedral angle used as input for backbone
+dependent rotamer library. Default value is a typical
+alpha helical value.</li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Psi backbone dihedral angle used as input for backbone
+dependent rotamer library. Default value is a typical
+alpha helical value.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructRRMRotamerGroup</code><span class="sig-paren">(</span><em>residue</em>, <em>rotamer_id</em>, <em>residue_index</em>, <em>rot_lib</em>, <em>settings</em><span class="optional">[</span>, <em>phi=-1.0472</em>, <em>psi=1.0472</em><span class="optional">]</span><span class="sig-paren">)</span></dt>
+<dd><p>Constructs a full group of <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a> objects. It extracts rotamers
+from <em>rot_lib</em> and adds them to the group until the summed probability
+reaches the probability cutoff defined in <strong>settings</strong>.</p>
+<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"><ul class="first simple">
+<li><strong>residue</strong> &#8211; Residue from which the anchor positions will be
+extracted</li>
+<li><strong>rotamer_id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of of the constructed <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a></li>
+<li><strong>residue_index</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; Index of <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a> objects in constructed
+<a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamerGroup</span></code></a>. This matters for calculating
+the frame energy. Interactions to frame residues with
+same index get neglected.</li>
+<li><strong>rot_lib</strong> (<a class="reference internal" href="rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLib</span></code></a>) &#8211; Library from which the data is taken to construct the
+rotamers.</li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Phi backbone dihedral angle used as input for backbone
+dependent rotamer library. Default value is a typical
+alpha helical value.</li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Psi backbone dihedral angle used as input for backbone
+dependent rotamer library. Default value is a typical
+alpha helical value.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all required anchor atoms
+are present in <strong>residue</strong>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.ConstructFRMRotamerGroup">
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructFRMRotamerGroup</code><span class="sig-paren">(</span><em>n_pos</em>, <em>ca_pos</em>, <em>cb_pos</em>, <em>rotamer_id</em>, <em>residue_index</em>, <em>rot_lib</em>, <em>settings</em><span class="optional">[</span>, <em>phi=-1.0472</em>, <em>psi=1.0472</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.ConstructFRMRotamerGroup" title="Permalink to this definition">¶</a></dt>
+<dd><p>Constructs a full group of <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a> objects. It extracts rotamers
+from <em>rot_lib</em> and adds them to the group until the summed probability
+reaches the probability cutoff defined in <strong>settings</strong>.</p>
+<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"><ul class="first last simple">
+<li><strong>n_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of nitrogen used as anchor for the rotamers</li>
+<li><strong>ca_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of alpha carbon used as anchor for the rotamers</li>
+<li><strong>cb_pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Position of beta carbon used as anchor for the rotamers</li>
+<li><strong>rotamer_id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of of the constructed <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a></li>
+<li><strong>residue_index</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; Index of <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a> objects in constructed
+<a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamerGroup</span></code></a>. This matters for calculating
+the frame energy. Interactions to frame residues with
+same index get neglected.</li>
+<li><strong>rot_lib</strong> (<a class="reference internal" href="rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLib</span></code></a>) &#8211; Library from which the data is taken to construct the
+rotamers.</li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Phi backbone dihedral angle used as input for backbone
+dependent rotamer library. Default value is a typical
+alpha helical value.</li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Psi backbone dihedral angle used as input for backbone
+dependent rotamer library. Default value is a typical
+alpha helical value.</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descclassname">promod3.sidechain.</code><code class="descname">ConstructFRMRotamerGroup</code><span class="sig-paren">(</span><em>residue</em>, <em>rotamer_id</em>, <em>residue_index</em>, <em>rot_lib</em>, <em>settings</em><span class="optional">[</span>, <em>phi=-1.0472</em>, <em>psi=1.0472</em><span class="optional">]</span><span class="sig-paren">)</span></dt>
+<dd><p>Constructs a full group of <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a> objects. It extracts rotamers
+from <em>rot_lib</em> and adds them to the group until the summed probability
+reaches the probability cutoff defined in <strong>settings</strong>.</p>
+<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"><ul class="first simple">
+<li><strong>residue</strong> &#8211; Residue from which the anchor positions will be
+extracted</li>
+<li><strong>rotamer_id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Type of of the constructed <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a></li>
+<li><strong>residue_index</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; Index of <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a> objects in constructed
+<a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamerGroup</span></code></a>. This matters for calculating
+the frame energy. Interactions to frame residues with
+same index get neglected.</li>
+<li><strong>rot_lib</strong> (<a class="reference internal" href="rotamer_lib.html#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLib</span></code></a>) &#8211; Library from which the data is taken to construct the
+rotamers.</li>
+<li><strong>settings</strong> (<a class="reference internal" href="sidechain_settings.html#promod3.sidechain.RotamerSettings" title="promod3.sidechain.RotamerSettings"><code class="xref py py-class docutils literal"><span class="pre">RotamerSettings</span></code></a>) &#8211; Settings to control parametrization of the single
+particles.</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Phi backbone dihedral angle used as input for backbone
+dependent rotamer library. Default value is a typical
+alpha helical value.</li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Psi backbone dihedral angle used as input for backbone
+dependent rotamer library. Default value is a typical
+alpha helical value.</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all required anchor atoms
+are present in <strong>residue</strong>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+<div class="section" id="the-smallest-building-block-the-particle">
+<h2>The Smallest Building Block - The Particle<a class="headerlink" href="#the-smallest-building-block-the-particle" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.sidechain.Particle">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">Particle</code><span class="sig-paren">(</span><em>pos</em>, <em>radius</em>, <em>r</em>, <em>emin</em>, <em>charge</em>, <em>name</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first last simple">
+<li><strong>pos</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Positions of particle</li>
+<li><strong>radius</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Expected distance, this particle gives
+raise to nonzero interactions. This parameter is used
+for the internal collision detection algorithm.
+If two particles have a nonzero interaction energy up to
+3 Angstrom, their radius should be at least 1.5.</li>
+<li><strong>r</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Distance for pseudo Lennard-Jones interaction term</li>
+<li><strong>emin</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Emin for pseudo Lennard-Jones interaction term</li>
+<li><strong>charge</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Charge of particle, will be used in case H-Bonds</li>
+<li><strong>name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name of particle. This name will be given to an actual
+<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.AtomHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.AtomHandle</span></code></a> if a rotamer gets applied
+to a <a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a></li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.sidechain.Particle.PairwiseEnergy">
+<code class="descname">PairwiseEnergy</code><span class="sig-paren">(</span><em>other</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle.PairwiseEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates the interaction energy between two particles.</p>
+<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>other</strong> (<a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal"><span class="pre">Particle</span></code></a>) &#8211; Interaction partner</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">the interaction energy</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Particle.GetPos">
+<code class="descname">GetPos</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle.GetPos" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The Particle position</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Particle.GetRadius">
+<code class="descname">GetRadius</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle.GetRadius" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The distance of pseudo Lennard-Jones Term</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Particle.GetEMin">
+<code class="descname">GetEMin</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle.GetEMin" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">EMin of pseudo Lennart-Jones Term</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Particle.GetCharge">
+<code class="descname">GetCharge</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle.GetCharge" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Charge of particle used for HBond term</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Particle.GetName">
+<code class="descname">GetName</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle.GetName" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Name of particle</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Particle.IsHBondDonor">
+<code class="descname">IsHBondDonor</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle.IsHBondDonor" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Whether particle has defined polar direction</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Particle.IsHBondAcceptor">
+<code class="descname">IsHBondAcceptor</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle.IsHBondAcceptor" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Whether particle has defined lone pairs</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Particle.AddLonePair">
+<code class="descname">AddLonePair</code><span class="sig-paren">(</span><em>lone_pair</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle.AddLonePair" title="Permalink to this definition">¶</a></dt>
+<dd><p>Adds lone pair, that gets evaluated in the HBond term.</p>
+<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>lone_pair</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Lone pair direction</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.Particle.SetPolarDirection">
+<code class="descname">SetPolarDirection</code><span class="sig-paren">(</span><em>polar_direction</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.Particle.SetPolarDirection" title="Permalink to this definition">¶</a></dt>
+<dd><p>Sets the polar direction of particle. In case of backbone
+hydrogen, this would be the direction of backbone-N to backbone-H.</p>
+<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>polar_direction</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/geom/vec/#ost.geom.Vec3" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.geom.Vec3</span></code></a>) &#8211; Polar direction of particle</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="id1">
+<h2>Rotamers<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.sidechain.RRMRotamer">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">RRMRotamer</code><a class="headerlink" href="#promod3.sidechain.RRMRotamer" title="Permalink to this definition">¶</a></dt>
+<dd><p>The RRMRotamer represents a rotamer of the so called rigid rotamer model.
+The class has no constructor exported to python, the rotamer is expected to
+be constructed with the convenient functions provided by PROMOD3.</p>
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.__getitem__">
+<code class="descname">__getitem__</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.__getitem__" title="Permalink to this definition">¶</a></dt>
+<dd><p>Access particle at specified index</p>
+<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>index</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; Index of particle of interest</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal"><span class="pre">Particle</span></code></a> at specified index</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.__len__">
+<code class="descname">__len__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.__len__" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Number of particles the rotamer contains</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.ApplyOnResidue">
+<code class="descname">ApplyOnResidue</code><span class="sig-paren">(</span><em>res</em><span class="optional">[</span>, <em>consider_hydrogens=False</em>, <em>new_res_name=&quot;&quot;</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.ApplyOnResidue" title="Permalink to this definition">¶</a></dt>
+<dd><p>Strips all sidechain atom positions of given residue and reconstructs the
+full sidechain given the positions of the particles in the rotamer.</p>
+<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"><ul class="first simple">
+<li><strong>res</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue to be reconstructed</li>
+<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether polar hydrogens should be added to
+the sidechain</li>
+<li><strong>new_res_name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; New name of residue. Nothing happens in case of the
+default value (&#8220;&#8221;)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all required backbone atoms
+are present in <strong>res</strong></p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.GetTransformedCopy">
+<code class="descname">GetTransformedCopy</code><span class="sig-paren">(</span><em>transform</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.GetTransformedCopy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms all particle positions including their lone pair and polar
+directions.</p>
+<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>transform</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Transform</span></code>) &#8211; Transformation to be applied</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a> with all particles transformed</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.CalculateInternalEnergy">
+<code class="descname">CalculateInternalEnergy</code><span class="sig-paren">(</span><em>normalization_factor</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.CalculateInternalEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and sets the rotamer internal energy of the form:
+-prefactor*log(probability/normalization_factor)</p>
+<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>normalization_factor</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Normalization factor for internal probability</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.GetInternalEnergy">
+<code class="descname">GetInternalEnergy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.GetInternalEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Internal Energy if calculated, 0.0 otherwise</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.GetInternalEnergyPrefactor">
+<code class="descname">GetInternalEnergyPrefactor</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.GetInternalEnergyPrefactor" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Prefactor used in internal energy calculation</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.GetFrameEnergy">
+<code class="descname">GetFrameEnergy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.GetFrameEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns previously calculated frame energy, this energy has to be calculated
+using a <a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal"><span class="pre">Frame</span></code></a>.</p>
+<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">Returns:</th><td class="field-body">Frame energy if calculated, 0.0 otherwise</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.GetSelfEnergy">
+<code class="descname">GetSelfEnergy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.GetSelfEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Self energy consisting of internal plus frame energy</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.GetProbability">
+<code class="descname">GetProbability</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.GetProbability" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">probability of this rotamer</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.SetInternalEnergy">
+<code class="descname">SetInternalEnergy</code><span class="sig-paren">(</span><em>energy</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.SetInternalEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Internal energy to be set</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.SetInternalEnergyPrefactor">
+<code class="descname">SetInternalEnergyPrefactor</code><span class="sig-paren">(</span><em>prefactor</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.SetInternalEnergyPrefactor" title="Permalink to this definition">¶</a></dt>
+<dd><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>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Internal energy prefactor to be set</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.SetFrameEnergy">
+<code class="descname">SetFrameEnergy</code><span class="sig-paren">(</span><em>energy</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.SetFrameEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Frame energy to be set</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamer.SetProbability">
+<code class="descname">SetProbability</code><span class="sig-paren">(</span><em>probability</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamer.SetProbability" title="Permalink to this definition">¶</a></dt>
+<dd><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>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Internal probability to be set</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.sidechain.FRMRotamer">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">FRMRotamer</code><a class="headerlink" href="#promod3.sidechain.FRMRotamer" title="Permalink to this definition">¶</a></dt>
+<dd><p>The FRMRotamer represents a rotamer of the so called flexible rotamer model.
+The class has no constructor exported to python, the rotamer is expected to
+be constructed with the convenient functions provided by PROMOD3.
+The flexible rotamer contains several so called subrotamers. The internal data
+layout is a list of particles and a list of subrotamer definitions in form
+of particle indices.</p>
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.__getitem__">
+<code class="descname">__getitem__</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.__getitem__" title="Permalink to this definition">¶</a></dt>
+<dd><p>Access particle at specified index</p>
+<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>index</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; Index of particle of interest</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.Particle" title="promod3.sidechain.Particle"><code class="xref py py-class docutils literal"><span class="pre">Particle</span></code></a> at specified index</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.__len__">
+<code class="descname">__len__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.__len__" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Number of particles the rotamer contains</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.GetNumSubrotamers">
+<code class="descname">GetNumSubrotamers</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.GetNumSubrotamers" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Number of subrotamers</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.GetSubrotamerDefinition">
+<code class="descname">GetSubrotamerDefinition</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.GetSubrotamerDefinition" title="Permalink to this definition">¶</a></dt>
+<dd><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>index</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; Index of subrotamer</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of particle indices belonging to this
+particular subrotamer</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.GetSubrotamerAssociations">
+<code class="descname">GetSubrotamerAssociations</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.GetSubrotamerAssociations" title="Permalink to this definition">¶</a></dt>
+<dd><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>index</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; Index of particle</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of subrotamer indices this particle is
+associated with</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.ApplyOnResidue">
+<code class="descname">ApplyOnResidue</code><span class="sig-paren">(</span><em>res</em><span class="optional">[</span>, <em>consider_hydrogens=False</em>, <em>new_res_name=&quot;&quot;</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.ApplyOnResidue" title="Permalink to this definition">¶</a></dt>
+<dd><p>Strips all sidechain atom positions of given residue and reconstructs the
+full sidechain given the positions of the particles in the rotamer.</p>
+<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"><ul class="first simple">
+<li><strong>res</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue to be reconstructed</li>
+<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether polar hydrogens should be added to
+the sidechain</li>
+<li><strong>new_res_name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; New name of residue. Nothing happens in case of the
+default value (&#8220;&#8221;)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all required backbone atoms
+are present in <strong>res</strong></p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.GetTransformedCopy">
+<code class="descname">GetTransformedCopy</code><span class="sig-paren">(</span><em>transform</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.GetTransformedCopy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Transforms all particle positions including their lone pair and polar
+directions.</p>
+<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>transform</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.geom.Transform</span></code>) &#8211; Transformation to be applied</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a> with all particles transformed</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.CalculateInternalEnergy">
+<code class="descname">CalculateInternalEnergy</code><span class="sig-paren">(</span><em>normalization_factor</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.CalculateInternalEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates and sets the rotamer internal energy of the form:
+-prefactor*log(probability/normalization_factor)</p>
+<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>normalization_factor</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Normalization factor for internal probability</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.GetInternalEnergy">
+<code class="descname">GetInternalEnergy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.GetInternalEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Internal Energy if calculated, 0.0 otherwise</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.GetInternalEnergyPrefactor">
+<code class="descname">GetInternalEnergyPrefactor</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.GetInternalEnergyPrefactor" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Prefactor used in internal energy calculation</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.GetFrameEnergy">
+<code class="descname">GetFrameEnergy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.GetFrameEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns previously calculated frame energy of the full FRMRotamer, this
+energy has to be calculated using a <a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal"><span class="pre">Frame</span></code></a>.</p>
+<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">Returns:</th><td class="field-body">Frame energy if calculated, 0.0 otherwise</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">GetFrameEnergy</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span></dt>
+<dd><p>Returns previously calculated frame energy of the subrotamer specified by
+<strong>index</strong>, this energy has to be calculated using a <a class="reference internal" href="frame.html#promod3.sidechain.Frame" title="promod3.sidechain.Frame"><code class="xref py py-class docutils literal"><span class="pre">Frame</span></code></a>.</p>
+<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>index</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; Index of subrotamer you want the frame energy from</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Frame energy if calculated, 0.0 otherwise</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if index is invalid</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.GetSelfEnergy">
+<code class="descname">GetSelfEnergy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.GetSelfEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Self energy consisting of internal plus frame energy</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.GetTemperature">
+<code class="descname">GetTemperature</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.GetTemperature" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">The temperature factor for this rotamer</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.GetProbability">
+<code class="descname">GetProbability</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.GetProbability" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Probability of this rotamer</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.SetInternalEnergy">
+<code class="descname">SetInternalEnergy</code><span class="sig-paren">(</span><em>energy</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.SetInternalEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Internal energy to be set</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.SetInternalEnergyPrefactor">
+<code class="descname">SetInternalEnergyPrefactor</code><span class="sig-paren">(</span><em>prefactor</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.SetInternalEnergyPrefactor" title="Permalink to this definition">¶</a></dt>
+<dd><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>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Internal energy prefactor to be set</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.SetFrameEnergy">
+<code class="descname">SetFrameEnergy</code><span class="sig-paren">(</span><em>energy</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.SetFrameEnergy" title="Permalink to this definition">¶</a></dt>
+<dd><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>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Frame energy for full rotamer to be set to be set</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">SetFrameEnergy</code><span class="sig-paren">(</span><em>energy</em>, <em>index</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first last simple">
+<li><strong>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Frame energy for single  subrotamer to be set to be set</li>
+<li><strong>index</strong> &#8211; Index of subrotamer</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.SetTemperature">
+<code class="descname">SetTemperature</code><span class="sig-paren">(</span><em>temperature</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.SetTemperature" title="Permalink to this definition">¶</a></dt>
+<dd><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>temperature</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Temperature factor for this rotamer</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamer.SetProbability">
+<code class="descname">SetProbability</code><span class="sig-paren">(</span><em>probability</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamer.SetProbability" title="Permalink to this definition">¶</a></dt>
+<dd><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>energy</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Internal probability to be set</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="rotamer-groups">
+<h2>Rotamer Groups<a class="headerlink" href="#rotamer-groups" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="promod3.sidechain.RRMRotamerGroup">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">RRMRotamerGroup</code><span class="sig-paren">(</span><em>rotamers</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamerGroup" title="Permalink to this definition">¶</a></dt>
+<dd><p>The RRMRotamerGroup groups several <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a> objects for the same
+residue position. It can either be constructed by providing a list of
+<a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a> objects or by convenience functions provided by PROMOD3.</p>
+<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>rotamers</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; A list of <a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a> objects</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if provided <strong>rotamers</strong> is empty</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamerGroup.__len__">
+<code class="descname">__len__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamerGroup.__len__" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Number of rotamers in group</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamerGroup.__getitem__">
+<code class="descname">__getitem__</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamerGroup.__getitem__" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.RRMRotamer" title="promod3.sidechain.RRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamer</span></code></a> at given <strong>index</strong></td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if <strong>index</strong> is invalid</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamerGroup.ApplyOneResidue">
+<code class="descname">ApplyOneResidue</code><span class="sig-paren">(</span><em>index</em>, <em>res</em><span class="optional">[</span>, <em>consider_hydrogens=False</em>, <em>new_res_name=&quot;&quot;</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamerGroup.ApplyOneResidue" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calls ApplyOnResidue function on rotamer at position <strong>index</strong></p>
+<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"><ul class="first simple">
+<li><strong>index</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; Rotamer index</li>
+<li><strong>res</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue to be reconstructed</li>
+<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether polar hydrogens should be added to
+the sidechain</li>
+<li><strong>new_res_name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; New name of residue. Nothing happens in case of the
+default value (&#8220;&#8221;)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all required backbone atoms
+are present in <strong>res</strong> or when <strong>index</strong> is invalid</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RRMRotamerGroup.Merge">
+<code class="descname">Merge</code><span class="sig-paren">(</span><em>other</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RRMRotamerGroup.Merge" title="Permalink to this definition">¶</a></dt>
+<dd><p>Adds all rotamers in <strong>other</strong> to current <a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamerGroup</span></code></a></p>
+<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>other</strong> (<a class="reference internal" href="#promod3.sidechain.RRMRotamerGroup" title="promod3.sidechain.RRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">RRMRotamerGroup</span></code></a>) &#8211; RotamerGroup to be merged in</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="promod3.sidechain.FRMRotamerGroup">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">FRMRotamerGroup</code><span class="sig-paren">(</span><em>rotamers</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamerGroup" title="Permalink to this definition">¶</a></dt>
+<dd><p>The FRMRotamerGroup groups several <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a> objects for the same
+residue position. It can either be constructed by providing a list of
+<a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a> objects or by convenience functions provided by PROMOD3.</p>
+<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>rotamers</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a>) &#8211; A list of <a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a> objects</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if provided <strong>rotamers</strong> is empty</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamerGroup.__len__">
+<code class="descname">__len__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamerGroup.__len__" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body">Number of rotamers in group</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamerGroup.__getitem__">
+<code class="descname">__getitem__</code><span class="sig-paren">(</span><em>index</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamerGroup.__getitem__" title="Permalink to this definition">¶</a></dt>
+<dd><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">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.FRMRotamer" title="promod3.sidechain.FRMRotamer"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamer</span></code></a> at given <strong>index</strong></td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if <strong>index</strong> is invalid</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamerGroup.ApplyOneResidue">
+<code class="descname">ApplyOneResidue</code><span class="sig-paren">(</span><em>index</em>, <em>res</em><span class="optional">[</span>, <em>consider_hydrogens=False</em>, <em>new_res_name=&quot;&quot;</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamerGroup.ApplyOneResidue" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calls ApplyOnResidue function on rotamer at position <strong>index</strong></p>
+<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"><ul class="first simple">
+<li><strong>index</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; Rotamer index</li>
+<li><strong>res</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Residue to be reconstructed</li>
+<li><strong>consider_hydrogens</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Flag, whether polar hydrogens should be added to
+the sidechain</li>
+<li><strong>new_res_name</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; New name of residue. Nothing happens in case of the
+default value (&#8220;&#8221;)</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all required backbone atoms
+are present in <strong>res</strong> or when <strong>index</strong> is invalid</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamerGroup.Merge">
+<code class="descname">Merge</code><span class="sig-paren">(</span><em>other</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamerGroup.Merge" title="Permalink to this definition">¶</a></dt>
+<dd><p>Adds all rotamers in <strong>other</strong> to current <a class="reference internal" href="#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamerGroup</span></code></a></p>
+<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>other</strong> (<a class="reference internal" href="#promod3.sidechain.FRMRotamerGroup" title="promod3.sidechain.FRMRotamerGroup"><code class="xref py py-class docutils literal"><span class="pre">FRMRotamerGroup</span></code></a>) &#8211; RotamerGroup to be merged in</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamerGroup.CalculateInternalEnergies">
+<code class="descname">CalculateInternalEnergies</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamerGroup.CalculateInternalEnergies" title="Permalink to this definition">¶</a></dt>
+<dd><p>Calculates internal energies of all rotamers in group</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.FRMRotamerGroup.ApplySelfEnergyThres">
+<code class="descname">ApplySelfEnergyThres</code><span class="sig-paren">(</span><span class="optional">[</span><em>thresh=30</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.FRMRotamerGroup.ApplySelfEnergyThres" title="Permalink to this definition">¶</a></dt>
+<dd><p>Searches rotamer with lowest self energy <strong>l_e</strong> and deletes all
+rotamers with <strong>self_energy</strong> &gt; <strong>l_e</strong> + <strong>thresh</strong></p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Rotamers</a><ul>
+<li><a class="reference internal" href="#convenient-functions-for-constructing-rotamers">Convenient functions for constructing rotamers</a></li>
+<li><a class="reference internal" href="#convenient-functions-for-constructing-rotamer-groups">Convenient functions for constructing rotamer groups</a></li>
+<li><a class="reference internal" href="#the-smallest-building-block-the-particle">The Smallest Building Block - The Particle</a></li>
+<li><a class="reference internal" href="#id1">Rotamers</a></li>
+<li><a class="reference internal" href="#rotamer-groups">Rotamer Groups</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="rotamer_id.html"
+                        title="previous chapter">RotamerID</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="frame.html"
+                        title="next chapter">Frame</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/sidechain/rotamer.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/sidechain/rotamer.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/sidechain/rotamer_id.html b/doc/html/sidechain/rotamer_id.html
new file mode 100644
index 0000000000000000000000000000000000000000..8b7c17f3cc14a148f541293afb6611d67cf85778
--- /dev/null
+++ b/doc/html/sidechain/rotamer_id.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>RotamerID &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" />
+    <link rel="next" title="Rotamers" href="rotamer.html" />
+    <link rel="prev" title="sidechain - Sidechain Modelling" href="index.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="rotamer.html" title="Rotamers"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="sidechain - Sidechain Modelling"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="rotamerid">
+<h1>RotamerID<a class="headerlink" href="#rotamerid" title="Permalink to this headline">¶</a></h1>
+<p>The sidechain module has its own definition of amino acids to satisfy custom
+requirements for the implemented sidechain construction algorithms.
+As an example there are histidine in two possible protonation states,
+that affect the hbond term or different versions of proline/cysteine.</p>
+<div class="section" id="the-rotamerid">
+<h2>The RotamerID<a class="headerlink" href="#the-rotamerid" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>ARG - Arginine</li>
+<li>ASN - Asparagine</li>
+<li>ASP - Aspartate</li>
+<li>GLN - Glutamine</li>
+<li>GLU - Glutamate</li>
+<li>LYS - Lysine</li>
+<li>SER - Serine</li>
+<li>CYS - Cystein</li>
+<li>CYH - &#8220;free&#8221; Cystein</li>
+<li>CYD - disulfid bonded Cystein</li>
+<li>MET - Methionine</li>
+<li>TRP - Tryptophane</li>
+<li>TYR - Tyrosine</li>
+<li>THR - Threonine</li>
+<li>VAL - Valine</li>
+<li>ILE - Isoleucine</li>
+<li>LEU - Leucine</li>
+<li>PRO - Proline</li>
+<li>CPR - cis-Proline</li>
+<li>TPR - trans-Proline</li>
+<li>HIS - Histidine</li>
+<li>HSD - d-protonated Histidine</li>
+<li>HSE - e-protonated Histidine</li>
+<li>PHE - Phenylalanine</li>
+<li>GLY - Glycine</li>
+<li>ALA - Alanine</li>
+<li>XXX - Invalid</li>
+</ul>
+</div>
+<div class="section" id="how-can-i-get-an-id">
+<h2>How can I get an ID?<a class="headerlink" href="#how-can-i-get-an-id" title="Permalink to this headline">¶</a></h2>
+<p>The RotamerID enum can directly be accessed from Python. Two convenient
+functions exist to get RotamerIDs from the ost.conop.AminoAcid enum
+or from amino acid three letter codes.</p>
+<dl class="method">
+<dt id="promod3.sidechain.TLCToRotID">
+<code class="descclassname">promod3.sidechain.</code><code class="descname">TLCToRotID</code><span class="sig-paren">(</span><em>tlc</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.TLCToRotID" title="Permalink to this definition">¶</a></dt>
+<dd><p>Directly translates the three letter code into a RotamerID. Following
+exactly the naming convention defined above.</p>
+<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>tlc</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Three letter code of amino acid</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>, XXX if <strong>tlc</strong> cannot be recoginzed.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.AAToRotID">
+<code class="descclassname">promod3.sidechain.</code><code class="descname">AAToRotID</code><span class="sig-paren">(</span><em>aa</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.AAToRotID" title="Permalink to this definition">¶</a></dt>
+<dd><p>Directly translates <strong>aa</strong> into a RotamerID. Note, that it is not possible
+to generate special IDs this way
+(e.g. HSD, HSE or the special prolines/cysteins) since they&#8217;re simply not
+defined in <code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code></p>
+<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>aa</strong> (<code class="xref py py-class docutils literal"><span class="pre">ost.conop.AminoAcid</span></code>) &#8211; AA enum of amino acid</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>, XXX if <strong>aa</strong> is invalid.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">RotamerID</a><ul>
+<li><a class="reference internal" href="#the-rotamerid">The RotamerID</a></li>
+<li><a class="reference internal" href="#how-can-i-get-an-id">How can I get an ID?</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="index.html"
+                        title="previous chapter"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="rotamer.html"
+                        title="next chapter">Rotamers</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/sidechain/rotamer_id.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/sidechain/rotamer_id.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/sidechain/rotamer_lib.html b/doc/html/sidechain/rotamer_lib.html
new file mode 100644
index 0000000000000000000000000000000000000000..7741227e822c35605c02e51e65a3cbce32ca08b1
--- /dev/null
+++ b/doc/html/sidechain/rotamer_lib.html
@@ -0,0 +1,556 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Rotamer Library &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" />
+    <link rel="next" title="Coming to a solution" href="graph.html" />
+    <link rel="prev" title="Frame" href="frame.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="graph.html" title="Coming to a solution"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="frame.html" title="Frame"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="rotamer-library">
+<h1>Rotamer Library<a class="headerlink" href="#rotamer-library" title="Permalink to this headline">¶</a></h1>
+<p>With angles and bonds being rather rigid, the conformation of an amino acid
+sidechain can completely be described in terms of dihedral angles. Preferred
+combinations of such dihedral angles are a result of steric properties and
+can be gathered in rotamer libraries. Different libraries exist in the field
+and their main difference is, whether the provided sidechain conformations
+are dependent on their backbone or not. PROMOD3 provides you with a
+<a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLib</span></code></a> organizing rotamers for the different aminoacids
+in equidistant phi/psi bins.</p>
+<div class="section" id="the-backbone-dependent-rotamer-library">
+<h2>The Backbone Dependent Rotamer Library<a class="headerlink" href="#the-backbone-dependent-rotamer-library" title="Permalink to this headline">¶</a></h2>
+<p>The PROMOD3 <a class="reference internal" href="#promod3.sidechain.BBDepRotamerLib" title="promod3.sidechain.BBDepRotamerLib"><code class="xref py py-class docutils literal"><span class="pre">BBDepRotamerLib</span></code></a> is a container for <a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a>
+and is optimized for fast writing/loading from/to disk.
+Once initialized, the library is in a dynamic mode where
+rotamers can be added. No rotamers can be read at this stage. As soon as
+all required rotamers are added, the library can be made static. This is the
+mode you can get the rotamers out of it or dump it to disk.</p>
+<dl class="class">
+<dt id="promod3.sidechain.BBDepRotamerLib">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">BBDepRotamerLib</code><span class="sig-paren">(</span><em>phi_bins</em>, <em>psi_bins</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.BBDepRotamerLib" title="Permalink to this definition">¶</a></dt>
+<dd><p>Backbone dependent rotamer library</p>
+<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"><ul class="first last simple">
+<li><strong>phi_bins</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; number of bins for phi backbone dihedral</li>
+<li><strong>psi_bins</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; number of bins for psi backbone dihedral</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<dl class="method">
+<dt id="promod3.sidechain.BBDepRotamerLib.Save">
+<code class="descname">Save</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.BBDepRotamerLib.Save" title="Permalink to this definition">¶</a></dt>
+<dd><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>filename</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name of file, the library will be dumped into</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.BBDepRotamerLib.Load">
+<code class="descname">Load</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.BBDepRotamerLib.Load" title="Permalink to this definition">¶</a></dt>
+<dd><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>filename</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#str" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">str</span></code></a>) &#8211; Name of file, the library will be loaded from</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if file doesn&#8217;t exist</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.BBDepRotamerLib.AddRotamer">
+<code class="descname">AddRotamer</code><span class="sig-paren">(</span><em>id</em>, <em>r1</em>, <em>r2</em>, <em>r3</em>, <em>r4</em>, <em>phi_bin</em>, <em>psi_bin</em>, <em>rotamer</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.BBDepRotamerLib.AddRotamer" title="Permalink to this definition">¶</a></dt>
+<dd><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"><ul class="first simple">
+<li><strong>id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Identity of rotamer to be added</li>
+<li><strong>r1</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; Configuration of chi1</li>
+<li><strong>r2</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; Configuration of chi2</li>
+<li><strong>r3</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; Configuration of chi3</li>
+<li><strong>r4</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; Configuration of chi4</li>
+<li><strong>phi_bin</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; Phi backbone dihedral description</li>
+<li><strong>psi_bin</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; Psi backbone dihedral description</li>
+<li><strong>rotamer</strong> (<a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a>) &#8211; the rotamer to be added</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if an invalid backbone angle bin
+is given or when the library is already static.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.BBDepRotamerLib.QueryLib">
+<code class="descname">QueryLib</code><span class="sig-paren">(</span><em>id</em>, <em>phi</em>, <em>psi</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.BBDepRotamerLib.QueryLib" title="Permalink to this definition">¶</a></dt>
+<dd><p>The returned rotamers are either directly returned in the form as they are
+added to the library or can be interpolated.
+In the first option, <em>phi</em> and <em>psi</em> simply get transformed to the
+according bin using following formalism: bin = int((angle + pi)/bin_size).
+In case of interpolation, the chi angles and the according standard
+deviations of the rotamers get bilinearly interpolated using the
+corresponding rotamers with same configuration from the neighbouring bins.
+This behaviour can be controlled with the SetInterpolate function.
+The query function follows following strategies in case of
+special <em>id</em> requests.</p>
+<ul class="simple">
+<li>if id = HSD (d-protonated HIS) try to find HSD, fallback to HIS in case of failure</li>
+<li>if id = HSE (e-protonated HIS) try to find HSE, fallback to HIS in case of failure</li>
+<li>if id = CYH (&#8220;free&#8221; CYS) try to find CYH, fallback to CYS in case of failure</li>
+<li>if id = CYD (&#8220;disulfid&#8221; CYS) try to find CYD, fallback to CYS in case of failure</li>
+<li>if id = CPR (cis-PRO) try to find CPR, fallback to PRO in case of failure</li>
+<li>if id = TPR (trans-PRO) try to find TPR, fallback to PRO in case of failure</li>
+</ul>
+<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"><ul class="first simple">
+<li><strong>id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Identity of rotamer of interest</li>
+<li><strong>phi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Phi backbone dihedral angle in range [-pi,pi[</li>
+<li><strong>psi</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Psi backbone dihedral angle in range [-pi,pi[</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#list" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">list</span></code></a> of <a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a> of nonzero
+probability for given phi/psi pair</p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if no entries for <em>id</em> can be
+found</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.BBDepRotamerLib.MakeStatic">
+<code class="descname">MakeStatic</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.BBDepRotamerLib.MakeStatic" title="Permalink to this definition">¶</a></dt>
+<dd><p>Once all rotamers are added, the library can be made static to become readable
+and ready for io. Several things get checked during this process</p>
+<ul class="simple">
+<li>For every phi/psi bin combination of a particular <code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>,
+the same number of rotamers must have been added</li>
+<li>All configuration combinations of the added rotamers in one phi/psi bin
+of a particular <code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code> must be unique</li>
+<li>The configuration combinations of a particular <code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code> must
+be consistent across all phi/psi bins</li>
+</ul>
+<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">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if one of the points above is
+not fulfilled</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.BBDepRotamerLib.SetInterpolate">
+<code class="descname">SetInterpolate</code><span class="sig-paren">(</span><em>interpolate</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.BBDepRotamerLib.SetInterpolate" title="Permalink to this definition">¶</a></dt>
+<dd><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>interpolate</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a>) &#8211; Controls behaviour when QueryLib function gets called</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="the-library-entry-type">
+<h2>The Library Entry Type<a class="headerlink" href="#the-library-entry-type" title="Permalink to this headline">¶</a></h2>
+<p>The entries for the rotamer libraries provide a basic container for rotamer
+dihedral angles and their corresponding standard deviations. They can be
+constructed by directly providing the values, but also by some static
+convenience functions. For analytical purposes they provide some comparison
+functionalities.</p>
+<dl class="class">
+<dt id="promod3.sidechain.RotamerLibEntry">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">RotamerLibEntry</code><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="class">
+<dt>
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">RotamerLibEntry</code><span class="sig-paren">(</span><em>p</em>, <em>chi1</em>, <em>chi2</em>, <em>chi3</em>, <em>chi4</em>, <em>sig1</em>, <em>sig2</em>, <em>sig3</em>, <em>sig4</em><span class="sig-paren">)</span></dt>
+<dd><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"><ul class="first last simple">
+<li><strong>p</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Probability of rotamer</li>
+<li><strong>chi1</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Chi1 dihedral in range [-pi,pi[</li>
+<li><strong>chi2</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Chi2 dihedral in range [-pi,pi[</li>
+<li><strong>chi3</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Chi3 dihedral in range [-pi,pi[</li>
+<li><strong>chi4</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Chi4 dihedral in range [-pi,pi[</li>
+<li><strong>sig1</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation for Chi1 dihedral</li>
+<li><strong>sig2</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation for Chi2 dihedral</li>
+<li><strong>sig3</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation for Chi3 dihedral</li>
+<li><strong>sig4</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; Standard deviation for Chi4 dihedral</li>
+</ul>
+</td>
+</tr>
+</tbody>
+</table>
+<p><strong>Attributes:</strong></p>
+<dl class="attribute">
+<dt id="promod3.sidechain.RotamerLibEntry.probability">
+<code class="descname">probability</code><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.probability" title="Permalink to this definition">¶</a></dt>
+<dd><p>probability of rotamer</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.sidechain.RotamerLibEntry.chi1">
+<code class="descname">chi1</code><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.chi1" title="Permalink to this definition">¶</a></dt>
+<dd><p>Chi1 dihedral in range [-pi,pi[, NaN if not defined</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.sidechain.RotamerLibEntry.chi2">
+<code class="descname">chi2</code><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.chi2" title="Permalink to this definition">¶</a></dt>
+<dd><p>Chi2 dihedral in range [-pi,pi[, NaN if not defined</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.sidechain.RotamerLibEntry.chi3">
+<code class="descname">chi3</code><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.chi3" title="Permalink to this definition">¶</a></dt>
+<dd><p>Chi3 dihedral in range [-pi,pi[, NaN if not defined</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.sidechain.RotamerLibEntry.chi4">
+<code class="descname">chi4</code><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.chi4" title="Permalink to this definition">¶</a></dt>
+<dd><p>Chi4 dihedral in range [-pi,pi[, NaN if not defined</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.sidechain.RotamerLibEntry.sig1">
+<code class="descname">sig1</code><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.sig1" title="Permalink to this definition">¶</a></dt>
+<dd><p>Standard deviation of Chi1 Dihedral, NaN if not defined</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.sidechain.RotamerLibEntry.sig2">
+<code class="descname">sig2</code><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.sig2" title="Permalink to this definition">¶</a></dt>
+<dd><p>Standard deviation of Chi2 Dihedral, NaN if not defined</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.sidechain.RotamerLibEntry.sig3">
+<code class="descname">sig3</code><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.sig3" title="Permalink to this definition">¶</a></dt>
+<dd><p>Standard deviation of Chi3 Dihedral, NaN if not defined</p>
+</dd></dl>
+
+<dl class="attribute">
+<dt id="promod3.sidechain.RotamerLibEntry.sig4">
+<code class="descname">sig4</code><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.sig4" title="Permalink to this definition">¶</a></dt>
+<dd><p>Standard deviation of Chi4 Dihedral, NaN if not defined</p>
+</dd></dl>
+
+<dl class="staticmethod">
+<dt id="promod3.sidechain.RotamerLibEntry.FromResidue">
+<em class="property">static </em><code class="descname">FromResidue</code><span class="sig-paren">(</span><em>res</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.FromResidue" title="Permalink to this definition">¶</a></dt>
+<dd><p>Creates a <a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a> from the given <em>res</em>.
+The function tries to automatically identify the <code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code> based
+on the residue name. The probability gets set to zero and the standard
+deviations to 0. All not required chi angles with their corresponding
+standard deviations are NaN.</p>
+<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>res</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Source of dihedral angles</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a></td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if residue name cannot be
+translated to <code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code> or when not all
+required atoms are present in <em>res</em>.</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="staticmethod">
+<dt>
+<em class="property">static </em><code class="descname">FromResidue</code><span class="sig-paren">(</span><em>res</em>, <em>id</em><span class="sig-paren">)</span></dt>
+<dd><p>Creates a <a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a> from the given <em>res</em>.
+The probability gets set to zero and the standard deviations to 0.
+All not required chi angles with their corresponding standard deviations
+are NaN.</p>
+<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"><ul class="first simple">
+<li><strong>res</strong> (<a class="reference external" href="http://www.openstructure.org/docs/1.3/mol/base/entity/#ost.mol.ResidueHandle" title="(in OpenStructure v1.3.3)"><code class="xref py py-class docutils literal"><span class="pre">ost.mol.ResidueHandle</span></code></a>) &#8211; Source of dihedral angles</li>
+<li><strong>id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; The identity of the returned <a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a></li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a></p>
+</td>
+</tr>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-class docutils literal"><span class="pre">RuntimeError</span></code> if not all
+required atoms are present in <em>res</em>.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RotamerLibEntry.IsSimilar">
+<code class="descname">IsSimilar</code><span class="sig-paren">(</span><em>other</em>, <em>thresh</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.IsSimilar" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compares two RotamerLibEntries for their similarity in dihedral angles.
+The function goes from chi1 to chi4 and checks one after the other
+for similarity. The function doesn&#8217;t know the identity of the entries
+and can therefore not specifically treat symmetric/ambiguous rotamers
+(TYR,VAL,PHE,ASP,GLU)</p>
+<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"><ul class="first simple">
+<li><strong>other</strong> (<a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a>) &#8211; The Entry you want to compare with</li>
+<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The max difference between two dihedrals to be
+considered similar</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> Whether the two entries have the same
+amount of defined chi angles (not NaN) and whether
+they are within the specified threshold.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">IsSimilar</code><span class="sig-paren">(</span><em>other</em>, <em>thresh</em>, <em>id</em><span class="sig-paren">)</span></dt>
+<dd><p>Compares two RotamerLibEntries for their similarity in dihedral angles.
+The function goes from chi1 to chi4 and checks one after the other
+for similarity. Sidechains with ambigous naming (TYR,VAL,PHE,ASP,GLU)
+get treated specifically. E.g. in case of aspartate, the chi2 is checked
+for its actual value, but also for its flipped state.</p>
+<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"><ul class="first simple">
+<li><strong>other</strong> (<a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a>) &#8211; The Entry you want to compare with</li>
+<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The max difference between two dihedrals to be
+considered similar</li>
+<li><strong>id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Identity of the entries to be compared</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> Whether the two entries have the same
+amount of defined chi angles (not NaN) and whether
+they are within the specified threshold.</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt id="promod3.sidechain.RotamerLibEntry.SimilarDihedral">
+<code class="descname">SimilarDihedral</code><span class="sig-paren">(</span><em>other</em>, <em>dihedral_idx</em>, <em>thresh</em><span class="sig-paren">)</span><a class="headerlink" href="#promod3.sidechain.RotamerLibEntry.SimilarDihedral" title="Permalink to this definition">¶</a></dt>
+<dd><p>Compares a specific dihedral angle.
+The function doesn&#8217;t know the identity of the entries and can therefore
+not specifically treat symmetric/ambiguous rotamers
+(TYR,VAL,PHE,ASP,GLU)</p>
+<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"><ul class="first simple">
+<li><strong>other</strong> (<a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a>) &#8211; The Entry you want to compare with</li>
+<li><strong>dihedral_idx</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; Index of the dihedral to be checked
+(0 for chi1, 3 for chi4)</li>
+<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The max difference between two dihedrals to be
+considered similar</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> Whether both dihedrals are defined
+(not NaN) and within the specified threshold</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
+<dt>
+<code class="descname">SimilarDihedral</code><span class="sig-paren">(</span><em>other</em>, <em>dihedral_idx</em>, <em>thresh</em>, <em>id</em><span class="sig-paren">)</span></dt>
+<dd><p>Compares a specific dihedral angle.
+Sidechains with ambigous naming (TYR,VAL,PHE,ASP,GLU)
+get treated specifically. E.g. in case of aspartate, the chi2 is checked
+for its actual value, but also for its flipped state.</p>
+<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"><ul class="first simple">
+<li><strong>other</strong> (<a class="reference internal" href="#promod3.sidechain.RotamerLibEntry" title="promod3.sidechain.RotamerLibEntry"><code class="xref py py-class docutils literal"><span class="pre">RotamerLibEntry</span></code></a>) &#8211; The Entry you want to compare with</li>
+<li><strong>dihedral_idx</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; Index of the dihedral to be checked
+(0 for chi1, 3 for chi4)</li>
+<li><strong>thresh</strong> (<a class="reference external" href="https://docs.python.org/2.7/library/functions.html#float" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a>) &#8211; The max difference between two dihedrals to be
+considered similar</li>
+<li><strong>id</strong> (<code class="xref py py-class docutils literal"><span class="pre">RotamerID</span></code>) &#8211; Identity of the entries to be compared</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/2.7/library/functions.html#bool" title="(in Python v2.7)"><code class="xref py py-class docutils literal"><span class="pre">bool</span></code></a> Whether both dihedrals are defined
+(not NaN) and within the specified threshold</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="../index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Rotamer Library</a><ul>
+<li><a class="reference internal" href="#the-backbone-dependent-rotamer-library">The Backbone Dependent Rotamer Library</a></li>
+<li><a class="reference internal" href="#the-library-entry-type">The Library Entry Type</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="frame.html"
+                        title="previous chapter">Frame</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="graph.html"
+                        title="next chapter">Coming to a solution</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/sidechain/rotamer_lib.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/sidechain/rotamer_lib.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/html/sidechain/sidechain_settings.html b/doc/html/sidechain/sidechain_settings.html
new file mode 100644
index 0000000000000000000000000000000000000000..bab6fc96d353f6b766eff78d6268193e9ea7c042
--- /dev/null
+++ b/doc/html/sidechain/sidechain_settings.html
@@ -0,0 +1,597 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Rotamer Settings &mdash; ProMod3 0 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '0',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <link rel="top" title="ProMod3 0 documentation" href="../index.html" />
+    <link rel="up" title="sidechain - Sidechain Modelling" href="index.html" />
+    <link rel="next" title="Disulfid Bond Evaluation" href="disulfid.html" />
+    <link rel="prev" title="Coming to a solution" href="graph.html" />
+   
+  
+  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
+
+  </head>
+  <body role="document">
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="../genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="../py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="disulfid.html" title="Disulfid Bond Evaluation"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="graph.html" title="Coming to a solution"
+             accesskey="P">previous</a> |</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ProMod3 0 documentation</a> &raquo;</li>
+          <li class="nav-item nav-item-1"><a href="../developers.html" >Documentation For Developes</a> &raquo;</li>
+          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U"><code class="docutils literal"><span class="pre">sidechain</span></code> - Sidechain Modelling</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="rotamer-settings">
+<h1>Rotamer Settings<a class="headerlink" href="#rotamer-settings" title="Permalink to this headline">¶</a></h1>
+<p>The rotamer settings control the sidechain modelling algorithms at different
+stages. Most of the parameters that can be set are related to the flexible
+rotamer model (temperature factor and delta factors to control the
+variability of the subrotamers in the flexible rotamer model)
+or the internal energy prefactor used for the different amino
+acids. Other parameters include the radius influencing the pseudo Lennard
+Jones term for the different atom types and the max interaction radius.
+The max interaction radius is more a technical thing and is used by a
+collision detection algorithm to define the collision distance, i.e.
+two particles with max radii a,b collide/interact if the distance between
+them is smaller than a+b. The last three parameters control the buildup of the
+rotamers. It is possible to deactivate the hbond term, resulting in
+no hydrogens being constructed. The sampling of polar hydrogens can also
+be controlled resulting in several rotamers per rotamer lib entry for
+Ser,Thr and Tyr when using the convenient functions for constructing full
+rotamer groups of them (see <a class="reference internal" href="rotamer.html#rotamer-group-construction-label"><span>here</span></a>).
+Constructing the rotamer groups can further be controlled by assigning a max
+summed probability resulting in less very unlikely rotamers added to the
+rotamer group(see <a class="reference internal" href="rotamer.html#rotamer-group-construction-label"><span>here</span></a>).</p>
+<dl class="class">
+<dt id="promod3.sidechain.RotamerSettings">
+<em class="property">class </em><code class="descclassname">promod3.sidechain.</code><code class="descname">RotamerSettings</code><a class="headerlink" href="#promod3.sidechain.RotamerSettings" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="attribute">
+<dt>
+<code class="descname">FRM_T_ARG default: 1.23</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_ASN default: 1.41</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_ASP default: 1.48</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_GLN default: 1.32</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_GLU default: 0.94</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_LYS default: 1.27</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_SER default: 3.53</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_CYS default: 1.69</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_MET default: 1.77</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_TRP default: 0.99</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_TYR default: 1.96</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_THR default: 1.11</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_VAL default: 2.20</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_ILE default: 2.03</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_LEU default: 2.55</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_PRO default: 2.62</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_HIS default: 1.35</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_T_PHE default: 1.07</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_ARG default: 0.87</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_ARG default: 1.62</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta3_ARG default: 1.67</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta4_ARG default: 0.78</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_ASN default: 0.62</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_ASN default: 1.93</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_ASP default: 1.59</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_ASP default: 0.63</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_GLN default: 1.55</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_GLN default: 0.68</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta3_GLN default: 1.88</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_GLU default: 0.82</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_GLU default: 1.57</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta3_GLU default: 0.78</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_LYS default: 1.62</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_LYS default: 0.99</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta3_LYS default: 0.96</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta4_LYS default: 1.48</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_SER default: 0.65</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_SER default: 2.98</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_CYS default: 1.69</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_MET default: 0.97</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_MET default: 1.54</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta3_MET default: 1.21</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_TRP default: 1.28</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_TRP default: 1.48</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_TYR default: 1.48</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_TYR default: 0.73</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta3_TYR default: 0.96</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_THR default: 0.88</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_THR default: 0.88</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_VAL default: 2.08</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_ILE default: 1.23</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_ILE default: 0.98</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_LEU default: 1.15</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_LEU default: 1.48</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_PRO default: 0.78</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_PRO default: 1.27</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_HIS default: 1.84</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_HIS default: 0.85</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta1_PHE default: 1.45</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">FRM_delta2_PHE default: 1.35</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_ARG default: 2.27</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_ASN default: 1.80</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_ASP default: 2.44</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_GLN default: 1.61</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_GLU default: 1.85</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_LYS default: 2.13</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_SER default: 2.78</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_CYS default: 4.07</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_MET default: 1.95</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_TRP default: 3.24</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_TYR default: 2.00</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_THR default: 2.96</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_VAL default: 1.62</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_ILE default: 2.18</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_LEU default: 2.25</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_PRO default: 0.76</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_HIS default: 2.01</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">internal_e_prefactor_PHE default: 1.71</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">probability_cutoff default: 0.98</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">consider_hbonds default: True</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">sample_polar_hydrogens default: True</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">H_radius default: 0.49</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">C_radius default: 1.68</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">S_radius default: 1.71</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">N_radius default: 1.28</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">O_radius default: 1.29</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">H_max_radius default: 1.0300</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">C_max_radius default: 2.2400</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">S_max_radius default: 2.2800</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">N_max_radius default: 1.7067</code></dt>
+<dd></dd></dl>
+
+<dl class="attribute">
+<dt>
+<code class="descname">O_max_radius default: 1.7200</code></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="graph.html"
+                        title="previous chapter">Coming to a solution</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="disulfid.html"
+                        title="next chapter">Disulfid Bond Evaluation</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="../_sources/sidechain/sidechain_settings.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <form class="search" action="../search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="footer">
+      &copy;2015, Bienchen.
+      
+      |
+      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.3</a>
+      
+      |
+      <a href="../_sources/sidechain/sidechain_settings.txt"
+          rel="nofollow">Page source</a></li>
+    </div>
+
+    
+
+    
+  </body>
+</html>
\ No newline at end of file